diff --git a/casic-alarm/src/main/java/com/casic/missiles/socket/service/IWebSocketService.java b/casic-alarm/src/main/java/com/casic/missiles/socket/service/IWebSocketService.java
deleted file mode 100644
index 87d5203..0000000
--- a/casic-alarm/src/main/java/com/casic/missiles/socket/service/IWebSocketService.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.casic.missiles.socket.service;
-
-/**
- * @author a203
- */
-public interface IWebSocketService {
- /**
- * WebSocket数据通信接口
- *
- * @param message
- */
- void sendMessage(String message);
-}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/socket/service/IWebSocketService.java b/casic-alarm/src/main/java/com/casic/missiles/socket/service/IWebSocketService.java
deleted file mode 100644
index 87d5203..0000000
--- a/casic-alarm/src/main/java/com/casic/missiles/socket/service/IWebSocketService.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.casic.missiles.socket.service;
-
-/**
- * @author a203
- */
-public interface IWebSocketService {
- /**
- * WebSocket数据通信接口
- *
- * @param message
- */
- void sendMessage(String message);
-}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/socket/service/impl/WebSocketServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/socket/service/impl/WebSocketServiceImpl.java
deleted file mode 100644
index a2fc650..0000000
--- a/casic-alarm/src/main/java/com/casic/missiles/socket/service/impl/WebSocketServiceImpl.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.casic.missiles.socket.service.impl;
-
-import com.casic.missiles.socket.AlarmWebSocketServer;
-import com.casic.missiles.socket.service.IWebSocketService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-
-/**
- * @author a203
- */
-@Slf4j
-@Service
-public class WebSocketServiceImpl implements IWebSocketService {
-
- private final AlarmWebSocketServer socketServer;
-
- public WebSocketServiceImpl() {
- socketServer = new AlarmWebSocketServer();
- }
-
- @Override
- public void sendMessage(String msg) {
- //将消息发送给客户端
-
- }
-}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/socket/service/IWebSocketService.java b/casic-alarm/src/main/java/com/casic/missiles/socket/service/IWebSocketService.java
deleted file mode 100644
index 87d5203..0000000
--- a/casic-alarm/src/main/java/com/casic/missiles/socket/service/IWebSocketService.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.casic.missiles.socket.service;
-
-/**
- * @author a203
- */
-public interface IWebSocketService {
- /**
- * WebSocket数据通信接口
- *
- * @param message
- */
- void sendMessage(String message);
-}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/socket/service/impl/WebSocketServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/socket/service/impl/WebSocketServiceImpl.java
deleted file mode 100644
index a2fc650..0000000
--- a/casic-alarm/src/main/java/com/casic/missiles/socket/service/impl/WebSocketServiceImpl.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.casic.missiles.socket.service.impl;
-
-import com.casic.missiles.socket.AlarmWebSocketServer;
-import com.casic.missiles.socket.service.IWebSocketService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-
-/**
- * @author a203
- */
-@Slf4j
-@Service
-public class WebSocketServiceImpl implements IWebSocketService {
-
- private final AlarmWebSocketServer socketServer;
-
- public WebSocketServiceImpl() {
- socketServer = new AlarmWebSocketServer();
- }
-
- @Override
- public void sendMessage(String msg) {
- //将消息发送给客户端
-
- }
-}
diff --git a/casic-server-support/pom.xml b/casic-server-support/pom.xml
index b1af713..33a4f3f 100644
--- a/casic-server-support/pom.xml
+++ b/casic-server-support/pom.xml
@@ -35,6 +35,16 @@
compile
+
+ com.squareup.okhttp3
+ okhttp
+ 4.9.1
+
+
+ com.alibaba
+ fastjson
+ ${fastjson.version}
+
diff --git a/casic-alarm/src/main/java/com/casic/missiles/socket/service/IWebSocketService.java b/casic-alarm/src/main/java/com/casic/missiles/socket/service/IWebSocketService.java
deleted file mode 100644
index 87d5203..0000000
--- a/casic-alarm/src/main/java/com/casic/missiles/socket/service/IWebSocketService.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.casic.missiles.socket.service;
-
-/**
- * @author a203
- */
-public interface IWebSocketService {
- /**
- * WebSocket数据通信接口
- *
- * @param message
- */
- void sendMessage(String message);
-}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/socket/service/impl/WebSocketServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/socket/service/impl/WebSocketServiceImpl.java
deleted file mode 100644
index a2fc650..0000000
--- a/casic-alarm/src/main/java/com/casic/missiles/socket/service/impl/WebSocketServiceImpl.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.casic.missiles.socket.service.impl;
-
-import com.casic.missiles.socket.AlarmWebSocketServer;
-import com.casic.missiles.socket.service.IWebSocketService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-
-/**
- * @author a203
- */
-@Slf4j
-@Service
-public class WebSocketServiceImpl implements IWebSocketService {
-
- private final AlarmWebSocketServer socketServer;
-
- public WebSocketServiceImpl() {
- socketServer = new AlarmWebSocketServer();
- }
-
- @Override
- public void sendMessage(String msg) {
- //将消息发送给客户端
-
- }
-}
diff --git a/casic-server-support/pom.xml b/casic-server-support/pom.xml
index b1af713..33a4f3f 100644
--- a/casic-server-support/pom.xml
+++ b/casic-server-support/pom.xml
@@ -35,6 +35,16 @@
compile
+
+ com.squareup.okhttp3
+ okhttp
+ 4.9.1
+
+
+ com.alibaba
+ fastjson
+ ${fastjson.version}
+
diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AisLog.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AisLog.java
index a2e4208..41d716b 100644
--- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AisLog.java
+++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AisLog.java
@@ -15,12 +15,24 @@
public class AisLog extends Model {
private static final long serialVersionUID = 1L;
- @TableId(value = "ID", type = IdType.AUTO)
- private Integer id;
+ @TableId(value = "ID", type = IdType.ASSIGN_ID)
+ private Long id;
+
+ /**
+ * ais请求参数
+ */
+ @TableField("REQUEST_PARAM")
+ private String requestParam;
+
+ /**
+ * ais返回数据
+ */
+ @TableField("RESPONSE")
+ private String response;
/**
* 调用第三方ais接口时间
*/
- @TableField("TIME")
- private String time;
+ @TableField("REQUEST_TIME")
+ private String requestTime;
}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/socket/service/IWebSocketService.java b/casic-alarm/src/main/java/com/casic/missiles/socket/service/IWebSocketService.java
deleted file mode 100644
index 87d5203..0000000
--- a/casic-alarm/src/main/java/com/casic/missiles/socket/service/IWebSocketService.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.casic.missiles.socket.service;
-
-/**
- * @author a203
- */
-public interface IWebSocketService {
- /**
- * WebSocket数据通信接口
- *
- * @param message
- */
- void sendMessage(String message);
-}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/socket/service/impl/WebSocketServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/socket/service/impl/WebSocketServiceImpl.java
deleted file mode 100644
index a2fc650..0000000
--- a/casic-alarm/src/main/java/com/casic/missiles/socket/service/impl/WebSocketServiceImpl.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.casic.missiles.socket.service.impl;
-
-import com.casic.missiles.socket.AlarmWebSocketServer;
-import com.casic.missiles.socket.service.IWebSocketService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-
-/**
- * @author a203
- */
-@Slf4j
-@Service
-public class WebSocketServiceImpl implements IWebSocketService {
-
- private final AlarmWebSocketServer socketServer;
-
- public WebSocketServiceImpl() {
- socketServer = new AlarmWebSocketServer();
- }
-
- @Override
- public void sendMessage(String msg) {
- //将消息发送给客户端
-
- }
-}
diff --git a/casic-server-support/pom.xml b/casic-server-support/pom.xml
index b1af713..33a4f3f 100644
--- a/casic-server-support/pom.xml
+++ b/casic-server-support/pom.xml
@@ -35,6 +35,16 @@
compile
+
+ com.squareup.okhttp3
+ okhttp
+ 4.9.1
+
+
+ com.alibaba
+ fastjson
+ ${fastjson.version}
+
diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AisLog.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AisLog.java
index a2e4208..41d716b 100644
--- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AisLog.java
+++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AisLog.java
@@ -15,12 +15,24 @@
public class AisLog extends Model {
private static final long serialVersionUID = 1L;
- @TableId(value = "ID", type = IdType.AUTO)
- private Integer id;
+ @TableId(value = "ID", type = IdType.ASSIGN_ID)
+ private Long id;
+
+ /**
+ * ais请求参数
+ */
+ @TableField("REQUEST_PARAM")
+ private String requestParam;
+
+ /**
+ * ais返回数据
+ */
+ @TableField("RESPONSE")
+ private String response;
/**
* 调用第三方ais接口时间
*/
- @TableField("TIME")
- private String time;
+ @TableField("REQUEST_TIME")
+ private String requestTime;
}
diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/Constant.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/Constant.java
new file mode 100644
index 0000000..2fea300
--- /dev/null
+++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/Constant.java
@@ -0,0 +1,8 @@
+package com.casic.missiles.modular.system.utils;
+
+/**
+ * @author a203
+ */
+public class Constant {
+ public static final String HTTP_HEADER = "http://";
+}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/socket/service/IWebSocketService.java b/casic-alarm/src/main/java/com/casic/missiles/socket/service/IWebSocketService.java
deleted file mode 100644
index 87d5203..0000000
--- a/casic-alarm/src/main/java/com/casic/missiles/socket/service/IWebSocketService.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.casic.missiles.socket.service;
-
-/**
- * @author a203
- */
-public interface IWebSocketService {
- /**
- * WebSocket数据通信接口
- *
- * @param message
- */
- void sendMessage(String message);
-}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/socket/service/impl/WebSocketServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/socket/service/impl/WebSocketServiceImpl.java
deleted file mode 100644
index a2fc650..0000000
--- a/casic-alarm/src/main/java/com/casic/missiles/socket/service/impl/WebSocketServiceImpl.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.casic.missiles.socket.service.impl;
-
-import com.casic.missiles.socket.AlarmWebSocketServer;
-import com.casic.missiles.socket.service.IWebSocketService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-
-/**
- * @author a203
- */
-@Slf4j
-@Service
-public class WebSocketServiceImpl implements IWebSocketService {
-
- private final AlarmWebSocketServer socketServer;
-
- public WebSocketServiceImpl() {
- socketServer = new AlarmWebSocketServer();
- }
-
- @Override
- public void sendMessage(String msg) {
- //将消息发送给客户端
-
- }
-}
diff --git a/casic-server-support/pom.xml b/casic-server-support/pom.xml
index b1af713..33a4f3f 100644
--- a/casic-server-support/pom.xml
+++ b/casic-server-support/pom.xml
@@ -35,6 +35,16 @@
compile
+
+ com.squareup.okhttp3
+ okhttp
+ 4.9.1
+
+
+ com.alibaba
+ fastjson
+ ${fastjson.version}
+
diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AisLog.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AisLog.java
index a2e4208..41d716b 100644
--- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AisLog.java
+++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AisLog.java
@@ -15,12 +15,24 @@
public class AisLog extends Model {
private static final long serialVersionUID = 1L;
- @TableId(value = "ID", type = IdType.AUTO)
- private Integer id;
+ @TableId(value = "ID", type = IdType.ASSIGN_ID)
+ private Long id;
+
+ /**
+ * ais请求参数
+ */
+ @TableField("REQUEST_PARAM")
+ private String requestParam;
+
+ /**
+ * ais返回数据
+ */
+ @TableField("RESPONSE")
+ private String response;
/**
* 调用第三方ais接口时间
*/
- @TableField("TIME")
- private String time;
+ @TableField("REQUEST_TIME")
+ private String requestTime;
}
diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/Constant.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/Constant.java
new file mode 100644
index 0000000..2fea300
--- /dev/null
+++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/Constant.java
@@ -0,0 +1,8 @@
+package com.casic.missiles.modular.system.utils;
+
+/**
+ * @author a203
+ */
+public class Constant {
+ public static final String HTTP_HEADER = "http://";
+}
diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/HttpRequestHelper.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/HttpRequestHelper.java
new file mode 100644
index 0000000..c999812
--- /dev/null
+++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/HttpRequestHelper.java
@@ -0,0 +1,46 @@
+package com.casic.missiles.modular.system.utils;
+
+import lombok.NonNull;
+import okhttp3.*;
+
+import java.io.IOException;
+import java.util.Objects;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * 网络请求工具
+ *
+ * @author a203
+ */
+public class HttpRequestHelper {
+
+ public static RequestBody createRequestBody(String value) {
+ return RequestBody.create(MediaType.parse("application/json; charset=utf-8"), value);
+ }
+
+ public static String doPost(Request request) {
+ return streamResponse(request);
+ }
+
+ public static String doGet(String url) {
+ return streamResponse(new Request.Builder()
+ .url(url)
+ .build());
+ }
+
+ private static String streamResponse(@NonNull Request request) {
+ OkHttpClient httpClient = new OkHttpClient.Builder()
+ .connectTimeout(10, TimeUnit.SECONDS)
+ .writeTimeout(10, TimeUnit.SECONDS)
+ .readTimeout(20, TimeUnit.SECONDS)
+ .build();
+ Call call = httpClient.newCall(request);
+ try {
+ Response response = call.execute();
+ return response.body() != null ? Objects.requireNonNull(response.body()).string() : "";
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return "";
+ }
+}
\ No newline at end of file
diff --git a/casic-alarm/src/main/java/com/casic/missiles/socket/service/IWebSocketService.java b/casic-alarm/src/main/java/com/casic/missiles/socket/service/IWebSocketService.java
deleted file mode 100644
index 87d5203..0000000
--- a/casic-alarm/src/main/java/com/casic/missiles/socket/service/IWebSocketService.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.casic.missiles.socket.service;
-
-/**
- * @author a203
- */
-public interface IWebSocketService {
- /**
- * WebSocket数据通信接口
- *
- * @param message
- */
- void sendMessage(String message);
-}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/socket/service/impl/WebSocketServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/socket/service/impl/WebSocketServiceImpl.java
deleted file mode 100644
index a2fc650..0000000
--- a/casic-alarm/src/main/java/com/casic/missiles/socket/service/impl/WebSocketServiceImpl.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.casic.missiles.socket.service.impl;
-
-import com.casic.missiles.socket.AlarmWebSocketServer;
-import com.casic.missiles.socket.service.IWebSocketService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-
-/**
- * @author a203
- */
-@Slf4j
-@Service
-public class WebSocketServiceImpl implements IWebSocketService {
-
- private final AlarmWebSocketServer socketServer;
-
- public WebSocketServiceImpl() {
- socketServer = new AlarmWebSocketServer();
- }
-
- @Override
- public void sendMessage(String msg) {
- //将消息发送给客户端
-
- }
-}
diff --git a/casic-server-support/pom.xml b/casic-server-support/pom.xml
index b1af713..33a4f3f 100644
--- a/casic-server-support/pom.xml
+++ b/casic-server-support/pom.xml
@@ -35,6 +35,16 @@
compile
+
+ com.squareup.okhttp3
+ okhttp
+ 4.9.1
+
+
+ com.alibaba
+ fastjson
+ ${fastjson.version}
+
diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AisLog.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AisLog.java
index a2e4208..41d716b 100644
--- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AisLog.java
+++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AisLog.java
@@ -15,12 +15,24 @@
public class AisLog extends Model {
private static final long serialVersionUID = 1L;
- @TableId(value = "ID", type = IdType.AUTO)
- private Integer id;
+ @TableId(value = "ID", type = IdType.ASSIGN_ID)
+ private Long id;
+
+ /**
+ * ais请求参数
+ */
+ @TableField("REQUEST_PARAM")
+ private String requestParam;
+
+ /**
+ * ais返回数据
+ */
+ @TableField("RESPONSE")
+ private String response;
/**
* 调用第三方ais接口时间
*/
- @TableField("TIME")
- private String time;
+ @TableField("REQUEST_TIME")
+ private String requestTime;
}
diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/Constant.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/Constant.java
new file mode 100644
index 0000000..2fea300
--- /dev/null
+++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/Constant.java
@@ -0,0 +1,8 @@
+package com.casic.missiles.modular.system.utils;
+
+/**
+ * @author a203
+ */
+public class Constant {
+ public static final String HTTP_HEADER = "http://";
+}
diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/HttpRequestHelper.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/HttpRequestHelper.java
new file mode 100644
index 0000000..c999812
--- /dev/null
+++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/HttpRequestHelper.java
@@ -0,0 +1,46 @@
+package com.casic.missiles.modular.system.utils;
+
+import lombok.NonNull;
+import okhttp3.*;
+
+import java.io.IOException;
+import java.util.Objects;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * 网络请求工具
+ *
+ * @author a203
+ */
+public class HttpRequestHelper {
+
+ public static RequestBody createRequestBody(String value) {
+ return RequestBody.create(MediaType.parse("application/json; charset=utf-8"), value);
+ }
+
+ public static String doPost(Request request) {
+ return streamResponse(request);
+ }
+
+ public static String doGet(String url) {
+ return streamResponse(new Request.Builder()
+ .url(url)
+ .build());
+ }
+
+ private static String streamResponse(@NonNull Request request) {
+ OkHttpClient httpClient = new OkHttpClient.Builder()
+ .connectTimeout(10, TimeUnit.SECONDS)
+ .writeTimeout(10, TimeUnit.SECONDS)
+ .readTimeout(20, TimeUnit.SECONDS)
+ .build();
+ Call call = httpClient.newCall(request);
+ try {
+ Response response = call.execute();
+ return response.body() != null ? Objects.requireNonNull(response.body()).string() : "";
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return "";
+ }
+}
\ No newline at end of file
diff --git a/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java b/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java
index 9a5ac07..6379660 100644
--- a/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java
+++ b/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java
@@ -184,7 +184,7 @@
/**
* 短信内容
*
- * 西工大通过Socket发短信给我们,然后我们用卫星发送给我们自己的岸基软件,然后再传给西工大岸基软件
+ * 方舱通过Socket发送短信给203后台,然后203后台将短信内容加密之后用卫星发送给203自己的岸基软件,然后解密之后再传给西工大岸基软件
* */
String decodeSMS = DecodeData.decodeSMS(data);
log.info("decodeSMS ===> " + decodeSMS);
diff --git a/casic-alarm/src/main/java/com/casic/missiles/socket/service/IWebSocketService.java b/casic-alarm/src/main/java/com/casic/missiles/socket/service/IWebSocketService.java
deleted file mode 100644
index 87d5203..0000000
--- a/casic-alarm/src/main/java/com/casic/missiles/socket/service/IWebSocketService.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.casic.missiles.socket.service;
-
-/**
- * @author a203
- */
-public interface IWebSocketService {
- /**
- * WebSocket数据通信接口
- *
- * @param message
- */
- void sendMessage(String message);
-}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/socket/service/impl/WebSocketServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/socket/service/impl/WebSocketServiceImpl.java
deleted file mode 100644
index a2fc650..0000000
--- a/casic-alarm/src/main/java/com/casic/missiles/socket/service/impl/WebSocketServiceImpl.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.casic.missiles.socket.service.impl;
-
-import com.casic.missiles.socket.AlarmWebSocketServer;
-import com.casic.missiles.socket.service.IWebSocketService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-
-/**
- * @author a203
- */
-@Slf4j
-@Service
-public class WebSocketServiceImpl implements IWebSocketService {
-
- private final AlarmWebSocketServer socketServer;
-
- public WebSocketServiceImpl() {
- socketServer = new AlarmWebSocketServer();
- }
-
- @Override
- public void sendMessage(String msg) {
- //将消息发送给客户端
-
- }
-}
diff --git a/casic-server-support/pom.xml b/casic-server-support/pom.xml
index b1af713..33a4f3f 100644
--- a/casic-server-support/pom.xml
+++ b/casic-server-support/pom.xml
@@ -35,6 +35,16 @@
compile
+
+ com.squareup.okhttp3
+ okhttp
+ 4.9.1
+
+
+ com.alibaba
+ fastjson
+ ${fastjson.version}
+
diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AisLog.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AisLog.java
index a2e4208..41d716b 100644
--- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AisLog.java
+++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AisLog.java
@@ -15,12 +15,24 @@
public class AisLog extends Model {
private static final long serialVersionUID = 1L;
- @TableId(value = "ID", type = IdType.AUTO)
- private Integer id;
+ @TableId(value = "ID", type = IdType.ASSIGN_ID)
+ private Long id;
+
+ /**
+ * ais请求参数
+ */
+ @TableField("REQUEST_PARAM")
+ private String requestParam;
+
+ /**
+ * ais返回数据
+ */
+ @TableField("RESPONSE")
+ private String response;
/**
* 调用第三方ais接口时间
*/
- @TableField("TIME")
- private String time;
+ @TableField("REQUEST_TIME")
+ private String requestTime;
}
diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/Constant.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/Constant.java
new file mode 100644
index 0000000..2fea300
--- /dev/null
+++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/Constant.java
@@ -0,0 +1,8 @@
+package com.casic.missiles.modular.system.utils;
+
+/**
+ * @author a203
+ */
+public class Constant {
+ public static final String HTTP_HEADER = "http://";
+}
diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/HttpRequestHelper.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/HttpRequestHelper.java
new file mode 100644
index 0000000..c999812
--- /dev/null
+++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/HttpRequestHelper.java
@@ -0,0 +1,46 @@
+package com.casic.missiles.modular.system.utils;
+
+import lombok.NonNull;
+import okhttp3.*;
+
+import java.io.IOException;
+import java.util.Objects;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * 网络请求工具
+ *
+ * @author a203
+ */
+public class HttpRequestHelper {
+
+ public static RequestBody createRequestBody(String value) {
+ return RequestBody.create(MediaType.parse("application/json; charset=utf-8"), value);
+ }
+
+ public static String doPost(Request request) {
+ return streamResponse(request);
+ }
+
+ public static String doGet(String url) {
+ return streamResponse(new Request.Builder()
+ .url(url)
+ .build());
+ }
+
+ private static String streamResponse(@NonNull Request request) {
+ OkHttpClient httpClient = new OkHttpClient.Builder()
+ .connectTimeout(10, TimeUnit.SECONDS)
+ .writeTimeout(10, TimeUnit.SECONDS)
+ .readTimeout(20, TimeUnit.SECONDS)
+ .build();
+ Call call = httpClient.newCall(request);
+ try {
+ Response response = call.execute();
+ return response.body() != null ? Objects.requireNonNull(response.body()).string() : "";
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return "";
+ }
+}
\ No newline at end of file
diff --git a/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java b/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java
index 9a5ac07..6379660 100644
--- a/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java
+++ b/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java
@@ -184,7 +184,7 @@
/**
* 短信内容
*
- * 西工大通过Socket发短信给我们,然后我们用卫星发送给我们自己的岸基软件,然后再传给西工大岸基软件
+ * 方舱通过Socket发送短信给203后台,然后203后台将短信内容加密之后用卫星发送给203自己的岸基软件,然后解密之后再传给西工大岸基软件
* */
String decodeSMS = DecodeData.decodeSMS(data);
log.info("decodeSMS ===> " + decodeSMS);
diff --git a/casic-ship/src/main/java/com/casic/missiles/modular/system/dto/ShipDTO.java b/casic-ship/src/main/java/com/casic/missiles/modular/system/dto/ShipDTO.java
index 34512f9..a74299c 100644
--- a/casic-ship/src/main/java/com/casic/missiles/modular/system/dto/ShipDTO.java
+++ b/casic-ship/src/main/java/com/casic/missiles/modular/system/dto/ShipDTO.java
@@ -3,11 +3,6 @@
import com.casic.missiles.modular.system.dto.remote.ShipRemoteData;
import lombok.Data;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Locale;
-import java.util.TimeZone;
-
/**
* @author a203
*/
@@ -69,38 +64,31 @@
/**
* 吃水(单位:m)
*/
- private Float depth;
+ private Double depth;
/**
* 国籍 3 字母
*/
private String nationality;
public ShipDTO(ShipRemoteData.DataBean data) {
- this.shipId = data.getI();
- this.positionTime = formatUTC(data.getT());
- this.lng = (double) data.getN() / 600000;
- this.lat = (double) data.getA() / 600000;
- this.course = (float) data.getC() / 10;
- this.heading = data.getH();
- this.speed = (float) data.getS() / 10;
- this.aisStatus = data.getV();
- this.mmsi = data.getM();
- this.engName = data.getE();
- this.imoNum = data.getO();
- this.shipCallNum = data.getG();
- this.shipType = data.getY();
- this.shipLength = data.getL();
- this.shipWidth = data.getB();
- this.expectTime = data.getR();
- this.destination = data.getP();
- this.depth = (float) data.getD() / 10;
- this.nationality = data.getF();
- }
-
- private String formatUTC(int seconds) {
- long utc = seconds * 1000L;
- SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA);
- format.setTimeZone(TimeZone.getTimeZone("GMT+08"));
- return format.format(new Date(utc));
+ this.shipId = data.getShipId();
+ this.positionTime = data.getPositionTime();
+ this.lng = data.getLng();
+ this.lat = data.getLat();
+ this.course = data.getCourse();
+ this.heading = data.getHeading();
+ this.speed = data.getSpeed();
+ this.aisStatus = data.getAisStatus();
+ this.mmsi = data.getMmsi();
+ this.engName = data.getEngName();
+ this.imoNum = data.getImoNum();
+ this.shipCallNum = data.getShipCallNum();
+ this.shipType = data.getShipType();
+ this.shipLength = data.getShipLength();
+ this.shipWidth = data.getShipWidth();
+ this.expectTime = data.getExpectTime();
+ this.destination = data.getDestination();
+ this.depth = data.getDepth();
+ this.nationality = data.getNationality();
}
}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/socket/service/IWebSocketService.java b/casic-alarm/src/main/java/com/casic/missiles/socket/service/IWebSocketService.java
deleted file mode 100644
index 87d5203..0000000
--- a/casic-alarm/src/main/java/com/casic/missiles/socket/service/IWebSocketService.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.casic.missiles.socket.service;
-
-/**
- * @author a203
- */
-public interface IWebSocketService {
- /**
- * WebSocket数据通信接口
- *
- * @param message
- */
- void sendMessage(String message);
-}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/socket/service/impl/WebSocketServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/socket/service/impl/WebSocketServiceImpl.java
deleted file mode 100644
index a2fc650..0000000
--- a/casic-alarm/src/main/java/com/casic/missiles/socket/service/impl/WebSocketServiceImpl.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.casic.missiles.socket.service.impl;
-
-import com.casic.missiles.socket.AlarmWebSocketServer;
-import com.casic.missiles.socket.service.IWebSocketService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-
-/**
- * @author a203
- */
-@Slf4j
-@Service
-public class WebSocketServiceImpl implements IWebSocketService {
-
- private final AlarmWebSocketServer socketServer;
-
- public WebSocketServiceImpl() {
- socketServer = new AlarmWebSocketServer();
- }
-
- @Override
- public void sendMessage(String msg) {
- //将消息发送给客户端
-
- }
-}
diff --git a/casic-server-support/pom.xml b/casic-server-support/pom.xml
index b1af713..33a4f3f 100644
--- a/casic-server-support/pom.xml
+++ b/casic-server-support/pom.xml
@@ -35,6 +35,16 @@
compile
+
+ com.squareup.okhttp3
+ okhttp
+ 4.9.1
+
+
+ com.alibaba
+ fastjson
+ ${fastjson.version}
+
diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AisLog.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AisLog.java
index a2e4208..41d716b 100644
--- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AisLog.java
+++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AisLog.java
@@ -15,12 +15,24 @@
public class AisLog extends Model {
private static final long serialVersionUID = 1L;
- @TableId(value = "ID", type = IdType.AUTO)
- private Integer id;
+ @TableId(value = "ID", type = IdType.ASSIGN_ID)
+ private Long id;
+
+ /**
+ * ais请求参数
+ */
+ @TableField("REQUEST_PARAM")
+ private String requestParam;
+
+ /**
+ * ais返回数据
+ */
+ @TableField("RESPONSE")
+ private String response;
/**
* 调用第三方ais接口时间
*/
- @TableField("TIME")
- private String time;
+ @TableField("REQUEST_TIME")
+ private String requestTime;
}
diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/Constant.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/Constant.java
new file mode 100644
index 0000000..2fea300
--- /dev/null
+++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/Constant.java
@@ -0,0 +1,8 @@
+package com.casic.missiles.modular.system.utils;
+
+/**
+ * @author a203
+ */
+public class Constant {
+ public static final String HTTP_HEADER = "http://";
+}
diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/HttpRequestHelper.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/HttpRequestHelper.java
new file mode 100644
index 0000000..c999812
--- /dev/null
+++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/HttpRequestHelper.java
@@ -0,0 +1,46 @@
+package com.casic.missiles.modular.system.utils;
+
+import lombok.NonNull;
+import okhttp3.*;
+
+import java.io.IOException;
+import java.util.Objects;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * 网络请求工具
+ *
+ * @author a203
+ */
+public class HttpRequestHelper {
+
+ public static RequestBody createRequestBody(String value) {
+ return RequestBody.create(MediaType.parse("application/json; charset=utf-8"), value);
+ }
+
+ public static String doPost(Request request) {
+ return streamResponse(request);
+ }
+
+ public static String doGet(String url) {
+ return streamResponse(new Request.Builder()
+ .url(url)
+ .build());
+ }
+
+ private static String streamResponse(@NonNull Request request) {
+ OkHttpClient httpClient = new OkHttpClient.Builder()
+ .connectTimeout(10, TimeUnit.SECONDS)
+ .writeTimeout(10, TimeUnit.SECONDS)
+ .readTimeout(20, TimeUnit.SECONDS)
+ .build();
+ Call call = httpClient.newCall(request);
+ try {
+ Response response = call.execute();
+ return response.body() != null ? Objects.requireNonNull(response.body()).string() : "";
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return "";
+ }
+}
\ No newline at end of file
diff --git a/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java b/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java
index 9a5ac07..6379660 100644
--- a/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java
+++ b/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java
@@ -184,7 +184,7 @@
/**
* 短信内容
*
- * 西工大通过Socket发短信给我们,然后我们用卫星发送给我们自己的岸基软件,然后再传给西工大岸基软件
+ * 方舱通过Socket发送短信给203后台,然后203后台将短信内容加密之后用卫星发送给203自己的岸基软件,然后解密之后再传给西工大岸基软件
* */
String decodeSMS = DecodeData.decodeSMS(data);
log.info("decodeSMS ===> " + decodeSMS);
diff --git a/casic-ship/src/main/java/com/casic/missiles/modular/system/dto/ShipDTO.java b/casic-ship/src/main/java/com/casic/missiles/modular/system/dto/ShipDTO.java
index 34512f9..a74299c 100644
--- a/casic-ship/src/main/java/com/casic/missiles/modular/system/dto/ShipDTO.java
+++ b/casic-ship/src/main/java/com/casic/missiles/modular/system/dto/ShipDTO.java
@@ -3,11 +3,6 @@
import com.casic.missiles.modular.system.dto.remote.ShipRemoteData;
import lombok.Data;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Locale;
-import java.util.TimeZone;
-
/**
* @author a203
*/
@@ -69,38 +64,31 @@
/**
* 吃水(单位:m)
*/
- private Float depth;
+ private Double depth;
/**
* 国籍 3 字母
*/
private String nationality;
public ShipDTO(ShipRemoteData.DataBean data) {
- this.shipId = data.getI();
- this.positionTime = formatUTC(data.getT());
- this.lng = (double) data.getN() / 600000;
- this.lat = (double) data.getA() / 600000;
- this.course = (float) data.getC() / 10;
- this.heading = data.getH();
- this.speed = (float) data.getS() / 10;
- this.aisStatus = data.getV();
- this.mmsi = data.getM();
- this.engName = data.getE();
- this.imoNum = data.getO();
- this.shipCallNum = data.getG();
- this.shipType = data.getY();
- this.shipLength = data.getL();
- this.shipWidth = data.getB();
- this.expectTime = data.getR();
- this.destination = data.getP();
- this.depth = (float) data.getD() / 10;
- this.nationality = data.getF();
- }
-
- private String formatUTC(int seconds) {
- long utc = seconds * 1000L;
- SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA);
- format.setTimeZone(TimeZone.getTimeZone("GMT+08"));
- return format.format(new Date(utc));
+ this.shipId = data.getShipId();
+ this.positionTime = data.getPositionTime();
+ this.lng = data.getLng();
+ this.lat = data.getLat();
+ this.course = data.getCourse();
+ this.heading = data.getHeading();
+ this.speed = data.getSpeed();
+ this.aisStatus = data.getAisStatus();
+ this.mmsi = data.getMmsi();
+ this.engName = data.getEngName();
+ this.imoNum = data.getImoNum();
+ this.shipCallNum = data.getShipCallNum();
+ this.shipType = data.getShipType();
+ this.shipLength = data.getShipLength();
+ this.shipWidth = data.getShipWidth();
+ this.expectTime = data.getExpectTime();
+ this.destination = data.getDestination();
+ this.depth = data.getDepth();
+ this.nationality = data.getNationality();
}
}
diff --git a/casic-ship/src/main/java/com/casic/missiles/modular/system/dto/remote/ShipRemoteData.java b/casic-ship/src/main/java/com/casic/missiles/modular/system/dto/remote/ShipRemoteData.java
index 6d7fadb..79ace95 100644
--- a/casic-ship/src/main/java/com/casic/missiles/modular/system/dto/remote/ShipRemoteData.java
+++ b/casic-ship/src/main/java/com/casic/missiles/modular/system/dto/remote/ShipRemoteData.java
@@ -3,40 +3,32 @@
import java.util.List;
/**
- * 第三方AIS数据模型
+ * AIS数据模型
*
* @author a203
*/
public class ShipRemoteData {
/**
- * code : 0
- * count : 7
- * message : 成功
- * data : [{"g":"3EQK6","y":"70","a":10884867,"n":68125760,"i":"2030707","t":1632903145,"e":"HMM ROTTERDAM","m":"351246000","o":"9868338","f":"PAN","l":400,"c":1872,"s":163,"h":189,"v":"0","b":62,"r":"10-15 19:00","p":"EGSUE","d":154}]
+ * code : 200
+ * data : [{"aisStatus":"0","course":11,"depth":9.3,"destination":"CNSHK","engName":"OREA","expectTime":"11-04 20:00","heading":0,"imoNum":"9670107","lat":17.91,"lng":113.31,"mmsi":"256558000","nationality":"MLT","positionTime":"2021-11-04 16:36:42","shipCallNum":"9HA3953","shipId":"153841","shipLength":185,"shipType":"72","shipWidth":30,"speed":13}]
+ * message : 请求成功
+ * success : true
*/
- private String code;
- private int count;
+ private int code;
private String message;
+ private boolean success;
private List data;
- public String getCode() {
+ public int getCode() {
return code;
}
- public void setCode(String code) {
+ public void setCode(int code) {
this.code = code;
}
- public int getCount() {
- return count;
- }
-
- public void setCount(int count) {
- this.count = count;
- }
-
public String getMessage() {
return message;
}
@@ -45,6 +37,14 @@
this.message = message;
}
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
public List getData() {
return data;
}
@@ -55,197 +55,197 @@
public static class DataBean {
/**
- * g : 3EQK6
- * y : 70
- * a : 10884867
- * n : 68125760
- * i : 2030707
- * t : 1632903145
- * e : HMM ROTTERDAM
- * m : 351246000
- * o : 9868338
- * f : PAN
- * l : 400
- * c : 1872
- * s : 163
- * h : 189
- * v : 0
- * b : 62
- * r : 10-15 19:00
- * p : EGSUE
- * d : 154
+ * aisStatus : 0
+ * course : 11
+ * depth : 9.3
+ * destination : CNSHK
+ * engName : OREA
+ * expectTime : 11-04 20:00
+ * heading : 0
+ * imoNum : 9670107
+ * lat : 17.91
+ * lng : 113.31
+ * mmsi : 256558000
+ * nationality : MLT
+ * positionTime : 2021-11-04 16:36:42
+ * shipCallNum : 9HA3953
+ * shipId : 153841
+ * shipLength : 185
+ * shipType : 72
+ * shipWidth : 30
+ * speed : 13
*/
- private String g;
- private String y;
- private int a;
- private int n;
- private String i;
- private int t;
- private String e;
- private String m;
- private String o;
- private String f;
- private int l;
- private int c;
- private int s;
- private int h;
- private String v;
- private int b;
- private String r;
- private String p;
- private int d;
+ private String aisStatus;
+ private float course;
+ private double depth;
+ private String destination;
+ private String engName;
+ private String expectTime;
+ private int heading;
+ private String imoNum;
+ private double lat;
+ private double lng;
+ private String mmsi;
+ private String nationality;
+ private String positionTime;
+ private String shipCallNum;
+ private String shipId;
+ private int shipLength;
+ private String shipType;
+ private int shipWidth;
+ private float speed;
- public String getG() {
- return g;
+ public String getAisStatus() {
+ return aisStatus;
}
- public void setG(String g) {
- this.g = g;
+ public void setAisStatus(String aisStatus) {
+ this.aisStatus = aisStatus;
}
- public String getY() {
- return y;
+ public Float getCourse() {
+ return course;
}
- public void setY(String y) {
- this.y = y;
+ public void setCourse(float course) {
+ this.course = course;
}
- public int getA() {
- return a;
+ public double getDepth() {
+ return depth;
}
- public void setA(int a) {
- this.a = a;
+ public void setDepth(double depth) {
+ this.depth = depth;
}
- public int getN() {
- return n;
+ public String getDestination() {
+ return destination;
}
- public void setN(int n) {
- this.n = n;
+ public void setDestination(String destination) {
+ this.destination = destination;
}
- public String getI() {
- return i;
+ public String getEngName() {
+ return engName;
}
- public void setI(String i) {
- this.i = i;
+ public void setEngName(String engName) {
+ this.engName = engName;
}
- public int getT() {
- return t;
+ public String getExpectTime() {
+ return expectTime;
}
- public void setT(int t) {
- this.t = t;
+ public void setExpectTime(String expectTime) {
+ this.expectTime = expectTime;
}
- public String getE() {
- return e;
+ public int getHeading() {
+ return heading;
}
- public void setE(String e) {
- this.e = e;
+ public void setHeading(int heading) {
+ this.heading = heading;
}
- public String getM() {
- return m;
+ public String getImoNum() {
+ return imoNum;
}
- public void setM(String m) {
- this.m = m;
+ public void setImoNum(String imoNum) {
+ this.imoNum = imoNum;
}
- public String getO() {
- return o;
+ public double getLat() {
+ return lat;
}
- public void setO(String o) {
- this.o = o;
+ public void setLat(double lat) {
+ this.lat = lat;
}
- public String getF() {
- return f;
+ public double getLng() {
+ return lng;
}
- public void setF(String f) {
- this.f = f;
+ public void setLng(double lng) {
+ this.lng = lng;
}
- public int getL() {
- return l;
+ public String getMmsi() {
+ return mmsi;
}
- public void setL(int l) {
- this.l = l;
+ public void setMmsi(String mmsi) {
+ this.mmsi = mmsi;
}
- public int getC() {
- return c;
+ public String getNationality() {
+ return nationality;
}
- public void setC(int c) {
- this.c = c;
+ public void setNationality(String nationality) {
+ this.nationality = nationality;
}
- public int getS() {
- return s;
+ public String getPositionTime() {
+ return positionTime;
}
- public void setS(int s) {
- this.s = s;
+ public void setPositionTime(String positionTime) {
+ this.positionTime = positionTime;
}
- public int getH() {
- return h;
+ public String getShipCallNum() {
+ return shipCallNum;
}
- public void setH(int h) {
- this.h = h;
+ public void setShipCallNum(String shipCallNum) {
+ this.shipCallNum = shipCallNum;
}
- public String getV() {
- return v;
+ public String getShipId() {
+ return shipId;
}
- public void setV(String v) {
- this.v = v;
+ public void setShipId(String shipId) {
+ this.shipId = shipId;
}
- public int getB() {
- return b;
+ public int getShipLength() {
+ return shipLength;
}
- public void setB(int b) {
- this.b = b;
+ public void setShipLength(int shipLength) {
+ this.shipLength = shipLength;
}
- public String getR() {
- return r;
+ public String getShipType() {
+ return shipType;
}
- public void setR(String r) {
- this.r = r;
+ public void setShipType(String shipType) {
+ this.shipType = shipType;
}
- public String getP() {
- return p;
+ public int getShipWidth() {
+ return shipWidth;
}
- public void setP(String p) {
- this.p = p;
+ public void setShipWidth(int shipWidth) {
+ this.shipWidth = shipWidth;
}
- public int getD() {
- return d;
+ public float getSpeed() {
+ return speed;
}
- public void setD(int d) {
- this.d = d;
+ public void setSpeed(float speed) {
+ this.speed = speed;
}
}
}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/socket/service/IWebSocketService.java b/casic-alarm/src/main/java/com/casic/missiles/socket/service/IWebSocketService.java
deleted file mode 100644
index 87d5203..0000000
--- a/casic-alarm/src/main/java/com/casic/missiles/socket/service/IWebSocketService.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.casic.missiles.socket.service;
-
-/**
- * @author a203
- */
-public interface IWebSocketService {
- /**
- * WebSocket数据通信接口
- *
- * @param message
- */
- void sendMessage(String message);
-}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/socket/service/impl/WebSocketServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/socket/service/impl/WebSocketServiceImpl.java
deleted file mode 100644
index a2fc650..0000000
--- a/casic-alarm/src/main/java/com/casic/missiles/socket/service/impl/WebSocketServiceImpl.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.casic.missiles.socket.service.impl;
-
-import com.casic.missiles.socket.AlarmWebSocketServer;
-import com.casic.missiles.socket.service.IWebSocketService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-
-/**
- * @author a203
- */
-@Slf4j
-@Service
-public class WebSocketServiceImpl implements IWebSocketService {
-
- private final AlarmWebSocketServer socketServer;
-
- public WebSocketServiceImpl() {
- socketServer = new AlarmWebSocketServer();
- }
-
- @Override
- public void sendMessage(String msg) {
- //将消息发送给客户端
-
- }
-}
diff --git a/casic-server-support/pom.xml b/casic-server-support/pom.xml
index b1af713..33a4f3f 100644
--- a/casic-server-support/pom.xml
+++ b/casic-server-support/pom.xml
@@ -35,6 +35,16 @@
compile
+
+ com.squareup.okhttp3
+ okhttp
+ 4.9.1
+
+
+ com.alibaba
+ fastjson
+ ${fastjson.version}
+
diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AisLog.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AisLog.java
index a2e4208..41d716b 100644
--- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AisLog.java
+++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AisLog.java
@@ -15,12 +15,24 @@
public class AisLog extends Model {
private static final long serialVersionUID = 1L;
- @TableId(value = "ID", type = IdType.AUTO)
- private Integer id;
+ @TableId(value = "ID", type = IdType.ASSIGN_ID)
+ private Long id;
+
+ /**
+ * ais请求参数
+ */
+ @TableField("REQUEST_PARAM")
+ private String requestParam;
+
+ /**
+ * ais返回数据
+ */
+ @TableField("RESPONSE")
+ private String response;
/**
* 调用第三方ais接口时间
*/
- @TableField("TIME")
- private String time;
+ @TableField("REQUEST_TIME")
+ private String requestTime;
}
diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/Constant.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/Constant.java
new file mode 100644
index 0000000..2fea300
--- /dev/null
+++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/Constant.java
@@ -0,0 +1,8 @@
+package com.casic.missiles.modular.system.utils;
+
+/**
+ * @author a203
+ */
+public class Constant {
+ public static final String HTTP_HEADER = "http://";
+}
diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/HttpRequestHelper.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/HttpRequestHelper.java
new file mode 100644
index 0000000..c999812
--- /dev/null
+++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/HttpRequestHelper.java
@@ -0,0 +1,46 @@
+package com.casic.missiles.modular.system.utils;
+
+import lombok.NonNull;
+import okhttp3.*;
+
+import java.io.IOException;
+import java.util.Objects;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * 网络请求工具
+ *
+ * @author a203
+ */
+public class HttpRequestHelper {
+
+ public static RequestBody createRequestBody(String value) {
+ return RequestBody.create(MediaType.parse("application/json; charset=utf-8"), value);
+ }
+
+ public static String doPost(Request request) {
+ return streamResponse(request);
+ }
+
+ public static String doGet(String url) {
+ return streamResponse(new Request.Builder()
+ .url(url)
+ .build());
+ }
+
+ private static String streamResponse(@NonNull Request request) {
+ OkHttpClient httpClient = new OkHttpClient.Builder()
+ .connectTimeout(10, TimeUnit.SECONDS)
+ .writeTimeout(10, TimeUnit.SECONDS)
+ .readTimeout(20, TimeUnit.SECONDS)
+ .build();
+ Call call = httpClient.newCall(request);
+ try {
+ Response response = call.execute();
+ return response.body() != null ? Objects.requireNonNull(response.body()).string() : "";
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return "";
+ }
+}
\ No newline at end of file
diff --git a/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java b/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java
index 9a5ac07..6379660 100644
--- a/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java
+++ b/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java
@@ -184,7 +184,7 @@
/**
* 短信内容
*
- * 西工大通过Socket发短信给我们,然后我们用卫星发送给我们自己的岸基软件,然后再传给西工大岸基软件
+ * 方舱通过Socket发送短信给203后台,然后203后台将短信内容加密之后用卫星发送给203自己的岸基软件,然后解密之后再传给西工大岸基软件
* */
String decodeSMS = DecodeData.decodeSMS(data);
log.info("decodeSMS ===> " + decodeSMS);
diff --git a/casic-ship/src/main/java/com/casic/missiles/modular/system/dto/ShipDTO.java b/casic-ship/src/main/java/com/casic/missiles/modular/system/dto/ShipDTO.java
index 34512f9..a74299c 100644
--- a/casic-ship/src/main/java/com/casic/missiles/modular/system/dto/ShipDTO.java
+++ b/casic-ship/src/main/java/com/casic/missiles/modular/system/dto/ShipDTO.java
@@ -3,11 +3,6 @@
import com.casic.missiles.modular.system.dto.remote.ShipRemoteData;
import lombok.Data;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Locale;
-import java.util.TimeZone;
-
/**
* @author a203
*/
@@ -69,38 +64,31 @@
/**
* 吃水(单位:m)
*/
- private Float depth;
+ private Double depth;
/**
* 国籍 3 字母
*/
private String nationality;
public ShipDTO(ShipRemoteData.DataBean data) {
- this.shipId = data.getI();
- this.positionTime = formatUTC(data.getT());
- this.lng = (double) data.getN() / 600000;
- this.lat = (double) data.getA() / 600000;
- this.course = (float) data.getC() / 10;
- this.heading = data.getH();
- this.speed = (float) data.getS() / 10;
- this.aisStatus = data.getV();
- this.mmsi = data.getM();
- this.engName = data.getE();
- this.imoNum = data.getO();
- this.shipCallNum = data.getG();
- this.shipType = data.getY();
- this.shipLength = data.getL();
- this.shipWidth = data.getB();
- this.expectTime = data.getR();
- this.destination = data.getP();
- this.depth = (float) data.getD() / 10;
- this.nationality = data.getF();
- }
-
- private String formatUTC(int seconds) {
- long utc = seconds * 1000L;
- SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA);
- format.setTimeZone(TimeZone.getTimeZone("GMT+08"));
- return format.format(new Date(utc));
+ this.shipId = data.getShipId();
+ this.positionTime = data.getPositionTime();
+ this.lng = data.getLng();
+ this.lat = data.getLat();
+ this.course = data.getCourse();
+ this.heading = data.getHeading();
+ this.speed = data.getSpeed();
+ this.aisStatus = data.getAisStatus();
+ this.mmsi = data.getMmsi();
+ this.engName = data.getEngName();
+ this.imoNum = data.getImoNum();
+ this.shipCallNum = data.getShipCallNum();
+ this.shipType = data.getShipType();
+ this.shipLength = data.getShipLength();
+ this.shipWidth = data.getShipWidth();
+ this.expectTime = data.getExpectTime();
+ this.destination = data.getDestination();
+ this.depth = data.getDepth();
+ this.nationality = data.getNationality();
}
}
diff --git a/casic-ship/src/main/java/com/casic/missiles/modular/system/dto/remote/ShipRemoteData.java b/casic-ship/src/main/java/com/casic/missiles/modular/system/dto/remote/ShipRemoteData.java
index 6d7fadb..79ace95 100644
--- a/casic-ship/src/main/java/com/casic/missiles/modular/system/dto/remote/ShipRemoteData.java
+++ b/casic-ship/src/main/java/com/casic/missiles/modular/system/dto/remote/ShipRemoteData.java
@@ -3,40 +3,32 @@
import java.util.List;
/**
- * 第三方AIS数据模型
+ * AIS数据模型
*
* @author a203
*/
public class ShipRemoteData {
/**
- * code : 0
- * count : 7
- * message : 成功
- * data : [{"g":"3EQK6","y":"70","a":10884867,"n":68125760,"i":"2030707","t":1632903145,"e":"HMM ROTTERDAM","m":"351246000","o":"9868338","f":"PAN","l":400,"c":1872,"s":163,"h":189,"v":"0","b":62,"r":"10-15 19:00","p":"EGSUE","d":154}]
+ * code : 200
+ * data : [{"aisStatus":"0","course":11,"depth":9.3,"destination":"CNSHK","engName":"OREA","expectTime":"11-04 20:00","heading":0,"imoNum":"9670107","lat":17.91,"lng":113.31,"mmsi":"256558000","nationality":"MLT","positionTime":"2021-11-04 16:36:42","shipCallNum":"9HA3953","shipId":"153841","shipLength":185,"shipType":"72","shipWidth":30,"speed":13}]
+ * message : 请求成功
+ * success : true
*/
- private String code;
- private int count;
+ private int code;
private String message;
+ private boolean success;
private List data;
- public String getCode() {
+ public int getCode() {
return code;
}
- public void setCode(String code) {
+ public void setCode(int code) {
this.code = code;
}
- public int getCount() {
- return count;
- }
-
- public void setCount(int count) {
- this.count = count;
- }
-
public String getMessage() {
return message;
}
@@ -45,6 +37,14 @@
this.message = message;
}
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
public List getData() {
return data;
}
@@ -55,197 +55,197 @@
public static class DataBean {
/**
- * g : 3EQK6
- * y : 70
- * a : 10884867
- * n : 68125760
- * i : 2030707
- * t : 1632903145
- * e : HMM ROTTERDAM
- * m : 351246000
- * o : 9868338
- * f : PAN
- * l : 400
- * c : 1872
- * s : 163
- * h : 189
- * v : 0
- * b : 62
- * r : 10-15 19:00
- * p : EGSUE
- * d : 154
+ * aisStatus : 0
+ * course : 11
+ * depth : 9.3
+ * destination : CNSHK
+ * engName : OREA
+ * expectTime : 11-04 20:00
+ * heading : 0
+ * imoNum : 9670107
+ * lat : 17.91
+ * lng : 113.31
+ * mmsi : 256558000
+ * nationality : MLT
+ * positionTime : 2021-11-04 16:36:42
+ * shipCallNum : 9HA3953
+ * shipId : 153841
+ * shipLength : 185
+ * shipType : 72
+ * shipWidth : 30
+ * speed : 13
*/
- private String g;
- private String y;
- private int a;
- private int n;
- private String i;
- private int t;
- private String e;
- private String m;
- private String o;
- private String f;
- private int l;
- private int c;
- private int s;
- private int h;
- private String v;
- private int b;
- private String r;
- private String p;
- private int d;
+ private String aisStatus;
+ private float course;
+ private double depth;
+ private String destination;
+ private String engName;
+ private String expectTime;
+ private int heading;
+ private String imoNum;
+ private double lat;
+ private double lng;
+ private String mmsi;
+ private String nationality;
+ private String positionTime;
+ private String shipCallNum;
+ private String shipId;
+ private int shipLength;
+ private String shipType;
+ private int shipWidth;
+ private float speed;
- public String getG() {
- return g;
+ public String getAisStatus() {
+ return aisStatus;
}
- public void setG(String g) {
- this.g = g;
+ public void setAisStatus(String aisStatus) {
+ this.aisStatus = aisStatus;
}
- public String getY() {
- return y;
+ public Float getCourse() {
+ return course;
}
- public void setY(String y) {
- this.y = y;
+ public void setCourse(float course) {
+ this.course = course;
}
- public int getA() {
- return a;
+ public double getDepth() {
+ return depth;
}
- public void setA(int a) {
- this.a = a;
+ public void setDepth(double depth) {
+ this.depth = depth;
}
- public int getN() {
- return n;
+ public String getDestination() {
+ return destination;
}
- public void setN(int n) {
- this.n = n;
+ public void setDestination(String destination) {
+ this.destination = destination;
}
- public String getI() {
- return i;
+ public String getEngName() {
+ return engName;
}
- public void setI(String i) {
- this.i = i;
+ public void setEngName(String engName) {
+ this.engName = engName;
}
- public int getT() {
- return t;
+ public String getExpectTime() {
+ return expectTime;
}
- public void setT(int t) {
- this.t = t;
+ public void setExpectTime(String expectTime) {
+ this.expectTime = expectTime;
}
- public String getE() {
- return e;
+ public int getHeading() {
+ return heading;
}
- public void setE(String e) {
- this.e = e;
+ public void setHeading(int heading) {
+ this.heading = heading;
}
- public String getM() {
- return m;
+ public String getImoNum() {
+ return imoNum;
}
- public void setM(String m) {
- this.m = m;
+ public void setImoNum(String imoNum) {
+ this.imoNum = imoNum;
}
- public String getO() {
- return o;
+ public double getLat() {
+ return lat;
}
- public void setO(String o) {
- this.o = o;
+ public void setLat(double lat) {
+ this.lat = lat;
}
- public String getF() {
- return f;
+ public double getLng() {
+ return lng;
}
- public void setF(String f) {
- this.f = f;
+ public void setLng(double lng) {
+ this.lng = lng;
}
- public int getL() {
- return l;
+ public String getMmsi() {
+ return mmsi;
}
- public void setL(int l) {
- this.l = l;
+ public void setMmsi(String mmsi) {
+ this.mmsi = mmsi;
}
- public int getC() {
- return c;
+ public String getNationality() {
+ return nationality;
}
- public void setC(int c) {
- this.c = c;
+ public void setNationality(String nationality) {
+ this.nationality = nationality;
}
- public int getS() {
- return s;
+ public String getPositionTime() {
+ return positionTime;
}
- public void setS(int s) {
- this.s = s;
+ public void setPositionTime(String positionTime) {
+ this.positionTime = positionTime;
}
- public int getH() {
- return h;
+ public String getShipCallNum() {
+ return shipCallNum;
}
- public void setH(int h) {
- this.h = h;
+ public void setShipCallNum(String shipCallNum) {
+ this.shipCallNum = shipCallNum;
}
- public String getV() {
- return v;
+ public String getShipId() {
+ return shipId;
}
- public void setV(String v) {
- this.v = v;
+ public void setShipId(String shipId) {
+ this.shipId = shipId;
}
- public int getB() {
- return b;
+ public int getShipLength() {
+ return shipLength;
}
- public void setB(int b) {
- this.b = b;
+ public void setShipLength(int shipLength) {
+ this.shipLength = shipLength;
}
- public String getR() {
- return r;
+ public String getShipType() {
+ return shipType;
}
- public void setR(String r) {
- this.r = r;
+ public void setShipType(String shipType) {
+ this.shipType = shipType;
}
- public String getP() {
- return p;
+ public int getShipWidth() {
+ return shipWidth;
}
- public void setP(String p) {
- this.p = p;
+ public void setShipWidth(int shipWidth) {
+ this.shipWidth = shipWidth;
}
- public int getD() {
- return d;
+ public float getSpeed() {
+ return speed;
}
- public void setD(int d) {
- this.d = d;
+ public void setSpeed(float speed) {
+ this.speed = speed;
}
}
}
diff --git a/casic-ship/src/main/java/com/casic/missiles/modular/system/service/impl/ShipServiceImpl.java b/casic-ship/src/main/java/com/casic/missiles/modular/system/service/impl/ShipServiceImpl.java
index c1a1873..932678f 100644
--- a/casic-ship/src/main/java/com/casic/missiles/modular/system/service/impl/ShipServiceImpl.java
+++ b/casic-ship/src/main/java/com/casic/missiles/modular/system/service/impl/ShipServiceImpl.java
@@ -1,21 +1,21 @@
package com.casic.missiles.modular.system.service.impl;
import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONException;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.casic.missiles.modular.system.dao.ShipMapper;
+import com.casic.missiles.modular.system.dto.AddressConfigDTO;
import com.casic.missiles.modular.system.dto.ShipDTO;
import com.casic.missiles.modular.system.dto.remote.ShipRemoteData;
import com.casic.missiles.modular.system.model.AisLog;
import com.casic.missiles.modular.system.model.Ship;
+import com.casic.missiles.modular.system.service.IAddressConfigService;
import com.casic.missiles.modular.system.service.IAisLogService;
import com.casic.missiles.modular.system.service.IShipService;
import com.casic.missiles.modular.system.utils.Constant;
import com.casic.missiles.modular.system.utils.HttpRequestHelper;
import com.casic.missiles.modular.system.utils.TimeUtil;
-import okhttp3.Request;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
@@ -30,65 +30,50 @@
@Service
public class ShipServiceImpl extends ServiceImpl implements IShipService {
- private static final String SUCCESS_CODE = "0";
+ private static final int SUCCESS_CODE = 200;
+ private final IAddressConfigService configService;
private final IAisLogService logService;
- public ShipServiceImpl(IAisLogService logService) {
+ public ShipServiceImpl(IAddressConfigService configService, IAisLogService logService) {
+ this.configService = configService;
this.logService = logService;
}
@Override
public List shipsInCircle(String rgn, int age) {
- if (rgn == null || rgn.isEmpty()) {
- throw new NullPointerException("搜索区域不能为空");
+ AddressConfigDTO addressConfig = configService.selectLastConfig();
+ String aisIp = addressConfig.getAisIp();
+ if (aisIp.contains(Constant.HTTP_HEADER)) {
+ aisIp = aisIp.replace(Constant.HTTP_HEADER, "");
}
- if (age < Constant.MIN_AGE || age > Constant.MAX_AGE) {
- throw new IllegalArgumentException("时间范围错误");
- }
- /**
- * 封装请求参数
- * */
- JSONObject jsonObject = new JSONObject();
- try {
- jsonObject.put("rgn", rgn);
- jsonObject.put("age", age);
- } catch (JSONException e) {
- e.printStackTrace();
- }
- List shipDTOList = new ArrayList<>();
+ String url = Constant.HTTP_HEADER + aisIp + "/ais/shipsInCircle?rgn=" + rgn + "&age=" + age;
+
/**
* 获取AIS接口数据
* */
- Request request = new Request.Builder()
- .addHeader(Constant.AIS_HEADER_NAME, Constant.AIS_KEY_VALUE)
- .url(Constant.SHIPS_IN_CIRCLE)
- .post(HttpRequestHelper.createRequestBody(jsonObject.toJSONString()))
- .build();
- String res = HttpRequestHelper.doPost(request);
+ String res = HttpRequestHelper.doGet(url);
//先解析出code,根据code判断
- if (SUCCESS_CODE.equals(getResponseCode(res))) {
+ if (SUCCESS_CODE == getResponseCode(res)) {
//请求成功才保存ais访问记录
AisLog aisLog = new AisLog();
- aisLog.setTime(TimeUtil.getCurrentTime());
+ aisLog.setRequestParam(url);
+ aisLog.setResponse(res);
+ aisLog.setRequestTime(TimeUtil.getCurrentTime());
logService.save(aisLog);
ShipRemoteData remoteData = JSON.parseObject(res, new TypeReference() {
});
+ List shipDTOList = new ArrayList<>();
for (ShipRemoteData.DataBean data : remoteData.getData()) {
shipDTOList.add(new ShipDTO(data));
}
+ return shipDTOList;
}
- return shipDTOList;
+ return null;
}
- /**
- * {"code":"101", "message":"权限失效"}
- */
- public String getResponseCode(String value) {
- if ("".equals(value)) {
- return value;
- }
+ public int getResponseCode(String value) {
JSONObject jsonObject = JSON.parseObject(value);
- return jsonObject.getString("code");
+ return jsonObject.getInteger("code");
}
}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/socket/service/IWebSocketService.java b/casic-alarm/src/main/java/com/casic/missiles/socket/service/IWebSocketService.java
deleted file mode 100644
index 87d5203..0000000
--- a/casic-alarm/src/main/java/com/casic/missiles/socket/service/IWebSocketService.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.casic.missiles.socket.service;
-
-/**
- * @author a203
- */
-public interface IWebSocketService {
- /**
- * WebSocket数据通信接口
- *
- * @param message
- */
- void sendMessage(String message);
-}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/socket/service/impl/WebSocketServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/socket/service/impl/WebSocketServiceImpl.java
deleted file mode 100644
index a2fc650..0000000
--- a/casic-alarm/src/main/java/com/casic/missiles/socket/service/impl/WebSocketServiceImpl.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.casic.missiles.socket.service.impl;
-
-import com.casic.missiles.socket.AlarmWebSocketServer;
-import com.casic.missiles.socket.service.IWebSocketService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-
-/**
- * @author a203
- */
-@Slf4j
-@Service
-public class WebSocketServiceImpl implements IWebSocketService {
-
- private final AlarmWebSocketServer socketServer;
-
- public WebSocketServiceImpl() {
- socketServer = new AlarmWebSocketServer();
- }
-
- @Override
- public void sendMessage(String msg) {
- //将消息发送给客户端
-
- }
-}
diff --git a/casic-server-support/pom.xml b/casic-server-support/pom.xml
index b1af713..33a4f3f 100644
--- a/casic-server-support/pom.xml
+++ b/casic-server-support/pom.xml
@@ -35,6 +35,16 @@
compile
+
+ com.squareup.okhttp3
+ okhttp
+ 4.9.1
+
+
+ com.alibaba
+ fastjson
+ ${fastjson.version}
+
diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AisLog.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AisLog.java
index a2e4208..41d716b 100644
--- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AisLog.java
+++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AisLog.java
@@ -15,12 +15,24 @@
public class AisLog extends Model {
private static final long serialVersionUID = 1L;
- @TableId(value = "ID", type = IdType.AUTO)
- private Integer id;
+ @TableId(value = "ID", type = IdType.ASSIGN_ID)
+ private Long id;
+
+ /**
+ * ais请求参数
+ */
+ @TableField("REQUEST_PARAM")
+ private String requestParam;
+
+ /**
+ * ais返回数据
+ */
+ @TableField("RESPONSE")
+ private String response;
/**
* 调用第三方ais接口时间
*/
- @TableField("TIME")
- private String time;
+ @TableField("REQUEST_TIME")
+ private String requestTime;
}
diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/Constant.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/Constant.java
new file mode 100644
index 0000000..2fea300
--- /dev/null
+++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/Constant.java
@@ -0,0 +1,8 @@
+package com.casic.missiles.modular.system.utils;
+
+/**
+ * @author a203
+ */
+public class Constant {
+ public static final String HTTP_HEADER = "http://";
+}
diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/HttpRequestHelper.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/HttpRequestHelper.java
new file mode 100644
index 0000000..c999812
--- /dev/null
+++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/HttpRequestHelper.java
@@ -0,0 +1,46 @@
+package com.casic.missiles.modular.system.utils;
+
+import lombok.NonNull;
+import okhttp3.*;
+
+import java.io.IOException;
+import java.util.Objects;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * 网络请求工具
+ *
+ * @author a203
+ */
+public class HttpRequestHelper {
+
+ public static RequestBody createRequestBody(String value) {
+ return RequestBody.create(MediaType.parse("application/json; charset=utf-8"), value);
+ }
+
+ public static String doPost(Request request) {
+ return streamResponse(request);
+ }
+
+ public static String doGet(String url) {
+ return streamResponse(new Request.Builder()
+ .url(url)
+ .build());
+ }
+
+ private static String streamResponse(@NonNull Request request) {
+ OkHttpClient httpClient = new OkHttpClient.Builder()
+ .connectTimeout(10, TimeUnit.SECONDS)
+ .writeTimeout(10, TimeUnit.SECONDS)
+ .readTimeout(20, TimeUnit.SECONDS)
+ .build();
+ Call call = httpClient.newCall(request);
+ try {
+ Response response = call.execute();
+ return response.body() != null ? Objects.requireNonNull(response.body()).string() : "";
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return "";
+ }
+}
\ No newline at end of file
diff --git a/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java b/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java
index 9a5ac07..6379660 100644
--- a/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java
+++ b/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java
@@ -184,7 +184,7 @@
/**
* 短信内容
*
- * 西工大通过Socket发短信给我们,然后我们用卫星发送给我们自己的岸基软件,然后再传给西工大岸基软件
+ * 方舱通过Socket发送短信给203后台,然后203后台将短信内容加密之后用卫星发送给203自己的岸基软件,然后解密之后再传给西工大岸基软件
* */
String decodeSMS = DecodeData.decodeSMS(data);
log.info("decodeSMS ===> " + decodeSMS);
diff --git a/casic-ship/src/main/java/com/casic/missiles/modular/system/dto/ShipDTO.java b/casic-ship/src/main/java/com/casic/missiles/modular/system/dto/ShipDTO.java
index 34512f9..a74299c 100644
--- a/casic-ship/src/main/java/com/casic/missiles/modular/system/dto/ShipDTO.java
+++ b/casic-ship/src/main/java/com/casic/missiles/modular/system/dto/ShipDTO.java
@@ -3,11 +3,6 @@
import com.casic.missiles.modular.system.dto.remote.ShipRemoteData;
import lombok.Data;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Locale;
-import java.util.TimeZone;
-
/**
* @author a203
*/
@@ -69,38 +64,31 @@
/**
* 吃水(单位:m)
*/
- private Float depth;
+ private Double depth;
/**
* 国籍 3 字母
*/
private String nationality;
public ShipDTO(ShipRemoteData.DataBean data) {
- this.shipId = data.getI();
- this.positionTime = formatUTC(data.getT());
- this.lng = (double) data.getN() / 600000;
- this.lat = (double) data.getA() / 600000;
- this.course = (float) data.getC() / 10;
- this.heading = data.getH();
- this.speed = (float) data.getS() / 10;
- this.aisStatus = data.getV();
- this.mmsi = data.getM();
- this.engName = data.getE();
- this.imoNum = data.getO();
- this.shipCallNum = data.getG();
- this.shipType = data.getY();
- this.shipLength = data.getL();
- this.shipWidth = data.getB();
- this.expectTime = data.getR();
- this.destination = data.getP();
- this.depth = (float) data.getD() / 10;
- this.nationality = data.getF();
- }
-
- private String formatUTC(int seconds) {
- long utc = seconds * 1000L;
- SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA);
- format.setTimeZone(TimeZone.getTimeZone("GMT+08"));
- return format.format(new Date(utc));
+ this.shipId = data.getShipId();
+ this.positionTime = data.getPositionTime();
+ this.lng = data.getLng();
+ this.lat = data.getLat();
+ this.course = data.getCourse();
+ this.heading = data.getHeading();
+ this.speed = data.getSpeed();
+ this.aisStatus = data.getAisStatus();
+ this.mmsi = data.getMmsi();
+ this.engName = data.getEngName();
+ this.imoNum = data.getImoNum();
+ this.shipCallNum = data.getShipCallNum();
+ this.shipType = data.getShipType();
+ this.shipLength = data.getShipLength();
+ this.shipWidth = data.getShipWidth();
+ this.expectTime = data.getExpectTime();
+ this.destination = data.getDestination();
+ this.depth = data.getDepth();
+ this.nationality = data.getNationality();
}
}
diff --git a/casic-ship/src/main/java/com/casic/missiles/modular/system/dto/remote/ShipRemoteData.java b/casic-ship/src/main/java/com/casic/missiles/modular/system/dto/remote/ShipRemoteData.java
index 6d7fadb..79ace95 100644
--- a/casic-ship/src/main/java/com/casic/missiles/modular/system/dto/remote/ShipRemoteData.java
+++ b/casic-ship/src/main/java/com/casic/missiles/modular/system/dto/remote/ShipRemoteData.java
@@ -3,40 +3,32 @@
import java.util.List;
/**
- * 第三方AIS数据模型
+ * AIS数据模型
*
* @author a203
*/
public class ShipRemoteData {
/**
- * code : 0
- * count : 7
- * message : 成功
- * data : [{"g":"3EQK6","y":"70","a":10884867,"n":68125760,"i":"2030707","t":1632903145,"e":"HMM ROTTERDAM","m":"351246000","o":"9868338","f":"PAN","l":400,"c":1872,"s":163,"h":189,"v":"0","b":62,"r":"10-15 19:00","p":"EGSUE","d":154}]
+ * code : 200
+ * data : [{"aisStatus":"0","course":11,"depth":9.3,"destination":"CNSHK","engName":"OREA","expectTime":"11-04 20:00","heading":0,"imoNum":"9670107","lat":17.91,"lng":113.31,"mmsi":"256558000","nationality":"MLT","positionTime":"2021-11-04 16:36:42","shipCallNum":"9HA3953","shipId":"153841","shipLength":185,"shipType":"72","shipWidth":30,"speed":13}]
+ * message : 请求成功
+ * success : true
*/
- private String code;
- private int count;
+ private int code;
private String message;
+ private boolean success;
private List data;
- public String getCode() {
+ public int getCode() {
return code;
}
- public void setCode(String code) {
+ public void setCode(int code) {
this.code = code;
}
- public int getCount() {
- return count;
- }
-
- public void setCount(int count) {
- this.count = count;
- }
-
public String getMessage() {
return message;
}
@@ -45,6 +37,14 @@
this.message = message;
}
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
public List getData() {
return data;
}
@@ -55,197 +55,197 @@
public static class DataBean {
/**
- * g : 3EQK6
- * y : 70
- * a : 10884867
- * n : 68125760
- * i : 2030707
- * t : 1632903145
- * e : HMM ROTTERDAM
- * m : 351246000
- * o : 9868338
- * f : PAN
- * l : 400
- * c : 1872
- * s : 163
- * h : 189
- * v : 0
- * b : 62
- * r : 10-15 19:00
- * p : EGSUE
- * d : 154
+ * aisStatus : 0
+ * course : 11
+ * depth : 9.3
+ * destination : CNSHK
+ * engName : OREA
+ * expectTime : 11-04 20:00
+ * heading : 0
+ * imoNum : 9670107
+ * lat : 17.91
+ * lng : 113.31
+ * mmsi : 256558000
+ * nationality : MLT
+ * positionTime : 2021-11-04 16:36:42
+ * shipCallNum : 9HA3953
+ * shipId : 153841
+ * shipLength : 185
+ * shipType : 72
+ * shipWidth : 30
+ * speed : 13
*/
- private String g;
- private String y;
- private int a;
- private int n;
- private String i;
- private int t;
- private String e;
- private String m;
- private String o;
- private String f;
- private int l;
- private int c;
- private int s;
- private int h;
- private String v;
- private int b;
- private String r;
- private String p;
- private int d;
+ private String aisStatus;
+ private float course;
+ private double depth;
+ private String destination;
+ private String engName;
+ private String expectTime;
+ private int heading;
+ private String imoNum;
+ private double lat;
+ private double lng;
+ private String mmsi;
+ private String nationality;
+ private String positionTime;
+ private String shipCallNum;
+ private String shipId;
+ private int shipLength;
+ private String shipType;
+ private int shipWidth;
+ private float speed;
- public String getG() {
- return g;
+ public String getAisStatus() {
+ return aisStatus;
}
- public void setG(String g) {
- this.g = g;
+ public void setAisStatus(String aisStatus) {
+ this.aisStatus = aisStatus;
}
- public String getY() {
- return y;
+ public Float getCourse() {
+ return course;
}
- public void setY(String y) {
- this.y = y;
+ public void setCourse(float course) {
+ this.course = course;
}
- public int getA() {
- return a;
+ public double getDepth() {
+ return depth;
}
- public void setA(int a) {
- this.a = a;
+ public void setDepth(double depth) {
+ this.depth = depth;
}
- public int getN() {
- return n;
+ public String getDestination() {
+ return destination;
}
- public void setN(int n) {
- this.n = n;
+ public void setDestination(String destination) {
+ this.destination = destination;
}
- public String getI() {
- return i;
+ public String getEngName() {
+ return engName;
}
- public void setI(String i) {
- this.i = i;
+ public void setEngName(String engName) {
+ this.engName = engName;
}
- public int getT() {
- return t;
+ public String getExpectTime() {
+ return expectTime;
}
- public void setT(int t) {
- this.t = t;
+ public void setExpectTime(String expectTime) {
+ this.expectTime = expectTime;
}
- public String getE() {
- return e;
+ public int getHeading() {
+ return heading;
}
- public void setE(String e) {
- this.e = e;
+ public void setHeading(int heading) {
+ this.heading = heading;
}
- public String getM() {
- return m;
+ public String getImoNum() {
+ return imoNum;
}
- public void setM(String m) {
- this.m = m;
+ public void setImoNum(String imoNum) {
+ this.imoNum = imoNum;
}
- public String getO() {
- return o;
+ public double getLat() {
+ return lat;
}
- public void setO(String o) {
- this.o = o;
+ public void setLat(double lat) {
+ this.lat = lat;
}
- public String getF() {
- return f;
+ public double getLng() {
+ return lng;
}
- public void setF(String f) {
- this.f = f;
+ public void setLng(double lng) {
+ this.lng = lng;
}
- public int getL() {
- return l;
+ public String getMmsi() {
+ return mmsi;
}
- public void setL(int l) {
- this.l = l;
+ public void setMmsi(String mmsi) {
+ this.mmsi = mmsi;
}
- public int getC() {
- return c;
+ public String getNationality() {
+ return nationality;
}
- public void setC(int c) {
- this.c = c;
+ public void setNationality(String nationality) {
+ this.nationality = nationality;
}
- public int getS() {
- return s;
+ public String getPositionTime() {
+ return positionTime;
}
- public void setS(int s) {
- this.s = s;
+ public void setPositionTime(String positionTime) {
+ this.positionTime = positionTime;
}
- public int getH() {
- return h;
+ public String getShipCallNum() {
+ return shipCallNum;
}
- public void setH(int h) {
- this.h = h;
+ public void setShipCallNum(String shipCallNum) {
+ this.shipCallNum = shipCallNum;
}
- public String getV() {
- return v;
+ public String getShipId() {
+ return shipId;
}
- public void setV(String v) {
- this.v = v;
+ public void setShipId(String shipId) {
+ this.shipId = shipId;
}
- public int getB() {
- return b;
+ public int getShipLength() {
+ return shipLength;
}
- public void setB(int b) {
- this.b = b;
+ public void setShipLength(int shipLength) {
+ this.shipLength = shipLength;
}
- public String getR() {
- return r;
+ public String getShipType() {
+ return shipType;
}
- public void setR(String r) {
- this.r = r;
+ public void setShipType(String shipType) {
+ this.shipType = shipType;
}
- public String getP() {
- return p;
+ public int getShipWidth() {
+ return shipWidth;
}
- public void setP(String p) {
- this.p = p;
+ public void setShipWidth(int shipWidth) {
+ this.shipWidth = shipWidth;
}
- public int getD() {
- return d;
+ public float getSpeed() {
+ return speed;
}
- public void setD(int d) {
- this.d = d;
+ public void setSpeed(float speed) {
+ this.speed = speed;
}
}
}
diff --git a/casic-ship/src/main/java/com/casic/missiles/modular/system/service/impl/ShipServiceImpl.java b/casic-ship/src/main/java/com/casic/missiles/modular/system/service/impl/ShipServiceImpl.java
index c1a1873..932678f 100644
--- a/casic-ship/src/main/java/com/casic/missiles/modular/system/service/impl/ShipServiceImpl.java
+++ b/casic-ship/src/main/java/com/casic/missiles/modular/system/service/impl/ShipServiceImpl.java
@@ -1,21 +1,21 @@
package com.casic.missiles.modular.system.service.impl;
import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONException;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.casic.missiles.modular.system.dao.ShipMapper;
+import com.casic.missiles.modular.system.dto.AddressConfigDTO;
import com.casic.missiles.modular.system.dto.ShipDTO;
import com.casic.missiles.modular.system.dto.remote.ShipRemoteData;
import com.casic.missiles.modular.system.model.AisLog;
import com.casic.missiles.modular.system.model.Ship;
+import com.casic.missiles.modular.system.service.IAddressConfigService;
import com.casic.missiles.modular.system.service.IAisLogService;
import com.casic.missiles.modular.system.service.IShipService;
import com.casic.missiles.modular.system.utils.Constant;
import com.casic.missiles.modular.system.utils.HttpRequestHelper;
import com.casic.missiles.modular.system.utils.TimeUtil;
-import okhttp3.Request;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
@@ -30,65 +30,50 @@
@Service
public class ShipServiceImpl extends ServiceImpl implements IShipService {
- private static final String SUCCESS_CODE = "0";
+ private static final int SUCCESS_CODE = 200;
+ private final IAddressConfigService configService;
private final IAisLogService logService;
- public ShipServiceImpl(IAisLogService logService) {
+ public ShipServiceImpl(IAddressConfigService configService, IAisLogService logService) {
+ this.configService = configService;
this.logService = logService;
}
@Override
public List shipsInCircle(String rgn, int age) {
- if (rgn == null || rgn.isEmpty()) {
- throw new NullPointerException("搜索区域不能为空");
+ AddressConfigDTO addressConfig = configService.selectLastConfig();
+ String aisIp = addressConfig.getAisIp();
+ if (aisIp.contains(Constant.HTTP_HEADER)) {
+ aisIp = aisIp.replace(Constant.HTTP_HEADER, "");
}
- if (age < Constant.MIN_AGE || age > Constant.MAX_AGE) {
- throw new IllegalArgumentException("时间范围错误");
- }
- /**
- * 封装请求参数
- * */
- JSONObject jsonObject = new JSONObject();
- try {
- jsonObject.put("rgn", rgn);
- jsonObject.put("age", age);
- } catch (JSONException e) {
- e.printStackTrace();
- }
- List shipDTOList = new ArrayList<>();
+ String url = Constant.HTTP_HEADER + aisIp + "/ais/shipsInCircle?rgn=" + rgn + "&age=" + age;
+
/**
* 获取AIS接口数据
* */
- Request request = new Request.Builder()
- .addHeader(Constant.AIS_HEADER_NAME, Constant.AIS_KEY_VALUE)
- .url(Constant.SHIPS_IN_CIRCLE)
- .post(HttpRequestHelper.createRequestBody(jsonObject.toJSONString()))
- .build();
- String res = HttpRequestHelper.doPost(request);
+ String res = HttpRequestHelper.doGet(url);
//先解析出code,根据code判断
- if (SUCCESS_CODE.equals(getResponseCode(res))) {
+ if (SUCCESS_CODE == getResponseCode(res)) {
//请求成功才保存ais访问记录
AisLog aisLog = new AisLog();
- aisLog.setTime(TimeUtil.getCurrentTime());
+ aisLog.setRequestParam(url);
+ aisLog.setResponse(res);
+ aisLog.setRequestTime(TimeUtil.getCurrentTime());
logService.save(aisLog);
ShipRemoteData remoteData = JSON.parseObject(res, new TypeReference() {
});
+ List shipDTOList = new ArrayList<>();
for (ShipRemoteData.DataBean data : remoteData.getData()) {
shipDTOList.add(new ShipDTO(data));
}
+ return shipDTOList;
}
- return shipDTOList;
+ return null;
}
- /**
- * {"code":"101", "message":"权限失效"}
- */
- public String getResponseCode(String value) {
- if ("".equals(value)) {
- return value;
- }
+ public int getResponseCode(String value) {
JSONObject jsonObject = JSON.parseObject(value);
- return jsonObject.getString("code");
+ return jsonObject.getInteger("code");
}
}
diff --git a/casic-ship/src/main/java/com/casic/missiles/modular/system/utils/Constant.java b/casic-ship/src/main/java/com/casic/missiles/modular/system/utils/Constant.java
deleted file mode 100644
index 8edaeff..0000000
--- a/casic-ship/src/main/java/com/casic/missiles/modular/system/utils/Constant.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.casic.missiles.modular.system.utils;
-
-/**
- * 船舶相关常量
- *
- * @author a203
- */
-public class Constant {
- private static final String AIS_BASE_URL = "https://api3.myships.com";
- public static final String AIS_HEADER_NAME = "appKey";
- public static final String AIS_KEY_VALUE = "de26d070af5f42fabb13a02f7c0ec065";
- public static final String CONTENT_TYPE = "application/json; charset=utf-8";
-
- public static final String SHIPS_IN_CIRCLE = AIS_BASE_URL + "/sp/region/latest/shipinfoCircle";
-
- public static final int MIN_AGE = 1;
- public static final int MAX_AGE = 240;
-}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/socket/service/IWebSocketService.java b/casic-alarm/src/main/java/com/casic/missiles/socket/service/IWebSocketService.java
deleted file mode 100644
index 87d5203..0000000
--- a/casic-alarm/src/main/java/com/casic/missiles/socket/service/IWebSocketService.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.casic.missiles.socket.service;
-
-/**
- * @author a203
- */
-public interface IWebSocketService {
- /**
- * WebSocket数据通信接口
- *
- * @param message
- */
- void sendMessage(String message);
-}
diff --git a/casic-alarm/src/main/java/com/casic/missiles/socket/service/impl/WebSocketServiceImpl.java b/casic-alarm/src/main/java/com/casic/missiles/socket/service/impl/WebSocketServiceImpl.java
deleted file mode 100644
index a2fc650..0000000
--- a/casic-alarm/src/main/java/com/casic/missiles/socket/service/impl/WebSocketServiceImpl.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.casic.missiles.socket.service.impl;
-
-import com.casic.missiles.socket.AlarmWebSocketServer;
-import com.casic.missiles.socket.service.IWebSocketService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-
-/**
- * @author a203
- */
-@Slf4j
-@Service
-public class WebSocketServiceImpl implements IWebSocketService {
-
- private final AlarmWebSocketServer socketServer;
-
- public WebSocketServiceImpl() {
- socketServer = new AlarmWebSocketServer();
- }
-
- @Override
- public void sendMessage(String msg) {
- //将消息发送给客户端
-
- }
-}
diff --git a/casic-server-support/pom.xml b/casic-server-support/pom.xml
index b1af713..33a4f3f 100644
--- a/casic-server-support/pom.xml
+++ b/casic-server-support/pom.xml
@@ -35,6 +35,16 @@
compile
+
+ com.squareup.okhttp3
+ okhttp
+ 4.9.1
+
+
+ com.alibaba
+ fastjson
+ ${fastjson.version}
+
diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AisLog.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AisLog.java
index a2e4208..41d716b 100644
--- a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AisLog.java
+++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/AisLog.java
@@ -15,12 +15,24 @@
public class AisLog extends Model {
private static final long serialVersionUID = 1L;
- @TableId(value = "ID", type = IdType.AUTO)
- private Integer id;
+ @TableId(value = "ID", type = IdType.ASSIGN_ID)
+ private Long id;
+
+ /**
+ * ais请求参数
+ */
+ @TableField("REQUEST_PARAM")
+ private String requestParam;
+
+ /**
+ * ais返回数据
+ */
+ @TableField("RESPONSE")
+ private String response;
/**
* 调用第三方ais接口时间
*/
- @TableField("TIME")
- private String time;
+ @TableField("REQUEST_TIME")
+ private String requestTime;
}
diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/Constant.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/Constant.java
new file mode 100644
index 0000000..2fea300
--- /dev/null
+++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/Constant.java
@@ -0,0 +1,8 @@
+package com.casic.missiles.modular.system.utils;
+
+/**
+ * @author a203
+ */
+public class Constant {
+ public static final String HTTP_HEADER = "http://";
+}
diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/HttpRequestHelper.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/HttpRequestHelper.java
new file mode 100644
index 0000000..c999812
--- /dev/null
+++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/utils/HttpRequestHelper.java
@@ -0,0 +1,46 @@
+package com.casic.missiles.modular.system.utils;
+
+import lombok.NonNull;
+import okhttp3.*;
+
+import java.io.IOException;
+import java.util.Objects;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * 网络请求工具
+ *
+ * @author a203
+ */
+public class HttpRequestHelper {
+
+ public static RequestBody createRequestBody(String value) {
+ return RequestBody.create(MediaType.parse("application/json; charset=utf-8"), value);
+ }
+
+ public static String doPost(Request request) {
+ return streamResponse(request);
+ }
+
+ public static String doGet(String url) {
+ return streamResponse(new Request.Builder()
+ .url(url)
+ .build());
+ }
+
+ private static String streamResponse(@NonNull Request request) {
+ OkHttpClient httpClient = new OkHttpClient.Builder()
+ .connectTimeout(10, TimeUnit.SECONDS)
+ .writeTimeout(10, TimeUnit.SECONDS)
+ .readTimeout(20, TimeUnit.SECONDS)
+ .build();
+ Call call = httpClient.newCall(request);
+ try {
+ Response response = call.execute();
+ return response.body() != null ? Objects.requireNonNull(response.body()).string() : "";
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return "";
+ }
+}
\ No newline at end of file
diff --git a/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java b/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java
index 9a5ac07..6379660 100644
--- a/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java
+++ b/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java
@@ -184,7 +184,7 @@
/**
* 短信内容
*
- * 西工大通过Socket发短信给我们,然后我们用卫星发送给我们自己的岸基软件,然后再传给西工大岸基软件
+ * 方舱通过Socket发送短信给203后台,然后203后台将短信内容加密之后用卫星发送给203自己的岸基软件,然后解密之后再传给西工大岸基软件
* */
String decodeSMS = DecodeData.decodeSMS(data);
log.info("decodeSMS ===> " + decodeSMS);
diff --git a/casic-ship/src/main/java/com/casic/missiles/modular/system/dto/ShipDTO.java b/casic-ship/src/main/java/com/casic/missiles/modular/system/dto/ShipDTO.java
index 34512f9..a74299c 100644
--- a/casic-ship/src/main/java/com/casic/missiles/modular/system/dto/ShipDTO.java
+++ b/casic-ship/src/main/java/com/casic/missiles/modular/system/dto/ShipDTO.java
@@ -3,11 +3,6 @@
import com.casic.missiles.modular.system.dto.remote.ShipRemoteData;
import lombok.Data;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Locale;
-import java.util.TimeZone;
-
/**
* @author a203
*/
@@ -69,38 +64,31 @@
/**
* 吃水(单位:m)
*/
- private Float depth;
+ private Double depth;
/**
* 国籍 3 字母
*/
private String nationality;
public ShipDTO(ShipRemoteData.DataBean data) {
- this.shipId = data.getI();
- this.positionTime = formatUTC(data.getT());
- this.lng = (double) data.getN() / 600000;
- this.lat = (double) data.getA() / 600000;
- this.course = (float) data.getC() / 10;
- this.heading = data.getH();
- this.speed = (float) data.getS() / 10;
- this.aisStatus = data.getV();
- this.mmsi = data.getM();
- this.engName = data.getE();
- this.imoNum = data.getO();
- this.shipCallNum = data.getG();
- this.shipType = data.getY();
- this.shipLength = data.getL();
- this.shipWidth = data.getB();
- this.expectTime = data.getR();
- this.destination = data.getP();
- this.depth = (float) data.getD() / 10;
- this.nationality = data.getF();
- }
-
- private String formatUTC(int seconds) {
- long utc = seconds * 1000L;
- SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA);
- format.setTimeZone(TimeZone.getTimeZone("GMT+08"));
- return format.format(new Date(utc));
+ this.shipId = data.getShipId();
+ this.positionTime = data.getPositionTime();
+ this.lng = data.getLng();
+ this.lat = data.getLat();
+ this.course = data.getCourse();
+ this.heading = data.getHeading();
+ this.speed = data.getSpeed();
+ this.aisStatus = data.getAisStatus();
+ this.mmsi = data.getMmsi();
+ this.engName = data.getEngName();
+ this.imoNum = data.getImoNum();
+ this.shipCallNum = data.getShipCallNum();
+ this.shipType = data.getShipType();
+ this.shipLength = data.getShipLength();
+ this.shipWidth = data.getShipWidth();
+ this.expectTime = data.getExpectTime();
+ this.destination = data.getDestination();
+ this.depth = data.getDepth();
+ this.nationality = data.getNationality();
}
}
diff --git a/casic-ship/src/main/java/com/casic/missiles/modular/system/dto/remote/ShipRemoteData.java b/casic-ship/src/main/java/com/casic/missiles/modular/system/dto/remote/ShipRemoteData.java
index 6d7fadb..79ace95 100644
--- a/casic-ship/src/main/java/com/casic/missiles/modular/system/dto/remote/ShipRemoteData.java
+++ b/casic-ship/src/main/java/com/casic/missiles/modular/system/dto/remote/ShipRemoteData.java
@@ -3,40 +3,32 @@
import java.util.List;
/**
- * 第三方AIS数据模型
+ * AIS数据模型
*
* @author a203
*/
public class ShipRemoteData {
/**
- * code : 0
- * count : 7
- * message : 成功
- * data : [{"g":"3EQK6","y":"70","a":10884867,"n":68125760,"i":"2030707","t":1632903145,"e":"HMM ROTTERDAM","m":"351246000","o":"9868338","f":"PAN","l":400,"c":1872,"s":163,"h":189,"v":"0","b":62,"r":"10-15 19:00","p":"EGSUE","d":154}]
+ * code : 200
+ * data : [{"aisStatus":"0","course":11,"depth":9.3,"destination":"CNSHK","engName":"OREA","expectTime":"11-04 20:00","heading":0,"imoNum":"9670107","lat":17.91,"lng":113.31,"mmsi":"256558000","nationality":"MLT","positionTime":"2021-11-04 16:36:42","shipCallNum":"9HA3953","shipId":"153841","shipLength":185,"shipType":"72","shipWidth":30,"speed":13}]
+ * message : 请求成功
+ * success : true
*/
- private String code;
- private int count;
+ private int code;
private String message;
+ private boolean success;
private List data;
- public String getCode() {
+ public int getCode() {
return code;
}
- public void setCode(String code) {
+ public void setCode(int code) {
this.code = code;
}
- public int getCount() {
- return count;
- }
-
- public void setCount(int count) {
- this.count = count;
- }
-
public String getMessage() {
return message;
}
@@ -45,6 +37,14 @@
this.message = message;
}
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
public List getData() {
return data;
}
@@ -55,197 +55,197 @@
public static class DataBean {
/**
- * g : 3EQK6
- * y : 70
- * a : 10884867
- * n : 68125760
- * i : 2030707
- * t : 1632903145
- * e : HMM ROTTERDAM
- * m : 351246000
- * o : 9868338
- * f : PAN
- * l : 400
- * c : 1872
- * s : 163
- * h : 189
- * v : 0
- * b : 62
- * r : 10-15 19:00
- * p : EGSUE
- * d : 154
+ * aisStatus : 0
+ * course : 11
+ * depth : 9.3
+ * destination : CNSHK
+ * engName : OREA
+ * expectTime : 11-04 20:00
+ * heading : 0
+ * imoNum : 9670107
+ * lat : 17.91
+ * lng : 113.31
+ * mmsi : 256558000
+ * nationality : MLT
+ * positionTime : 2021-11-04 16:36:42
+ * shipCallNum : 9HA3953
+ * shipId : 153841
+ * shipLength : 185
+ * shipType : 72
+ * shipWidth : 30
+ * speed : 13
*/
- private String g;
- private String y;
- private int a;
- private int n;
- private String i;
- private int t;
- private String e;
- private String m;
- private String o;
- private String f;
- private int l;
- private int c;
- private int s;
- private int h;
- private String v;
- private int b;
- private String r;
- private String p;
- private int d;
+ private String aisStatus;
+ private float course;
+ private double depth;
+ private String destination;
+ private String engName;
+ private String expectTime;
+ private int heading;
+ private String imoNum;
+ private double lat;
+ private double lng;
+ private String mmsi;
+ private String nationality;
+ private String positionTime;
+ private String shipCallNum;
+ private String shipId;
+ private int shipLength;
+ private String shipType;
+ private int shipWidth;
+ private float speed;
- public String getG() {
- return g;
+ public String getAisStatus() {
+ return aisStatus;
}
- public void setG(String g) {
- this.g = g;
+ public void setAisStatus(String aisStatus) {
+ this.aisStatus = aisStatus;
}
- public String getY() {
- return y;
+ public Float getCourse() {
+ return course;
}
- public void setY(String y) {
- this.y = y;
+ public void setCourse(float course) {
+ this.course = course;
}
- public int getA() {
- return a;
+ public double getDepth() {
+ return depth;
}
- public void setA(int a) {
- this.a = a;
+ public void setDepth(double depth) {
+ this.depth = depth;
}
- public int getN() {
- return n;
+ public String getDestination() {
+ return destination;
}
- public void setN(int n) {
- this.n = n;
+ public void setDestination(String destination) {
+ this.destination = destination;
}
- public String getI() {
- return i;
+ public String getEngName() {
+ return engName;
}
- public void setI(String i) {
- this.i = i;
+ public void setEngName(String engName) {
+ this.engName = engName;
}
- public int getT() {
- return t;
+ public String getExpectTime() {
+ return expectTime;
}
- public void setT(int t) {
- this.t = t;
+ public void setExpectTime(String expectTime) {
+ this.expectTime = expectTime;
}
- public String getE() {
- return e;
+ public int getHeading() {
+ return heading;
}
- public void setE(String e) {
- this.e = e;
+ public void setHeading(int heading) {
+ this.heading = heading;
}
- public String getM() {
- return m;
+ public String getImoNum() {
+ return imoNum;
}
- public void setM(String m) {
- this.m = m;
+ public void setImoNum(String imoNum) {
+ this.imoNum = imoNum;
}
- public String getO() {
- return o;
+ public double getLat() {
+ return lat;
}
- public void setO(String o) {
- this.o = o;
+ public void setLat(double lat) {
+ this.lat = lat;
}
- public String getF() {
- return f;
+ public double getLng() {
+ return lng;
}
- public void setF(String f) {
- this.f = f;
+ public void setLng(double lng) {
+ this.lng = lng;
}
- public int getL() {
- return l;
+ public String getMmsi() {
+ return mmsi;
}
- public void setL(int l) {
- this.l = l;
+ public void setMmsi(String mmsi) {
+ this.mmsi = mmsi;
}
- public int getC() {
- return c;
+ public String getNationality() {
+ return nationality;
}
- public void setC(int c) {
- this.c = c;
+ public void setNationality(String nationality) {
+ this.nationality = nationality;
}
- public int getS() {
- return s;
+ public String getPositionTime() {
+ return positionTime;
}
- public void setS(int s) {
- this.s = s;
+ public void setPositionTime(String positionTime) {
+ this.positionTime = positionTime;
}
- public int getH() {
- return h;
+ public String getShipCallNum() {
+ return shipCallNum;
}
- public void setH(int h) {
- this.h = h;
+ public void setShipCallNum(String shipCallNum) {
+ this.shipCallNum = shipCallNum;
}
- public String getV() {
- return v;
+ public String getShipId() {
+ return shipId;
}
- public void setV(String v) {
- this.v = v;
+ public void setShipId(String shipId) {
+ this.shipId = shipId;
}
- public int getB() {
- return b;
+ public int getShipLength() {
+ return shipLength;
}
- public void setB(int b) {
- this.b = b;
+ public void setShipLength(int shipLength) {
+ this.shipLength = shipLength;
}
- public String getR() {
- return r;
+ public String getShipType() {
+ return shipType;
}
- public void setR(String r) {
- this.r = r;
+ public void setShipType(String shipType) {
+ this.shipType = shipType;
}
- public String getP() {
- return p;
+ public int getShipWidth() {
+ return shipWidth;
}
- public void setP(String p) {
- this.p = p;
+ public void setShipWidth(int shipWidth) {
+ this.shipWidth = shipWidth;
}
- public int getD() {
- return d;
+ public float getSpeed() {
+ return speed;
}
- public void setD(int d) {
- this.d = d;
+ public void setSpeed(float speed) {
+ this.speed = speed;
}
}
}
diff --git a/casic-ship/src/main/java/com/casic/missiles/modular/system/service/impl/ShipServiceImpl.java b/casic-ship/src/main/java/com/casic/missiles/modular/system/service/impl/ShipServiceImpl.java
index c1a1873..932678f 100644
--- a/casic-ship/src/main/java/com/casic/missiles/modular/system/service/impl/ShipServiceImpl.java
+++ b/casic-ship/src/main/java/com/casic/missiles/modular/system/service/impl/ShipServiceImpl.java
@@ -1,21 +1,21 @@
package com.casic.missiles.modular.system.service.impl;
import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONException;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.casic.missiles.modular.system.dao.ShipMapper;
+import com.casic.missiles.modular.system.dto.AddressConfigDTO;
import com.casic.missiles.modular.system.dto.ShipDTO;
import com.casic.missiles.modular.system.dto.remote.ShipRemoteData;
import com.casic.missiles.modular.system.model.AisLog;
import com.casic.missiles.modular.system.model.Ship;
+import com.casic.missiles.modular.system.service.IAddressConfigService;
import com.casic.missiles.modular.system.service.IAisLogService;
import com.casic.missiles.modular.system.service.IShipService;
import com.casic.missiles.modular.system.utils.Constant;
import com.casic.missiles.modular.system.utils.HttpRequestHelper;
import com.casic.missiles.modular.system.utils.TimeUtil;
-import okhttp3.Request;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
@@ -30,65 +30,50 @@
@Service
public class ShipServiceImpl extends ServiceImpl implements IShipService {
- private static final String SUCCESS_CODE = "0";
+ private static final int SUCCESS_CODE = 200;
+ private final IAddressConfigService configService;
private final IAisLogService logService;
- public ShipServiceImpl(IAisLogService logService) {
+ public ShipServiceImpl(IAddressConfigService configService, IAisLogService logService) {
+ this.configService = configService;
this.logService = logService;
}
@Override
public List shipsInCircle(String rgn, int age) {
- if (rgn == null || rgn.isEmpty()) {
- throw new NullPointerException("搜索区域不能为空");
+ AddressConfigDTO addressConfig = configService.selectLastConfig();
+ String aisIp = addressConfig.getAisIp();
+ if (aisIp.contains(Constant.HTTP_HEADER)) {
+ aisIp = aisIp.replace(Constant.HTTP_HEADER, "");
}
- if (age < Constant.MIN_AGE || age > Constant.MAX_AGE) {
- throw new IllegalArgumentException("时间范围错误");
- }
- /**
- * 封装请求参数
- * */
- JSONObject jsonObject = new JSONObject();
- try {
- jsonObject.put("rgn", rgn);
- jsonObject.put("age", age);
- } catch (JSONException e) {
- e.printStackTrace();
- }
- List shipDTOList = new ArrayList<>();
+ String url = Constant.HTTP_HEADER + aisIp + "/ais/shipsInCircle?rgn=" + rgn + "&age=" + age;
+
/**
* 获取AIS接口数据
* */
- Request request = new Request.Builder()
- .addHeader(Constant.AIS_HEADER_NAME, Constant.AIS_KEY_VALUE)
- .url(Constant.SHIPS_IN_CIRCLE)
- .post(HttpRequestHelper.createRequestBody(jsonObject.toJSONString()))
- .build();
- String res = HttpRequestHelper.doPost(request);
+ String res = HttpRequestHelper.doGet(url);
//先解析出code,根据code判断
- if (SUCCESS_CODE.equals(getResponseCode(res))) {
+ if (SUCCESS_CODE == getResponseCode(res)) {
//请求成功才保存ais访问记录
AisLog aisLog = new AisLog();
- aisLog.setTime(TimeUtil.getCurrentTime());
+ aisLog.setRequestParam(url);
+ aisLog.setResponse(res);
+ aisLog.setRequestTime(TimeUtil.getCurrentTime());
logService.save(aisLog);
ShipRemoteData remoteData = JSON.parseObject(res, new TypeReference() {
});
+ List shipDTOList = new ArrayList<>();
for (ShipRemoteData.DataBean data : remoteData.getData()) {
shipDTOList.add(new ShipDTO(data));
}
+ return shipDTOList;
}
- return shipDTOList;
+ return null;
}
- /**
- * {"code":"101", "message":"权限失效"}
- */
- public String getResponseCode(String value) {
- if ("".equals(value)) {
- return value;
- }
+ public int getResponseCode(String value) {
JSONObject jsonObject = JSON.parseObject(value);
- return jsonObject.getString("code");
+ return jsonObject.getInteger("code");
}
}
diff --git a/casic-ship/src/main/java/com/casic/missiles/modular/system/utils/Constant.java b/casic-ship/src/main/java/com/casic/missiles/modular/system/utils/Constant.java
deleted file mode 100644
index 8edaeff..0000000
--- a/casic-ship/src/main/java/com/casic/missiles/modular/system/utils/Constant.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.casic.missiles.modular.system.utils;
-
-/**
- * 船舶相关常量
- *
- * @author a203
- */
-public class Constant {
- private static final String AIS_BASE_URL = "https://api3.myships.com";
- public static final String AIS_HEADER_NAME = "appKey";
- public static final String AIS_KEY_VALUE = "de26d070af5f42fabb13a02f7c0ec065";
- public static final String CONTENT_TYPE = "application/json; charset=utf-8";
-
- public static final String SHIPS_IN_CIRCLE = AIS_BASE_URL + "/sp/region/latest/shipinfoCircle";
-
- public static final int MIN_AGE = 1;
- public static final int MAX_AGE = 240;
-}
diff --git a/casic-ship/src/main/java/com/casic/missiles/modular/system/utils/HttpRequestHelper.java b/casic-ship/src/main/java/com/casic/missiles/modular/system/utils/HttpRequestHelper.java
deleted file mode 100644
index c2e936d..0000000
--- a/casic-ship/src/main/java/com/casic/missiles/modular/system/utils/HttpRequestHelper.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package com.casic.missiles.modular.system.utils;
-
-import lombok.NonNull;
-import okhttp3.*;
-
-import java.io.IOException;
-import java.util.Objects;
-import java.util.concurrent.TimeUnit;
-
-/**
- * 网络请求工具
- *
- * @author a203
- */
-public class HttpRequestHelper {
-
- public static RequestBody createRequestBody(String value) {
- return RequestBody.create(MediaType.parse(Constant.CONTENT_TYPE), value);
- }
-
- public static String doPost(Request request) {
- return streamResponse(request);
- }
-
- public static String doGet(String url) {
- return streamResponse(new Request.Builder()
- .url(url)
- .build());
- }
-
- private static String streamResponse(@NonNull Request request) {
- OkHttpClient httpClient = new OkHttpClient.Builder()
- .connectTimeout(10, TimeUnit.SECONDS)
- .writeTimeout(10, TimeUnit.SECONDS)
- .readTimeout(20, TimeUnit.SECONDS)
- .build();
- Call call = httpClient.newCall(request);
- try {
- Response response = call.execute();
- return response.body() != null ? Objects.requireNonNull(response.body()).string() : "";
- } catch (IOException e) {
- e.printStackTrace();
- }
- return "";
- }
-}
\ No newline at end of file