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 |  107 +++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 74 insertions(+), 33 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 f841abe..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
@@ -1,6 +1,7 @@
 package com.jcdm.main.plcserver.sub;
 
 
+import com.jcdm.framework.websocket.WebSocketUsers;
 import com.jcdm.main.da.collectionParamConf.domain.DaCollectionParamConf;
 import com.jcdm.main.da.collectionParamConf.service.IDaCollectionParamConfService;
 import com.jcdm.main.da.paramCollection.domain.DaParamCollection;
@@ -14,22 +15,26 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import javax.websocket.Session;
+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;
+
+    Map<String, Session> map = WebSocketUsers.getUsers();
 
     public IDaPassingStationCollectionService daPassingStationCollectionService;
 
-    public IDaCollectionParamConfService collectionParamConfService;
+    public static IDaCollectionParamConfService collectionParamConfService;
 
-    public IDaParamCollectionService daParamCollectionService;
+    public static IDaParamCollectionService daParamCollectionService;
 
     public OPCUaSubscription(MiloService miloService,
                              IDaPassingStationCollectionService daPassingStationCollectionService,
@@ -72,26 +77,51 @@
 
                     if("1".equals(tabVlaue)){
                         recordDataDoneValue = "11";
+                        //鏍¢獙鍏ョ珯鏄惁鍙互宸ヤ綔
 
                         //杩涚珯淇濆瓨鏁版嵁
-                        //inSaveDate(thoroughfare,device)
+//                        inSaveDate(thoroughfare,device)
                         //璁板綍鏁版嵁瀹屾垚
                         String RecordDataDoneAddress = thoroughfare + "." + device + ".RecordDataDone";
-                        miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(RecordDataDoneAddress).value(recordDataDoneValue).build());
-                    }else if("2".equals(tabVlaue)){
+                        miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(RecordDataDoneAddress).value(11).build());
 
-                        //鍑虹珯淇濆瓨鏁版嵁
-                        recordDataDoneValue = outSaveDate(thoroughfare,device);
-                        //璁板綍鏁版嵁瀹屾垚
-                        String RecordDataDoneAddress = thoroughfare + "." + device + ".RecordDataDone";
-                        miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(RecordDataDoneAddress).value(recordDataDoneValue).build());
-                    }else{
+                        if(automaticList.stream().noneMatch(s -> s.equals(device))){
+                            //缁欏墠绔彂宸ヤ欢鍒颁綅淇″彿
+                            WebSocketUsers.sendMessageToUserByText(map.get(device), "IN");
+                        }
+                        //璇锋眰宸ュ崟
+
+                    }else if("2".equals(tabVlaue)){
+                        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("^");
                     }
+                }
+                //淇濆瓨鎷х揣鏁版嵁
+                else if (("AngleResult").equals(tab)) {
+                    if("1".equals(tabVlaue)||"2".equals(tabVlaue)){
+                        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());
+                        WebSocketUsers.sendMessageToUserByText(map.get(device), joinedString);
+                    }
                 }
             }
         } catch (Exception e) {
@@ -117,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";
 
@@ -143,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);
@@ -167,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());
@@ -180,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