From 1f3a09c25f848fa9690a483ad2fd2afad238a05c Mon Sep 17 00:00:00 2001
From: lichx <751176501@qq.com>
Date: Wed, 20 Dec 2023 09:51:38 +0800
Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=8F=91=E9=80=81=E9=83=A8?=
=?UTF-8?q?=E5=88=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.idea/dataSources.xml | 12 +++
MatchLogs.txt | Bin 11989 -> 12859 bytes
src/com/qst/dms/net/DmsNetServer.java | 101 ++++++++++++++++++++++++++
src/com/qst/dms/ui/InfoInputFXML.java | 92 +++++++++++++++++++----
4 files changed, 192 insertions(+), 13 deletions(-)
create mode 100644 .idea/dataSources.xml
create mode 100644 src/com/qst/dms/net/DmsNetServer.java
diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml
new file mode 100644
index 0000000..560e992
--- /dev/null
+++ b/.idea/dataSources.xml
@@ -0,0 +1,12 @@
+
+
+
+
+ mysql.8
+ true
+ com.mysql.cj.jdbc.Driver
+ jdbc:mysql://116.62.133.59:3306
+ $ProjectFileDir$
+
+
+
\ No newline at end of file
diff --git a/MatchLogs.txt b/MatchLogs.txt
index d4fe56f36228937f7700e3e1e56c4b4fca62efcd..a2fec182e2d947cbaf49fb47f8350012ccbc8fda 100644
GIT binary patch
delta 194
zcmcZ_yE|pWRlUg_BC3-x`NHLXXOui_r8ryQ(KLUq=%sI&w#f1!Y49pA+
b%%9-ez(Snm96(3(w44q-gVnAQ29Rz5N(eD0
delta 7
Ocmdm;ay53tRXqR^0R#mA
diff --git a/src/com/qst/dms/net/DmsNetServer.java b/src/com/qst/dms/net/DmsNetServer.java
new file mode 100644
index 0000000..7a372aa
--- /dev/null
+++ b/src/com/qst/dms/net/DmsNetServer.java
@@ -0,0 +1,101 @@
+package com.qst.dms.net;
+
+import com.qst.dms.entity.MatchedLogRec;
+import com.qst.dms.entity.MatchedTransport;
+import com.qst.dms.service.LogRecService;
+import com.qst.dms.service.TransportService;
+
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.net.ServerSocket;
+import java.net.Socket;
+import java.util.ArrayList;
+
+public class DmsNetServer {
+ public static void main(String[] args) {
+ AcceptLogThread acceptLogThread = new AcceptLogThread(10000);
+ AcceptTranThread acceptTranThread = new AcceptTranThread(10001);
+ acceptLogThread.start();
+ acceptTranThread.start();
+ }
+}
+
+class AcceptLogThread extends Thread{
+ Socket socket;
+ ObjectInputStream ois;
+ ServerSocket serverSocket;
+ LogRecService logRecService;
+
+ AcceptLogThread(int port){
+ logRecService = new LogRecService();
+ try{
+ serverSocket = new ServerSocket(port);
+ }
+ catch (IOException e)
+ {
+ e.printStackTrace();
+ }
+ }
+ @Override
+ public void run() {
+ while(this.isAlive())
+ {
+ try{
+ socket = serverSocket.accept();
+ if(socket!=null)
+ {
+ ois = new ObjectInputStream(socket.getInputStream());
+ ArrayListmatchedLogRecs = (ArrayList) ois.readObject();
+ logRecService.saveMatchLogToDB(matchedLogRecs);
+ System.out.println("完成一次日志数据接收");
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+ }
+}
+class AcceptTranThread extends Thread{
+ ServerSocket serverSocket;
+ Socket socket;
+ ObjectInputStream ois;
+ TransportService transportService;
+
+ AcceptTranThread(int port){
+ transportService = new TransportService();
+ try{
+ serverSocket = new ServerSocket(port);
+ }
+ catch (IOException e)
+ {
+ e.printStackTrace();
+ }
+ }
+ @Override
+ public void run() {
+ while(this.isAlive())
+ {
+ try{
+ socket = serverSocket.accept();
+ if(socket!=null)
+ {
+ ois = new ObjectInputStream(socket.getInputStream());
+ ArrayListmatchedTransports = (ArrayList) ois.readObject();
+ transportService.saveMatchTransportToDB(matchedTransports);
+ System.out.println("完成一次物流数据接收");
+ }
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+ }
+}
+
diff --git a/src/com/qst/dms/ui/InfoInputFXML.java b/src/com/qst/dms/ui/InfoInputFXML.java
index c8c998e..038a28a 100644
--- a/src/com/qst/dms/ui/InfoInputFXML.java
+++ b/src/com/qst/dms/ui/InfoInputFXML.java
@@ -19,8 +19,11 @@ import javafx.scene.paint.Color;
import javafx.scene.input.MouseEvent;
import javafx.util.Duration;
+import java.io.IOException;
+import java.io.ObjectOutputStream;
import java.net.InetAddress;
import java.net.NetworkInterface;
+import java.net.Socket;
import java.net.SocketException;
import java.sql.ResultSet;
import java.util.*;
@@ -184,6 +187,7 @@ public class InfoInputFXML {
if(!logIDValid)
throw new Exception("ID已被占用");
id = Integer.parseInt(Sid);
+
}
catch(NumberFormatException e)
{
@@ -512,31 +516,93 @@ public class InfoInputFXML {
@FXML
public void matchedAcquisitionLogData(ActionEvent event) {
- if(logRecList.isEmpty())
- {
+ if(matchedLogs==null)
matchedLogs = new ArrayList<>();
+ if(logRecList.isEmpty())
return;
- }
LogRecAnalyse logAn = new LogRecAnalyse(logRecList);
logAn.doFilter();
- matchedLogs = logAn.matchData();
+ matchedLogs.addAll(logAn.matchData());
}
@FXML
public void matchedAcquisitionTransportData(ActionEvent event){
- if(transportList.isEmpty())
- {
+ if(matchedTrans==null)
matchedTrans = new ArrayList<>();
+ if(transportList.isEmpty())
return;
- }
TransportAnalyse transAn = new TransportAnalyse(transportList);
transAn.doFilter();
- matchedTrans = transAn.matchData();
+ matchedTrans.addAll(transAn.matchData());
}
@FXML
public void sandData(ActionEvent event) {
- //开发中……
+ boolean doLog=false,doTransport=false;
+ if((matchedLogs==null||matchedLogs.isEmpty())&&!logRecList.isEmpty())
+ {
+ doLog=true;
+ Alert alert = new Alert(AlertType.CONFIRMATION);
+ alert.setTitle("Warning Dialog");
+ alert.setHeaderText("配对的日志数据为空");
+ alert.setContentText("你是否忘记匹配日志数据,要匹配日志数据吗?");
+ Optional result = alert.showAndWait();
+ if (result.get() == ButtonType.OK){
+ matchedAcquisitionLogData(null);
+ if(matchedLogs.isEmpty())
+ doLog=false;
+ }
+ else doLog=false;
+ }
+ if(doLog)
+ {
+ try {
+ Socket logSocket = new Socket("116.62.133.59",10000);
+ ObjectOutputStream oos = new ObjectOutputStream(logSocket.getOutputStream());
+ oos.writeObject(matchedLogs);
+ oos.flush();
+ oos.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ logService.saveAndAppendMatchLog(matchedLogs);
+ //logService.saveMatchLogToDB(matchedLogs);//添加至DB
+ logRecList.clear();
+ matchedLogs.clear();
+ logUpVal=0;
+ }
+ if((matchedTrans==null|| matchedTrans.isEmpty())&&!transportList.isEmpty())
+ {
+ doTransport=true;
+ Alert alert = new Alert(AlertType.CONFIRMATION);
+ alert.setTitle("Warning Dialog");
+ alert.setHeaderText("配对的物流数据为空");
+ alert.setContentText("你是否忘记匹配物流数据,要匹配物流数据吗?");
+ Optional result = alert.showAndWait();
+ if (result.get() == ButtonType.OK){
+ matchedAcquisitionTransportData(null);
+ if(matchedTrans.isEmpty())
+ doTransport=false;
+ }
+ else doTransport=false;
+ }
+ if(doTransport)
+ {
+ try {
+ Socket transSocket = new Socket("116.62.133.59",10001);
+ ObjectOutputStream oos = new ObjectOutputStream(transSocket.getOutputStream());
+ oos.writeObject(matchedLogs);
+ oos.flush();
+ oos.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ logService.saveAndAppendMatchLog(matchedLogs);
+ //logService.saveMatchLogToDB(matchedLogs);//添加至DB
+ logRecList.clear();
+ matchedLogs.clear();
+ logUpVal=0;
+ }
}
@FXML
@@ -560,9 +626,9 @@ public class InfoInputFXML {
if(doLog)
{
logService.saveAndAppendMatchLog(matchedLogs);
- logService.saveMatchLogToDB(matchedLogs);//添加至DB
+ //logService.saveMatchLogToDB(matchedLogs);//添加至DB
logRecList.clear();
- matchedLogs.clear();
+ //matchedLogs.clear(); 不再删除matchedLogs 因为需要发送
logUpVal=0;
}
if((matchedTrans==null|| matchedTrans.isEmpty())&&!transportList.isEmpty())
@@ -583,9 +649,9 @@ public class InfoInputFXML {
if(doTransport)
{
tranService.saveAndAppendTransport(matchedTrans);
- tranService.saveMatchTransportToDB(matchedTrans);//添加至DB
+ //tranService.saveMatchTransportToDB(matchedTrans);//添加至DB
transportList.clear();
- matchedTrans.clear();
+ //matchedTrans.clear(); 不再删除matchedTrans 因为需要发送
transportUpVal=0;
}
}