Forráskód Böngészése

pms 瑞都 日报 定时任务生成日报逻辑调整 taskPlatform

zhangcl 1 napja
szülő
commit
ff6815fed1

+ 1 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotrddailyreport/IotRdDailyReportController.java

@@ -221,7 +221,7 @@ public class IotRdDailyReportController {
         // 日报任务对应的平台井列表
         if (1 == dailyReport.getPlatformWell()) {
             IotProjectTaskPageReqVO pageReqVO = new IotProjectTaskPageReqVO();
-            pageReqVO.setPlatformGroup(dailyReport.getPlatformGroup());
+            pageReqVO.setPlatformGroup(dailyReport.getTaskPlatform());
             List<IotProjectTaskDO> tasks = iotProjectTaskService.projectTasks(pageReqVO);
             // 查询相同平台井组关联的 日报
             IotRdDailyReportPageReqVO reportReqVO  = new IotRdDailyReportPageReqVO();

+ 4 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/dataobject/iotrddailyreport/IotRdDailyReportDO.java

@@ -56,6 +56,10 @@ public class IotRdDailyReportDO extends BaseDO {
      * 任务id
      */
     private Long taskId;
+    /**
+     * 任务 平台井组
+     */
+    private String taskPlatform;
     /**
      * 项目类别(钻井 修井 注氮 酸化压裂... )
      */

+ 25 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/job/dailyreport/CreateRdDailyReportOrderJob.java

@@ -133,7 +133,8 @@ public class CreateRdDailyReportOrderJob implements JobHandler {
                     report.setProjectId(task.getProjectId());
                     report.setTaskId(task.getId());
                     report.setPlatformWell(task.getPlatformWell());
-                    report.setPlatformGroup(task.getPlatformGroup());
+                    report.setPlatformGroup(StrUtil.EMPTY);
+                    report.setTaskPlatform(task.getPlatformGroup());
                     report.setDeviceIds(task.getDeviceIds());
                     report.setStartTime(LocalTime.of(8, 0, 0));
                     report.setEndTime(LocalTime.of(8, 0, 0));
@@ -145,6 +146,29 @@ public class CreateRdDailyReportOrderJob implements JobHandler {
             });
         }
         if (CollUtil.isNotEmpty(reports)) {
+            Map<String, List<IotRdDailyReportDO>> platformPair = new HashMap<>();
+            // 替换 日报的 platformGroup 以区分不同的任务
+            reports.forEach(report -> {
+                String taskPlatform = report.getTaskPlatform();
+                if (platformPair.containsKey(taskPlatform)) {
+                    List<IotRdDailyReportDO> tempReports = platformPair.get(taskPlatform);
+                    tempReports.add(report);
+                    platformPair.put(taskPlatform, tempReports);
+                } else {
+                    List<IotRdDailyReportDO> tempReports = new ArrayList<>();
+                    tempReports.add(report);
+                    platformPair.put(taskPlatform, tempReports);
+                }
+            });
+            if (CollUtil.isNotEmpty(platformPair)) {
+                platformPair.forEach((taskPlatform, platformReports) -> {
+                    // 相同的任务 如果是平台井 则重新生成 uuid 不利用项目任务的uuid
+                    String tempUuid = StrUtil.uuid();
+                    platformReports.forEach(report -> {
+                        report.setPlatformGroup(tempUuid);
+                    });
+                });
+            }
             iotRdDailyReportService.batchAddDailyReports(reports);
         }