Explorar el Código

修改作业节点信息

车车 hace 4 meses
padre
commit
bc6786d499

+ 2 - 2
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/controller/admin/workdesign/workflowwork/vo/WorkflowWorkRespVO.java

@@ -1,6 +1,6 @@
 package cn.iocoder.yudao.module.iscs.controller.admin.workdesign.workflowwork.vo;
 
-import cn.iocoder.yudao.module.iscs.dal.dataobject.workdesign.WorkflowWorkNodeDO;
+import cn.iocoder.yudao.module.iscs.controller.admin.workdesign.workflowworknode.vo.WorkflowWorkNodeRespVO;
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
@@ -88,6 +88,6 @@ public class WorkflowWorkRespVO {
     private LocalDateTime createTime;
 
     @Schema(description = "解析的节点信息")
-    private List<WorkflowWorkNodeDO> workflowWorkNodeDOList;
+    private List<WorkflowWorkNodeRespVO> workflowWorkNodeDOList;
 
 }

+ 80 - 31
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/controller/admin/workdesign/workflowworknode/vo/WorkflowWorkNodeRespVO.java

@@ -1,42 +1,40 @@
 package cn.iocoder.yudao.module.iscs.controller.admin.workdesign.workflowworknode.vo;
 
+import cn.iocoder.yudao.module.iscs.dal.dataobject.workdesign.WorkflowWorkNodeUserDO;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-import java.util.*;
-import org.springframework.format.annotation.DateTimeFormat;
+import lombok.Data;
+
 import java.time.LocalDateTime;
-import com.alibaba.excel.annotation.*;
+import java.util.List;
 
 @Schema(description = "管理后台 - 作业节点 Response VO")
 @Data
 @ExcelIgnoreUnannotated
 public class WorkflowWorkNodeRespVO {
 
-    @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "10183")
+    @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "26283")
     @ExcelProperty("主键ID")
     private Long id;
 
