Преглед изворни кода

pms 瑞鹰 日报汇总 导出

zhangcl пре 1 дан
родитељ
комит
d014f1eddd

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

@@ -1481,9 +1481,12 @@ public class IotRyDailyReportController {
                 pageReqVO.setTaskIds(taskIds);
             }
         }
+        String sheetName = StrUtil.EMPTY;
+
         List<IotRyDailyReportStatisticsRespVO> statistics = iotRyDailyReportService.statistics(pageReqVO);
         if (CollUtil.isNotEmpty(statistics)) {
             statistics.forEach(stat -> {
+                // 修井 平均时效
                 BigDecimal transitTime = stat.getTransitTime();
                 if (ObjUtil.isEmpty(transitTime) || transitTime.compareTo(BigDecimal.ZERO) == 0) {
                     stat.setTransitTimePercent("0.00%");
@@ -1493,19 +1496,43 @@ public class IotRyDailyReportController {
                             .setScale(2, RoundingMode.HALF_UP);
                     stat.setTransitTimePercent(percent + "%");
                 }
+                // 非生产时效
+                BigDecimal nonProductiveTime = stat.getNonProductiveTime();
+                if (ObjUtil.isEmpty(nonProductiveTime) || nonProductiveTime.compareTo(BigDecimal.ZERO) == 0) {
+                    stat.setNonProductiveTimeStr("0.00%");
+                } else {
+                    // 转换逻辑:乘以100 → 保留2位小数(四舍五入)→ 拼接%
+                    BigDecimal percent = nonProductiveTime.multiply(new BigDecimal("100"))
+                            .setScale(2, RoundingMode.HALF_UP);
+                    stat.setNonProductiveTimeStr(percent + "%");
+                }
+                // 累计用电量 MWh
+                BigDecimal cumulativePowerConsumption = stat.getCumulativePowerConsumption();
+                if (ObjUtil.isNotEmpty(cumulativePowerConsumption)) {
+                    BigDecimal powerWanFang = cumulativePowerConsumption
+                            .divide(BigDecimal.valueOf(1000), 2, RoundingMode.HALF_UP);
+                    stat.setCumulativePowerConsumptionExport(powerWanFang);
+                }
             });
         }
-        String sheetName = StrUtil.EMPTY;
+
         if ("1".equals(pageReqVO.getProjectClassification())) {
             // 钻井日报汇总数据
             sheetName = "钻井日报汇总数据";
+            // 修改 statistics 集合类型为 IotRyZjDailyReportStatisticsRespVO
+            List<IotRyZjDailyReportStatisticsRespVO> zjStatistics = BeanUtils.toBean(statistics, IotRyZjDailyReportStatisticsRespVO.class);
+            // 导出 Excel
+            ExcelUtils.write(response, "瑞鹰日报汇总.xls", sheetName,
+                    IotRyZjDailyReportStatisticsRespVO.class, zjStatistics);
         } else {
             // 修井日报汇总数据
             sheetName = "修井日报汇总数据";
+            // 修改 statistics 集合类型为 IotRyXjDailyReportStatisticsRespVO
+            List<IotRyXjDailyReportStatisticsRespVO> xjStatistics = BeanUtils.toBean(statistics, IotRyXjDailyReportStatisticsRespVO.class);
+            // 导出 Excel
+            ExcelUtils.write(response, "瑞鹰日报汇总.xls", sheetName,
+                    IotRyXjDailyReportStatisticsRespVO.class, xjStatistics);
         }
-        // 导出 Excel
-        ExcelUtils.write(response, "瑞鹰日报汇总.xls", sheetName,
-                IotRyDailyReportStatisticsRespVO.class, statistics);
     }
 
 }

+ 8 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotrydailyreport/vo/IotRyDailyReportStatisticsRespVO.java

