From 7451ba882c5c2dd895fc646e787022301c672916 Mon Sep 17 00:00:00 2001
From: hdy <1105738590@qq.com>
Date: 星期三, 26 三月 2025 18:32:43 +0800
Subject: [PATCH] 修改

---
 billion-main/src/main/java/com/billion/main/da/service/impl/DaMaterialCollectionServiceImpl.java |   65 ++++++++----
 billion-main/src/main/java/com/billion/main/plcServer/CustomRunner.java                          |   20 ++--
 billion-main/src/main/java/com/billion/main/da/service/IDaMaterialCollectionService.java         |    2 
 billion-main/src/main/java/com/billion/main/da/service/impl/DaStationCollectionServiceImpl.java  |    1 
 billion-main/src/main/java/com/billion/main/da/mapper/DaMaterialCollectionMapper.java            |    2 
 billion-main/src/main/java/com/billion/main/da/service/impl/DaParamCollectionServiceImpl.java    |    5 
 billion-main/src/main/java/com/billion/main/constant/Constants.java                              |    2 
 billion-main/src/main/java/com/billion/main/plcServer/sub/OPCUaSubscription.java                 |  144 +++++++++++++++-------------
 8 files changed, 137 insertions(+), 104 deletions(-)

diff --git a/billion-main/src/main/java/com/billion/main/constant/Constants.java b/billion-main/src/main/java/com/billion/main/constant/Constants.java
index 8f31a12..b660986 100644
--- a/billion-main/src/main/java/com/billion/main/constant/Constants.java
+++ b/billion-main/src/main/java/com/billion/main/constant/Constants.java
@@ -10,7 +10,7 @@
     public static final String TWO= "2";
     public static final String RecordData= "RecordData";
     public static final String WorkOrderRequest= "WorkOrderRequest";
-    public static final String TEST= "TEST";
+
 
     public static final List<String> PLC1 = new ArrayList<>();
     public static final List<String> PLC2 = new ArrayList<>();
diff --git a/billion-main/src/main/java/com/billion/main/da/mapper/DaMaterialCollectionMapper.java b/billion-main/src/main/java/com/billion/main/da/mapper/DaMaterialCollectionMapper.java
index 8e81da5..99a8637 100644
--- a/billion-main/src/main/java/com/billion/main/da/mapper/DaMaterialCollectionMapper.java
+++ b/billion-main/src/main/java/com/billion/main/da/mapper/DaMaterialCollectionMapper.java
@@ -37,6 +37,8 @@
      */
     public int insertDaMaterialCollection(DaMaterialCollection daMaterialCollection);
 
+
+
     /**
      * 淇敼鐗╂枡閲囬泦
      * 
diff --git a/billion-main/src/main/java/com/billion/main/da/service/IDaMaterialCollectionService.java b/billion-main/src/main/java/com/billion/main/da/service/IDaMaterialCollectionService.java
index 47761d3..8e055b3 100644
--- a/billion-main/src/main/java/com/billion/main/da/service/IDaMaterialCollectionService.java
+++ b/billion-main/src/main/java/com/billion/main/da/service/IDaMaterialCollectionService.java
@@ -37,6 +37,8 @@
      */
     public void insertDaMaterialCollection(DaMaterialCollection daMaterialCollection);
 
