Kaynağa Gözat

删除项目及新接口的上线调整

fuyuchuan 5 ay önce
ebeveyn
işleme
822d9e891e

+ 7 - 1
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/PmProjectController.java

@@ -90,11 +90,17 @@ public class PmProjectController {
      *
      * @param projectId 项目id
      */
-    @GetMapping("/del")
+    @DeleteMapping("/delNew")
     public void del(@RequestParam Integer projectId) {
         pmProjectService.delProject(projectId);
     }
 
+    //回退代码
+    @GetMapping("/del")
+    public void del2(@RequestParam Integer projectId) {
+        pmProjectService.delProject(projectId);
+    }
+
     /**
      * 人员、项目下拉
      *

+ 18 - 3
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/PmWorkContentController.java

@@ -98,12 +98,27 @@ public class PmWorkContentController {
     }
 
     /**
-     * 工时统计
+     * 工时统计-新
      * @return
      */
-    @PostMapping("/workHourStatistic")
+    @PostMapping("/workHourStatisticNew")
     public ApiResult<List<Object>> workHourStatistic(@RequestBody PmWorkHourStatisticRequestVO requestVO) {
-        return ApiResult.success(pmWorkContentService.workHourStatistic(requestVO));
+        return ApiResult.success(pmWorkContentService.workHourStatisticNew(requestVO));
+    }
+
+    //回退代码
+    @GetMapping("/workHourStatistic")
+    public ApiResult<List<Object>> workHourStatistic(@RequestParam(value = "userId", required = false) Long userId,
+                                                     @RequestParam(value = "projectId", required = false) Integer projectId,
+                                                     @RequestParam(value = "filter", required = false, defaultValue = "1") Integer filter,
+                                                     @RequestParam(value = "startDate", required = false) String startDate,
+                                                     @RequestParam(value = "endDate", required = false) String endDate,
+                                                     @RequestParam(value = "workerOrProject", required = false, defaultValue = "1") Integer workerOrProject) {
+        if (StringUtils.isBlank(startDate) || StringUtils.isBlank(endDate)) {
+            startDate = LocalDate.now().with(TemporalAdjusters.firstDayOfYear()).toString();
+            endDate = LocalDate.now().with(TemporalAdjusters.lastDayOfYear()).toString();
+        }
+        return ApiResult.success(pmWorkContentService.workHourStatistic(userId, projectId, filter, startDate, endDate, workerOrProject));
     }
 
 /**

+ 5 - 1
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/PmWorkContentService.java

@@ -72,13 +72,17 @@ public interface PmWorkContentService extends CrudService<PmWorkContent> {
     /** 工时统计页面
      * @return 返回项目名(或牛马名)以及项目工时
      */
-    List<Object> workHourStatistic(PmWorkHourStatisticRequestVO requestVO);
+    List<Object> workHourStatisticNew(PmWorkHourStatisticRequestVO requestVO);
+    //回退代码
+    List<Object> workHourStatistic(Long userId, Integer projectId, Integer filter, String startDate, String endDate, Integer workerOrProject);
+
 
     /** 工时明细导出
      * @return
      */
     List<WorkTimeExportVO> workHourStatisticExport(PmWorkHourStatisticRequestVO requestVO);
 
+
     /** 工时统计导出
      * @param userId          用户id
      * @param startDate       开始时间

+ 4 - 1
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/PmProjectServiceImpl.java

@@ -220,6 +220,9 @@ public class PmProjectServiceImpl extends AbstractCrudService<PmProjectMapper, P
         }
         switch (projectAscription) {
             case 0:
+                if (visibleRange != null && visibleRange == 1) {
+                    break;
+                }
                 lambdaQuery.and(q -> q.eq(PmProject::getProjectHead, userId)
                         .or().apply("FIND_IN_SET('" + SecurityUtils.getUserId() + "', project_member) > 0")
                         .or().eq(PmProject::getCreateBy, username));
@@ -306,8 +309,8 @@ public class PmProjectServiceImpl extends AbstractCrudService<PmProjectMapper, P
     public Map<String, Integer> sum() {
         LambdaQueryWrapper<PmProject> lambdaQuery = Wrappers.lambdaQuery();
         lambdaQuery.eq(PmProject::getTenantId, SecurityUtils.getTenantId())
-                .eq(PmProject::getVisibleRange, 1)
                 .and(q -> q.eq(PmProject::getProjectHead, SecurityUtils.getUserId())
+                        .or().eq(PmProject::getVisibleRange, 1)
                         .or().apply("FIND_IN_SET('" + SecurityUtils.getUserId() + "', project_member) > 0")
                         .or().eq(PmProject::getCreateBy, SecurityUtils.getUsername()))
                 .eq(PmProject::getDelFlag, 0);

+ 232 - 1
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/PmWorkContentServiceImpl.java

@@ -794,7 +794,7 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
      **/
     @DataScope
     @Override
-    public List<Object> workHourStatistic(PmWorkHourStatisticRequestVO requestVO) {
+    public List<Object> workHourStatisticNew(PmWorkHourStatisticRequestVO requestVO) {
         List<Long> userId = new ArrayList<>();
         if (requestVO.getUserIds() != null) {
             userId = requestVO.getUserIds();
@@ -1037,6 +1037,237 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
         return returnList;
     }
 
+    //回退代码
+    @DataScope
+    @Override
+    public List<Object> workHourStatistic(Long userId, Integer projectId, Integer filter, String startDate, String endDate, Integer workerOrProject) {
+        List<ProjectWorkTimeVO> projectWorkTime = new ArrayList<>();
+        List<UserWorkTimeVO> userWorkTimeVO = new ArrayList<>();
+        List<ProjectWorkTimeVO> projectWorkTime1 = new ArrayList<>();
+        List<UserWorkTimeVO> userWorkTimeVO1 = new ArrayList<>();
+        List<Object> returnList = new ArrayList<>();
+        if (StringUtils.isBlank(startDate) || StringUtils.isBlank(endDate)) {
+            throw new BusinessException("请设置查询时间范围!");
+        }
+
+        List<PmProject> pmProjects = projects(projectId);
+        List<String> pmProjectName = new ArrayList<>();
+        List<Integer> pmProjectId = new ArrayList<>();
+        for (PmProject project : pmProjects) {
+            pmProjectName.add(project.getProjectName());
+            pmProjectId.add(project.getId());
+        }
+
+        List<Long> userIdS = new ArrayList<>();
+        if (userId != null) {
+            userIdS.add(userId);
+        }
+        List<SysUser> users = userNameList(userIdS);
+        List<Long> userIds = new ArrayList<>();
+        List<String> nickName = new ArrayList<>();
+        for (SysUser user : users) {
+            userIds.add(user.getUserId());
+            nickName.add(user.getNickName());
+        }
+
+        // 统计userId每个项目所需工时
+        List<WorkHoursStatisticsVO> userAndProject = new ArrayList<>();
+        List<PmWorkContent> pmWorkContentList = workTimeCount(userIds, pmProjectId, startDate, endDate);
+        if (!pmWorkContentList.isEmpty()) {
+            for (PmWorkContent content : pmWorkContentList) {
+                WorkHoursStatisticsVO workHoursStatisticsVO = new WorkHoursStatisticsVO();
+                Long submitterId = content.getSubmitterId();
+                Integer projectId1 = content.getProjectId();
+                BigDecimal workTime = content.getWorkTime();
+                workHoursStatisticsVO.setWorkTime(workTime);
+                for (SysUser user : users) {
+                    Long userId1 = user.getUserId();
+                    String nickName1 = user.getNickName();
+                    if (userId1.equals(submitterId)) {
+                        workHoursStatisticsVO.setNickName(nickName1);
+                    }
+                }
+                for (PmProject project : pmProjects) {
+                    Integer projectId2 = project.getId();
+                    String projectName = project.getProjectName();
+                    if (projectId2 == projectId1) {
+                        workHoursStatisticsVO.setProjectName(projectName);
+                    }
+                }
+                userAndProject.add(workHoursStatisticsVO);
+            }
+        }
+        List<WorkHoursStatisticsVO> userAndProjectD = userAndProject;
+
+        if (workerOrProject != 1) {
+            returnList.add(nickName);
+            // 重组返回数据结构
+            for (String name : pmProjectName) {
+                ProjectWorkTimeVO projectWorkTimeVO = new ProjectWorkTimeVO();
+                projectWorkTimeVO.setProjectOrPerson(name);
+                List<BigDecimal> workTime = new ArrayList<>();
+                boolean hasNonZeroWorkTime = false;
+                if (userAndProject.isEmpty()) {
+                    for (String currentNickName : nickName) {
+                        workTime.add(BigDecimal.ZERO);
+                    }
+                } else {
+                    for (String currentNickName : nickName) {
+                        boolean foundWorkTime = false;
+                        for (WorkHoursStatisticsVO workHoursStatisticsVO : userAndProject) {
+                            String userNickName = workHoursStatisticsVO.getNickName();
+                            String projectName = workHoursStatisticsVO.getProjectName();
+                            BigDecimal userProjectWorkTime = workHoursStatisticsVO.getWorkTime();
+                            if (projectName == name && userNickName == currentNickName) {
+                                workTime.add(userProjectWorkTime);
+                                if (userProjectWorkTime.compareTo(BigDecimal.ZERO) != 0) {
+                                    hasNonZeroWorkTime = true;
+                                }
+                                foundWorkTime = true;
+                                break;
+                            }
+                        }
+                        if (!foundWorkTime) {
+                            workTime.add(BigDecimal.ZERO);
+                        }
+                    }
+                }
+                // 过滤0工时
+                if (filter != 2 || hasNonZeroWorkTime) {
+                    projectWorkTimeVO.setWorkTime(workTime);
+                    projectWorkTime.add(projectWorkTimeVO);
+                }
+            }
+            returnList.add(projectWorkTime);
+
+
+            returnList.add(pmProjectName);
+            // 重组返回数据结构
+            for (String uName : nickName) {
+                String name1 = uName;
+                UserWorkTimeVO userWorkTimeVO2 = new UserWorkTimeVO();
+                userWorkTimeVO2.setProjectOrPerson(name1);
+                List<BigDecimal> workTime1 = new ArrayList<>();
+                boolean hasNonZeroWorkTime1 = false;
+                if (userAndProjectD.isEmpty()) {
+                    for (String currentNickName : pmProjectName) {
+                        workTime1.add(BigDecimal.ZERO);
+                    }
+                } else {
+                    for (String currentNickName : pmProjectName) {
+                        boolean foundWorkTime = false;
+                        for (WorkHoursStatisticsVO workHoursStatisticsVO : userAndProjectD) {
+                            String userNickName = workHoursStatisticsVO.getNickName();
+                            String projectName = workHoursStatisticsVO.getProjectName();
+                            BigDecimal userProjectWorkTime = workHoursStatisticsVO.getWorkTime();
+                            if (userNickName == name1 && projectName == currentNickName) {
+                                workTime1.add(userProjectWorkTime);
+                                if (userProjectWorkTime.compareTo(BigDecimal.ZERO) != 0) {
+                                    hasNonZeroWorkTime1 = true;
+                                }
+                                foundWorkTime = true;
+                                break;
+                            }
+                        }
+                        if (!foundWorkTime) {
+                            workTime1.add(BigDecimal.ZERO);
+                        }
+                    }
+                }
+                // 过滤0工时
+                if (filter != 2 || hasNonZeroWorkTime1) {
+                    userWorkTimeVO2.setWorkTime(workTime1);
+                    userWorkTimeVO.add(userWorkTimeVO2);
+                }
+            }
+            returnList.add(userWorkTimeVO);
+
+        } else {
+            returnList.add(pmProjectName);
+            // 重组返回数据结构
+            for (String uName : nickName) {
+                String name = uName;
+                UserWorkTimeVO userWorkTimeVO2 = new UserWorkTimeVO();
+                userWorkTimeVO2.setProjectOrPerson(name);
+                List<BigDecimal> workTime = new ArrayList<>();
+                boolean hasNonZeroWorkTime = false;
+                if (userAndProjectD.isEmpty()) {
+                    for (String currentNickName : pmProjectName) {
+                        workTime.add(BigDecimal.ZERO);
+                    }
+                } else {
+                    for (String currentNickName : pmProjectName) {
+                        boolean foundWorkTime = false;
+                        for (WorkHoursStatisticsVO workHoursStatisticsVO : userAndProjectD) {
+                            String userNickName = workHoursStatisticsVO.getNickName();
+                            String projectName = workHoursStatisticsVO.getProjectName();
+                            BigDecimal userProjectWorkTime = workHoursStatisticsVO.getWorkTime();
+                            if (userNickName == name && projectName == currentNickName) {
+                                workTime.add(userProjectWorkTime);
+                                if (userProjectWorkTime.compareTo(BigDecimal.ZERO) != 0) {
+                                    hasNonZeroWorkTime = true;
+                                }
+                                foundWorkTime = true;
+                                break;
+                            }
+                        }
+                        if (!foundWorkTime) {
+                            workTime.add(BigDecimal.ZERO);
+                        }
+                    }
+                }
+                // 过滤0工时
+                if (filter != 2 || hasNonZeroWorkTime) {
+                    userWorkTimeVO2.setWorkTime(workTime);
+                    userWorkTimeVO.add(userWorkTimeVO2);
+                }
+            }
+            returnList.add(userWorkTimeVO);
+
+
+            returnList.add(nickName);
+            // 重组返回数据结构
+            for (String name : pmProjectName) {
+                ProjectWorkTimeVO projectWorkTimeVO = new ProjectWorkTimeVO();
+                projectWorkTimeVO.setProjectOrPerson(name);
+                List<BigDecimal> workTime = new ArrayList<>();
+                boolean hasNonZeroWorkTime = false;
+                if (userAndProject.isEmpty()) {
+                    for (String currentNickName : nickName) {
+                        workTime.add(BigDecimal.ZERO);
+                    }
+                } else {
+                    for (String currentNickName : nickName) {
+                        boolean foundWorkTime = false;
+                        for (WorkHoursStatisticsVO workHoursStatisticsVO : userAndProject) {
+                            String userNickName = workHoursStatisticsVO.getNickName();
+                            String projectName = workHoursStatisticsVO.getProjectName();
+                            BigDecimal userProjectWorkTime = workHoursStatisticsVO.getWorkTime();
+                            if (projectName == name && userNickName == currentNickName) {
+                                workTime.add(userProjectWorkTime);
+                                if (userProjectWorkTime.compareTo(BigDecimal.ZERO) != 0) {
+                                    hasNonZeroWorkTime = true;
+                                }
+                                foundWorkTime = true;
+                                break;
+                            }
+                        }
+                        if (!foundWorkTime) {
+                            workTime.add(BigDecimal.ZERO);
+                        }
+                    }
+                }
+                // 过滤0工时
+                if (filter != 2 || hasNonZeroWorkTime) {
+                    projectWorkTimeVO.setWorkTime(workTime);
+                    projectWorkTime.add(projectWorkTimeVO);
+                }
+            }
+            returnList.add(projectWorkTime);
+        }
+        return returnList;
+    }
+
     /**
      * 工时-明细-导出
      * @return