Quellcode durchsuchen

上下滑动新增接口

fuyuchuan vor 6 Monaten
Ursprung
Commit
fc6f9533d9

+ 17 - 1
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/PmWorkContentController.java

@@ -10,17 +10,19 @@ import com.usky.iot.domain.PmWorkContent;
 import com.usky.iot.domain.PmWorkReport;
 import com.usky.iot.service.PmWorkContentService;
 import com.usky.iot.service.vo.PmWorkHourStatisticRequestVO;
+import com.usky.iot.service.vo.PmWorkReportSlideVO;
 import com.usky.iot.service.vo.WorkTimeExportTwoVO;
 import com.usky.iot.service.vo.WorkTimeExportVO;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.xmlbeans.impl.xb.xsdschema.Public;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.time.LocalDate;
+import java.time.LocalDateTime;
 import java.time.temporal.TemporalAdjusters;
-import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -97,6 +99,20 @@ public class PmWorkContentController {
         return ApiResult.success(pmWorkContentService.reportPage(projectAscription, pageNum, pageSize, reportId, startDate, endDate, projectId, submitterId));
     }
 
+    /**
+     * 上下滑动
+     * @param upOrDown 0:上滑;1:下滑
+     * @param slideSum 滑动数量
+     * @param submitDate 提交时间
+     * @return
+     */
+    @GetMapping("/slide")
+    public ApiResult<PmWorkReportSlideVO> slide(@RequestParam(value = "upOrDown", required = false) Integer upOrDown,
+                                                      @RequestParam(value = "slideSum", required = false) Integer slideSum,
+                                                      @RequestParam(value = "submitDate", required = true) LocalDateTime submitDate){
+        return ApiResult.success(pmWorkContentService.slide(upOrDown, slideSum, submitDate));
+    }
+
     /**
      * 工时统计-新
      * @return

+ 11 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/PmWorkContentService.java

@@ -6,11 +6,13 @@ import com.usky.iot.domain.PmWorkContent;
 import com.usky.common.mybatis.core.CrudService;
 import com.usky.iot.domain.PmWorkReport;
 import com.usky.iot.service.vo.PmWorkHourStatisticRequestVO;
+import com.usky.iot.service.vo.PmWorkReportSlideVO;
 import com.usky.iot.service.vo.WorkTimeExportTwoVO;
 import com.usky.iot.service.vo.WorkTimeExportVO;
 
 import com.usky.system.domain.SysUser;
 
+import java.time.LocalDateTime;
 import java.util.List;
 
 /**
@@ -69,6 +71,15 @@ public interface PmWorkContentService extends CrudService<PmWorkContent> {
      */
     CommonPage<PmWorkReport> reportPage(Integer projectAscription, Integer pageNum, Integer pageSize, Integer report, String startDate, String endDate, Integer projectId, Long userId);
 
+    /**
+     * @description:
+     * @author: fu
+     * @date: 2024/12/9 23:01
+     * @param: [upOrDown 上下滑动(0:上滑;1:下滑), slideSum(滑动数量), submitDate(提交时间)]
+     * @return: java.util.List<com.usky.iot.service.vo.PmWorkReportSlideVO>
+     **/
+    PmWorkReportSlideVO slide(Integer upOrDown, Integer slideSum, LocalDateTime submitDate);
+
     /** 工时统计页面
      * @return 返回项目名(或牛马名)以及项目工时
      */

+ 46 - 2
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/PmWorkContentServiceImpl.java

@@ -665,6 +665,50 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
         return new CommonPage<PmWorkReport>(reportList, reportPage.getTotal(), pageSize, pageNum);
     }
 
+    /**
+     * @description: 日报上下滑动
+     * @author: fu
+     * @date: 2024/8/8 19:22
+     * @param: [upOrDown, slideSum, submitDate]
+     * @return: java.util.List<com.usky.iot.vo.PmWorkReportSlideVO>
+     **/
+    @Override
+    public PmWorkReportSlideVO slide(Integer upOrDown, Integer slideSum, LocalDateTime submitDate) {
+        PmWorkReportSlideVO reportSlide = new PmWorkReportSlideVO();
+        if (slideSum <= 0) {
+            throw new BusinessException("slideSum 必须为正整数!");
+        }
+        if (submitDate == null) {
+            return reportSlide;
+        }
+
+        List<PmWorkReport> reportUp = new ArrayList<>();
+        List<PmWorkReport> reportDown = new ArrayList<>();
+        LambdaQueryWrapper<PmWorkReport> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.last("LIMIT " + slideSum);
+        if (upOrDown == 1) {
+            queryWrapper.gt(PmWorkReport::getSubmitDate, submitDate)
+                    .orderByAsc(PmWorkReport::getSubmitDate);
+            reportUp = pmWorkReportMapper.selectList(queryWrapper);
+            if (reportUp.isEmpty()) {
+                throw new BusinessException("已经是第一篇报告了!");
+            }
+            reportSlide.setSlideUp(reportUp);
+        } else if (upOrDown == 2) {
+            queryWrapper.lt(PmWorkReport::getSubmitDate, submitDate)
+                    .orderByDesc(PmWorkReport::getSubmitDate);
+            reportDown = pmWorkReportMapper.selectList(queryWrapper);
+            if (reportDown.isEmpty()) {
+                throw new BusinessException("已经是最后一篇报告了!");
+            }
+            reportSlide.setSlideDown(reportDown);
+        } else {
+            throw new BusinessException("upOrDown 参数无效!");
+        }
+
+        return reportSlide;
+    }
+
 
     /**
      * @description: 获取报告接收人-工具
@@ -876,7 +920,7 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
         }
         List<WorkHoursStatisticsVO> userAndProjectD = userAndProject;
 
-        //判断是否为项目维度
+        // 判断是否为项目维度
         if (workerOrProject != 1) {
             returnList.add(nickName);
             // 重组返回数据结构
@@ -974,7 +1018,7 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
                 }
             }
 
-            if (filter == 2){
+            if (filter == 2) {
                 for (int i = pmProjectName.size() - 1; i >= 0; i--) {
                     if (!nonZeroProjectIndices.contains(i)) {
                         pmProjectName.remove(i);

+ 26 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/PmWorkReportSlideVO.java

@@ -0,0 +1,26 @@
+package com.usky.iot.service.vo;
+
+import com.usky.iot.domain.PmWorkReport;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ *
+ * @author fu
+ * @date 2024/12/9
+ */
+@Data
+public class PmWorkReportSlideVO {
+
+    /**
+     * 上滑动
+     **/
+    List<PmWorkReport> slideUp;
+
+    /**
+     * 下滑动
+     **/
+    List<PmWorkReport> slideDown;
+
+}