Parcourir la source

已删除人员不进行统计;
已删除的部门单位不进行统计;

buzhanyi il y a 2 ans
Parent
commit
0bb6c139d1

+ 41 - 139
application-webadmin/src/main/java/com/ankaibei/workFlow/webadmin/ankaibei/controller/CostInfoController.java

@@ -13,6 +13,7 @@ import com.ankaibei.workFlow.common.flow.dao.ProjectInfoFlowMapper;
 import com.ankaibei.workFlow.common.flow.model.FlowCategory;
 import com.ankaibei.workFlow.common.flow.model.FlowEntry;
 import com.ankaibei.workFlow.common.flow.model.FlowWorkOrder;
+import com.ankaibei.workFlow.common.flow.model.ProjectInfoEntityOfFlow;
 import com.ankaibei.workFlow.common.flow.service.FlowApiService;
 import com.ankaibei.workFlow.common.flow.service.FlowCategoryService;
 import com.ankaibei.workFlow.common.flow.service.FlowEntryService;
@@ -189,9 +190,11 @@ public class CostInfoController {
                 taskVo.setProjectName(projectName == null ? "" : projectName);
             } else if (masterAndOneToOne.get("project_name") != null) {
                 Integer projectId = Integer.parseInt(masterAndOneToOne.get("project_name").toString());
-                taskVo.setProjectId(projectId);
-                String projectName = projectInfoFlowMapper.getById(projectId).getProjectName();
-                taskVo.setProjectName(projectName == null ? "" : projectName);
+                ProjectInfoEntityOfFlow byId = projectInfoFlowMapper.getById(projectId);
+                if (byId != null) {
+                    taskVo.setProjectId(projectId);
+                    taskVo.setProjectName(byId.getProjectName());
+                }
             }
             if (masterAndOneToOne.get("total_money") != null) {
                 taskVo.setApplicationFee(masterAndOneToOne.get("total_money").toString());
@@ -234,37 +237,7 @@ public class CostInfoController {
         MyPageData<Task> pageDataTwo = flowApiService.getTaskListByUserName(username, listRuntimeTaskRequestVo);
         List<FlowTaskVo> flowTaskVoList = flowApiService.convertToFlowTaskList(pageDataTwo.getDataList());
         String queryType = "费用报销";
-        //---从所有的任务里取出一个分类的任务
-        //先拿到任务所在的全部流程
-        List<FlowTaskVo> flowTaskVoListByQueryType = new ArrayList<>();
-        Set<Long> entryIdList = new HashSet<>();
-        for (FlowTaskVo taskVo : flowTaskVoList) {
-            entryIdList.add(taskVo.getEntryId());
-        }
-        List<FlowEntry> entryList = flowEntryService.getInList(entryIdList);
-        //获取流程所在的分类
-        Set<Long> categoryIdList = new HashSet<>();
-        for (FlowEntry entry : entryList) {
-            categoryIdList.add(entry.getCategoryId());
-        }
-        List<FlowCategory> flowCategoryList = categoryService.getInList(categoryIdList);
-        //给流程任务对象的流程分类字段赋值
-        for (FlowTaskVo taskVo : flowTaskVoList) {
-            Long entryId = taskVo.getEntryId();
-            for (FlowEntry entry : entryList) {
-                if (entry.getEntryId().equals(entryId)) {
-                    for (FlowCategory category : flowCategoryList) {
-                        if (category.getCategoryId().equals(entry.getCategoryId())) {
-                            if (category.getName().equals(queryType)) {
-                                taskVo.setCostType(category.getName());
-                                flowTaskVoListByQueryType.add(taskVo);
-                            }
-                        }
-                    }
-                }
-            }
-        }
-        return PackageAgain(flowTaskVoListByQueryType, pageNum, queryType);
+        return PackageAgain(flowTaskVoList, pageNum, queryType);
     }
 
 
@@ -289,37 +262,7 @@ public class CostInfoController {
         MyPageData<Task> pageDataTwo = flowApiService.getTaskListByUserName(username, listRuntimeTaskRequestVo);
         List<FlowTaskVo> flowTaskVoList = flowApiService.convertToFlowTaskList(pageDataTwo.getDataList());
         String queryType = "人员工时";
-        //---从所有的任务里取出一个分类的任务
-        //先拿到任务所在的全部流程
-        List<FlowTaskVo> flowTaskVoListByQueryType = new ArrayList<>();
-        Set<Long> entryIdList = new HashSet<>();
-        for (FlowTaskVo taskVo : flowTaskVoList) {
-            entryIdList.add(taskVo.getEntryId());
-        }
-        List<FlowEntry> entryList = flowEntryService.getInList(entryIdList);
-        //获取流程所在的分类
-        Set<Long> categoryIdList = new HashSet<>();
-        for (FlowEntry entry : entryList) {
-            categoryIdList.add(entry.getCategoryId());
-        }
-        List<FlowCategory> flowCategoryList = categoryService.getInList(categoryIdList);
-        //给流程任务对象的流程分类字段赋值
-        for (FlowTaskVo taskVo : flowTaskVoList) {
-            Long entryId = taskVo.getEntryId();
-            for (FlowEntry entry : entryList) {
-                if (entry.getEntryId().equals(entryId)) {
-                    for (FlowCategory category : flowCategoryList) {
-                        if (category.getCategoryId().equals(entry.getCategoryId())) {
-                            if (category.getName().equals(queryType)) {
-                                taskVo.setCostType(category.getName());
-                                flowTaskVoListByQueryType.add(taskVo);
-                            }
-                        }
-                    }
-                }
-            }
-        }
-        return PackageAgain(flowTaskVoListByQueryType, pageNum, queryType);
+        return PackageAgain(flowTaskVoList, pageNum, queryType);
     }
 
     /**
@@ -342,37 +285,7 @@ public class CostInfoController {
         MyPageData<Task> pageDataTwo = flowApiService.getTaskListByUserName(username, listRuntimeTaskRequestVo);
         List<FlowTaskVo> flowTaskVoList = flowApiService.convertToFlowTaskList(pageDataTwo.getDataList());
         String queryType = "新建项目";
-        //---从所有的任务里取出一个分类的任务
-        //先拿到任务所在的全部流程
-        List<FlowTaskVo> flowTaskVoListByQueryType = new ArrayList<>();
-        Set<Long> entryIdList = new HashSet<>();
-        for (FlowTaskVo taskVo : flowTaskVoList) {
-            entryIdList.add(taskVo.getEntryId());
-        }
-        List<FlowEntry> entryList = flowEntryService.getInList(entryIdList);
-        //获取流程所在的分类
-        Set<Long> categoryIdList = new HashSet<>();
-        for (FlowEntry entry : entryList) {
-            categoryIdList.add(entry.getCategoryId());
-        }
-        List<FlowCategory> flowCategoryList = categoryService.getInList(categoryIdList);
-        //给流程任务对象的流程分类字段赋值
-        for (FlowTaskVo taskVo : flowTaskVoList) {
-            Long entryId = taskVo.getEntryId();
-            for (FlowEntry entry : entryList) {
-                if (entry.getEntryId().equals(entryId)) {
-                    for (FlowCategory category : flowCategoryList) {
-                        if (category.getCategoryId().equals(entry.getCategoryId())) {
-                            if (category.getName().equals(queryType)) {
-                                taskVo.setCostType(category.getName());
-                                flowTaskVoListByQueryType.add(taskVo);
-                            }
-                        }
-                    }
-                }
-            }
-        }
-        return PackageAgain(flowTaskVoListByQueryType, pageNum, queryType);
+        return PackageAgain(flowTaskVoList, pageNum, queryType);
     }
 
     /**
@@ -395,37 +308,7 @@ public class CostInfoController {
         MyPageData<Task> pageDataTwo = flowApiService.getTaskListByUserName(username, listRuntimeTaskRequestVo);
         List<FlowTaskVo> flowTaskVoList = flowApiService.convertToFlowTaskList(pageDataTwo.getDataList());
         String queryType = "新建任务";
-        //---从所有的任务里取出一个分类的任务
-        //先拿到任务所在的全部流程
-        List<FlowTaskVo> flowTaskVoListByQueryType = new ArrayList<>();
-        Set<Long> entryIdList = new HashSet<>();
-        for (FlowTaskVo taskVo : flowTaskVoList) {
-            entryIdList.add(taskVo.getEntryId());
-        }
-        List<FlowEntry> entryList = flowEntryService.getInList(entryIdList);
-        //获取流程所在的分类
-        Set<Long> categoryIdList = new HashSet<>();
-        for (FlowEntry entry : entryList) {
-            categoryIdList.add(entry.getCategoryId());
-        }
-        List<FlowCategory> flowCategoryList = categoryService.getInList(categoryIdList);
-        //给流程任务对象的流程分类字段赋值
-        for (FlowTaskVo taskVo : flowTaskVoList) {
-            Long entryId = taskVo.getEntryId();
-            for (FlowEntry entry : entryList) {
-                if (entry.getEntryId().equals(entryId)) {
-                    for (FlowCategory category : flowCategoryList) {
-                        if (category.getCategoryId().equals(entry.getCategoryId())) {
-                            if (category.getName().equals(queryType)) {
-                                taskVo.setCostType(category.getName());
-                                flowTaskVoListByQueryType.add(taskVo);
-                            }
-                        }
-                    }
-                }
-            }
-        }
-        return PackageAgain(flowTaskVoListByQueryType, pageNum, queryType);
+        return PackageAgain(flowTaskVoList, pageNum, queryType);
     }
 
     /**
@@ -507,7 +390,37 @@ public class CostInfoController {
     }
 
 
-    private ResMsg PackageAgain(List<FlowTaskVo> flowTaskVoListByQueryType, Integer pageNum, String queryType) {
+    private ResMsg PackageAgain(List<FlowTaskVo> flowTaskVoList, Integer pageNum, String queryType) {
+        //---从所有的任务里取出一个分类的任务
+        //先拿到任务所在的全部流程
+        List<FlowTaskVo> flowTaskVoListByQueryType = new ArrayList<>();
+        Set<Long> entryIdList = new HashSet<>();
+        for (FlowTaskVo taskVo : flowTaskVoList) {
+            entryIdList.add(taskVo.getEntryId());
+        }
+        List<FlowEntry> entryList = flowEntryService.getInList(entryIdList);
+        //获取流程所在的分类
+        Set<Long> categoryIdList = new HashSet<>();
+        for (FlowEntry entry : entryList) {
+            categoryIdList.add(entry.getCategoryId());
+        }
+        List<FlowCategory> flowCategoryList = categoryService.getInList(categoryIdList);
+        //给流程任务对象的流程分类字段赋值
+        for (FlowTaskVo taskVo : flowTaskVoList) {
+            Long entryId = taskVo.getEntryId();
+            for (FlowEntry entry : entryList) {
+                if (entry.getEntryId().equals(entryId)) {
+                    for (FlowCategory category : flowCategoryList) {
+                        if (category.getCategoryId().equals(entry.getCategoryId())) {
+                            if (category.getName().equals(queryType)) {
+                                taskVo.setCostType(category.getName());
+                                flowTaskVoListByQueryType.add(taskVo);
+                            }
+                        }
+                    }
+                }
+            }
+        }
         //重新进行包装分页
         if (flowTaskVoListByQueryType.size() < 1) {
             return ResMsg.newInstance(CodeEnum.OK, MyPageUtil.makeResponseData(flowTaskVoListByQueryType, Long.valueOf(flowTaskVoListByQueryType.size())));
@@ -531,8 +444,6 @@ public class CostInfoController {
         //获取任务中的全部项目id和流程实例id
         Set<Integer> projectIds = new HashSet<>();
         Set<String> processInstanceIds = new HashSet<>();
-        Date getIdBefore = new Date();
-        System.err.println("获取ID数据前:" + getIdBefore.getTime());
         //查询的任务分类是新建项目时,需要筛选新建项目的表单数据
         if (queryType.equals("新建项目")) {
             Map<String, Object> byTaskAdd = flowTaskAssignmentByProjectAdd(flowTaskVoListByQueryTypeRsg, queryType);
@@ -561,15 +472,9 @@ public class CostInfoController {
             processInstanceIds = (Set<String>) byTaskAdd.get("processInstanceIds");
             flowTaskVoListByQueryTypeRsg = (List<FlowTaskVo>) byTaskAdd.get("flowTaskVoListByQueryTypeRsg");
         }
-
-        Date getIdAfter = new Date();
-        System.err.println("获取ID数据后:" + getIdAfter.getTime());
-        System.err.println("获取ID数据耗时+++++:" + (getIdAfter.getTime() - getIdBefore.getTime()));
         //查询到任务信息中包含的全部项目和表单数据
         List<ProjectInfoEntity> projectInfos = projectInfoMapper.findAllById(projectIds);
         List<FlowWorkOrder> instanceIdIn = flowWorkOrderService.findAllByProcessInstanceIdIn(processInstanceIds);
-        Date userBefore = new Date();
-        System.err.println("查询用户名前:" + userBefore.getTime());
         for (FlowTaskVo taskVo : flowTaskVoListByQueryTypeRsg) {
             for (ProjectInfoEntity info : projectInfos) {
                 if (info.getProjectId().equals(taskVo.getProjectId())) {
@@ -587,9 +492,6 @@ public class CostInfoController {
                 }
             }
         }
-        Date userAF = new Date();
-        System.err.println("查询用户名后:" + userAF.getTime());
-        System.err.println("查询用户名耗时+++++:" + (userAF.getTime() - userBefore.getTime()));
 
         return ResMsg.newInstance(CodeEnum.OK, MyPageUtil.makeResponseData(flowTaskVoListByQueryTypeRsg, Long.valueOf(flowTaskVoListByQueryType.size())));
     }

+ 11 - 1
application-webadmin/src/main/java/com/ankaibei/workFlow/webadmin/ankaibei/mapper/UserInfoMapper.java

@@ -42,11 +42,21 @@ public interface UserInfoMapper extends JpaRepository<UserInfoEntity, String>, J
 
 
     /**
-     * 根据id查询用户信息
+     * 根据账号查询用户信息
      *
      * @param loginName   用户账号
      * @param deletedFlag 是否已删除
      * @return 查询到的用户对象
      */
     UserInfoEntity findByLoginNameEqualsAndDeletedFlagIs(String loginName, int deletedFlag);
+
+    /**
+     * 根据id查询用户信息
+     *
+     * @param userId      用户id
+     * @param deletedFlag 是否已删除
+     * @return 查询到的用户对象
+     */
+    UserInfoEntity findByUserIdEqualsAndDeletedFlagIs(String userId, int deletedFlag);
+
 }

