update 调整驳回

This commit is contained in:
gssong 2024-12-15 17:31:58 +08:00
parent 42d824d03e
commit 1c2b492e56

View File

@ -364,18 +364,9 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
//申请人节点 //申请人节点
String applyUserNodeCode = flowSkip.getNextNodeCode(); String applyUserNodeCode = flowSkip.getNextNodeCode();
if (applyUserNodeCode.equals(bo.getNodeCode())) { if (applyUserNodeCode.equals(bo.getNodeCode())) {
backApplyUser(message, inst, applyUserNodeCode); backTask(message, inst, applyUserNodeCode, TaskStatusEnum.BACK.getStatus());
} else { } else {
List<Task> list = taskService.list(FlowFactory.newTask().setInstanceId(inst.getId())); backTask(message, inst, bo.getNodeCode(), TaskStatusEnum.WAITING.getStatus());
for (Task task : list) {
FlowParams flowParams = FlowParams.build();
flowParams.nodeCode(bo.getNodeCode());
flowParams.message(message);
flowParams.skipType(SkipType.PASS.getKey());
flowParams.flowStatus(BusinessStatusEnum.WAITING.getStatus()).hisStatus(TaskStatusEnum.BACK.getStatus());
flowParams.ignore(true);
taskService.skip(task.getId(), flowParams);
}
} }
Instance instance = insService.getById(inst.getId()); Instance instance = insService.getById(inst.getId());
setHandler(instance, flowTasks.get(0), null); setHandler(instance, flowTasks.get(0), null);
@ -391,14 +382,14 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
/** /**
* 退回 * 退回
* *
* @param message 审批已经 * @param message 审批已经
* @param instance 流程实例 * @param instance 流程实例
* @param applyUserNodeCode 申请人节点 * @param targetNodeCode 驳回的节点
*/ */
private void backApplyUser(String message, Instance instance, String applyUserNodeCode) { private void backTask(String message, Instance instance, String targetNodeCode, String status) {
List<Task> list = taskService.list(FlowFactory.newTask().setInstanceId(instance.getId())); List<Task> list = taskService.list(FlowFactory.newTask().setInstanceId(instance.getId()));
if (CollUtil.isNotEmpty(list)) { if (CollUtil.isNotEmpty(list)) {
List<Task> tasks = StreamUtils.filter(list, e -> e.getNodeCode().equals(applyUserNodeCode)); List<Task> tasks = StreamUtils.filter(list, e -> e.getNodeCode().equals(targetNodeCode));
if (list.size() == tasks.size()) { if (list.size() == tasks.size()) {
return; return;
} }
@ -406,10 +397,10 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
for (Task task : list) { for (Task task : list) {
List<UserDTO> userList = currentTaskAllUser(task.getId()); List<UserDTO> userList = currentTaskAllUser(task.getId());
FlowParams flowParams = FlowParams.build(); FlowParams flowParams = FlowParams.build();
flowParams.nodeCode(applyUserNodeCode); flowParams.nodeCode(targetNodeCode);
flowParams.message(message); flowParams.message(message);
flowParams.skipType(SkipType.PASS.getKey()); flowParams.skipType(SkipType.PASS.getKey());
flowParams.flowStatus(BusinessStatusEnum.BACK.getStatus()).hisStatus(TaskStatusEnum.BACK.getStatus()); flowParams.flowStatus(status).hisStatus(TaskStatusEnum.BACK.getStatus());
flowParams.ignore(true); flowParams.ignore(true);
//解决会签或签撤销没权限问题 //解决会签或签撤销没权限问题
if (CollUtil.isNotEmpty(userList)) { if (CollUtil.isNotEmpty(userList)) {
@ -418,7 +409,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
taskService.skip(task.getId(), flowParams); taskService.skip(task.getId(), flowParams);
} }
//解决会签或签多人审批问题 //解决会签或签多人审批问题
backApplyUser(message, instance, applyUserNodeCode); backTask(message, instance, targetNodeCode, status);
} }
/** /**