Pārlūkot izejas kodu

补充流程细节

车车 3 mēneši atpakaļ
vecāks
revīzija
4ce876c914

+ 6 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/controller/admin/workdesign/workflowworknode/vo/WorkflowWorkNodeSaveReqVO.java

@@ -52,4 +52,10 @@ public class WorkflowWorkNodeSaveReqVO {
     @Schema(description = "APP通知模板CODE")
     private String appTemplateCode;
 
+    @Schema(description = "上锁人")
+    private String lockPerson;
+
+    @Schema(description = "共锁人")
+    private String colockPersons;
+
 }

+ 17 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/workdesign/WorkflowWorkNodeServiceImpl.java

@@ -26,6 +26,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import jakarta.annotation.Resource;
+import jakarta.transaction.Transactional;
 import org.apache.commons.lang3.StringUtils;
 import org.dromara.hutool.core.lang.Assert;
 import org.springframework.context.annotation.Lazy;
@@ -71,6 +72,7 @@ public class WorkflowWorkNodeServiceImpl extends ServiceImpl<WorkflowWorkNodeMap
     private IsolationPointService isolationPointService;
 
 
+    @Transactional
     @Override
     public void updateWorkflowWorkNode(WorkflowWorkNodeSaveReqVO updateReqVO) {
         Assert.notNull(updateReqVO.getNodeId(), "nodeId不能为空!");
@@ -99,6 +101,21 @@ public class WorkflowWorkNodeServiceImpl extends ServiceImpl<WorkflowWorkNodeMap
             analysisPointSave(updateReqVO.getNodeId(), updateReqVO.getIsolationPoints());
         }
 
+        // 检测,如果这个点位是隔离节点,并且他的有对应的解除隔离,需要更新解除隔离
+        if (byId.getType().equals(WorkTypeEnum.ISOLATION.getValue())) {
+            List<WorkflowWorkNodeDO> list = list(Wrappers.<WorkflowWorkNodeDO>lambdaQuery()
+                    .eq(WorkflowWorkNodeDO::getWorkId, byId.getWorkId())
+                    .eq(WorkflowWorkNodeDO::getIsolationNodeUuid, byId.getUuid()));
+            if (!list.isEmpty()) {
+                List<Long> ids = list.stream().map(WorkflowWorkNodeDO::getId).toList();
+                update(Wrappers.<WorkflowWorkNodeDO>lambdaUpdate()
+                        .in(WorkflowWorkNodeDO::getId, ids)
+                        .set(WorkflowWorkNodeDO::getIsolationPoints, updateReqVO.getIsolationPoints())
+                        .set(WorkflowWorkNodeDO::getLockPerson, byId.getLockPerson())
+                        .set(WorkflowWorkNodeDO::getColockPersons, byId.getColockPersons()));
+            }
+        }
+
     }
 
 

+ 4 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/workdesign/WorkflowWorkNodeUserService.java

@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.iscs.service.workdesign;
 
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.module.iscs.controller.admin.workdesign.workflowworknodeuser.vo.WorkflowWorkNodeUserPageReqVO;
+import cn.iocoder.yudao.module.iscs.controller.admin.workdesign.workflowworknodeuser.vo.WorkflowWorkNodeUserRespVO;
 import cn.iocoder.yudao.module.iscs.controller.admin.workdesign.workflowworknodeuser.vo.WorkflowWorkNodeUserSaveReqVO;
 import cn.iocoder.yudao.module.iscs.dal.dataobject.workdesign.WorkflowWorkNodeUserDO;
 import com.baomidou.mybatisplus.extension.service.IService;
@@ -61,4 +62,7 @@ public interface WorkflowWorkNodeUserService extends IService<WorkflowWorkNodeUs
      */
     PageResult<WorkflowWorkNodeUserDO> getWorkflowWorkNodeUserPage(WorkflowWorkNodeUserPageReqVO pageReqVO);
 
+
+    List<WorkflowWorkNodeUserRespVO> getNodeUserByNodeIds(List<Long> nodeIds);
+
 }

+ 29 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/workdesign/WorkflowWorkNodeUserServiceImpl.java

