Sfoglia il codice sorgente

查看ccpm流程详情方法调整

lizhenhao 2 anni fa
parent
commit
c6ac141429

+ 11 - 22
jeeplus-plugins/jeeplus-flowable/src/main/java/com/jeeplus/centerservice/enums/TaskAliasEnum.java

@@ -35,17 +35,11 @@ public enum TaskAliasEnum {
         return cpaTaskAlias;
     }
 
-    public static TaskAliasEnum getByCcpm(String value) {
-        TaskAliasEnum result = null;
-        for (TaskAliasEnum s : values()) {
-            if (s.getCcpmTaskAlias() == value) {
-                result = s;
-                break;
-            }
-        }
-        return result;
-    }
-
+    /**
+     * 根据ccpm流程key查询枚举
+     * @param value
+     * @return
+     */
     public static TaskAliasEnum getByCcpmContains(String value) {
         TaskAliasEnum result = null;
         for (TaskAliasEnum s : values()) {
@@ -57,10 +51,15 @@ public enum TaskAliasEnum {
         return result;
     }
 
+    /**
+     * 根据cpa流程key查询枚举
+     * @param value
+     * @return
+     */
     public static TaskAliasEnum getByCpa(String value) {
         TaskAliasEnum result = null;
         for (TaskAliasEnum s : values()) {
-            if (s.getCpaTaskAlias() == value) {
+            if (s.getCpaTaskAlias().equals(value)) {
                 result = s;
                 break;
             }
@@ -68,16 +67,6 @@ public enum TaskAliasEnum {
         return result;
     }
 
-    public static List<String> getCcpmListByCpa(String value) {
-        List<String> result = new ArrayList<>();
-        TaskAliasEnum byCpa = getByCpa(value);
-        if (Objects.nonNull(byCpa)) {
-            String[] split = byCpa.getCcpmTaskAlias().split(",");
-            result.addAll(Arrays.asList(split));
-        }
-        return result;
-    }
-
     @Override
     public String toString() {
         return "ccpm:" + this.ccpmTaskAlias + ", cpa:" + this.cpaTaskAlias;

+ 4 - 9
jeeplus-plugins/jeeplus-flowable/src/main/java/com/jeeplus/centerservice/service/ccpm/CcpmRequest.java

@@ -27,15 +27,10 @@ public class CcpmRequest {
      */
     public Object getById(String id, String processDefKey) {
         String token = "";
-        Object res = null;
-        TaskAliasEnum taskAliasEnum = TaskAliasEnum.getByCcpmContains(processDefKey);
-        // 报销
-        if (taskAliasEnum.getCcpmTaskAlias().equals(TaskAliasEnum.REIMBURSEMENT.getCcpmTaskAlias())) {
-            Map<String, Object> paramMap = new HashMap<>();
-            paramMap.put("id", id);
-            paramMap.put("processDefKey", processDefKey);
-            res = restTemplateService.getCCPM("/a/workreimbursement/workReimbursement/getById", token, paramMap);
-        }
+        Map<String, Object> paramMap = new HashMap<>();
+        paramMap.put("id", id);
+        paramMap.put("processDefKey", processDefKey);
+        Object res = restTemplateService.getCCPM("/a/transpond/transpond/getById", token, paramMap);
         return res;
     }
 

+ 17 - 12
jeeplus-plugins/jeeplus-flowable/src/main/java/com/jeeplus/centerservice/utils/ConvertServiceUtil.java

@@ -28,21 +28,22 @@ public class ConvertServiceUtil {
      * @param res
      * @return
      */
-    public static List<ProcessVo> convertProcessVoList(List<Map<String, Object>> res) throws Exception {
+    public static List<ProcessVo> convertProcessVoList(List<ProcessVo> res) throws Exception {
         ArrayList<ProcessVo> processVoList = new ArrayList<>();
         if (CollectionUtil.isNotEmpty(res)) {
-            List<ProcessVo> processVos = JSON.parseArray(JSON.toJSONString(res), ProcessVo.class);
+            List<ProcessVo> processVos = res;
             String ccpm_task = Global.getConfig("CCPM_TASK"); // 获取ccpm可查看的待办数据
-            if (StringUtils.isNotBlank(ccpm_task)) {
-                String[] taskAliasList = ccpm_task.split(","); // 获取到ccpm待办
-                if(CollectionUtil.isNotEmpty(res) && ArrayUtil.isNotEmpty(taskAliasList)) {
-                    String[] distinctTaskAlias = ArrayUtil.distinct(taskAliasList); // ccpm待办去重
-                    for (ProcessVo item : processVos) {
-                        TaskVo task = item.getTask();
-                        Map vars = item.getVars();
-                        for (String taskAlias : distinctTaskAlias) {
-                            if (Objects.nonNull(task) && taskAlias.equals(task.getProcessDefKey()) &&
-                                    Objects.nonNull(vars) && vars.get("remarks").toString().contains("待审批")) {
+            for (ProcessVo item : processVos) {
+                if ("cpa".equals(item.getBelongProject())) {
+                    processVoList.add(item);
+                } else if ("ccpm".equals(item.getBelongProject())) {
+                    TaskVo task = item.getTask();
+                    Map vars = item.getVars();
+                    if (Objects.nonNull(task) && Objects.nonNull(vars) && vars.get("remarks").toString().contains("待审批")) {
+                        if(StringUtils.isNotBlank(ccpm_task)) {
+                            String[] split = ccpm_task.split(",");
+                            List<String> taskAliasList = Arrays.asList(split);
+                            if (taskAliasList.contains(task.getProcessDefKey())) {
                                 processVoList.add(item);
                             }
                         }
@@ -122,6 +123,10 @@ public class ConvertServiceUtil {
         page.setTotal(list.size());
         List<ProcessVo> records = new ArrayList<>();
         int startIndex = (int) ((page.getCurrent() - 1) * page.getSize());
+        if (startIndex > list.size()) {
+            startIndex = 0;
+            page.setCurrent(1);
+        }
         for (int i = 0; i < page.getSize() ; i ++) {
             if (startIndex == list.size() || ObjectUtil.isEmpty(list.get(startIndex))) {
                 break;

+ 7 - 3
jeeplus-plugins/jeeplus-flowable/src/main/java/com/jeeplus/flowable/controller/FlowableTaskController.java

@@ -3,6 +3,7 @@
  */
 package com.jeeplus.flowable.controller;
 
+import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.extra.spring.SpringUtil;
@@ -106,8 +107,9 @@ public class FlowableTaskController {
             List<Map<String, Object>> cpa = queryTodoListCenter(flow, "cpa", Global.getConfig("INQUIRE_STATUS"));
             if (cpa.size() > 0) {
                 List<ProcessVo> list = JSON.parseArray(JSON.toJSONString(cpa), ProcessVo.class);
+                List<ProcessVo> processVos = ConvertServiceUtil.convertProcessVoList(list);
                 // 将整合后的结果排序后分页
-                Page sortAndPaging = ConvertServiceUtil.getSortAndPaging(page, list);
+                Page sortAndPaging = ConvertServiceUtil.getSortAndPaging(page, processVos);
                 return ResponseEntity.ok (sortAndPaging);
             } else {
                 // 如果中台没有返回任何数据,就去查询本系统分页待办数据
@@ -186,8 +188,10 @@ public class FlowableTaskController {
                             if (("ccpm").equals(belongProject)) { // 如果是ccpm系统查询,则直接返回
                                 result.addAll(res);
                             } else { // 如果是其他系统查询,则将结果格式化后返回
-                                List<ProcessVo> processVos = ConvertServiceUtil.convertProcessVoList(res);
-                                processVoList.addAll(processVos);
+                                if (CollectionUtil.isNotEmpty(res)) {
+                                    List<ProcessVo> processVos = JSON.parseArray(JSON.toJSONString(res), ProcessVo.class);
+                                    processVoList.addAll(processVos);
+                                }
                             }
                         }
                     }