From 0ab9038fdad71d4869e482664e0ce1872117f7bf Mon Sep 17 00:00:00 2001 From: liao Date: Mon, 6 Nov 2023 14:55:07 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E6=A0=87=E5=87=86=E6=B3=95=E8=A7=84?= =?UTF-8?q?=E5=85=A5=E5=BA=93=5F=E5=8F=98=E6=9B=B4=E6=B5=81=E7=A8=8B-?= =?UTF-8?q?=E5=AE=A1=E6=89=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessFbEntryChangeController.java | 25 ++++++-- .../activiti/process/fb/dto/ProcessDTO.java | 20 +++++++ .../service/IProcessFbEntryChangeService.java | 7 +++ .../fb/service/IProcessHandleService.java | 12 +++- .../impl/ProcessFbEntryChangeServiceImpl.java | 10 ++++ .../impl/ProcessHandleServiceImpl.java | 58 +++++++++++++++++-- 6 files changed, 120 insertions(+), 12 deletions(-) create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/fb/dto/ProcessDTO.java diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/controller/ProcessFbEntryChangeController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/controller/ProcessFbEntryChangeController.java index 48d7337d..d6049916 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/controller/ProcessFbEntryChangeController.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/controller/ProcessFbEntryChangeController.java @@ -3,6 +3,7 @@ package com.jero.modules.activiti.process.fb.controller; import com.jero.common.api.vo.Result; import com.jero.common.aspect.annotation.AutoLog; import com.jero.common.util.MessageUtils; +import com.jero.modules.activiti.process.esInitChange.entity.vo.InitChangeDataVO; import com.jero.modules.activiti.process.fb.entity.ProcessFbEntryChange; import com.jero.modules.activiti.process.fb.service.IProcessFbEntryChangeService; import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO; @@ -58,12 +59,28 @@ public class ProcessFbEntryChangeController extends JeroController startProcess(@Validated @RequestBody ProcessInfoVO processInfoVO) { processFbEntryChangeService.startProcess(processInfoVO); - return Result.OK(MessageUtils.getMessage(ResultCommon.OK)); + return Result.OK(); + } + + @AutoLog(value = "标准法规入库_变更流程-同意") + @ApiOperation(value="标准法规入库_变更流程-同意", notes="标准法规入库_变更流程-同意") + @PostMapping("/agree") + public Result agree(@Validated @RequestBody ProcessInfoVO processInfoVO) { + processFbEntryChangeService.approveTask(processInfoVO, true); + return Result.OK(); + } + + @AutoLog(value = "标准法规入库_变更流程-驳回") + @ApiOperation(value="标准法规入库_变更流程-驳回", notes="标准法规入库_变更流程-驳回") + @PostMapping("/reject") + public Result reject(@Validated @RequestBody ProcessInfoVO processInfoVO) { + processFbEntryChangeService.approveTask(processInfoVO, true); + return Result.OK(); } @AutoLog(value = "流程处理-保存为草稿") @@ -71,7 +88,7 @@ public class ProcessFbEntryChangeController extends JeroController saveToDraft(@Validated @RequestBody ProcessInfoVO processInfoVO) { processFbEntryChangeService.saveToDraft(processInfoVO); - return Result.OK(MessageUtils.getMessage(ResultCommon.OK)); + return Result.OK(); } } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/dto/ProcessDTO.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/dto/ProcessDTO.java new file mode 100644 index 00000000..8bfd603a --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/dto/ProcessDTO.java @@ -0,0 +1,20 @@ +package com.jero.modules.activiti.process.fb.dto; + +import lombok.Data; +import org.springframework.stereotype.Component; + +/** + * @Author: liao + * @Date: 2023/11/6 14:18 + * @Description: 流程id + */ +@Data +public class ProcessDTO { + + private String processInstanceId; // 流程实例id + + private String processDefinitionId; // 流程定义id + + private String taskId; // 任务id + +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/IProcessFbEntryChangeService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/IProcessFbEntryChangeService.java index b7e9fbcd..a27f4921 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/IProcessFbEntryChangeService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/IProcessFbEntryChangeService.java @@ -40,6 +40,13 @@ public interface IProcessFbEntryChangeService extends IService userInfoMap = processInfoVO.getUserInfoMap(); + if (!Objects.isNull(userInfoMap) && !userInfoMap.isEmpty()) { + // 保存选人信息 + runtimeService.setVariables(processInstanceId, userInfoMap); + processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, userInfoMap); + } + if (pass) { // 通过 + runtimeService.setVariableLocal(processInstanceId, "pass", true); + processInfoVO.setCommitFlag(CommitFlagEnum.PASS.getValue()); + } else { // 驳回 + runtimeService.setVariableLocal(processInstanceId, "pass", false); + processInfoVO.setCommitFlag(CommitFlagEnum.REJECT.getValue()); + } + // 更新审批记录表 + updateApprovalRecord(processInfoVO); + // 完成任务 + taskService.complete(taskId); } /** * @Author: liao * @Date: 2023/11/6 12:00 - * @Description: 判断是否存在任务 + * @Description: 判断是否是自己的任务 **/ @Override - public void isTaskExist(String taskId) { + public void isMyTask(String taskId) { if (StringUtils.isBlank(taskId)) { throw new JeroBootException(ResultCommon.EMPTY_COMMON, "taskId"); } @@ -111,6 +136,27 @@ public class ProcessHandleServiceImpl implements IProcessHandleService { if (Objects.isNull(task)) { throw new JeroBootException(ResultCommon.NO_CORRESPONDING_DATA_FOUND); } + if (!CurrentUserUtil.getId().equals(task.getAssignee())) { + throw new JeroBootException(ResultCommon.NO_PERMISSION); + } + } + + /** + * @Author: liao + * @Date: 2023/11/6 14:23 + * @Description: 根据任务id获取流程信息 + **/ + @Override + public ProcessDTO getProcessDTO(String taskId) { + ProcessDTO processDTO = new ProcessDTO(); + Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); + String processInstanceId = task.getProcessInstanceId(); + ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); + String processDefinitionId = processInstance.getProcessDefinitionId(); + processDTO.setTaskId(taskId); + processDTO.setProcessInstanceId(processInstanceId); + processDTO.setProcessDefinitionId(processDefinitionId); + return processDTO; } /** @@ -141,7 +187,7 @@ public class ProcessHandleServiceImpl implements IProcessHandleService { approvalRecord.setCommitFlag(processInfoVO.getCommitFlag()); // 审批意见(1通过,2驳回) approvalRecord.setCommitText(processInfoVO.getHandleText()); // 审批内容 approvalRecord.setCommitFile(processInfoVO.getHandleFile()); // 审批附件 - approvalRecord.setFinishFlag(processInfoVO.getFinishFlag()); // 完成注记(1进行中,2已完成) + approvalRecord.setFinishFlag(FinishFlagEnum.COMPLETE.getValue()); // 完成注记(1进行中,2已完成) approvalRecord.setEndTime(new Date()); // 完成时间 processApprovalRecordService.updateById(approvalRecord); }