-
懒羊羊
2024-04-02 8f0f8d2d5e5492b1db16d5166a5e053511844522
提交 | 用户 | 时间
e57a89 1 package com.jcdm.main.da.paramCollection.service.impl;
2
b64ed2 3 import cn.hutool.core.date.DateUtil;
8f0f8d 4 import cn.hutool.db.Db;
0ce25f 5 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
e57a89 6 import com.jcdm.common.utils.DateUtils;
b77c7b 7 import com.jcdm.main.bs.formulaChild.domain.BsFormulaChildInfo;
8 import com.jcdm.main.bs.formulaChild.mapper.BsFormulaChildInfoMapper;
b64ed2 9 import com.jcdm.main.da.collectionParamConf.domain.DaCollectionParamConf;
10 import com.jcdm.main.da.collectionParamConf.mapper.DaCollectionParamConfMapper;
e57a89 11 import com.jcdm.main.da.paramCollection.domain.DaParamCollection;
12 import com.jcdm.main.da.paramCollection.mapper.DaParamCollectionMapper;
13 import com.jcdm.main.da.paramCollection.service.IDaParamCollectionService;
32483a 14 import com.jcdm.main.da.passingStationCollection.domain.DaPassingStationCollection;
15 import com.jcdm.main.da.passingStationCollection.mapper.DaPassingStationCollectionMapper;
16 import com.jcdm.main.da.passingStationCollection.service.IDaPassingStationCollectionService;
054a69 17 import com.jcdm.main.plcserver.sub.OPCUaSubscription;
32483a 18 import com.kangaroohy.milo.model.ReadWriteEntity;
19 import com.kangaroohy.milo.service.MiloService;
054a69 20 import org.apache.ibatis.session.ExecutorType;
21 import org.apache.ibatis.session.SqlSession;
22 import org.apache.ibatis.session.SqlSessionFactory;
e57a89 23 import org.springframework.beans.factory.annotation.Autowired;
24 import org.springframework.stereotype.Service;
25
054a69 26 import javax.annotation.Resource;
b64ed2 27 import java.util.*;
e57a89 28
29 /**
30  * 设备产品过程参数采集Service业务层处理
31  * 
32  * @author yyt
33  * @date 2023-12-13
34  */
35 @Service
0ce25f 36 public class DaParamCollectionServiceImpl extends ServiceImpl<DaParamCollectionMapper,DaParamCollection> implements IDaParamCollectionService
e57a89 37 {
38     @Autowired
39     private DaParamCollectionMapper daParamCollectionMapper;
b64ed2 40
41     @Autowired
42     private DaCollectionParamConfMapper daCollectionParamConfMapper;
b77c7b 43
44     @Autowired
45     private BsFormulaChildInfoMapper bsFormulaChildInfoMapper;
32483a 46
47     @Autowired
48     private MiloService miloService;
49
50     @Autowired
51     private DaPassingStationCollectionMapper daPassingStationCollectionMapper;
e57a89 52
054a69 53     @Resource
54     private SqlSessionFactory sqlSessionFactory;
55
e57a89 56     /**
57      * 查询设备产品过程参数采集
58      * 
59      * @param id 设备产品过程参数采集主键
60      * @return 设备产品过程参数采集
61      */
62     @Override
63     public DaParamCollection selectDaParamCollectionById(Long id)
64     {
65         return daParamCollectionMapper.selectDaParamCollectionById(id);
66     }
67
68     /**
69      * 查询设备产品过程参数采集列表
70      * 
71      * @param daParamCollection 设备产品过程参数采集
72      * @return 设备产品过程参数采集
73      */
74     @Override
75     public List<DaParamCollection> selectDaParamCollectionList(DaParamCollection daParamCollection)
76     {
77         return daParamCollectionMapper.selectDaParamCollectionList(daParamCollection);
054a69 78     }
79
80     @Override
81     public void saveBeachDaParamCollection(List<DaParamCollection> list) {
82         // ExecutorType.SIMPLE: 这个执行器类型不做特殊的事情。它为每个语句的执行创建一个新的预处理语句。
83         // ExecutorType.REUSE: 这个执行器类型会复用预处理语句。
84         // ExecutorType.BATCH: 这个执行器会批量执行所有更新语句,如果 SELECT 在它们中间执行还会标定它们是 必须的,来保证一个简单并易于理解的行为。
85
86         // 关闭session的自动提交
87         SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false);
88         try {
89             DaParamCollectionMapper userMapper = sqlSession.getMapper(DaParamCollectionMapper.class);
90             list.stream().forEach(DaParamCollection -> userMapper.insertDaParamCollection(DaParamCollection));
91             // 提交数据
92             sqlSession.commit();
93             sqlSession.rollback();
94         } catch (Exception e) {
95             sqlSession.rollback();
96         } finally {
97             sqlSession.close();
98         }
e57a89 99     }
100
101     /**
102      * 新增设备产品过程参数采集
103      * 
104      * @param daParamCollection 设备产品过程参数采集
105      * @return 结果
106      */
107     @Override
108     public int insertDaParamCollection(DaParamCollection daParamCollection)
109     {
110         daParamCollection.setCreateTime(DateUtils.getNowDate());
111         return daParamCollectionMapper.insertDaParamCollection(daParamCollection);
112     }
113
114     /**
115      * 修改设备产品过程参数采集
116      * 
117      * @param daParamCollection 设备产品过程参数采集
118      * @return 结果
119      */
120     @Override
121     public int updateDaParamCollection(DaParamCollection daParamCollection)
122     {
123         daParamCollection.setUpdateTime(DateUtils.getNowDate());
124         return daParamCollectionMapper.updateDaParamCollection(daParamCollection);
125     }
126
127     /**
128      * 批量删除设备产品过程参数采集
129      * 
130      * @param ids 需要删除的设备产品过程参数采集主键
131      * @return 结果
132      */
133     @Override
134     public int deleteDaParamCollectionByIds(Long[] ids)
135     {
136         return daParamCollectionMapper.deleteDaParamCollectionByIds(ids);
137     }
138
139     /**
140      * 删除设备产品过程参数采集信息
141      * 
142      * @param id 设备产品过程参数采集主键
143      * @return 结果
144      */
145     @Override
146     public int deleteDaParamCollectionById(Long id)
147     {
148         return daParamCollectionMapper.deleteDaParamCollectionById(id);
149     }
b64ed2 150
151     @Override
152     public void addBasicParameters(DaParamCollection daParamCollection) {
153         // 假设这是从数据库或其他地方获取的参数数据
154         Map<String, String> map = new HashMap<>();
155         map.put("GC", "南浔工厂");
156         map.put("CXBH", "Pack线");
157         map.put("SBBH", "设备001");
158         map.put("YGBH", "员工001");
159         map.put("GDBH", daParamCollection.getWorkOrderNo());
160         map.put("CPXH", daParamCollection.getModel());
161         map.put("INT", DateUtil.formatDateTime(new Date()));
162
163         map.forEach((key, value) -> {
164             DaCollectionParamConf daCollectionParamConf = new DaCollectionParamConf();
165             daCollectionParamConf.setProcessesCode(daParamCollection.getLocationCode());
166             daCollectionParamConf.setCollectParameterId(key);
167             List<DaCollectionParamConf> daCollectionParamConfs = daCollectionParamConfMapper.selectDaCollectionParamConfList(daCollectionParamConf);
168             DaParamCollection saveData = new DaParamCollection();
169             saveData.setWorkOrderNo(daParamCollection.getWorkOrderNo());
170             saveData.setProductCode(daParamCollection.getProductCode());
171             saveData.setLocationCode(daParamCollection.getLocationCode());
3c2299 172             saveData.setSfcCode(daParamCollection.getProductBarcode());
b64ed2 173             saveData.setParamCode(daCollectionParamConfs.get(0).getCollectParameterId());
174             saveData.setParamName(daCollectionParamConfs.get(0).getCollectParameterName());
175             saveData.setCollectionTime(new Date());
176             saveData.setParamValue(value);
177             daParamCollectionMapper.insertDaParamCollection(saveData);
178         });
179     }
49c784 180
181     @Override
182     public void addTighteningParameters(DaParamCollection daParamCollection) {
b77c7b 183         String tightenData = daParamCollection.getTightenTheArray();
184         tightenData = tightenData.replace("[", "").replace("]", "").replace(" ", "");
185         String[] tightenDataParts = tightenData.split(",");
186         String paramCode = daParamCollection.getParamCode();
187         String[] paramCodeParts = paramCode.split(",");
188         for (int i = 0; i < paramCodeParts.length; i++) {
189             daParamCollection.setParamValue(tightenDataParts[i]);
190             daParamCollection.setParamCode(paramCodeParts[i]);
191             daParamCollection.setCollectionTime(new Date());
192             daParamCollection.setSfcCode(daParamCollection.getProductBarcode());
193             daParamCollectionMapper.insertDaParamCollection(daParamCollection);
194         }
49c784 195     }
32483a 196
197     @Override
198     public void saveCampaignTimeParameters(DaParamCollection daParamCollection) {
199         BsFormulaChildInfo bsFormulaChildInfo = new BsFormulaChildInfo();
200         bsFormulaChildInfo.setProcessesCode(daParamCollection.getLocationCode());
201         bsFormulaChildInfo.setProductCode(daParamCollection.getProductCode());
202         bsFormulaChildInfo.setSpareField4("1");
203         List<BsFormulaChildInfo> bsFormulaChildInfos = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(bsFormulaChildInfo);
204         String result = bsFormulaChildInfos.get(0).getResults();
205         if(result != null && !result.isEmpty()){
206             try {
207                 //过站参数采集记录出站时间
208                 DaCollectionParamConf daCollectionParamConf = new DaCollectionParamConf();
209                 daCollectionParamConf.setProcessesCode(daParamCollection.getLocationCode());
210                 daCollectionParamConf.setCollectParameterId("OUTT");
211                 List<DaCollectionParamConf> daCollectionParamConfs = daCollectionParamConfMapper.selectDaCollectionParamConfList(daCollectionParamConf);
212                 DaParamCollection saveData = new DaParamCollection();
213                 saveData.setWorkOrderNo(daParamCollection.getWorkOrderNo());
214                 saveData.setProductCode(daParamCollection.getProductCode());
215                 saveData.setLocationCode(daParamCollection.getLocationCode());
216                 saveData.setSfcCode(daParamCollection.getProductBarcode());
217                 saveData.setParamCode(daCollectionParamConfs.get(0).getCollectParameterId());
218                 saveData.setParamName(daCollectionParamConfs.get(0).getCollectParameterName());
219                 saveData.setCollectionTime(new Date());
220                 saveData.setParamValue(DateUtil.formatDateTime(new Date()));
221                 daParamCollectionMapper.insertDaParamCollection(saveData);
222
223                 //更新过站记录表出站时间
224                 DaPassingStationCollection daPassingStationCollection = new DaPassingStationCollection();
225                 daPassingStationCollection.setWorkOrderNo(daParamCollection.getWorkOrderNo());
1df825 226                 daPassingStationCollection.setLocationCode(daParamCollection.getLocationCode());
32483a 227                 List<DaPassingStationCollection> daPassingStationCollections = daPassingStationCollectionMapper.selectDaPassingStationCollectionList(daPassingStationCollection);
228                 daPassingStationCollections.get(0).setOutboundTime(new Date());
229                 int i = daPassingStationCollectionMapper.updateDaPassingStationCollection(daPassingStationCollections.get(0));
230
8f0f8d 231 //                OPCUaSubscription.SaveParamData(daParamCollection.getProductBarcode(),"OP",daParamCollection.getLocationCode(),daParamCollection.getWorkOrderNo(),daParamCollection.getProductCode());
054a69 232
32483a 233                 //给opc发21
234                 miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("OP."+daParamCollection.getLocationCode()+".RecordDataDone").value(21).build());
235             } catch (Exception e) {
236                 throw new RuntimeException(e);
237             }
238         }
239     }
8f0f8d 240
241     @Override
242     public void insertBatch(List<DaParamCollection> confList){
243         try{
244             this.saveBatch(confList);
245         }catch (Exception e){
246             return;
247         }
248
249     }
e57a89 250 }