Kaynağa Gözat

调整隔离和解除隔离的进度消息发送

车车 3 ay önce
ebeveyn
işleme
43591d81df

+ 3 - 1
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/enums/MessageEnum.java

@@ -15,7 +15,9 @@ public enum MessageEnum {
     MESSAGE_007("MESSAGE_007","ISCS_SMS_007", "ISCS_ZNX_007"),  // 节点任务开始时推送-录入信息
     MESSAGE_008("MESSAGE_008","ISCS_SMS_008", "ISCS_ZNX_008"),  // 节点任务开始时推送-共锁
     MESSAGE_009("MESSAGE_009","ISCS_SMS_009", "ISCS_ZNX_009"),  // 节点任务开始时推送-解除共锁
-    MESSAGE_010("MESSAGE_010","ISCS_SMS_010", "ISCS_ZNX_010");  // 节点任务开始时推送-还锁
+    MESSAGE_010("MESSAGE_010","ISCS_SMS_010", "ISCS_ZNX_010"),  // 节点任务开始时推送-还锁
+    MESSAGE_011("MESSAGE_011","ISCS_SMS_011", "ISCS_ZNX_011"),  // 上锁后归还钥匙
+    MESSAGE_012("MESSAGE_012","ISCS_SMS_012", "ISCS_ZNX_012");  // 归还任务挂锁和钥匙
 
     public final String key;
 

+ 11 - 5
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/workdesign/WorkflowWorkHandleServiceImpl.java

@@ -122,9 +122,11 @@ public class WorkflowWorkHandleServiceImpl implements WorkflowWorkHandleService
             Integer pointCount = (int) pointService.count(Wrappers.<WorkflowWorkPointDO>lambdaQuery()
                     .eq(WorkflowWorkPointDO::getNodeId, nodeId));
             if (!vo.getKeyNfcList().isEmpty() && !vo.getLockNfcList().isEmpty() && pointCount.equals(vo.getLockNfcList().size())) {
-                // 这样就算隔离的第一步骤完成,更新进度
+                // 这样就算隔离的第一步骤完成,更新进度,更新nodeProgress
                 workflowWorkNodeService.update(Wrappers.<WorkflowWorkNodeDO>lambdaUpdate()
-                        .eq(WorkflowWorkNodeDO::getNodeProgress, "2"));
+                        .eq(WorkflowWorkNodeDO::getId, nodeDO.getId())
+                        .set(WorkflowWorkNodeDO::getNodeProgress, "2"));
+                workflowWorkNodeService.sendMessageToAdmin(nodeDO.getId());
             }
         }
 
@@ -132,17 +134,19 @@ public class WorkflowWorkHandleServiceImpl implements WorkflowWorkHandleService
         if (nodeDO.getType().equals(WorkTypeEnum.RELEASEISOLATION.value)) {
             // 1.检查钥匙有没有取
             if (!vo.getKeyNfcList().isEmpty()) {
-                // 这样就算解除隔离的第二步骤完成,更新进度
+                // 这样就算解除隔离的第二步骤完成,更新进度,更新nodeProgress
                 workflowWorkNodeService.update(Wrappers.<WorkflowWorkNodeDO>lambdaUpdate()
-                        .eq(WorkflowWorkNodeDO::getNodeProgress, "3"));
+                        .eq(WorkflowWorkNodeDO::getId, nodeDO.getId())
+                        .set(WorkflowWorkNodeDO::getNodeProgress, "3"));
+                workflowWorkNodeService.sendMessageToAdmin(nodeDO.getId());
             }
         }
-
         return true;
     }
 
     /**
      * 点位上锁(归还钥匙)
+     *
      * @param keyBackVO
      * @return
      */
@@ -217,6 +221,7 @@ public class WorkflowWorkHandleServiceImpl implements WorkflowWorkHandleService
                         workflowWorkNodeService.update(Wrappers.<WorkflowWorkNodeDO>lambdaUpdate()
                                 .eq(WorkflowWorkNodeDO::getId, nodeDO.getId())
                                 .set(WorkflowWorkNodeDO::getNodeProgress, "3"));
+                        workflowWorkNodeService.sendMessageToAdmin(nodeDO.getId());
                     }
 
                     // 帮助归还钥匙
@@ -323,6 +328,7 @@ public class WorkflowWorkHandleServiceImpl implements WorkflowWorkHandleService
         workflowWorkNodeService.update(Wrappers.<WorkflowWorkNodeDO>lambdaUpdate()
                 .eq(WorkflowWorkNodeDO::getId, nodeDO.getId())
                 .set(WorkflowWorkNodeDO::getNodeProgress, "2"));
+        workflowWorkNodeService.sendMessageToAdmin(nodeDO.getId());
         return true;
     }
 

+ 28 - 4
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/workdesign/WorkflowWorkNodeServiceImpl.java

