فهرست منبع

自定义流程接口新增-流程查看接口

wangliang 3 سال پیش
والد
کامیت
93dd06eca6

+ 1 - 12
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/FlowTaskApproveParam.java

@@ -20,6 +20,7 @@ public class FlowTaskApproveParam implements Serializable {
     private String taskId;
 
     @ApiModelProperty(value = "流程审核操作")
+    @NotNull(message = "流程审核操作不能为空")
     private FlowApprovePassEnum approvePass;
 
     @ApiModelProperty(value = "流程审核意见")
@@ -28,10 +29,6 @@ public class FlowTaskApproveParam implements Serializable {
     @ApiModelProperty(value = "流程驳回节点")
     private Integer setup;
 
-//    @ApiModelProperty(value = "流程审批人列表")
-//    @JsonSerialize(using = ToStringSerializer.class)
-//    private List<Long> approveUserIds;
-
     public String getTaskId() {
         return taskId;
     }
@@ -63,12 +60,4 @@ public class FlowTaskApproveParam implements Serializable {
     public void setSetup(Integer setup) {
         this.setup = setup;
     }
-
-//    public List<Long> getApproveUserIds() {
-//        return approveUserIds;
-//    }
-//
-//    public void setApproveUserIds(List<Long> approveUserIds) {
-//        this.approveUserIds = approveUserIds;
-//    }
 }

+ 47 - 29
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/FlowViewResult.java

@@ -1,5 +1,6 @@
 package com.qmth.distributed.print.business.bean.result;
 
+import com.qmth.distributed.print.business.enums.CustomFlowMultipleUserApproveTypeEnum;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.io.Serializable;
@@ -14,45 +15,62 @@ import java.util.List;
  */
 public class FlowViewResult implements Serializable {
 
-    @ApiModelProperty(value = "流程节点步骤")
-    List<FlowViewTaskResult> flowTaskResultList;
+    @ApiModelProperty(value = "自定义流程审核类型")
+    private CustomFlowMultipleUserApproveTypeEnum multipleUserApproveType;
+
+    @ApiModelProperty(value = "当前流程节点")
+    private FlowTaskResult currFlowTaskResult;
+
+    @ApiModelProperty(value = "下一级审批人")
+    private String pendApproveUsers;
+
+    @ApiModelProperty(value = "流程审批信息")
+    List<TFFlowViewLogResult> tfFlowViewLogResultList;
 
-    //    @ApiModelProperty(value = "流程审批信息")
-//    List<TFFlowLogResult> tfFlowLogResultList;
     public FlowViewResult() {
 
     }
 
-    public FlowViewResult(List<FlowViewTaskResult> flowTaskResultList) {
-        this.flowTaskResultList = flowTaskResultList;
+    public FlowViewResult(List<TFFlowViewLogResult> tfFlowViewLogResultList) {
+        this.tfFlowViewLogResultList = tfFlowViewLogResultList;
+    }
+
+    public FlowViewResult(CustomFlowMultipleUserApproveTypeEnum multipleUserApproveType,FlowTaskResult currFlowTaskResult, String pendApproveUsers, List<TFFlowViewLogResult> tfFlowViewLogResultList) {
+        this.multipleUserApproveType = multipleUserApproveType;
+        this.currFlowTaskResult = currFlowTaskResult;
+        this.pendApproveUsers = pendApproveUsers;
+        this.tfFlowViewLogResultList = tfFlowViewLogResultList;
+    }
+
+    public FlowTaskResult getCurrFlowTaskResult() {
+        return currFlowTaskResult;
     }
 
-//    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 void setCurrFlowTaskResult(FlowTaskResult currFlowTaskResult) {
+        this.currFlowTaskResult = currFlowTaskResult;
+    }
 
-//    public List<TFFlowLogResult> getTfFlowLogResultList() {
-//        return tfFlowLogResultList;
-//    }
-//
-//    public void setTfFlowLogResultList(List<TFFlowLogResult> tfFlowLogResultList) {
-//        this.tfFlowLogResultList = tfFlowLogResultList;
-//    }
+    public CustomFlowMultipleUserApproveTypeEnum getMultipleUserApproveType() {
+        return multipleUserApproveType;
+    }
+
+    public void setMultipleUserApproveType(CustomFlowMultipleUserApproveTypeEnum multipleUserApproveType) {
+        this.multipleUserApproveType = multipleUserApproveType;
+    }
+
+    public String getPendApproveUsers() {
+        return pendApproveUsers;
+    }
+
+    public void setPendApproveUsers(String pendApproveUsers) {
+        this.pendApproveUsers = pendApproveUsers;
+    }
 
-    public List<FlowViewTaskResult> getFlowTaskResultList() {
-        return flowTaskResultList;
+    public List<TFFlowViewLogResult> getTfFlowViewLogResultList() {
+        return tfFlowViewLogResultList;
     }
 
-    public void setFlowTaskResultList(List<FlowViewTaskResult> flowTaskResultList) {
-        this.flowTaskResultList = flowTaskResultList;
+    public void setTfFlowViewLogResultList(List<TFFlowViewLogResult> tfFlowViewLogResultList) {
+        this.tfFlowViewLogResultList = tfFlowViewLogResultList;
     }
 }

+ 0 - 74
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/FlowViewTaskResult.java

@@ -1,74 +0,0 @@
-package com.qmth.distributed.print.business.bean.result;
-
-import com.fasterxml.jackson.annotation.JsonInclude;
-import com.qmth.distributed.print.business.enums.CustomFlowMultipleUserApproveTypeEnum;
-import io.swagger.annotations.ApiModelProperty;
-
-import java.io.Serializable;
-import java.util.List;
-
-/**
- * @Description: 流程节点result
- * @Param:
- * @return:
- * @Author: wangliang
- * @Date: 2021/8/6
- */
-@JsonInclude(JsonInclude.Include.NON_NULL)
-public class FlowViewTaskResult extends FlowTaskResult implements Serializable {
-
-    @ApiModelProperty(value = "自定义流程审核类型")
-    private CustomFlowMultipleUserApproveTypeEnum multipleUserApproveType;
-
-    @ApiModelProperty(value = "当前审批人")
-    private String currentApproveUsers;
-
-    @ApiModelProperty(value = "下一级审批人")
-    private String pendApproveUsers;
-
-    @ApiModelProperty(value = "是否当前节点")
-    private boolean currentTask;
-
-    @ApiModelProperty(value = "流程审批信息")
-    List<TFFlowViewLogResult> tfFlowViewLogResultList;
-
-    public String getPendApproveUsers() {
-        return pendApproveUsers;
-    }
-
-    public void setPendApproveUsers(String pendApproveUsers) {
-        this.pendApproveUsers = pendApproveUsers;
-    }
-
-    public List<TFFlowViewLogResult> getTfFlowViewLogResultList() {
-        return tfFlowViewLogResultList;
-    }
-
-    public void setTfFlowViewLogResultList(List<TFFlowViewLogResult> tfFlowViewLogResultList) {
-        this.tfFlowViewLogResultList = tfFlowViewLogResultList;
-    }
-
-    public CustomFlowMultipleUserApproveTypeEnum getMultipleUserApproveType() {
-        return multipleUserApproveType;
-    }
-
-    public void setMultipleUserApproveType(CustomFlowMultipleUserApproveTypeEnum multipleUserApproveType) {
-        this.multipleUserApproveType = multipleUserApproveType;
-    }
-
-    public String getCurrentApproveUsers() {
-        return currentApproveUsers;
-    }
-
-    public void setCurrentApproveUsers(String currentApproveUsers) {
-        this.currentApproveUsers = currentApproveUsers;
-    }
-
-    public boolean isCurrentTask() {
-        return currentTask;
-    }
-
-    public void setCurrentTask(boolean currentTask) {
-        this.currentTask = currentTask;
-    }
-}

+ 21 - 35
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ActivitiServiceImpl.java

@@ -40,7 +40,6 @@ import org.activiti.engine.task.Task;
 import org.apache.commons.io.FileUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.LinkedMultiValueMap;
@@ -2255,11 +2254,6 @@ public class ActivitiServiceImpl implements ActivitiService {
         TFCustomFlowEntity tfCustomFlowEntity = tfCustomFlowEntityService.findByFlowId(flowId);
         Optional.ofNullable(tfCustomFlowEntity).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("自定义流程实体数据为空"));
 
-        Gson gson = new Gson();
-        List<FlowTaskResult> flowTaskResultList = this.getFlowTaskResult(tfCustomFlowEntity);
-        List<FlowViewTaskResult> flowViewTaskResultList = gson.fromJson(gson.toJson(flowTaskResultList), new TypeToken<List<FlowViewTaskResult>>() {
-        }.getType());
-
         //获取流程id
         List<TExamTaskFlow> tExamTaskFlowList = tExamTaskFlowService.findByFlowEntityId(tfCustomFlowEntity.getId());
         Optional.ofNullable(tExamTaskFlowList).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("流程数据为空"));
@@ -2271,12 +2265,12 @@ public class ActivitiServiceImpl implements ActivitiService {
         Map<String, Object> flowProcessVarMap = this.getFlowProcessVarMap(tfCustomFlowEntity);
         Map<String, FlowTaskResult> setupMap = (Map<String, FlowTaskResult>) flowProcessVarMap.get(SystemConstant.SETUP_MAP);
 
+        Gson gson = new Gson();
         FlowTaskResult currFlowTaskResult = null;
         for (Map.Entry<String, FlowTaskResult> entry : setupMap.entrySet()) {
             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);
+                currFlowTaskResult = flowTaskResult;
                 break;
             }
         }
@@ -2290,36 +2284,28 @@ public class ActivitiServiceImpl implements ActivitiService {
         //获取流程审批历史
         List<TFFlowLogResult> tfFlowLogResultList = tfFlowLogService.findByExamTaskId(tExamTaskFlowList.get(0).getTaskId());
         if (Objects.nonNull(tfFlowLogResultList) && tfFlowLogResultList.size() > 0) {
-            LinkedMultiValueMap<Integer, TFFlowViewLogResult> tfFlowViewLogResultMap = new LinkedMultiValueMap<>();
-            for (TFFlowLogResult t : tfFlowLogResultList) {
-                tfFlowViewLogResultMap.add(t.getApproveSetup(), new TFFlowViewLogResult(t));
-            }
-
-            for (FlowViewTaskResult f : flowViewTaskResultList) {
-                CustomFlowVarDto customFlowVarDto = gson.fromJson(gson.toJson(agginessMap.get(f.getTaskKey())), CustomFlowVarDto.class);
-                if (f.getSetup().intValue() <= currFlowTaskResult.getSetup().intValue()) {//已审节点
-                    if (currFlowTaskResult.getSetup().intValue() == f.getSetup().intValue()) {//当前审批节点
-                        f.setCurrentTask(true);
-                        List<TFFlowViewLogResult> tfFlowViewLogResultList = tfFlowViewLogResultMap.get(f.getSetup());
-                        f.setTfFlowViewLogResultList(tfFlowViewLogResultList);
-                        TFFlowViewLogResult tfFlowViewLogResult = tfFlowViewLogResultList.get(tfFlowViewLogResultList.size() - 1);
-                        f.setCurrentApproveUsers(tfFlowViewLogResult.getPendApproveUserName());
-                    } else {
-                        //上一节点审核人
-                        f.setTfFlowViewLogResultList(tfFlowViewLogResultMap.get(f.getSetup()));
-                    }
-                } else if (f.getSetup().intValue() > currFlowTaskResult.getSetup().intValue()) {//待审核节点
-                    //下一节点审批人
-                    if (Objects.nonNull(customFlowVarDto.getApproveIds())) {
-                        ApproveUserResult approveUserResult = sysUserService.findByIds(customFlowVarDto.getApproveIds().stream().map(x -> SystemConstant.convertIdToLong(x)).collect(Collectors.toList()));
-                        f.setPendApproveUsers(approveUserResult.getPendApproveUsers());
-                        f.setTfFlowViewLogResultList(tfFlowViewLogResultMap.get(f.getSetup()));
-                    }
+            List<TFFlowViewLogResult> flowViewTaskResultList = gson.fromJson(gson.toJson(tfFlowLogResultList), new TypeToken<List<TFFlowViewLogResult>>() {
+            }.getType());
+            if (Objects.nonNull(currFlowTaskResult)) {
+                CustomFlowVarDto customFlowVarDto = gson.fromJson(gson.toJson(agginessMap.get(currFlowTaskResult.getTaskKey())), CustomFlowVarDto.class);
+                String nextApproveUsers = flowViewTaskResultList.get(flowViewTaskResultList.size() - 1).getPendApproveUserName();
+                if (Objects.nonNull(customFlowVarDto.getMultipleUserApproveType()) && customFlowVarDto.getMultipleUserApproveType() == CustomFlowMultipleUserApproveTypeEnum.ORDER) {
+                    String[] strs = nextApproveUsers.split(",");
+                    nextApproveUsers = strs[0];
                 }
-                f.setMultipleUserApproveType(customFlowVarDto.getMultipleUserApproveType());
+                return new FlowViewResult(customFlowVarDto.getMultipleUserApproveType(), currFlowTaskResult, nextApproveUsers, flowViewTaskResultList);
+            } else {
+                return new FlowViewResult(flowViewTaskResultList);
+            }
+        } else {
+            if (Objects.nonNull(currFlowTaskResult)) {
+                CustomFlowVarDto customFlowVarDto = gson.fromJson(gson.toJson(agginessMap.get(currFlowTaskResult.getTaskKey())), CustomFlowVarDto.class);
+                ApproveUserResult approveUserResult = Objects.nonNull(customFlowVarDto.getApproveIds()) ? sysUserService.findByIds(customFlowVarDto.getApproveIds().stream().map(x -> SystemConstant.convertIdToLong(x)).collect(Collectors.toList())) : null;
+                return new FlowViewResult(customFlowVarDto.getMultipleUserApproveType(), currFlowTaskResult, Objects.nonNull(approveUserResult) ? approveUserResult.getPendApproveUsers() : null, null);
+            } else {
+                return null;
             }
         }
-        return new FlowViewResult(flowViewTaskResultList);
     }
 
     /**

+ 9 - 7
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.google.gson.Gson;
 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.exception.ApiException;
 import com.qmth.distributed.print.business.bean.flow.CustomFlowDto;
@@ -302,13 +304,13 @@ public class TFCustomFlowController {
         return ResultUtil.ok(activitiService.taskApproverExchange(userId, taskId));
     }
 
-    @ApiOperation(value = "获取转他人审批人")
-    @ApiResponses({@ApiResponse(code = 200, message = "流程节点审批人", response = FlowTaskApprovePeopleAllResult.class)})
-    @RequestMapping(value = "/task/approver/exchange/people", method = RequestMethod.POST)
-    public Result taskApproverExchangePeople(@ApiParam(value = "流程节点id", required = true) @RequestParam String taskId,
-                                             @ApiParam(value = "用户姓名", required = false) @RequestParam(required = false) String realName) {
-        return ResultUtil.ok(activitiService.taskApproverExchangePeople(taskId, realName));
-    }
+//    @ApiOperation(value = "获取转他人审批人")
+//    @ApiResponses({@ApiResponse(code = 200, message = "流程节点审批人", response = FlowTaskApprovePeopleAllResult.class)})
+//    @RequestMapping(value = "/task/approver/exchange/people", method = RequestMethod.POST)
+//    public Result taskApproverExchangePeople(@ApiParam(value = "流程节点id", required = true) @RequestParam String taskId,
+//                                             @ApiParam(value = "用户姓名", required = false) @RequestParam(required = false) String realName) {
+//        return ResultUtil.ok(activitiService.taskApproverExchangePeople(taskId, realName));
+//    }
 
 //    @ApiOperation(value = "获取提交记录")
 //    @ApiResponses({@ApiResponse(code = 200, message = "流程提交记录", response = FlowTaskApprovePeopleAllResult.class)})