Sfoglia il codice sorgente

二级网点签约调整逻辑

FengChaoYu 1 giorno fa
parent
commit
279652f413

+ 144 - 130
mall-server-api/src/main/java/com/gree/mall/manager/logic/admin/AdminUserLogic.java

@@ -174,134 +174,147 @@ public class AdminUserLogic {
      */
     private void checkWebsitLevel2(AdminUser adminUser, AdminUserCom adminUserCom) {
         adminUserCom.setIsJumpSign(false);
-        if (CollectionUtil.isNotEmpty(adminUserCom.getAdminWebsitIds()) && adminUserCom.getAdminWebsitIds().size() == 1) {
-            final AdminWebsit websit = adminWebsitService.getById(adminUserCom.getAdminWebsitIds().get(0));
-            // 二级网点
-            if (websit.getLevel() == 2) {
-                Integer existCount = websitContractSignRecordService.lambdaQuery()
-                        .eq(WebsitContractSignRecord::getWebsitId, websit.getWebsitId())
-                        .eq(WebsitContractSignRecord::getStatus, SignContractStatusEnum.OK.getKey())
-                        .ge(WebsitContractSignRecord::getSignOverTime, DateUtil.formatDateTime(DateUtil.date()))
-                        .count();
-                // 没有签成功并且审核通过未过期的记录,进行下一步检查
-                if (existCount == 0) {
-                    // 查询是否有状态为待签约或待审核的
-                    existCount = websitContractSignRecordService.lambdaQuery()
+        if (adminUser.getIsMaster()
+                && adminUser.getType() == 0
+                && CollectionUtil.isNotEmpty(adminUserCom.getAdminWebsitIds())) {
+            for (String adminWebsitId : adminUserCom.getAdminWebsitIds()) {
+                final AdminWebsit websit = adminWebsitService.getById(adminWebsitId);
+                // 二级网点
+                if (websit.getLevel() == 2) {
+                    Integer existCount = websitContractSignRecordService.lambdaQuery()
                             .eq(WebsitContractSignRecord::getWebsitId, websit.getWebsitId())
-                            .in(WebsitContractSignRecord::getStatus, SignContractStatusEnum.WAIT_SIGN.getKey(), SignContractStatusEnum.WAIT.getKey())
+                            .eq(WebsitContractSignRecord::getStatus, SignContractStatusEnum.OK.getKey())
                             .ge(WebsitContractSignRecord::getSignOverTime, DateUtil.formatDateTime(DateUtil.date()))
-                            .isNull(WebsitContractSignRecord::getCancelTime)
                             .count();
+                    log.info("没有签成功并且审核通过未过期的记录,进行下一步检查{}", existCount);
+                    // 没有签成功并且审核通过未过期的记录,进行下一步检查
                     if (existCount == 0) {
-                        List<ContractTemplate> contractList = commonMapper.queryNeedContract(adminUser.getCompanyWechatId(), websit.getWebsitId(), DateUtil.date());
-                        if (CollectionUtil.isEmpty(contractList)) {
+                        // 查询是否有状态为待签约或待审核的
+                        existCount = websitContractSignRecordService.lambdaQuery()
+                                .eq(WebsitContractSignRecord::getWebsitId, websit.getWebsitId())
+                                .in(WebsitContractSignRecord::getStatus, SignContractStatusEnum.WAIT_SIGN.getKey(), SignContractStatusEnum.WAIT.getKey())
+                                .ge(WebsitContractSignRecord::getSignOverTime, DateUtil.formatDateTime(DateUtil.date()))
+                                .isNull(WebsitContractSignRecord::getCancelTime)
+                                .count();
+                        log.info("查询是否有状态为待签约或待审核的{}", existCount);
+                        if (existCount == 0) {
+                            List<ContractTemplate> contractList = commonMapper.queryNeedContract(adminUser.getCompanyWechatId(), websit.getWebsitId(), DateUtil.date());
+                            if (CollectionUtil.isEmpty(contractList)) {
 //                            adminUserCom.setContractSignInfo("未发现网点需要签约合同,请联系管理员处理");
-                        } else if (CollectionUtil.isNotEmpty(contractList) && contractList.size() > 1) {
-                            adminUserCom.setContractSignInfo("发现网点需要签约合同多份,请联系管理员处理");
-                        } else {
-                            adminUserCom.setIsJumpSign(true);
-                            final WebsitFollowConfigItem item = websitFollowConfigItemService.lambdaQuery()
-                                    .eq(WebsitFollowConfigItem::getCompanyWechatId, websit.getCompanyWechatId())
-                                    .eq(WebsitFollowConfigItem::getSubWebsitId, websit.getWebsitId())
-                                    .one();
-                            if (Objects.isNull(item)) {
-                                adminUserCom.setContractSignInfo("二级网点未绑定一级网点,请联系管理员处理");
+                            } else if (CollectionUtil.isNotEmpty(contractList) && contractList.size() > 1) {
+                                adminUserCom.setContractSignInfo("发现网点需要签约合同多份,请联系管理员处理");
                             } else {
-                                final AdminWebsit parentWebsit = adminWebsitService.getById(item.getParentId());
-                                final CompanyCaAuth caAuth = companyCaAuthService.lambdaQuery()
-                                        .eq(CompanyCaAuth::getCompanyWechatId, item.getCompanyWechatId())
-                                        .eq(CompanyCaAuth::getWebsitId, item.getParentId())
-                                        .eq(CompanyCaAuth::getFadadaIsAuth, IsYesNoEnum.YES.getKey())
-                                        .eq(CompanyCaAuth::getFadadaAuthAutoStatus, IsYesNoEnum.YES.getKey())
+                                final WebsitFollowConfigItem item = websitFollowConfigItemService.lambdaQuery()
+                                        .eq(WebsitFollowConfigItem::getCompanyWechatId, websit.getCompanyWechatId())
+                                        .eq(WebsitFollowConfigItem::getSubWebsitId, websit.getWebsitId())
                                         .one();
-                                if (Objects.isNull(caAuth)) {
-                                    adminUserCom.setContractSignInfo("一级网点的CA认证未完成,请联系管理员处理");
+                                if (Objects.isNull(item)) {
+                                    log.info("二级网点未绑定一级网点,请联系管理员处理");
+//                                    adminUserCom.setContractSignInfo("二级网点未绑定一级网点,请联系管理员处理");
                                 } else {
-                                    final ContractTemplate template = contractList.get(0);
-                                    WebsitContractSignRecord record = new WebsitContractSignRecord();
-                                    record.setId(IdWorker.getIdStr())
-                                            .setCompanyWechatId(websit.getCompanyWechatId())
-                                            .setCompanyWechatName(websit.getCompanyWechatName())
-                                            .setBelongCompany(websit.getBelongCompany())
-                                            .setBelongCompanyCode(websit.getBelongCompanyCode())
-                                            .setWebsitId(websit.getWebsitId())
-                                            .setWebsitName(websit.getName())
-                                            .setParentId(parentWebsit.getWebsitId())
-                                            .setParentName(parentWebsit.getName())
-                                            .setContractTemplateId(template.getContractTemplateId())
-                                            .setContractName(template.getContractTemplateName())
-                                            .setSignOverTime(template.getExpireDate())
-                                            .setAuthStatus(StringUtils.isBlank(websit.getFadadaCustomerId()) ? IsYesNoEnum.NO.getKey() : IsYesNoEnum.YES.getKey())
-                                            .insert();
-
-                                    WebsitContractSignItem signItem = new WebsitContractSignItem();
-                                    signItem.setId(IdWorker.getIdStr())
-                                            .setWebsitContractSignRecordId(record.getId())
-                                            .setContractName(template.getContractTemplateName())
-                                            .setContractTemplatePdf(template.getContractTemplatePdf())
-                                            .setContractType(template.getContractType())
-                                            .setContractStatus(SignContractStatusEnum.WAIT_SIGN.getKey())
-                                            .setValidDate(template.getValidDate())
-                                            .setExpireDate(template.getExpireDate())
-                                            .setContractTemplateId(template.getContractTemplateId())
-                                            .setFadadaTemplateId(template.getFadadaTemplateId())
-                                            .setNeedCompanySign(template.getNeedCompanySign())
-                                            .setNeedManagerSign(template.getNeedManagerSign())
-                                            .setNeedPartyASign(template.getNeedPartyASign())
-                                            .setCaCustomerId(caAuth.getFadadaCustomerId())
-                                            .setCompanySignFiled(template.getCompanySignFiled())
-                                            .setManagerSignField(template.getManagerSignField())
-                                            .setPartyASignFiled(template.getPartyASignFiled());
-
-                                    // 根据主合同查询从合同
-                                    final List<ContractTemplate> templateList = contractTemplateService.lambdaQuery()
-                                            .eq(ContractTemplate::getFollowContractTemplateId, template.getContractTemplateId())
-                                            .eq(ContractTemplate::getStatus, StateEnum.ON.getKey())
-                                            .list();
-                                    List<WebsitContractSignItem> signItemList = new ArrayList<>();
-                                    List<WebsitContractSignField> signFieldList = new ArrayList<>();
-                                    signItemList.add(signItem);
-                                    for (ContractTemplate contractTemplate : templateList) {
-                                        WebsitContractSignItem contractSignItem = new WebsitContractSignItem();
-                                        contractSignItem.setId(IdWorker.getIdStr())
+                                    final AdminWebsit parentWebsit = adminWebsitService.getById(item.getParentId());
+                                    final CompanyCaAuth caAuth = companyCaAuthService.lambdaQuery()
+                                            .eq(CompanyCaAuth::getCompanyWechatId, item.getCompanyWechatId())
+                                            .eq(CompanyCaAuth::getWebsitId, item.getParentId())
+                                            .eq(CompanyCaAuth::getFadadaIsAuth, IsYesNoEnum.YES.getKey())
+                                            .eq(CompanyCaAuth::getFadadaAuthAutoStatus, IsYesNoEnum.YES.getKey())
+                                            .one();
+                                    if (Objects.isNull(caAuth)) {
+                                        adminUserCom.setContractSignInfo("一级网点的CA认证未完成,请联系管理员处理");
+                                    } else {
+                                        final ContractTemplate template = contractList.get(0);
+                                        WebsitContractSignRecord record = new WebsitContractSignRecord();
+                                        record.setId(IdWorker.getIdStr())
+                                                .setCompanyWechatId(websit.getCompanyWechatId())
+                                                .setCompanyWechatName(websit.getCompanyWechatName())
+                                                .setBelongCompany(websit.getBelongCompany())
+                                                .setBelongCompanyCode(websit.getBelongCompanyCode())
+                                                .setWebsitId(websit.getWebsitId())
+                                                .setWebsitName(websit.getName())
+                                                .setParentId(parentWebsit.getWebsitId())
+                                                .setParentName(parentWebsit.getName())
+                                                .setContractTemplateId(template.getContractTemplateId())
+                                                .setContractName(template.getContractTemplateName())
+                                                .setSignOverTime(template.getExpireDate())
+                                                .setAuthStatus(StringUtils.isBlank(websit.getFadadaCustomerId()) ? IsYesNoEnum.NO.getKey() : IsYesNoEnum.YES.getKey())
+                                                .insert();
+
+                                        WebsitContractSignItem signItem = new WebsitContractSignItem();
+                                        signItem.setId(IdWorker.getIdStr())
                                                 .setWebsitContractSignRecordId(record.getId())
-                                                .setContractName(contractTemplate.getContractTemplateName())
+                                                .setContractName(template.getContractTemplateName())
                                                 .setContractTemplatePdf(template.getContractTemplatePdf())
-                                                .setContractType(contractTemplate.getContractType())
+                                                .setContractType(template.getContractType())
                                                 .setContractStatus(SignContractStatusEnum.WAIT_SIGN.getKey())
                                                 .setValidDate(template.getValidDate())
                                                 .setExpireDate(template.getExpireDate())
-                                                .setContractTemplateId(contractTemplate.getContractTemplateId())
-                                                .setFadadaTemplateId(contractTemplate.getFadadaTemplateId())
-                                                .setNeedCompanySign(contractTemplate.getNeedCompanySign())
-                                                .setNeedManagerSign(contractTemplate.getNeedManagerSign())
-                                                .setNeedPartyASign(contractTemplate.getNeedPartyASign())
+                                                .setContractTemplateId(template.getContractTemplateId())
+                                                .setFadadaTemplateId(template.getFadadaTemplateId())
+                                                .setNeedCompanySign(template.getNeedCompanySign())
+                                                .setNeedManagerSign(template.getNeedManagerSign())
+                                                .setNeedPartyASign(template.getNeedPartyASign())
                                                 .setCaCustomerId(caAuth.getFadadaCustomerId())
-                                                .setCompanySignFiled(contractTemplate.getCompanySignFiled())
-                                                .setManagerSignField(contractTemplate.getManagerSignField())
-                                                .setPartyASignFiled(contractTemplate.getPartyASignFiled());
-                                        signItemList.add(contractSignItem);
-                                    }
-                                    // 遍历网点合同签约明细找出填充字段配置
-                                    for (WebsitContractSignItem contractSignItem : signItemList) {
-                                        final List<ContractTemplateField> templateFieldList = contractTemplateFieldService.lambdaQuery()
-                                                .eq(ContractTemplateField::getContractTemplateId, contractSignItem.getContractTemplateId())
+                                                .setCompanySignFiled(template.getCompanySignFiled())
+                                                .setManagerSignField(template.getManagerSignField())
+                                                .setPartyASignFiled(template.getPartyASignFiled());
+
+                                        // 根据主合同查询从合同
+                                        final List<ContractTemplate> templateList = contractTemplateService.lambdaQuery()
+                                                .eq(ContractTemplate::getFollowContractTemplateId, template.getContractTemplateId())
+                                                .eq(ContractTemplate::getStatus, StateEnum.ON.getKey())
                                                 .list();
-                                        for (ContractTemplateField templateField : templateFieldList) {
-                                            WebsitContractSignField field = new WebsitContractSignField();
-                                            field.setWebsitContractSignRecordId(contractSignItem.getWebsitContractSignRecordId())
-                                                    .setWebsitContractSignItemId(contractSignItem.getId())
-                                                    .setFieldType(templateField.getFieldType())
-                                                    .setFieldName(templateField.getFieldName())
-                                                    .setFieldValue(templateField.getFieldValue());
-                                            signFieldList.add(field);
+                                        List<WebsitContractSignItem> signItemList = new ArrayList<>();
+                                        List<WebsitContractSignField> signFieldList = new ArrayList<>();
+                                        signItemList.add(signItem);
+                                        for (ContractTemplate contractTemplate : templateList) {
+                                            WebsitContractSignItem contractSignItem = new WebsitContractSignItem();
+                                            contractSignItem.setId(IdWorker.getIdStr())
+                                                    .setWebsitContractSignRecordId(record.getId())
+                                                    .setContractName(contractTemplate.getContractTemplateName())
+                                                    .setContractTemplatePdf(template.getContractTemplatePdf())
+                                                    .setContractType(contractTemplate.getContractType())
+                                                    .setContractStatus(SignContractStatusEnum.WAIT_SIGN.getKey())
+                                                    .setValidDate(template.getValidDate())
+                                                    .setExpireDate(template.getExpireDate())
+                                                    .setContractTemplateId(contractTemplate.getContractTemplateId())
+                                                    .setFadadaTemplateId(contractTemplate.getFadadaTemplateId())
+                                                    .setNeedCompanySign(contractTemplate.getNeedCompanySign())
+                                                    .setNeedManagerSign(contractTemplate.getNeedManagerSign())
+                                                    .setNeedPartyASign(contractTemplate.getNeedPartyASign())
+                                                    .setCaCustomerId(caAuth.getFadadaCustomerId())
+                                                    .setCompanySignFiled(contractTemplate.getCompanySignFiled())
+                                                    .setManagerSignField(contractTemplate.getManagerSignField())
+                                                    .setPartyASignFiled(contractTemplate.getPartyASignFiled());
+                                            signItemList.add(contractSignItem);
+                                        }
+                                        // 遍历网点合同签约明细找出填充字段配置
+                                        for (WebsitContractSignItem contractSignItem : signItemList) {
+                                            final List<ContractTemplateField> templateFieldList = contractTemplateFieldService.lambdaQuery()
+                                                    .eq(ContractTemplateField::getContractTemplateId, contractSignItem.getContractTemplateId())
+                                                    .list();
+                                            for (ContractTemplateField templateField : templateFieldList) {
+                                                WebsitContractSignField field = new WebsitContractSignField();
+                                                field.setWebsitContractSignRecordId(contractSignItem.getWebsitContractSignRecordId())
+                                                        .setWebsitContractSignItemId(contractSignItem.getId())
+                                                        .setFieldType(templateField.getFieldType())
+                                                        .setFieldName(templateField.getFieldName())
+                                                        .setFieldValue(templateField.getFieldValue());
+                                                signFieldList.add(field);
+                                            }
                                         }
-                                    }
 
-                                    websitContractSignItemService.saveBatch(signItemList);
-                                    websitContractSignFieldService.saveBatch(signFieldList);
+                                        websitContractSignItemService.saveBatch(signItemList);
+                                        websitContractSignFieldService.saveBatch(signFieldList);
+                                        adminUserCom.setIsJumpSign(true);
+                                        log.info("生成签约记录跳转");
+                                        break;
+                                    }
                                 }
                             }
+                        } else {
+                            log.info("已有签约记录跳转");
+                            adminUserCom.setIsJumpSign(true);
+                            break;
                         }
                     }
                 }
@@ -1088,28 +1101,29 @@ public class AdminUserLogic {
             final List<AdminUserWebsitRela> relas = adminUserWebsitRelaService.lambdaQuery()
                     .eq(AdminUserWebsitRela::getAdminUserId, adminUser.getAdminUserId())
                     .list();
-            if (CollectionUtil.isNotEmpty(relas) && relas.size() == 1) {
-                final AdminUserWebsitRela rela = relas.get(0);
-                final AdminWebsit websit = adminWebsitService.lambdaQuery()
-                        .eq(AdminWebsit::getWebsitId, rela.getAdminWebsitId())
-                        .one();
-                if (websit.getLevel() == 2) {
-                    Integer existCount = websitContractSignRecordService.lambdaQuery()
-                            .eq(WebsitContractSignRecord::getWebsitId, websit.getWebsitId())
-                            .eq(WebsitContractSignRecord::getStatus, SignContractStatusEnum.OK.getKey())
-                            .ge(WebsitContractSignRecord::getSignOverTime, DateUtil.formatDateTime(DateUtil.date()))
-                            .count();
-                    // 没有签成功并且审核通过未过期的记录,只有签约菜单
-                    if (existCount == 0 && CollectionUtil.isNotEmpty(trees)) {
-                        // 是否有需要签约的合同
-                        List<ContractTemplate> contractList = commonMapper.queryNeedContract(adminUser.getCompanyWechatId(), websit.getWebsitId(), DateUtil.date());
-                        if (CollectionUtil.isNotEmpty(contractList)) {
-                            List<AdminModuleTree> filterTree = trees.stream().filter(v -> v.getLevel() == 1 && v.getNotSign()).collect(Collectors.toList());
-                            if (CollectionUtil.isNotEmpty(filterTree)) {
-                                for (AdminModuleTree moduleTree : filterTree) {
-                                    moduleTree.setChildren(this.treeModule(trees, moduleTree.getModuleId(), hasModule, admin, true));
+            if (CollectionUtil.isNotEmpty(relas)) {
+                for (AdminUserWebsitRela rela : relas) {
+                    final AdminWebsit websit = adminWebsitService.lambdaQuery()
+                            .eq(AdminWebsit::getWebsitId, rela.getAdminWebsitId())
+                            .one();
+                    if (websit.getLevel() == 2) {
+                        Integer existCount = websitContractSignRecordService.lambdaQuery()
+                                .eq(WebsitContractSignRecord::getWebsitId, websit.getWebsitId())
+                                .eq(WebsitContractSignRecord::getStatus, SignContractStatusEnum.OK.getKey())
+                                .ge(WebsitContractSignRecord::getSignOverTime, DateUtil.formatDateTime(DateUtil.date()))
+                                .count();
+                        // 没有签成功并且审核通过未过期的记录,只有签约菜单
+                        if (existCount == 0 && CollectionUtil.isNotEmpty(trees)) {
+                            // 是否有需要签约的合同
+                            List<ContractTemplate> contractList = commonMapper.queryNeedContract(adminUser.getCompanyWechatId(), websit.getWebsitId(), DateUtil.date());
+                            if (CollectionUtil.isNotEmpty(contractList)) {
+                                List<AdminModuleTree> filterTree = trees.stream().filter(v -> v.getLevel() == 1 && v.getNotSign()).collect(Collectors.toList());
+                                if (CollectionUtil.isNotEmpty(filterTree)) {
+                                    for (AdminModuleTree moduleTree : filterTree) {
+                                        moduleTree.setChildren(this.treeModule(trees, moduleTree.getModuleId(), hasModule, admin, true));
+                                    }
+                                    return filterTree;
                                 }
-                                return filterTree;
                             }
                         }
                     }

+ 20 - 7
mall-server-api/src/main/java/com/gree/mall/manager/logic/contract/WebsitContractSignLogic.java

@@ -68,13 +68,26 @@ public class WebsitContractSignLogic {
         AdminUserCom adminUser = commonLogic.getAdminUser();
         FieldUtils.supplyParam(zfireParamBean, WebsitContractSignVO.class, adminUser);
         String websitId = null;
-        if (adminUser.getType().equals(0) && adminUser.getAdminWebsitIds().size() == 1) {
-            final AdminWebsit websit = adminWebsitService.lambdaQuery()
-                    .eq(AdminWebsit::getCompanyWechatId, adminUser.getCompanyWechatId())
-                    .eq(AdminWebsit::getWebsitId, adminUser.getAdminWebsitIds().get(0))
-                    .one();
-            if (websit.getLevel() == 2) {
-                websitId = websit.getWebsitId();
+        if (adminUser.getIsMaster()
+                && adminUser.getType().equals(0)) {
+            for (String adminWebsitId : adminUser.getAdminWebsitIds()) {
+                final WebsitContractSignRecord record = websitContractSignRecordService.lambdaQuery()
+                        .eq(WebsitContractSignRecord::getWebsitId, adminWebsitId)
+                        .last("limit 1")
+                        .one();
+                if (Objects.nonNull(record)) {
+                    final AdminWebsit websit = adminWebsitService.lambdaQuery()
+                            .eq(AdminWebsit::getCompanyWechatId, adminUser.getCompanyWechatId())
+                            .eq(AdminWebsit::getWebsitId, adminWebsitId)
+                            .one();
+                    if (websit.getLevel() == 2) {
+                        websitId = websit.getWebsitId();
+                        break;
+                    }
+                }
+            }
+            if (StringUtils.isBlank(websitId)) {
+                websitId = adminUser.getAdminWebsitIds().get(0);
             }
         }
         return commonMapper.websitContractSignPage(new Page(zfireParamBean.getPageNum(), zfireParamBean.getPageSize()), zfireParamBean, websitId);