Explorar o código

pms 瑞都日报 平台井 兼容 主井完工 关联井未完工的情况

zhangcl hai 4 días
pai
achega
f3916842a7

+ 3 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotprojecttask/vo/IotProjectTaskPageReqVO.java

@@ -21,6 +21,9 @@ public class IotProjectTaskPageReqVO extends PageParam {
     @Schema(description = "项目id", example = "2988")
     private Long projectId;
 
+    @Schema(description = "平台井标识 2非平台井 1平台井 0默认值", example = "2")
+    private Integer platformWell;
+
     @Schema(description = "平台井组", example = "982oierwweo9823")
     private String platformGroup;
 

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

@@ -398,6 +398,8 @@ public class IotRdDailyReportController {
         Set<Long> userIds = new HashSet<>();
         // 当前页所有日报关联任务的 施工队伍id 集合
         Set<Long> currentPageDeptIds = new HashSet<>();
+        // key主井任务platformGroup/taskPlatform     value关联井号名称
+        Map<String, String> relatedPlatformPair = new HashMap<>();
         DataPermissionUtils.executeIgnore(() -> {
             // 查询日报关联的项目信息
             IotProjectInfoPageReqVO reqVO = new IotProjectInfoPageReqVO();
@@ -412,6 +414,8 @@ public class IotRdDailyReportController {
             IotProjectTaskPageReqVO taskReqVO = new IotProjectTaskPageReqVO();
             taskReqVO.setTaskIds(convertList(reports, IotRdDailyReportDO::getTaskId));
             List<IotProjectTaskDO> tasks = iotProjectTaskService.projectTasks(taskReqVO);
+            // 已经施工完成的主井任务 platformGroup
+            Set<String> finishedPlatformGroups = new HashSet<>();
             if (CollUtil.isNotEmpty(tasks)) {
                 tasks.forEach(task -> {
                     Set<Long> personIds = task.getResponsiblePerson();
@@ -425,7 +429,24 @@ public class IotRdDailyReportController {
                     // 获取所有任务的工作量数据
                     List<IotTaskAttrModelProperty> extProperties = task.getExtProperty();
                     taskWorkloadPair.put(task.getId(), extProperties);
+                    // 找到已经施工完成的主井任务 查询对应的关联井任务 用关联井号作为日报任务井号
+                    if (1 == task.getPlatformWell() && "wg".equals(task.getStatus())) {
+                        finishedPlatformGroups.add(task.getPlatformGroup());
+                    }
                 });
+                // 查询 finishedPlatformGroups 相关的未施工完成的关联井任务井
+                if (CollUtil.isNotEmpty(finishedPlatformGroups)) {
+                    IotProjectTaskPageReqVO unfinishedTaskReqVO = new IotProjectTaskPageReqVO();
+                    unfinishedTaskReqVO.setPlatformGroups(new ArrayList<>(finishedPlatformGroups));
+                    unfinishedTaskReqVO.setPlatformWell(2);
+                    unfinishedTaskReqVO.setJobFlag("Y");
+                    List<IotProjectTaskDO> unfinishedRelatedTasks = iotProjectTaskService.projectTasks(unfinishedTaskReqVO);
+                    if (CollUtil.isNotEmpty(unfinishedRelatedTasks)) {
+                        unfinishedRelatedTasks.forEach(task -> {
+                            relatedPlatformPair.put(task.getPlatformGroup(), task.getWellName());
+                        });
+                    }
+                }
             }
             // 查询当前页所有日报关联的任务的施工队伍名称
             Map<Long, DeptDO> deptMap = deptService.getDeptMap(currentPageDeptIds);
@@ -570,6 +591,8 @@ public class IotRdDailyReportController {
             findAndThen(projectPair, reportVO.getProjectId(), contractName -> reportVO.setContractName(contractName));
             // 日报关联的任务信息
             findAndThen(taskPair, reportVO.getTaskId(), taskName -> reportVO.setTaskName(taskName));
+            // 日报关联的任务信息(兼容主井完工 关联井未完工的情况)
+            findAndThen(relatedPlatformPair, reportVO.getTaskPlatform(), relatedTaskName -> reportVO.setTaskName(relatedTaskName));
             // 日报关联的责任人
             findAndThen(taskResponsiblePair, reportVO.getTaskId(), responsibleNames -> reportVO.setResponsiblePersonNames(responsibleNames));
             // 日报关联的填报人

+ 4 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotrddailyreport/vo/IotRdDailyReportRespVO.java

@@ -37,6 +37,10 @@ public class IotRdDailyReportRespVO {
     @ExcelProperty("平台井组")
     private String platformGroup;
 
+    @Schema(description = "任务平台井标识", example = "463e3996-be48-4758-8229-c1351cbf3e37")
+    @ExcelProperty("任务平台井标识")
+    private String taskPlatform;
+
     @Schema(description = "日报名称", example = "西南压裂项目部/2025-10-17日报填报")
     @ExcelProperty("日报名称")
     private String reportName;