Browse Source

Merge branch 'fu-normal-push' of uskycloud/usky-modules into master

gez 4 months ago
parent
commit
f037e29eba

+ 7 - 4
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/PmWorkContentController.java

@@ -89,14 +89,17 @@ public class PmWorkContentController {
      */
     @GetMapping("/page")
     public ApiResult<CommonPage<PmWorkReport>> page(@RequestParam(value = "projectAscription", required = false, defaultValue = "-1") Integer projectAscription,
-                                                    @RequestParam(value = "pageNum") Integer pageNum,
-                                                    @RequestParam(value = "pageSize") Integer pageSize,
+                                                    @RequestParam(value = "pageNum", required = false, defaultValue = "1") Integer pageNum,
+                                                    @RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize,
                                                     @RequestParam(value = "reportId", required = false) Integer reportId,
                                                     @RequestParam(value = "startDate", required = false) String startDate,
                                                     @RequestParam(value = "endDate", required = false) String endDate,
                                                     @RequestParam(value = "projectId", required = false) Integer projectId,
-                                                    @RequestParam(value = "submitterId", required = false) Long submitterId) {
-        return ApiResult.success(pmWorkContentService.reportPage(projectAscription, pageNum, pageSize, reportId, startDate, endDate, projectId, submitterId));
+                                                    @RequestParam(value = "submitterId", required = false) Long submitterId,
+                                                    @RequestParam(value = "upOrDown", required = false) Integer upOrDown,
+                                                    @RequestParam(value = "slideSum", required = false) Integer slideSum,
+                                                    @RequestParam(value = "submitDate", required = false) String submitDate) {
+        return ApiResult.success(pmWorkContentService.reportPage(projectAscription, pageNum, pageSize, reportId, startDate, endDate, projectId, submitterId, upOrDown, slideSum, submitDate));
     }
 
     /**

+ 6 - 2
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/PmWorkContentService.java

@@ -67,9 +67,13 @@ public interface PmWorkContentService extends CrudService<PmWorkContent> {
      * @param projectAscription 1:我负责;2:我收到;3:我发出
      * @param pageNum 页数
      * @param pageSize 页大小
-     * @return
+     * @param upOrDown 上下滑动(0:下滑;1:上滑)
+     * @param slideSum 滑动数量
+     * @param submitDate 提交时间
+     * @return''
      */
-    CommonPage<PmWorkReport> reportPage(Integer projectAscription, Integer pageNum, Integer pageSize, Integer report, String startDate, String endDate, Integer projectId, Long userId);
+    CommonPage<PmWorkReport> reportPage(Integer projectAscription, Integer pageNum, Integer pageSize, Integer report, String startDate,
+                                        String endDate, Integer projectId, Long userId, Integer upOrDown, Integer slideSum, String submitDate);
 
     /**
      * @description:

+ 5 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/PmProjectServiceImpl.java

@@ -641,6 +641,11 @@ public class PmProjectServiceImpl extends AbstractCrudService<PmProjectMapper, P
         }
 
         List<Long> userIds1 = new ArrayList<>(userIds);
+
+        if (userIds1.isEmpty()){
+            return workTimeCount;
+        }
+
         List<SysUser> sysUsers = pmWorkContentService.nickNames(userIds1);
         BigDecimal totalWorkTime = BigDecimal.ZERO;
 

+ 47 - 7
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/PmWorkContentServiceImpl.java

@@ -428,7 +428,9 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
     @Override
     public List<SysUser> nickNames(List<Long> userIds) {
         LambdaQueryWrapper<SysUser> usersQuery = Wrappers.lambdaQuery();
-        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);
+        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);
         if (!userIds.isEmpty()) {
             usersQuery.in(SysUser::getUserId, userIds);
         }
@@ -443,15 +445,30 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
      * @return: java.util.List<com.usky.system.domain.PmWorkContent>
      **/
     @Override
-    public CommonPage<PmWorkReport> reportPage(Integer projectAscription, Integer pageNum, Integer pageSize, Integer reportId,
-                                               String startDate, String endDate, Integer projectId, Long userId) {
+    public CommonPage<PmWorkReport> reportPage(Integer projectAscription, Integer pageNum, Integer pageSize, Integer reportId, String startDate,
+                                               String endDate, Integer projectId, Long userId, Integer upOrDown, Integer slideSum, String submitDate) {
+        if (pageNum < 1 || pageSize < 1) {
+            throw new BusinessException("页码和每页数量不能小于1");
+        }
+
+        List<PmWorkReport> reportList = new ArrayList<>();
+        IPage<PmWorkReport> reportPage = new Page<>(pageNum, pageSize);
         LocalDateTime startDateTime = null;
         LocalDateTime endDateTime = null;
+        LocalDateTime submitDateTime = null;
+        if (StringUtils.isNotBlank(submitDate)) {
+            DateTimeFormatter submitDateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+            try {
+                submitDateTime = LocalDateTime.parse(submitDate, submitDateFormatter);
+            } catch (Exception e) {
+                throw new BusinessException("滑动时间传参格式不正确,请重试" + e);
+            }
+        }
         Integer tenantId = SecurityUtils.getTenantId();
         LocalDate start = null;
         LocalDate end = null;
         List<Integer> reportIds = new ArrayList<>();
-        CommonPage<PmWorkReport> returnPage = new CommonPage<>(new ArrayList<>(), 0, pageSize, pageNum);
+        CommonPage<PmWorkReport> returnPage = new CommonPage<>(reportList, reportPage.getTotal(), pageSize, pageNum);
 
         Set<Integer> reportIdsByUser = new HashSet<>();
         Set<Integer> reportIdsByDate = new HashSet<>();
@@ -576,10 +593,33 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
         if (reportId != null && reportId != 0) {
             reportQuery.eq(PmWorkReport::getId, reportId);
         } else {
-            reportQuery.in(PmWorkReport::getId, reportIds2).orderByDesc(PmWorkReport::getSubmitDate);
+            reportQuery.in(PmWorkReport::getId, reportIds2);
+            // 判断上下滑动以及数量
+            if (upOrDown != null && slideSum != null && submitDateTime != null) {
+                if (slideSum > 0) {
+                    // 向下滑动
+                    if (upOrDown == 0) {
+                        reportQuery.lt(PmWorkReport::getSubmitDate, submitDateTime).orderByDesc(PmWorkReport::getSubmitDate);
+                    }
+                    // 向上滑动
+                    else if (upOrDown == 1) {
+                        reportQuery.gt(PmWorkReport::getSubmitDate, submitDateTime).orderByAsc(PmWorkReport::getSubmitDate);
+                    } else {
+                        throw new BusinessException("上下滑动参数异常");
+                    }
+                    // 设置pageSize为slideSum,确保返回的数据量为slideSum
+                    pageNum = 1;
+                    pageSize = slideSum;
+                } else {
+                    throw new BusinessException("滑动数量参数必须是大于0正整数");
+                }
+            } else {
+                reportQuery.orderByDesc(PmWorkReport::getSubmitDate);
+            }
         }
-        IPage<PmWorkReport> reportPage = pmWorkReportMapper.selectPage(new Page<>(pageNum, pageSize), reportQuery);
-        List<PmWorkReport> reportList = reportPage.getRecords();
+
+        reportPage = pmWorkReportMapper.selectPage(new Page<>(pageNum, pageSize), reportQuery);
+        reportList = reportPage.getRecords();
 
         // 查询已读状态
         LambdaQueryWrapper<PmReceive> statusQuery = Wrappers.lambdaQuery();

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

@@ -677,8 +677,13 @@ public class PmWorkReportServiceImpl extends AbstractCrudService<PmWorkReportMap
         if (timedReports.isEmpty()) {
             return timedReports;
         }
+
         List<Integer> reportIds = timedReports.stream().map(PmWorkReport::getId).collect(Collectors.toList());
 
+        List<Long> userIds = timedReports.stream().map(PmWorkReport::getSubmitterId).collect(Collectors.toList());
+        List<SysUser> sysUsers = pmWorkContentService.nickNames(userIds);
+        Map<Long, String> userNicknameMap = sysUsers.stream().collect(Collectors.toMap(SysUser::getUserId, SysUser::getNickName));
+
         LambdaQueryWrapper<PmWorkContent> reportContents = Wrappers.lambdaQuery();
         reportContents.in(PmWorkContent::getReportId, reportIds);
         List<PmWorkContent> pmWorkContentList = pmWorkContentMapper.selectList(reportContents);
@@ -692,8 +697,8 @@ public class PmWorkReportServiceImpl extends AbstractCrudService<PmWorkReportMap
                 }
             }
             report.setWorkContents(workContents);
+            report.setCreateBy(userNicknameMap.get(report.getSubmitterId()));
         }
-
         return timedReports;
     }