From ef794cda8d11cfa4649e8abde1d9837912b51932 Mon Sep 17 00:00:00 2001 From: caihaohan Date: Thu, 26 Oct 2023 11:06:10 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E4=BC=81=E6=A0=87?= =?UTF-8?q?=E7=AB=8B=E9=A1=B9=E5=8F=98=E6=9B=B4=E5=8F=91=E8=B5=B7=E6=B5=81?= =?UTF-8?q?=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/service/ActFlowCommonService.java | 57 ++----------- .../ProcessEsAnnualReportServiceImpl.java | 2 +- .../impl/ProcessEsInitChangeServiceImpl.java | 82 ++++++++----------- 3 files changed, 39 insertions(+), 102 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java index 5b253eb6..5424c0b4 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java @@ -44,7 +44,7 @@ public class ActFlowCommonService { /** * 启动流程实例 */ - public ProcessInstance startProcess(String processDefinitionKey, InitChangeDataVO initChangeData, Map variables) { + public ProcessInstance startProcess(String processDefinitionKey, Map variables) { ProcessDefinition latestProcessDefinition = repositoryService.createProcessDefinitionQuery() .processDefinitionKey(processDefinitionKey) .orderByProcessDefinitionVersion().desc() @@ -58,29 +58,25 @@ public class ActFlowCommonService { // 流程定义ID String processDefinitionId = processInstance.getProcessDefinitionId(); log.info("【启动流程】- 成功,processDefinitionId:{}", processDefinitionId); + log.info("启动流程实例成功,流程定义ID为:{}", processDefinitionId); return processInstance; } /** * 完成提交任务 */ - public void completeTask(String remark, String taskId, String userId, Map map) { + public void completeTask(String taskId, String userId, Map map) { //任务Id 查询任务对象 Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); - - if (task == null) { + if (!taskExists(taskId)) { log.error("找不到对应任务"); throw new JeroBootException("找不到对应任务"); } - //任务对象 获取流程实例Id String processInstanceId = task.getProcessInstanceId(); - //设置审批人的userId Authentication.setAuthenticatedUserId(userId); - //添加记录 - taskService.addComment(taskId, processInstanceId, remark); log.info("-----------完成任务操作 开始----------"); log.info("任务Id=" + taskId); log.info("负责人id=" + userId); @@ -121,37 +117,6 @@ public class ActFlowCommonService { return listMap; } - /** - * 查看个人任务信息 - */ - public List> taskInfoList(String userid, CenterQueryVO centerQueryVO, Integer pageNo, Integer pageSize) { - //TODO 分页 - TaskQuery taskQuery = taskService.createTaskQuery().taskAssignee(userid); - - List list = taskQuery.orderByTaskCreateTime().desc().list(); - - List> listMap = new ArrayList<>(); - for (Task task : list) { - Map map = new HashMap<>(); - map.put("taskId", task.getId()); - map.put("prcId", task.getProcessInstanceId()); - map.put("prcName", task.getProcessDefinitionId()); - LoginUser assigneeUser = sysBaseAPI.getUserById(task.getAssignee()); - map.put("assignee", assigneeUser.getId()); - map.put("assigneeText", assigneeUser.getUsername()); - map.put("claimTaskTime", task.getCreateTime()); - ProcessInstance processInstance = runtimeService - .createProcessInstanceQuery() - .processInstanceId(task.getProcessInstanceId()) - .singleResult(); - - //TODO 根据流程Id找到对应业务流程实体 - - listMap.add(map); - } - return listMap; - } - /** * 转办 */ @@ -160,18 +125,6 @@ public class ActFlowCommonService { log.info("转办 任务Id:{} 转办用户Id{}", taskId, userId); } - /** - * 待办任务列表 - * @param centerQueryVO - * @param pageNo - * @param pageSize - * @return - */ - public List> todoTaskList(CenterQueryVO centerQueryVO, Integer pageNo, Integer pageSize) { - String userId = UserUtils.getUserId(); - return this.taskInfoList(userId, centerQueryVO, pageNo, pageSize); - } - /** * 判断任务是否存在 * @param taskId @@ -211,7 +164,7 @@ public class ActFlowCommonService { log.info("当前用户ID:{},相关联的流程定义ID:{}", userId, map.get("processDefinitionId").toString()); log.info("匹配到的任务ID:{}", map.get("taskId").toString()); - this.completeTask("同意", map.get("taskId").toString(), userId, map); + this.completeTask(map.get("taskId").toString(), userId, map); break; } } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualReport/service/impl/ProcessEsAnnualReportServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualReport/service/impl/ProcessEsAnnualReportServiceImpl.java index 4085bc15..befcc7e3 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualReport/service/impl/ProcessEsAnnualReportServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualReport/service/impl/ProcessEsAnnualReportServiceImpl.java @@ -102,7 +102,7 @@ public class ProcessEsAnnualReportServiceImpl extends ServiceImpl setVariables(InitChangeDataVO initChangeData) { - FlowUserInfoVO flowUserInfoVO = initChangeData.getFlowUserInfoVO(); - ProcessEsInitChange initChange = initChangeData.getDataList().get(0); - Map map = new HashMap<>(); - // 设置流程中各个节点的人 - map.put("createUser", UserUtils.getUserIdByUserName(flowUserInfoVO.getCreateUser())); - map.put("contactUser", flowUserInfoVO.getContactUser()); - map.put("standardExpertList", Optional.ofNullable(flowUserInfoVO.getStandardExpert()).map(s -> Arrays.asList(s.split(","))).orElse(Collections.emptyList())); - map.put("mainDraftUserLeader", flowUserInfoVO.getMainDraftUserLeader()); - map.put("mainDraftUserLeaderLeader", flowUserInfoVO.getMainDraftUserLeaderLeader()); - map.put("standardizationApprovalUser", flowUserInfoVO.getStandardizationApprovalUser()); - map.put("newMainDraftUserLeaderLeader", flowUserInfoVO.getNewMainDraftUserLeaderLeader()); - map.put("newMainDraftUserLeader", flowUserInfoVO.getNewMainDraftUserLeader()); - map.put("relatedUserList", Optional.ofNullable(flowUserInfoVO.getRelatedUser()).map(s -> Arrays.asList(s.split(","))).orElse(Collections.emptyList())); - map.put("copyUser", flowUserInfoVO.getCopyUser()); - // 设置流程分支判断变量 - map.put("applicationCategory", initChange.getApplicationCategory()); - map.put("projectType", initChange.getProjectType()); - return map; - } - - public void startRunTask(InitChangeDataVO initChangeData) { - List esInitChangeList = initChangeData.getDataList(); - // 校验企标编号是否冲突 - if (!esUtil.verifyEnStandardNumber(esInitChangeList.get(0).getOriginEnStandardNo())) { - throw new JeroBootException("企标编号冲突,请重新生成"); - } - } - @Override public InitChangeDataVO getHandleData(String taskId) { InitChangeDataVO initChangeDataVO = new InitChangeDataVO(); @@ -114,6 +83,7 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl variables = setVariables(initChangeData); // 启动流程 - ProcessInstance processInstance = actFlowCommonService.startProcess(processDefinitionKey, initChangeData, variables); + ProcessInstance processInstance = actFlowCommonService.startProcess(processDefinitionKey, variables); // 获取流程实例ID String processDefinitionId = processInstance.getProcessDefinitionId(); String processInstanceId = processInstance.getId(); - log.info("启动流程实例成功,流程定义ID为:{}", processDefinitionId); - // 完成第一个任务 - List> taskList = actFlowCommonService.myTaskList(userId); - if (!CollectionUtils.isEmpty(taskList)) { - for (Map map : taskList) { - if (map.get("assignee").toString().equals(userId) && - map.get("processDefinitionId").toString().equals(processDefinitionId) && - map.get("processInstanceId").toString().equals(processInstanceId)) { // 添加这一行来进行更精确的匹配 - - log.info("当前用户ID:{},相关联的流程定义ID:{}", userId, map.get("processDefinitionId").toString()); - log.info("匹配到的任务ID:{}", map.get("taskId").toString()); - - actFlowCommonService.completeTask("同意", map.get("taskId").toString(), userId, map); - break; - } - } - } + // 自动完成第一个任务 + actFlowCommonService.autoCompleteFirstTask(userId, processInstanceId, processDefinitionId); // 设置流程实例Id for (ProcessEsInitChange esInitChange : esInitChangeList) { esInitChange.setProcessInstanceId(processInstance.getId()); @@ -215,6 +170,35 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl setVariables(InitChangeDataVO initChangeData) { + FlowUserInfoVO flowUserInfoVO = initChangeData.getFlowUserInfoVO(); + ProcessEsInitChange initChange = initChangeData.getDataList().get(0); + Map map = new HashMap<>(); + // 设置流程中各个节点的人 + map.put("createUser", UserUtils.getUserIdByUserName(flowUserInfoVO.getCreateUser())); + map.put("contactUser", flowUserInfoVO.getContactUser()); + map.put("standardExpertList", Optional.ofNullable(flowUserInfoVO.getStandardExpert()).map(s -> Arrays.asList(s.split(","))).orElse(Collections.emptyList())); + map.put("mainDraftUserLeader", flowUserInfoVO.getMainDraftUserLeader()); + map.put("mainDraftUserLeaderLeader", flowUserInfoVO.getMainDraftUserLeaderLeader()); + map.put("standardizationApprovalUser", flowUserInfoVO.getStandardizationApprovalUser()); + map.put("newMainDraftUserLeaderLeader", flowUserInfoVO.getNewMainDraftUserLeaderLeader()); + map.put("newMainDraftUserLeader", flowUserInfoVO.getNewMainDraftUserLeader()); + map.put("relatedUserList", Optional.ofNullable(flowUserInfoVO.getRelatedUser()).map(s -> Arrays.asList(s.split(","))).orElse(Collections.emptyList())); + map.put("copyUser", flowUserInfoVO.getCopyUser()); + // 设置流程分支判断变量 + map.put("applicationCategory", initChange.getApplicationCategory()); + map.put("projectType", initChange.getProjectType()); + return map; + } + + public void startRunTask(InitChangeDataVO initChangeData) { + List esInitChangeList = initChangeData.getDataList(); + // 校验企标编号是否冲突 + if (!esUtil.verifyEnStandardNumber(esInitChangeList.get(0).getOriginEnStandardNo())) { + throw new JeroBootException("企标编号冲突,请重新生成"); + } + } + @Override public void removeByProcessInstanceId(String processInstanceId) { LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>();