From 8f0f8d2d5e5492b1db16d5166a5e053511844522 Mon Sep 17 00:00:00 2001
From: 懒羊羊 <15939171744@163.com>
Date: 星期二, 02 四月 2024 10:24:14 +0800
Subject: [PATCH] -

---
 jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java |  105 +++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 90 insertions(+), 15 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 16ea856..7be7645 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,9 @@
 package com.jcdm.main.plcserver.sub;
 
 
+import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.jcdm.framework.websocket.WebSocketUsers;
 import com.jcdm.main.da.collectionParamConf.domain.DaCollectionParamConf;
 import com.jcdm.main.da.collectionParamConf.service.IDaCollectionParamConfService;
@@ -26,6 +29,11 @@
     //鑷姩宸ヤ綅
     public List<String> automaticList = Arrays.asList("OP300","OP280", "OP320", "OP340", "OP350", "OP360","OP370", "OP390", "OP470", "OP530", "OP540");
 
+    public List<String> moduleCodeList = Arrays.asList("OP300","OP310", "OP320", "OP340", "OP350", "OP33");
+
+    public List<String> nullList = Arrays.asList("OP250","OP260");
+
+
     public static MiloService miloService;
 
     Map<String, Session> map = WebSocketUsers.getUsers();
@@ -42,8 +50,8 @@
                              IDaParamCollectionService daParamCollectionService) {
         OPCUaSubscription.miloService = miloService;
         this.daPassingStationCollectionService = daPassingStationCollectionService;
-        this.collectionParamConfService = collectionParamConfService;
-        this.daParamCollectionService = daParamCollectionService;
+        OPCUaSubscription.collectionParamConfService = collectionParamConfService;
+        OPCUaSubscription.daParamCollectionService = daParamCollectionService;
 
     }
 
@@ -139,43 +147,83 @@
         return SNCode;
     }
 