@@ -51,9 +51,12 @@ public class IotRyDailyReportStatisticsRespVO {
     private Integer cumulativeCompletedWells = 0;
 
     @Schema(description = "累计用电量(kWh)")
-    @ExcelProperty("累计用电量(kWh)")
     private BigDecimal cumulativePowerConsumption = BigDecimal.ZERO;
 
+    @Schema(description = "累计用电量(MWh)")
+    @ExcelProperty("累计用电量(MWh)")
+    private BigDecimal cumulativePowerConsumptionExport = BigDecimal.ZERO;
+
     @Schema(description = "累计油耗(升)")
     @ExcelProperty("累计油耗(升)")
     private BigDecimal cumulativeFuelConsumption = BigDecimal.ZERO;
@@ -72,4 +75,8 @@ public class IotRyDailyReportStatisticsRespVO {
     @ExcelProperty("运行时效")
     private String transitTimePercent;
 
+    @Schema(description = "非生产时效")
+    @ExcelProperty("非生产时效")
+    private String nonProductiveTimeStr;
+
 }

+ 81 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotrydailyreport/vo/IotRyXjDailyReportStatisticsRespVO.java

@@ -0,0 +1,81 @@
+package cn.iocoder.yudao.module.pms.controller.admin.iotrydailyreport.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Schema(description = "管理后台 - 瑞鹰日报 汇总统计 修井 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class IotRyXjDailyReportStatisticsRespVO {
+
+    @Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "13853")
+    private Long id;
+
+    @Schema(description = "项目部id", example = "125")
+    private Long projectDeptId;
+
+    @Schema(description = "队伍id", example = "125")
+    private Long teamId;
+
+    @Schema(description = "项目部名称", example = "新疆项目部")
+    @ExcelProperty("项目部名称")
+    private String projectDeptName;
+
+    @Schema(description = "队伍名称", example = "小修20队")
+    @ExcelProperty("队伍名称")
+    private String teamName;
+
+    @Schema(description = "任务id", example = "15678")
+    private Long taskId;
+
+    @Schema(description = "排序", example = "1")
+    private Integer sort;
+
+    @Schema(description = "部门类型(公司级1 项目部2 队伍3)", example = "1")
+    private String type;
+
+    @Schema(description = "累计进尺(m)")
+    private BigDecimal cumulativeFootage = BigDecimal.ZERO;
+
+    @Schema(description = "累计施工井数")
+    @ExcelProperty("累计施工井数")
+    private Integer cumulativeConstructWells = 0;
+
+    @Schema(description = "累计完工井数")
+    @ExcelProperty("累计完工井数")
+    private Integer cumulativeCompletedWells = 0;
+
+    @Schema(description = "累计用电量(kWh)")
+    private BigDecimal cumulativePowerConsumption = BigDecimal.ZERO;
+
+    @Schema(description = "累计用电量(MWh)")
+    @ExcelProperty("累计用电量(MWh)")
+    private BigDecimal cumulativePowerConsumptionExport = BigDecimal.ZERO;
+
+    @Schema(description = "累计油耗(升)")
+    @ExcelProperty("累计油耗(升)")
+    private BigDecimal cumulativeFuelConsumption = BigDecimal.ZERO;
+
+    @Schema(description = "平均油耗(升)")
+    @ExcelProperty("平均油耗(升)")
+    private BigDecimal averageFuelConsumption = BigDecimal.ZERO;
+
+    @Schema(description = "运行时效")
+    private BigDecimal transitTime = BigDecimal.ZERO;
+
+    @Schema(description = "非生产时效")
+    private BigDecimal nonProductiveTime = BigDecimal.ZERO;
+
+    @Schema(description = "运行时效")
+    @ExcelProperty("运行时效")
+    private String transitTimePercent;
+
+    @Schema(description = "非生产时效")
+    @ExcelProperty("非生产时效")
+    private String nonProductiveTimeStr;
+
+}

+ 80 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotrydailyreport/vo/IotRyZjDailyReportStatisticsRespVO.java

@@ -0,0 +1,80 @@
+package cn.iocoder.yudao.module.pms.controller.admin.iotrydailyreport.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Schema(description = "管理后台 - 瑞鹰日报 汇总统计 钻井 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class IotRyZjDailyReportStatisticsRespVO {
+
+    @Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "13853")
+    private Long id;
+
+    @Schema(description = "项目部id", example = "125")
+    private Long projectDeptId;
+
+    @Schema(description = "队伍id", example = "125")
+    private Long teamId;
+
+    @Schema(description = "项目部名称", example = "新疆项目部")
+    @ExcelProperty("项目部名称")
+    private String projectDeptName;
+
+    @Schema(description = "队伍名称", example = "小修20队")
+    @ExcelProperty("队伍名称")
+    private String teamName;
+
+    @Schema(description = "任务id", example = "15678")
+    private Long taskId;
+
+    @Schema(description = "排序", example = "1")
+    private Integer sort;
+
+    @Schema(description = "部门类型(公司级1 项目部2 队伍3)", example = "1")
+    private String type;
+
+    @Schema(description = "累计进尺(m)")
+    @ExcelProperty("累计进尺(m)")
+    private BigDecimal cumulativeFootage = BigDecimal.ZERO;
+
+    @Schema(description = "累计施工井数")
+    private Integer cumulativeConstructWells = 0;
+
+    @Schema(description = "累计完工井数")
+    private Integer cumulativeCompletedWells = 0;
+
+    @Schema(description = "累计用电量(kWh)")
+    private BigDecimal cumulativePowerConsumption = BigDecimal.ZERO;
+
+    @Schema(description = "累计用电量(MWh)")
+    @ExcelProperty("累计用电量(MWh)")
+    private BigDecimal cumulativePowerConsumptionExport = BigDecimal.ZERO;
+
+    @Schema(description = "累计油耗(升)")
+    @ExcelProperty("累计油耗(升)")
+    private BigDecimal cumulativeFuelConsumption = BigDecimal.ZERO;
+
+    @Schema(description = "平均油耗(升)")
+    @ExcelProperty("平均油耗(升)")
+    private BigDecimal averageFuelConsumption = BigDecimal.ZERO;
+
+    @Schema(description = "运行时效")
+    private BigDecimal transitTime = BigDecimal.ZERO;
+
+    @Schema(description = "非生产时效")
+    private BigDecimal nonProductiveTime = BigDecimal.ZERO;
+
+    @Schema(description = "运行时效")
+    @ExcelProperty("运行时效")
+    private String transitTimePercent;
+
+    @Schema(description = "非生产时效")
+    @ExcelProperty("非生产时效")
+    private String nonProductiveTimeStr;
+
+}