From d8678be7e1556da5f42a5219c5310eb02b1afc80 Mon Sep 17 00:00:00 2001 From: caihaohan Date: Thu, 9 Nov 2023 16:16:13 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=81=E6=A0=87=E5=B0=81=E5=AD=98?= =?UTF-8?q?=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../process/common/enums/ProcessType.java | 6 +- .../controller/ESArchiveController.java | 32 +++---- .../esArchive/entity/vo/ESArchiveDataVO.java | 7 +- .../service/ProcessEsArchiveService.java | 2 +- .../impl/ProcessEsArchiveServiceImpl.java | 85 +++++++------------ 5 files changed, 56 insertions(+), 76 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/enums/ProcessType.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/enums/ProcessType.java index 193b791a..502313b6 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/enums/ProcessType.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/enums/ProcessType.java @@ -15,7 +15,11 @@ public enum ProcessType { ES_ANNUAL_REPORT("年度制修订-各部门主动上报", "2", "es-annual-report", "processEsAnnualReportServiceImpl"), ES_ANNUAL_INIT("年度制修订-标准化部门主动发起", "3", "es-annual-init", "processEsAnnualInitServiceImpl"), FB_ENTRY_CHANGE("标准法规入库/变更流程", "4", "fb-entry-change", "ProcessFbEntryChangeServiceImpl"), - ES_ABOLISH("标准法规入库/变更流程", "5", "es-abolish", "ProcessEsAbolishServiceImpl"), + ES_ABOLISH("企标废止流程", "5", "es-abolish", "ProcessEsAbolishServiceImpl"), + ES_ARCHIVE("企标封存流程", "6", "es-archive", "ProcessEsArchiveServiceImpl"), + ES_CHANGE("企标变更流程", "7", "es-change", "ProcessEsChangeServiceImpl"), + ES_RECHECK("企标复审流程", "8", "es-recheck", "ProcessEsRecheckServiceImpl"), + ES_ENABLE("已封存企标启用流程", "9", "es-enable", "ProcessEsEnableServiceImpl"), ; private final String name; diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esArchive/controller/ESArchiveController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esArchive/controller/ESArchiveController.java index bfedc6fe..6c9d5a14 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esArchive/controller/ESArchiveController.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esArchive/controller/ESArchiveController.java @@ -21,7 +21,7 @@ import javax.annotation.Resource; */ @Slf4j @RestController -@Api(tags = "企标封存发起流程") +@Api(tags = "企标封存流程") @RequestMapping("/process/es/archive") public class ESArchiveController { @@ -32,12 +32,12 @@ public class ESArchiveController { private ActFlowCommonService actFlowCommonService; /** - * 新增立项变更申请 + * 新增企标封存申请 * * @param archiveData */ - @AutoLog(value = "企标封存发起流程-发起流程") - @ApiOperation(value="企标封存发起流程-发起流程", notes="企标封存发起流程-发起流程") + @AutoLog(value = "企标封存流程-发起流程") + @ApiOperation(value="企标封存流程-发起流程", notes="企标封存流程-发起流程") @PostMapping("/start") public Result startProcess(@RequestBody ESArchiveDataVO archiveData) { archiveService.startProcess(archiveData); @@ -48,8 +48,8 @@ public class ESArchiveController { * 保存到待办 * @param archiveData */ - @AutoLog(value = "企标封存发起流程-保存") - @ApiOperation(value="企标封存发起流程-保存", notes="企标封存发起流程-保存") + @AutoLog(value = "企标封存流程-保存") + @ApiOperation(value="企标封存流程-保存", notes="企标封存流程-保存") @PostMapping("/save") public Result save(@RequestBody ESArchiveDataVO archiveData) { archiveService.saveToDraft(archiveData); @@ -60,8 +60,8 @@ public class ESArchiveController { * 保存到待办 * @param taskId */ - @AutoLog(value = "企标封存发起流程-办理") - @ApiOperation(value="企标封存发起流程-办理", notes="企标封存发起流程-办理") + @AutoLog(value = "企标封存流程-办理") + @ApiOperation(value="企标封存流程-办理", notes="企标封存流程-办理") @GetMapping("/handle/{taskId}") @Translation public Result handle(@PathVariable("taskId") String taskId) { @@ -73,11 +73,11 @@ public class ESArchiveController { * * @param archiveData */ - @AutoLog(value = "企标封存发起流程-同意") - @ApiOperation(value="企标封存发起流程-同意", notes="企标封存发起流程-同意") + @AutoLog(value = "企标封存流程-同意") + @ApiOperation(value="企标封存流程-同意", notes="企标封存流程-同意") @PostMapping("/agree") public Result agree(@RequestBody ESArchiveDataVO archiveData) { - archiveService.approvalInitChange(archiveData, true); + archiveService.approval(archiveData, true); return Result.OK(); } @@ -86,11 +86,11 @@ public class ESArchiveController { * * @param archiveData */ - @AutoLog(value = "企标封存发起流程-驳回") - @ApiOperation(value="企标封存发起流程-驳回", notes="企标封存发起流程-驳回") + @AutoLog(value = "企标封存流程-驳回") + @ApiOperation(value="企标封存流程-驳回", notes="企标封存流程-驳回") @PostMapping("/reject") public Result reject(@RequestBody ESArchiveDataVO archiveData) { - archiveService.approvalInitChange(archiveData, false); + archiveService.approval(archiveData, false); return Result.OK(); } @@ -98,8 +98,8 @@ public class ESArchiveController { * 转办 * */ - @AutoLog(value = "企标封存发起流程-转办") - @ApiOperation(value="企标封存发起流程-转办", notes="企标封存发起流程-转办") + @AutoLog(value = "企标封存流程-转办") + @ApiOperation(value="企标封存流程-转办", notes="企标封存流程-转办") @PostMapping(value = "/transfer") public Result transfer(@RequestBody TransferVO transferVO) { actFlowCommonService.transfer(transferVO.getTaskId(), transferVO.getUserId()); diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esArchive/entity/vo/ESArchiveDataVO.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esArchive/entity/vo/ESArchiveDataVO.java index 822941e4..74770656 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esArchive/entity/vo/ESArchiveDataVO.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esArchive/entity/vo/ESArchiveDataVO.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 @@ -16,11 +17,11 @@ import java.util.List; public class ESArchiveDataVO { @JsonProperty("common") - CommonVO common; + private CommonVO common; @JsonProperty("data") - ProcessEsArchive data; + private ProcessEsArchive data; @JsonProperty("flowUser") - ESArchiveFlowUserVO flowUser; + private Map flowUser; } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esArchive/service/ProcessEsArchiveService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esArchive/service/ProcessEsArchiveService.java index 94197b26..c4f0d552 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esArchive/service/ProcessEsArchiveService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esArchive/service/ProcessEsArchiveService.java @@ -17,5 +17,5 @@ public interface ProcessEsArchiveService extends IService { ESArchiveDataVO getHandleData(String taskId); - void approvalInitChange(ESArchiveDataVO archiveData, boolean pass); + void approval(ESArchiveDataVO archiveData, boolean pass); } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esArchive/service/impl/ProcessEsArchiveServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esArchive/service/impl/ProcessEsArchiveServiceImpl.java index 901b8df7..c39474c9 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esArchive/service/impl/ProcessEsArchiveServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esArchive/service/impl/ProcessEsArchiveServiceImpl.java @@ -14,6 +14,7 @@ import com.jero.modules.activiti.process.common.entity.ProcessDraft; import com.jero.modules.activiti.process.common.enums.ProcessType; import com.jero.modules.activiti.process.common.service.ActFlowCommonService; import com.jero.modules.activiti.process.common.service.ProcessDraftService; +import com.jero.modules.activiti.process.esAbolish.entity.vo.ESAbolishDataVO; import com.jero.modules.activiti.process.esArchive.entity.ProcessEsArchive; import com.jero.modules.activiti.process.esArchive.entity.vo.ESArchiveDataVO; import com.jero.modules.activiti.process.esArchive.entity.vo.ESArchiveFlowUserVO; @@ -67,7 +68,7 @@ public class ProcessEsArchiveServiceImpl extends ServiceImpl variables = archiveData.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 +102,29 @@ public class ProcessEsArchiveServiceImpl extends ServiceImpl setVariables(ESArchiveFlowUserVO flowUser) { - boolean counterSign = StrUtil.isNotBlank(flowUser.getRelatedUser()); - HashMap map = new HashMap<>(this.setUserVariables(flowUser)); - actFlowCommonService.putIfNotNull(map, "counterSign", counterSign); - return map; - } - - public Map setUserVariables(ESArchiveFlowUserVO 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) { + HashMap 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 +189,24 @@ public class ProcessEsArchiveServiceImpl extends ServiceImpl nodeList = processNodeService.getNodeList(processDefinitionId, processInstanceId); - ESArchiveFlowUserVO flowUser = new ESArchiveFlowUserVO(); - 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(ESArchiveDataVO archiveData, boolean pass) { + public void approval(ESArchiveDataVO abolishData, boolean pass) { String userId = UserUtils.getUserId(); - CommonVO commonVO = archiveData.getCommon(); - ProcessEsArchive data = archiveData.getData(); + CommonVO commonVO = abolishData.getCommon(); 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); - ESArchiveFlowUserVO flowUserInfoVO = archiveData.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); } }