From e20d7373595960ad6be9bd6373a3c6f186e76e5c Mon Sep 17 00:00:00 2001
From: 懒羊羊 <15939171744@163.com>
Date: 星期六, 23 三月 2024 15:05:49 +0800
Subject: [PATCH] -

---
 jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java |  105 +++++++++++++++++++++++++++++++---------------------
 1 files changed, 63 insertions(+), 42 deletions(-)

diff --git a/jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java b/jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java
index e8db617..f178415 100644
--- a/jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java
+++ b/jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java
@@ -16,15 +16,15 @@
 import org.springframework.stereotype.Component;
 
 import javax.websocket.Session;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 
 @Component
 public class OPCUaSubscription implements SubscriptionCallback {
+
+    //鑷姩宸ヤ綅
+    public List<String> automaticList = Arrays.asList("OP230","OP300","OP280", "OP320", "OP340", "OP350", "OP360","OP370", "OP390", "OP470", "OP530", "OP540");
 
     public static MiloService miloService;
 
@@ -77,26 +77,32 @@
 
                     if("1".equals(tabVlaue)){
                         recordDataDoneValue = "11";
+                        //鏍¢獙鍏ョ珯鏄惁鍙互宸ヤ綔
 
                         //杩涚珯淇濆瓨鏁版嵁
 //                        inSaveDate(thoroughfare,device)
                         //璁板綍鏁版嵁瀹屾垚
-//                        String RecordDataDoneAddress = thoroughfare + "." + device + ".RecordDataDone";
-//                        miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(RecordDataDoneAddress).value(recordDataDoneValue).build());
+                        String RecordDataDoneAddress = thoroughfare + "." + device + ".RecordDataDone";
+                        miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(RecordDataDoneAddress).value(11).build());
 
-                        //缁欏墠绔彂宸ヤ欢鍒颁綅淇″彿
-                        WebSocketUsers.sendMessageToUserByText(map.get(device), "IN");
+                        if(automaticList.stream().noneMatch(s -> s.equals(device))){
+                            //缁欏墠绔彂宸ヤ欢鍒颁綅淇″彿
+                            WebSocketUsers.sendMessageToUserByText(map.get(device), "IN");
+                        }
                         //璇锋眰宸ュ崟
 
-
-
                     }else if("2".equals(tabVlaue)){
-
-                        //鍑虹珯淇濆瓨鏁版嵁
-                        recordDataDoneValue = outSaveDate(thoroughfare,device);
-                        //璁板綍鏁版嵁瀹屾垚
-                        String RecordDataDoneAddress = thoroughfare + "." + device + ".RecordDataDone";
-                        miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(RecordDataDoneAddress).value(recordDataDoneValue).build());
+                        if(automaticList.stream().anyMatch(s -> s.equals(device))){
+                            //鑷姩宸ヤ綅
+                            //鍑虹珯淇濆瓨鏁版嵁
+                            recordDataDoneValue = outSaveDate(thoroughfare,device);
+                            //璁板綍鏁版嵁瀹屾垚
+                            String RecordDataDoneAddress = thoroughfare + "." + device + ".RecordDataDone";
+                            miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(RecordDataDoneAddress).value(Integer.valueOf(RecordDataDoneAddress)).build());
+                        }else {
+                            //鎵嬪姩宸ヤ綅
+                            WebSocketUsers.sendMessageToUserByText(map.get(device), "END");
+                        }
                     }else {
                         System.out.println("^");
                     }