-
     /**
      * 鍑虹珯淇濆瓨鏁版嵁
      */
     public String outSaveDate(String thoroughfare,String device) {
+        String snCode = "";
         String result = "";
+        String read = thoroughfare + "." + device + ".";
+
         try {
-            //璇诲彇SNCode
-            String PACKCode = thoroughfare + "." + device + ".PACKCode";
-            Object PACKCodeObject = miloService.readFromOpcUa(PACKCode).getValue();
-            if(null == PACKCodeObject || "".equals(PACKCodeObject)){
-               result = "22";
+            if(nullList.stream().noneMatch(s -> s.equals(device))){
+                if(moduleCodeList.stream().anyMatch(s -> s.equals(device))){
+                    read = read + "ModuleCode";
+                }else {
+                    read = read + "PACKCode";
+                }
+            }
+            snCode = miloService.readFromOpcUa(read).getValue().toString();
+
+            if(null == snCode || "".equals(snCode)){
+                result = "22";
             }else{
-                String PACKCodeParam = PACKCodeObject.toString();
                 //1銆佹洿鏂板伐鍗曚俊鎭�
                 //updateOrderInfo();
                 //2銆佷繚瀛樿繃绔欓噰闆嗘暟鎹�
-                saveStationInfo(PACKCodeParam,thoroughfare,device);
+                String workOrderNo = miloService.readFromOpcUa(thoroughfare + "." + device + "." + "WorkOrderNumber").getValue().toString();
+                String productCode = miloService.readFromOpcUa(thoroughfare + "." + device + "." + "ProductType").getValue().toString();
+
+                saveStationInfo(snCode,thoroughfare,device,workOrderNo,productCode);
                 //3銆佷繚瀛樺弬鏁伴噰闆嗘暟鎹�
-                SaveParamData(PACKCodeParam,thoroughfare,device,"","");
+                SaveParamData(snCode,thoroughfare,device,workOrderNo,productCode);
 
                 result = "21";
 
             }
 
         }catch (Exception e) {
-
+            System.out.println(e.getMessage());
         }
         return result;
     }
 
+
+//    /**
+//     * 鍑虹珯淇濆瓨鏁版嵁
+//     */
+//    public String outSaveDate(String thoroughfare,String device) {
+//        String result = "";
+//        try {
+//            //璇诲彇SNCode
+//            String PACKCode = thoroughfare + "." + device + ".PACKCode";
+//            Object PACKCodeObject = miloService.readFromOpcUa(PACKCode).getValue();
+//            if(null == PACKCodeObject || "".equals(PACKCodeObject)){
+//               result = "22";
+//            }else{
+//                String PACKCodeParam = PACKCodeObject.toString();
+//                //1銆佹洿鏂板伐鍗曚俊鎭�
+//                //updateOrderInfo();
+//                //2銆佷繚瀛樿繃绔欓噰闆嗘暟鎹�
+//                saveStationInfo(PACKCodeParam,thoroughfare,device);
+//                //3銆佷繚瀛樺弬鏁伴噰闆嗘暟鎹�
+//                SaveParamData(PACKCodeParam,thoroughfare,device,"","");
+//
+//                result = "21";
+//
+//            }
+//
+//        }catch (Exception e) {
+//
+//        }
+//        return result;
+//    }
+
     /**
      * 淇濆瓨杩囩珯閲囬泦
      */
-    public void saveStationInfo(String packCode,String thoroughfare,String device) throws Exception {
+    public void saveStationInfo(String packCode,String thoroughfare,String device,String workOrderNo,String productCode) 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();
@@ -183,6 +231,8 @@
         DaPassingStationCollection daPassingStationCollection = new DaPassingStationCollection();
         daPassingStationCollection.setSfcCode(packCode);
         daPassingStationCollection.setWorkOrderNo(workOrderNo);
+        daPassingStationCollection.setProductCode(productCode);
+        daPassingStationCollection.setLocationCode(device);
 //        daPassingStationCollection.setInboundTime(startTime);//鍏ョ珯鏃堕棿
 //        daPassingStationCollection.setOutboundTime(stopTime);//鍑虹珯鏃堕棿
         daPassingStationCollection.setOutRsSign(stationStatus);//鍑虹珯鏄惁鍚堟牸
@@ -206,7 +256,6 @@
             for(int i=0;i<nodeIdList.size();i++){
                 if(!readWriteEntityList.get(i).getValue().toString().equals("0.0")){
                     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());
@@ -226,6 +275,32 @@
             }
             daParamCollectionService.saveBeachDaParamCollection(daParamCollectionlist);
         }
+        addBaseData(workOrderNo,productType,device,packCode);
 
     }
+
+    public static void addBaseData(String workOrderNo,String productCode,String locationCode,String packCode){
+        Map<String, String> map = new HashMap<>();
+        map.put("GC", "鍗楁禂宸ュ巶");
+        map.put("CXBH", "Pack绾�");
+        map.put("SBBH", "璁惧001");
+        map.put("YGBH", "鍛樺伐001");
+        List<DaParamCollection> confList = new ArrayList<>();
+        map.forEach((key, value) -> {
+            List<DaCollectionParamConf> daCollectionParamConfs = collectionParamConfService.list(new LambdaQueryWrapper<DaCollectionParamConf>()
+                    .eq(DaCollectionParamConf::getProcessesCode,locationCode)
+                    .like(DaCollectionParamConf::getCollectParameterId,key));
+            DaParamCollection saveData = new DaParamCollection();
+            saveData.setWorkOrderNo(workOrderNo);
+            saveData.setProductCode(productCode);
+            saveData.setLocationCode(locationCode);
+            saveData.setSfcCode(packCode);
+            saveData.setParamCode(daCollectionParamConfs.get(0).getCollectParameterId());
+            saveData.setParamName(daCollectionParamConfs.get(0).getCollectParameterName());
+            saveData.setCollectionTime(new Date());
+            saveData.setParamValue(value);
+            confList.add(saveData);
+        });
+        daParamCollectionService.insertBatch(confList);
+    }
 }

--
Gitblit v1.9.3