|
|
@@ -135,6 +135,59 @@ public class IotRhDailyReportController {
|
|
|
return success(new PageResult<>(buildRhDailyReports(pageResult.getList()), pageResult.getTotal()));
|
|
|
}
|
|
|
|
|
|
+ @GetMapping("/totalWorkload")
|
|
|
+ @Operation(summary = "累计工作量统计")
|
|
|
+ @PreAuthorize("@ss.hasPermission('pms:iot-rh-daily-report:query')")
|
|
|
+ public CommonResult<Map<String, BigDecimal>> totalWorkload(@Valid IotRhDailyReportPageReqVO pageReqVO) {
|
|
|
+ // 查询所有数据不分页
|
|
|
+ pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
|
|
+ // 根据查询参数筛选出 符合条件 的记录id 再传入 分页查询
|
|
|
+ Set<Long> projectIds = new HashSet<>();
|
|
|
+ Set<Long> taskIds = new HashSet<>();
|
|
|
+ if (StrUtil.isNotBlank(pageReqVO.getContractName())) {
|
|
|
+ IotProjectInfoPageReqVO reqVO = new IotProjectInfoPageReqVO();
|
|
|
+ reqVO.setContractName(pageReqVO.getContractName());
|
|
|
+ List<IotProjectInfoDO> projects = iotProjectInfoService.getIotProjectInfos(reqVO);
|
|
|
+ if (CollUtil.isNotEmpty(projects)) {
|
|
|
+ projects.forEach(project -> {
|
|
|
+ projectIds.add(project.getId());
|
|
|
+ });
|
|
|
+ pageReqVO.setProjectIds(projectIds);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (StrUtil.isNotBlank(pageReqVO.getTaskName())) {
|
|
|
+ IotProjectTaskPageReqVO reqVO = new IotProjectTaskPageReqVO();
|
|
|
+ reqVO.setSearchKey(pageReqVO.getTaskName());
|
|
|
+ List<IotProjectTaskDO> tasks = iotProjectTaskService.projectTasks(reqVO);
|
|
|
+ if (CollUtil.isNotEmpty(tasks)) {
|
|
|
+ tasks.forEach(task -> {
|
|
|
+ taskIds.add(task.getId());
|
|
|
+ });
|
|
|
+ pageReqVO.setTaskIds(taskIds);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<IotRhDailyReportDO> list = iotRhDailyReportService.getIotRhDailyReportPage(pageReqVO).getList();
|
|
|
+ Map<String, BigDecimal> result = new HashMap<>();
|
|
|
+ BigDecimal totalGasInjection = BigDecimal.ZERO;
|
|
|
+ BigDecimal totalWaterInjection = BigDecimal.ZERO;
|
|
|
+ if (CollUtil.isNotEmpty(list)) {
|
|
|
+ for (IotRhDailyReportDO report : list) {
|
|
|
+ BigDecimal dailyGasInjection = report.getDailyGasInjection();
|
|
|
+ BigDecimal dailyWaterInjection = report.getDailyWaterInjection();
|
|
|
+ if (ObjUtil.isNotEmpty(dailyGasInjection)) {
|
|
|
+ totalGasInjection = totalGasInjection.add(dailyGasInjection);
|
|
|
+ }
|
|
|
+ if (ObjUtil.isNotEmpty(dailyWaterInjection)) {
|
|
|
+ totalWaterInjection = totalWaterInjection.add(dailyWaterInjection);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 汇总 指定搜索时间段内的 累计注气量 累计注水量
|
|
|
+ result.put("totalGasInjection", totalGasInjection);
|
|
|
+ result.put("totalWaterInjection", totalWaterInjection);
|
|
|
+ }
|
|
|
+ return success(result);
|
|
|
+ }
|
|
|
+
|
|
|
@GetMapping("/rhDailyReportStatistics")
|
|
|
@Operation(summary = "按照日期查询瑞恒日报统计数据 已填报 未填报 数量")
|
|
|
@PreAuthorize("@ss.hasPermission('pms:iot-rh-daily-report:query')")
|