From c76a3fde9098df30b47a546ee90598c4ec3cfb54 Mon Sep 17 00:00:00 2001
From: wujian <14790700720@163.com>
Date: 星期六, 27 四月 2024 17:07:14 +0800
Subject: [PATCH] change model2

---
 jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java |   92 +++++++++++++++++++++++++++++----------------
 1 files changed, 59 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 5b5e9f5..c5cd563 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
@@ -21,15 +21,15 @@
 import com.kangaroohy.milo.model.ReadWriteEntity;
 import com.kangaroohy.milo.runner.subscription.SubscriptionCallback;
 import com.kangaroohy.milo.service.MiloService;
+import javafx.animation.Timeline;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
 
 import java.math.BigDecimal;
+import java.sql.Time;
 import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
+import java.util.*;
+import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
 
@@ -55,6 +55,8 @@
 
     public IBsTechnologyRouteChildInfoService bsTechnologyRouteChildInfoService;
 
+    public HashMap<String,List<DaCollectionParamConf>> allCollectParamList = new HashMap<>();
+
     public OPCUaSubscription(MiloService miloService,
                              IDaCollectionParamConfService collectionParamConfService,
                              IDaParamCollectionService daParamCollectionService,
@@ -71,12 +73,17 @@
         this.lists = lists;
         this.rmRepairRecordService = rmRepairRecordService;
         this.bsTechnologyRouteChildInfoService = bsTechnologyRouteChildInfoService;
+
+
     }
     @Override
     public void onSubscribe(String identifier, Object value) {
         String ecpStr = "";//寮傚父璁板綍鏍囪
         try {
             if(null != value && "1".equals(value.toString())) {
+//                if (OPCElement.OP121_ZZ_CODE_CHECK.equals(identifier)){
+//                    rework("2V91Y RD25D080",identifier);
+//                }
                 //1銆佹绱N鍙�
                 //2銆佽繃绔欏弬鏁伴噰闆�
                 //3銆佹壂鐮佹灙鏁版嵁鍥炰紶
@@ -85,6 +92,8 @@
                 List<String> collect2 = lists.stream().filter(x -> OPCElement.SAVE_DATA.equals(x.getrFunction()))
                         .map(DaOpcuaConfig::getNode).collect(Collectors.toList());
                 if (collect1.contains(identifier)){
+                    log.info("-------鐩戝惉鍒�,{}鐨凜ODE_CHECK鐨勪俊鍙�",identifier);
+                    log.info("-------time--------------,{}",LocalDateTime.now());
                     //sn
                     this.SNRetrieval(identifier,value.toString());
                     if (identifier.equals(OPCElement.OP120_ZZ_CODE_CHECK) && "1".equals(value.toString())){
@@ -95,29 +104,11 @@
                 }
                 if (collect2.contains(identifier)){
                     if ("1".equals(value.toString())){
+                        log.info("-------鐩戝惉鍒�,{}鐨凷AVE_REQUEST_LAST鐨勪俊鍙�",identifier);
+                        log.info("-------time--------------,{}",LocalDateTime.now());
                         //save
                         this.SaveData(identifier);
-                        //杩斿洖plc淇濆瓨鎴愬姛
-                        String[] parts = identifier.split("[.]");
-                        if (parts.length==3){
-                            if ("SaveRequest".equals(parts[2])){
-                                ReadWriteEntity entity = new ReadWriteEntity(parts[0] + "." + parts[1] + ".SaveFeed", 1);
-                                log.info("-------鐩戝惉鍒�,{}鐨剆aveRequest鐨勪俊鍙�",identifier);
-                                Integer i = map.getOrDefault(identifier + "鐨剆aveRequest鐨勪俊鍙�",0);
-                                if (0==i){
-                                    map.put(identifier + "鐨剆aveRequest鐨勪俊鍙�",i+1);
-                                }
-                                miloService.writeToOpcByte(entity);
-                            }else if ("SaveRequestLast".equals(parts[2])){
-                                ReadWriteEntity entity = new ReadWriteEntity(parts[0] + "." + parts[1] + ".SaveFeedLast", 1);
-                                log.info("-------鐩戝惉鍒�,{}鐨凷aveRequestLast鐨勪俊鍙�",identifier);
-                                Integer i = map.getOrDefault(identifier + "鐨凷aveRequestLast鐨勪俊鍙�",0);
-                                if (0==i){
-                                    map.put(identifier + "鐨凷aveRequestLast鐨勪俊鍙�",i+1);
-                                }
-                                miloService.writeToOpcByte(entity);
-                            }
-                        }
+
                     }
                 }
 
@@ -151,7 +142,7 @@
             if(null != SNCodeObject) {
                 String SNCode=SNCodeObject.toString();
                 String a=passingStationCollectionServiceImpl.SelectSN(SNCode,parts[1]);
-                System.out.println("codeCheckFeed:"+a);
+                log.info("-----杩斿洖codeCheckFeed-----,{}",a);
 //                String a="1";
                 // 1:OK鍙敓浜� 2:NG涓嶅彲鐢熶骇 3:NG鍙繑宸� 4:PC妫�绱㈠け璐ワ紙鏃犺褰曪級5:PC妫�绱㈠け璐ワ紙杞欢锛�
                 if (StrUtil.isNotBlank(a)){
@@ -277,6 +268,13 @@
 //                writeList.add(readWriteEntity);
 //            });
 //        }
+        String[] parts = Node.split("[.]");
+        String a=passingStationCollectionServiceImpl.SelectSN(SNCode,parts[1]);
+        if (StrUtil.isNotBlank(a)){
+            int input = Integer.parseInt(a);
+            ReadWriteEntity entity = new ReadWriteEntity(parts[0]+"."+parts[1]+".CodeCheckFeed", input);
+            writeList.add(entity);
+        }
         ReadWriteEntity readWriteEntity = new ReadWriteEntity();
         readWriteEntity.setIdentifier("Repair_sign");
         readWriteEntity.setValue(minOP);
@@ -294,11 +292,21 @@
         if(null != SNCodeObject)
         {
             String SNCode = SNCodeObject.toString();
-            List<DaCollectionParamConf> list;
-            DaCollectionParamConf daCollectionParamConf = new DaCollectionParamConf();
-            daCollectionParamConf.setGatherAddress(parts[0] + "." + parts[1]);
-            daCollectionParamConf.setRemarks("1");
-            list = collectionParamConfService.selectDaCollectionParamConfList(daCollectionParamConf);
+            Object object = miloService.readFromOpcUa(parts[0] + "." + parts[1] + ".Runtime").getValue();
+            String gatherAddress = parts[0] + "." + parts[1];
+            List<DaCollectionParamConf> list = new ArrayList<>();
+            if (allCollectParamList.containsKey(gatherAddress)){
+                list = allCollectParamList.get(gatherAddress);
+            }else {
+                DaCollectionParamConf daCollectionParamConf = new DaCollectionParamConf();
+                daCollectionParamConf.setGatherAddress(gatherAddress);
+                daCollectionParamConf.setRemarks("1");
+                list = collectionParamConfService.selectDaCollectionParamConfList(daCollectionParamConf);
+                if (CollUtil.isNotEmpty(list)){
+                    //鍔犲叆hashmap
+                    allCollectParamList.put(gatherAddress,list);
+                }
+            }
 
             List<String> nodeIdList = list.stream().map(info -> {
                 String nodeid = info.getGatherAddress();
@@ -306,7 +314,23 @@
             }).collect(Collectors.toList());
 
             if(!nodeIdList.isEmpty()){
+                long time1 = new Date().getTime();
                 List<ReadWriteEntity> readWriteEntityList = miloService.readFromOpcUa(nodeIdList);
+                long time2 = new Date().getTime();
+                log.info("璇诲彇鐐逛綅鑺辫垂鏃堕棿锛歿},",time2-time1);
+
+                //杩斿洖plc淇濆瓨鎴愬姛
+                if (parts.length==3){
+                    if ("SaveRequest".equals(parts[2])){
+                        ReadWriteEntity entity = new ReadWriteEntity(parts[0] + "." + parts[1] + ".SaveFeed", 1);
+                                miloService.writeToOpcByte(entity);
+                    }else if ("SaveRequestLast".equals(parts[2])){
+                        ReadWriteEntity entity = new ReadWriteEntity(parts[0] + "." + parts[1] + ".SaveFeedLast", 1);
+                                miloService.writeToOpcByte(entity);
+                    }
+                    log.info("-------璇锋眰杩斿洖,{}鐨凷aveFeedLast鐨勪俊鍙�",Node);
+                    log.info("-------璇锋眰杩斿洖-----,{}",LocalDateTime.now());
+                }
                 List<DaParamCollection> daParamCollectionlist = new ArrayList<>();
                 for(int i=0;i<nodeIdList.size();i++){
                     if(!readWriteEntityList.get(i).getValue().toString().equals("0.0")){
@@ -329,11 +353,11 @@
                         daParamCollectionlist.add(ParamCollection);
                     }
                 }
-                System.out.println("11111111111111");
                 daParamCollectionService.saveBeachDaParamCollection(daParamCollectionlist);
+                log.info("-------淇濆瓨鏁版嵁瀹屾垚---------");
             }
 
-            Object object = miloService.readFromOpcUa(parts[0] + "." + parts[1] + ".Runtime").getValue();
+
             Long beatTime = 0L;
             if (ObjectUtil.isNotEmpty(object)){
                 String str = object.toString();
@@ -349,6 +373,8 @@
             PassingStationCollection.setBeatTime(beatTime.toString());
             PassingStationCollection.setOutRsSign("鍚堟牸");
             passingStationCollectionServiceImpl.insertDaPassingStationCollection(PassingStationCollection);
+            log.info("-------淇濆瓨杩囩珯璁板綍鏁版嵁瀹屾垚---------");
+
         }
     }
 }

--
Gitblit v1.9.3