Browse Source

:white_check_mark: 解决对象为空转换时转为字符串"null"的问题

Twelve615 1 year ago
parent
commit
30d9335a86

+ 7 - 7
airport/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/imf/msg/ImfMsgAbstract.java

@@ -140,7 +140,7 @@ abstract class ImfMsgAbstract<T extends ImfMsgType> implements ImfMsg {
     public String getStrVal(String expression) {
         XPath xpath = getXpath();
         Object evaluate = xpath.evaluate(expression, getXmlDocument(), XPathConstants.STRING);
-        return String.valueOf(evaluate);
+        return String.valueOf(evaluate).replace("null", "");
     }
 
     @Override
@@ -302,8 +302,8 @@ abstract class ImfMsgAbstract<T extends ImfMsgType> implements ImfMsg {
      * @param airPosition   机位
      */
     void adminDfdlCopyToAirPosition(AdminDfdlList adminDfdlList, AdminAircraftPosition airPosition) {
-        airPosition.setFlightSole(String.valueOf(adminDfdlList.getFlid()));
-        airPosition.setFlightAfid(String.valueOf(adminDfdlList.getAfid()));
+        airPosition.setFlightSole(String.valueOf(adminDfdlList.getFlid()).replace("null", ""));
+        airPosition.setFlightAfid(String.valueOf(adminDfdlList.getAfid()).replace("null", ""));
         airPosition.setFlightNum(adminDfdlList.getAwcd() + "-" + adminDfdlList.getFlno());
         airPosition.setAircraftNum(adminDfdlList.getCfno());
         airPosition.setEstr(adminDfdlList.getEstr());
@@ -326,20 +326,20 @@ abstract class ImfMsgAbstract<T extends ImfMsgType> implements ImfMsg {
         }
         Object estr = map.get("ESTR");
         if (estr != null) {
-            adminDfdlList.setEstr(strToDate(String.valueOf(estr)));
+            adminDfdlList.setEstr(strToDate(String.valueOf(estr).replace("null", "")));
         }
         Object eend = map.get("EEND");
         if (eend != null) {
-            adminDfdlList.setEend(strToDate(String.valueOf(eend)));
+            adminDfdlList.setEend(strToDate(String.valueOf(eend).replace("null", "")));
         }
 
         Object rstr = map.get("RSTR");
         if (rstr != null) {
-            adminDfdlList.setRstr(strToDate(String.valueOf(rstr)));
+            adminDfdlList.setRstr(strToDate(String.valueOf(rstr).replace("null", "")));
         }
         Object rend = map.get("REND");
         if (rend != null) {
-            adminDfdlList.setRend(strToDate(String.valueOf(rend)));
+            adminDfdlList.setRend(strToDate(String.valueOf(rend).replace("null", "")));
         }
     }
 

+ 4 - 4
airport/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/imf/msg/StlsImfMsg.java

@@ -123,11 +123,11 @@ public class StlsImfMsg extends ImfMsgAbstract {
                     // 有开始占用时间,证明到站了
                     Object rend = map.get("REND");
                     if (rend != null) {
-                        log.info("flid:{},有实际结束占用时间{}",adminDfdlList.getFlid(),String.valueOf(rend));
+                        log.info("flid:{},有实际结束占用时间{}",adminDfdlList.getFlid(),String.valueOf(rend).replace("null", ""));
                         // 有结束占用机位的时间
-                        Date rendDate = strToDate(String.valueOf(rend));
+                        Date rendDate = strToDate(String.valueOf(rend).replace("null", ""));
                         if (rendDate.before(now)) {
-                            log.info("flid:{},有实际结束占用时间{}, 且小于当前时间, 清空机位",adminDfdlList.getFlid(),String.valueOf(rend));
+                            log.info("flid:{},有实际结束占用时间{}, 且小于当前时间, 清空机位",adminDfdlList.getFlid(),String.valueOf(rend).replace("null", ""));
                             //不在占用时间范围内,结束占用机位,清空机位后续不做处理
                             getAdminAircraftPositionService().dept(aircraftPosition.getId());
                             adminDfdlList.setArrival(1);
@@ -142,7 +142,7 @@ public class StlsImfMsg extends ImfMsgAbstract {
                         // 没有结束占用时间,到站
                         log.info("flid:{},没有实际结束占用时间,判断是否有实际开始占用时间",adminDfdlList.getFlid());
                         // 判断到站时间是否在当前时间之前,避免脏数据
-                        Date rstrDate = strToDate(String.valueOf(rstr));
+                        Date rstrDate = strToDate(String.valueOf(rstr).replace("null", ""));
                         if (rstrDate!=null) {
                             log.info("flid:{},有实际开始占用时间{},应占用机位",rstrDate ,adminDfdlList.getFlid());
                             // 到站