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