Selaa lähdekoodia

产品选择不再出具逻辑修改

wucl 10 kuukautta sitten
vanhempi
commit
e5eee07f4a

+ 2 - 2
dao/src/main/resources/mapper/PersonalMapper.xml

@@ -98,8 +98,8 @@
                 LEFT JOIN user u2 ON u2.id = p.inward_staff
                 LEFT JOIN user u3 ON u3.id = p.pricing_staff
                 left join (
-                select business_id,comments from work_flow_log where concat(business_id,created) in (
-                    select concat(business_id,max(created)) from work_flow_log where business_type = 'PERSONAL_BUSINESS' and comments is not null  group BY business_id
+                select business_id,comments from work_flow_log where concat(business_id,modified) in (
+                    select concat(business_id,max(modified)) from work_flow_log where business_type = 'PERSONAL_BUSINESS' and comments is not null  group BY business_id
                 )
             ) c on p.id = c.business_id
         WHERE

+ 5 - 0
domain/src/main/java/com/dayou/dto/WorkNodeCommit.java

@@ -95,4 +95,9 @@ public class WorkNodeCommit {
      */
     private Boolean ifSkip;
 
+    /**
+     * 价值意见书收否收钱
+     */
+    private Boolean ifPay;
+
 }

+ 1 - 1
service/src/main/java/com/dayou/service/workflow/IWorkNodeService.java

@@ -61,7 +61,7 @@ public interface IWorkNodeService extends IService<WorkNode> {
      * @param mainBusinessEnum
      * @return
      */
-    WorkNodeDTO getNextWorkNodeByBusiness(Long flowId, MainBusinessEnum mainBusinessEnum, String nodeCode, Map<String,List<WorkflowNodeEnum>> necessaryNodes);
+    WorkNodeDTO getNextWorkNodeByBusiness(Long flowId, MainBusinessEnum mainBusinessEnum, String nodeCode, Map<String,List<WorkflowNodeEnum>> necessaryNodes,Boolean ifPay);
 
     /**
      * 获取下单节点

+ 14 - 11
service/src/main/java/com/dayou/service/workflow/WorkNodeServiceImpl.java

@@ -209,7 +209,7 @@ public class WorkNodeServiceImpl extends ServiceImpl<WorkNodeMapper, WorkNode> i
     }
 
     @Override
-    public WorkNodeDTO getNextWorkNodeByBusiness(Long flowId, MainBusinessEnum mainBusinessEnum, String nodeCode, Map<String, List<WorkflowNodeEnum>> necessaryNodes) {
+    public WorkNodeDTO getNextWorkNodeByBusiness(Long flowId, MainBusinessEnum mainBusinessEnum, String nodeCode, Map<String, List<WorkflowNodeEnum>> necessaryNodes,Boolean ifPay) {
         List<WorkNodeDTO> flowNodes = getFlowNodes(flowId);
         //报价客户反馈 后有可能出价值意见书、报告、复评函
         if (WorkflowNodeEnum.QUOTATION_FEEDBACK.name().equals(nodeCode)) {
@@ -234,20 +234,23 @@ public class WorkNodeServiceImpl extends ServiceImpl<WorkNodeMapper, WorkNode> i
                 }
             }
         }
-        //价值意见书送达反馈 后有可能报告、复评函、不再出具(进入提交资料归档)
+        //价值意见书送达反馈 后有可能报告、复评函、不再出具(进入归档)
         if (WorkflowNodeEnum.STATEMENT_FEEDBACK.name().equals(nodeCode)) {
             necessaryNodes.remove(ProductionEnum.STATEMENT.name());
-            if (necessaryNodes.size() == 0) {
-                //归档审核
-                return flowNodes.stream().filter(x -> x.getCode().equals(WorkflowNodeEnum.COMMIT_FILE.name())).findFirst().get();
-            }
-            for (Map.Entry<String, List<WorkflowNodeEnum>> map : necessaryNodes.entrySet()) {
-                List<String> codes = map.getValue().stream().map(WorkflowNodeEnum::getCode).collect(Collectors.toList());
-                for (WorkNodeDTO workNodeDTO : flowNodes) {
-                    if (codes.contains(workNodeDTO.getCode())) {
-                        return workNodeDTO;
+            if (necessaryNodes.size() != 0 ) {
+                for (Map.Entry<String, List<WorkflowNodeEnum>> map : necessaryNodes.entrySet()) {
+                    List<String> codes = map.getValue().stream().map(WorkflowNodeEnum::getCode).collect(Collectors.toList());
+                    for (WorkNodeDTO workNodeDTO : flowNodes) {
+                        if (codes.contains(workNodeDTO.getCode())) {
+                            return workNodeDTO;
+                        }
                     }
                 }
+           }
+            //要收钱就需要归档
+            if (ifPay!=null && ifPay){
+                //归档
+                return flowNodes.stream().filter(x -> x.getCode().equals(WorkflowNodeEnum.BUSINESS_ARCHIVING.name())).findFirst().get();
             }
         }
         //报告出库后或复评函出库后

+ 1 - 1
service/src/main/java/com/dayou/workflow/handler/AssetsNodeHandler.java

@@ -83,7 +83,7 @@ public class AssetsNodeHandler extends WorkNodeProcessable {
                         //2.根据出具的产品类型 确定需要哪些节点
                         Map<String, List<WorkflowNodeEnum>> assetsNecessaryNodes = CallbackEnum.NecessaryNode.getByProduction(MainBusinessEnum.ASSET_BUSINESS.name(),
                                 production);
-                        nextWorkNode = workNodeService.getNextWorkNodeByBusiness(currentInstanceNode.getFlowId(), MainBusinessEnum.ASSET_BUSINESS, currentInstanceNode.getNodeCode(), assetsNecessaryNodes);
+                        nextWorkNode = workNodeService.getNextWorkNodeByBusiness(currentInstanceNode.getFlowId(), MainBusinessEnum.ASSET_BUSINESS, currentInstanceNode.getNodeCode(), assetsNecessaryNodes,null);
                         break;
                     // 校验资产四审
                     case CHECK_ASSET_FOURTH_CHECK_REPORT:

+ 2 - 1
service/src/main/java/com/dayou/workflow/handler/MajorNodeHandler.java

@@ -97,7 +97,8 @@ public class MajorNodeHandler extends WorkNodeProcessable {
                             //2.根据出具的产品类型 确定需要哪些节点
                             Map<String,List<WorkflowNodeEnum>> majorNecessaryNodes = CallbackEnum.NecessaryNode.getByProduction(MainBusinessEnum.MAJOR_BUSINESS.name(),
                                     production);
-                            nextWorkNode = workNodeService.getNextWorkNodeByBusiness(currentInstanceNode.getFlowId(),MainBusinessEnum.MAJOR_BUSINESS,currentInstanceNode.getNodeCode(), majorNecessaryNodes);
+                            nextWorkNode = workNodeService.getNextWorkNodeByBusiness(currentInstanceNode.getFlowId(),MainBusinessEnum.MAJOR_BUSINESS
+                                    ,currentInstanceNode.getNodeCode(), majorNecessaryNodes,workNodeCommit.getIfPay());
                             break;
                         case CHECK_PRODUCTION_FUND:
                             //出库申请:已收款不用部门审核,直接到财务审核

+ 2 - 2
service/src/main/java/com/dayou/workflow/handler/PersonalNodeHandler.java

@@ -87,13 +87,13 @@ public class PersonalNodeHandler extends WorkNodeProcessable {
                             //2.根据出具的产品类型 确定需要哪些节点
                             Map<String, List<WorkflowNodeEnum>> personalNecessaryNodes = CallbackEnum.NecessaryNode.getByProduction(MainBusinessEnum.PERSONAL_BUSINESS.name(),
                                     production);
-                            nextWorkNode = workNodeService.getNextWorkNodeByBusiness(currentInstanceNode.getFlowId(),MainBusinessEnum.PERSONAL_BUSINESS, currentInstanceNode.getNodeCode(), personalNecessaryNodes);
+                            nextWorkNode = workNodeService.getNextWorkNodeByBusiness(currentInstanceNode.getFlowId(),MainBusinessEnum.PERSONAL_BUSINESS, currentInstanceNode.getNodeCode(), personalNecessaryNodes,null);
                             break;
                         case CHECK_FEEDBACK:
                             if (workNodeCommit.getIfFeedback()!=null && !workNodeCommit.getIfFeedback()) {
                                 Map<String, List<WorkflowNodeEnum>> xPersonalNecessaryNodes = CallbackEnum.NecessaryNode.getByProduction(MainBusinessEnum.PERSONAL_BUSINESS.name(),
                                         production);
-                                nextWorkNode = workNodeService.getNextWorkNodeByBusiness(currentInstanceNode.getFlowId(),MainBusinessEnum.PERSONAL_BUSINESS, QUOTATION_FEEDBACK.name(), xPersonalNecessaryNodes);
+                                nextWorkNode = workNodeService.getNextWorkNodeByBusiness(currentInstanceNode.getFlowId(),MainBusinessEnum.PERSONAL_BUSINESS, QUOTATION_FEEDBACK.name(), xPersonalNecessaryNodes,null);
                             }
                             break;
                         case CHECK_PERSONAL_CLIENT_TYPE: