From 9e325bc916bc137783b1613bc6f2a532ff6210ad Mon Sep 17 00:00:00 2001 From: liao Date: Thu, 2 Nov 2023 18:51:08 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E5=90=AF=E5=8A=A8=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProcessFbEntryChangeController.java | 13 ++- .../controller/ProcessHandleController.java | 43 ++++++++++ .../service/IProcessFbEntryChangeService.java | 7 ++ .../fb/service/IProcessHandleService.java | 17 ++++ .../impl/ProcessFbEntryChangeServiceImpl.java | 10 +++ .../impl/ProcessHandleServiceImpl.java | 86 +++++++++++++++++++ .../activiti/process/fb/vo/ProcessInfoVO.java | 2 +- 7 files changed, 175 insertions(+), 3 deletions(-) create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/fb/controller/ProcessHandleController.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/IProcessHandleService.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessHandleServiceImpl.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 ef98ecaa..fa5dfa33 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 @@ -6,12 +6,10 @@ import com.jero.common.util.MessageUtils; import com.jero.modules.activiti.process.fb.entity.ProcessFbEntryChange; import com.jero.modules.activiti.process.fb.service.IProcessFbEntryChangeService; import com.jero.modules.laws.common.constant.ResultCommon; -import com.jero.modules.laws.dataCenter.entity.LawsDataCenterFile; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import com.jero.common.system.base.controller.JeroController; import org.apache.poi.ss.formula.functions.T; -import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -48,4 +46,15 @@ public class ProcessFbEntryChangeController extends JeroController queryBusinessInfo(@RequestParam(name = "id") String id) { + ProcessFbEntryChange processFbEntryChange = processFbEntryChangeService.queryBusinessInfo(id); + if (processFbEntryChange == null) { + return Result.error(ResultCommon.NO_CORRESPONDING_DATA_FOUND); + } + return Result.OK(processFbEntryChange); + } + } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/controller/ProcessHandleController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/controller/ProcessHandleController.java new file mode 100644 index 00000000..dbf9cbd1 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/controller/ProcessHandleController.java @@ -0,0 +1,43 @@ +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.fb.entity.ProcessFbEntryChange; +import com.jero.modules.activiti.process.fb.service.IProcessHandleService; +import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO; +import com.jero.modules.laws.common.constant.ResultCommon; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.poi.ss.formula.functions.T; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @Author: liao + * @Date: 2023/11/2 16:56 + * @Description: 流程处理 + */ +@Api(tags="流程处理") +@RestController +@RequestMapping("/process/fb/handle") +@Slf4j +public class ProcessHandleController { + + @Autowired + private IProcessHandleService processHandleService; + + @AutoLog(value = "流程处理-启动流程") + @ApiOperation(value = "流程处理-启动流程", notes = "流程处理-启动流程") + @PostMapping(value = "/startProcess") + public Result startProcess(@Validated @RequestBody ProcessInfoVO processInfoVO) { + processHandleService.startProcess(processInfoVO); + return Result.OK(MessageUtils.getMessage(ResultCommon.OK)); + } + +} 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 4f9927d1..bd6d9a17 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 @@ -24,4 +24,11 @@ public interface IProcessFbEntryChangeService extends IService userInfoMap = processInfoVO.getUserInfoMap(); // 用户变量map + String userId = CurrentUserUtil.getId(); + userInfoMap.put("engineer", userId); // 第一个任务节点设置成自己 + // 根据流程定义id和变量map启动流程 + ProcessInstance processInstance = runtimeService.startProcessInstanceById(processDefinitionId, userInfoMap); + + String processInstanceId = processInstance.getId(); // 流程实例id + // 根据流程实例id更新流程总表 + ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId); + process.setCreateUserId(userId); // 流程创建人 + process.setPrcName(processInfoVO.getProcessName()); // 流程名称 + process.setMes(processInfoVO.getProcessDescription()); // 流程说明 + process.setDueTime(processInfoVO.getProcessDueDate()); // 流程截止时间 + process.setProjectId(processInfoVO.getBusinessId()); // 业务id + processAllService.updateById(process); + + // 根据流程实例id和任务处理人查询任务 + Task task = taskService.createTaskQuery() + .processInstanceId(processInstanceId) + .taskAssignee(userId).singleResult(); + String taskId = task.getId(); + + // 更新审批记录 + ProcessApprovalRecord approvalRecord = processApprovalRecordService.getToDoByTaskId(taskId); + approvalRecord.setCommitFlag(1); // 审批意见(1通过,2驳回) + approvalRecord.setCommitText(processInfoVO.getHandleText()); // 审批内容 + approvalRecord.setCommitFile(processInfoVO.getHandleFile()); // 审批附件 + approvalRecord.setFinishFlag(2); // 完成注记(1进行中,2已完成) + approvalRecord.setEndTime(new Date()); // 完成时间 + processApprovalRecordService.updateById(approvalRecord); + + // 完成任务 + taskService.complete(taskId); + } + +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/vo/ProcessInfoVO.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/vo/ProcessInfoVO.java index b2e6eef4..9c90089b 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/vo/ProcessInfoVO.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/vo/ProcessInfoVO.java @@ -56,6 +56,6 @@ public class ProcessInfoVO { /**人员信息*/ @ApiModelProperty(value = "人员信息") - private Map userInfoMap; + private Map userInfoMap; }