diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/common/ActivitiCommon.java b/laws-modules/src/main/java/com/jero/modules/activiti/common/ActivitiCommon.java index 817074d5..6fe04ddc 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/common/ActivitiCommon.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/common/ActivitiCommon.java @@ -22,4 +22,38 @@ public class ActivitiCommon { * 未处理 */ public static final int COMMIT_FLAG3 = 3; + + /** + * 起草人 + */ + public static final String MAIN_DRAFT_USER = "mainDraftUser"; + + /** + * 审批人一 + */ + public static final String USER_ONE_List = "userOneList"; + /** + * 审批人二 + */ + public static final String USER_TWO_List = "userTwoList"; + /** + * 审批人三 + */ + public static final String USER_THREE_List = "userThreeList"; + /** + * 审批人四 + */ + public static final String USER_FOUR_List = "userFourList"; + /** + * 审批人五 + */ + public static final String USER_FIVE_List = "userFiveList"; + /** + * 审批人六 + */ + public static final String USER_SIX_List = "userSixList"; + /** + * 审批人七 + */ + public static final String USER_SEVEN_List = "userSevenList"; } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/enums/ProcessTypeEnum.java b/laws-modules/src/main/java/com/jero/modules/activiti/enums/ProcessTypeEnum.java index e3b3b67b..2cb2b4da 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/enums/ProcessTypeEnum.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/enums/ProcessTypeEnum.java @@ -21,7 +21,11 @@ public enum ProcessTypeEnum { DOMESTIC_VEHICLE_CONTROL_PUBLISH("国内整车型号和VIN前八位管控流程", 8, "com.jero.modules.activiti.process.vehicledomestic.service.impl.ProcessVehicleDomesticReleaseServiceImpl","/workCenter/VehicleDomesticReleaseProcess","/workCenter/VehicleDomesticReleaseProcess"), PLAN_CHANGE("企业标准计划变更流程", 9, "com.jero.modules.activiti.process.planchange.service.ProcessPlanChangeService","/workCenter/enterpriseStandardRevision/enterpriseStandardRevisionFlow","/workCenter/enterpriseStandardRevision"), INTERNATIONAL_VEHICLE_CONTROL_PUBLISH("国际整车型号和VIN前八位管控流程", 10, "com.jero.modules.activiti.process.vehicleinternational.service.impl.ProcessVehicleDomesticReleaseServiceImpl","/workCenter/VehicleInternationalReleaseProcess","/workCenter/VehicleInternationalReleaseProcess"), - PART_TYPE_APPLY("关键零部件型号申请流程", 11, "com.jero.modules.activiti.process.part.service.impl.ProcessPartTypeApplyServiceImpl","/workCenter/KeyComponentModelRequestProcess","/workCenter/KeyComponentModelRequestProcess") + PART_TYPE_APPLY("关键零部件型号申请流程", 11, "com.jero.modules.activiti.process.part.service.impl.ProcessPartTypeApplyServiceImpl","/workCenter/KeyComponentModelRequestProcess","/workCenter/KeyComponentModelRequestProcess"), + SPECIAL_ES_APPROVAL("专业技术企业标准报批流程", 12, "com.jero.modules.activiti.process.specialEsApproval.service.impl.specialEsApprovalServiceImpl", "/workCenter/specialEsApproval/specialEsApprovalFlow","/workCenter/enterpriseStandardRevision"), + MACHINE_ES_APPROVAL("产品标准-整车企业标准报批流程", 13, "com.jero.modules.activiti.process.esRevisionAdvice.service.impl.EsRevisionServiceImpl", "/workCenter/enterpriseStandardRevision/enterpriseStandardRevisionFlow","/workCenter/enterpriseStandardRevision"), + ES_CAR_APPROVAL("产品标准-整机企业标准报批流程", 14, "com.jero.modules.activiti.process.esRevisionAdvice.service.impl.EsRevisionServiceImpl", "/workCenter/enterpriseStandardRevision/enterpriseStandardRevisionFlow","/workCenter/enterpriseStandardRevision"), + ES_RECHECK("企标复审流程", 15, "com.jero.modules.activiti.process.esRecheck.service.impl.EsRecheckServiceImpl", "/workCenter/enterpriseStandardRecheck/enterpriseStandardRecheckFlow","/workCenter/enterpriseStandardRecheck") ; private final String name; 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 4566f61b..fed963a8 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 @@ -110,7 +110,7 @@ public class ActFlowCommonService { * @param flowUserInfoVO * @param key */ - public void convertAndPutList(HashMap map, Map flowUserInfoVO, String key) { + public void convertAndPutList(Map map, Map flowUserInfoVO, String key) { Optional.ofNullable(flowUserInfoVO.get(key)) .map(Object::toString) .map(s -> Arrays.asList(s.split(","))) diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevisionAdvice/service/impl/EsRevisionServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevisionAdvice/service/impl/EsRevisionServiceImpl.java index d61eff49..06070d06 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevisionAdvice/service/impl/EsRevisionServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevisionAdvice/service/impl/EsRevisionServiceImpl.java @@ -45,7 +45,6 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.*; -import static com.jero.modules.activiti.common.ActivitiCommon.MAIN_INSTANCE_ID; import static com.jero.modules.activiti.process.esRevisionAdvice.common.RevisionTaskNodeIdConstant.*; /** @@ -220,8 +219,7 @@ public class EsRevisionServiceImpl extends ServiceImpl startProcess(@RequestBody ProcessInfoVO processInfoVO) { - revisionService.startProcess(processInfoVO); + flowService.startProcess(processInfoVO); return Result.OK(); } - @AutoLog(value = "企标制修订流程-提交") - @ApiOperation(value = "企标制修订流程-提交", notes = "企标制修订流程-提交") + @AutoLog(value = "专业技术企业标准报批流程-提交") + @ApiOperation(value = "专业技术企业标准报批流程-提交", notes = "专业技术企业标准报批流程-提交") @PostMapping("/submit") public Result submit(@RequestBody ProcessInfoVO processInfoVO) { - revisionService.submit(processInfoVO); + flowService.submit(processInfoVO); return Result.OK(); } @@ -59,8 +59,8 @@ public class SpecialEsApprovalController { * 保存到待办 * @param taskId */ - @AutoLog(value = "企标制修订流程-办理") - @ApiOperation(value="企标制修订流程-办理", notes="企标制修订流程-办理") + @AutoLog(value = "专业技术企业标准报批流程-办理") + @ApiOperation(value="专业技术企业标准报批流程-办理", notes="专业技术企业标准报批流程-办理") @GetMapping("/handle/{taskId}") @Translation public Result handle(@PathVariable("taskId") String taskId) { @@ -68,6 +68,23 @@ public class SpecialEsApprovalController { if (draft != null) { return Result.OK(draft); } - return Result.OK(revisionService.getHandleData(taskId)); + return Result.OK(flowService.getHandleData(taskId)); } + + @AutoLog(value = "专业技术企业标准报批流程-同意") + @ApiOperation(value = "专业技术企业标准报批流程-同意", notes = "专业技术企业标准报批流程-同意") + @PostMapping("/agree") + public Result agree(@RequestBody ProcessInfoVO processInfoVO) { + flowService.approveTask(processInfoVO, true); + return Result.OK(); + } + + @AutoLog(value = "专业技术企业标准报批流程-驳回") + @ApiOperation(value = "专业技术企业标准报批流程-驳回", notes = "专业技术企业标准报批流程-驳回") + @PostMapping("/reject") + public Result reject(@RequestBody ProcessInfoVO processInfoVO) { + flowService.approveTask(processInfoVO, false); + return Result.OK(); + } + } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/specialEsApproval/service/SpecialEsApprovalService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/specialEsApproval/service/SpecialEsApprovalService.java index 81f9a74a..836ae9bc 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/specialEsApproval/service/SpecialEsApprovalService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/specialEsApproval/service/SpecialEsApprovalService.java @@ -18,4 +18,6 @@ public interface SpecialEsApprovalService extends IService processInfoVO); void submit(ProcessInfoVO processInfoVO); + + void approveTask(ProcessInfoVO processInfoVO, boolean pass); } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/specialEsApproval/service/impl/SpecialEsApprovalServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/specialEsApproval/service/impl/SpecialEsApprovalServiceImpl.java index fbb1a43c..5b3ec773 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/specialEsApproval/service/impl/SpecialEsApprovalServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/specialEsApproval/service/impl/SpecialEsApprovalServiceImpl.java @@ -2,17 +2,13 @@ package com.jero.modules.activiti.process.specialEsApproval.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.jero.common.api.SendMessageAPI; -import com.jero.common.api.dto.message.SendMessageDTO; 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.ProcessTypeEnum; import com.jero.modules.activiti.process.common.enums.ProcessType; import com.jero.modules.activiti.process.common.service.ActFlowCommonService; -import com.jero.modules.activiti.process.esRevisionAdvice.entity.EsRevisionAdvice; -import com.jero.modules.activiti.process.esRevisionAdvice.service.EsRevisionAdviceService; import com.jero.modules.activiti.process.fb.dto.BasicProcessInfoDTO; import com.jero.modules.activiti.process.fb.dto.BasicTaskInfoDTO; import com.jero.modules.activiti.process.fb.service.IProcessHandleService; @@ -20,14 +16,8 @@ import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO; import com.jero.modules.activiti.process.specialEsApproval.entity.ProcessSpecialEsApproval; import com.jero.modules.activiti.process.specialEsApproval.mapper.ProcessSpecialEsApprovalMapper; import com.jero.modules.activiti.process.specialEsApproval.service.SpecialEsApprovalService; -import com.jero.modules.activiti.service.ProcessAllService; +import com.jero.modules.activiti.service.ProcessApprovalRecordService; import com.jero.modules.activiti.service.ProcessNodeLinkService; -import com.jero.modules.laws.common.constant.MessageTemplateCodeCommon; -import com.jero.modules.laws.enterprise.entity.ESPProjectStatus; -import com.jero.modules.laws.enterprise.entity.EnterpriseStandardPlan; -import com.jero.modules.laws.enterprise.service.EnterpriseStandardPlanService; -import com.jero.modules.laws.enterprise.util.EnterpriseStandardUtil; -import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService; import com.jero.modules.sys.utils.UserUtils; import lombok.extern.slf4j.Slf4j; import org.activiti.engine.RuntimeService; @@ -38,10 +28,10 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.HashMap; -import java.util.List; import java.util.Map; -import static com.jero.modules.activiti.process.esRevisionAdvice.common.RevisionTaskNodeIdConstant.*; +import static com.jero.modules.activiti.common.ActivitiCommon.*; +import static com.jero.modules.activiti.process.specialEsApproval.common.SpecialEsApprovalTaskNodeIdConstant.TWO; /** * @author ThinkBook @@ -66,34 +56,16 @@ public class SpecialEsApprovalServiceImpl extends ServiceImpl processInfoVO) { // 流程Key - String processDefinitionKey = ProcessType.ES_REVISION_ADVICE.getProcessKey(); + String processDefinitionKey = ProcessType.SPECIAL_ES_APPROVAL.getProcessKey(); // 流程信息 BasicProcessInfoDTO processInfo = processInfoVO.getBasicProcessInfoDTO(); // 任务信息 @@ -113,7 +85,7 @@ public class SpecialEsApprovalServiceImpl extends ServiceImpl processInfoVO) { String processInstanceId = processInfoVO.getBasicProcessInfoDTO().getProcessInstanceId(); ProcessSpecialEsApproval processInfo = processInfoVO.getBusinessInfoDTO(); - // 修改企标计划状态 - // 检查企标计划是否已被删除 - String espId = processInfo.getEspId(); - EnterpriseStandardPlan esp = espService.getById(espId); - if (esp == null) { - throw new JeroBootException(ResultCommon.INVALID_ESP); - } - // 设置状态为运行中 - espService.updateProjectStatus(espId, ESPProjectStatus.IN_PROGRESS.getValue()); - // 保存数据 processInfo.setProcessInstanceId(processInstanceId); save(processInfo); } private Map setVariables(ProcessInfoVO processInfoVO) { Map userInfoMap = processInfoVO.getUserInfoMap(); + Map result = new HashMap<>(); + // 将所有多选人员转换为List后放入map中 + userInfoMap.put(MAIN_DRAFT_USER, userInfoMap.get(MAIN_DRAFT_USER)); + actFlowCommonService.convertAndPutList(result, userInfoMap, USER_ONE_List); + actFlowCommonService.convertAndPutList(result, userInfoMap, USER_TWO_List); + actFlowCommonService.convertAndPutList(result, userInfoMap, USER_THREE_List); + actFlowCommonService.convertAndPutList(result, userInfoMap, USER_FOUR_List); + actFlowCommonService.convertAndPutList(result, userInfoMap, USER_FIVE_List); + actFlowCommonService.convertAndPutList(result, userInfoMap, USER_SIX_List); // 获取分发人 - return new HashMap<>(userInfoMap); + return result; } @Override @@ -162,7 +133,6 @@ public class SpecialEsApprovalServiceImpl extends ServiceImpl result = new ProcessInfoVO<>(); - ProcessSpecialEsApproval processVo = new ProcessSpecialEsApproval(); // 使用流程引擎根据taskId找到流程实例Id String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId); result.setBasicProcessInfoDTO(actFlowCommonService.getProcessInfo(processInstanceId)); @@ -171,137 +141,101 @@ public class SpecialEsApprovalServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(ProcessSpecialEsApproval::getProcessInstanceId, processInstanceId); - ProcessSpecialEsApproval data = getOne(queryWrapper); - // 获取当前流程 - String xmlNodeId = record.getNodeId(); + ProcessSpecialEsApproval processVo = getOne(queryWrapper); // 设置流程信息 - switch (xmlNodeId) { - case CONFIRM_ADVISE: - case ADVICE: - case SET_STANDARD_NUMBER: - break; - } - // 设置流程变量等相关信息 -// processVo.setProcessInfo(data); result.setBusinessInfoDTO(processVo); return result; } @Override public void submit(ProcessInfoVO processInfoVO) { -// BasicTaskInfoDTO processTask = processInfoVO.getBasicTaskInfoDTO(); -// String taskId = processTask.getTaskId(); -// // 校验是否有权限操作此待办 -// processHandleService.validTask(taskId); -// // 获取当前节点的id -// ProcessApprovalRecord record = actFlowCommonService.getNodeIdByTaskId(taskId); -// String xmlNodeId = record.getNodeId(); -// String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId); -// BasicProcessInfoDTO processInfo = new BasicProcessInfoDTO(); -// // 使用流程引擎根据taskId找到流程实例Id -// String mainInstanceId = (String) taskService.getVariable(taskId, MAIN_INSTANCE_ID); -// processInfo.setProcessInstanceId(mainInstanceId); -// processInfoVO.setBasicProcessInfoDTO(processInfo); -// // 更新审批表为完成,填充数据 -// actFlowCommonService.updateApprovalInfo(processTask, taskId); -// String curUserId = UserUtils.getUserId(); -// ProcessSpecialEsApproval businessInfoDTO = processInfoVO.getBusinessInfoDTO(); -//// ProcessSpecialEsApproval data = businessInfoDTO.getProcessInfo(); -//// List adviceList = businessInfoDTO.getAdviceList(); -// // 根据流程实例Id获取流程定义ID -// ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); -// // 获取数据库中的流程信息 -// LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); -// queryWrapper.eq(ProcessSpecialEsApproval::getProcessInstanceId, processInstanceId); -// ProcessSpecialEsApproval dataFromDb = getOne(queryWrapper); -// if (dataFromDb != null) { -// data.setId(dataFromDb.getId()); -// } -// // 获取流程实例ID -// String processDefinitionId = processInstance.getProcessDefinitionId(); -// Map userMap = new HashMap<>(); -// LambdaQueryWrapper detailQueryWrapper = new LambdaQueryWrapper<>(); -// detailQueryWrapper.eq(EsRevisionAdvice::getProcessInstanceId, processInstanceId); -// List dbAdviceList = adviceService.list(detailQueryWrapper); -// // 筛选出最新一轮 -// Integer maxBatchNum = this.calculateAdviceBatchNum(dbAdviceList); -// switch (xmlNodeId) { -// case CONFIRM_ADVISE: -// // 判断是否开启征求意见子流程 设置流程变量 -// boolean adviceFlag = !data.getAdviceFlag().equals(YesOrNoEnum.NO.getValue()); -// if (adviceFlag) { -// List adviceUserList = Arrays.asList(data.getAdviceUsers().split(",")); -// taskService.setVariable(taskId, ADVICE_USER_LIST, adviceUserList); -// taskService.setVariable(taskId, STANDARD_ENGINEER, curUserId); -// taskService.setVariable(taskId, OPEN, true); -// // 保存流程数据 -// saveOrUpdate(data); -// userMap.put(STANDARD_ENGINEER, curUserId); -// userMap.put(ADVICE_USER_LIST, data.getAdviceUsers()); -// processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, userMap); -// } else { -// taskService.setVariable(taskId, OPEN, false); -// } -// break; -// case SET_STANDARD_NUMBER: -// // 判断标准编号是否重复 -// Map variables = JSON.parseObject(data.getBusinessJson(), Map.class); -// // 根据派号字段重新生成标准编号 -// String standardNumberTmp = (String) variables.get(FieldCommon.STANDARD_NUMBER_TEMP); -// String standardNumber = ""; -// if (StringUtils.isNotBlank(standardNumberTmp)) { -// // 组合企标编号 -// standardNumber = esUtil.combineStandardNumber(variables); -// } else { -// // 生成企标编号 -// standardNumber = esUtil.generateStandardNumber(variables); -// standardNumberTmp = EnterpriseStandardUtil.getSequenceNoFromStandardNo(standardNumber); -// } -// variables.put(FieldCommon.STANDARD_NUMBER, standardNumber); -// variables.put(FieldCommon.STANDARD_NUMBER_TEMP, standardNumberTmp); -// // 重新序列化为json -// data.setBusinessJson(JSON.toJSONString(variables)); -// // 校验重复 -// LambdaQueryWrapper esQueryWrapper = new LambdaQueryWrapper<>(); -// esQueryWrapper.eq(LawsEnterpriseStandard::getStandardNumber, standardNumber); -// LawsEnterpriseStandard es = esService.getOne(esQueryWrapper); -// if (Objects.nonNull(es)) { -// throw new JeroBootException(ResultCommon.STANDARD_NUMBER_ALREADY_EXISTS); -// } -// LambdaQueryWrapper planQueryWrapper = new LambdaQueryWrapper<>(); -// planQueryWrapper.eq(EnterpriseStandardPlan::getStandardNumber, standardNumber); -// EnterpriseStandardPlan plan = planService.getOne(planQueryWrapper); -// if (Objects.nonNull(plan)) { -// throw new JeroBootException(ResultCommon.STANDARD_NUMBER_ALREADY_EXISTS); -// } -// // 保存数据 -// updateById(data); -// break; -// } + BasicTaskInfoDTO processTask = processInfoVO.getBasicTaskInfoDTO(); + String taskId = processTask.getTaskId(); + // 校验是否有权限操作此待办 + processHandleService.validTask(taskId); + // 获取当前节点的id + String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId); + BasicProcessInfoDTO processInfo = new BasicProcessInfoDTO(); + // 使用流程引擎根据taskId找到流程实例Id + processInfo.setProcessInstanceId(processInstanceId); + processInfoVO.setBasicProcessInfoDTO(processInfo); + // 更新审批表为完成,填充数据 + actFlowCommonService.updateApprovalInfo(processTask, taskId); + String curUserId = UserUtils.getUserId(); + ProcessSpecialEsApproval data = processInfoVO.getBusinessInfoDTO(); + // 根据流程实例Id获取流程定义ID + ProcessInstance processInstance = runtimeService.createProcessInstanceQuery() + .processInstanceId(processInstanceId).singleResult(); + // 获取数据库中的流程信息 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(ProcessSpecialEsApproval::getProcessInstanceId, processInstanceId); + ProcessSpecialEsApproval dataFromDb = getOne(queryWrapper); + if (dataFromDb != null) { + data.setId(dataFromDb.getId()); + } + // 获取流程实例ID + String processDefinitionId = processInstance.getProcessDefinitionId(); + // 判断是否开启征求意见子流程 设置流程变量 + Map actVariable = this.setVariables(processInfoVO); + taskService.setVariables(taskId, actVariable); + // 保存流程数据 + saveOrUpdate(data); + processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, processInfoVO.getUserInfoMap()); + // 完成任务 + actFlowCommonService.completeTask(taskId, curUserId); + // 更新审批表为完成,填充数据 + actFlowCommonService.updateApprovalInfo(processTask, taskId); + // 删除草稿 + actFlowCommonService.removeDraft(curUserId, taskId, processInstanceId); + // 保存快照 + processHandleService.saveToSnapshot(processInfoVO, curUserId); + } + + @Override + public void approveTask(ProcessInfoVO processInfoVO, boolean pass) { + // 获取task + BasicTaskInfoDTO processTask = processInfoVO.getBasicTaskInfoDTO(); + String taskId = processTask.getTaskId(); + // 校验是否有权限操作此待办 + processHandleService.validTask(taskId); + String prcId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId); + BasicProcessInfoDTO processInfo = new BasicProcessInfoDTO(); + processInfo.setProcessInstanceId(prcId); + processInfoVO.setBasicProcessInfoDTO(processInfo); + // 获取当前节点的id + ProcessApprovalRecord record = actFlowCommonService.getNodeIdByTaskId(taskId); + String xmlNodeId = record.getNodeId(); + String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId); + // 更新审批表为完成,填充数据 + actFlowCommonService.updateApprovalInfo(processTask, taskId); + String curUserId = UserUtils.getUserId(); + if (xmlNodeId.equals(TWO)) { + // 获取数据库中的流程信息 + ProcessSpecialEsApproval data = processInfoVO.getBusinessInfoDTO(); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(ProcessSpecialEsApproval::getProcessInstanceId, processInstanceId); + ProcessSpecialEsApproval dataFromDb = getOne(queryWrapper); + if (dataFromDb != null) { + data.setId(dataFromDb.getId()); + } + // 保存数据 + updateById(data); + } + // 设置流程变量 + runtimeService.setVariable(processInstanceId, PASS, pass); + // 会签节点驳回后修改其他节点的状态 + approvalRecordService.updateApprovalRecordFinishFlag(pass, taskId, xmlNodeId, processInstanceId); + // 保存快照 + processHandleService.saveToSnapshot(processInfoVO, curUserId); // 审批节点 -// actFlowCommonService.completeTask(taskId, curUserId); -// // 更新审批表为完成,填充数据 -// actFlowCommonService.updateApprovalInfo(processTask, taskId); -// // 删除草稿 -// actFlowCommonService.removeDraft(curUserId, taskId, processInstanceId); -// // 保存快照 -// processHandleService.saveToSnapshot(processInfoVO, curUserId); - } - - private Integer calculateAdviceBatchNum(List adviceList) { - return adviceList.stream().mapToInt(EsRevisionAdvice::getBatchNum).max().orElse(0); - } - - private void sendMessageToMainDraftUser(String mainDraftUser, String processInstanceId, Integer maxBatchNum) { - ProcessAll processAll = processAllService.getByProcessInstanceId(processInstanceId); - SendMessageDTO sendMessageDTO = new SendMessageDTO(); - sendMessageDTO.setTemplateCode(MessageTemplateCodeCommon.ES_REVISION_ADVICE); - sendMessageDTO.setToUserId(mainDraftUser); - Map sendMap = new HashMap<>(); - sendMap.put("prcNum", processAll.getPrcNum()); - sendMap.put("batchNum", maxBatchNum.toString()); - sendMessageDTO.setMap(sendMap); - sendMessageAPI.sendMessage(sendMessageDTO); + actFlowCommonService.completeTask(taskId, curUserId); + // 驳回,结束所有节点 + approvalRecordService.updateApprovalRecordFinishFlag(pass, taskId, xmlNodeId, processInstanceId); + // 更新审批表为完成,填充数据 + processTask.setCommitFlag(pass ? CommitFlagEnum.PASS.getValue() : CommitFlagEnum.REJECT.getValue()); + actFlowCommonService.updateApprovalInfo(processTask, taskId); + // 删除草稿 + actFlowCommonService.removeDraft(curUserId, taskId, processInstanceId); } }