完成发送部分

This commit is contained in:
lichx 2023-12-20 09:51:38 +08:00
parent d5bcac3527
commit 1f3a09c25f
4 changed files with 192 additions and 13 deletions

12
.idea/dataSources.xml Normal file
View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DataSourceManagerImpl" format="xml" multifile-model="true">
<data-source source="LOCAL" name="Ubuntu_22.04" uuid="62270945-7c29-45e9-b4d7-a582be988551">
<driver-ref>mysql.8</driver-ref>
<synchronize>true</synchronize>
<jdbc-driver>com.mysql.cj.jdbc.Driver</jdbc-driver>
<jdbc-url>jdbc:mysql://116.62.133.59:3306</jdbc-url>
<working-dir>$ProjectFileDir$</working-dir>
</data-source>
</component>
</project>

Binary file not shown.

View File

@ -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());
ArrayList<MatchedLogRec>matchedLogRecs = (ArrayList<MatchedLogRec>) 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());
ArrayList<MatchedTransport>matchedTransports = (ArrayList<MatchedTransport>) ois.readObject();
transportService.saveMatchTransportToDB(matchedTransports);
System.out.println("完成一次物流数据接收");
}
} catch (IOException e) {
throw new RuntimeException(e);
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
}

View File

@ -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<ButtonType> 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<ButtonType> 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;
}
}