From fc3558920220aa6670d052077ad71265347545ee Mon Sep 17 00:00:00 2001 From: lichx <751176501@qq.com> Date: Wed, 20 Dec 2023 19:52:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E4=BA=86=E5=8F=91=E9=80=81=E9=83=A8?= =?UTF-8?q?=E5=88=86=E7=9A=84=E4=BB=A3=E7=A0=81=20=E8=BF=99=E4=B8=8B?= =?UTF-8?q?=E7=9C=9F=E8=83=BD=E8=B7=91=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MatchLogs.txt | Bin 12859 -> 18546 bytes src/com/qst/dms/net/DmsNetServer.java | 7 ++ src/com/qst/dms/ui/InfoInputFXML.java | 125 +++++++++++++++++++------- src/com/qst/dms/util/Config.java | 7 +- 4 files changed, 104 insertions(+), 35 deletions(-) diff --git a/MatchLogs.txt b/MatchLogs.txt index a2fec182e2d947cbaf49fb47f8350012ccbc8fda..ab467172bbb11bc1c1a5131f95ee2545910c4d06 100644 GIT binary patch delta 796 zcmdm;@@WF&25Y0uK@y6Llh+v?@v}Rl7>lgOr9>T&C+`2 z)Fhw^HO5bq<-{a_+{>+-3k>oYSz51{WGNp}~@q zTwzpP$WX_?%)r3>g#idk7?{d4z(Snm91IMMJ*{`rr%o;~5N8D|-YlrC#K`y+V$9v+ z>>w9NeZ#Kt?v;N)7uhrNe1*uflxLKdOui_r%F@QO=@v+*3{)pr2HDa!o}Hl(z27nP zYO!14*Q>?59GAU1iZ4MP*JRE~PKNs%rz3PUp98~AiZL1NYb@S4HVqt(TEL)5t{`mQ zu{r-iA;|(#zBy1riIIu<>*R^zhAeGo*uI1O#P|&ymu+WwkD~dYv@`<}a&N0eKt2Gb z3tmL%0cBA_?`=~GJkkZ2p+U%=lb;@vS`3YWcOu*%a}3x^fI>hSxa)sF0vx6q#oTu? x@*odz!ZcNa14iH{L<aPexa#HvE%*cMz9@lZ2)o1?Ysa0 delta 8 Pcmew~fpK@r25Tb#6MX}~ diff --git a/src/com/qst/dms/net/DmsNetServer.java b/src/com/qst/dms/net/DmsNetServer.java index 7a372aa..d2420cc 100644 --- a/src/com/qst/dms/net/DmsNetServer.java +++ b/src/com/qst/dms/net/DmsNetServer.java @@ -15,6 +15,7 @@ public class DmsNetServer { public static void main(String[] args) { AcceptLogThread acceptLogThread = new AcceptLogThread(10000); AcceptTranThread acceptTranThread = new AcceptTranThread(10001); + System.out.println("Start listening port 10000/10001"); acceptLogThread.start(); acceptTranThread.start(); } @@ -46,6 +47,9 @@ class AcceptLogThread extends Thread{ { ois = new ObjectInputStream(socket.getInputStream()); ArrayListmatchedLogRecs = (ArrayList) ois.readObject(); + if (matchedLogRecs == null) { + continue; + } logRecService.saveMatchLogToDB(matchedLogRecs); System.out.println("完成一次日志数据接收"); } @@ -85,6 +89,9 @@ class AcceptTranThread extends Thread{ { ois = new ObjectInputStream(socket.getInputStream()); ArrayListmatchedTransports = (ArrayList) ois.readObject(); + if (matchedTransports == null) { + continue; + } transportService.saveMatchTransportToDB(matchedTransports); System.out.println("完成一次物流数据接收"); } diff --git a/src/com/qst/dms/ui/InfoInputFXML.java b/src/com/qst/dms/ui/InfoInputFXML.java index 038a28a..a95976d 100644 --- a/src/com/qst/dms/ui/InfoInputFXML.java +++ b/src/com/qst/dms/ui/InfoInputFXML.java @@ -21,10 +21,7 @@ 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.net.*; import java.sql.ResultSet; import java.util.*; @@ -538,10 +535,14 @@ public class InfoInputFXML { @FXML public void sandData(ActionEvent event) { - boolean doLog=false,doTransport=false; + boolean doLog=true,doTransport=true; + if(matchedLogs==null||matchedLogs.isEmpty()) + doLog=false; + if(matchedTrans==null||matchedTrans.isEmpty()) + doTransport=false; if((matchedLogs==null||matchedLogs.isEmpty())&&!logRecList.isEmpty()) { - doLog=true; + doLog = true; Alert alert = new Alert(AlertType.CONFIRMATION); alert.setTitle("Warning Dialog"); alert.setHeaderText("配对的日志数据为空"); @@ -554,23 +555,6 @@ public class InfoInputFXML { } 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; @@ -586,25 +570,98 @@ public class InfoInputFXML { } else doTransport=false; } - if(doTransport) - { - try { - Socket transSocket = new Socket("116.62.133.59",10001); - ObjectOutputStream oos = new ObjectOutputStream(transSocket.getOutputStream()); + boolean finalDoLog = doLog; + boolean finalDoTransport = doTransport; + Thread thread = new Thread(()->{ + Thread thread1=null; + if(finalDoLog) + { + 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) { + }catch(ConnectException e) { + if(thread1==null) + { + thread1 = new Thread(()->{sandError();}); + thread1.start(); + } + } + catch (IOException e) { e.printStackTrace(); + } + logRecList.clear(); + matchedLogs.clear(); + logUpVal=0; } - logService.saveAndAppendMatchLog(matchedLogs); - //logService.saveMatchLogToDB(matchedLogs);//添加至DB - logRecList.clear(); - matchedLogs.clear(); - logUpVal=0; + if(finalDoTransport) + { + try { + Socket transSocket = new Socket("116.62.133.59",10001); + ObjectOutputStream oos = new ObjectOutputStream(transSocket.getOutputStream()); + oos.writeObject(matchedTrans); + oos.flush(); + oos.close(); + }catch (ConnectException e) { + if(thread1==null) + { + thread1 = new Thread(()->{sandError();}); + thread1.start(); + } + } + catch (IOException e) { + e.printStackTrace(); + } + transportList.clear(); + matchedTrans.clear(); + logUpVal=0; + } + Platform.runLater(()->{ + logImageView.setImage(OKImage); + transportImageView.setImage(OKImage); + logInfoLabel.setText("就绪"); + transportInfoLabel.setText("就绪"); + logInfoLabel.setTextFill(Color.color(0,0,0,1)); + transportInfoLabel.setTextFill(Color.color(0,0,0,1)); + }); + }); + if(doLog||doTransport) + { + logInfoLabel.setTextFill(Color.color(0,0,0,1)); + transportInfoLabel.setTextFill(Color.color(0,0,0,1)); + logInfoLabel.setText("发送数据中"); + transportInfoLabel.setText("发送数据中"); + thread.start(); } } + void sandError() + { + Platform.runLater(()-> + { + logImageView.setImage(errorImage); + transportImageView.setImage(errorImage); + logInfoLabel.setText("发送失败,请检查服务器状态"); + logInfoLabel.setText("发送失败,请检查服务器状态"); + logInfoLabel.setTextFill(Color.color(1,0,0,1)); + transportInfoLabel.setTextFill(Color.color(1,0,0,1)); + }); + try { + Thread.sleep(5000); + } catch (InterruptedException ex) { + throw new RuntimeException(ex); + } + Platform.runLater(()->{ + logImageView.setImage(OKImage); + transportImageView.setImage(OKImage); + logInfoLabel.setText("就绪"); + transportInfoLabel.setText("就绪"); + logInfoLabel.setTextFill(Color.color(0,0,0,1)); + transportInfoLabel.setTextFill(Color.color(0,0,0,1)); + }); + } @FXML public void saveData(ActionEvent event) { boolean doLog=false,doTransport=false; diff --git a/src/com/qst/dms/util/Config.java b/src/com/qst/dms/util/Config.java index 1dda3bc..6aa92a5 100644 --- a/src/com/qst/dms/util/Config.java +++ b/src/com/qst/dms/util/Config.java @@ -1,5 +1,7 @@ package com.qst.dms.util; +import com.qst.dms.ui.MainFrame; + import java.io.FileInputStream; import java.util.Properties; @@ -10,7 +12,10 @@ public class Config { try { p = new Properties(); //加载配置类 - p.load(new FileInputStream("src/com/qst/dms/db/config/mysql.properties")); + //这么写完全不行 +// p.load(new FileInputStream("src/com/qst/dms/db/config/mysql.properties")); + //看我的! + p.load(MainFrame.class.getClassLoader().getResourceAsStream("com/qst/dms/db/config/mysql.properties")); } catch (Exception e) { e.printStackTrace(); }