Browse Source

:lock: 增加事务,修改抽象类以及接口结构,调整stls部分处理逻辑

Twelve615 1 year ago
parent
commit
16a8615565

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

@@ -67,7 +67,7 @@ public class ImfMqListener extends BaseRabbiMqHandler<Object> {
                         log.info(">>>>>>>>>>>>>>>>>>>>开始处理消息<<<<<<<<<<<<<<<<<<<<");
                         log.info("获取到消息。消息类型:{},消息内容:{}", imfMsgObject.getTypeName(), xml);
                         // 处理消息
-                        imfMsgObject.handle();
+                        imfMsgObject.process();
                         log.info(">>>>>>>>>>>>>>>>>>>>结束处理消息<<<<<<<<<<<<<<<<<<<<");
                     }
                 }

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

@@ -5,6 +5,7 @@ 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;
 
 /**
  * @author 王葆权
@@ -21,6 +22,7 @@ public class DfdeImfMsg extends ImfMsgAbstract {
     }
 
     @Override
+    @Transactional
     public void handle() {
         String FLID = getStrVal("/MSG/DFLT/FLID");
         //String FFID = getStrVal("/MSG/DFLT/FFID");

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

@@ -5,6 +5,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 import lombok.extern.slf4j.Slf4j;
 import org.jeecg.modules.admin_dfdl_list.entity.AdminDfdlList;
 import org.jeecg.modules.utils.ConversionUtil;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * @author 王葆权
@@ -21,6 +22,7 @@ public class DfieImfMsg extends ImfMsgAbstract {
     }
 
     @Override
+    @Transactional
     public void handle() {
         // 添加航班计划信息
         String content = getContent();

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

@@ -7,6 +7,7 @@ import com.fasterxml.jackson.core.JsonProcessingException;
 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;
 
 /**
  * @author 王葆权
@@ -22,6 +23,7 @@ public class HbttImfMsg extends ImfMsgAbstract {
     }
 
     @Override
+    @Transactional
     public void handle() {
         String FLID = getStrVal("/MSG/DFLT/FLID");
         String FFID = getStrVal("/MSG/DFLT/FFID");

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

@@ -9,6 +9,7 @@ import com.google.common.base.Strings;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 import org.jeecg.boot.starter.rabbitmq.client.RabbitMqClient;
+import org.jeecg.common.base.BaseMap;
 import org.jeecg.common.util.RedisUtil;
 import org.jeecg.common.util.SpringContextUtils;
 import org.jeecg.modules.admin_aircraft_position.entity.AdminAircraftPosition;
@@ -106,12 +107,23 @@ abstract class ImfMsgAbstract<T extends ImfMsgType> implements ImfMsg {
     }
 
     @Override
-    public void process() {
+    public synchronized void process() {
         log.info("【{}】开始处理", getTypeDescription());
+        if (msgHandlerEvent) {
+            //转发消息到消息总栈测试, 避免本地测试消费消息
+            BaseMap params = new BaseMap();
+            params.put("xml", getXmlStr());
+            rabbitMqClient.sendMessage("Test3HandlerEvent", params);
+        }
         handle();
         log.info("【{}】结束处理", getTypeDescription());
     }
 
+    /**
+     * 消息处理逻辑
+     */
+    abstract protected void handle();
+
     @Override
     public synchronized Document xmlStrToDoc(String xml) {
         Document doc = null;

+ 0 - 5
airport/jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/imf/msg/ImfMsgOperation.java

@@ -46,9 +46,4 @@ public interface ImfMsgOperation {
      * 消息的一些流程上的处理
      */
     void process();
-
-    /**
-     * 消息处理逻辑
-     */
-    void handle();
 }

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

@@ -7,6 +7,7 @@ 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;
@@ -33,6 +34,7 @@ public class StlsImfMsg extends ImfMsgAbstract {
      * 3.同机位不同航班不同占用时间
      */
     @Override
+    @Transactional
     public void handle() {
         // 根据动态更新航班对应的机位
         String FLID = getStrVal("/MSG/DFLT/FLID");
@@ -74,15 +76,14 @@ public class StlsImfMsg extends ImfMsgAbstract {
                         // 已经出站
                         log.info("出站清空机位");
                         getAdminAircraftPositionService().dept(FLID);
-                        //return;
+                        return;
                     } else {
                         log.info("没有出站");
                         // 没出站
                     }
-                    return;
                 }
                 //判断是否出站 防止arrival为0但是已经出战
-                if (adminDfdlList.getRend() != null && adminDfdlList.getRend().before(now)) {
+                if (adminDfdlList.getRend() != null) {
                     // 已经出站
                     getAdminAircraftPositionService().dept(FLID);
                     adminDfdlList.setArrival(1);