guarantee-lsq 1 year ago
parent
commit
9fd0408d9e

+ 59 - 9
platform-service/src/main/java/com/platform/service/preparation/impl/PreparationServiceImpl.java

@@ -484,8 +484,9 @@ public class PreparationServiceImpl extends BaseServiceImpl<PreparationMapper, P
                     updPre.setStatus(PreparationStatusEnum.APPLY_MANAGER_VERIFY_SUCCESS.getValue());
                     queryDTO.setUserId(preparation.getApplyVerifyLeader());
                 } else if (model.getVerifyStatus() == 3) { // 回退
-                    updPre.setStatus(PreparationStatusEnum.APPLY_MANAGER_VERIFY_BACK.getValue());
-                    queryDTO.setUserId(preparation.getUserId());
+                    //根据回退的节点值,来判定状态和需要通知的用户
+                    //updPre.setStatus(PreparationStatusEnum.APPLY_MANAGER_VERIFY_BACK.getValue());
+                    queryDTO.setUserId(getNotifyUserId(model,updPre,preparation));
                 } else { // 拒绝
                     updPre.setStatus(PreparationStatusEnum.CLOSE.getValue());
                     queryDTO.setUserId(preparation.getUserId());
@@ -500,8 +501,10 @@ public class PreparationServiceImpl extends BaseServiceImpl<PreparationMapper, P
                     updPre.setStatus(PreparationStatusEnum.APPLY_LEADER_VERIFY_SUCCESS.getValue());
                     queryDTO.setUserId(preparation.getReceiveVerifyLeader());
                 } else if (model.getVerifyStatus() == 3) { // 回退
-                    queryDTO.setUserId(preparation.getApplyVerifyUserId());
-                    updPre.setStatus(PreparationStatusEnum.APPLY_LEADER_VERIFY_BACK.getValue());
+                    //根据回退的节点值,来判定状态和需要通知的用户
+                    queryDTO.setUserId(getNotifyUserId(model,updPre,preparation));
+                    /*queryDTO.setUserId(preparation.getApplyVerifyUserId());
+                    updPre.setStatus(PreparationStatusEnum.APPLY_LEADER_VERIFY_BACK.getValue());*/
                 } else { // 拒绝
                     updPre.setStatus(PreparationStatusEnum.CLOSE.getValue());
                     queryDTO.setUserId(preparation.getApplyVerifyUserId());
@@ -516,13 +519,15 @@ public class PreparationServiceImpl extends BaseServiceImpl<PreparationMapper, P
                 //model.setVerifyRemark(model.getVerifyRemark() + "【费用"+preparation.getFee() + "->"+model.getFee() + "】");
                 if (model.getVerifyStatus() == 1) { // 通过
                     updPre.setStatus(PreparationStatusEnum.SECOND_PROCESSING.getValue());
+                    queryDTO.setUserId(preparation.getRepairUserId());
                 } else if (model.getVerifyStatus() == 3) { // 回退
-                    updPre.setStatus(PreparationStatusEnum.FIRST_PROCESSING_VERIFY_BACK.getValue());
+                    //根据回退的节点值,来判定状态和需要通知的用户
+                    queryDTO.setUserId(getNotifyUserId(model,updPre,preparation));
+                    /*updPre.setStatus(PreparationStatusEnum.FIRST_PROCESSING_VERIFY_BACK.getValue());*/
                 } else { // 拒绝
                     updPre.setStatus(PreparationStatusEnum.CLOSE.getValue());
+                    queryDTO.setUserId(preparation.getRepairUserId());
                 }
-                // 给执行人发送消息
-                queryDTO.setUserId(preparation.getRepairUserId());
                 break;
             case CommonConstants.SECOND_PROCESSING_VERIFYING:
                 // 申请人验收审批
@@ -532,8 +537,10 @@ public class PreparationServiceImpl extends BaseServiceImpl<PreparationMapper, P
                 if (model.getVerifyStatus() == 1) { // 通过
                     updPre.setStatus(PreparationStatusEnum.FINISHED.getValue());
                 } else if (model.getVerifyStatus() == 3) { // 回退
-                    updPre.setStatus(PreparationStatusEnum.SECOND_PROCESSING_BACK.getValue());
-                    queryDTO.setUserId(preparation.getRepairUserId());
+                    //根据回退的节点值,来判定状态和需要通知的用户
+                    queryDTO.setUserId(getNotifyUserId(model,updPre,preparation));
+                   /* updPre.setStatus(PreparationStatusEnum.SECOND_PROCESSING_BACK.getValue());
+                    queryDTO.setUserId(preparation.getRepairUserId());*/
                 } else { // 拒绝
                     updPre.setStatus(PreparationStatusEnum.CLOSE.getValue());
                     queryDTO.setUserId(preparation.getRepairUserId());
@@ -555,6 +562,49 @@ public class PreparationServiceImpl extends BaseServiceImpl<PreparationMapper, P
         }
     }
 
+    /**
+     * 根据节点判断回退用户
+     * @param model
+     * @param updPre
+     * @return
+     */
+    private String getNotifyUserId(PreparationDTO model,Preparation updPre,Preparation preparation){
+        String userId = "";
+        switch (model.getNodeNum()){
+            case 1:
+                // 申请人
+                updPre.setStatus(PreparationStatusEnum.APPLY_MANAGER_VERIFY_BACK.getValue());
+                userId = preparation.getUserId();
+                break;
+            case 2:
+                // 申请部门主管
+                updPre.setStatus(PreparationStatusEnum.APPLY_LEADER_VERIFY_BACK.getValue());
+                userId = preparation.getApplyVerifyUserId();
+                break;
+            case 3:
+                // 申请部门负责人
+                updPre.setStatus(PreparationStatusEnum.RECEIVE_VERIFY_BACK.getValue());
+                userId = preparation.getApplyVerifyLeader();
+                break;
+            case 4:
+                // 执行部门负责人
+                updPre.setStatus(PreparationStatusEnum.APPLY_LEADER_VERIFY_SUCCESS.getValue());
+                userId = preparation.getReceiveVerifyLeader();
+                break;
+            case 5:
+                // 执行人-接单
+                updPre.setStatus(PreparationStatusEnum.FIRST_PROCESSING_VERIFY_BACK.getValue());
+                userId = preparation.getRepairUserId();
+                break;
+            case 6:
+                // 申请人-执行
+                updPre.setStatus(PreparationStatusEnum.SECOND_PROCESSING_BACK.getValue());
+                userId = preparation.getRepairUserId();
+                break;
+        }
+        return userId;
+    }
+
     @Override
     public void pushVerify(PreparationDTO model) {
         if(StringUtils.isEmpty(model.getId())){