소스 검색

pms 瑞鹰油耗 数据格式化

zhangcl 1 일 전
부모
커밋
b5e4666e90

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

@@ -408,6 +408,12 @@ public class IotRyDailyReportController {
         });
         // 2. 拼接数据
         return BeanUtils.toBean(reports, IotRyDailyReportRespVO.class, (reportVO) -> {
+            // 油耗 精确到 2位小数
+            if (reportVO.getDailyFuel().compareTo(BigDecimal.ZERO) > 0) {
+                BigDecimal fuel = reportVO.getDailyFuel()
+                        .divide(BigDecimal.valueOf(1), 2, RoundingMode.HALF_UP);
+                reportVO.setDailyFuel(fuel);
+            }
             // 2.1 拼接部门信息
             findAndThen(deptMap, reportVO.getDeptId(), dept -> reportVO.setDeptName(dept.getName()));
             // 2.2 日报关联的项目信息
@@ -748,6 +754,13 @@ public class IotRyDailyReportController {
                 reportVO.setDailyPowerUsage(powerW);
             }
 
+            // 油耗 精确到2位小数
+            if (reportVO.getDailyFuel().compareTo(BigDecimal.ZERO) > 0) {
+                BigDecimal fuel = reportVO.getDailyFuel()
+                        .divide(BigDecimal.valueOf(1), 2, RoundingMode.HALF_UP);
+                reportVO.setDailyFuel(fuel);
+            }
+
             // 小组内最后1条记录标识
             findAndThen(groupIdFootagePair, reportVO.getId(), footage -> reportVO.setLastGroupIdFlag(true));
             // 小组内累计进尺
@@ -764,8 +777,12 @@ public class IotRyDailyReportController {
                         .divide(BigDecimal.valueOf(1000), 2, RoundingMode.HALF_UP);
                 reportVO.setGroupIdPower(powerWanFang);
             });
-            // 小组内累计油耗
-            findAndThen(groupIdFuelPair, reportVO.getId(), fuel -> reportVO.setGroupIdFuel(fuel));
+            // 小组内累计油耗 精确到2位小数
+            findAndThen(groupIdFuelPair, reportVO.getId(), fuel -> {
+                BigDecimal accurateFuel = fuel
+                        .divide(BigDecimal.valueOf(1), 2, RoundingMode.HALF_UP);
+                reportVO.setGroupIdFuel(accurateFuel);
+            });
             // 修井 非生产时间
             findAndThen(groupIdNoProductTimePair, reportVO.getId(), noProductTime -> reportVO.setNonProductionTime(noProductTime));
             // 修井 生产时间
@@ -1110,6 +1127,13 @@ public class IotRyDailyReportController {
                 reportVO.setDailyPowerUsage(powerW);
             }
 
+            // 油耗 精确到2位小数
+            if (reportVO.getDailyFuel().compareTo(BigDecimal.ZERO) > 0) {
+                BigDecimal fuel = reportVO.getDailyFuel()
+                        .divide(BigDecimal.valueOf(1), 2, RoundingMode.HALF_UP);
+                reportVO.setDailyFuel(fuel);
+            }
+
             // 小组内最后1条记录标识
             findAndThen(groupIdFootagePair, reportVO.getId(), footage -> reportVO.setLastGroupIdFlag(true));
             // 小组内累计进尺
@@ -1126,8 +1150,12 @@ public class IotRyDailyReportController {
                         .divide(BigDecimal.valueOf(1000), 2, RoundingMode.HALF_UP);
                 reportVO.setGroupIdPower(powerWanFang);
             });
-            // 小组内累计油耗
-            findAndThen(groupIdFuelPair, reportVO.getId(), fuel -> reportVO.setGroupIdFuel(fuel));
+            // 小组内累计油耗 保留2位小数
+            findAndThen(groupIdFuelPair, reportVO.getId(), fuel -> {
+                BigDecimal accurateFuel = fuel
+                        .divide(BigDecimal.valueOf(1), 2, RoundingMode.HALF_UP);
+                reportVO.setGroupIdFuel(accurateFuel);
+            });
             // 修井 非生产时间
             findAndThen(groupIdNoProductTimePair, reportVO.getId(), noProductTime -> reportVO.setNonProductionTime(noProductTime));
             // 修井 生产时间