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); }