Procházet zdrojové kódy

自定义流程接口新增

wangliang před 3 roky
rodič
revize
e00f5ae773

+ 25 - 22
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/FlowViewResult.java

@@ -12,38 +12,41 @@ import java.util.List;
  * @Author: wangliang
  * @Author: wangliang
  * @Date: 2021/8/6
  * @Date: 2021/8/6
  */
  */
-public class FlowViewResult extends FlowTaskResult implements Serializable {
+public class FlowViewResult implements Serializable {
 
 
     @ApiModelProperty(value = "流程节点步骤")
     @ApiModelProperty(value = "流程节点步骤")
     List<FlowViewTaskResult> flowTaskResultList;
     List<FlowViewTaskResult> flowTaskResultList;
 
 
-    @ApiModelProperty(value = "流程审批信息")
-    List<TFFlowLogResult> tfFlowLogResultList;
-
+    //    @ApiModelProperty(value = "流程审批信息")
+//    List<TFFlowLogResult> tfFlowLogResultList;
     public FlowViewResult() {
     public FlowViewResult() {
 
 
     }
     }
 
 
-    public FlowViewResult(String taskName, String taskKey, Integer setup) {
-        setTaskName(taskName);
-        setTaskKey(taskKey);
-        setSetup(setup);
-    }
-
-    public FlowViewResult(Long flowId, String taskName, String taskKey, Integer setup) {
-        setFlowId(flowId);
-        setTaskName(taskName);
-        setTaskKey(taskKey);
-        setSetup(setup);
-    }
-
-    public List<TFFlowLogResult> getTfFlowLogResultList() {
-        return tfFlowLogResultList;
+    public FlowViewResult(List<FlowViewTaskResult> flowTaskResultList) {
+        this.flowTaskResultList = flowTaskResultList;
     }
     }
 
 
-    public void setTfFlowLogResultList(List<TFFlowLogResult> tfFlowLogResultList) {
-        this.tfFlowLogResultList = tfFlowLogResultList;
-    }
+//    public FlowViewResult(String taskName, String taskKey, Integer setup) {
+//        setTaskName(taskName);
+//        setTaskKey(taskKey);
+//        setSetup(setup);
+//    }
+//
+//    public FlowViewResult(Long flowId, String taskName, String taskKey, Integer setup) {
+//        setFlowId(flowId);
+//        setTaskName(taskName);
+//        setTaskKey(taskKey);
+//        setSetup(setup);
+//    }
+
+//    public List<TFFlowLogResult> getTfFlowLogResultList() {
+//        return tfFlowLogResultList;
+//    }
+//
+//    public void setTfFlowLogResultList(List<TFFlowLogResult> tfFlowLogResultList) {
+//        this.tfFlowLogResultList = tfFlowLogResultList;
+//    }
 
 
     public List<FlowViewTaskResult> getFlowTaskResultList() {
     public List<FlowViewTaskResult> getFlowTaskResultList() {
         return flowTaskResultList;
         return flowTaskResultList;

+ 67 - 57
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/FlowViewTaskResult.java

@@ -1,11 +1,10 @@
 package com.qmth.distributed.print.business.bean.result;
 package com.qmth.distributed.print.business.bean.result;
 
 
 import com.qmth.distributed.print.business.enums.CustomFlowMultipleUserApproveTypeEnum;
 import com.qmth.distributed.print.business.enums.CustomFlowMultipleUserApproveTypeEnum;
-import com.qmth.teachcloud.common.enums.FlowApproveOperationEnum;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 
 
 import java.io.Serializable;
 import java.io.Serializable;
-import java.util.Objects;
+import java.util.List;
 
 
 /**
 /**
  * @Description: 流程节点result
  * @Description: 流程节点result
@@ -16,20 +15,20 @@ import java.util.Objects;
  */
  */
 public class FlowViewTaskResult extends FlowTaskResult implements Serializable {
 public class FlowViewTaskResult extends FlowTaskResult implements Serializable {
 
 
-    @ApiModelProperty(value = "审批操作,SUBMIT:提交,APPROVE:审批,REJECT:驳回,END:终止,EXCHANGE:转他人审批")
-    private FlowApproveOperationEnum approveOperation;
+//    @ApiModelProperty(value = "审批操作,SUBMIT:提交,APPROVE:审批,REJECT:驳回,END:终止,EXCHANGE:转他人审批")
+//    private FlowApproveOperationEnum approveOperation;
 
 
-    @ApiModelProperty(value = "审批操作,SUBMIT:提交,APPROVE:审批,REJECT:驳回,END:终止,EXCHANGE:转他人审批")
-    private String approveOperationStr;
+//    @ApiModelProperty(value = "审批操作,SUBMIT:提交,APPROVE:审批,REJECT:驳回,END:终止,EXCHANGE:转他人审批")
+//    private String approveOperationStr;
 
 
     @ApiModelProperty(value = "自定义流程审核类型")
     @ApiModelProperty(value = "自定义流程审核类型")
     private CustomFlowMultipleUserApproveTypeEnum multipleUserApproveType;
     private CustomFlowMultipleUserApproveTypeEnum multipleUserApproveType;
 
 
-    @ApiModelProperty(value = "流程审批人")
+    @ApiModelProperty(value = "流程审批人")
     private String pendApproveUsers;
     private String pendApproveUsers;
 
 
-    @ApiModelProperty(value = "流程已审人")
-    private String approveUsers;
+//    @ApiModelProperty(value = "流程已审人")
+//    private String approveUsers;
 
 
     @ApiModelProperty(value = "当前审批人")
     @ApiModelProperty(value = "当前审批人")
     private String currentApproveUsers;
     private String currentApproveUsers;
@@ -37,47 +36,58 @@ public class FlowViewTaskResult extends FlowTaskResult implements Serializable {
     @ApiModelProperty(value = "是否当前节点")
     @ApiModelProperty(value = "是否当前节点")
     private boolean currentTask;
     private boolean currentTask;
 
 
-    @ApiModelProperty(value = "审核意见")
-    private String approveRemark;
-
-    @ApiModelProperty(value = "创建时间")
-    private Long createTime;
-
-    public FlowApproveOperationEnum getApproveOperation() {
-        return approveOperation;
-    }
-
-    public void setApproveOperation(FlowApproveOperationEnum approveOperation) {
-        this.approveOperation = approveOperation;
-    }
-
-    public String getApproveOperationStr() {
-        if (Objects.nonNull(approveOperation)) {
-            return approveOperation.getTitle();
-        } else {
-            return approveOperationStr;
-        }
-    }
-
-    public void setApproveOperationStr(String approveOperationStr) {
-        this.approveOperationStr = approveOperationStr;
-    }
-
-    public String getApproveRemark() {
-        return approveRemark;
-    }
-
-    public void setApproveRemark(String approveRemark) {
-        this.approveRemark = approveRemark;
-    }
-
-    public Long getCreateTime() {
-        return createTime;
-    }
-
-    public void setCreateTime(Long createTime) {
-        this.createTime = createTime;
-    }
+//    @ApiModelProperty(value = "审核意见")
+//    private String approveRemark;
+//
+//    @ApiModelProperty(value = "创建时间")
+//    private Long createTime;
+
+    @ApiModelProperty(value = "流程审批信息")
+    List<TFFlowLogResult> tfFlowLogResultList;
+
+    public List<TFFlowLogResult> getTfFlowLogResultList() {
+        return tfFlowLogResultList;
+    }
+
+    public void setTfFlowLogResultList(List<TFFlowLogResult> tfFlowLogResultList) {
+        this.tfFlowLogResultList = tfFlowLogResultList;
+    }
+
+//    public FlowApproveOperationEnum getApproveOperation() {
+//        return approveOperation;
+//    }
+//
+//    public void setApproveOperation(FlowApproveOperationEnum approveOperation) {
+//        this.approveOperation = approveOperation;
+//    }
+//
+//    public String getApproveOperationStr() {
+//        if (Objects.nonNull(approveOperation)) {
+//            return approveOperation.getTitle();
+//        } else {
+//            return approveOperationStr;
+//        }
+//    }
+//
+//    public void setApproveOperationStr(String approveOperationStr) {
+//        this.approveOperationStr = approveOperationStr;
+//    }
+//
+//    public String getApproveRemark() {
+//        return approveRemark;
+//    }
+//
+//    public void setApproveRemark(String approveRemark) {
+//        this.approveRemark = approveRemark;
+//    }
+//
+//    public Long getCreateTime() {
+//        return createTime;
+//    }
+//
+//    public void setCreateTime(Long createTime) {
+//        this.createTime = createTime;
+//    }
 
 
     public CustomFlowMultipleUserApproveTypeEnum getMultipleUserApproveType() {
     public CustomFlowMultipleUserApproveTypeEnum getMultipleUserApproveType() {
         return multipleUserApproveType;
         return multipleUserApproveType;
@@ -95,13 +105,13 @@ public class FlowViewTaskResult extends FlowTaskResult implements Serializable {
         this.pendApproveUsers = pendApproveUsers;
         this.pendApproveUsers = pendApproveUsers;
     }
     }
 
 
-    public String getApproveUsers() {
-        return approveUsers;
-    }
-
-    public void setApproveUsers(String approveUsers) {
-        this.approveUsers = approveUsers;
-    }
+//    public String getApproveUsers() {
+//        return approveUsers;
+//    }
+//
+//    public void setApproveUsers(String approveUsers) {
+//        this.approveUsers = approveUsers;
+//    }
 
 
     public String getCurrentApproveUsers() {
     public String getCurrentApproveUsers() {
         return currentApproveUsers;
         return currentApproveUsers;

+ 2 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/TFFlowLogResult.java

@@ -3,6 +3,7 @@ package com.qmth.distributed.print.business.bean.result;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.teachcloud.common.bean.params.ApproveUserResult;
 import com.qmth.teachcloud.common.bean.params.ApproveUserResult;
+import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.enums.FlowApproveOperationEnum;
 import com.qmth.teachcloud.common.enums.FlowApproveOperationEnum;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 
 
@@ -101,7 +102,7 @@ public class TFFlowLogResult extends ApproveUserResult implements Serializable {
 
 
     public Integer getApproveSetup() {
     public Integer getApproveSetup() {
         if (Objects.isNull(approveSetup)) {
         if (Objects.isNull(approveSetup)) {
-            return 10000000;
+            return SystemConstant.START_SETUP;
         } else {
         } else {
             return approveSetup;
             return approveSetup;
         }
         }

+ 18 - 17
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ActivitiServiceImpl.java

@@ -41,6 +41,7 @@ import org.activiti.engine.task.Task;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.FileUtils;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.LinkedMultiValueMap;
 import org.springframework.util.LinkedMultiValueMap;
@@ -2275,14 +2276,16 @@ public class ActivitiServiceImpl implements ActivitiService {
         Map<String, Object> flowProcessVarMap = this.getFlowProcessVarMap(tfCustomFlowEntity);
         Map<String, Object> flowProcessVarMap = this.getFlowProcessVarMap(tfCustomFlowEntity);
         Map<String, FlowTaskResult> setupMap = (Map<String, FlowTaskResult>) flowProcessVarMap.get(SystemConstant.SETUP_MAP);
         Map<String, FlowTaskResult> setupMap = (Map<String, FlowTaskResult>) flowProcessVarMap.get(SystemConstant.SETUP_MAP);
 
 
-        FlowViewResult flowViewResult = null;
+        FlowTaskResult currFlowTaskResult = null;
         for (Map.Entry<String, FlowTaskResult> entry : setupMap.entrySet()) {
         for (Map.Entry<String, FlowTaskResult> entry : setupMap.entrySet()) {
-            FlowTaskResult customFlowVarDto = gson.fromJson(gson.toJson(entry.getValue()), FlowTaskResult.class);
-            if (Objects.nonNull(tfFlowApprove.getSetup()) && customFlowVarDto.getSetup().intValue() == tfFlowApprove.getSetup().intValue()) {
-                flowViewResult = new FlowViewResult(flowId, customFlowVarDto.getTaskName(), customFlowVarDto.getTaskKey(), customFlowVarDto.getSetup());
+            FlowTaskResult flowTaskResult = gson.fromJson(gson.toJson(entry.getValue()), FlowTaskResult.class);
+            if (Objects.nonNull(tfFlowApprove.getSetup()) && flowTaskResult.getSetup().intValue() == tfFlowApprove.getSetup().intValue()) {
+                currFlowTaskResult = new FlowTaskResult();
+                BeanUtils.copyProperties(flowTaskResult, currFlowTaskResult);
+                break;
             }
             }
         }
         }
-        flowViewResult = Objects.isNull(flowViewResult) ? new FlowViewResult() : flowViewResult;
+
         //获取流程待审批人
         //获取流程待审批人
         Map<String, CustomFlowVarDto> agginessMap = (Map<String, CustomFlowVarDto>) flowProcessVarMap.get(SystemConstant.AGGINESS_MAP);
         Map<String, CustomFlowVarDto> agginessMap = (Map<String, CustomFlowVarDto>) flowProcessVarMap.get(SystemConstant.AGGINESS_MAP);
         if (Objects.nonNull(tfFlowApprove.getTransferAssignee())) {
         if (Objects.nonNull(tfFlowApprove.getTransferAssignee())) {
@@ -2306,17 +2309,18 @@ public class ActivitiServiceImpl implements ActivitiService {
             int nextFlowSetup = 0;
             int nextFlowSetup = 0;
             for (FlowViewTaskResult f : flowViewTaskResultList) {
             for (FlowViewTaskResult f : flowViewTaskResultList) {
                 CustomFlowVarDto customFlowVarDto = gson.fromJson(gson.toJson(agginessMap.get(f.getTaskKey())), CustomFlowVarDto.class);
                 CustomFlowVarDto customFlowVarDto = gson.fromJson(gson.toJson(agginessMap.get(f.getTaskKey())), CustomFlowVarDto.class);
-                if (flowViewResult.getSetup().intValue() == f.getSetup().intValue()) {//当前审批节点
+                if (currFlowTaskResult.getSetup().intValue() == f.getSetup().intValue()) {//当前审批节点
                     f.setCurrentTask(true);
                     f.setCurrentTask(true);
                     f.setCurrentApproveUsers(sysUser.getRealName() + "(" + sysOrg.getName() + ")");
                     f.setCurrentApproveUsers(sysUser.getRealName() + "(" + sysOrg.getName() + ")");
-                    List<TFFlowLogResult> tfFlowLogResults = tfFlowLogResultMap.get(f.getSetup());
-//                    if()
-                    nextFlowSetup = flowViewResult.getSetup().intValue() + 1;
+                    nextFlowSetup = currFlowTaskResult.getSetup().intValue() + 1;
                     nextFlowSetup = nextFlowSetup == setupMap.size() ? 0 : nextFlowSetup;
                     nextFlowSetup = nextFlowSetup == setupMap.size() ? 0 : nextFlowSetup;
-                } else {
+                } else if (f.getSetup().intValue() < currFlowTaskResult.getSetup().intValue()) {//已审节点
+                    //上一节点审核人
+                    f.setTfFlowLogResultList(tfFlowLogResultMap.get(f.getSetup()));
+                } else if (f.getSetup().intValue() > currFlowTaskResult.getSetup().intValue()) {//待审核节点
                     //下一节点审批人
                     //下一节点审批人
                     if (nextFlowSetup > 0 && nextFlowSetup == f.getSetup().intValue()) {
                     if (nextFlowSetup > 0 && nextFlowSetup == f.getSetup().intValue()) {
-                        List<TFFlowLogResult> tfFlowLogResults = tfFlowLogResultMap.get(f.getSetup());
+                        List<TFFlowLogResult> tfFlowLogResults = tfFlowLogResultMap.get(f.getSetup() - 1 == 1 ? SystemConstant.START_SETUP : f.getSetup() - 1);
                         if (Objects.nonNull(tfFlowLogResults) && tfFlowLogResults.size() > 0) {
                         if (Objects.nonNull(tfFlowLogResults) && tfFlowLogResults.size() > 0) {
                             f.setPendApproveUsers(tfFlowLogResults.get(tfFlowLogResults.size() - 1).getPendApproveUserName());
                             f.setPendApproveUsers(tfFlowLogResults.get(tfFlowLogResults.size() - 1).getPendApproveUserName());
                         }
                         }
@@ -2325,14 +2329,11 @@ public class ActivitiServiceImpl implements ActivitiService {
                     }
                     }
                 }
                 }
                 f.setMultipleUserApproveType(customFlowVarDto.getMultipleUserApproveType());
                 f.setMultipleUserApproveType(customFlowVarDto.getMultipleUserApproveType());
-//            flowViewTaskResult.setPendApproveUsers(customFlowVarDto.getApproveIds());
-//            flowViewTaskResult.setApproveUsers(Arrays.asList("1"));
             }
             }
-
-            flowViewResult.setFlowTaskResultList(flowViewTaskResultList);
-            flowViewResult.setTfFlowLogResultList(tfFlowLogResultList);
+//            flowViewResult.setFlowTaskResultList(flowViewTaskResultList);
+//            flowViewResult.setTfFlowLogResultList(tfFlowLogResultList);
         }
         }
-        return flowViewResult;
+        return new FlowViewResult(flowViewTaskResultList);
     }
     }
 
 
     /**
     /**

+ 3 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/TFCustomFlowController.java

@@ -4,6 +4,8 @@ package com.qmth.distributed.print.api;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.google.gson.Gson;
 import com.google.gson.Gson;
 import com.google.gson.reflect.TypeToken;
 import com.google.gson.reflect.TypeToken;
+import com.qmth.boot.api.annotation.Aac;
+import com.qmth.boot.api.annotation.BOOL;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.boot.api.exception.ApiException;
 import com.qmth.boot.api.exception.ApiException;
 import com.qmth.distributed.print.business.bean.flow.CustomFlowDto;
 import com.qmth.distributed.print.business.bean.flow.CustomFlowDto;
@@ -54,7 +56,7 @@ import java.util.concurrent.atomic.AtomicInteger;
 @Api(tags = "自定义流程Controller")
 @Api(tags = "自定义流程Controller")
 @RestController
 @RestController
 @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.customFlow}")
 @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.customFlow}")
-//@Aac(auth = BOOL.FALSE, strict = BOOL.FALSE)
+@Aac(auth = BOOL.FALSE, strict = BOOL.FALSE)
 @Validated
 @Validated
 public class TFCustomFlowController {
 public class TFCustomFlowController {
     private final static Logger log = LoggerFactory.getLogger(TFCustomFlowController.class);
     private final static Logger log = LoggerFactory.getLogger(TFCustomFlowController.class);

+ 1 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/contant/SystemConstant.java

@@ -75,6 +75,7 @@ public class SystemConstant {
     public static final int PAGE_SIZE_MIN = 10;
     public static final int PAGE_SIZE_MIN = 10;
     public static final int PAGE_SIZE_MAX = 500;
     public static final int PAGE_SIZE_MAX = 500;
     public static final int PAGE_NUMBER_MIN = 1;
     public static final int PAGE_NUMBER_MIN = 1;
+    public static final int START_SETUP = 10000000;
     public static final int IN_SIZE_MAX = 1000;
     public static final int IN_SIZE_MAX = 1000;
     public static final int ALL_CARD = -1;
     public static final int ALL_CARD = -1;
     public static final String MANUAL = "manual";
     public static final String MANUAL = "manual";