@@ -104,15 +110,22 @@
                 //淇濆瓨鎷х揣鏁版嵁
                 else if (("AngleResult").equals(tab)) {
                     if("1".equals(tabVlaue)||"2".equals(tabVlaue)){
-                        String Torque = thoroughfare + "." + device + ".Torque";
-                        String Angle = thoroughfare + "." + device + ".Angle";
-                        String Result = thoroughfare + "." + device + ".Result";
-                        String Result1 = thoroughfare + "." + device + ".Result1";
-                        List<String> list = new ArrayList();
-                        list.add(Torque);
-                        list.add(Angle);
-                        list.add(Result);
-                        list.add(Result1);
+//                        String Torque = thoroughfare + "." + device + ".Torque";
+//                        String Angle = thoroughfare + "." + device + ".Angle";
+//                        String Result = thoroughfare + "." + device + ".Result";
+//                        String Result1 = thoroughfare + "." + device + ".Result1";
+//                        List<String> list = new ArrayList();
+//                        list.add(Torque);
+//                        list.add(Angle);
+//                        list.add(Result);
+//                        list.add(Result1);
+                        List<String> list = new ArrayList<>();
+                        String[] suffixes = {"Torque", "Angle", "Result", "Result1"};
+
+                        for (String suffix : suffixes) {
+                            String string = thoroughfare + "." + device + "." + suffix;
+                            list.add(string);
+                        }
                         List<ReadWriteEntity> list1 = miloService.readFromOpcUa(list);
                         List<Object> collect = list1.stream().map(ReadWriteEntity::getValue).collect(Collectors.toList());
                         String joinedString = String.join(",", collect.toString());
@@ -143,18 +156,18 @@
         String result = "";
         try {
             //璇诲彇SNCode
-            String SNCodeAddress = thoroughfare + "." + device + ".SNCode";
-            Object SNCodeObject = miloService.readFromOpcUa(SNCodeAddress).getValue();
-            if(null == SNCodeObject || "".equals(SNCodeObject)){
+            String PACKCode = thoroughfare + "." + device + ".PACKCode";
+            Object PACKCodeObject = miloService.readFromOpcUa(PACKCode).getValue();
+            if(null == PACKCodeObject || "".equals(PACKCodeObject)){
                result = "22";
             }else{
-                String SNCode = SNCodeObject.toString();
+                String PACKCodeParam = PACKCodeObject.toString();
                 //1銆佹洿鏂板伐鍗曚俊鎭�
                 //updateOrderInfo();
                 //2銆佷繚瀛樿繃绔欓噰闆嗘暟鎹�
-                saveStationInfo(SNCode,thoroughfare,device);
+                saveStationInfo(PACKCodeParam,thoroughfare,device);
                 //3銆佷繚瀛樺弬鏁伴噰闆嗘暟鎹�
-                SaveParamData(SNCode,thoroughfare,device);
+                SaveParamData(PACKCodeParam,thoroughfare,device);
 
                 result = "21";
 
@@ -169,16 +182,23 @@
     /**
      * 淇濆瓨杩囩珯閲囬泦
      */
-    public void saveStationInfo(String SNCode,String thoroughfare,String device){
+    public void saveStationInfo(String packCode,String thoroughfare,String device) throws Exception {
+        String prefix = thoroughfare+"."+device+".";
+        String workOrderNo = miloService.readFromOpcUa(prefix + "WorkOrderNumber").getValue().toString();
+        String startTime = miloService.readFromOpcUa(prefix + "StartTime").getValue().toString();
+        String stopTime = miloService.readFromOpcUa(prefix + "StopTime").getValue().toString();
+        String stationStatus = miloService.readFromOpcUa(prefix + "StationStatus").getValue().toString();
+
         DaPassingStationCollection daPassingStationCollection = new DaPassingStationCollection();
-        daPassingStationCollection.setSfcCode(SNCode);
-        //daPassingStationCollection.setInboundTime();//鍏ョ珯鏃堕棿
-        daPassingStationCollection.setOutboundTime(new Date());//鍑虹珯鏃堕棿
-        //daPassingStationCollection.setOutRsSign();//鍑虹珯鏄惁鍚堟牸
+        daPassingStationCollection.setSfcCode(packCode);
+        daPassingStationCollection.setWorkOrderNo(workOrderNo);
+//        daPassingStationCollection.setInboundTime(startTime);//鍏ョ珯鏃堕棿
+//        daPassingStationCollection.setOutboundTime(stopTime);//鍑虹珯鏃堕棿
+        daPassingStationCollection.setOutRsSign(stationStatus);//鍑虹珯鏄惁鍚堟牸
         daPassingStationCollectionService.insertDaPassingStationCollection(daPassingStationCollection);
     }
 
-    public void SaveParamData(String SNCode,String thoroughfare,String device) throws Exception {
+    public void SaveParamData(String packCode,String thoroughfare,String device) throws Exception {
         List<DaCollectionParamConf> list;
         DaCollectionParamConf daCollectionParamConf = new DaCollectionParamConf();
         daCollectionParamConf.setGatherAddress(thoroughfare+ "." + device);
@@ -193,12 +213,13 @@
             List<ReadWriteEntity> readWriteEntityList = miloService.readFromOpcUa(nodeIdList);
             List<DaParamCollection> daParamCollectionlist = new ArrayList<>();
             for(int i=0;i<nodeIdList.size();i++){
-                DaParamCollection ParamCollection = new DaParamCollection();
                 if(!readWriteEntityList.get(i).getValue().toString().equals("0.0")){
-                    ParamCollection.setParamCode(readWriteEntityList.get(i).getIdentifier().toString().split("[.]")[2]);
+                    DaParamCollection ParamCollection = new DaParamCollection();
+//                    ParamCollection.setParamCode(readWriteEntityList.get(i).getIdentifier().toString().split("[.]")[2]);
+                    ParamCollection.setParamCode(list.get(i).getCollectParameterId());
                     ParamCollection.setLocationCode(device);
                     ParamCollection.setParamValue(readWriteEntityList.get(i).getValue().toString());
-                    ParamCollection.setSfcCode(SNCode);
+                    ParamCollection.setSfcCode(packCode);
                     ParamCollection.setParamName(list.get(i).getCollectParameterName());
                     ParamCollection.setParamUpper(list.get(i).getParamUpper());
                     ParamCollection.setParamLower(list.get(i).getParamLower());
@@ -206,10 +227,10 @@
                     //ParamCollection.setState("鍚堟牸");
                     ParamCollection.setType(list.get(i).getCollectParameterType());
                     ParamCollection.setCollectionTime(new Date());
-                    daParamCollectionlist.add(ParamCollection);
+                    daParamCollectionService.insertDaParamCollection(ParamCollection);
                 }
             }
-            //daParamCollectionService.saveBeachDaParamCollection(daParamCollectionlist);
+    //            daParamCollectionService.saveBeachDaParamCollection(daParamCollectionlist);
         }
 
     }

--
Gitblit v1.9.3