From cca476d6943b210f8e897abd2ceb9c36a293254e Mon Sep 17 00:00:00 2001 From: caihaohan Date: Fri, 12 Jan 2024 15:00:31 +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=E6=B5=81?= =?UTF-8?q?=E7=A8=8B=E8=81=94=E7=BB=9C=E4=BA=BA=E9=A9=B3=E5=9B=9E=E5=90=8E?= =?UTF-8?q?=E6=96=B0=E5=8F=91=E8=B5=B7=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessESAnnualInitEndListener.java | 4 + .../impl/ProcessEsAnnualInitServiceImpl.java | 130 +++++++----------- 2 files changed, 55 insertions(+), 79 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/listener/ProcessESAnnualInitEndListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/listener/ProcessESAnnualInitEndListener.java index 0fb29208..c5a4c0d6 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/listener/ProcessESAnnualInitEndListener.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/listener/ProcessESAnnualInitEndListener.java @@ -57,6 +57,10 @@ public class ProcessESAnnualInitEndListener implements ExecutionListener { LambdaQueryWrapper esAnnualInitWrapper = new LambdaQueryWrapper<>(); esAnnualInitWrapper.eq(ProcessEsAnnualInit::getProcessInstanceId, processInstanceId); List annualInits = annualInitService.list(esAnnualInitWrapper); + if (annualInits == null || annualInits.isEmpty()) { + log.info("年度制修订标准化发起流程结束 监听执行器未找到流程业务数据"); + return; + } List enterpriseStandardPlans; // 立项新增-Id置空 annualInits.forEach(annualInit -> annualInit.setId(null)); diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/service/impl/ProcessEsAnnualInitServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/service/impl/ProcessEsAnnualInitServiceImpl.java index 69228693..88d39394 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/service/impl/ProcessEsAnnualInitServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/service/impl/ProcessEsAnnualInitServiceImpl.java @@ -99,8 +99,6 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl actVariables = new HashMap<>(); + actVariables.put("standardEngineer", standardEngineer); + // 流程Key + String processDefinitionKey = ProcessType.ES_ANNUAL_INIT.getProcessKey(); + // 业务数据 + List dataList = annualInitData.getDataList(); + // 启动流程 + ProcessInstance processInstance = actFlowCommonService.startProcess(processDefinitionKey, actVariables); + // 获取流程实例ID + String processDefinitionId = processInstance.getProcessDefinitionId(); + String processInstanceId = processInstance.getId(); + // 手动设置所有流程变量 + actFlowCommonService.setProcessVariables(processInstanceId, actVariables); + // 保存选人信息 + processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, this.getUserMap(actVariables)); + // 保存数据 + dataList.forEach(data -> data.setProcessInstanceId(processInstanceId)); + dataList.forEach(ProcessEsAnnualInit::setDateEditFlag); + saveOrUpdateBatch(dataList); + // 根据流程实例id更新流程总表 + String prcName = processAll.getPrcName(); + String prcMes = processAll.getPrcMes(); + Date dueTime = processAll.getDueTime(); + Integer prcType = ProcessTypeEnum.ES_ANNUAL_INIT.getValue(); + actFlowCommonService.updateProcessAll(processInstanceId, standardEngineer, prcName, prcMes, prcType, dueTime); + } + public void startRunTask(AnnualInitDataVO annualInitData) { // do nothing now } @@ -150,16 +183,6 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl setUserVariables(AnnualInitFlowUserVO userVO) { - HashMap map = new HashMap<>(); - // 使用一个通用方法来只在不为空时添加键值对 - actFlowCommonService.putIfNotNull(map, "standardEngineer", userVO.getStandardEngineer()); - actFlowCommonService.putIfNotNull(map, "contactUserList", userVO.getContactUserList()); - actFlowCommonService.putIfNotNull(map, "approvalUserList", userVO.getApprovalUserList()); - actFlowCommonService.putIfNotNull(map, "mainDraftUserList", userVO.getMainDraftUserList()); - return map; - } - private Map getUserMap(Map variables) { // 转成逗号拼接 variables.put("contactUserList", Optional.ofNullable((HashSet) variables.get("contactUserList")) @@ -208,14 +231,6 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl flowUser = annualInitData.getFlowUser(); String taskId = commonVO.getTaskId(); // 获取task if (StrUtil.isBlank(taskId) && !actFlowCommonService.taskExists(taskId)) { @@ -274,8 +290,11 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl userMap = new HashMap<>(); - boolean batchDelFlag = StrUtil.isNotBlank(annualInitData.getBatchRejectIds()); +// boolean batchDelFlag = StrUtil.isNotBlank(annualInitData.getBatchRejectIds()); switch (taskName) { + case STANDARD_ENGINEER_INIT: + + break; case CONTACT_USER_SELECT: dataList = annualInitData.getDataList(); // 处理驳回 @@ -290,52 +309,11 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl data.setExecutionId(executionId)); saveOrUpdateBatch(dataList); } else { - if (dataList == null) { - // 找到所有数据,然后设置驳回标志位 - updateWrapper.eq(ProcessEsAnnualInit::getContactUser, userId); - updateWrapper.set(ProcessEsAnnualInit::getRejectFlag, YesOrNoEnum.YES.getValue()); - updateWrapper.set(ProcessEsAnnualInit::getExecutionId, executionId); - update(updateWrapper); - } else { - dataList.forEach(d -> d.setRejectFlag(YesOrNoEnum.YES.getValue())); - dataList.forEach(data -> data.setExecutionId(executionId)); - saveOrUpdateBatch(dataList); - } - } - break; - case STANDARD_ENGINEER_SECOND_EDIT: - dataList = annualInitData.getDataList(); - dataList.forEach(d -> d.setRejectSecondFlag(YesOrNoEnum.NO.getValue())); - dataList.forEach(d -> d.setRejectFlag(YesOrNoEnum.YES.getValue())); - dataList.forEach(d -> d.setExecutionId(executionId)); - dataList.forEach(ProcessEsAnnualInit::setDateEditFlag); - dataList.forEach(data -> data.setProcessInstanceId(processInstanceId)); - // 先删后增 - if (batchDelFlag) { - saveOrUpdateBatch(dataList); - } else { - wrapper.eq(ProcessEsAnnualInit::getContactUser, contactUser); - wrapper.eq(ProcessEsAnnualInit::getExecutionId, executionId); - wrapper.eq(ProcessEsAnnualInit::getRejectSecondFlag, YesOrNoEnum.YES.getValue()); - remove(wrapper); - saveBatch(dataList); - } - break; - case STANDARD_ENGINEER_EDIT: - dataList = annualInitData.getDataList(); - dataList.forEach(d -> d.setRejectFlag(YesOrNoEnum.NO.getValue())); - dataList.forEach(ProcessEsAnnualInit::setDateEditFlag); - dataList.forEach(data -> data.setProcessInstanceId(processInstanceId)); - dataList.forEach(data -> data.setExecutionId(executionId)); - // 先删后增 - if (batchDelFlag) { - saveOrUpdateBatch(dataList); - } else { - wrapper.eq(ProcessEsAnnualInit::getContactUser, contactUser); - wrapper.eq(ProcessEsAnnualInit::getExecutionId, executionId); - wrapper.eq(ProcessEsAnnualInit::getRejectFlag, YesOrNoEnum.YES.getValue()); - remove(wrapper); - saveBatch(dataList); + // 找到所有被驳回的数据,发起新流程 + wrapper.eq(ProcessEsAnnualInit::getContactUser, userId); + List list = list(wrapper); + annualInitData.setDataList(list); + this.restartProcess(annualInitData, taskId); } break; case MAIN_DRAFT_LEADER_APPROVAL_DISTRIBUTE: @@ -372,17 +350,11 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl d.setRejectSecondFlag(YesOrNoEnum.YES.getValue())); - dataList.forEach(data -> data.setExecutionId(executionId)); - saveOrUpdateBatch(dataList); - } + // 找到所有被驳回的数据,发起新流程 + wrapper.eq(ProcessEsAnnualInit::getContactUser, userId); + List list = list(wrapper); + annualInitData.setDataList(list); + this.restartProcess(annualInitData, taskId); } break; case MAIN_DRAFT_WRITE: @@ -542,7 +514,7 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl esMap = esList.stream().collect(Collectors.toMap(LawsEnterpriseStandard::getStandardNumber, item -> item)); - list.forEach(item-> { + list.forEach(item -> { // 如果是制定则去除掉所有的原企标名称 原企标编号 if (ESPProjectType.ENACT.getValue().equals(item.getProjectType())) { item.setOriginEnStandardName(null);