-    @Schema(description = "作业单ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "8928")
+    @Schema(description = "作业单ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "30320")
     @ExcelProperty("作业单ID")
     private Long workId;
 
-    @Schema(description = "节点唯一标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "20418")
+    @Schema(description = "节点唯一标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "12606")
     @ExcelProperty("节点唯一标识")
-    private String nodeId;
+    private String uuid;
 
-    @Schema(description = "父节点ID", example = "6764")
+    @Schema(description = "父节点ID", example = "26253")
     @ExcelProperty("父节点ID")
-    private Long parentId;
-
-    @Schema(description = "节点类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
-    @ExcelProperty("节点类型")
-    private String nodeType;
+    private String parentUuid;
 
-    @Schema(description = "节点类型ID", example = "9622")
-    @ExcelProperty("节点类型ID")
-    private Integer typeId;
+    @Schema(description = "子节点ID", example = "15064")
+    @ExcelProperty("子节点ID")
+    private String childrenUuid;
 
-    @Schema(description = "节点名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
+    @Schema(description = "节点名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
     @ExcelProperty("节点名称")
     private String nodeName;
 
@@ -44,26 +42,78 @@ public class WorkflowWorkNodeRespVO {
     @ExcelProperty("节点图标")
     private String nodeIcon;
 
+    @Schema(description = "节点类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+    @ExcelProperty("节点类型")
+    private String type;
+
     @Schema(description = "节点X坐标")
     @ExcelProperty("节点X坐标")
-    private Integer positionX;
+    private String position;
 
-    @Schema(description = "节点Y坐标")
-    @ExcelProperty("节点Y坐标")
-    private Integer positionY;
+    @Schema(description = "表单")
+    @ExcelProperty("表单")
+    private String data;
 
-    @Schema(description = "表单ID", example = "10671")
-    @ExcelProperty("表单ID")
-    private Long formId;
+    @Schema(description = "描述", example = "你猜")
+    @ExcelProperty("描述")
+    private String description;
 
-    @Schema(description = "负责人ID", example = "154")
+    @Schema(description = "负责人ID", example = "7919")
     @ExcelProperty("负责人ID")
     private Long workerUserId;
 
-    @Schema(description = "负责人分组ID", example = "25086")
+    @Schema(description = "负责人分组ID", example = "3719")
     @ExcelProperty("负责人分组ID")
     private Long workerGroupId;
 
+    @Schema(description = "表单ID", example = "16844")
+    @ExcelProperty("表单ID")
+    private Long formId;
+
+    @Schema(description = "短信模板ID", example = "1796")
+    @ExcelProperty("短信模板ID")
+    private Long smsTemplateId;
+
+    @Schema(description = "表单内容")
+    @ExcelProperty("表单内容")
+    private String formData;
+
+    @Schema(description = "站内信模板ID", example = "233")
+    @ExcelProperty("站内信模板ID")
+    private Long messageTemplateId;
+
+    @Schema(description = "节点状态", example = "2")
+    @ExcelProperty("节点状态")
+    private String approvalStatus;
+
+    @Schema(description = "邮件模板ID", example = "17553")
+    @ExcelProperty("邮件模板ID")
+    private Long emailTemplateId;
+
+    @Schema(description = "隔离方式", example = "2")
+    @ExcelProperty("隔离方式")
+    private String isolationType;
+
+    @Schema(description = "APP通知模板ID", example = "6277")
+    @ExcelProperty("APP通知模板ID")
+    private Long appTemplateId;
+
+    @Schema(description = "隔离点")
+    @ExcelProperty("隔离点")
+    private String isolationPoints;
+
+    @Schema(description = "被通知人ID", example = "20189")
+    @ExcelProperty("被通知人ID")
+    private Long notifyUserId;
+
+    @Schema(description = "被通知人分组ID", example = "20139")
+    @ExcelProperty("被通知人分组ID")
+    private Long notifyUserGroupId;
+
+    @Schema(description = "通知时间策略")
+    @ExcelProperty("通知时间策略")
+    private String notifyTime;
+
     @Schema(description = "通知消息配置")
     @ExcelProperty("通知消息配置")
     private String notifyConfig;
@@ -72,12 +122,11 @@ public class WorkflowWorkNodeRespVO {
     @ExcelProperty("特殊配置")
     private String specialConfig;
 
-    @Schema(description = "排序顺序")
-    @ExcelProperty("排序顺序")
-    private Integer sortOrder;
-
     @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
     @ExcelProperty("创建时间")
     private LocalDateTime createTime;
 
+    @Schema(description = "节点人员数据")
+    private List<WorkflowWorkNodeUserDO> nodeUserList;
+
 }

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

@@ -2,9 +2,9 @@ package cn.iocoder.yudao.module.iscs.controller.admin.workdesign.workflowworknod
 
 import cn.iocoder.yudao.module.iscs.dal.dataobject.workdesign.WorkflowWorkNodeUserDO;
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-import java.util.*;
-import jakarta.validation.constraints.*;
+import lombok.Data;
+
+import java.util.List;
 
 @Schema(description = "管理后台 - 作业节点新增/修改 Request VO")
 @Data
@@ -16,8 +16,14 @@ public class WorkflowWorkNodeSaveReqVO {
     @Schema(description = "节点名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
     private String nodeName;
 
-    @Schema(description = "fromid")
-    private Long fromId;
+    @Schema(description = "负责人ID")
+    private Long workerUserId;
+
+    @Schema(description = "负责人分组ID")
+    private Long workerGroupId;
+
+    @Schema(description = "formid")
+    private Long formId;
 
     @Schema(description = "隔离方式")
     private String isolationType;

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

@@ -11,7 +11,6 @@ import cn.iocoder.yudao.module.iscs.dal.mysql.workdesign.WorkflowWorkNodeMapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import jakarta.annotation.Resource;
-import org.checkerframework.checker.units.qual.A;
 import org.dromara.hutool.core.lang.Assert;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
@@ -40,9 +39,10 @@ public class WorkflowWorkNodeServiceImpl extends ServiceImpl<WorkflowWorkNodeMap
         Assert.notNull(updateReqVO.getNodeId(), "nodeId不能为空!");
         // 更新
         WorkflowWorkNodeDO updateObj = BeanUtils.toBean(updateReqVO, WorkflowWorkNodeDO.class);
+        updateObj.setId(updateReqVO.getNodeId());
         workflowWorkNodeMapper.updateById(updateObj);
         // 开始新建isc_workflow_work_node_user关联关系
-        if (!updateReqVO.getNodeUserDOList().isEmpty()) {
+        if (updateReqVO.getNodeUserDOList() != null && !updateReqVO.getNodeUserDOList().isEmpty()) {
             // 无论有没有 先删除再生成
             workflowWorkNodeUserService.remove(Wrappers.<WorkflowWorkNodeUserDO>lambdaQuery()
                     .eq(WorkflowWorkNodeUserDO::getNodeId, updateReqVO.getNodeId()));

+ 19 - 1
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/workdesign/WorkflowWorkServiceImpl.java

@@ -8,9 +8,11 @@ import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
 import cn.iocoder.yudao.module.iscs.controller.admin.workdesign.workflowwork.vo.WorkflowWorkPageReqVO;
 import cn.iocoder.yudao.module.iscs.controller.admin.workdesign.workflowwork.vo.WorkflowWorkRespVO;
 import cn.iocoder.yudao.module.iscs.controller.admin.workdesign.workflowwork.vo.WorkflowWorkSaveReqVO;
+import cn.iocoder.yudao.module.iscs.controller.admin.workdesign.workflowworknode.vo.WorkflowWorkNodeRespVO;
 import cn.iocoder.yudao.module.iscs.dal.dataobject.workdesign.WorkflowDesignDO;
 import cn.iocoder.yudao.module.iscs.dal.dataobject.workdesign.WorkflowWorkDO;
 import cn.iocoder.yudao.module.iscs.dal.dataobject.workdesign.WorkflowWorkNodeDO;
+import cn.iocoder.yudao.module.iscs.dal.dataobject.workdesign.WorkflowWorkNodeUserDO;
 import cn.iocoder.yudao.module.iscs.dal.mysql.workdesign.WorkflowWorkMapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -20,6 +22,7 @@ import org.springframework.validation.annotation.Validated;
 
 import java.time.LocalDateTime;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 作业 Service 实现类
@@ -36,6 +39,8 @@ public class WorkflowWorkServiceImpl extends ServiceImpl<WorkflowWorkMapper, Wor
     private WorkflowDesignService workflowDesignService;
     @Resource
     private WorkflowWorkNodeService workflowWorkNodeService;
+    @Resource
+    private WorkflowWorkNodeUserService workflowWorkNodeUserService;
 
     @Override
     public Long createWorkflowWork(WorkflowWorkSaveReqVO createReqVO) {
@@ -111,11 +116,24 @@ public class WorkflowWorkServiceImpl extends ServiceImpl<WorkflowWorkMapper, Wor
     public WorkflowWorkRespVO getWorkflowWork(Long id) {
         WorkflowWorkDO workflowWork = workflowWorkMapper.selectById(id);
         WorkflowWorkRespVO bean = BeanUtils.toBean(workflowWork, WorkflowWorkRespVO.class);
+        // 1.解析的节点信息
         if (bean != null) {
             List<WorkflowWorkNodeDO> list = workflowWorkNodeService.list(Wrappers.<WorkflowWorkNodeDO>lambdaQuery()
                     .eq(WorkflowWorkNodeDO::getWorkId, id)
                     .orderByAsc(WorkflowWorkNodeDO::getId));
-            bean.setWorkflowWorkNodeDOList(list);
+            List<WorkflowWorkNodeRespVO> nodeRespVOS = BeanUtils.toBean(list, WorkflowWorkNodeRespVO.class);
+            bean.setWorkflowWorkNodeDOList(nodeRespVOS);
+
+            // 2.节点设置的人员信息
+            if (!list.isEmpty()) {
+                List<Long> nodeIds = list.stream().map(WorkflowWorkNodeDO::getId).collect(Collectors.toList());
+                List<WorkflowWorkNodeUserDO> nodeUserDOList = workflowWorkNodeUserService.list(Wrappers.<WorkflowWorkNodeUserDO>lambdaQuery()
+                        .in(WorkflowWorkNodeUserDO::getNodeId, nodeIds));
+                for (WorkflowWorkNodeRespVO vo : nodeRespVOS) {
+                    List<WorkflowWorkNodeUserDO> nodeUserDOS = nodeUserDOList.stream().filter(o -> o.getNodeId().equals(vo.getId())).toList();
+                    vo.setNodeUserList(nodeUserDOS);
+                }
+            }
         }
         return bean;
     }