Sfoglia il codice sorgente

Merge branch 'fu-dev' of uskycloud/usky-modules into server-165

hanzhengyi 8 mesi fa
parent
commit
0052771a46

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

@@ -125,13 +125,6 @@ public class PmProjectController {
     public ApiResult<List<Map<LocalDate, BigDecimal>>> projectIdName(@RequestParam(value = "projectId") Integer projectId,
                                                                       @RequestParam(value = "startDate", required = false) String startDate,
                                                                       @RequestParam(value = "endDate", required = false) String endDate) {
-        LocalDate now = LocalDate.now();
-        if (StringUtils.isBlank(endDate)) {
-            endDate = now.toString();
-        }
-        if (StringUtils.isBlank(startDate)) {
-            startDate = now.minusDays(29).toString();;
-        }
         return ApiResult.success(pmProjectService.projectWorkTime(projectId, startDate, endDate));
     }
 

+ 7 - 2
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/PmWorkReportController.java

@@ -73,8 +73,13 @@ public class PmWorkReportController {
         pmWorkReportService.timedSending(now);
     }
 
-    @GetMapping("/del")
-    public void del(@RequestParam Integer reportId) {
+    /**
+     * 删除工作报告
+     *
+     * @param reportId 报告id
+     */
+    @DeleteMapping("/del/{reportId}")
+    public void del(@PathVariable("reportId") Integer reportId) {
         pmWorkReportService.deleteContent(reportId);
     }
 }

+ 65 - 52
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/PmProjectServiceImpl.java

@@ -57,16 +57,20 @@ public class PmProjectServiceImpl extends AbstractCrudService<PmProjectMapper, P
 
     @Override
     public void addProject(PmProject project) {
+        Long deptId = SecurityUtils.getLoginUser().getSysUser().getDeptId();
+        String userName = SecurityUtils.getUsername();
+        Integer tenantId = SecurityUtils.getTenantId();
+        LocalDateTime now = LocalDateTime.now();
         if (Objects.isNull(project.getProjectWorkload())) {
             if (Objects.isNull(project.getId())) {
-                project.setCreateBy(SecurityUtils.getUsername());
-                project.setCreateTime(LocalDateTime.now());
-                project.setTenantId(SecurityUtils.getTenantId());
-                project.setDeptId(SecurityUtils.getLoginUser().getSysUser().getDeptId());
+                project.setCreateBy(userName);
+                project.setCreateTime(now);
+                project.setTenantId(tenantId);
+                project.setDeptId(deptId);
                 this.save(project);
             } else {
-                project.setUpdateBy(SecurityUtils.getUsername());
-                project.setUpdateTime(LocalDateTime.now());
+                project.setUpdateBy(userName);
+                project.setUpdateTime(now);
                 this.updateById(project);
             }
         } else {
@@ -76,14 +80,13 @@ public class PmProjectServiceImpl extends AbstractCrudService<PmProjectMapper, P
                 throw new BusinessException("计划人/天整数位超出长度请重新输入");
             } else {
                 if (Objects.isNull(project.getId())) {
-                    project.setCreateBy(SecurityUtils.getUsername());
-                    project.setCreateTime(LocalDateTime.now());
-                    project.setTenantId(SecurityUtils.getTenantId());
-                    project.setDeptId(SecurityUtils.getLoginUser().getSysUser().getDeptId());
+                    project.setCreateBy(userName);
+                    project.setCreateTime(now);
+                    project.setDeptId(deptId);
                     this.save(project);
                 } else {
-                    project.setUpdateBy(SecurityUtils.getUsername());
-                    project.setUpdateTime(LocalDateTime.now());
+                    project.setUpdateBy(userName);
+                    project.setUpdateTime(now);
                     this.updateById(project);
                 }
             }
@@ -144,6 +147,10 @@ public class PmProjectServiceImpl extends AbstractCrudService<PmProjectMapper, P
     @Override
     public CommonPage<PmProject> projectList(String projectName, Integer projectType, Integer projectStatus, Integer projectAscription, Integer pageNum, Integer pageSize, Integer projectId) {
         IPage<PmProject> page = new Page<>(pageNum, pageSize);
+        Long userId = SecurityUtils.getUserId();
+        String username = SecurityUtils.getUsername();
+        String nickName = SecurityUtils.getLoginUser().getSysUser().getNickName();
+        Integer tenantId = SecurityUtils.getTenantId();
         LambdaQueryWrapper<PmProject> lambdaQuery = Wrappers.lambdaQuery();
         lambdaQuery.eq(PmProject::getTenantId, SecurityUtils.getTenantId()).eq(PmProject::getDelFlag, 0);
         if (projectId != null && projectId != 0) {
@@ -152,13 +159,13 @@ public class PmProjectServiceImpl extends AbstractCrudService<PmProjectMapper, P
             return new CommonPage<>(page.getRecords(), page.getTotal(), pageSize, pageNum);
         }
         if (projectAscription == 0) {
-            lambdaQuery.and(q -> q.eq(PmProject::getProjectHead, SecurityUtils.getUserId())
-                    .or().apply("FIND_IN_SET('" + SecurityUtils.getUserId() + "', project_member) > 0")
-                    .or().eq(PmProject::getCreateBy, SecurityUtils.getUsername()));
+            lambdaQuery.and(q -> q.eq(PmProject::getProjectHead, userId)
+                    .or().apply("FIND_IN_SET('" + userId + "', project_member) > 0")
+                    .or().eq(PmProject::getCreateBy, username));
         } else if (projectAscription == 1) {
-            lambdaQuery.eq(PmProject::getProjectHead, SecurityUtils.getUserId());
+            lambdaQuery.eq(PmProject::getProjectHead, userId);
         } else if (projectAscription == 2) {
-            lambdaQuery.apply("FIND_IN_SET('" + SecurityUtils.getUserId() + "', project_member) > 0");
+            lambdaQuery.apply("FIND_IN_SET('" + userId + "', project_member) > 0");
         }
         if (!projectName.isEmpty()) {
             lambdaQuery.like(PmProject::getProjectName, projectName);
@@ -174,7 +181,7 @@ public class PmProjectServiceImpl extends AbstractCrudService<PmProjectMapper, P
         // 替换创建人和更新人名字(username→nickname)
         LambdaQueryWrapper<SysUser> query = Wrappers.lambdaQuery();
         query.select(SysUser::getUserName, SysUser::getNickName)
-                .eq(SysUser::getTenantId, SecurityUtils.getTenantId())
+                .eq(SysUser::getTenantId, tenantId)
                 .eq(SysUser::getDelFlag, 0)
                 .eq(SysUser::getStatus, "0");
         List<SysUser> sysUsers = sysUserMapper.selectList(query);
@@ -182,7 +189,7 @@ public class PmProjectServiceImpl extends AbstractCrudService<PmProjectMapper, P
         Map<String, String> userNameToNickName = new HashMap<>();
         for (SysUser sysUser : sysUsers) {
             if (sysUser != null && sysUser.getUserName() != null) {
-                userNameToNickName.put(sysUser.getUserName(), sysUser.getNickName());
+                userNameToNickName.put(sysUser.getUserName(), nickName);
             }
         }
 
@@ -369,44 +376,50 @@ public class PmProjectServiceImpl extends AbstractCrudService<PmProjectMapper, P
      */
     @Override
     public List<Map<LocalDate, BigDecimal>> projectWorkTime(Integer projectId, String startDate, String endDate) {
+
+        if (projectId == null || projectId == 0) {
+            throw new BusinessException("查询项目工时项目id有误!");
+        }
+
         List<Map<LocalDate, BigDecimal>> workTimeCount = new ArrayList<>();
-        if (projectId != null) {
-            LambdaQueryWrapper<PmWorkContent> wrapper = Wrappers.lambdaQuery();
-            wrapper.select(PmWorkContent::getReportId, PmWorkContent::getSubmitterId, PmWorkContent::getWorkTime)
-                    .eq(PmWorkContent::getProjectId, projectId)
-                    .eq(PmWorkContent::getTenantId, SecurityUtils.getTenantId());
 
-            if (StringUtils.isNotBlank(startDate) || StringUtils.isNotBlank(endDate)) {
-                LambdaQueryWrapper<PmWorkReport> wrapper2 = Wrappers.lambdaQuery();
-                wrapper2.select(PmWorkReport::getId, PmWorkReport::getReportDate)
-                        .eq(PmWorkReport::getTenantId, SecurityUtils.getTenantId())
-                        .between(PmWorkReport::getReportDate, startDate, endDate);
-                List<PmWorkReport> pmWorkReports = pmWorkReportMapper.selectList(wrapper2);
+        LocalDate now = LocalDate.now();
+        if (StringUtils.isBlank(endDate)) {
+            endDate = now.toString();
+        }
+        if (StringUtils.isBlank(startDate)) {
+            startDate = now.minusDays(29).toString();
+        }
 
-                List<Integer> reportIds = pmWorkReports.stream().map(PmWorkReport::getId).collect(Collectors.toList());
-                if (reportIds.isEmpty()) {
-                    return workTimeCount;
-                }
-                wrapper.in(PmWorkContent::getReportId, reportIds);
-                List<PmWorkContent> pmWorkContents = pmWorkContentMapper.selectList(wrapper);
-
-                for (PmWorkContent pmWorkContent : pmWorkContents) {
-                    Integer reportId = pmWorkContent.getReportId();
-                    for (PmWorkReport pmWorkReport : pmWorkReports) {
-                        if (reportId.equals(pmWorkReport.getId())) {
-                            LocalDate reportDate = pmWorkReport.getReportDate();
-                            BigDecimal workTime = pmWorkContent.getWorkTime();
-                            Map<LocalDate, BigDecimal> map = new HashMap<>();
-                            map.put(reportDate, workTime);
-                            workTimeCount.add(map);
-                        }
-                    }
+        LambdaQueryWrapper<PmWorkReport> wrapper2 = Wrappers.lambdaQuery();
+        wrapper2.select(PmWorkReport::getId, PmWorkReport::getReportDate)
+                .eq(PmWorkReport::getTenantId, SecurityUtils.getTenantId())
+                .between(PmWorkReport::getReportDate, startDate, endDate);
+        List<PmWorkReport> pmWorkReports = pmWorkReportMapper.selectList(wrapper2);
+
+        List<Integer> reportIds = pmWorkReports.stream().map(PmWorkReport::getId).collect(Collectors.toList());
+        if (reportIds.isEmpty()) {
+            return workTimeCount;
+        }
+
+        LambdaQueryWrapper<PmWorkContent> wrapper = Wrappers.lambdaQuery();
+        wrapper.select(PmWorkContent::getReportId, PmWorkContent::getSubmitterId, PmWorkContent::getWorkTime)
+                .eq(PmWorkContent::getProjectId, projectId)
+                .eq(PmWorkContent::getTenantId, SecurityUtils.getTenantId())
+                .in(PmWorkContent::getReportId, reportIds);
+        List<PmWorkContent> pmWorkContents = pmWorkContentMapper.selectList(wrapper);
+
+        for (PmWorkContent pmWorkContent : pmWorkContents) {
+            Integer reportId = pmWorkContent.getReportId();
+            for (PmWorkReport pmWorkReport : pmWorkReports) {
+                if (reportId.equals(pmWorkReport.getId())) {
+                    LocalDate reportDate = pmWorkReport.getReportDate();
+                    BigDecimal workTime = pmWorkContent.getWorkTime();
+                    Map<LocalDate, BigDecimal> map = new HashMap<>();
+                    map.put(reportDate, workTime);
+                    workTimeCount.add(map);
                 }
-            } else {
-                throw new BusinessException("查询项目工时统计时间范围不能为空!");
             }
-        } else {
-            throw new BusinessException("查询项目工时项目id不能为空!");
         }
         return workTimeCount;
     }

+ 10 - 4
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/PmWorkContentServiceImpl.java

@@ -419,8 +419,10 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
         usersQuery.select(SysUser::getUserId, SysUser::getNickName, SysUser::getUserName, SysUser::getPhonenumber, SysUser::getAvatar,
                         SysUser::getSex, SysUser::getDeptId)
                 .eq(SysUser::getTenantId, SecurityUtils.getTenantId())
-                .eq(SysUser::getDelFlag, 0)
-                .in(SysUser::getUserId, userIds);
+                .eq(SysUser::getDelFlag, 0);
+        if (!userIds.isEmpty()) {
+            usersQuery.in(SysUser::getUserId, userIds);
+        }
         return sysUserMapper.selectList(usersQuery);
     }
 
@@ -577,10 +579,14 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
             uId.add(receiverId);
         }
 
-        List<Long> userIdList = new ArrayList<>();
+
+        Set<Long> userIdSet = new HashSet<>();
         for (PmWorkReport report : reportList) {
-            userIdList.add(report.getSubmitterId());
+            Long submitterId = report.getSubmitterId();
+            userIdSet.add(submitterId);
         }
+        List<Long> userIdList = new ArrayList<>(userIdSet);
+
         List<SysUser> sysUsers = nickNames(userIdList);
 
         Map<Integer, List<PmReceive>> reportReceivesMap = receives.stream()

+ 13 - 1
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/PmWorkReportServiceImpl.java

@@ -596,6 +596,18 @@ public class PmWorkReportServiceImpl extends AbstractCrudService<PmWorkReportMap
     @Transactional
     @Override
     public void deleteContent(Integer reportId) {
+        if (reportId == null || reportId < 0){
+            throw new BusinessException("报告id不正确,删除报告失败!");
+        }
+
+        Long userId = SecurityUtils.getUserId();
+        LambdaQueryWrapper<PmWorkReport> report = Wrappers.lambdaQuery();
+        report.select(PmWorkReport::getId)
+                .eq(PmWorkReport::getSubmitterId, userId);
+        if (!report.getSqlSegment().contains(reportId.toString())) {
+            throw new BusinessException("您没有删除该报告权限!");
+        }
+
         LambdaQueryWrapper<PmWorkContent> reportContents = Wrappers.lambdaQuery();
         reportContents.eq(PmWorkContent::getReportId, reportId);
         pmWorkContentMapper.delete(reportContents);
@@ -603,7 +615,7 @@ public class PmWorkReportServiceImpl extends AbstractCrudService<PmWorkReportMap
         try {
             pmWorkReportMapper.deleteById(reportId);
         } catch (Exception e) {
-            log.error("删除报告失败" + e);
+            log.error("删除报告失败" + e);
             throw new BusinessException("删除报告失败请联系管理员");
         }
     }