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