|
@@ -94,8 +94,8 @@ public class IotOpeationFillController {
|
|
|
dailyToTotalMap.put("当日公里数", "累计公里数");
|
|
|
dailyToTotalMap.put("当日用电量", "累计用电量");
|
|
|
//泵车
|
|
|
- dailyToTotalMap.put("泵车底盘发动机当日公里数", "泵车底盘发动机累计公里数");
|
|
|
- dailyToTotalMap.put("泵车台上发动机当日运行时长", "泵车台上发动机累计运行时长");
|
|
|
+ dailyToTotalMap.put("发动机累计公里数填报", "发动机累计公里数");
|
|
|
+ dailyToTotalMap.put("变速箱累计公里数填报", "变速箱累计公里数");
|
|
|
//管汇车
|
|
|
dailyToTotalMap.put("底盘发动机当日公里数", "底盘发动机累计公里数");
|
|
|
//供液撬
|
|
@@ -136,6 +136,52 @@ public class IotOpeationFillController {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ // 定义当日字段与累计字段的映射关系
|
|
|
+ Map<String, String> dailyToTotalMap1 = new HashMap<>();
|
|
|
+ dailyToTotalMap1.put("发动机累计公里数填报", "发动机累计公里数");
|
|
|
+ dailyToTotalMap1.put("变速箱累计公里数填报", "变速箱累计公里数");
|
|
|
+ dailyToTotalMap1.put("发动机累计运行时长填报", "发动机累计运行时长");
|
|
|
+ dailyToTotalMap1.put("吊车累计运行时长填报", "吊车累计运行时长");
|
|
|
+ dailyToTotalMap1.put("吊车累计运行公里数填报", "吊车累计运行公里数");
|
|
|
+ dailyToTotalMap1.put("液压油累计运行时长填报", "液压油累计运行时长");
|
|
|
+ dailyToTotalMap1.put("底盘发动机累计公里数填报", "底盘发动机累计公里数");
|
|
|
+ dailyToTotalMap1.put("底盘发动机累计运行时长填报", "底盘发动机累计运行时长");
|
|
|
+ dailyToTotalMap1.put("台上发动机累计运转时长填报", "台上发动机累计运转时长");
|
|
|
+
|
|
|
+
|
|
|
+ // 存储当日数据值的映射
|
|
|
+ Map<String, BigDecimal> dailyValues1 = new HashMap<>();
|
|
|
+
|
|
|
+ // 第一遍遍历:收集当日数据值
|
|
|
+ for (IotOpeationFillSaveReqVO item : fillList) {
|
|
|
+ String pointName = item.getPointName();
|
|
|
+ if (dailyToTotalMap1.containsKey(pointName)) {
|
|
|
+ try {
|
|
|
+ dailyValues1.put(pointName, new BigDecimal(item.getFillContent()));
|
|
|
+ } catch (NumberFormatException e) {
|
|
|
+ // 处理数据格式错误,记录日志或抛出异常
|
|
|
+ System.out.println("数据格式错误,pointName={}, fillContent={}"+pointName+item.getFillContent());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 第二遍遍历:更新累计数据
|
|
|
+ for (IotOpeationFillSaveReqVO item : fillList) {
|
|
|
+ String pointName = item.getPointName();
|
|
|
+ // 检查当前项是否为累计项,并且是否有对应的当日数据
|
|
|
+ for (Map.Entry<String, String> entry : dailyToTotalMap1.entrySet()) {
|
|
|
+ String dailyName = entry.getKey();
|
|
|
+ String totalName = entry.getValue();
|
|
|
+
|
|
|
+ if (pointName.equals(totalName) && item.getIsCollection() == 0 && dailyValues1.containsKey(dailyName)) {
|
|
|
+ BigDecimal dailyValue = dailyValues1.get(dailyName);
|
|
|
+ item.setTotalRunTime(dailyValue);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
List< IotDeviceRunLogDO > logDO = new ArrayList<>();
|
|
|
|
|
|
for (IotOpeationFillSaveReqVO fill:fillList) {
|
|
@@ -414,6 +460,7 @@ public class IotOpeationFillController {
|
|
|
List<IotModelTemplateAttrsDO> sumList = list.stream().filter(e->e.getIsSum()==1).collect(Collectors.toList());
|
|
|
List<IotModelTemplateAttrsDO> nonSumList = list.stream().filter(e->e.getIsSum()==0).collect(Collectors.toList());
|
|
|
|
|
|
+
|
|
|
IotModelTemplateAttrsDO1 sum = new IotModelTemplateAttrsDO1();
|
|
|
sum.setSumList(sumList);
|
|
|
sum.setNonSumList(nonSumList);
|