瀏覽代碼

驳回跨节点选人修改

wangliang 1 年之前
父節點
當前提交
bb9eaa2430

+ 13 - 3
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ActivitiServiceImpl.java

@@ -15,7 +15,6 @@ import com.qmth.distributed.print.business.bean.flow.dto.StandardFlowWorkMsg;
 import com.qmth.distributed.print.business.bean.flow.link.FlowTaskLink;
 import com.qmth.distributed.print.business.bean.flow.link.FlowTaskNode;
 import com.qmth.distributed.print.business.bean.result.*;
-import com.qmth.teachcloud.common.bean.vo.PaperInfoVo;
 import com.qmth.distributed.print.business.entity.*;
 import com.qmth.distributed.print.business.enums.*;
 import com.qmth.distributed.print.business.service.*;
@@ -24,6 +23,7 @@ import com.qmth.teachcloud.common.bean.params.ApproveUserResult;
 import com.qmth.teachcloud.common.bean.params.SysRoleGroupMemberMatch;
 import com.qmth.teachcloud.common.bean.params.SysRoleGroupMemberMatchParams;
 import com.qmth.teachcloud.common.bean.result.SysRoleGroupMemberMatchResult;
+import com.qmth.teachcloud.common.bean.vo.PaperInfoVo;
 import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicSchool;
@@ -1684,6 +1684,15 @@ public class ActivitiServiceImpl implements ActivitiService {
 
         int currSetup = currFlowTaskResult.getSetup().intValue();
         currSetup = currSetup == setupMap.size() - 1 ? 0 : currSetup + 1;
+        Map<String, FlowTaskResult> rejectLinkMap = null;
+        if (Objects.nonNull(tfFlowApprove.getRejectLink()) && (tfFlowApprove.getStatus() == FlowStatusEnum.REJECT || tfFlowApprove.getStatus() == FlowStatusEnum.CANCEL)) {
+            rejectLinkMap = JacksonUtil.readJson(tfFlowApprove.getRejectLink(), Map.class);
+            if (Objects.nonNull(rejectLinkMap.get(task.getTaskDefinitionKey()))) {
+                FlowTaskResult flowTaskResultRejectLinkDto = gson.fromJson(gson.toJson(rejectLinkMap.get(task.getTaskDefinitionKey())), FlowTaskResult.class);
+                currSetup = flowTaskResultRejectLinkDto.getSetup();
+            }
+        }
+
         FlowTaskResult nextFlowTaskResult = this.getNextFlowTaskResult(setupMap, gson, currSetup, null);
         nextFlowTaskResult.setFlowId(flowId);
         CustomFlowVarDto nextCustomFlowVarDto = gson.fromJson(gson.toJson(agginessMap.get(nextFlowTaskResult.getTaskKey())), CustomFlowVarDto.class);
@@ -1722,8 +1731,9 @@ public class ActivitiServiceImpl implements ActivitiService {
 
         //获取流程id
         List<TFFlowJoin> tfFlowJoinList = tfFlowJoinService.findByFlowEntityId(tfCustomFlowEntity.getId());
-        Optional.ofNullable(tfFlowJoinList).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("流程数据为空"));
-
+        if (CollectionUtils.isEmpty(tfFlowJoinList)) {
+            throw ExceptionResultEnum.ERROR.exception("流程数据为空");
+        }
         //获取当前流程节点
         TFFlowApprove tfFlowApprove = tfFlowApproveService.findByFlowId(flowId);
         Optional.ofNullable(tfFlowApprove).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("流程审核数据为空"));