+ 10 - 3
application-webadmin/src/main/java/com/ankaibei/workFlow/webadmin/ankaibei/service/impl/ProjectInfoServiceImpl.java

@@ -271,13 +271,20 @@ public class ProjectInfoServiceImpl implements ProjectInfoService {
         //今日              年--月--日
         String endDate = getToDay();
         List<Map<String, Object>> projectNumber = projectInfoMapper.getProjectNumberOfMonth(startDate + " 00:00:00", endDate + " 23:59:59");
-        //获取负责人姓名。再查负责人所在公司
+        //获取负责人。再查负责人所在公司
         List<String> deptNameList = new ArrayList<>();
         for (Map<String, Object> map : projectNumber) {
             String projectPrincipal = map.get("projectPrincipal").toString();
-            UserInfoEntity byId = userInfoMapper.getById(projectPrincipal);
-            //部门上一级就是公司级别;
+            UserInfoEntity byId = userInfoMapper.findByUserIdEqualsAndDeletedFlagIs(projectPrincipal, 1);
+            //已删除人员不进行统计
+            if (byId == null) {
+                continue;
+            }
+            //部门上一级就是公司级别;已删除的部门单位不进行统计
             SysDept dept = sysDeptMapper.selectById(byId.getDeptId());
+            if (dept == null) {
+                continue;
+            }
             if (dept.getParentId() != null) {
                 SysDept sysDept = sysDeptMapper.selectById(dept.getParentId());
                 deptNameList.add(sysDept.getDeptName());