@@ -3,9 +3,13 @@ package cn.iocoder.yudao.module.iscs.service.workdesign;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.module.iscs.controller.admin.workdesign.workflowworknodeuser.vo.WorkflowWorkNodeUserPageReqVO;
+import cn.iocoder.yudao.module.iscs.controller.admin.workdesign.workflowworknodeuser.vo.WorkflowWorkNodeUserRespVO;
 import cn.iocoder.yudao.module.iscs.controller.admin.workdesign.workflowworknodeuser.vo.WorkflowWorkNodeUserSaveReqVO;
 import cn.iocoder.yudao.module.iscs.dal.dataobject.workdesign.WorkflowWorkNodeUserDO;
 import cn.iocoder.yudao.module.iscs.dal.mysql.workdesign.WorkflowWorkNodeUserMapper;
+import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
+import cn.iocoder.yudao.module.system.service.user.AdminUserService;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import jakarta.annotation.Resource;
 import org.springframework.stereotype.Service;
@@ -24,6 +28,8 @@ public class WorkflowWorkNodeUserServiceImpl extends ServiceImpl<WorkflowWorkNod
 
     @Resource
     private WorkflowWorkNodeUserMapper workflowWorkNodeUserMapper;
+    @Resource
+    private AdminUserService adminUserService;
 
     @Override
     public Long createWorkflowWorkNodeUser(WorkflowWorkNodeUserSaveReqVO createReqVO) {
@@ -65,4 +71,27 @@ public class WorkflowWorkNodeUserServiceImpl extends ServiceImpl<WorkflowWorkNod
         return workflowWorkNodeUserMapper.selectPage(pageReqVO);
     }
 
+    @Override
+    public List<WorkflowWorkNodeUserRespVO> getNodeUserByNodeIds(List<Long> nodeIds) {
+        List<WorkflowWorkNodeUserDO> nodeUserDOList = list(Wrappers.<WorkflowWorkNodeUserDO>lambdaQuery()
+                .in(WorkflowWorkNodeUserDO::getNodeId, nodeIds));
+        List<WorkflowWorkNodeUserRespVO> bean = BeanUtils.toBean(nodeUserDOList, WorkflowWorkNodeUserRespVO.class);
+        if (!bean.isEmpty()) {
+            List<Long> userIds = bean.stream().map(WorkflowWorkNodeUserRespVO::getUserId).toList();
+            List<AdminUserDO> userList = adminUserService.getUserList(userIds);
+            for (WorkflowWorkNodeUserRespVO vo : bean) {
+                for (AdminUserDO adminUserDO : userList) {
+                    if (vo.getUserId().equals(adminUserDO.getId())) {
+                        vo.setNickname(adminUserDO.getNickname());
+                        vo.setUsername(adminUserDO.getUsername());
+                        vo.setAvatar(adminUserDO.getAvatar());
+                        vo.setMobile(adminUserDO.getMobile());
+                        vo.setCardNfc(adminUserDO.getCardNfc());
+                    }
+                }
+            }
+        }
+        return bean;
+    }
+
 }

+ 3 - 4
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/workdesign/WorkflowWorkServiceImpl.java

@@ -183,11 +183,10 @@ public class WorkflowWorkServiceImpl extends ServiceImpl<WorkflowWorkMapper, Wor
             if (!list.isEmpty()) {
                 List<Long> nodeIds = list.stream().map(WorkflowWorkNodeDO::getId).collect(Collectors.toList());
                 // 2.节点设置的人员信息
-                List<WorkflowWorkNodeUserDO> nodeUserDOList = workflowWorkNodeUserService.list(Wrappers.<WorkflowWorkNodeUserDO>lambdaQuery()
-                        .in(WorkflowWorkNodeUserDO::getNodeId, nodeIds));
+                List<WorkflowWorkNodeUserRespVO> nodeUserByNodeIds = workflowWorkNodeUserService.getNodeUserByNodeIds(nodeIds);
                 for (WorkflowWorkNodeRespVO vo : nodeRespVOS) {
-                    List<WorkflowWorkNodeUserDO> nodeUserDOS = nodeUserDOList.stream().filter(o -> o.getNodeId().equals(vo.getId())).toList();
-                    vo.setNodeUserList(BeanUtils.toBean(nodeUserDOS, WorkflowWorkNodeUserRespVO.class));
+                    List<WorkflowWorkNodeUserRespVO> nodeUserDOS = nodeUserByNodeIds.stream().filter(o -> o.getNodeId().equals(vo.getId())).toList();
+                    vo.setNodeUserList(nodeUserDOS);
                 }
 
                 // 3.节点设置的点位信息