+
+
     /**
      * 淇敼鐗╂枡閲囬泦
      * 
diff --git a/billion-main/src/main/java/com/billion/main/da/service/impl/DaMaterialCollectionServiceImpl.java b/billion-main/src/main/java/com/billion/main/da/service/impl/DaMaterialCollectionServiceImpl.java
index 354b3da..66187dd 100644
--- a/billion-main/src/main/java/com/billion/main/da/service/impl/DaMaterialCollectionServiceImpl.java
+++ b/billion-main/src/main/java/com/billion/main/da/service/impl/DaMaterialCollectionServiceImpl.java
@@ -33,8 +33,9 @@
 {
     @Autowired
     private DaMaterialCollectionMapper daMaterialCollectionMapper;
-
+    @Autowired
     public IBsBomChildInfoService bsBomChildInfoService;
+    @Autowired
     public IOmOrderSchedulingService omOrderSchedulingService;
     /**
      * 鏌ヨ鐗╂枡閲囬泦
@@ -70,6 +71,7 @@
     public void insertDaMaterialCollection(DaMaterialCollection daMaterialCollection)
     {
         String url = "http://172.40.161.71:8890/Interaction/CollectMT";
+
         CollectMT collectMT = new CollectMT();
         DaMaterialCollection  daMaterialCollection1 = new DaMaterialCollection();
         BsBomChildInfo bsBomChildInfo = new BsBomChildInfo();
@@ -79,31 +81,40 @@
         daMaterialCollection1.setParamValue(daMaterialCollection.getParamValue());
         daMaterialCollection1.setCollectTime(daMaterialCollection.getCollectTime());
         omOrderScheduling.setSfcCode(daMaterialCollection.getSfcCode());
-        if(Objects.equals(daMaterialCollection.getLocationCode(), "OP130") || Objects.equals(daMaterialCollection.getLocationCode(), "OP020")){
-            daMaterialCollection1.setMaterialCode("");
-            daMaterialCollection1.setMaterialName(daMaterialCollection.getMaterialName());
-            collectMT.setMaterial1(daMaterialCollection1.getParamName());
-        }else{
-            bsBomChildInfo.setLocationCode(daMaterialCollection.getLocationCode());
-            String materialCode = daMaterialCollection.getSfcCode().length() > 9 ? daMaterialCollection.getSfcCode().substring(0, daMaterialCollection.getSfcCode().length() - 9) : daMaterialCollection.getSfcCode();
-            bsBomChildInfo.setMaterialCode(materialCode);
-            List<BsBomChildInfo> bsBomChildInfoList = bsBomChildInfoService.selectBsBomChildInfoList(bsBomChildInfo);
-            daMaterialCollection1.setMaterialCode(bsBomChildInfoList.get(0).getMaterialCode());
-            daMaterialCollection1.setMaterialName(bsBomChildInfoList.get(0).getMaterialName());
-            collectMT.setMaterial1(bsBomChildInfoList.get(0).getMaterialName());
-        }
-        if(Objects.equals(daMaterialCollection.getLocationCode(), Constants.PLC1.toString()) ||
-                Objects.equals(daMaterialCollection.getLocationCode(), Constants.C005) ||
-                Objects.equals(daMaterialCollection.getLocationCode(), Constants.C060))
+        if(     Constants.PLC1.contains(daMaterialCollection.getLocationCode()) ||
+                Constants.C005.equals(daMaterialCollection.getLocationCode()) ||
+                Constants.C060.equals(daMaterialCollection.getLocationCode()) )
         {omOrderScheduling.setRemarks("Head");}
-        else if(Objects.equals(daMaterialCollection.getLocationCode(), Constants.PLC2.toString()) ||
-                Objects.equals(daMaterialCollection.getLocationCode(), Constants.OP005) ||
-                Objects.equals(daMaterialCollection.getLocationCode(), Constants.OP310))
+        else if(
+                Constants.PLC2.contains(daMaterialCollection.getLocationCode()) ||
+                        Constants.OP005.equals(daMaterialCollection.getLocationCode()) ||
+                        Constants.OP310.equals(daMaterialCollection.getLocationCode()))
         {omOrderScheduling.setRemarks("Body");}
-        else if(Objects.equals(daMaterialCollection.getLocationCode(), Constants.P010))
+        else if(Constants.P010.equals(daMaterialCollection.getLocationCode()))
         {omOrderScheduling.setRemarks("Pre");}
         List<OmOrderScheduling> omOrderSchedulingList = omOrderSchedulingService.selectOmOrderSchedulingList(omOrderScheduling);
-        collectMT.setOrderNumber(omOrderSchedulingList.get(0).getWorkOrderNo());
+        String OrderNumber = omOrderSchedulingList.get(0).getWorkOrderNo();
+        //瑕佹敼锛侊紒锛侊紒
+        if(Objects.equals(daMaterialCollection.getLocationCode(), "OP130") || Objects.equals(daMaterialCollection.getLocationCode(), "OP020")){
+            daMaterialCollection1.setMaterialCode("0");
+            daMaterialCollection1.setMaterialName("0");
+            collectMT.setMaterial1("0");
+        }else{
+//            bsBomChildInfo.setLocationCode(daMaterialCollection.getLocationCode());
+//            bsBomChildInfo.setBomCode(OrderNumber);
+//            List<BsBomChildInfo> bsBomChildInfoList = bsBomChildInfoService.selectBsBomChildInfoList(bsBomChildInfo);
+//            String MaterialCode = bsBomChildInfoList.get(0).getMaterialCode();
+//            String MaterialName = bsBomChildInfoList.get(0).getMaterialName();
+//            daMaterialCollection1.setMaterialCode(MaterialCode);
+//            daMaterialCollection1.setMaterialName(MaterialName);
+//            collectMT.setMaterial1(MaterialName);
+            daMaterialCollection1.setMaterialCode("0");
+            daMaterialCollection1.setMaterialName("0");
+            collectMT.setMaterial1("0");
+        }
+
+        this.save(daMaterialCollection1);
+        collectMT.setOrderNumber(OrderNumber);
         collectMT.setEngineNumber(daMaterialCollection.getSfcCode());
         collectMT.setStationName(daMaterialCollection.getLocationCode());
         collectMT.setPartsNumber(daMaterialCollection.getParamValue());
@@ -116,10 +127,18 @@
             // 璁板綍鏃ュ織
             log.error("鎺ㄩ�佸け璐�");
         }
-        this.save(daMaterialCollection1);
 //        this.save(daMaterialCollection);
     }
 
+
+//    @Override
+//    public void insertDaMaterialCollectionOP020OP130(DaMaterialCollection DaMaterialCollection)
+//    {
+//
+////        this.save(daMaterialCollection);
+//    }
+//
+
     /**
      * 淇敼鐗╂枡閲囬泦
      * 
diff --git a/billion-main/src/main/java/com/billion/main/da/service/impl/DaParamCollectionServiceImpl.java b/billion-main/src/main/java/com/billion/main/da/service/impl/DaParamCollectionServiceImpl.java
index ab341aa..0b7459f 100644
--- a/billion-main/src/main/java/com/billion/main/da/service/impl/DaParamCollectionServiceImpl.java
+++ b/billion-main/src/main/java/com/billion/main/da/service/impl/DaParamCollectionServiceImpl.java
@@ -39,6 +39,7 @@
     private IDaParamCollectionService daParamCollectionService;
     @Resource
     private SqlSessionFactory sqlSessionFactory;
+    @Autowired
     public IOmOrderSchedulingService omOrderSchedulingService;
 
 
@@ -91,7 +92,7 @@
         else if(Objects.equals(daParamCollection.getLocationCode(), Constants.P010))
         {omOrderScheduling.setRemarks("Pre");}
         List<OmOrderScheduling> omOrderSchedulingList = omOrderSchedulingService.selectOmOrderSchedulingList(omOrderScheduling);
-
+        daParamCollectionMapper.insertDaParamCollection(daParamCollection);
         collectQualityData.setOrderNumber(omOrderSchedulingList.get(0).getWorkOrderNo());
         collectQualityData.setStationName(daParamCollection.getLocationCode());
         collectQualityData.setEngineNumber(daParamCollection.getSfcCode());
@@ -107,7 +108,7 @@
             // 璁板綍鏃ュ織
             log.error("鎺ㄩ�佸け璐ワ紝 sfcCode: {}",collectQualityData.getFactoryNumber());
         }
-        return daParamCollectionMapper.insertDaParamCollection(daParamCollection);
+        return 0;
     }
 
     /**
diff --git a/billion-main/src/main/java/com/billion/main/da/service/impl/DaStationCollectionServiceImpl.java b/billion-main/src/main/java/com/billion/main/da/service/impl/DaStationCollectionServiceImpl.java
index 64add0c..8b9172c 100644
--- a/billion-main/src/main/java/com/billion/main/da/service/impl/DaStationCollectionServiceImpl.java
+++ b/billion-main/src/main/java/com/billion/main/da/service/impl/DaStationCollectionServiceImpl.java
@@ -32,6 +32,7 @@
 {
     @Autowired
     private DaStationCollectionMapper daStationCollectionMapper;
+    @Autowired
     public IOmOrderSchedulingService omOrderSchedulingService;
     /**
      * 鏌ヨ杩囩珯閲囬泦
diff --git a/billion-main/src/main/java/com/billion/main/plcServer/CustomRunner.java b/billion-main/src/main/java/com/billion/main/plcServer/CustomRunner.java
index 662940b..7ac51fa 100644
--- a/billion-main/src/main/java/com/billion/main/plcServer/CustomRunner.java
+++ b/billion-main/src/main/java/com/billion/main/plcServer/CustomRunner.java
@@ -214,16 +214,16 @@
         lists.add("PLC4.OP110.RecordData");
         lists.add("PLC4.OP140.RecordData");
 
-        //TEST
-        lists.add("TEST.C005.RecordData");
-        lists.add("TEST.C005.WorkOrderRequest");
-        lists.add("TEST.C060.RecordData");
-        lists.add("TEST.OP005.RecordData");
-        lists.add("TEST.OP005.WorkOrderRequest");
-        lists.add("TEST.OP010.RecordData");
-        lists.add("TEST.OP300.RecordData");
-        lists.add("TEST.P010.RecordData");
-        lists.add("TEST.P010.WorkOrderRequest");
+//        //TEST
+//        lists.add("TEST.C005.RecordData");
+//        lists.add("TEST.C005.WorkOrderRequest");
+//        lists.add("TEST.C060.RecordData");
+//        lists.add("TEST.OP005.RecordData");
+//        lists.add("TEST.OP005.WorkOrderRequest");
+//        lists.add("TEST.OP010.RecordData");
+//        lists.add("TEST.OP300.RecordData");
+//        lists.add("TEST.P010.RecordData");
+//        lists.add("TEST.P010.WorkOrderRequest");
 
         return lists;
     }
diff --git a/billion-main/src/main/java/com/billion/main/plcServer/sub/OPCUaSubscription.java b/billion-main/src/main/java/com/billion/main/plcServer/sub/OPCUaSubscription.java
index 62ceaf1..7d0b0b8 100644
--- a/billion-main/src/main/java/com/billion/main/plcServer/sub/OPCUaSubscription.java
+++ b/billion-main/src/main/java/com/billion/main/plcServer/sub/OPCUaSubscription.java
@@ -25,6 +25,7 @@
 import com.kangaroohy.milo.runner.subscription.SubscriptionCallback;
 import com.kangaroohy.milo.service.MiloService;
 import lombok.extern.slf4j.Slf4j;
+import org.eclipse.milo.opcua.sdk.client.nodes.UaNode;
 import org.springframework.stereotype.Component;
 
 import java.text.SimpleDateFormat;
@@ -100,14 +101,14 @@
                 if (Constants.ZERO.equals(valueString)){
                     miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value(0).build());
                 //璇锋眰杩涚珯
-                } else if (Constants.ONE.equals(valueString)){
+                }  if (Constants.ONE.equals(valueString)){
                     //1.1//棣栧伐绔�
                     if(Constants.ONLINE.contains(device)){
                         miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value(11).build());
                     }
                     //1.2//闄ら宸ョ珯鎵�鏈夊伐绔�
                     else if(
-                            Constants.TEST.contains(device) ||
+//                            Constants.TEST.contains(device) ||
                             Constants.PLC1.contains(device) ||
                             Constants.PLC2.contains(device) ||
                             Constants.PLC3.contains(device) ||
@@ -130,7 +131,6 @@
                                     miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".EngineType").value(EngineType).build());
                                     miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".SerialNumber").value(SerialNumber).build());
                                 }
-
                                 //9L鍙戝姩鏈烘秱鑳惰建杩逛笅鍙�
                                 else if(Constants.OP080.equals(device) && Constants.PLC_4.equals(thoroughfare)){
                                     // 1. 鍒濆鍖栧伐鍗曞璞″苟鏌ヨ宸ュ崟淇℃伅
@@ -183,7 +183,7 @@
                         }
                     }
                 //鍑虹珯淇濆瓨鏁版嵁
-                } else if (Constants.TWO.equals(valueString)) {
+                } if (Constants.TWO.equals(valueString)) {
                     OmProductionOrderInfo omProductionOrderInfo = new OmProductionOrderInfo();
                     OmOrderScheduling omOrderScheduling = new OmOrderScheduling();
                     Object SFCCode = miloService.readFromOpcUa(thoroughfare + "." + device + ".SFCCode").getValue();
@@ -282,55 +282,56 @@
                         if (Objects.equals(nowQty, getPreOrder2.getPlanQty().toString())){
                             omProductionOrderInfoService.updatePreStatus2();
                         }
-                    }else if (Constants.OP020.equals(device)){
-                        final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-                        // 閬嶅巻 MaterialCode35 鍒� MaterialCode40 鍏�6缁勬暟鎹�
-                        for (int i = 35; i <= 40; i++) {  // 淇敼寰幆鑼冨洿
-                                // 鏋勫缓OPC UA鑺傜偣鍦板潃锛堜緥濡傦細PLC1.OP020.MaterialCode35锛�
-                                String nodeId = "PLC1." + device + ".MaterialCode" + i;
-                                // 鍒涘缓閲囬泦瀵硅薄
-                                DaMaterialCollection materialCollection = new DaMaterialCollection();
-                                materialCollection.setSfcCode(SFCCode.toString());
-                                materialCollection.setLocationCode(device);
-                                // 璁剧疆鍙傛暟鍚嶇О锛堟椿濉�1鍒版椿濉�6锛�
-                                int pistonNumber = i - 34;  // 35鈫�1, 36鈫�2...40鈫�6
-                                materialCollection.setParamName("娲诲" + pistonNumber);
-                                // 閫氳繃OPC UA璇诲彇鍙傛暟鍊�
-                                ReadWriteEntity dataRead = miloService.readFromOpcUa(nodeId);
-                                if (dataRead != null && dataRead.getValue() != null) {
-                                    materialCollection.setParamValue(dataRead.getValue().toString());
-                                } else {
-                                    materialCollection.setParamValue("N/A");  // 澶勭悊绌哄�兼儏鍐�
-                                }
-                                Date collectTime = new Date();
-                                ReadWriteEntity collectTimeRead = miloService.readFromOpcUa(thoroughfare + "." + device + ".StopTime");//杩涚珯鏃堕棿
-                                collectTime = format.parse(TimeUtil.test(TimeUtil.stringProcessing(collectTimeRead.getValue().toString())));
-                                materialCollection.setCollectTime( collectTime);
-                                // 鎻掑叆鏁版嵁搴�
-                                daMaterialCollectionService.insertDaMaterialCollection(materialCollection);
-                        }
-                    }else if (Constants.OP130.equals(device)){
-                        final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-                        // 閬嶅巻 MaterialCode35 鍒� MaterialCode40 鍏�6缁勬暟鎹�
-                            String nodeId = "PLC1." + device + ".MaterialCode35" ;
-                            // 鍒涘缓閲囬泦瀵硅薄
-                            DaMaterialCollection materialCollection = new DaMaterialCollection();
-                            materialCollection.setSfcCode(SFCCode.toString());
-                            materialCollection.setLocationCode(device);
-                            materialCollection.setParamName("缂哥洊鐮�");
-                            // 閫氳繃OPC UA璇诲彇鍙傛暟鍊�
-                            ReadWriteEntity dataRead = miloService.readFromOpcUa(nodeId);
-                            if (dataRead != null && dataRead.getValue() != null) {
-                                materialCollection.setParamValue(dataRead.getValue().toString());
-                            } else {
-                                materialCollection.setParamValue("N/A");  // 澶勭悊绌哄�兼儏鍐�
-                            }
-                            Date collectTime = new Date();
-                            ReadWriteEntity collectTimeRead = miloService.readFromOpcUa(thoroughfare + "." + device + ".StopTime");//杩涚珯鏃堕棿
-                            collectTime = format.parse(TimeUtil.test(TimeUtil.stringProcessing(collectTimeRead.getValue().toString())));
-                            materialCollection.setCollectTime( collectTime);
-                            // 鎻掑叆鏁版嵁搴�
-                            daMaterialCollectionService.insertDaMaterialCollection(materialCollection);
+//                    }else if (Constants.OP020.equals(device)){
+//                        final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//                        // 閬嶅巻 MaterialCode35 鍒� MaterialCode40 鍏�6缁勬暟鎹�
+//                        for (int i = 35; i <= 40; i++) {  // 淇敼寰幆鑼冨洿
+//                                // 鏋勫缓OPC UA鑺傜偣鍦板潃锛堜緥濡傦細PLC1.OP020.MaterialCode35锛�
+//                                String nodeId = "PLC2." + device + ".MaterialCode" + i;
+//                                // 鍒涘缓閲囬泦瀵硅薄
+//                                DaMaterialCollection materialCollection = new DaMaterialCollection();
+//                                materialCollection.setSfcCode(SFCCode.toString());
+//                                materialCollection.setLocationCode(device);
+//                                // 璁剧疆鍙傛暟鍚嶇О锛堟椿濉�1鍒版椿濉�6锛�
+//                                int pistonNumber = i - 34;  // 35鈫�1, 36鈫�2...40鈫�6
+//                                materialCollection.setParamName("娲诲" + pistonNumber);
+//                                // 閫氳繃OPC UA璇诲彇鍙傛暟鍊�
+//                                ReadWriteEntity dataRead = miloService.readFromOpcUa(nodeId);
+//                                if (dataRead != null && dataRead.getValue() != null && !Objects.equals(dataRead.getValue(), "                                                  ")) {
+//                                    materialCollection.setParamValue(dataRead.getValue().toString());
+//                                    Date collectTime = new Date();
+//                                    ReadWriteEntity collectTimeRead = miloService.readFromOpcUa(thoroughfare + "." + device + ".StopTime");//杩涚珯鏃堕棿
+//                                    collectTime = format.parse(TimeUtil.test(TimeUtil.stringProcessing(collectTimeRead.getValue().toString())));
+//                                    materialCollection.setCollectTime( collectTime);
+//                                    // 鎻掑叆鏁版嵁搴�
+//                                    daMaterialCollectionService.insertDaMaterialCollection(materialCollection);
+//                                } else {
+//                                    log.info("娲诲鍙蜂负绌�: {}",materialCollection.getParamName() );
+//                                }
+//                        }
+//                    }else if (Constants.OP130.equals(device)){
+//                        final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//                        // 閬嶅巻 MaterialCode35 鍒� MaterialCode40 鍏�6缁勬暟鎹�
+//                            String nodeId = "PLC3." + device + ".MaterialCode35" ;
+//                            // 鍒涘缓閲囬泦瀵硅薄
+//                            DaMaterialCollection materialCollection = new DaMaterialCollection();
+//                            materialCollection.setSfcCode(SFCCode.toString());
+//                            materialCollection.setLocationCode(device);
+//                            materialCollection.setParamName("缂哥洊鐮�");
+//                            // 閫氳繃OPC UA璇诲彇鍙傛暟鍊�
+//                            ReadWriteEntity dataRead = miloService.readFromOpcUa(nodeId);
+//                            if (dataRead != null && dataRead.getValue() != null && !Objects.equals(dataRead.getValue(), "                                                  ")) {
+//                                materialCollection.setParamValue(dataRead.getValue().toString());
+//                                Date collectTime = new Date();
+//                                ReadWriteEntity collectTimeRead = miloService.readFromOpcUa(thoroughfare + "." + device + ".StopTime");//杩涚珯鏃堕棿
+//                                collectTime = format.parse(TimeUtil.test(TimeUtil.stringProcessing(collectTimeRead.getValue().toString())));
+//                                materialCollection.setCollectTime( collectTime);
+//                                // 鎻掑叆鏁版嵁搴�
+//                                daMaterialCollectionService.insertDaMaterialCollection(materialCollection);
+//                            } else {
+//                                log.info("缂哥洊鐮佷负绌�: {}",materialCollection.getParamName() );
+//                            }
+
                     }
                     //鍑虹珯淇濆瓨
                     DaStationCollection daStationCollection = new DaStationCollection();
@@ -354,6 +355,7 @@
                     daCollectionParamConf1.setDescriptive("1");
                     List<DaCollectionParamConf> daCollectionParamConfList1 = daCollectionParamConfService.selectDaCollectionParamConfList(daCollectionParamConf1);
                     for (DaCollectionParamConf conf : daCollectionParamConfList1) {
+                        String index = String.valueOf(daCollectionParamConfList1.indexOf(conf));
                         String gatherAddress = conf.getGatherAddress();
                         String valueObj = null;
                         ReadWriteEntity entity = miloService.readFromOpcUa(gatherAddress);
@@ -363,6 +365,7 @@
                                 valueObj = value.toString();  // 鏈�缁堣祴鍊�
                                 if (!Objects.equals(valueObj, "                                                  ")) {
                                     DaMaterialCollection materialCollection = new DaMaterialCollection();
+                                    materialCollection.setRemark(index);
                                     materialCollection.setSfcCode(SFCCode.toString());
                                     materialCollection.setLocationCode(device);
                                     materialCollection.setParamName(conf.getParameterSetName());
@@ -386,22 +389,27 @@
                     List<DaCollectionParamConf> daCollectionParamConfList2 = daCollectionParamConfService.selectDaCollectionParamConfList(daCollectionParamConf2);
                     for (DaCollectionParamConf conf : daCollectionParamConfList2) {
                         String gatherAddress = conf.getGatherAddress();
-                        String valueObj = miloService.readFromOpcUa(gatherAddress).getValue().toString(); // 鑾峰彇鍘熷鍊煎璞♀��:ml-citation{ref="4" data="citationList"}
-                        if (!Objects.equals(valueObj, "0.0") && !Objects.equals(valueObj, "0")) {
-                            DaParamCollection paramCollection = new DaParamCollection();
-                            paramCollection.setSfcCode(SFCCode.toString());
-                            paramCollection.setLocationCode(device);
-                            paramCollection.setParamName(conf.getParameterSetName());
-                            paramCollection.setParamValue(miloService.readFromOpcUa(gatherAddress).getValue().toString());
-                            Date Time = new Date();
-                            ReadWriteEntity TimeRead = miloService.readFromOpcUa(thoroughfare + "." + device + ".StopTime");
-                            Time = format.parse(TimeUtil.test(TimeUtil.stringProcessing(TimeRead.getValue().toString())));
-                            paramCollection.setCollectTime(Time);
-                            daParamCollectionService.insertDaParamCollection(paramCollection);
+                        try{
+                            Object valueObj = miloService.readFromOpcUa(gatherAddress).getValue(); // 鑾峰彇鍘熷鍊煎璞♀��:ml-citation{ref="4" data="citationList"}
+                            if (!Objects.equals(valueObj, "0.0") && !Objects.equals(valueObj, "0") && valueObj != null  ) {
+                                DaParamCollection paramCollection = new DaParamCollection();
+                                paramCollection.setSfcCode(SFCCode.toString());
+                                paramCollection.setLocationCode(device);
+                                paramCollection.setParamName(conf.getParameterSetName());
+                                paramCollection.setParamValue(miloService.readFromOpcUa(gatherAddress).getValue().toString());
+                                Date Time = new Date();
+                                ReadWriteEntity TimeRead = miloService.readFromOpcUa(thoroughfare + "." + device + ".StopTime");
+                                Time = format.parse(TimeUtil.test(TimeUtil.stringProcessing(TimeRead.getValue().toString())));
+                                paramCollection.setCollectTime(Time);
+                                daParamCollectionService.insertDaParamCollection(paramCollection);
+                            }
+                            else {
+                                log.info("閲囬泦椤逛负绌�: {}", gatherAddress);
+                            }
+                        }catch (Exception e){
+                            log.error(e.getMessage());
                         }
-                        else {
-                            log.info("閲囬泦椤逛负绌�: {}", gatherAddress);
-                        }
+
                     }
                 }
             }

--
Gitblit v1.9.3