diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevisionAdvice/common/RevisionTaskNodeIdConstant.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevisionAdvice/common/RevisionTaskNodeIdConstant.java index e73bcbe2..b342c5f0 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevisionAdvice/common/RevisionTaskNodeIdConstant.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevisionAdvice/common/RevisionTaskNodeIdConstant.java @@ -6,6 +6,8 @@ package com.jero.modules.activiti.process.esRevisionAdvice.common; */ public class RevisionTaskNodeIdConstant { + /** 主起草人发起 */ + public static final String START = "Activity_0v98tow"; /** 法规工程师确认是否开启征求意见 */ public static final String CONFIRM_ADVISE = "Activity_1siuksf"; /** 设计工程师填写意见 */ @@ -22,4 +24,6 @@ public class RevisionTaskNodeIdConstant { public static final String ADVICE_USER_LIST = "adviceUserList"; /** 开启征求意见 */ public static final String OPEN = "open"; + /** 开启征求意见 */ + public static final String CAN_REJECT = "canReject"; } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevisionAdvice/controller/ESRevisionController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevisionAdvice/controller/ESRevisionController.java index ff8050d1..ffcb4880 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevisionAdvice/controller/ESRevisionController.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevisionAdvice/controller/ESRevisionController.java @@ -55,6 +55,14 @@ public class ESRevisionController { return Result.OK(); } + @AutoLog(value = "整车企业标准报批流程-驳回") + @ApiOperation(value = "整车企业标准报批流程-驳回", notes = "整车企业标准报批流程-驳回") + @PostMapping("/reject") + public Result reject(@RequestBody ProcessInfoVO processInfoVO) { + revisionService.approveTask(processInfoVO, false); + return Result.OK(); + } + /** * 保存到待办 * @param taskId diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevisionAdvice/entity/vo/ProcessRevisionVO.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevisionAdvice/entity/vo/ProcessRevisionVO.java index e16e945e..2a587307 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevisionAdvice/entity/vo/ProcessRevisionVO.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevisionAdvice/entity/vo/ProcessRevisionVO.java @@ -12,4 +12,6 @@ public class ProcessRevisionVO { ProcessEsRevision processInfo; List adviceList; + + boolean canReject; } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevisionAdvice/service/EsRevisionService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevisionAdvice/service/EsRevisionService.java index 72aa4d2c..b0b4e1a1 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevisionAdvice/service/EsRevisionService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevisionAdvice/service/EsRevisionService.java @@ -19,4 +19,6 @@ public interface EsRevisionService extends IService { void startProcess(ProcessInfoVO processInfoVO); void submit(ProcessInfoVO processInfoVO); + + void approveTask(ProcessInfoVO processInfoVO, boolean pass); } 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 06070d06..20e98390 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 @@ -10,6 +10,7 @@ import com.jero.common.constant.enums.YesOrNoEnum; 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; @@ -24,6 +25,7 @@ import com.jero.modules.activiti.process.fb.dto.BasicTaskInfoDTO; import com.jero.modules.activiti.process.fb.service.IProcessHandleService; import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO; 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.FieldCommon; import com.jero.modules.laws.common.constant.MessageTemplateCodeCommon; @@ -45,6 +47,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.*; +import static com.jero.modules.activiti.common.ActivitiCommon.PASS; import static com.jero.modules.activiti.process.esRevisionAdvice.common.RevisionTaskNodeIdConstant.*; /** @@ -94,6 +97,9 @@ public class EsRevisionServiceImpl extends ServiceImpl processInfoVO) { // 流程Key @@ -157,8 +163,10 @@ public class EsRevisionServiceImpl extends ServiceImpl setVariables(ProcessInfoVO processInfoVO) { Map userInfoMap = processInfoVO.getUserInfoMap(); + HashMap result = new HashMap<>(userInfoMap); + result.put(CAN_REJECT, true); // 获取分发人 - return new HashMap<>(userInfoMap); + return result; } @Override @@ -182,18 +190,12 @@ public class EsRevisionServiceImpl extends ServiceImpl> map = adviceList.stream().collect(Collectors.groupingBy(EsRevisionAdvice::getBatchNum)); -// // 获取轮数最大的轮数 -// Integer maxNum = this.calculateAdviceBatchNum(adviceList); -// adviceList = map.get(maxNum); -// } } // 获取当前流程 String xmlNodeId = record.getNodeId(); // 设置流程信息 switch (xmlNodeId) { + case START: case CONFIRM_ADVISE: case ADVICE: case SET_STANDARD_NUMBER: @@ -203,6 +205,8 @@ public class EsRevisionServiceImpl extends ServiceImpl 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(); + // 设置流程变量 + runtimeService.setVariable(processInstanceId, PASS, pass); + // 会签节点驳回后修改其他节点的状态 + approvalRecordService.updateApprovalRecordFinishFlag(pass, taskId, xmlNodeId, processInstanceId); + // 保存快照 + processHandleService.saveToSnapshot(processInfoVO, curUserId); + // 审批节点 + 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); + } + private Integer calculateAdviceBatchNum(List adviceList) { return adviceList.stream().mapToInt(EsRevisionAdvice::getBatchNum).max().orElse(0); }