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

设备库里null带出为-

xuzhancheng пре 1 месец
родитељ
комит
c8cd4495df

+ 14 - 8
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/util/AutoDataBoilerService.java

@@ -14,11 +14,13 @@ import cn.start.tz.module.pressure2.dal.mysql.equipboiler.EquipBoilerMapper;
 import cn.start.tz.module.system.api.user.AdminUserApi;
 import cn.start.tz.module.system.api.user.dto.AdminUserRespDTO;
 import com.alibaba.fastjson2.JSONObject;
+import com.alibaba.fastjson2.JSONWriter;
 import jakarta.annotation.Resource;
 import org.springframework.stereotype.Service;
 
 import java.time.format.DateTimeFormatter;
 import java.util.List;
+import java.util.Objects;
 
 @Service
 public class AutoDataBoilerService {
@@ -78,13 +80,16 @@ public class AutoDataBoilerService {
         BoilerTaskOrderDO taskOrderDO = boilerTaskOrderMapper.selectById(itemReportDO.getOrderId());
         BoilerTaskOrderItemDO itemDO = boilerTaskOrderItemMapper.selectById(itemReportDO.getOrderItemId());
         if (itemDO != null) {
-            // 获取锅炉设备详细信息并转换为 JSON
-            EquipBoilerReportVO boilerDO = equipBoilerMapper.selectDetailsById(itemDO.getEquipId());
-            JSONObject boilerInfo = JSONObject.from(boilerDO);
+            EquipBoilerDO boilerDO = equipBoilerMapper.selectById(itemDO.getEquipId());
+            String boilerJson = JSONObject.toJSONString(boilerDO, JSONWriter.Feature.WriteMapNullValue);
+            JSONObject boilerInfo = JSONObject.parseObject(boilerJson);
             // 自动转换所有字段为字符串格式
             JsonConvertUtil.convertAllFieldsToString(boilerInfo);
             // 合并 json
-            jsonObject.putAll(boilerInfo);
+            for (String key : boilerInfo.keySet()) {
+                String str = (String) boilerInfo.get(key);
+                jsonObject.put(key, Objects.requireNonNullElse(str, "-"));
+            }
         }
         // 设置报告编号
         jsonObject.put("reportNo", itemReportDO.getReportNo());
@@ -129,16 +134,17 @@ public class AutoDataBoilerService {
         BoilerTaskOrderDO taskOrderDO = boilerTaskOrderMapper.selectById(itemReportDO.getOrderId());
         BoilerTaskOrderItemDO itemDO = boilerTaskOrderItemMapper.selectById(itemReportDO.getOrderItemId());
         if (itemDO != null) {
-            // 获取锅炉设备详细信息并转换为 JSON
-            EquipBoilerReportVO boilerDO = equipBoilerMapper.selectDetailsById(itemDO.getEquipId());
-            JSONObject boilerInfo = JSONObject.from(boilerDO);
+            EquipBoilerDO boilerDO = equipBoilerMapper.selectById(itemDO.getEquipId());
+            String boilerJson = JSONObject.toJSONString(boilerDO, JSONWriter.Feature.WriteMapNullValue);
+            JSONObject boilerInfo = JSONObject.parseObject(boilerJson);
             // 自动转换所有字段为字符串格式(包括日期、数字、布尔等)
             JsonConvertUtil.convertAllFieldsToString(boilerInfo);
             // 合并 json
             for (String key : boilerInfo.keySet()) {
                 // 没有这个key或者为null或者为空字符串时put
                 if (!jsonObject.containsKey(key) || jsonObject.get(key) == null || jsonObject.get(key).toString().isEmpty()) {
-                    jsonObject.put(key, boilerInfo.get(key));
+                    String str = (String) boilerInfo.get(key);
+                    jsonObject.put(key, Objects.requireNonNullElse(str, "-"));
                 }
             }
         }

+ 1 - 3
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/util/JsonConvertUtil.java

@@ -48,9 +48,7 @@ public class JsonConvertUtil {
             String formattedValue = convertValueToString(value);
 
             // 如果转换成功(非 null),则更新字段值
-            if (formattedValue != null) {
-                jsonObject.put(entry.getKey(), formattedValue);
-            }
+            jsonObject.put(entry.getKey(), formattedValue);
         }
 
         return jsonObject;