@@ -302,12 +302,13 @@ public class WorkflowWorkNodeServiceImpl extends ServiceImpl<WorkflowWorkNodeMap
         }
 
         if (nodeDO.getType().equals(WorkTypeEnum.ISOLATION.value)) {
+            String nodeProgress = nodeDO.getNodeProgress();
             // 上锁/共锁
             List<WorkflowWorkNodeUserDO> nodeUserDOList = workflowWorkNodeUserService.list(Wrappers.<WorkflowWorkNodeUserDO>lambdaQuery().eq(WorkflowWorkNodeUserDO::getNodeId, nodeDO.getId()));
             // 上锁人
             List<Long> jtlockerIds = nodeUserDOList.stream().filter(o -> "jtlocker".equals(o.getType())).map(WorkflowWorkNodeUserDO::getUserId).toList();
             StringBuilder jtlockerName = new StringBuilder();
-            if (!jtlockerIds.isEmpty()) {
+            if (!jtlockerIds.isEmpty() && StringUtils.isNotBlank(nodeProgress) && "1".equals(nodeProgress)) {
                 List<AdminUserDO> userList = adminUserService.getUserList(jtlockerIds);
                 for (AdminUserDO adminUserDO : userList) {
                     // 发送
@@ -317,9 +318,20 @@ public class WorkflowWorkNodeServiceImpl extends ServiceImpl<WorkflowWorkNodeMap
                     jtlockerName.append(adminUserDO.getNickname());
                 }
             }
+            // 上锁人归还钥匙
+            if (!jtlockerIds.isEmpty() && StringUtils.isNotBlank(nodeProgress) && "2".equals(nodeProgress)) {
+                List<AdminUserDO> userList = adminUserService.getUserList(jtlockerIds);
+                for (AdminUserDO adminUserDO : userList) {
+                    // 发送
+                    Map<String, Object> templateParams = new HashMap<>();
+                    templateParams.put("name", adminUserDO.getNickname());
+                    sendMessage(nodeDO, adminUserDO.getId(), "MESSAGE_011", templateParams);
+                    jtlockerName.append(adminUserDO.getNickname());
+                }
+            }
             // 共锁人
             List<Long> jtcolockerIds = nodeUserDOList.stream().filter(o -> "jtcolocker".equals(o.getType())).map(WorkflowWorkNodeUserDO::getUserId).toList();
-            if (!jtcolockerIds.isEmpty()) {
+            if (!jtcolockerIds.isEmpty()  && StringUtils.isNotBlank(nodeProgress) && "3".equals(nodeProgress)) {
                 List<AdminUserDO> userList = adminUserService.getUserList(jtcolockerIds);
                 for (AdminUserDO adminUserDO : userList) {
                     // 发送
@@ -334,6 +346,7 @@ public class WorkflowWorkNodeServiceImpl extends ServiceImpl<WorkflowWorkNodeMap
         if (nodeDO.getType().equals(WorkTypeEnum.RELEASEISOLATION.value)) {
             // 解除共锁/上锁
             if (StringUtils.isNotBlank(nodeDO.getIsolationNodeUuid())) {
+                String nodeProgress = nodeDO.getNodeProgress();
                 // 先找到对应的上锁node
                 WorkflowWorkNodeDO parentNode = getOne(Wrappers.<WorkflowWorkNodeDO>lambdaQuery().eq(WorkflowWorkNodeDO::getUuid, nodeDO.getIsolationNodeUuid()));
                 // 再找关联的人员信息
@@ -341,7 +354,7 @@ public class WorkflowWorkNodeServiceImpl extends ServiceImpl<WorkflowWorkNodeMap
                 // 共锁人
                 List<Long> jtcolockerIds = nodeUserDOList.stream().filter(o -> "jtcolocker".equals(o.getType())).map(WorkflowWorkNodeUserDO::getUserId).toList();
                 StringBuilder jtcolockerName = new StringBuilder();
-                if (!jtcolockerIds.isEmpty()) {
+                if (!jtcolockerIds.isEmpty() && StringUtils.isNotBlank(nodeProgress) && "1".equals(nodeProgress)) {
                     List<AdminUserDO> userList = adminUserService.getUserList(jtcolockerIds);
                     for (AdminUserDO adminUserDO : userList) {
                         // 发送
@@ -353,7 +366,7 @@ public class WorkflowWorkNodeServiceImpl extends ServiceImpl<WorkflowWorkNodeMap
                 }
                 // 上锁人
                 List<Long> jtlockerIds = nodeUserDOList.stream().filter(o -> "jtlocker".equals(o.getType())).map(WorkflowWorkNodeUserDO::getUserId).toList();
-                if (!jtlockerIds.isEmpty()) {
+                if (!jtlockerIds.isEmpty() && StringUtils.isNotBlank(nodeProgress) && "2".equals(nodeProgress)) {
                     List<AdminUserDO> userList = adminUserService.getUserList(jtlockerIds);
                     for (AdminUserDO adminUserDO : userList) {
                         // 发送
@@ -363,6 +376,17 @@ public class WorkflowWorkNodeServiceImpl extends ServiceImpl<WorkflowWorkNodeMap
                         sendMessage(nodeDO, adminUserDO.getId(), "MESSAGE_005", templateParams);
                     }
                 }
+                // 上锁人归还硬件
+                if (!jtlockerIds.isEmpty() && StringUtils.isNotBlank(nodeProgress) && "3".equals(nodeProgress)) {
+                    List<AdminUserDO> userList = adminUserService.getUserList(jtlockerIds);
+                    for (AdminUserDO adminUserDO : userList) {
+                        // 发送
+                        Map<String, Object> templateParams = new HashMap<>();
+                        templateParams.put("name", adminUserDO.getNickname());
+                        templateParams.put("names", jtcolockerName);
+                        sendMessage(nodeDO, adminUserDO.getId(), "MESSAGE_012", templateParams);
+                    }
+                }
             }
         }