Browse Source

撤回优化

tags/24080901
PoffyZhang 1 year ago
parent
commit
57665eb5f2
1 changed files with 27 additions and 6 deletions
  1. +27
    -6
      pmapi/src/main/java/com/ningdatech/pmapi/todocenter/manage/TodoCenterManage.java

+ 27
- 6
pmapi/src/main/java/com/ningdatech/pmapi/todocenter/manage/TodoCenterManage.java View File

@@ -29,6 +29,7 @@ import org.flowable.engine.RuntimeService;
import org.flowable.engine.TaskService;
import org.flowable.engine.history.HistoricProcessInstance;
import org.flowable.task.api.Task;
import org.flowable.task.api.history.HistoricTaskInstance;
import org.flowable.variable.api.history.HistoricVariableInstance;
import org.springframework.beans.BeanUtils;
import org.springframework.mock.web.MockMultipartFile;
@@ -325,12 +326,6 @@ public class TodoCenterManage {
* @since 2023/02/01
*/
public String handler(ReqProcessHandlerDTO param) {
//前置判断前端传的taskId是否存在不存在的情况 有可能是 或签被别人审批掉了
Task task = taskService.createTaskQuery().taskId(param.getTaskId()).active().singleResult();
if (ObjectUtil.isNull(task)) {
return TodoCenterContant.Handler.TASKID_ERROR;
}
String nodeId = task.getTaskDefinitionKey();
// 获取登录用户ID
UserFullInfoDTO user = userInfoHelper.getUserFullInfo(LoginUserUtil.getUserId());
// 获取登录用户浙政钉code
@@ -361,6 +356,12 @@ public class TodoCenterManage {
case PASS:
// 盖章并通过
case SEAL_PASS:
//前置判断前端传的taskId是否存在不存在的情况 有可能是 或签被别人审批掉了
Task task = taskService.createTaskQuery().taskId(param.getTaskId()).active().singleResult();
if (ObjectUtil.isNull(task)) {
return TodoCenterContant.Handler.TASKID_ERROR;
}
String nodeId = task.getTaskDefinitionKey();
// 通过该任务,流程到下一审核人处
processTaskService.handleTask(param, employeeCode);
//通过审核后 所处理的逻辑
@@ -369,6 +370,12 @@ public class TodoCenterManage {
return findNextTaskId(instance,employeeCode,nodeId);
// 驳回
case REJECT:
//前置判断前端传的taskId是否存在不存在的情况 有可能是 或签被别人审批掉了
task = taskService.createTaskQuery().taskId(param.getTaskId()).active().singleResult();
if (ObjectUtil.isNull(task)) {
return TodoCenterContant.Handler.TASKID_ERROR;
}
nodeId = task.getTaskDefinitionKey();
// 驳回该任务,中止流程并使项目进入对应状态,给项目创建人、流程发起人发送浙政钉工作通知:
// 【项目名称】的【流程名称】被驳回,请及时处理。
processTaskService.handleTask(param, employeeCode);
@@ -377,6 +384,12 @@ public class TodoCenterManage {
break;
// 退回
case BACK:
//前置判断前端传的taskId是否存在不存在的情况 有可能是 或签被别人审批掉了
task = taskService.createTaskQuery().taskId(param.getTaskId()).active().singleResult();
if (ObjectUtil.isNull(task)) {
return TodoCenterContant.Handler.TASKID_ERROR;
}
nodeId = task.getTaskDefinitionKey();
// 退回该任务
processTaskService.handleTask(param, employeeCode);
//退回审核后 所处理的逻辑
@@ -399,6 +412,14 @@ public class TodoCenterManage {
// 这里有个小操作 check的同时 把对应的操作人的taskId 也塞入
VUtils.isTrue(!withDrawHandle.checkUserIsBefore(currentInstanceDetail.getProgressInfo(),param))
.throwMessage("当前登录用户不是发起人,也不是上一个节点审批人或者当前会签已批审批人 无法进行撤回操作!");

//前置判断前端传的taskId是否存在不存在的情况 有可能是 或签被别人审批掉了
HistoricTaskInstance taskInst = historyService.createHistoricTaskInstanceQuery().taskId(param.getTaskId()).finished().singleResult();
if (ObjectUtil.isNull(taskInst)) {
return TodoCenterContant.Handler.TASKID_ERROR;
}
nodeId = taskInst.getTaskDefinitionKey();

//上个审批人处理逻辑
processTaskService.lastWithdrawTask(param);



Loading…
Cancel
Save