From bfaaf2c9bc411dc12f5a0d4d3ce0e73a1937c59c Mon Sep 17 00:00:00 2001 From: caihaohan Date: Mon, 11 Dec 2023 16:04:00 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=B9=B4=E5=BA=A6=E5=88=B6=E4=BF=AE?= =?UTF-8?q?=E8=AE=A2-=E6=A0=87=E5=87=86=E5=8C=96=E5=8F=91=E8=B5=B7=20?= =?UTF-8?q?=E5=89=8D=E4=B8=A4=E4=B8=AA=E8=8A=82=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ESAnnualInitController.java | 15 ++- .../entity/AnnualInitTaskNameConstant.java | 3 +- .../entity/ProcessEsAnnualInit.java | 11 +++ .../entity/vo/AnnualInitDataVO.java | 3 +- .../service/ProcessEsAnnualInitService.java | 2 +- .../impl/ProcessEsAnnualInitServiceImpl.java | 95 +++++++++---------- 6 files changed, 71 insertions(+), 58 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/controller/ESAnnualInitController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/controller/ESAnnualInitController.java index 540ee61d..7a95ece0 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/controller/ESAnnualInitController.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/controller/ESAnnualInitController.java @@ -1,14 +1,18 @@ package com.jero.modules.activiti.process.esAnnualInit.controller; import com.jero.common.api.vo.Result; +import com.jero.common.api.vo.ResultCommon; import com.jero.common.aspect.annotation.AutoLog; import com.jero.common.aspect.annotation.Translation; import com.jero.common.constant.enums.YesOrNoEnum; +import com.jero.common.util.MessageUtils; import com.jero.modules.activiti.process.common.entity.TransferVO; import com.jero.modules.activiti.process.common.service.ActFlowCommonService; +import com.jero.modules.activiti.process.esAnnualInit.entity.ProcessEsAnnualInit; import com.jero.modules.activiti.process.esAnnualInit.entity.vo.AnnualInitDataVO; import com.jero.modules.activiti.process.esAnnualInit.service.ProcessEsAnnualInitService; +import com.jero.modules.activiti.process.esAnnualReport.entity.ProcessEsAnnualReport; import com.jero.modules.activiti.process.fb.service.IProcessHandleService; import io.swagger.annotations.*; import lombok.extern.slf4j.Slf4j; @@ -22,6 +26,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.InputStream; import java.io.OutputStream; +import java.util.List; import java.util.Map; @@ -87,7 +92,7 @@ public class ESAnnualInitController { @ApiOperation(value="企标年度制修订标准化发起流程-同意", notes="企标年度制修订标准化发起流程-同意") @PostMapping("/agree") public Result agree(@RequestBody AnnualInitDataVO annualInitData) { - annualInitService.approvalInitChange(annualInitData, true); + annualInitService.approvalProcess(annualInitData, true); return Result.OK(); } @@ -100,7 +105,7 @@ public class ESAnnualInitController { @ApiOperation(value="企标年度制修订标准化发起流程-驳回", notes="企标年度制修订标准化发起流程-驳回") @PostMapping("/reject") public Result reject(@RequestBody AnnualInitDataVO annualInitData) { - annualInitService.approvalInitChange(annualInitData, false); + annualInitService.approvalProcess(annualInitData, false); return Result.OK(); } @@ -142,9 +147,11 @@ public class ESAnnualInitController { Map resultMap = annualInitService.importData(file); Object flag = resultMap.get("flag"); if (flag == YesOrNoEnum.YES.getValue()) { - return Result.OK(resultMap.get("dataList")); + List dataList = (List) resultMap.get("dataList"); + return Result.OK(dataList); } else { - return Result.error("导入失败", resultMap.get("msg")); + List msg = (List) resultMap.get("msg"); + return Result.error(MessageUtils.getMessage(ResultCommon.IMPORT_ERROR), msg); } } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/entity/AnnualInitTaskNameConstant.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/entity/AnnualInitTaskNameConstant.java index c27c94ad..051cf416 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/entity/AnnualInitTaskNameConstant.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/entity/AnnualInitTaskNameConstant.java @@ -7,9 +7,10 @@ package com.jero.modules.activiti.process.esAnnualInit.entity; public class AnnualInitTaskNameConstant { public static final String STANDARD_ENGINEER_INIT = "标准化工程师发起"; - public static final String CONTACT_USER_EDIT = "部所联络人选取审批人"; + public static final String CONTACT_USER_SELECT = "部所联络人选取审批人"; public static final String STANDARD_ENGINEER_EDIT = "标准化工程师修改调整"; public static final String MAIN_DRAFT_LEADER_APPROVAL = "主起草单位主管级领导审批下发"; + public static final String CONTACT_USER_EDIT = "部所联络人修改调整"; public static final String MAIN_DRAFT_WRITE = "主起草人填写信息"; public static final String CONTACT_USER_COLLECT = "部所联络人汇总"; public static final String MAIN_DRAFT_LEADER_LEADER_APPROVAL = "主起草单位主管级领导审批"; diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/entity/ProcessEsAnnualInit.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/entity/ProcessEsAnnualInit.java index b53504fd..946c7edd 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/entity/ProcessEsAnnualInit.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/entity/ProcessEsAnnualInit.java @@ -252,6 +252,9 @@ public class ProcessEsAnnualInit implements Serializable { @ApiModelProperty(value = "主起草单位责任人") private String mainDraftingUnitResponsiblePerson; + /** + * 标准推进人 + */ @Excel(name = "*标准推进人", width = 15, orderNum = "16") @Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname") @ApiModelProperty(value = "标准推进人") @@ -304,6 +307,7 @@ public class ProcessEsAnnualInit implements Serializable { /** * 联络人 */ + @Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname") @Excel(name = "*联络人", width = 15, orderNum = "15") @ApiModelProperty(value = "联络人") private String contactUser; @@ -322,9 +326,16 @@ public class ProcessEsAnnualInit implements Serializable { @Dict(dicCode = "YN") private String rejectFlag; + /** + * 执行id + */ + @ApiModelProperty(value = "执行id") + private String executionId; + /** * 审批人 */ + @Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname") @ApiModelProperty(value = "审批人") private String approvalUser; diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/entity/vo/AnnualInitDataVO.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/entity/vo/AnnualInitDataVO.java index 81db4488..bab02e3a 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/entity/vo/AnnualInitDataVO.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/entity/vo/AnnualInitDataVO.java @@ -6,6 +6,7 @@ import com.jero.modules.activiti.process.esAnnualInit.entity.ProcessEsAnnualInit import lombok.Data; import java.util.List; +import java.util.Map; /** * @author: Mzaxd @@ -21,6 +22,6 @@ public class AnnualInitDataVO { private List dataList; @JsonProperty("flowUser") - private AnnualInitFlowUserVO flowUser; + private Map flowUser; } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/service/ProcessEsAnnualInitService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/service/ProcessEsAnnualInitService.java index ffc2514b..3ea35632 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/service/ProcessEsAnnualInitService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/service/ProcessEsAnnualInitService.java @@ -28,5 +28,5 @@ public interface ProcessEsAnnualInitService extends IService annualReportList = annualInitData.getDataList(); + String processDefinitionKey = ProcessType.ES_ANNUAL_INIT.getProcessKey(); // 通用数据 CommonVO commonVO = annualInitData.getCommonVO(); // 当前用户Id String userId = UserUtils.getUserId(); + // 人员数据 + Map variables = annualInitData.getFlowUser(); + // 业务数据 + List dataList = annualInitData.getDataList(); // 设置流程变量 - Map variables = this.setVariables(annualInitData); + Map actVariables = this.setVariables(annualInitData); + // 删除草稿 + actFlowCommonService.getExistDraftAndRemove(commonVO, ProcessTypeEnum.ES_ANNUAL_INIT); // 启动流程 - 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, commonVO); - // 设置流程实例Id - annualReportList.forEach(annualReport -> annualReport.setProcessInstanceId(processInstanceId)); - // 保存到业务流程表 - saveBatch(annualReportList); // 保存选人信息 processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, this.getUserMap(variables)); + // 保存数据 + dataList.forEach(data -> data.setProcessInstanceId(processInstanceId)); + saveBatch(dataList); // 根据流程实例id更新流程总表 String prcName = commonVO.getPrcName(); String prcMes = commonVO.getPrcMes(); Date dueTime = commonVO.getDueTime(); Integer prcType = ProcessTypeEnum.ES_ANNUAL_INIT.getValue(); actFlowCommonService.updateProcessAll(processInstanceId, userId, prcName, prcMes, prcType, dueTime); - } public void startRunTask(AnnualInitDataVO annualInitData) { @@ -125,13 +128,13 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl setVariables(AnnualInitDataVO annualInitData) { - AnnualInitFlowUserVO annualInitFlowUserVO = annualInitData.getFlowUser(); + Map actVariables = new HashMap<>(); + Map flowUser = annualInitData.getFlowUser(); List dataList = annualInitData.getDataList(); - List contactUserList = new ArrayList<>(); - dataList.forEach(item -> contactUserList.add(item.getContactUser())); - annualInitFlowUserVO.setContactUserList(contactUserList); - // 设置流程中各个节点的人 - return new HashMap<>(this.setUserVariables(annualInitFlowUserVO)); + List contactUserList = dataList.stream().map(ProcessEsAnnualInit::getContactUser).collect(Collectors.toList()); + actVariables.put("contactUserList", contactUserList); + actVariables.put("standardEngineer", flowUser.get("standardEngineer")); + return actVariables; } public Map setUserVariables(AnnualInitFlowUserVO userVO) { @@ -169,10 +172,13 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl executionIdList = actFlowCommonService.getAllChildExecutionIds(executionId); + executionIdList.add(executionId); AnnualInitDataVO annualInitDataVO = new AnnualInitDataVO(); // 使用流程引擎根据taskId找到流程实例Id String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId); - String processDefinitionId = actFlowCommonService.getProcessDefId(processInstanceId); // 获取流程通用数据 ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId); CommonVO commonVO = new CommonVO(); @@ -188,18 +194,17 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl nodeList = processNodeService.getNodeList(processDefinitionId, processInstanceId); - AnnualInitFlowUserVO annualInitFlowUserVO = new AnnualInitFlowUserVO(); - Map userMap = nodeList.stream().collect(Collectors.toMap(ProcessNode::getVariableName, node -> node)); -// annualInitFlowUserVO.setStandardEngineer(userMap.get("standardEngineer").getLinkUserIds()); -// annualInitFlowUserVO.setContactUserList(userMap.get("contactUserList").getLinkUserIds()); -// annualInitFlowUserVO.setWorkGroupUserList(userMap.get("workGroupUserList").getLinkUserIds()); -// annualInitFlowUserVO.setCollectUserLeader(userMap.get("collectUserLeader").getLinkUserIds()); -// annualInitFlowUserVO.setContactUserLeaderLeader(userMap.get("contactUserLeaderLeader").getLinkUserIds()); - return annualInitFlowUserVO; - } @Override - public void approvalInitChange(AnnualInitDataVO annualInitData, boolean pass) { + public void approvalProcess(AnnualInitDataVO annualInitData, boolean pass) { String userId = UserUtils.getUserId(); CommonVO commonVO = annualInitData.getCommonVO(); - AnnualInitFlowUserVO flowUserVO = annualInitData.getFlowUser(); + Map flowUserVO = annualInitData.getFlowUser(); List dataList = annualInitData.getDataList(); String taskId = commonVO.getTaskId(); // 获取task @@ -245,9 +239,8 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl d.setRejectFlag(YesOrNoEnum.NO.getValue())); @@ -258,7 +251,7 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl approvalUserList = new ArrayList<>(); dataList.forEach(d -> approvalUserList.add(d.getApprovalUser())); - flowUserVO.setApprovalUserList(approvalUserList); + taskService.setVariableLocal(taskId, "approvalUserList", approvalUserList); break; case STANDARD_ENGINEER_EDIT: @@ -267,7 +260,7 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl contactUserList = new ArrayList<>(); dataList.forEach(d -> contactUserList.add(d.getContactUser())); - flowUserVO.setApprovalUserList(contactUserList); + runtimeService.setVariable(processInstanceId, "contactUserList", contactUserList); break; case MAIN_DRAFT_LEADER_APPROVAL: @@ -278,7 +271,7 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl mainDraftUserList = new ArrayList<>(); dataList.forEach(d -> mainDraftUserList.add(d.getPrcMainDraftUser())); - flowUserVO.setApprovalUserList(mainDraftUserList); + taskService.setVariableLocal(taskId, "mainDraftUserList", mainDraftUserList); } break; @@ -300,8 +293,8 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl userMap = new HashMap<>(this.setUserVariables(flowUserVO)); - processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, userMap); +// Map userMap = new HashMap<>(this.setUserVariables(flowUserVO)); +// processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, userMap); } runtimeService.setVariable(processInstanceId, "pass", true); } else { @@ -416,11 +409,11 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl