Jelajahi Sumber

新增查询用户定时日报接口

fuyuchuan 6 bulan lalu
induk
melakukan
7058905701

+ 9 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/PmWorkReportController.java

@@ -95,4 +95,13 @@ public class PmWorkReportController {
     public void del(@PathVariable("reportId") Integer reportId) {
         pmWorkReportService.deleteContent(reportId);
     }
+
+    /**
+     * 定时报告查询
+     */
+    @GetMapping("/timedReports")
+    public ApiResult<List<PmWorkReport>> timedReportQuery() {
+        return ApiResult.success(pmWorkReportService.timedReportQuery());
+    }
+
 }

+ 6 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/PmWorkReportService.java

@@ -52,4 +52,10 @@ public interface PmWorkReportService extends CrudService<PmWorkReport> {
      */
     void deleteContent(Integer reportId);
 
+    /**
+     * 定时报告查询
+     * @return
+     */
+    List<PmWorkReport> timedReportQuery();
+
 }

+ 39 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/PmWorkReportServiceImpl.java

@@ -622,5 +622,44 @@ public class PmWorkReportServiceImpl extends AbstractCrudService<PmWorkReportMap
         }
     }
 
+    /**
+     * @description: 查询定时报告
+     * @author: fu
+     * @date: 2024/8/7 20:17
+     * @param: []
+     * @return: java.util.List<com.usky.iot.domain.PmWorkReport>
+     **/
+    @Override
+    public List<PmWorkReport> timedReportQuery() {
+        Long userId = SecurityUtils.getUserId();
+        LambdaQueryWrapper<PmWorkReport> reports = Wrappers.lambdaQuery();
+        reports.eq(PmWorkReport::getSubmitterId, userId)
+                .eq(PmWorkReport::getReportStatus, 0)
+                .orderByAsc(PmWorkReport::getReportDate);
+        List<PmWorkReport> timedReports = pmWorkReportMapper.selectList(reports);
+
+        if (timedReports.isEmpty()){
+            return timedReports;
+        }
+        List<Integer> reportIds = timedReports.stream().map(PmWorkReport::getId).collect(Collectors.toList());
+
+        LambdaQueryWrapper<PmWorkContent> reportContents = Wrappers.lambdaQuery();
+        reportContents.in(PmWorkContent::getReportId, reportIds);
+        List<PmWorkContent> pmWorkContentList = pmWorkContentMapper.selectList(reportContents);
+        for (PmWorkReport report : timedReports) {
+            Integer id = report.getId();
+            List<PmWorkContent> workContents = new ArrayList<>();
+            for (PmWorkContent content : pmWorkContentList) {
+                Integer reportId = content.getReportId();
+                if (reportId.equals(id)) {
+                    workContents.add(content);
+                }
+            }
+            report.setWorkContents(workContents);
+        }
+
+        return timedReports;
+    }
+
 
 }