From 1e6b94273d2949ce80aab9ffacf850ce40287f52 Mon Sep 17 00:00:00 2001 From: caihaohan Date: Thu, 9 Nov 2023 17:48:30 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=81=E6=A0=87=E5=B7=B2=E5=B0=81?= =?UTF-8?q?=E5=AD=98=E5=90=AF=E7=94=A8=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ESEnableController.java | 4 +- .../esEnable/entity/vo/ESEnableDataVO.java | 3 +- .../entity/vo/ESEnableFlowUserVO.java | 34 ------- .../service/ProcessEsEnableService.java | 2 +- .../impl/ProcessEsEnableServiceImpl.java | 90 ++++++------------- 5 files changed, 33 insertions(+), 100 deletions(-) delete mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/esEnable/entity/vo/ESEnableFlowUserVO.java diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esEnable/controller/ESEnableController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esEnable/controller/ESEnableController.java index 845d885a..75d3a242 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esEnable/controller/ESEnableController.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esEnable/controller/ESEnableController.java @@ -77,7 +77,7 @@ public class ESEnableController { @ApiOperation(value="企标启用发起流程-同意", notes="企标启用发起流程-同意") @PostMapping("/agree") public Result agree(@RequestBody ESEnableDataVO enableData) { - enableService.approvalInitChange(enableData, true); + enableService.approval(enableData, true); return Result.OK(); } @@ -90,7 +90,7 @@ public class ESEnableController { @ApiOperation(value="企标启用发起流程-驳回", notes="企标启用发起流程-驳回") @PostMapping("/reject") public Result reject(@RequestBody ESEnableDataVO enableData) { - enableService.approvalInitChange(enableData, false); + enableService.approval(enableData, false); return Result.OK(); } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esEnable/entity/vo/ESEnableDataVO.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esEnable/entity/vo/ESEnableDataVO.java index 0d0868f9..9fc70402 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esEnable/entity/vo/ESEnableDataVO.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esEnable/entity/vo/ESEnableDataVO.java @@ -7,6 +7,7 @@ import com.jero.modules.activiti.process.esInitChange.entity.ProcessEsInitChange import lombok.Data; import java.util.List; +import java.util.Map; /** * @author: Mzaxd @@ -22,5 +23,5 @@ public class ESEnableDataVO { ProcessEsEnable data; @JsonProperty("flowUser") - ESEnableFlowUserVO flowUser; + Map flowUser; } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esEnable/entity/vo/ESEnableFlowUserVO.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esEnable/entity/vo/ESEnableFlowUserVO.java deleted file mode 100644 index f7f8c4f5..00000000 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esEnable/entity/vo/ESEnableFlowUserVO.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.jero.modules.activiti.process.esEnable.entity.vo; - -import com.jero.common.aspect.annotation.Dict; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -/** - * @author: Mzaxd - * @Date: 2023/10/9 16:57 - */ -@Data -public class ESEnableFlowUserVO { - - // 创建人 - @Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname") - @ApiModelProperty("创建人") - private String createUser; - - // 相关人员 - @Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname") - @ApiModelProperty("相关人员") - private String relatedUser; - - // 创建人 - @Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname") - @ApiModelProperty("起草人和会签人主管级领导") - private String leader; - - // 标准化审批人 - @Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname") - @ApiModelProperty("标准化审批人") - private String standardizationUser; - -} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esEnable/service/ProcessEsEnableService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esEnable/service/ProcessEsEnableService.java index d1d7ac1e..8b824852 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esEnable/service/ProcessEsEnableService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esEnable/service/ProcessEsEnableService.java @@ -17,6 +17,6 @@ public interface ProcessEsEnableService extends IService { ESEnableDataVO getHandleData(String taskId); - void approvalInitChange(ESEnableDataVO enableData, boolean pass); + void approval(ESEnableDataVO enableData, boolean pass); } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esEnable/service/impl/ProcessEsEnableServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esEnable/service/impl/ProcessEsEnableServiceImpl.java index 2cafe19d..ecf51871 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esEnable/service/impl/ProcessEsEnableServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esEnable/service/impl/ProcessEsEnableServiceImpl.java @@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.constant.enums.YesOrNoEnum; import com.jero.common.exception.JeroBootException; import com.jero.modules.activiti.entity.ProcessAll; -import com.jero.modules.activiti.entity.ProcessNode; import com.jero.modules.activiti.enums.ProcessTypeEnum; import com.jero.modules.activiti.process.common.entity.CommonVO; import com.jero.modules.activiti.process.common.entity.ProcessDraft; @@ -16,12 +15,10 @@ import com.jero.modules.activiti.process.common.service.ActFlowCommonService; import com.jero.modules.activiti.process.common.service.ProcessDraftService; import com.jero.modules.activiti.process.esEnable.entity.ProcessEsEnable; import com.jero.modules.activiti.process.esEnable.entity.vo.ESEnableDataVO; -import com.jero.modules.activiti.process.esEnable.entity.vo.ESEnableFlowUserVO; import com.jero.modules.activiti.process.esEnable.service.ProcessEsEnableService; import com.jero.modules.activiti.process.esEnable.mapper.ProcessEsEnableMapper; import com.jero.modules.activiti.service.ProcessAllService; import com.jero.modules.activiti.service.ProcessNodeLinkService; -import com.jero.modules.activiti.service.ProcessNodeService; import com.jero.modules.sys.utils.UserUtils; import lombok.extern.slf4j.Slf4j; import org.activiti.engine.RuntimeService; @@ -31,7 +28,6 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.*; -import java.util.stream.Collectors; /** * @author ThinkBook @@ -56,9 +52,6 @@ public class ProcessEsEnableServiceImpl extends ServiceImpl variables = enableData.getFlowUser(); // 设置流程变量 - Map variables = this.setVariables(flowUser); + Map actVariables = this.setVariables(variables); // 启动流程 - ProcessInstance processInstance = actFlowCommonService.startProcess(processDefinitionKey, variables); + ProcessInstance processInstance = actFlowCommonService.startProcess(processDefinitionKey, actVariables); // 获取流程实例ID String processDefinitionId = processInstance.getProcessDefinitionId(); String processInstanceId = processInstance.getId(); // 手动设置所有流程变量 - actFlowCommonService.setProcessVariables(processInstanceId, variables); + actFlowCommonService.setProcessVariables(processInstanceId, actVariables); // 自动完成第一个任务 actFlowCommonService.autoCompleteFirstTask(userId, processInstanceId, processDefinitionId, common); // 设置流程实例Id @@ -101,30 +94,29 @@ public class ProcessEsEnableServiceImpl extends ServiceImpl setVariables(ESEnableFlowUserVO flowUser) { - boolean counterSign = StrUtil.isNotBlank(flowUser.getRelatedUser()); - HashMap map = new HashMap<>(this.setUserVariables(flowUser)); - actFlowCommonService.putIfNotNull(map, "counterSign", counterSign); - return map; - } - - public Map setUserVariables(ESEnableFlowUserVO flowUser) { - HashMap map = new HashMap<>(); - // 使用一个通用方法来只在不为空时添加键值对 - actFlowCommonService.putIfNotNull(map, "createUser", flowUser.getCreateUser()); - actFlowCommonService.putIfNotNull(map, "leader", flowUser.getLeader()); - actFlowCommonService.putIfNotNull(map, "standardizationApprovalUser", flowUser.getStandardizationUser()); - actFlowCommonService.putIfNotNull(map, "relatedUserList", Optional.ofNullable(flowUser.getRelatedUser()).map(s -> Arrays.asList(s.split(","))).orElse(null)); - return map; + public Map setVariables(Map flowUser) { + Map actVariables = new HashMap<>(); + if (flowUser.get("relatedUserList") == null || StrUtil.isBlank((String)flowUser.get("relatedUserList"))) { + actFlowCommonService.putIfNotNull(actVariables, "countersign", false); + } else { + actFlowCommonService.putIfNotNull(actVariables, "countersign", true); + String relatedUsers = (String) flowUser.get("relatedUserList"); + // 将relatedUserList从逗号拼接转为List + List relatedUserList = StrUtil.split(relatedUsers, ','); + actFlowCommonService.putIfNotNull(actVariables, "relatedUserList", relatedUserList); + } + for (Map.Entry entry : flowUser.entrySet()) { + String key = entry.getKey(); + if (!key.equals("relatedUserList")) { + actVariables.put(key, entry.getValue()); + } + } + return actVariables; } private Map getUserMap(Map variables) { variables.remove("pass"); - variables.remove("counterSign"); - // 转成逗号拼接 - variables.put("relatedUserList", Optional.ofNullable((List) variables.get("relatedUserList")) - .map(list -> String.join(",", list)) - .orElse("")); + variables.remove("countersign"); return variables; } @@ -189,49 +181,23 @@ public class ProcessEsEnableServiceImpl extends ServiceImpl nodeList = processNodeService.getNodeList(processDefinitionId, processInstanceId); - ESEnableFlowUserVO flowUser = new ESEnableFlowUserVO(); - Map userMap = nodeList.stream().collect(Collectors.toMap(ProcessNode::getVariableName, node -> node)); - Optional.ofNullable(userMap.get("createUser")).ifPresent(node -> flowUser.setCreateUser(node.getLinkUserIds())); - Optional.ofNullable(userMap.get("leader")).ifPresent(node -> flowUser.setLeader(node.getLinkUserIds())); - Optional.ofNullable(userMap.get("standardizationUser")).ifPresent(node -> flowUser.setStandardizationUser(node.getLinkUserIds())); - Optional.ofNullable(userMap.get("relatedUserList")).ifPresent(node -> flowUser.setRelatedUser(node.getLinkUserIds())); - return flowUser; - } - @Override - public void approvalInitChange(ESEnableDataVO enableData, boolean pass) { + public void approval(ESEnableDataVO enableData, boolean pass) { String userId = UserUtils.getUserId(); CommonVO commonVO = enableData.getCommon(); - ProcessEsEnable data = enableData.getData(); String taskId = commonVO.getTaskId(); if (StrUtil.isBlank(taskId) && !actFlowCommonService.taskExists(taskId)) { throw new JeroBootException("taskId为空或任务不存在"); } String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId); - String processDefinitionId = actFlowCommonService.getProcessDefId(processInstanceId); - if (pass) { - if (data != null) { - saveOrUpdate(data); - ESEnableFlowUserVO flowUserInfoVO = enableData.getFlowUser(); - Map variables = this.setVariables(flowUserInfoVO); - processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, this.getUserMap(variables)); - actFlowCommonService.setProcessVariables(processInstanceId, variables); - } - runtimeService.setVariable(processInstanceId, "pass", true); - } else { - // 设置流程变量 - runtimeService.setVariable(processInstanceId, "pass", false); - } + // 设置流程变量 + runtimeService.setVariable(processInstanceId, "pass", pass); // 更新审批表为完成,填充数据 actFlowCommonService.updateApprovalInfo(commonVO, taskId, pass); - //审批节点 + // 审批节点 actFlowCommonService.completeTask(taskId, userId); } }