From 1e39c55183c1f54d1587bf3a86b4c2210bcd592e Mon Sep 17 00:00:00 2001
From: wujian <14790700720@163.com>
Date: 星期四, 28 三月 2024 15:23:19 +0800
Subject: [PATCH] chenge plan

---
 jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java |  101 +++++++++++++++++++++++++++++---------------------
 1 files changed, 58 insertions(+), 43 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..c4683f6 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("OP300","OP280", "OP320", "OP340", "OP350", "OP360","OP370", "OP390", "OP470", "OP530", "OP540");
 
     public static MiloService miloService;
 
@@ -32,9 +32,9 @@
 
     public IDaPassingStationCollectionService daPassingStationCollectionService;
 
-    public IDaCollectionParamConfService collectionParamConfService;
+    public static IDaCollectionParamConfService collectionParamConfService;
 
-    public IDaParamCollectionService daParamCollectionService;
+    public static IDaParamCollectionService daParamCollectionService;
 
     public OPCUaSubscription(MiloService miloService,
                              IDaPassingStationCollectionService daPassingStationCollectionService,
@@ -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,13 @@
                 //淇濆瓨鎷х揣鏁版嵁
                 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);
+                        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 +147,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 +173,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 static void SaveParamData(String packCode,String thoroughfare,String device,String workOrderNo,String productType) throws Exception {
         List<DaCollectionParamConf> list;
         DaCollectionParamConf daCollectionParamConf = new DaCollectionParamConf();
         daCollectionParamConf.setGatherAddress(thoroughfare+ "." + device);
@@ -193,12 +204,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 +218,13 @@
                     //ParamCollection.setState("鍚堟牸");
                     ParamCollection.setType(list.get(i).getCollectParameterType());
                     ParamCollection.setCollectionTime(new Date());
+                    ParamCollection.setWorkOrderNo(workOrderNo);
+                    ParamCollection.setProductCode(productType);
                     daParamCollectionlist.add(ParamCollection);
+//                    daParamCollectionService.insertDaParamCollection(ParamCollection);
                 }
             }
-            //daParamCollectionService.saveBeachDaParamCollection(daParamCollectionlist);
+            daParamCollectionService.saveBeachDaParamCollection(daParamCollectionlist);
         }
 
     }

--
Gitblit v1.9.3