Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

Zimo 11 часов назад
Родитель
Сommit
ce3ae0ee3b

+ 15 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotrhdailyreport/IotRhDailyReportController.java

@@ -642,6 +642,19 @@ public class IotRhDailyReportController {
         if (CollUtil.isNotEmpty(projectDeptIds)) {
             projectDeptMap = deptService.getDeptMap(projectDeptIds);
         }
+        // 查询每个队伍对应的项目部名称集合
+        Map<Long, String> projectDeptNamePair = new HashMap<>();
+        if (CollUtil.isNotEmpty(deptMap)) {
+            Map<Long, DeptDO> finalProjectDeptMap1 = projectDeptMap;
+            deptMap.forEach((deptId, dept) -> {
+                if (finalProjectDeptMap1.containsKey(dept.getParentId())) {
+                    DeptDO parentDept = finalProjectDeptMap1.get(dept.getParentId());
+                    if (ObjUtil.isNotEmpty(parentDept)) {
+                        projectDeptNamePair.put(deptId, parentDept.getName());
+                    }
+                }
+            });
+        }
         // 设置施工队伍与 上级项目部对应关系
         if (CollUtil.isNotEmpty(deptMap)) {
             Map<Long, DeptDO> finalProjectDeptMap = projectDeptMap;
@@ -872,6 +885,8 @@ public class IotRhDailyReportController {
             }
             // 2.1 拼接部门信息
             findAndThen(deptMap, reportVO.getDeptId(), dept -> reportVO.setDeptName(dept.getName()));
+            // 2.1 拼接项目部信息
+            findAndThen(projectDeptNamePair, reportVO.getDeptId(), projectDeptName -> reportVO.setProjectDeptName(projectDeptName));
             // 队伍当年累计注气量
             findAndThen(yearGasInjectionPair, reportVO.getDeptId(), gasInjection -> {
                 // 转换单位为 万方

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

@@ -22,6 +22,10 @@ public class IotRhDailyReportRespVO {
     @ExcelProperty("创建时间")
     private String createTimeStr;
 
+    @Schema(description = "项目部名称")
+    @ExcelProperty("项目部名称")
+    private String projectDeptName;
+
     @Schema(description = "部门名称")
     @ExcelProperty("施工队伍")
     private String deptName;

+ 9 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotrydailyreport/IotRyDailyReportController.java

@@ -167,6 +167,9 @@ public class IotRyDailyReportController {
         List<IotRyDailyReportDetailDO> reportDetails = reportDetailsPage.getList();
         if (CollUtil.isNotEmpty(reportDetails)) {
             List<IotRyDailyReportDetailRespVO> reportDetailsResp = BeanUtils.toBean(reportDetails, IotRyDailyReportDetailRespVO.class);
+            // 按照生产动态明细 的 日期 时间段 正序排列
+            reportDetailsResp.sort(Comparator.comparing((IotRyDailyReportDetailRespVO detail) -> detail.getReportDate().toLocalDate())
+                    .thenComparing(IotRyDailyReportDetailRespVO::getStartTime));
             result.setReportDetails(reportDetailsResp);
         }
         // 按照创建时间倒序排列 取第2条记录对应的 当前井深 即 上次日报的当前井深
@@ -568,7 +571,12 @@ public class IotRyDailyReportController {
             // 2.4 设计井深
             findAndThen(taskExtPropertyPair, reportVO.getTaskId(), wellDepth -> reportVO.setDesignWellDepth(wellDepth));
             // 生产动态明细
-            findAndThen(reportDetailsPair, reportVO.getId(), details -> reportVO.setReportDetails(details));
+            findAndThen(reportDetailsPair, reportVO.getId(), details -> {
+                // 每个日报的明细 根据 reportDate+startTime 正序排列
+                details.sort(Comparator.comparing((IotRyDailyReportDetailRespVO detail) -> detail.getReportDate().toLocalDate())
+                        .thenComparing(IotRyDailyReportDetailRespVO::getStartTime));
+                reportVO.setReportDetails(details);
+            });
             // 施工工艺
             findAndThen(taskTechniquePair, reportVO.getTaskId(), technique -> reportVO.setTechnique(technique));
             // 井别