Browse Source

[修改] 按照修改文档进行修改

zishang 4 days ago
parent
commit
a3dc65877a

+ 4 - 0
src/main/java/com/dc/datachange/communication/controller/CommunicationController.java

@@ -85,8 +85,12 @@ public class CommunicationController {
         Map<Integer, InterferPlatform> interferPlatformMap = dataManager.getMap(InterferPlatform.class);
         Map<Integer, RadarPlatform> radarPlatformMap = dataManager.getMap(RadarPlatform.class);
         if(interferPlatformMap.containsKey(id)){
+            interferPlatformMap.get(id).getParams().setTeamID(Integer.valueOf(interferPlatformMap.get(id).getCollaborationNumber()));
+            interferPlatformMap.get(id).getParams().setGroupID(interferPlatformMap.get(id).getGroupId());
             return R.ok().put("data",interferPlatformMap.get(id).getParams());
         }else if(radarPlatformMap.containsKey(id)){
+            radarPlatformMap.get(id).getParams().setTeamID(Integer.valueOf(radarPlatformMap.get(id).getCollaborationNumber()));
+            radarPlatformMap.get(id).getParams().setGroupID(radarPlatformMap.get(id).getGroupId());
             return R.ok().put("data",radarPlatformMap.get(id).getParams());
         }else {
             return R.error("平台Id不存在");

+ 1 - 0
src/main/java/com/dc/datachange/core/common/MsgConstants.java

@@ -19,6 +19,7 @@ public class MsgConstants {
     public static final String COMPREHEN_INTELL="7";
     public static final String HEART_BEAT="8";
     public static final String GROUP_PARAMS_CTRL= "9";
+    public static final String EXCHANGE_GROUP_PARAMS_CTRL= "90";
     public static final String GROUP_PARAMS_INI= "10";
     public static final String GROUP_PARAMS_REQ = "101";
     public static final String EQUIP_STATUS_MSG = "120";

+ 1 - 1
src/main/java/com/dc/datachange/core/entity/message/sendMessage/GroupParamsCtrl.java

@@ -17,7 +17,7 @@ import org.springframework.stereotype.Component;
 import java.util.List;
 
 public class GroupParamsCtrl extends SendMessage implements SelfMsg{
-    private static final String subject = MsgConstants.GROUP_PARAMS_CTRL;
+    private static final String subject = MsgConstants.EXCHANGE_GROUP_PARAMS_CTRL;
     private static final String from = PlatConstants.EXCHANGE_PLATFORM;
     private final PlatformParams params;
 

+ 2 - 10
src/main/java/com/dc/datachange/core/entity/message/sendMessage/GroupParamsInitial.java

@@ -40,18 +40,10 @@ public class GroupParamsInitial extends SendMessage implements ReactiveMsg{
         stringBuilder.append(interferPlatforms.size()).append(" ")
                 .append(radarPlatforms.size()).append(" ");
         for(InterferPlatform interferPlatform: interferPlatforms){
-            stringBuilder.append("\n").append(MessageUtils.GetLineFromPlatFrom(interferPlatform))
-                    .append(" ")
-                    .append(interferPlatform.getGroupId() != null ? interferPlatform.getGroupId() : 0)
-                    .append(" ")
-                    .append(interferPlatform.getCollaborationNumber());
+            stringBuilder.append("\n").append(MessageUtils.GetLineFromPlatFrom(interferPlatform, interferPlatform.getCollaborationNumber()));
         }
         for(RadarPlatform radarPlatform: radarPlatforms){
-            stringBuilder.append("\n").append(MessageUtils.GetLineFromPlatFrom(radarPlatform))
-                    .append(" ")
-                    .append(radarPlatform.getGroupId() != null ? radarPlatform.getGroupId() : 0)
-                    .append(" ")
-                    .append(radarPlatform.getCollaborationNumber());
+            stringBuilder.append("\n").append(MessageUtils.GetLineFromPlatFrom(radarPlatform, radarPlatform.getCollaborationNumber()));
         }
         message.text=stringBuilder.toString();
         return message;

+ 3 - 1
src/main/java/com/dc/datachange/core/entity/platformInfo/PlatformParams.java

@@ -44,7 +44,9 @@ public class PlatformParams {
         return id + " " +
                 isOnline + " " +
                 status + " " +
-                linkModel;
+                linkModel + " " +
+                groupID + " " +
+                teamID;
     }
 
     public SelfMsg toMessage() {

+ 60 - 17
src/main/java/com/dc/datachange/core/exchange/strategy/GeneralDataStrategy.java

@@ -12,6 +12,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.util.Map;
+import java.util.Objects;
 
 @Component
 @Slf4j
@@ -30,27 +31,69 @@ public abstract class GeneralDataStrategy implements MessageStrategy {
 
             Map<Integer, InterferPlatform> InterferMap = dataManager.getMap(InterferPlatform.class);
             Map<Integer, RadarPlatform> radarMap = dataManager.getMap(RadarPlatform.class);
-            if(InterferMap.containsKey(from) && InterferMap.containsKey(to)){
-                clazz= InterferPlatform.class;
-            }else if(radarMap.containsKey(from) && radarMap.containsKey(to)){
-                clazz = RadarPlatform.class;
+
+            boolean interferFlag = false;
+            boolean radarFlag = false;
+
+            if(InterferMap.get(from) != null){
+                interferFlag = "合作条件".equals(InterferMap.get(from).getCooperationStatus());
             }
-            else {
-                return false;
+            if(radarMap.get(from) != null){
+                radarFlag = "合作条件".equals(radarMap.get(from).getCooperationStatus());
             }
+            if(interferFlag || radarFlag){
+                Platform fromPlat = null;
+                Platform toPlat = null;
 
-            Platform fromPlat = dataManager.getData(clazz,from);
-            Platform toPlat = dataManager.getData(clazz,to);
+                if (InterferMap.containsKey(from)) {
+                    fromPlat = dataManager.getData(InterferPlatform.class,from);
+                } else if (radarMap.containsKey(from)) {
+                    fromPlat = dataManager.getData(RadarPlatform.class,from);
+                }
 
-            if(fromPlat != null && toPlat != null
-                    && fromPlat.isGrouped() && toPlat.isGrouped()
-                    && fromPlat.getGroupId().equals(toPlat.getGroupId())){
-                NetworkGroup networkGroup = dataManager.getData(NetworkGroup.class, fromPlat.getGroupId());
-                return networkGroup.addHistoryMsg(message);
-            }
-            else {
-                log.error("消息不合法"+message);
-                return false;
+                if (InterferMap.containsKey(to)) {
+                    toPlat = dataManager.getData(InterferPlatform.class,to);
+                } else if (radarMap.containsKey(to)) {
+                    toPlat = dataManager.getData(RadarPlatform.class,to);
+                }
+
+                if(fromPlat != null && toPlat != null
+                        && fromPlat.isGrouped() && toPlat.isGrouped()
+                        && fromPlat.getGroupId().equals(toPlat.getGroupId())){
+                    NetworkGroup networkGroup = dataManager.getData(NetworkGroup.class, fromPlat.getGroupId());
+                    return networkGroup.addHistoryMsg(message);
+                }
+                else {
+                    log.error("消息不合法"+message);
+                    return false;
+                }
+            }else{
+                if(InterferMap.containsKey(from) && InterferMap.containsKey(to)){
+                    clazz= InterferPlatform.class;
+                }else if(radarMap.containsKey(from) && radarMap.containsKey(to)){
+                    clazz = RadarPlatform.class;
+                }
+                else {
+                    return false;
+                }
+
+                Platform fromPlat = dataManager.getData(clazz,from);
+                Platform toPlat = dataManager.getData(clazz,to);
+
+                if(fromPlat != null && toPlat != null
+                        && fromPlat.isGrouped() && toPlat.isGrouped()
+                        && fromPlat.getGroupId().equals(toPlat.getGroupId())){
+                    NetworkGroup networkGroup = dataManager.getData(NetworkGroup.class, fromPlat.getGroupId());
+                    return networkGroup.addHistoryMsg(message);
+                } else if (fromPlat != null && toPlat != null && Objects.equals(fromPlat.getParams().getTeamID(), toPlat.getParams().getTeamID())) {
+                    NetworkGroup networkGroup = dataManager.getData(NetworkGroup.class, fromPlat.getGroupId());
+                    if(message.getFrom().equals(networkGroup.getMainStation()) && message.getTo().equals(networkGroup.getMainStation())){
+                        return networkGroup.addHistoryMsg(message);
+                    }
+                } else {
+                    log.error("消息不合法"+message);
+                    return false;
+                }
             }
         }
         return false;

+ 3 - 1
src/main/java/com/dc/datachange/utils/MessageUtils.java

@@ -25,8 +25,10 @@ public class MessageUtils {
         }
         return stringBuilder.toString();
     }
-    public static String GetLineFromPlatFrom(Platform platform){
+    public static String GetLineFromPlatFrom(Platform platform, String teamID){
         PlatformParams params =platform.getParams();
+        params.setGroupID(platform.getGroupId());
+        params.setTeamID(Integer.valueOf(teamID));
         return params.toString();
     }
 

+ 8 - 5
src/main/resources/application.yml

@@ -1,11 +1,13 @@
-# 应用名称
+#应用名称
 spring:
   application:
     name: dataChange
   cloud:
     nacos:
       discovery:
-        server-addr: 10.203.74.57:8848
+        ip: 10.194.92.242
+#        server-addr: 10.203.95.221:8848
+        server-addr: 47.92.123.216:8848
         namespace: fire
 feign:
   client:
@@ -15,7 +17,7 @@ feign:
         readTimeout: 100000 # 读取超时时间,单位为毫秒
 # 应用服务 WEB 访问端口
 server:
-  port: 8081
+  port: 8089
   #  定时组件的配置,一般不改动
 
 remote:
@@ -26,8 +28,9 @@ dds:
   #  不知道
     DCPSBit: 0
   #  DDS实例位置
-    local: false
-    DCPSConfigFile: D:\rocket\OpenDDS-3.16\java\tests\messenger\tcp.ini
+    local: true
+#    DCPSConfigFile: D:\rocket\OpenDDS-3.16\java\tests\messenger\tcp.ini
+    DCPSConfigFile: C:/software/OpenDDS-3.16/java/tests/messenger/tcp.ini
     DCPSDefaultDiscovery: DEFAULT_REPO
     DCPSInfoRepo: corbaloc:iiop:10.195.127.44:12345/DCPSInfoRepo
     isReliable: false