Explorar o código

优化查询审批列表

buzhanyi hai 1 ano
pai
achega
23be699a97

+ 2 - 2
application-webadmin/src/main/java/com/ankaibei/workFlow/webadmin/ankaibei/controller/ApplyForCostController.java

@@ -5,8 +5,8 @@ import com.ankaibei.workFlow.webadmin.ankaibei.enums.CodeEnum;
 import com.ankaibei.workFlow.webadmin.ankaibei.service.ApplyForCostService;
 import com.ankaibei.workFlow.webadmin.ankaibei.service.impl.FileUtil;
 import com.ankaibei.workFlow.webadmin.ankaibei.vo.*;
+import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.CrossOrigin;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -43,7 +43,7 @@ public class ApplyForCostController {
     @CrossOrigin
     @RequestMapping("/invoiceUpLoad")
     public ResMsg invoiceUpLoad(@RequestParam(value = "invoicesList", required = false) List<MultipartFile> invoicesList) {
-        if (!StringUtils.isEmpty(invoicesList)) {
+        if (ObjectUtils.isNotEmpty(invoicesList)) {
             List<String> strings = fileUtil.uploadList(invoicesList);
             if (strings != null) {
                 return new ResMsg(CodeEnum.OK, strings.toString());

+ 106 - 81
application-webadmin/src/main/java/com/ankaibei/workFlow/webadmin/ankaibei/controller/CostInfoController.java

@@ -40,6 +40,7 @@ import com.ankaibei.workFlow.webadmin.ankaibei.utils.FlowTaskStart;
 import com.ankaibei.workFlow.webadmin.ankaibei.vo.CostInfoVo;
 import com.ankaibei.workFlow.webadmin.ankaibei.vo.ResMsg;
 import com.ankaibei.workFlow.webadmin.ankaibei.vo.UserInfoVo;
+import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.flowable.engine.runtime.ProcessInstance;
 import org.flowable.task.api.Task;
@@ -54,6 +55,7 @@ import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -183,24 +185,24 @@ public class CostInfoController {
             //拿到任务所在表单中数据字段和对应的值(包含每个申请记录的项目名称和流程的任务变量)
             JSONObject jsonData = viewUserTaskDatasource(taskVo.getProcessInstanceId(), taskVo.getTaskId()).getData();
             Map<String, Object> masterAndOneToOne = (Map<String, Object>) jsonData.get("masterAndOneToOne");
-            if (masterAndOneToOne.get("project_id") != null) {
+            if (ObjectUtils.isNotEmpty(masterAndOneToOne.get("project_id"))) {
                 Integer projectId = Integer.parseInt(masterAndOneToOne.get("project_id").toString());
                 taskVo.setProjectId(projectId);
                 String projectName = projectInfoFlowMapper.getById(projectId).getProjectName();
                 taskVo.setProjectName(projectName == null ? "" : projectName);
-            } else if (masterAndOneToOne.get("project_name") != null) {
+            } else if (ObjectUtils.isNotEmpty(masterAndOneToOne.get("project_name"))) {
                 Integer projectId = Integer.parseInt(masterAndOneToOne.get("project_name").toString());
                 ProjectInfoEntityOfFlow byId = projectInfoFlowMapper.getById(projectId);
-                if (byId != null) {
+                if (ObjectUtils.isNotEmpty(byId)) {
                     taskVo.setProjectId(projectId);
                     taskVo.setProjectName(byId.getProjectName());
                 }
             }
-            if (masterAndOneToOne.get("total_money") != null) {
+            if (ObjectUtils.isNotEmpty(masterAndOneToOne.get("total_money"))) {
                 taskVo.setApplicationFee(masterAndOneToOne.get("total_money").toString());
             }
             //取每条费用申请记录中的费用项,费用类型的直接取,工时和新建项目使用流程分类名称即可
-            if (masterAndOneToOne.get("cost_type") != null) {
+            if (ObjectUtils.isNotEmpty(masterAndOneToOne.get("cost_type"))) {
                 taskVo.setCostType(masterAndOneToOne.get("cost_type").toString());
             } else {
                 taskVo.setCostType(categoryName);
@@ -237,7 +239,7 @@ public class CostInfoController {
         MyPageData<Task> pageDataTwo = flowApiService.getTaskListByUserName(username, listRuntimeTaskRequestVo);
         List<FlowTaskVo> flowTaskVoList = flowApiService.convertToFlowTaskList(pageDataTwo.getDataList());
         String queryType = "费用报销";
-        return PackageAgain(flowTaskVoList, pageNum, queryType);
+        return PackageAgain(flowTaskVoList, queryType, listRuntimeTaskRequestVo);
     }
 
 
@@ -262,7 +264,7 @@ public class CostInfoController {
         MyPageData<Task> pageDataTwo = flowApiService.getTaskListByUserName(username, listRuntimeTaskRequestVo);
         List<FlowTaskVo> flowTaskVoList = flowApiService.convertToFlowTaskList(pageDataTwo.getDataList());
         String queryType = "人员工时";
-        return PackageAgain(flowTaskVoList, pageNum, queryType);
+        return PackageAgain(flowTaskVoList, queryType, listRuntimeTaskRequestVo);
     }
 
     /**
@@ -284,7 +286,7 @@ public class CostInfoController {
         MyPageData<Task> pageDataTwo = flowApiService.getTaskListByUserName(TokenData.takeFromRequest().getLoginName(), listRuntimeTaskRequestVo);
         List<FlowTaskVo> flowTaskVoList = flowApiService.convertToFlowTaskList(pageDataTwo.getDataList());
         String queryType = "新建项目";
-        return PackageAgain(flowTaskVoList, pageNum, queryType);
+        return PackageAgain(flowTaskVoList, queryType, listRuntimeTaskRequestVo);
     }
 
     /**
@@ -307,7 +309,7 @@ public class CostInfoController {
         MyPageData<Task> pageDataTwo = flowApiService.getTaskListByUserName(username, listRuntimeTaskRequestVo);
         List<FlowTaskVo> flowTaskVoList = flowApiService.convertToFlowTaskList(pageDataTwo.getDataList());
         String queryType = "新建任务";
-        return PackageAgain(flowTaskVoList, pageNum, queryType);
+        return PackageAgain(flowTaskVoList, queryType, listRuntimeTaskRequestVo);
     }
 
     /**
@@ -389,7 +391,8 @@ public class CostInfoController {
     }
 
 
-    private ResMsg PackageAgain(List<FlowTaskVo> flowTaskVoList, Integer pageNum, String queryType) {
+    private ResMsg PackageAgain(List<FlowTaskVo> flowTaskVoList, String queryType, ListRuntimeTaskRequestVo listRuntimeTaskRequestVo) {
+        Integer pageNum = listRuntimeTaskRequestVo.getPageNum();
         //---从所有的任务里取出一个分类的任务
         //先拿到任务所在的全部流程
         List<FlowTaskVo> flowTaskVoListByQueryType = new ArrayList<>();
@@ -424,61 +427,57 @@ public class CostInfoController {
         if (flowTaskVoListByQueryType.size() < 1) {
             return ResMsg.newInstance(CodeEnum.OK, MyPageUtil.makeResponseData(flowTaskVoListByQueryType, Long.valueOf(flowTaskVoListByQueryType.size())));
         }
-        List<FlowTaskVo> flowTaskVoListByQueryTypeRsg = new ArrayList<>();
-        if (pageNum == 1) {
-            for (int i = 0; i < 10; i++) {
-                flowTaskVoListByQueryTypeRsg.add(flowTaskVoListByQueryType.get(i));
-                if (i == flowTaskVoListByQueryType.size() - 1) {
-                    break;
-                }
-            }
-        } else {
-            for (int i = (pageNum - 1) * 10; i < pageNum * 10 - 1; i++) {
-                flowTaskVoListByQueryTypeRsg.add(flowTaskVoListByQueryType.get(i));
-                if (i == flowTaskVoListByQueryType.size() - 1) {
-                    break;
-                }
-            }
-        }
         //获取任务中的全部项目id和流程实例id
+        Map<String, Object> byTaskAdd = new HashMap<>();
         Set<Integer> projectIds = new HashSet<>();
         Set<String> processInstanceIds = new HashSet<>();
-        //查询的任务分类是新建项目时,需要筛选新建项目的表单数据
-        if (queryType.equals("新建项目")) {
-            Map<String, Object> byTaskAdd = flowTaskAssignmentByProjectAdd(flowTaskVoListByQueryTypeRsg, queryType);
-            projectIds = (Set<Integer>) byTaskAdd.get("projectIds");
-            processInstanceIds = (Set<String>) byTaskAdd.get("processInstanceIds");
-            flowTaskVoListByQueryTypeRsg = (List<FlowTaskVo>) byTaskAdd.get("flowTaskVoListByQueryTypeRsg");
-        }
-        //查询的任务分类是新建项目任务时,需要筛选新建任务的表单数据
-        if (queryType.equals("新建任务")) {
-            Map<String, Object> byTaskAdd = flowTaskAssignmentByTaskAdd(flowTaskVoListByQueryTypeRsg, queryType);
-            projectIds = (Set<Integer>) byTaskAdd.get("projectIds");
-            processInstanceIds = (Set<String>) byTaskAdd.get("processInstanceIds");
-            flowTaskVoListByQueryTypeRsg = (List<FlowTaskVo>) byTaskAdd.get("flowTaskVoListByQueryTypeRsg");
-        }
-        //查询的任务分类是人员工时时,需要筛选人员工时的表单数据
-        if (queryType.equals("人员工时")) {
-            Map<String, Object> byTaskAdd = flowTaskAssignmentByManhour(flowTaskVoListByQueryTypeRsg, queryType);
-            projectIds = (Set<Integer>) byTaskAdd.get("projectIds");
-            processInstanceIds = (Set<String>) byTaskAdd.get("processInstanceIds");
-            flowTaskVoListByQueryTypeRsg = (List<FlowTaskVo>) byTaskAdd.get("flowTaskVoListByQueryTypeRsg");
+        switch (queryType) {
+            case "新建项目":
+                //查询的任务分类是新建项目时,需要筛选新建项目的表单数据
+                byTaskAdd = flowTaskAssignmentByProjectAdd(flowTaskVoListByQueryType, queryType);
+                projectIds = (Set<Integer>) byTaskAdd.get("projectIds");
+                processInstanceIds = (Set<String>) byTaskAdd.get("processInstanceIds");
+                flowTaskVoListByQueryType = (List<FlowTaskVo>) byTaskAdd.get("flowTaskVoListByQueryTypePro");
+                break;
+            case "新建任务":
+                //查询的任务分类是新建项目任务时,需要筛选新建任务的表单数据
+                byTaskAdd = flowTaskAssignmentByTaskAdd(flowTaskVoListByQueryType, queryType);
+                projectIds = (Set<Integer>) byTaskAdd.get("projectIds");
+                processInstanceIds = (Set<String>) byTaskAdd.get("processInstanceIds");
+                flowTaskVoListByQueryType.clear();
+                flowTaskVoListByQueryType = (List<FlowTaskVo>) byTaskAdd.get("flowTaskVoListByQueryTypePro");
+                break;
+            case "人员工时":
+                //查询的任务分类是人员工时时,需要筛选人员工时的表单数据
+                byTaskAdd = flowTaskAssignmentByManhour(flowTaskVoListByQueryType, queryType);
+                projectIds = (Set<Integer>) byTaskAdd.get("projectIds");
+                processInstanceIds = (Set<String>) byTaskAdd.get("processInstanceIds");
+                flowTaskVoListByQueryType.clear();
+                flowTaskVoListByQueryType = (List<FlowTaskVo>) byTaskAdd.get("flowTaskVoListByQueryTypePro");
+                break;
+            case "费用报销":
+                //查询的任务分类是费用报销时,需要筛选费用报销的表单数据
+                byTaskAdd = flowTaskAssignmentByExpense(flowTaskVoListByQueryType, queryType);
+                projectIds = (Set<Integer>) byTaskAdd.get("projectIds");
+                processInstanceIds = (Set<String>) byTaskAdd.get("processInstanceIds");
+                flowTaskVoListByQueryType.clear();
+                flowTaskVoListByQueryType = (List<FlowTaskVo>) byTaskAdd.get("flowTaskVoListByQueryTypePro");
+                break;
+            default:
+                break;
         }
-        //查询的任务分类是费用报销时,需要筛选费用报销的表单数据
-        if (queryType.equals("费用报销")) {
-            Map<String, Object> byTaskAdd = flowTaskAssignmentByExpense(flowTaskVoListByQueryTypeRsg, queryType);
-            projectIds = (Set<Integer>) byTaskAdd.get("projectIds");
-            processInstanceIds = (Set<String>) byTaskAdd.get("processInstanceIds");
-            flowTaskVoListByQueryTypeRsg = (List<FlowTaskVo>) byTaskAdd.get("flowTaskVoListByQueryTypeRsg");
+        //重新进行包装分页
+        if (flowTaskVoListByQueryType.size() < 1) {
+            return ResMsg.newInstance(CodeEnum.OK, MyPageUtil.makeResponseData(flowTaskVoListByQueryType, Long.valueOf(flowTaskVoListByQueryType.size())));
         }
         //查询到任务信息中包含的全部项目和表单数据
         List<ProjectInfoEntity> projectInfos = projectInfoMapper.findAllById(projectIds);
         List<FlowWorkOrder> instanceIdIn = flowWorkOrderService.findAllByProcessInstanceIdIn(processInstanceIds);
-        for (FlowTaskVo taskVo : flowTaskVoListByQueryTypeRsg) {
+        //匹配项目名称和流程实例发起人
+        for (FlowTaskVo taskVo : flowTaskVoListByQueryType) {
             for (ProjectInfoEntity info : projectInfos) {
                 if (info.getProjectId().equals(taskVo.getProjectId())) {
                     taskVo.setProjectName(info.getProjectName() == null ? "" : info.getProjectName());
-                    break;
                 }
             }
             for (FlowWorkOrder order : instanceIdIn) {
@@ -487,23 +486,49 @@ public class CostInfoController {
                     String showName = userInfoMapper.findByLoginNameEqualsAndDeletedFlagIs(order.getSubmitUsername(), 1).getShowName();
                     taskVo.setShowName(showName == null ? "" : showName);
                     taskVo.setFlowTaskStatus(order.getFlowStatus() + "");
+                }
+            }
+        }
+        //项目名称筛选
+        List<FlowTaskVo> flowTaskVoListByQueryTypePro = new ArrayList<>();
+        if (ObjectUtils.isNotEmpty(listRuntimeTaskRequestVo.getProjectName())) {
+            for (int i = 0; i < flowTaskVoListByQueryType.size(); i++) {
+                if (flowTaskVoListByQueryType.get(i).getProjectName().contains(listRuntimeTaskRequestVo.getProjectName())) {
+                    flowTaskVoListByQueryTypePro.add(flowTaskVoListByQueryType.get(i));
+                }
+            }
+        } else {
+            flowTaskVoListByQueryTypePro.addAll(flowTaskVoListByQueryType);
+        }
+        List<FlowTaskVo> flowTaskVoListByQueryTypeRsg = new ArrayList<>();
+        //将处理完的数据构成分页数据
+        if (pageNum == 1) {
+            for (int i = 0; i < 10; i++) {
+                flowTaskVoListByQueryTypeRsg.add(flowTaskVoListByQueryTypePro.get(i));
+                if (i == flowTaskVoListByQueryTypePro.size() - 1) {
+                    break;
+                }
+            }
+        } else {
+            for (int i = (pageNum - 1) * 10; i < pageNum * 10 - 1; i++) {
+                flowTaskVoListByQueryTypeRsg.add(flowTaskVoListByQueryTypePro.get(i));
+                if (i == flowTaskVoListByQueryTypePro.size() - 1) {
                     break;
                 }
             }
         }
-
         return ResMsg.newInstance(CodeEnum.OK, MyPageUtil.makeResponseData(flowTaskVoListByQueryTypeRsg, Long.valueOf(flowTaskVoListByQueryType.size())));
     }
 
     //查询的任务分类是新建项目时,需要筛选项目流程记录的表单数据
-    private Map<String, Object> flowTaskAssignmentByProjectAdd(List<FlowTaskVo> flowTaskVoListByQueryTypeRsg, String queryType) {
+    private Map<String, Object> flowTaskAssignmentByProjectAdd(List<FlowTaskVo> flowTaskVoListByQueryTypePro, String queryType) {
         Set<Integer> projectIds = new HashSet<>();
         Set<String> processInstanceIds = new HashSet<>();
-        for (FlowTaskVo taskVo : flowTaskVoListByQueryTypeRsg) {
+        for (FlowTaskVo taskVo : flowTaskVoListByQueryTypePro) {
             Integer projectId = null;
             JSONObject jsonData = viewUserTaskDatasource(taskVo.getProcessInstanceId(), taskVo.getTaskId()).getData();
             Map<String, Object> masterAndOneToOne = (Map<String, Object>) jsonData.get("masterAndOneToOne");
-            if (masterAndOneToOne.get("project_id") != null) {
+            if (ObjectUtils.isNotEmpty(masterAndOneToOne.get("project_id"))) {
                 projectId = Integer.parseInt(masterAndOneToOne.get("project_id").toString());
                 taskVo.setProjectId(projectId);
             }
@@ -515,24 +540,24 @@ public class CostInfoController {
         Map<String, Object> map = new HashMap<>();
         map.put("projectIds", projectIds);
         map.put("processInstanceIds", processInstanceIds);
-        map.put("flowTaskVoListByQueryTypeRsg", flowTaskVoListByQueryTypeRsg);
+        map.put("flowTaskVoListByQueryTypePro", flowTaskVoListByQueryTypePro);
         return map;
     }
 
     //查询的任务分类是新建项目任务时,需要筛选新建任务的表单数据
-    private Map<String, Object> flowTaskAssignmentByTaskAdd(List<FlowTaskVo> flowTaskVoListByQueryTypeRsg, String queryType) {
+    private Map<String, Object> flowTaskAssignmentByTaskAdd(List<FlowTaskVo> flowTaskVoListByQueryTypePro, String queryType) {
         Set<Integer> projectIds = new HashSet<>();
         Set<String> processInstanceIds = new HashSet<>();
-        for (FlowTaskVo taskVo : flowTaskVoListByQueryTypeRsg) {
+        for (FlowTaskVo taskVo : flowTaskVoListByQueryTypePro) {
             Integer projectId = null;
             JSONObject jsonData = viewUserTaskDatasource(taskVo.getProcessInstanceId(), taskVo.getTaskId()).getData();
             Map<String, Object> masterAndOneToOne = (Map<String, Object>) jsonData.get("masterAndOneToOne");
-            if (masterAndOneToOne.get("project_id") != null) {
+            if (ObjectUtils.isNotEmpty(masterAndOneToOne.get("project_id"))) {
                 projectId = Integer.parseInt(masterAndOneToOne.get("project_id").toString());
                 taskVo.setProjectId(projectId);
             }
             //新建任务分类中,获取的项目任务的id
-            if (masterAndOneToOne.get("task_id") != null) {
+            if (ObjectUtils.isNotEmpty(masterAndOneToOne.get("task_id"))) {
                 taskVo.setApplyDataId(Integer.parseInt(masterAndOneToOne.get("task_id").toString()));
             }
             taskVo.setCostType(queryType);
@@ -543,24 +568,24 @@ public class CostInfoController {
         Map<String, Object> map = new HashMap<>();
         map.put("projectIds", projectIds);
         map.put("processInstanceIds", processInstanceIds);
-        map.put("flowTaskVoListByQueryTypeRsg", flowTaskVoListByQueryTypeRsg);
+        map.put("flowTaskVoListByQueryTypePro", flowTaskVoListByQueryTypePro);
         return map;
     }
 
-    //查询的任务分类是新建项目任务时,需要筛选新建任务的表单数据
-    private Map<String, Object> flowTaskAssignmentByManhour(List<FlowTaskVo> flowTaskVoListByQueryTypeRsg, String queryType) {
+    //查询的任务分类是工时申请时,需要筛选工时申请的表单数据
+    private Map<String, Object> flowTaskAssignmentByManhour(List<FlowTaskVo> flowTaskVoListByQueryTypePro, String queryType) {
         Set<Integer> projectIds = new HashSet<>();
         Set<String> processInstanceIds = new HashSet<>();
-        for (FlowTaskVo taskVo : flowTaskVoListByQueryTypeRsg) {
+        for (FlowTaskVo taskVo : flowTaskVoListByQueryTypePro) {
             Integer projectId = null;
             JSONObject jsonData = viewUserTaskDatasource(taskVo.getProcessInstanceId(), taskVo.getTaskId()).getData();
             Map<String, Object> masterAndOneToOne = (Map<String, Object>) jsonData.get("masterAndOneToOne");
             //人员工时分类中,获取的项目id和工时流程表中保存的工时id
-            if (masterAndOneToOne.get("project_name") != null) {
+            if (ObjectUtils.isNotEmpty(masterAndOneToOne.get("project_name"))) {
                 projectId = Integer.parseInt(masterAndOneToOne.get("project_name").toString());
                 taskVo.setProjectId(projectId);
             }
-            if (masterAndOneToOne.get("man_id") != null) {
+            if (ObjectUtils.isNotEmpty(masterAndOneToOne.get("man_id"))) {
                 taskVo.setApplyDataId(Integer.parseInt(masterAndOneToOne.get("man_id").toString()));
             }
             taskVo.setCostType(queryType);
@@ -571,43 +596,43 @@ public class CostInfoController {
         Map<String, Object> map = new HashMap<>();
         map.put("projectIds", projectIds);
         map.put("processInstanceIds", processInstanceIds);
-        map.put("flowTaskVoListByQueryTypeRsg", flowTaskVoListByQueryTypeRsg);
+        map.put("flowTaskVoListByQueryTypePro", flowTaskVoListByQueryTypePro);
         return map;
     }
 
     //查询的任务分类是费用报销时,需要筛选费用报销的表单数据
-    private Map<String, Object> flowTaskAssignmentByExpense(List<FlowTaskVo> flowTaskVoListByQueryTypeRsg, String queryType) {
+    private Map<String, Object> flowTaskAssignmentByExpense(List<FlowTaskVo> flowTaskVoListByQueryTypePro, String queryType) {
         Set<Integer> projectIds = new HashSet<>();
         Set<String> processInstanceIds = new HashSet<>();
-        for (FlowTaskVo taskVo : flowTaskVoListByQueryTypeRsg) {
+        for (FlowTaskVo taskVo : flowTaskVoListByQueryTypePro) {
             Integer projectId = null;
             JSONObject jsonData = viewUserTaskDatasource(taskVo.getProcessInstanceId(), taskVo.getTaskId()).getData();
             Map<String, Object> masterAndOneToOne = (Map<String, Object>) jsonData.get("masterAndOneToOne");
             //获取的项目id
-            if (masterAndOneToOne.get("project_name") != null) {
+            if (ObjectUtils.isNotEmpty(masterAndOneToOne.get("project_name"))) {
                 projectId = Integer.parseInt(masterAndOneToOne.get("project_name").toString());
                 taskVo.setProjectId(projectId);
             }
             //费用报销分类中,获取费用申请记录流程表中的【申请费用,总价,住宿天数】
-            if (masterAndOneToOne.get("application_fee") != null) {
+            if (ObjectUtils.isNotEmpty(masterAndOneToOne.get("application_fee"))) {
                 taskVo.setApplicationFee(masterAndOneToOne.get("application_fee").toString());
             }
-            if (masterAndOneToOne.get("total_money") != null) {
+            if (ObjectUtils.isNotEmpty(masterAndOneToOne.get("total_money"))) {
                 taskVo.setApplicationFee(masterAndOneToOne.get("total_money").toString());
             }
-            if (masterAndOneToOne.get("accommodation_days") != null) {
+            if (ObjectUtils.isNotEmpty(masterAndOneToOne.get("accommodation_days"))) {
                 taskVo.setAccommodationDays(masterAndOneToOne.get("accommodation_days").toString());
             }
             //费用报销分类中,每个审批项在各自记录表中的主键id
-            if (masterAndOneToOne.get("id") != null) {
+            if (ObjectUtils.isNotEmpty(masterAndOneToOne.get("id"))) {
                 taskVo.setApplyDataId(Integer.parseInt(masterAndOneToOne.get("id").toString()));
-            } else if (masterAndOneToOne.get("communication_id") != null) {
+            } else if (ObjectUtils.isNotEmpty(masterAndOneToOne.get("communication_id"))) {
                 taskVo.setApplyDataId(Integer.parseInt(masterAndOneToOne.get("communication_id").toString()));
-            } else if (masterAndOneToOne.get("purchase_id") != null) {
+            } else if (ObjectUtils.isNotEmpty(masterAndOneToOne.get("purchase_id"))) {
                 taskVo.setApplyDataId(Integer.parseInt(masterAndOneToOne.get("purchase_id").toString()));
             }
             //费用报销分类中,每个审批项的费用类别
-            if (masterAndOneToOne.get("cost_type") != null) {
+            if (ObjectUtils.isNotEmpty(masterAndOneToOne.get("cost_type"))) {
                 taskVo.setCostType(masterAndOneToOne.get("cost_type").toString());
             }
             taskVo.setCategoryName(queryType);
@@ -617,7 +642,7 @@ public class CostInfoController {
         Map<String, Object> map = new HashMap<>();
         map.put("projectIds", projectIds);
         map.put("processInstanceIds", processInstanceIds);
-        map.put("flowTaskVoListByQueryTypeRsg", flowTaskVoListByQueryTypeRsg);
+        map.put("flowTaskVoListByQueryTypePro", flowTaskVoListByQueryTypePro);
         return map;
     }
 }

+ 2 - 1
application-webadmin/src/main/java/com/ankaibei/workFlow/webadmin/ankaibei/service/impl/ProjectInfoServiceImpl.java

@@ -25,6 +25,7 @@ import com.ankaibei.workFlow.webadmin.ankaibei.vo.ProjectInfoVo;
 import com.ankaibei.workFlow.webadmin.ankaibei.vo.ResMsg;
 import com.ankaibei.workFlow.webadmin.upms.dao.SysDeptMapper;
 import com.ankaibei.workFlow.webadmin.upms.model.SysDept;
+import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageRequest;
@@ -160,7 +161,7 @@ public class ProjectInfoServiceImpl implements ProjectInfoService {
         String initTaskInfo = flowEntryPublish.getInitTaskInfo();
         com.ankaibei.workFlow.common.flow.vo.TaskInfoVo taskInfo = StrUtil.isBlank(initTaskInfo)
                 ? null : JSON.parseObject(initTaskInfo, TaskInfoVo.class);
-        if (taskInfo != null) {
+        if (ObjectUtils.isNotEmpty(taskInfo)) {
             String loginName = TokenData.takeFromRequest().getLoginName();
             taskInfo.setAssignedMe(StrUtil.equalsAny(
                     taskInfo.getAssignee(), loginName, FlowConstant.START_USER_NAME_VAR));

+ 1 - 1
application-webadmin/src/main/java/com/ankaibei/workFlow/webadmin/ankaibei/service/impl/TaskInfoServiceImpl.java

@@ -160,7 +160,7 @@ public class TaskInfoServiceImpl implements TaskInfoService {
         String initTaskInfo = flowEntryPublish.getInitTaskInfo();
         com.ankaibei.workFlow.common.flow.vo.TaskInfoVo taskInfo = StrUtil.isBlank(initTaskInfo)
                 ? null : JSON.parseObject(initTaskInfo, com.ankaibei.workFlow.common.flow.vo.TaskInfoVo.class);
-        if (taskInfo != null) {
+        if (ObjectUtils.isNotEmpty(taskInfo)) {
             String loginName = TokenData.takeFromRequest().getLoginName();
             taskInfo.setAssignedMe(StrUtil.equalsAny(
                     taskInfo.getAssignee(), loginName, FlowConstant.START_USER_NAME_VAR));

+ 4 - 3
application-webadmin/src/main/java/com/ankaibei/workFlow/webadmin/upms/service/impl/SysDataPermServiceImpl.java

@@ -25,6 +25,7 @@ import com.ankaibei.workFlow.webadmin.upms.service.SysDataPermService;
 import com.ankaibei.workFlow.webadmin.upms.service.SysDeptService;
 import com.ankaibei.workFlow.webadmin.upms.service.SysMenuService;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.ObjectUtils;
 import org.redisson.api.RBucket;
 import org.redisson.api.RedissonClient;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -202,18 +203,18 @@ public class SysDataPermServiceImpl extends BaseService<SysDataPerm, String> imp
             }
             // 这里优先合并最复杂的多部门及子部门场景。
             String deptIds = processMultiDeptAndChildren(ruleMap, deptId);
-            if (deptIds != null) {
+            if (ObjectUtils.isNotEmpty(deptIds)) {
                 resultMap.put(DataPermRuleType.TYPE_MULTI_DEPT_AND_CHILD_DEPT, deptIds);
             }
             // 合并当前部门及子部门的优化
-            if (ruleMap.get(DataPermRuleType.TYPE_DEPT_AND_CHILD_DEPT) != null) {
+            if (ObjectUtils.isNotEmpty(ruleMap.get(DataPermRuleType.TYPE_DEPT_AND_CHILD_DEPT))) {
                 // 需要与仅仅当前部门规则进行合并。
                 ruleMap.remove(DataPermRuleType.TYPE_DEPT_ONLY);
                 resultMap.put(DataPermRuleType.TYPE_DEPT_AND_CHILD_DEPT, "null");
             }
             // 合并自定义部门了。
             deptIds = processMultiDept(ruleMap, deptId);
-            if (deptIds != null) {
+            if (ObjectUtils.isNotEmpty(deptIds)) {
                 resultMap.put(DataPermRuleType.TYPE_CUSTOM_DEPT_LIST, deptIds);
             }
             // 最后处理当前部门和当前用户。

+ 2 - 1
application-webadmin/src/main/java/com/ankaibei/workFlow/webadmin/upms/service/impl/SysMenuServiceImpl.java

@@ -22,6 +22,7 @@ import com.ankaibei.workFlow.webadmin.upms.model.constant.SysOnlineMenuPermType;
 import com.ankaibei.workFlow.webadmin.upms.service.SysMenuService;
 import com.ankaibei.workFlow.webadmin.upms.service.SysPermCodeService;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -74,7 +75,7 @@ public class SysMenuServiceImpl extends BaseService<SysMenu, String> implements
         sysMenu.setMenuId(idGenerator.nextLongId() + "");
         MyModelUtil.fillCommonsForInsert(sysMenu);
         sysMenuMapper.insert(sysMenu);
-        if (permCodeIdSet != null) {
+        if (ObjectUtils.isNotEmpty(permCodeIdSet)) {
             for (String permCodeId : permCodeIdSet) {
                 SysMenuPermCode menuPermCode = new SysMenuPermCode();
                 menuPermCode.setMenuId(sysMenu.getMenuId());

+ 36 - 36
application-webadmin/src/main/resources/application.yml

@@ -158,39 +158,39 @@ common-log:
   # 操作日志配置,对应配置文件common-log/OperationLogProperties.java
   operation-log:
     enabled: true
-
-aj:
-  captcha:
-    # 缓存local/redis..
-    cache-type: redis
-    # 验证码类型default两种都实例化。
-    type: default
-    # 右下角水印文字(我的水印)
-    water-mark: 我的水印
-    #点选字体样式 默认Font.BOLD
-    font-style: 1
-    #点选字体字体大小
-    font-size: 25
-    # 支持项目路径,以classpath:开头,取resource目录下路径,例:classpath:images/jigsaw
-    jigsaw: classpath:images/jigsaw
-    # 支持项目路径,以classpath:开头,取resource目录下路径,例:classpath:images/pic-click
-    pic-click: classpath:images/pic-click
-    history-data-clear-enable: false
-    # 接口请求次数一分钟限制是否开启 true|false
-    req-frequency-limit-enable: false
-    # 验证失败5次,get接口锁定
-    req-get-lock-limit: 5
-    # 验证失败后,锁定时间间隔,s
-    req-get-lock-seconds: 360
-    # get接口一分钟内请求数限制
-    req-get-minute-limit: 30
-    # check接口一分钟内请求数限制
-    req-check-minute-limit: 30
-    # verify接口一分钟内请求数限制
-    req-verify-minute-limit: 60
-    # 校验滑动拼图允许误差偏移量(默认5像素)
-    slip-offset: 5
-    # aes加密坐标开启或者禁用(true|false)
-    aes-status: true
-    # 滑动干扰项(0/1/2)
-    interference-options: 2
+#
+#aj:
+#  captcha:
+#    # 缓存local/redis..
+#    cache-type: redis
+#    # 验证码类型default两种都实例化。
+#    type: default
+#    # 右下角水印文字(我的水印)
+#    water-mark: 我的水印
+#    #点选字体样式 默认Font.BOLD
+#    font-style: 1
+#    #点选字体字体大小
+#    font-size: 25
+#    # 支持项目路径,以classpath:开头,取resource目录下路径,例:classpath:images/jigsaw
+#    jigsaw: classpath:images/jigsaw
+#    # 支持项目路径,以classpath:开头,取resource目录下路径,例:classpath:images/pic-click
+#    pic-click: classpath:images/pic-click
+#    history-data-clear-enable: false
+#    # 接口请求次数一分钟限制是否开启 true|false
+#    req-frequency-limit-enable: false
+#    # 验证失败5次,get接口锁定
+#    req-get-lock-limit: 5
+#    # 验证失败后,锁定时间间隔,s
+#    req-get-lock-seconds: 360
+#    # get接口一分钟内请求数限制
+#    req-get-minute-limit: 30
+#    # check接口一分钟内请求数限制
+#    req-check-minute-limit: 30
+#    # verify接口一分钟内请求数限制
+#    req-verify-minute-limit: 60
+#    # 校验滑动拼图允许误差偏移量(默认5像素)
+#    slip-offset: 5
+#    # aes加密坐标开启或者禁用(true|false)
+#    aes-status: true
+#    # 滑动干扰项(0/1/2)
+#    interference-options: 2