Browse Source

上下滑动代码调整

fuyuchuan 4 months ago
parent
commit
3153fe7b74

+ 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:

+ 44 - 6
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/PmWorkContentServiceImpl.java

@@ -443,15 +443,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 +591,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();