Pārlūkot izejas kodu

feature: 工作流修改任务分支返回参数

huangjy 4 gadi atpakaļ
vecāks
revīzija
7a316a134c

+ 11 - 0
approve-api/src/main/java/com/dragonsoft/dcuc/approve/model/resp/TaskOutgoingVo.java

@@ -21,6 +21,9 @@ public class TaskOutgoingVo {
     @ApiModelProperty(value = "访问资源信息")
     private String activitiName;
 
+    @ApiModelProperty(value = "任务标识码")
+    private String taskCode;
+
     public String getActivitiId() {
         return activitiId;
     }
@@ -36,4 +39,12 @@ public class TaskOutgoingVo {
     public void setActivitiName(String activitiName) {
         this.activitiName = activitiName;
     }
+
+    public String getTaskCode() {
+        return taskCode;
+    }
+
+    public void setTaskCode(String taskCode) {
+        this.taskCode = taskCode;
+    }
 }

+ 3 - 2
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/facade/ApiApproveFacade.java → approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/api/facade/ApiApproveFacade.java

@@ -1,8 +1,9 @@
-package com.dragonsoft.dcuc.approve.facade;
+package com.dragonsoft.dcuc.approve.api.facade;
 
 import com.dragoninfo.dcuc.app.dto.ResourceRequestParamDTO;
 import com.dragoninfo.dcuc.app.facade.IResourceFacade;
 import com.dragonsoft.dcuc.approve.enumresources.ApproveWorkFlowOprationEnum;
+import com.dragonsoft.dcuc.approve.facade.IApiApproveFacade;
 import com.dragonsoft.dcuc.approve.model.req.ApprovalInfoDTO;
 import com.dragonsoft.dcuc.approve.model.req.ApprovalInfoUpdateDTO;
 import com.dragonsoft.dcuc.approve.model.req.ApproveOperateDTO;
@@ -23,7 +24,7 @@ import java.util.List;
 import java.util.Map;
 
 @RestController
-public class ApiApproveFacade implements IApiApproveFacade{
+public class ApiApproveFacade implements IApiApproveFacade {
     @Autowired
     private IApproveService approveService;
     @Autowired

+ 29 - 15
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/service/impl/ApproveService.java

@@ -448,7 +448,7 @@ public class ApproveService implements IApproveService {
                 //通过任务id获取任务分支
                 List<TaskOutgoingVo> list = buildTaskOutgoingVoList(taskId);
                 for (ActivitiHolder activitiHolder: activitiHolderList){
-                    activitiHolder.setActivitiId(list.get(0).getActivitiId());
+                    activitiHolder.setTaskDefinitionKey(list.get(0).getActivitiId());
                 }
             }
             transMessage.setActivitiHolders(activitiHolderList);
@@ -826,7 +826,6 @@ public class ApproveService implements IApproveService {
         approvalInfoVo.setResourceInfoVo(resourceInfoVo);
         return ResponseDTO.newInstance(approvalInfoVo);
     }
-
     /**
      * 设置是否显示撤回按钮
      * @param taskOperateVo
@@ -835,20 +834,28 @@ public class ApproveService implements IApproveService {
      */
     private void appendShowBack(TaskOperateVo taskOperateVo, String taskId, String processInstanceId,OutgoingVo outgoingVo,String pageType) {
         ApprovalInfo approvalInfo = this.findApprovalInfo(processInstanceId, "");
+
+        List<String> taskDefinitionKeyList = new ArrayList<>();
+        for (TaskDefinitionVo taskDefinitionVo: outgoingVo.getTaskDefinitionVoList()){
+            taskDefinitionKeyList.add(taskDefinitionVo.getTaskDefinitionKey());
+        }
+
         if(approvalInfo.getTaskId().equalsIgnoreCase(endStr)){
             //流程结束不能撤回
             taskOperateVo.setShowBack(false);
             return;
         }else {
-            String HistoryTaskDefinitionKey = "";
+            String historyTaskDefinitionKey = "";
             if (pageType.equalsIgnoreCase(myRequestPage)) {
-                Map<String, String> out = outgoingVo.getOutgoingTransitions();
-                Set<String> strings = out.keySet();
-                String next = strings.iterator().next();
-                HistoryTaskDefinitionKey = next;
+//                Map<String, String> out = outgoingVo.getOutgoingTransitions();
+//                Set<String> strings = out.keySet();
+//                String next = strings.iterator().next();
+//                historyTaskDefinitionKey = next;
+                historyTaskDefinitionKey = outgoingVo.getTaskDefinitionVoList().get(0).getTaskDefinitionKey();
+
             }else {
                 TaskHistoryDetailVo currentTask = workflowClientFactory.getWorkflowTaskClient().queryTaskDetail(taskId);
-                HistoryTaskDefinitionKey = currentTask.getTaskDefinitionKey();
+                historyTaskDefinitionKey = currentTask.getTaskDefinitionKey();
             }
             /**
              * 1. 判断是否为第一个节点,是则不能撤回
@@ -858,7 +865,7 @@ public class ApproveService implements IApproveService {
             //1.判断是否为第一个节点,是则不能撤回
             TaskHistoryDetailVo taskHistoryDetailVo = workflowClientFactory.getWorkflowTaskClient().queryTaskDetail(approvalInfo.getTaskId());
             String taskDefinitionKey = taskHistoryDetailVo.getTaskDefinitionKey();
-            if(outgoingVo.getOutgoingTransitions().containsKey(taskDefinitionKey)){
+            if(taskDefinitionKeyList.contains(taskDefinitionKey)){
                 taskOperateVo.setShowBack(false);
                 return;
             }
@@ -893,7 +900,7 @@ public class ApproveService implements IApproveService {
                 if(approveCommentVo.getId().equalsIgnoreCase(taskDefinitionKey)){
                     finishTaskIndexPosition = index;
                 }
-                if(approveCommentVo.getId().equalsIgnoreCase(HistoryTaskDefinitionKey)){
+                if(approveCommentVo.getId().equalsIgnoreCase(historyTaskDefinitionKey)){
                     currentTaskIndexPosition = index;
                 }
                 index++;
@@ -1000,11 +1007,13 @@ public class ApproveService implements IApproveService {
     private List<TaskOutgoingVo> buildTaskOutgoingVoList(String taskId) {
         OutgoingVo outgoingVo = workflowClientFactory.getWorkflowTaskClient().queryTaskOutgoing(taskId);
         List<TaskOutgoingVo> list = new ArrayList<>();
-        for (Map.Entry<String, String> map : outgoingVo.getOutgoingTransitions().entrySet()) {
-            if (!"end".equalsIgnoreCase(map.getKey())){
+
+        for (TaskDefinitionVo taskDefinitionVo: outgoingVo.getTaskDefinitionVoList()){
+            if (!"end".equalsIgnoreCase(taskDefinitionVo.getTaskCode())){
                 TaskOutgoingVo taskOutgoingVo = new TaskOutgoingVo();
-                taskOutgoingVo.setActivitiId(map.getKey());
-                taskOutgoingVo.setActivitiName(map.getValue());
+                taskOutgoingVo.setActivitiId(taskDefinitionVo.getTaskDefinitionKey());
+                taskOutgoingVo.setActivitiName(taskDefinitionVo.getName());
+                taskOutgoingVo.setTaskCode(taskDefinitionVo.getTaskCode());
                 list.add(taskOutgoingVo);
             }
         }
@@ -1019,7 +1028,12 @@ public class ApproveService implements IApproveService {
      * @param taskDefinitionKey
      */
     private void appendShowEdit(TaskOperateVo taskOperateVo, OutgoingVo outgoingVo, String taskDefinitionKey) {
-        Boolean showEdit = outgoingVo.getOutgoingTransitions().get(taskDefinitionKey) != null;
+        List<String> taskDefinitionKeyList = new ArrayList<>();
+        for (TaskDefinitionVo taskDefinitionVo: outgoingVo.getTaskDefinitionVoList()){
+            taskDefinitionKeyList.add(taskDefinitionVo.getTaskDefinitionKey());
+        }
+//        Boolean showEdit = outgoingVo.getOutgoingTransitions().get(taskDefinitionKey) != null;
+        Boolean showEdit = taskDefinitionKeyList.contains(taskDefinitionKey);
         taskOperateVo.setShowEdit(showEdit);
     }