add 标准法规入库_变更流程-审批

This commit is contained in:
liao
2023-11-06 14:55:07 +08:00
parent 2c179fdd8b
commit 0ab9038fda
6 changed files with 120 additions and 12 deletions
@@ -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<ProcessFbEntr
return Result.OK(processFbEntryChange);
}
@AutoLog(value = "流程处理-启动流程")
@ApiOperation(value = "流程处理-启动流程", notes = "流程处理-启动流程")
@AutoLog(value = "标准法规入库_变更流程-发起流程")
@ApiOperation(value = "标准法规入库_变更流程-发起流程", notes = "流程处理-发起流程")
@PostMapping(value = "/startProcess")
public Result<T> 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<T> agree(@Validated @RequestBody ProcessInfoVO processInfoVO) {
processFbEntryChangeService.approveTask(processInfoVO, true);
return Result.OK();
}
@AutoLog(value = "标准法规入库_变更流程-驳回")
@ApiOperation(value="标准法规入库_变更流程-驳回", notes="标准法规入库_变更流程-驳回")
@PostMapping("/reject")
public Result<T> reject(@Validated @RequestBody ProcessInfoVO processInfoVO) {
processFbEntryChangeService.approveTask(processInfoVO, true);
return Result.OK();
}
@AutoLog(value = "流程处理-保存为草稿")
@@ -71,7 +88,7 @@ public class ProcessFbEntryChangeController extends JeroController<ProcessFbEntr
@PostMapping(value = "/saveToDraft")
public Result<T> saveToDraft(@Validated @RequestBody ProcessInfoVO processInfoVO) {
processFbEntryChangeService.saveToDraft(processInfoVO);
return Result.OK(MessageUtils.getMessage(ResultCommon.OK));
return Result.OK();
}
}
@@ -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
}
@@ -40,6 +40,13 @@ public interface IProcessFbEntryChangeService extends IService<ProcessFbEntryCha
**/
void startProcess(ProcessInfoVO processInfoVO);
/**
* @Author: liao
* @Date: 2023/11/6 14:52
* @Description: 审批
**/
void approveTask(ProcessInfoVO processInfoVO, boolean pass);
/**
* @Author: liao
* @Date: 2023/11/3 10:58
@@ -1,5 +1,6 @@
package com.jero.modules.activiti.process.fb.service;
import com.jero.modules.activiti.process.fb.dto.ProcessDTO;
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
/**
@@ -25,9 +26,16 @@ public interface IProcessHandleService {
/**
* @Author: liao
* @Date: 2023/11/6 11:59
* @Description: 判断是否存在任务
* @Description: 判断是否是自己的任务
**/
void isTaskExist(String taskId);
void isMyTask(String taskId);
/**
* @Author: liao
* @Date: 2023/11/6 14:22
* @Description: 根据任务id获取流程信息
**/
ProcessDTO getProcessDTO(String taskId);
/**
* @Author: liao
@@ -104,6 +104,16 @@ public class ProcessFbEntryChangeServiceImpl extends ServiceImpl<ProcessFbEntryC
processHandleService.startProcess(processInfoVO);
}
/**
* @Author: liao
* @Date: 2023/11/6 14:52
* @Description: 审批
**/
@Override
public void approveTask(ProcessInfoVO processInfoVO, boolean pass) {
processHandleService.approveTask(processInfoVO, pass);
}
/**
* @Author: liao
* @Date: 2023/11/3 11:28
@@ -3,7 +3,10 @@ package com.jero.modules.activiti.process.fb.service.impl;
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.FinishFlagEnum;
import com.jero.modules.activiti.enums.ProcessTypeEnum;
import com.jero.modules.activiti.process.fb.dto.ProcessDTO;
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;
@@ -69,6 +72,7 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
updateProcessAll(processInfoVO);
// 保存选人信息
runtimeService.setVariables(processInstanceId, userInfoMap);
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, userInfoMap);
// 根据流程实例id和任务处理人查询任务
@@ -79,8 +83,7 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
// 更新审批记录
processInfoVO.setTaskId(taskId);
processInfoVO.setCommitFlag(1); // 审批意见(1通过,2驳回)
processInfoVO.setFinishFlag(2); // 完成注记(1进行中,2已完成)
processInfoVO.setCommitFlag(CommitFlagEnum.PASS.getValue()); // 审批意见(1通过,2驳回)
updateApprovalRecord(processInfoVO);
// 完成任务
@@ -94,16 +97,38 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
**/
@Override
public void approveTask(ProcessInfoVO processInfoVO, boolean pass) {
// 判断是否是自己的任务
String taskId = processInfoVO.getTaskId();
isMyTask(taskId);
ProcessDTO processDTO = getProcessDTO(taskId);
String processInstanceId = processDTO.getProcessInstanceId();
String processDefinitionId = processDTO.getProcessDefinitionId();
Map<String, Object> 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);
}