Browse Source

:construction: 机场机位消息去掉缓存

Twelve615 1 year ago
parent
commit
c57c121f61

+ 39 - 20
airport/jeecg-boot-module-system/src/main/java/org/jeecg/modules/admin_dfdl_list/mapper/xml/AdminDfdlListMapper.xml

@@ -5,26 +5,45 @@
     <select id="queryPermitAirplaneByDate" parameterType="date" resultType="org.jeecg.modules.admin_dfdl_list.entity.AdminDfdlList">
         <![CDATA[
         SELECT *
-        FROM admin_dfdl_list
-        WHERE position_code IS NOT NULL
-        AND position_code != ''
-        AND flio = 'A'
-        AND IFNULL(IFNULL(rstr, estr), DATE_ADD(CURDATE(), INTERVAL 1 DAY)) <= date_format(#{date,jdbcType=TIMESTAMP}, '%Y-%m-%d %H:%i:%s.%f')
-        AND IFNULL(IFNULL(rend, eend), DATE_ADD(CURDATE(), INTERVAL 1 DAY)) >= date_format(#{date,jdbcType=TIMESTAMP}, '%Y-%m-%d %H:%i:%s.%f')
-        GROUP BY cfno, position_code
-        HAVING max(estr)
-        UNION ALL
-        SELECT *
-        FROM admin_dfdl_list
-        WHERE position_code IS NOT NULL
-        AND position_code != ''
-        AND flio = 'D'
-        AND IFNULL(IFNULL(rstr, estr), DATE_ADD(CURDATE(), INTERVAL 1 DAY)) <= date_format(#{date,jdbcType=TIMESTAMP}, '%Y-%m-%d %H:%i:%s.%f')
-        AND IFNULL(IFNULL(rend, eend), DATE_ADD(CURDATE(), INTERVAL 1 DAY)) >= date_format(#{date,jdbcType=TIMESTAMP}, '%Y-%m-%d %H:%i:%s.%f')
-        AND (depe != 1 OR depe IS NULL)
-        AND afid IS NULL
-        GROUP BY cfno, position_code
-        HAVING max(estr)
+        FROM (SELECT *
+              FROM admin_dfdl_list
+              WHERE position_code IS NOT NULL
+                AND position_code != ''
+                AND (rstr IS NOT NULL OR frlt IS NOT NULL)
+                AND IFNULL(IFNULL(frlt, rstr), DATE_ADD(CURDATE(), INTERVAL 1 DAY)) <=
+                    date_format(#{date,jdbcType=TIMESTAMP}, '%Y-%m-%d %H:%i:%s.%f')
+                AND rend IS NULL
+                AND (depe != 1 OR depe IS NULL)
+              GROUP BY cfno, position_code
+              HAVING max(estr)
+              UNION
+              SELECT *
+              FROM admin_dfdl_list
+              WHERE position_code IS NOT NULL
+                AND position_code != ''
+                AND arrival = 1
+                AND IFNULL(IFNULL(frlt, IFNULL(rstr, estr)), DATE_ADD(CURDATE(), INTERVAL 1 DAY)) <=
+                  date_format(#{date,jdbcType=TIMESTAMP}, '%Y-%m-%d %H:%i:%s.%f')
+                AND IFNULL(IFNULL(rend, eend), DATE_ADD(CURDATE(), INTERVAL 1 DAY)) >=
+                  date_format(#{date,jdbcType=TIMESTAMP}, '%Y-%m-%d %H:%i:%s.%f')
+                AND (depe != 1 OR depe IS NULL)
+              GROUP BY cfno, position_code
+              HAVING max(estr)
+              UNION
+              SELECT *
+              FROM admin_dfdl_list
+              WHERE position_code IS NOT NULL
+                AND position_code != ''
+                AND flio = 'D'
+                AND IFNULL(IFNULL(frlt, IFNULL(rstr, estr)), DATE_ADD(CURDATE(), INTERVAL 1 DAY)) <=
+                  date_format(#{date,jdbcType=TIMESTAMP}, '%Y-%m-%d %H:%i:%s.%f')
+                AND IFNULL(IFNULL(rend, eend), DATE_ADD(CURDATE(), INTERVAL 1 DAY)) >=
+                  date_format(#{date,jdbcType=TIMESTAMP}, '%Y-%m-%d %H:%i:%s.%f')
+                AND (depe != 1 OR depe IS NULL)
+                AND afid IS NULL
+              GROUP BY cfno, position_code
+              HAVING max(estr)) a
+        ORDER BY flio ASC,frlt ASC
             ]]>
     </select>
 

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

@@ -38,9 +38,9 @@ public class AirportJob extends ImfMsgAbstract implements Job {
 
     @Override
     public void execute(JobExecutionContext context) throws JobExecutionException {
-        log.debug(">>>>>>>>>>>>>>>>>>>>场机位动态更新定时任务开始>>>>>>>>>>>>>>>>>>>>");
+        log.info(">>>>>>>>>>>>>>>>>>>>场机位动态更新定时任务开始>>>>>>>>>>>>>>>>>>>>");
         handle();
-        log.debug("<<<<<<<<<<<<<<<<<<<<场机位动态更新定时任务结束<<<<<<<<<<<<<<<<<<<<");
+        log.info("<<<<<<<<<<<<<<<<<<<<场机位动态更新定时任务结束<<<<<<<<<<<<<<<<<<<<");
     }
 
     /**
@@ -73,7 +73,7 @@ public class AirportJob extends ImfMsgAbstract implements Job {
             for (AdminDfdlList adminDfdlList : dfdlPlan) {
                 if (position.getAircraftPositionNum().equals(adminDfdlList.getPositionCode())) {
                     // 机位号相等
-                    adminDfdlCopyToAirPosition(adminDfdlList,position);
+                    adminDfdlCopyToAirPosition(adminDfdlList, position);
                     position.setType("使用中");
                 }
             }
@@ -99,6 +99,7 @@ public class AirportJob extends ImfMsgAbstract implements Job {
 
     /**
      * 获取机位上最终应该展示的飞机列表
+     *
      * @param dfdlList  想要展示的计划列表
      * @param dfdlDList 需要排除的计划列表
      * @return
@@ -111,7 +112,7 @@ public class AirportJob extends ImfMsgAbstract implements Job {
             return dfdlListVector;
         }
 
-        if (dfdlDList !=null && !dfdlDList.isEmpty()) {
+        if (dfdlDList != null && !dfdlDList.isEmpty()) {
             // 排除的计划是空的直接返回全部计划
             dfdlListVector.addAll(dfdlList);
             return dfdlListVector;

+ 1 - 1
airport/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/imf/ImfMqListener.java

@@ -45,7 +45,7 @@ import java.util.Date;
  * @Description:
  * @date 2023/7/17 11:57
  */
-@Profile("dev")
+@Profile("prod")
 @Slf4j
 @RabbitComponent(value = "ImfMqListener")
 public class ImfMqListener extends BaseRabbiMqHandler<Object> {

+ 17 - 18
airport/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/imf/msg/ArreImfMsg.java

@@ -22,31 +22,30 @@ public class ArreImfMsg extends ImfMsgAbstract {
     }
 
     @Override
-    @Transactional
     public void handle() {
+        log.info("航班到达本站消息处理开始");
         // 直接更新机位表将计划表以及消息中的时间等数据更新
         String FLID = getStrVal("/MSG/DFLT/FLID");
+        log.info("ARRE:{}", FLID);
         // 实际到达时间 20230619112000
         String FRLT = getStrVal("/MSG/DFLT/FRLT");
         Date date = strToDate(FRLT);
-        AdminDfdlList adminDfdlList = getAdminDfdlListService().getById(FLID);
+        AdminDfdlList adminDfdlList = getAdminDfdl(FLID);
         adminDfdlList.setArrival(1);
         adminDfdlList.setFrlt(date);
-        getAdminDfdlListService().updateById(adminDfdlList);
-/*        LambdaQueryWrapper<AdminAircraftPosition> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.eq(AdminAircraftPosition::getFlightSole, FLID);
-        AdminAircraftPosition adminAircraftPosition = getAdminAircraftPositionService().getOne(queryWrapper);
-        if (adminAircraftPosition != null) {
-            // 找到对应机位 更新数据
-            adminAircraftPosition.setDropTime(date);
-            adminAircraftPosition.setType("使用中");
-            AdminDfdlList adminDfdlList = getAdminDfdlListService().getById(FLID);
-            adminDfdlCopyToAirPosition(adminDfdlList, adminAircraftPosition);
-            getAdminAircraftPositionService().updateById(adminAircraftPosition);
-            // 更新计划表 设置已到达
-            adminDfdlList.setArrival(1);
-            updateAdminDfdl(adminDfdlList);
-            log.info("航班flid:{},到达本站:{}", adminDfdlList.getFlid(), adminDfdlList);
-        }*/
+        updateAdminDfdl(adminDfdlList);
+        if ("A".equals(adminDfdlList.getFlio())) {
+            if (adminDfdlList.getAfid() != null) {
+                AdminDfdlList adminDfdl = getAdminDfdl(String.valueOf(adminDfdlList.getAfid()).replace("null", ""));
+                if (adminDfdl == null) {
+                    return;
+                }
+                adminDfdl.setArrival(1);
+                adminDfdl.setFrlt(date);
+                updateAdminDfdl(adminDfdl);
+            }
+        } else {
+            log.error("出站飞机到达本站flid{},flio{}", adminDfdlList.getFlid(), adminDfdlList.getFlio());
+        }
     }
 }

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

@@ -34,7 +34,7 @@ public class CfceImfMsg extends ImfMsgAbstract {
             log.info("未找到要更换的航班!flid:{}", flid);
             return;
         }
-        AdminDfdlList entity = getAdminDfdlListService().getById(flid);
+        AdminDfdlList entity = getAdminDfdl(flid);
         log.info("航班更换前:{}", entity);
 
         String ffid = getStrVal("/MSG/DFLT/FFID");

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

@@ -44,17 +44,17 @@ public class DepeImfMsg extends ImfMsgAbstract {
         if (date != null) {
             // 已经起飞
             //depeHandleD(FLID, date);
-            AdminDfdlList byId = getAdminDfdlListService().getById(FLID);
+            AdminDfdlList byId = getAdminDfdl(FLID);
             if (byId != null) {
                 byId.setFrtt(date);
                 byId.setDepe(1);
-                getAdminDfdlListService().updateById(byId);
+                updateAdminDfdl(byId);
                 //判断起飞航班
                 if ("D".equals(byId.getFlio()) && byId.getAfid() != null) {
-                    AdminDfdlList adminDfdlList = new AdminDfdlList();
-                    adminDfdlList.setFlid(byId.getFlid());
+                    AdminDfdlList adminDfdlList = getAdminDfdl(String.valueOf(byId.getAfid()));
                     adminDfdlList.setDepe(1);
-                    getAdminDfdlListService().updateById(adminDfdlList);
+                    adminDfdlList.setFrtt(date);
+                    updateAdminDfdl(adminDfdlList);
                 }
             }
         }
@@ -62,6 +62,7 @@ public class DepeImfMsg extends ImfMsgAbstract {
 
     /**
      * 通过出站飞机查找进站计划删除对应的机位
+     *
      * @param FLID 出站飞机的flid
      * @param date
      */
@@ -72,15 +73,16 @@ public class DepeImfMsg extends ImfMsgAbstract {
         AdminDfdlList one = getAdminDfdlListService().getOne(adminDfkQueryWrapper);
         if (one == null) {
             log.info("计划中没有此航班的起飞航班是始发站航班,afid/flid:{}", FLID);
-            depeHandle(Integer.valueOf(FLID),date);
+            depeHandle(Integer.valueOf(FLID), date);
         } else {
             log.info("有起飞航班,{}", one);
-            depeHandle(one.getFlid(),date);
+            depeHandle(one.getFlid(), date);
         }
     }
 
     /**
      * flid对应机位起飞处理
+     *
      * @param FLID FLID
      * @param date
      */

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

@@ -32,13 +32,13 @@ public class DfdeImfMsg extends ImfMsgAbstract {
         }
         AdminDfdlList byId = getAdminDfdlListService().getById(FLID);
         byId.setDel(1);
-        getAdminDfdlListService().updateById(byId);
+        updateAdminDfdl(byId);
         log.info("航班已被软删除:{}", byId);
         //getAdminDfdlListService().removeById(FLID);
         // 删除缓存
-        if (getRedisUtil().hasKey(ImfMsgType.DFDL.getRedisKey() + FLID)) {
+/*        if (getRedisUtil().hasKey(ImfMsgType.DFDL.getRedisKey() + FLID)) {
             getRedisUtil().del(ImfMsgType.DFDL.getRedisKey() + FLID);
-        }
+        }*/
         // 删除机位
 /*        LambdaQueryWrapper<AdminAircraftPosition> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(AdminAircraftPosition::getFlightSole, FLID);

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

@@ -65,10 +65,10 @@ public class DfdlImfMsg extends ImfMsgAbstract {
                 //json转对象
                 AdminDfdlList adminDfdlList = objectMapper.readValue(json, AdminDfdlList.class);
                 //处理日期
-                setStlsDate(objectMapper, nodeStr, adminDfdlList);
+                setStlsStnd(objectMapper, nodeStr, adminDfdlList);
                 dfdlList.add(adminDfdlList);
                 //存入缓存 json格式
-                getRedisUtil().set(getMsgType().getRedisKey() + adminDfdlList.getFlid(), json);
+                //getRedisUtil().set(getMsgType().getRedisKey() + adminDfdlList.getFlid(), json);
             }
         } catch (XPathExpressionException e) {
             throw new RuntimeException(e);

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

@@ -39,7 +39,7 @@ public class DfieImfMsg extends ImfMsgAbstract {
         if (save) {
             // 计划缓存
             log.info("已添加航班计划:{}", adminDfdlList);
-            getRedisUtil().set(ImfMsgType.DFDL.getRedisKey() + adminDfdlList.getFlid(), json);
+            //getRedisUtil().set(ImfMsgType.DFDL.getRedisKey() + adminDfdlList.getFlid(), json);
         }
     }
 }

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

@@ -30,7 +30,7 @@ public class HbttImfMsg extends ImfMsgAbstract {
         String HBID = getStrVal("/MSG/DFLT/HBID");
         String NFLN = getStrVal("/MSG/DFLT/NFLN");
         String NAWC = getStrVal("/MSG/DFLT/NAWC");
-        AdminDfdlList oldPlan = getAdminDfdlListService().getById(FLID);
+        AdminDfdlList oldPlan = getAdminDfdl(FLID);
         if (oldPlan != null) {
             log.info("航班号变更前:{}", oldPlan);
             UpdateWrapper<AdminDfdlList> adminDfdlListUpdateWrapper = new UpdateWrapper<>();
@@ -38,14 +38,14 @@ public class HbttImfMsg extends ImfMsgAbstract {
             boolean update = getAdminDfdlListService().update(adminDfdlListUpdateWrapper);
             if (update) {
                 // 数据库更新成功,更新缓存
-                AdminDfdlList byId = getAdminDfdlListService().getById(FFID);
-                String adminDfdlJson = null;
+                AdminDfdlList byId = getAdminDfdl(FLID);
+/*                String adminDfdlJson = null;
                 try {
                     adminDfdlJson = getObjectMapper().writeValueAsString(byId);
                 } catch (JsonProcessingException e) {
                     throw new RuntimeException(e);
                 }
-                getRedisUtil().set(ImfMsgType.DFDL.getRedisKey() + FLID, adminDfdlJson);
+                getRedisUtil().set(ImfMsgType.DFDL.getRedisKey() + FLID, adminDfdlJson);*/
                 log.info("航班号变更后:{}", byId);
 
                 // 更新机位表

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

@@ -32,8 +32,7 @@ import java.io.IOException;
 import java.io.StringReader;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Map;
+import java.util.*;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -222,6 +221,24 @@ public abstract class ImfMsgAbstract<T extends ImfMsgType> implements ImfMsg {
     }
 
     /**
+     * 获取Stls消息中的多个STND标签的json
+     *
+     * @param str
+     * @return
+     */
+    public List<String> regStndStrs(String str) {
+        Pattern pattern = Pattern.compile(STND_REGEX);
+        Matcher matcher = pattern.matcher(str);
+        int matcher_start = 0;
+        Vector<String> res = new Vector<>();
+        while (matcher.find(matcher_start)) {
+            res.add(ConversionUtil.xmlToJson(matcher.group()));
+            matcher_start = matcher.end();
+        }
+        return res;
+    }
+
+    /**
      * 获取类型描述
      *
      * @return
@@ -326,18 +343,40 @@ public abstract class ImfMsgAbstract<T extends ImfMsgType> implements ImfMsg {
         airPosition.setRend(adminDfdlList.getRend());
     }
 
-    void setStlsDate(ObjectMapper objectMapper, String nodeStr, AdminDfdlList adminDfdlList) {
+    void setStlsStnd(ObjectMapper objectMapper, String nodeStr, AdminDfdlList adminDfdlList) {
         String gateStr = regStr(STND_REGEX, nodeStr);
-        if (Strings.isNullOrEmpty(gateStr)) {
+        List<String> stnds = regStndStrs(nodeStr);
+        if (stnds == null || stnds.size() == 0) {
             return;
         }
         String gateJson = ConversionUtil.xmlToJson(gateStr);
         Map map = null;
+        Date date = new Date();
+        ArrayList<Map> maps = new ArrayList<>();
+        String eendFlag = "";
         try {
-            map = objectMapper.readValue(gateJson, Map.class);
+            for (String stnd : stnds) {
+                maps.add(objectMapper.readValue(stnd, Map.class));
+            }
         } catch (JsonProcessingException e) {
             throw new RuntimeException(e);
         }
+        for (Map stndMap : maps) {
+            String eend = String.valueOf(stndMap.get("EEND")).replace("null", "");
+            if (Strings.isNullOrEmpty(eend)) {
+                continue;
+            }
+            Date cpDate = strToDate(eend);
+            if (cpDate.after(date)) {
+                map = stndMap;
+                // 只取第一个map
+                break;
+            }
+
+        }
+        if (map == null || map.isEmpty()) {
+            return;
+        }
         Object estr = map.get("ESTR");
         if (estr != null) {
             adminDfdlList.setEstr(strToDate(String.valueOf(estr).replace("null", "")));
@@ -355,10 +394,14 @@ public abstract class ImfMsgAbstract<T extends ImfMsgType> implements ImfMsg {
         if (rend != null) {
             adminDfdlList.setRend(strToDate(String.valueOf(rend).replace("null", "")));
         }
+        Object code = map.get("CODE");
+        if (code != null) {
+            adminDfdlList.setPositionCode(String.valueOf(code).replace("null", ""));
+        }
     }
 
-    void setStlsDate(AdminDfdlList adminDfdlList) {
-        setStlsDate(getObjectMapper(), getXmlStr(), adminDfdlList);
+    void setStlsStnd(AdminDfdlList adminDfdlList) {
+        setStlsStnd(getObjectMapper(), getXmlStr(), adminDfdlList);
     }
 
     Map getStlsDateMap(ObjectMapper objectMapper, String nodeStr) {
@@ -394,11 +437,11 @@ public abstract class ImfMsgAbstract<T extends ImfMsgType> implements ImfMsg {
             //有实际开始占用时间
             adminDfdlList.setArrival(1);
         }*/
-        log.info("更新计划flid:{},内容{}", adminDfdlList.getFlid(), adminDfdlList);
         boolean b = getAdminDfdlListService().updateById(adminDfdlList);
         if (b) {
+            log.info("更新计划flid:{},内容{}", adminDfdlList.getFlid(), adminDfdlList);
             //更新缓存
-            String key = ImfMsgType.DFDL.getRedisKey() + adminDfdlList.getFlid();
+/*            String key = ImfMsgType.DFDL.getRedisKey() + adminDfdlList.getFlid();
             if (getRedisUtil().hasKey(key)) {
                 try {
                     AdminDfdlList byId = getAdminDfdlListService().getById(adminDfdlList.getFlid());
@@ -406,8 +449,36 @@ public abstract class ImfMsgAbstract<T extends ImfMsgType> implements ImfMsg {
                 } catch (JsonProcessingException e) {
                     throw new RuntimeException(e);
                 }
-            }
+            }*/
         }
         return b;
     }
+
+    /**
+     * 获取计划
+     *
+     * @param FLID
+     * @return
+     */
+    protected AdminDfdlList getAdminDfdl(String FLID) {
+        AdminDfdlList dfdlList;
+/*        ObjectMapper objectMapper = getObjectMapper();
+        if (getRedisUtil().hasKey(ImfMsgType.DFDL.getRedisKey() + FLID)) {
+            String dfdlJson = (String) getRedisUtil().get(ImfMsgType.DFDL.getRedisKey() + FLID);
+            try {
+                dfdlList = objectMapper.readValue(dfdlJson, AdminDfdlList.class);
+            } catch (JsonProcessingException e) {
+                throw new RuntimeException(e);
+            }
+        } else {*/
+        // 缓存没有从表里面取
+        dfdlList = getAdminDfdlListService().getById(FLID);
+/*            try {
+                getRedisUtil().set(ImfMsgType.DFDL.getRedisKey() + FLID, objectMapper.writeValueAsString(dfdlList));
+            } catch (JsonProcessingException e) {
+                throw new RuntimeException(e);
+            }
+        }*/
+        return dfdlList;
+    }
 }

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

@@ -1,16 +1,12 @@
 package org.jeecg.modules.api.imf.msg;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.google.common.base.Strings;
 import lombok.extern.slf4j.Slf4j;
 import org.jeecg.modules.admin_aircraft_position.entity.AdminAircraftPosition;
 import org.jeecg.modules.admin_dfdl_list.entity.AdminDfdlList;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.Date;
-import java.util.Map;
 
 /**
  * @author 王葆权
@@ -39,259 +35,12 @@ public class StlsImfMsg extends ImfMsgAbstract {
             // 没有的计划
             return;
         }
-        // 计划时间
-        setStlsDate(dfdlList);
         // 机位
-        String CODE = getStrVal("/MSG/DFLT/STLS/STND/CODE");
-        dfdlList.setPositionCode(CODE);
+        //String CODE = getStrVal("/MSG/DFLT/STLS/STND/CODE");
+        //dfdlList.setPositionCode(CODE);
+        // 计划时间
+        setStlsStnd(dfdlList);
         updateAdminDfdl(dfdlList);
-        /*if ("A".equals(dfdlList.getFlio())) {
-            log.info("进站飞机");
-            if (Strings.isNullOrEmpty(CODE)) {
-                log.error("未获取到机位!(/MSG/DFLT/STLS/STND/CODE)");
-                return;
-            }
-            AdminAircraftPosition codeAircraftPosition = getApByCode(CODE);
-            if (codeAircraftPosition != null) {
-                log.info("查询到相应的机位:{}", CODE);
-                log.info("机位当前信息:{}", codeAircraftPosition);
-                // 有这个机位
-                AdminDfdlList stlsDfdlList = getAdminDfdlListService().getById(FLID);
-                if (stlsDfdlList == null) {
-                    // 没有计划
-                    log.error("此航班【{}】,没有计划", FLID);
-                    return;
-                }
-                log.info("查询到计划内容:{}", stlsDfdlList);
-                if (stlsDfdlList.getArrival() > 0) {
-                    //已经到站
-                    log.info("此航班【{}】,已经到站,判断是否出站", FLID);
-                    //判断是否出站
-                    if (stlsDfdlList.getRend() != null) {
-                        // 已经出站
-                        log.info("出站清空机位");
-                        getAdminAircraftPositionService().dept(codeAircraftPosition.getId());
-                        return;
-                    } else {
-                        log.info("没有出站");
-                        // 没出站
-                    }
-                }
-                //判断是否出站 防止arrival为0但是已经出战
-                if (stlsDfdlList.getRend() != null) {
-                    // 已经出站
-                    getAdminAircraftPositionService().dept(codeAircraftPosition.getId());
-                    stlsDfdlList.setArrival(1);
-                    updateAdminDfdl(stlsDfdlList);
-                    log.info("计划中此航班【{}】,已经出站,{}", FLID, stlsDfdlList);
-                    return;
-                }
-                //标识是否交换过数据
-                boolean isChangeFlag = false;
-                //判断是否更换了机位
-                LambdaQueryWrapper<AdminAircraftPosition> aircraftPositionByFlidQueryWrapper = new LambdaQueryWrapper<>();
-                aircraftPositionByFlidQueryWrapper.eq(AdminAircraftPosition::getFlightSole, FLID);
-                // 通过flid 查询到的机位
-                AdminAircraftPosition flidAircraftPosition = getAdminAircraftPositionService().getOne(aircraftPositionByFlidQueryWrapper);
-                if (flidAircraftPosition != null) {
-                    log.info("此航班【{}】在机位表中被发现", FLID);
-                    //FLID匹配到的机位号 和 进来的机位号  不是  一个   换机位  清空原机位信息
-                    if (!flidAircraftPosition.getAircraftPositionNum().equals(CODE)) {
-                        log.info("此航班【{}】与对应机位所属数据不匹配,进行交换机位数据操作", FLID);
-                        //表中有但不是一个机位
-                        //给新匹配到的机位上附上信息
-                        //codeAircraftPosition.setAircraftNum(flidAircraftPosition.getAircraftNum());
-                        //codeAircraftPosition.setType(flidAircraftPosition.getType());
-                        //codeAircraftPosition.setDropTime(flidAircraftPosition.getDropTime());
-                        //codeAircraftPosition.setFlightNum(flidAircraftPosition.getFlightNum());
-                        //codeAircraftPosition.setFlightAfid(flidAircraftPosition.getFlightAfid());
-                        //codeAircraftPosition.setFlightSole(FLID);
-                        //清空旧的机位
-                        getAdminAircraftPositionService().dept(flidAircraftPosition.getId());
-                        //isChangeFlag = true;
-                    } else {
-                        // 是一个机位
-                    }
-                }
-
-                // 判断是否已经占用机位
-                Map map = getStlsDateMap(getXmlStr());
-                Object rstr = map.get("RSTR");
-
-                if (rstr != null) {
-                    log.info("判断flid:{}是否已经占用机位", stlsDfdlList.getFlid());
-                    // 有开始占用时间,证明到站了
-                    Object rend = map.get("REND");
-                    if (rend != null) {
-                        log.info("flid:{},有实际结束占用时间{}", stlsDfdlList.getFlid(), String.valueOf(rend).replace("null", ""));
-                        // 有结束占用机位的时间
-                        Date rendDate = strToDate(String.valueOf(rend).replace("null", ""));
-                        if (rendDate.before(now)) {
-                            log.info("flid:{},有实际结束占用时间{}, 且小于当前时间, 清空机位", stlsDfdlList.getFlid(), String.valueOf(rend).replace("null", ""));
-                            //不在占用时间范围内,结束占用机位,清空机位后续不做处理
-                            getAdminAircraftPositionService().dept(codeAircraftPosition.getId());
-                            stlsDfdlList.setArrival(1);
-                            updateAdminDfdl(stlsDfdlList);
-                            //结束
-                            return;
-                        } else {
-                            // 在占用时间范围内,到站
-                            log.info("flid:{},有实际结束占用时间{},且大于当前时间", stlsDfdlList.getFlid(), rendDate);
-                        }
-                    } else {
-                        // 没有结束占用时间,到站
-                        log.info("flid:{},没有实际结束占用时间,判断是否有实际开始占用时间", stlsDfdlList.getFlid());
-                        // 判断到站时间是否在当前时间之前,避免脏数据
-                        Date rstrDate = strToDate(String.valueOf(rstr).replace("null", ""));
-                        if (rstrDate != null) {
-                            log.info("flid:{},有实际开始占用时间{},应占用机位", rstrDate, stlsDfdlList.getFlid());
-                            setUsePosition(codeAircraftPosition, stlsDfdlList, isChangeFlag);
-                            return;
-                        }
-                    }
-                } else {
-                    // 没有实际占用时间
-                    log.info("flid:{},没有实际占用时间", stlsDfdlList.getFlid());
-                }
-
-                // 走到此处表名stls中的航班没有实际占用,矫正机位上的航班是否占用
-                if (flidAircraftPosition == null) {
-                    log.info("此航班【{}】未在机位表中被发现,判断机位上航班【{}】是否结束占用没结束就不占用", FLID, codeAircraftPosition.getFlightSole());
-                    // 在机位表中没有找到航班对应的机位, 判断机位上航班是否结束占用
-                    if (codeAircraftPosition.getFlightSole() != null && !FLID.equals(codeAircraftPosition.getFlightSole())) {
-                        // 不是一个航班,判断谁应该在这段时间占用
-                        //机位上的航班计划
-                        AdminDfdlList codeDfdlList = getAdminDfdlListService().getById(codeAircraftPosition.getFlightSole());
-                        if (codeDfdlList != null) {
-                            log.info("机位【{}】上的航班flid:{}在计划中", CODE, codeDfdlList.getFlid());
-                            if (codeDfdlList.getArrival() > 0) {
-                                log.info("当前机位【{}】的航班到站FLID:{}", CODE, codeDfdlList.getFlid());
-                                // 已经到站, 判断是否结束占用
-                                if (isArrival(CODE, now, codeDfdlList)) {
-                                    // 需要占用
-                                    if ("空置".equals(codeAircraftPosition.getType())) {
-                                        // 改为占用
-                                        log.info("空置状态,改为占用");
-                                        setUsePosition(codeAircraftPosition, codeDfdlList, isChangeFlag);
-                                    }
-                                    return;
-                                } else {
-                                    //不需要占用,先置空,走到此处表明上一条数据没到站,新来的数据也没到站(但是计划里面设置到站了数据异常!),暂时不反回先把新来的数据flid放到机位上
-                                    if ("使用中".equals(codeAircraftPosition.getType())) {
-                                        // 改为空置
-                                        log.info("使用状态改为空置");
-                                        getAdminAircraftPositionService().dept(codeAircraftPosition.getId());
-                                    }
-                                }
-                            } else {
-                                log.info("当前机位【{}】的航班未到站FLID:{},状态:{}", CODE, codeDfdlList.getFlid(), codeAircraftPosition.getType());
-                                // 机位上的数据未到站
-                                // 机位上的航班不需要占用机位就返回
-                                if (!isArrival(CODE, now, codeDfdlList)) {
-                                    log.info("不需要占用");
-                                    if ("使用中".equals(codeAircraftPosition.getType())) {
-                                        log.info("使用状态改为空置");
-                                        getAdminAircraftPositionService().dept(codeAircraftPosition.getId());
-                                        // 更新机位对应的航班
-                                        AdminAircraftPosition adminAircraftPosition = new AdminAircraftPosition();
-                                        adminAircraftPosition.setId(codeAircraftPosition.getId());
-                                        adminAircraftPosition.setFlightSole(FLID);
-                                        getAdminAircraftPositionService().updateById(adminAircraftPosition);
-                                    }
-                                    return;
-                                } else {
-                                    log.info("需要占用");
-                                    if ("空置".equals(codeAircraftPosition.getType())) {
-                                        log.info("空置状态,改为占用");
-                                        // 改为占用
-                                        setUsePosition(codeAircraftPosition, codeDfdlList, isChangeFlag);
-                                    }
-                                    return;
-                                }
-                            }
-
-                        } else {
-                            log.info("机位【{}】上的航班flid:{}不在计划中", CODE, codeAircraftPosition.getFlightSole());
-                            // 没有此计划
-                            log.error("判断机位冲突时发现此航班【{}】,没有计划", flidAircraftPosition.getFlightSole());
-                        }
-                    }
-                }
-
-                // 更新数据
-                // 更新机位对应的航班
-                codeAircraftPosition.setFlightSole(FLID);
-                getAdminAircraftPositionService().updateById(codeAircraftPosition);
-                // 更新计划
-                updateAdminDfdl(stlsDfdlList);
-                log.info("最终更新计划数据:{}", stlsDfdlList);
-                log.info("最终更新机位数据:{}", codeAircraftPosition);
-            } else {
-                log.error("未找到对应机位【{}】", CODE);
-            }
-        } else if ("D".equals(dfdlList.getFlio())) {
-            // 出站飞机
-            // 判断是否已经离开机位
-            log.info("是出站飞机");
-            Map map = null;
-            try {
-                map = getStlsDateMap(getXmlStr());
-            } catch (Exception e) {
-                log.error("此出站消息没有时间标签");
-                e.printStackTrace();
-                return;
-            }
-            if (map == null || map.isEmpty()) {
-                return;
-            }
-            Object rend = map.get("REND");
-            if (rend == null) {
-                log.info("没有实际结束占用时间,判断是否是始发站飞机");
-                // 没有实际结束占用时间
-                Object rstr = map.get("RSTR");
-                if (rstr == null) {
-                    // 没有实际开始占用时间,没占用
-                    log.info("没有实际开始占用时间,不做操作");
-                } else {
-                    log.info("有实际开始占用时间,判断是否有Afid");
-                    // 有实际开始占用时间证明占用了
-                    if (dfdlList.getAfid() == null) {
-                        log.info("没有Afid,是始发站飞机");
-                        // 没有进站的关联id,证明是始发站id
-                        AdminAircraftPosition codeAircraftPosition = getApByCode(CODE);
-                        if (codeAircraftPosition != null) {
-                            log.info("有对应机位,占用机位:{}",CODE);
-                            // 占用机位
-                            setUsePosition(codeAircraftPosition, dfdlList, false);
-                        } else {
-                            log.info("未找到机位:{}",CODE);
-                        }
-                    } else {
-                        log.info("有Afid:{}", dfdlList.getAfid());
-                    }
-                }
-            } else {
-                log.info("有实际结束占用时间");
-                // 有实际结束占用时间
-                if (dfdlList.getAfid() == null) {
-                    // 始发站飞机
-                    Date rendDate = strToDate(String.valueOf(rend).replace("null", ""));
-                    if (rendDate != null && rendDate.before(now)) {
-                        // 离站了
-                        DepeImfMsg depeImfMsg = new DepeImfMsg(getXmlStr());
-                        depeImfMsg.depeHandle(dfdlList.getFlid(), rendDate);
-                    }
-                } else {
-                    Date rendDate = strToDate(String.valueOf(rend).replace("null", ""));
-                    if (rendDate != null && rendDate.before(now)) {
-                        // 离站了
-                        DepeImfMsg depeImfMsg = new DepeImfMsg(getXmlStr());
-                        depeImfMsg.depeHandleD(String.valueOf(dfdlList.getFlid()).replace("null", ""), rendDate);
-                    }
-                }
-
-            }
-        }*/
     }
 
     /**
@@ -320,7 +69,7 @@ public class StlsImfMsg extends ImfMsgAbstract {
         // 到站
         codeAircraftPosition.setType("使用中");
         dfdlList.setArrival(1);
-        setStlsDate(dfdlList);
+        setStlsStnd(dfdlList);
         if (!isChangeFlag) {
             log.info("flid:{},copy", dfdlList.getFlid());
             adminDfdlCopyToAirPosition(dfdlList, codeAircraftPosition);
@@ -376,37 +125,9 @@ public class StlsImfMsg extends ImfMsgAbstract {
         return false;
     }
 
-    /**
-     * 获取计划
-     *
-     * @param FLID
-     * @return
-     */
-    private AdminDfdlList getAdminDfdl(String FLID) {
-        AdminDfdlList dfdlList;
-        ObjectMapper objectMapper = getObjectMapper();
-        if (getRedisUtil().hasKey(ImfMsgType.DFDL.getRedisKey() + FLID)) {
-            String dfdlJson = (String) getRedisUtil().get(ImfMsgType.DFDL.getRedisKey() + FLID);
-            try {
-                dfdlList = objectMapper.readValue(dfdlJson, AdminDfdlList.class);
-            } catch (JsonProcessingException e) {
-                throw new RuntimeException(e);
-            }
-        } else {
-            // 缓存没有从表里面取
-            dfdlList = getAdminDfdlListService().getById(FLID);
-            try {
-                getRedisUtil().set(ImfMsgType.DFDL.getRedisKey() + FLID, objectMapper.writeValueAsString(dfdlList));
-            } catch (JsonProcessingException e) {
-                throw new RuntimeException(e);
-            }
-        }
-        return dfdlList;
-    }
-
 
     private void updateAdminDfdlTime(AdminDfdlList dfdlList) {
-        setStlsDate(dfdlList);
+        setStlsStnd(dfdlList);
         updateAdminDfdl(dfdlList);
     }
 }