From a9406b6b18ee5a8e29cad3248f46320a36ac9749 Mon Sep 17 00:00:00 2001
From: yyt <306727702@qq.com>
Date: 星期三, 21 二月 2024 00:19:44 +0800
Subject: [PATCH] 批量数据采集方法更新

---
 jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/cert/MethodName.java                               |   39 +++++++++++--------
 jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/service/IDaParamCollectionService.java         |    8 ++++
 jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/service/impl/DaParamCollectionServiceImpl.java |   29 ++++++++++++++
 3 files changed, 60 insertions(+), 16 deletions(-)

diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/cert/MethodName.java b/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/cert/MethodName.java
index 290c19a..26111de 100644
--- a/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/cert/MethodName.java
+++ b/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/cert/MethodName.java
@@ -1,5 +1,6 @@
 package com.jcdm.main.da.opcuaconfig.cert;
 
+import cn.hutool.core.date.StopWatch;
 import com.jcdm.main.da.collectionParamConf.domain.DaCollectionParamConf;
 import com.jcdm.main.da.collectionParamConf.service.IDaCollectionParamConfService;
 import com.jcdm.main.da.opcuaconfig.client.ClientHandler;
@@ -51,22 +52,28 @@
                 DaCollectionParamConf daCollectionParamConf=new DaCollectionParamConf();
                 daCollectionParamConf.setGatherAddress(parts[0]+"."+parts[1]);
                 b=collectionParamConfService.selectDaCollectionParamConfList(daCollectionParamConf);
-
-                List<NodeId> nodeId = b.stream().map(info -> {
-                    NodeId nodeid = new NodeId(2,info.getGatherAddress());
-                    return nodeid;
-                }).collect(Collectors.toList());
-                List<DataValue> s=readValues(nodeId);
-                //淇濆瓨PLC閲囬泦鏁版嵁
-                for(int i=0;i<nodeId.size();i++)
-                {
-                    DaParamCollection Config=new DaParamCollection();
-                    Config.setParamCode(nodeId.get(i).getIdentifier().toString().split("[.]")[2]);
-                    Config.setLocationCode(nodeId.get(i).getIdentifier().toString().split("[.]")[1]);
-                    Config.setParamValue(s.get(i).getValue().getValue().toString());
-                    Config.setSfcCode(SNCode);
-                    Config.setParamName(b.get(i).getGatherAddress());
-                    daParamCollectionService.insertDaParamCollection(Config);
+                if(b!=null&&b.size()>0){
+                    List<NodeId> nodeId = b.stream().map(info -> {
+                        NodeId nodeid = new NodeId(2,info.getGatherAddress());
+                        return nodeid;
+                    }).collect(Collectors.toList());
+                    List<DataValue> s=readValues(nodeId);
+                    //淇濆瓨PLC閲囬泦鏁版嵁
+//                  StopWatch stopWatch = new StopWatch();
+//                  stopWatch.start();
+                    List<DaParamCollection> DaParamCollectionlist = new ArrayList<>();
+                    for(int i=0;i<nodeId.size();i++){
+                        DaParamCollection ParamCollection = new DaParamCollection();
+                        ParamCollection.setParamCode(nodeId.get(i).getIdentifier().toString().split("[.]")[2]);
+                        ParamCollection.setLocationCode(nodeId.get(i).getIdentifier().toString().split("[.]")[1]);
+                        ParamCollection.setParamValue(s.get(i).getValue().getValue().toString());
+                        ParamCollection.setSfcCode(SNCode);
+                        ParamCollection.setParamName(b.get(i).getGatherAddress());
+                        DaParamCollectionlist.add(ParamCollection);
+                    }
+                    daParamCollectionService.saveBeachDaParamCollection(DaParamCollectionlist);
+//                  stopWatch.stop();
+//                  System.out.println("浣跨敤sqlSessionFactory瀹炵幇鎵归噺鎻掑叆鑰楁椂锛�" + stopWatch.getTotalTimeMillis());
                 }
                 //璁板綍杩囩珯锛屽苟璁$畻鑺傛媿銆�
                 DaPassingStationCollection PassingStationCollection=new DaPassingStationCollection();
diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/service/IDaParamCollectionService.java b/jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/service/IDaParamCollectionService.java
index 95c23fe..3ca879f 100644
--- a/jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/service/IDaParamCollectionService.java
+++ b/jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/service/IDaParamCollectionService.java
@@ -59,4 +59,12 @@
      * @return 缁撴灉
      */
     public int deleteDaParamCollectionById(Long id);
+
+    /**
+     * 浣跨敤sqlSessionFactory瀹炵幇鎵归噺鎻掑叆鏁版嵁
+     *
+     * @param list 璁惧浜у搧杩囩▼鍙傛暟閲囬泦涓婚敭
+     * @return 缁撴灉
+     */
+    void saveBeachDaParamCollection(List<DaParamCollection> list);
 }
diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/service/impl/DaParamCollectionServiceImpl.java b/jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/service/impl/DaParamCollectionServiceImpl.java
index 4cfa0c6..0ab83b0 100644
--- a/jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/service/impl/DaParamCollectionServiceImpl.java
+++ b/jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/service/impl/DaParamCollectionServiceImpl.java
@@ -6,8 +6,13 @@
 import com.jcdm.main.da.paramCollection.mapper.DaParamCollectionMapper;
 import com.jcdm.main.da.paramCollection.service.IDaParamCollectionService;
 import com.jcdm.main.om.productionOrde.service.IOmProductionOrdeInfoService;
+import org.apache.ibatis.session.ExecutorType;
+import org.apache.ibatis.session.SqlSession;
+import org.apache.ibatis.session.SqlSessionFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
 
 /**
  * 璁惧浜у搧杩囩▼鍙傛暟閲囬泦Service涓氬姟灞傚鐞�
@@ -23,6 +28,9 @@
 
     @Autowired
     private IDaParamCollectionService daParamCollectionService;
+
+    @Resource
+    private SqlSessionFactory sqlSessionFactory;
 
     /**
      * 鏌ヨ璁惧浜у搧杩囩▼鍙傛暟閲囬泦
@@ -102,4 +110,25 @@
     {
         return daParamCollectionMapper.deleteDaParamCollectionById(id);
     }
+
+    @Override
+    public void saveBeachDaParamCollection(List<DaParamCollection> list) {
+        // ExecutorType.SIMPLE: 杩欎釜鎵ц鍣ㄧ被鍨嬩笉鍋氱壒娈婄殑浜嬫儏銆傚畠涓烘瘡涓鍙ョ殑鎵ц鍒涘缓涓�涓柊鐨勯澶勭悊璇彞銆�
+        // ExecutorType.REUSE: 杩欎釜鎵ц鍣ㄧ被鍨嬩細澶嶇敤棰勫鐞嗚鍙ャ��
+        // ExecutorType.BATCH: 杩欎釜鎵ц鍣ㄤ細鎵归噺鎵ц鎵�鏈夋洿鏂拌鍙�,濡傛灉 SELECT 鍦ㄥ畠浠腑闂存墽琛岃繕浼氭爣瀹氬畠浠槸 蹇呴』鐨�,鏉ヤ繚璇佷竴涓畝鍗曞苟鏄撲簬鐞嗚В鐨勮涓恒��
+
+        // 鍏抽棴session鐨勮嚜鍔ㄦ彁浜�
+        SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false);
+        try {
+            DaParamCollectionMapper userMapper = sqlSession.getMapper(DaParamCollectionMapper.class);
+            list.stream().forEach(DaParamCollection -> userMapper.insertDaParamCollection(DaParamCollection));
+            // 鎻愪氦鏁版嵁
+            sqlSession.commit();
+            sqlSession.rollback();
+        } catch (Exception e) {
+            sqlSession.rollback();
+        } finally {
+            sqlSession.close();
+        }
+    }
 }

--
Gitblit v1.9.3