From 1e7c0f4705f2f666c32888cb2ec992a3dbc0b271 Mon Sep 17 00:00:00 2001 From: caihaohan Date: Thu, 11 Jul 2024 17:59:35 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20scc=E6=B5=81=E7=A8=8B=E5=90=84=E9=83=A8?= =?UTF-8?q?=E9=97=A8=E6=8E=A5=E5=8F=A3=E4=BA=BA=E5=88=86=E5=8F=91=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E6=95=B0=E6=8D=AE=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/service/ActFlowCommonService.java | 109 ++---------- .../ProcessStandardComplianceCheck.java | 2 + ...essStandardComplianceCheckServiceImpl.java | 167 ++++++++++-------- 3 files changed, 110 insertions(+), 168 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 8f1b52c1..5d12aff1 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 @@ -2,25 +2,21 @@ package com.jero.modules.activiti.process.common.service; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.jero.common.api.vo.ResultCommon; import com.jero.common.exception.JeroBootException; import com.jero.modules.activiti.entity.ProcessAll; import com.jero.modules.activiti.entity.ProcessApprovalRecord; -import com.jero.modules.activiti.enums.CommitFlagEnum; import com.jero.modules.activiti.enums.FinishFlagEnum; import com.jero.modules.activiti.enums.ProcessTypeEnum; import com.jero.modules.activiti.process.common.common.DraftCommon; import com.jero.modules.activiti.process.common.entity.CommonVO; import com.jero.modules.activiti.process.common.entity.ProcessDraft; import com.jero.modules.activiti.process.common.entity.ProcessSnapshot; -import com.jero.modules.activiti.process.common.entity.StandTypeVO; import com.jero.modules.activiti.process.common.enums.StandardStateEnum; import com.jero.modules.activiti.process.fb.dto.BasicProcessInfoDTO; import com.jero.modules.activiti.process.fb.dto.BasicTaskInfoDTO; import com.jero.modules.activiti.service.ProcessAllService; import com.jero.modules.activiti.service.ProcessApprovalRecordService; -import com.jero.modules.laws.enterprise.entity.EnterpriseStandardPlan; import com.jero.modules.laws.enterprise.service.EnterpriseStandardPlanService; import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard; import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService; @@ -256,20 +252,6 @@ public class ActFlowCommonService { return task.getProcessInstanceId(); } - public String getProcessDefId(String processInstanceId) { - ProcessInstance processInstance = - runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - - // 从ProcessInstance对象中获取processDefId - if (processInstance != null) { - return processInstance.getProcessDefinitionId(); - } else { - throw new JeroBootException("未找到流程定义Id"); - } - } - /** * 更新流程主表 * @@ -284,48 +266,6 @@ public class ActFlowCommonService { processAllService.updateById(process); } - /** - * 更新流程主表 - * - * @param processInstanceId - * @param userId - * @param prcName - * @param prcMes - * @param prcType - * @param dueTime - */ - public void updateProcessAllWithUserId(String processInstanceId, String userId, String prcName, String prcMes, Integer prcType, Date dueTime) { - ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId); - process.setCreateUserId(userId); - process.setPrcName(prcName); - process.setPrcMes(prcMes); - process.setDueTime(dueTime); - process.setPrcType(prcType); - processAllService.updateById(process); - } - - public void updateProcessAllWithProjectId(String processInstanceId, String prcName, String prcMes, - Integer prcType, Date dueTime, String projectId) { - ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId); - process.setPrcName(prcName); - process.setPrcMes(prcMes); - process.setDueTime(dueTime); - process.setPrcType(prcType); - process.setProjectId(projectId); - processAllService.updateById(process); - } - - public StandTypeVO getStandTypeByStandNo(String standardNo) { - LambdaUpdateWrapper espWrapper = new LambdaUpdateWrapper<>(); - espWrapper.eq(EnterpriseStandardPlan::getNewEnStandardNo, standardNo); - EnterpriseStandardPlan one = espService.getOne(espWrapper); - StandTypeVO standTypeVO = new StandTypeVO(); - if (one != null) { - standTypeVO.setStandardType(one.getStandardType()); - } - return standTypeVO; - } - public ProcessDraft getExistDraft(String draftId) { String userId = UserUtils.getUserId(); LambdaQueryWrapper draftWrapper = new LambdaQueryWrapper<>(); @@ -355,24 +295,6 @@ public class ActFlowCommonService { } } - public CommonVO getHandleCommon(String taskId) { - String processInstanceId = this.getProcessInstanceIdByTaskId(taskId); - String processDefinitionId = this.getProcessDefId(processInstanceId); - // 获取流程通用数据 - ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId); - CommonVO commonVO = new CommonVO(); - commonVO.setPrcName(process.getPrcName()); - commonVO.setTaskId(process.getTaskId()); - commonVO.setPrcMes(process.getPrcMes()); - commonVO.setDueTime(process.getDueTime()); - commonVO.setProcessDefinitionId(processDefinitionId); - commonVO.setProcessInstanceId(processInstanceId); - // 获取节点ID - ProcessApprovalRecord record = this.getNodeIdByTaskId(taskId); - commonVO.setNodeId(record.getNodeId()); - return commonVO; - } - public void removeDraft(CommonVO commonVO) { String userId = UserUtils.getUserId(); String taskId = commonVO.getTaskId(); @@ -385,22 +307,6 @@ public class ActFlowCommonService { processDraftService.remove(draftWrapper); } - /** - * 会签节点驳回后,将其余节点recode设置为 未处理 状态 - * - * @param prcId - * @param nodeName - */ - public void updateOtherCountersignRecodeStatus(String prcId, String nodeName) { - LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); - updateWrapper.eq(ProcessApprovalRecord::getProcessInstanceId, prcId); - updateWrapper.eq(ProcessApprovalRecord::getFinishFlag, FinishFlagEnum.INCOMPLETE.getValue()); - updateWrapper.eq(ProcessApprovalRecord::getTaskName, nodeName); - updateWrapper.set(ProcessApprovalRecord::getCommitText, CommitFlagEnum.UNDISPOSED.getName()); - updateWrapper.set(ProcessApprovalRecord::getFinishFlag, null); - processApprovalRecordService.update(updateWrapper); - } - public String getOriginTaskAssignee(String taskId) { ProcessApprovalRecord approvalRecord = processApprovalRecordService.getToDoByTaskId(taskId); return approvalRecord.getOriginUserId(); @@ -441,4 +347,19 @@ public class ActFlowCommonService { draftWrapper.eq(ProcessSnapshot::getId, snapshotId); return processSnapshotService.getOne(draftWrapper); } + + public BasicProcessInfoDTO getProcessInfo(String taskId) { + String processInstanceId = this.getProcessInstanceIdByTaskId(taskId); + // 获取流程通用数据 + ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId); + BasicProcessInfoDTO basicProcessInfoDTO = new BasicProcessInfoDTO(); + // 获取节点ID + basicProcessInfoDTO.setProcessInstanceId(processInstanceId); + basicProcessInfoDTO.setProcessDescription(process.getPrcMes()); + basicProcessInfoDTO.setProcessName(process.getPrcName()); + basicProcessInfoDTO.setProcessDueDate(process.getDueTime()); + basicProcessInfoDTO.setProcessType(process.getPrcType()); + basicProcessInfoDTO.setProcessDefinitionId(process.getProcessDefinitionId()); + return basicProcessInfoDTO; + } } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/entity/ProcessStandardComplianceCheck.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/entity/ProcessStandardComplianceCheck.java index ea8c4b72..969e5307 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/entity/ProcessStandardComplianceCheck.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/entity/ProcessStandardComplianceCheck.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; +import com.jero.common.aspect.annotation.Dict; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -117,6 +118,7 @@ public class ProcessStandardComplianceCheck implements Serializable { * 适用市场 */ @ApiModelProperty(value = "适用市场") + @Dict(dictTable = "laws_market_standard", dicText = "manifest_name", dicCode = "id") private String applicableMarket; /** diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/service/impl/ProcessStandardComplianceCheckServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/service/impl/ProcessStandardComplianceCheckServiceImpl.java index d7be19dc..8803c5f2 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/service/impl/ProcessStandardComplianceCheckServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/service/impl/ProcessStandardComplianceCheckServiceImpl.java @@ -128,7 +128,7 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl getHandleData(String taskId) { + if (!actFlowCommonService.taskExists(taskId)) { + throw new JeroBootException("任务不存在"); + } + ProcessInfoVO result = new ProcessInfoVO<>(); + ProcessSccVO processSccVO = new ProcessSccVO(); + result.setBasicProcessInfoDTO(actFlowCommonService.getProcessInfo(taskId)); + String userId = actFlowCommonService.getOriginTaskAssignee(taskId); + String executionId = taskService.createTaskQuery().taskId(taskId).singleResult().getExecutionId(); + // 使用流程引擎根据taskId找到流程实例Id + String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId); + // 获取流程通用数据 + ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId); + ProcessApprovalRecord record = actFlowCommonService.getNodeIdByTaskId(taskId); + // 获取当前流程数据 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(ProcessStandardComplianceCheck::getProcessInstanceId, processInstanceId); + ProcessStandardComplianceCheck scc = getOne(queryWrapper); + LambdaQueryWrapper detailQueryWrapper = new LambdaQueryWrapper<>(); + detailQueryWrapper.eq(ProcessStandardComplianceCheckDetail::getCheckId, scc.getId()); + List detailList = sccDetailService.list(detailQueryWrapper); + String xmlNodeId = record.getNodeId(); + // 设置流程信息 + switch (xmlNodeId) { + case DEPT_USER_DISTRIBUTE: + processSccVO.setStandardInfo(scc); + processSccVO.setDetailInfoList(detailList); + break; + case MAIN_CHECK_USER_COLLECT: + break; + case COUNTERSIGN: + break; + case MANAGER_APPROVAL: + break; + } + result.setBusinessInfoDTO(processSccVO); + return result; + } + + @Override + public void createAutoTaskListener(DelegateTask delegateTask) { + String taskId = delegateTask.getId(); + String taskDefinitionKey = delegateTask.getTaskDefinitionKey(); + String processInstanceId = delegateTask.getProcessInstanceId(); + Map userInfoMap = new HashMap<>(); + ProcessInfoVO processInfoVO = new ProcessInfoVO<>(); + BasicProcessInfoDTO basicProcessInfoDTO = new BasicProcessInfoDTO(); + String mainInstanceId = (String) delegateTask.getVariable(ActivitiCommon.MAIN_INSTANCE_ID); + //保存父子关联信息 + Map variables = new HashMap<>(); + variables.put(ActivitiCommon.MAIN_INSTANCE_ID, mainInstanceId != null ? mainInstanceId : processInstanceId); + variables.put(ActivitiCommon.PARENT_TASK_ID, taskId); + + switch (taskDefinitionKey) { + //主排查人分批下发后自动任务 + case AUTO_TASK_1: + case AUTO_TASK_3: + // TODO + List interpreterList = (List) delegateTask.getVariable(ProcessDemoCommon.INTERPRETER); + for (String interpreter : interpreterList) { + userInfoMap.put(ProcessDemoCommon.INTERPRETER, interpreter); + // 流程定义id + String definitionId = processHandleService.getDefinitionIdByKey(ProcessDefinitionKey.STANDARD_COMPLIANCE_CHECK_DISTRIBUTE); + basicProcessInfoDTO.setProcessDefinitionId(definitionId); + basicProcessInfoDTO.setProcessType(ProcessTypeEnum.STANDARD_COMPLIANCE_CHECK.getValue()); // 流程类型 + processInfoVO.setBasicProcessInfoDTO(basicProcessInfoDTO); + + processInfoVO.setProcessVariables(variables); + processInfoVO.setUserInfoMap(userInfoMap); + processHandleService.startChildrenProcess(processInfoVO); + } + break; + //设计工程师驳回后自动任务 + case AUTO_TASK_2: + // TODO + String mainInterpreter = (String) delegateTask.getVariable(ProcessDemoCommon.MAIN_INTERPRETER); + userInfoMap.put(ProcessDemoCommon.MAIN_INTERPRETER, mainInterpreter); + // 流程定义id + String definitionId = processHandleService.getDefinitionIdByKey(ProcessDefinitionKey.STANDARD_COMPLIANCE_CHECK_REDISTRIBUTE); + basicProcessInfoDTO.setProcessDefinitionId(definitionId); + basicProcessInfoDTO.setProcessType(ProcessTypeEnum.STANDARD_COMPLIANCE_CHECK.getValue()); // 流程类型 + processInfoVO.setBasicProcessInfoDTO(basicProcessInfoDTO); + + processInfoVO.setProcessVariables(variables); + processInfoVO.setUserInfoMap(userInfoMap); + processHandleService.startChildrenProcess(processInfoVO); + break; + default: + } + } + private MultipartFile getFileById(String fileId) { List fileInfos = ossFileService.getFileInfos(fileId); if (fileInfos == null || fileInfos.isEmpty()) { @@ -423,79 +515,6 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl getHandleData(String taskId) { - if (!actFlowCommonService.taskExists(taskId)) { - throw new JeroBootException("任务不存在"); - } - ProcessInfoVO result = new ProcessInfoVO<>(); - String userId = actFlowCommonService.getOriginTaskAssignee(taskId); - String executionId = taskService.createTaskQuery().taskId(taskId).singleResult().getExecutionId(); - // 使用流程引擎根据taskId找到流程实例Id - String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId); - // 获取流程通用数据 - ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId); - ProcessApprovalRecord record = actFlowCommonService.getNodeIdByTaskId(taskId); - String xmlNodeId = record.getNodeId(); - // 设置流程信息 - switch (xmlNodeId) { - //TODO - } - return result; - } - - @Override - public void createAutoTaskListener(DelegateTask delegateTask) { - String taskId = delegateTask.getId(); - String taskDefinitionKey = delegateTask.getTaskDefinitionKey(); - String processInstanceId = delegateTask.getProcessInstanceId(); - Map userInfoMap = new HashMap<>(); - ProcessInfoVO processInfoVO = new ProcessInfoVO<>(); - BasicProcessInfoDTO basicProcessInfoDTO = new BasicProcessInfoDTO(); - String mainInstanceId = (String) delegateTask.getVariable(ActivitiCommon.MAIN_INSTANCE_ID); - //保存父子关联信息 - Map variables = new HashMap<>(); - variables.put(ActivitiCommon.MAIN_INSTANCE_ID, mainInstanceId != null ? mainInstanceId : processInstanceId); - variables.put(ActivitiCommon.PARENT_TASK_ID, taskId); - - switch (taskDefinitionKey) { - //主排查人分批下发后自动任务 - case AUTO_TASK_1: - case AUTO_TASK_3: - // TODO - List interpreterList = (List) delegateTask.getVariable(ProcessDemoCommon.INTERPRETER); - for (String interpreter : interpreterList) { - userInfoMap.put(ProcessDemoCommon.INTERPRETER, interpreter); - // 流程定义id - String definitionId = processHandleService.getDefinitionIdByKey(ProcessDefinitionKey.STANDARD_COMPLIANCE_CHECK_DISTRIBUTE); - basicProcessInfoDTO.setProcessDefinitionId(definitionId); - basicProcessInfoDTO.setProcessType(ProcessTypeEnum.STANDARD_COMPLIANCE_CHECK.getValue()); // 流程类型 - processInfoVO.setBasicProcessInfoDTO(basicProcessInfoDTO); - - processInfoVO.setProcessVariables(variables); - processInfoVO.setUserInfoMap(userInfoMap); - processHandleService.startChildrenProcess(processInfoVO); - } - break; - //设计工程师驳回后自动任务 - case AUTO_TASK_2: - // TODO - String mainInterpreter = (String) delegateTask.getVariable(ProcessDemoCommon.MAIN_INTERPRETER); - userInfoMap.put(ProcessDemoCommon.MAIN_INTERPRETER, mainInterpreter); - // 流程定义id - String definitionId = processHandleService.getDefinitionIdByKey(ProcessDefinitionKey.STANDARD_COMPLIANCE_CHECK_REDISTRIBUTE); - basicProcessInfoDTO.setProcessDefinitionId(definitionId); - basicProcessInfoDTO.setProcessType(ProcessTypeEnum.STANDARD_COMPLIANCE_CHECK.getValue()); // 流程类型 - processInfoVO.setBasicProcessInfoDTO(basicProcessInfoDTO); - - processInfoVO.setProcessVariables(variables); - processInfoVO.setUserInfoMap(userInfoMap); - processHandleService.startChildrenProcess(processInfoVO); - break; - default: - } - } }