提交 | 用户 | 时间
e57a89 1 package com.jcdm.main.da.paramCollection.service.impl;
2
6a462f 3 import cn.hutool.core.collection.CollUtil;
b64ed2 4 import cn.hutool.core.date.DateUtil;
237733 5 import cn.hutool.core.util.ObjectUtil;
6a462f 6 import cn.hutool.core.util.StrUtil;
8f0f8d 7 import cn.hutool.db.Db;
6a462f 8 import cn.hutool.http.HttpRequest;
W 9 import cn.hutool.http.HttpResponse;
10 import cn.hutool.json.JSONUtil;
7bee80 11 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
0ce25f 12 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
237733 13 import com.jcdm.common.core.domain.AjaxResult;
e57a89 14 import com.jcdm.common.utils.DateUtils;
a60fef 15 import com.jcdm.common.utils.StringUtils;
7bee80 16 import com.jcdm.main.bs.formula.service.IBsFormulaInfoService;
17 import com.jcdm.main.bs.formula.service.impl.BsFormulaInfoServiceImpl;
b77c7b 18 import com.jcdm.main.bs.formulaChild.domain.BsFormulaChildInfo;
19 import com.jcdm.main.bs.formulaChild.mapper.BsFormulaChildInfoMapper;
7bee80 20 import com.jcdm.main.bs.formulaChild.service.IBsFormulaChildInfoService;
6a462f 21 import com.jcdm.main.constant.Constants;
b64ed2 22 import com.jcdm.main.da.collectionParamConf.domain.DaCollectionParamConf;
23 import com.jcdm.main.da.collectionParamConf.mapper.DaCollectionParamConfMapper;
5966d6 24 import com.jcdm.main.da.collectionParamConf.service.IDaCollectionParamConfService;
e57a89 25 import com.jcdm.main.da.paramCollection.domain.DaParamCollection;
26 import com.jcdm.main.da.paramCollection.mapper.DaParamCollectionMapper;
27 import com.jcdm.main.da.paramCollection.service.IDaParamCollectionService;
8cfe20 28 import com.jcdm.main.da.paramCollectionTemp.domain.DaParamCollectionTemp;
A 29 import com.jcdm.main.da.paramCollectionTemp.service.IDaParamCollectionTempService;
32483a 30 import com.jcdm.main.da.passingStationCollection.domain.DaPassingStationCollection;
31 import com.jcdm.main.da.passingStationCollection.mapper.DaPassingStationCollectionMapper;
32 import com.jcdm.main.da.passingStationCollection.service.IDaPassingStationCollectionService;
2fbce7 33 import com.jcdm.main.om.productionOrde.service.IOmProductionOrdeInfoService;
054a69 34 import com.jcdm.main.plcserver.sub.OPCUaSubscription;
237733 35 import com.jcdm.main.restful.factoryMes.service.RestfulService;
6a462f 36 import com.jcdm.main.restful.qingYan.doman.ChildVO;
W 37 import com.jcdm.main.restful.qingYan.doman.ParentVO;
32483a 38 import com.kangaroohy.milo.model.ReadWriteEntity;
39 import com.kangaroohy.milo.service.MiloService;
bdb404 40 import lombok.extern.slf4j.Slf4j;
054a69 41 import org.apache.ibatis.session.ExecutorType;
42 import org.apache.ibatis.session.SqlSession;
43 import org.apache.ibatis.session.SqlSessionFactory;
bdb404 44 import org.slf4j.Logger;
A 45 import org.slf4j.LoggerFactory;
e57a89 46 import org.springframework.beans.factory.annotation.Autowired;
5966d6 47 import org.springframework.security.core.parameters.P;
e57a89 48 import org.springframework.stereotype.Service;
49
054a69 50 import javax.annotation.Resource;
5966d6 51 import java.text.SimpleDateFormat;
A 52 import java.time.Instant;
b64ed2 53 import java.util.*;
d76bba 54 import java.util.concurrent.CompletableFuture;
6a462f 55 import java.util.stream.Collectors;
e57a89 56
57 /**
58  * 设备产品过程参数采集Service业务层处理
59  * 
60  * @author yyt
61  * @date 2023-12-13
62  */
bdb404 63 @Slf4j
e57a89 64 @Service
0ce25f 65 public class DaParamCollectionServiceImpl extends ServiceImpl<DaParamCollectionMapper,DaParamCollection> implements IDaParamCollectionService
e57a89 66 {
bdb404 67     private static final Logger logger = LoggerFactory.getLogger("sys-user");
A 68
e57a89 69     @Autowired
70     private DaParamCollectionMapper daParamCollectionMapper;
b64ed2 71
72     @Autowired
73     private DaCollectionParamConfMapper daCollectionParamConfMapper;
b77c7b 74
75     @Autowired
76     private BsFormulaChildInfoMapper bsFormulaChildInfoMapper;
7bee80 77
78     @Autowired
79     private IBsFormulaChildInfoService bsFormulaChildInfoService;
32483a 80
81     @Autowired
82     private MiloService miloService;
83
84     @Autowired
85     private DaPassingStationCollectionMapper daPassingStationCollectionMapper;
e57a89 86
054a69 87     @Resource
88     private SqlSessionFactory sqlSessionFactory;
89
ddb300 90     @Autowired
A 91     private IDaParamCollectionService daParamCollectionService;
5966d6 92
A 93     @Autowired
94     private IDaCollectionParamConfService daCollectionParamConfService;
8cfe20 95
A 96     @Autowired
97     private IDaParamCollectionTempService daParamCollectionTempService;
2fbce7 98
A 99     @Autowired
100     private IOmProductionOrdeInfoService omProductionOrdeInfoService;
237733 101
A 102     public SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
ddb300 103
e57a89 104     /**
105      * 查询设备产品过程参数采集
106      * 
107      * @param id 设备产品过程参数采集主键
108      * @return 设备产品过程参数采集
109      */
110     @Override
111     public DaParamCollection selectDaParamCollectionById(Long id)
112     {
113         return daParamCollectionMapper.selectDaParamCollectionById(id);
114     }
115
116     /**
117      * 查询设备产品过程参数采集列表
118      * 
119      * @param daParamCollection 设备产品过程参数采集
120      * @return 设备产品过程参数采集
121      */
122     @Override
123     public List<DaParamCollection> selectDaParamCollectionList(DaParamCollection daParamCollection)
124     {
125         return daParamCollectionMapper.selectDaParamCollectionList(daParamCollection);
054a69 126     }
127
128     @Override
129     public void saveBeachDaParamCollection(List<DaParamCollection> list) {
130         // ExecutorType.SIMPLE: 这个执行器类型不做特殊的事情。它为每个语句的执行创建一个新的预处理语句。
131         // ExecutorType.REUSE: 这个执行器类型会复用预处理语句。
132         // ExecutorType.BATCH: 这个执行器会批量执行所有更新语句,如果 SELECT 在它们中间执行还会标定它们是 必须的,来保证一个简单并易于理解的行为。
bdb404 133         logger.info("进入乐工批量方法saveBeachDaParamCollection");
054a69 134
135         // 关闭session的自动提交
136         SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false);
137         try {
138             DaParamCollectionMapper userMapper = sqlSession.getMapper(DaParamCollectionMapper.class);
139             list.stream().forEach(DaParamCollection -> userMapper.insertDaParamCollection(DaParamCollection));
140             // 提交数据
141             sqlSession.commit();
142             sqlSession.rollback();
bdb404 143             logger.info("结束乐工批量方法saveBeachDaParamCollection");
A 144
054a69 145         } catch (Exception e) {
146             sqlSession.rollback();
147         } finally {
148             sqlSession.close();
149         }
e57a89 150     }
151
152     /**
153      * 新增设备产品过程参数采集
154      * 
155      * @param daParamCollection 设备产品过程参数采集
156      * @return 结果
157      */
158     @Override
159     public int insertDaParamCollection(DaParamCollection daParamCollection)
160     {
161         daParamCollection.setCreateTime(DateUtils.getNowDate());
162         return daParamCollectionMapper.insertDaParamCollection(daParamCollection);
163     }
164
165     /**
166      * 修改设备产品过程参数采集
167      * 
168      * @param daParamCollection 设备产品过程参数采集
169      * @return 结果
170      */
171     @Override
172     public int updateDaParamCollection(DaParamCollection daParamCollection)
173     {
174         daParamCollection.setUpdateTime(DateUtils.getNowDate());
175         return daParamCollectionMapper.updateDaParamCollection(daParamCollection);
176     }
177
178     /**
179      * 批量删除设备产品过程参数采集
180      * 
181      * @param ids 需要删除的设备产品过程参数采集主键
182      * @return 结果
183      */
184     @Override
185     public int deleteDaParamCollectionByIds(Long[] ids)
186     {
187         return daParamCollectionMapper.deleteDaParamCollectionByIds(ids);
188     }
189
190     /**
191      * 删除设备产品过程参数采集信息
192      * 
193      * @param id 设备产品过程参数采集主键
194      * @return 结果
195      */
196     @Override
197     public int deleteDaParamCollectionById(Long id)
198     {
199         return daParamCollectionMapper.deleteDaParamCollectionById(id);
200     }
b64ed2 201
202     @Override
203     public void addBasicParameters(DaParamCollection daParamCollection) {
204         // 假设这是从数据库或其他地方获取的参数数据
205         Map<String, String> map = new HashMap<>();
206         map.put("GC", "南浔工厂");
207         map.put("CXBH", "Pack线");
208         map.put("SBBH", "设备001");
209         map.put("YGBH", "员工001");
210         map.put("GDBH", daParamCollection.getWorkOrderNo());
211         map.put("CPXH", daParamCollection.getModel());
212         map.put("INT", DateUtil.formatDateTime(new Date()));
213
214         map.forEach((key, value) -> {
215             DaCollectionParamConf daCollectionParamConf = new DaCollectionParamConf();
216             daCollectionParamConf.setProcessesCode(daParamCollection.getLocationCode());
217             daCollectionParamConf.setCollectParameterId(key);
218             List<DaCollectionParamConf> daCollectionParamConfs = daCollectionParamConfMapper.selectDaCollectionParamConfList(daCollectionParamConf);
219             DaParamCollection saveData = new DaParamCollection();
220             saveData.setWorkOrderNo(daParamCollection.getWorkOrderNo());
221             saveData.setProductCode(daParamCollection.getProductCode());
222             saveData.setLocationCode(daParamCollection.getLocationCode());
3c2299 223             saveData.setSfcCode(daParamCollection.getProductBarcode());
b64ed2 224             saveData.setParamCode(daCollectionParamConfs.get(0).getCollectParameterId());
225             saveData.setParamName(daCollectionParamConfs.get(0).getCollectParameterName());
226             saveData.setCollectionTime(new Date());
227             saveData.setParamValue(value);
228             daParamCollectionMapper.insertDaParamCollection(saveData);
229         });
230     }
49c784 231
232     @Override
233     public void addTighteningParameters(DaParamCollection daParamCollection) {
b77c7b 234         String paramCode = daParamCollection.getParamCode();
a60fef 235         String tightenData = daParamCollection.getTightenTheArray();
A 236         if(StringUtils.isNotBlank(paramCode)&&StringUtils.isNotBlank(tightenData)){
237             tightenData = tightenData.replace("[", "").replace("]", "").replace(" ", "");
238             String[] tightenDataParts = tightenData.split(",");
239             String[] paramCodeParts = paramCode.split(",");
240             for (int i = 0; i < paramCodeParts.length; i++) {
241                 daParamCollection.setParamValue(tightenDataParts[i]);
242                 daParamCollection.setParamCode(paramCodeParts[i]);
243                 daParamCollection.setCollectionTime(new Date());
244                 daParamCollection.setSfcCode(daParamCollection.getProductBarcode());
245                 daParamCollectionMapper.insertDaParamCollection(daParamCollection);
8cfe20 246
A 247                 DaParamCollectionTemp daParamCollectionTemp = new DaParamCollectionTemp();
248                 daParamCollectionTemp.setParamValue(tightenDataParts[i]);
249                 daParamCollectionTemp.setParamCode(paramCodeParts[i]);
250                 daParamCollectionTemp.setCollectionTime(new Date());
251                 daParamCollectionTemp.setSfcCode(daParamCollection.getProductBarcode());
252                 daParamCollectionTemp.setLocationCode(daParamCollection.getLocationCode());
d76bba 253                 daParamCollectionTemp.setProductCode(daParamCollection.getProductCode());
8cfe20 254                 daParamCollectionTempService.save(daParamCollectionTemp);
a60fef 255             }
b77c7b 256         }
49c784 257     }
32483a 258
259     @Override
260     public void saveCampaignTimeParameters(DaParamCollection daParamCollection) {
7bee80 261         List<BsFormulaChildInfo> list = bsFormulaChildInfoService.list(new LambdaQueryWrapper<BsFormulaChildInfo>()
262                 .eq(BsFormulaChildInfo::getProcessesCode, daParamCollection.getLocationCode())
263                 .eq(BsFormulaChildInfo::getSpareField4, "1")
264         );
237733 265         if(StringUtils.isNotBlank(list.get(0).getResults())){
A 266             if(!list.get(0).getResults().equals("OK")){
267                 try {
268                     miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+daParamCollection.getLocationCode()+".RecordDataDone").value(22).build());
269                 } catch (Exception e) {
270                     throw new RuntimeException(e);
271                 }
272                 return;
273             }
274         }else {
7bee80 275             try {
276                 miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+daParamCollection.getLocationCode()+".RecordDataDone").value(22).build());
277             } catch (Exception e) {
278                 throw new RuntimeException(e);
279             }
280             return;
281         }
32483a 282         BsFormulaChildInfo bsFormulaChildInfo = new BsFormulaChildInfo();
283         bsFormulaChildInfo.setProcessesCode(daParamCollection.getLocationCode());
284         bsFormulaChildInfo.setProductCode(daParamCollection.getProductCode());
285         bsFormulaChildInfo.setSpareField4("1");
286         List<BsFormulaChildInfo> bsFormulaChildInfos = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(bsFormulaChildInfo);
287         String result = bsFormulaChildInfos.get(0).getResults();
288         if(result != null && !result.isEmpty()){
289             try {
290                 //过站参数采集记录出站时间
291                 DaCollectionParamConf daCollectionParamConf = new DaCollectionParamConf();
292                 daCollectionParamConf.setProcessesCode(daParamCollection.getLocationCode());
293                 daCollectionParamConf.setCollectParameterId("OUTT");
294                 List<DaCollectionParamConf> daCollectionParamConfs = daCollectionParamConfMapper.selectDaCollectionParamConfList(daCollectionParamConf);
295                 DaParamCollection saveData = new DaParamCollection();
296                 saveData.setWorkOrderNo(daParamCollection.getWorkOrderNo());
297                 saveData.setProductCode(daParamCollection.getProductCode());
298                 saveData.setLocationCode(daParamCollection.getLocationCode());
299                 saveData.setSfcCode(daParamCollection.getProductBarcode());
300                 saveData.setParamCode(daCollectionParamConfs.get(0).getCollectParameterId());
301                 saveData.setParamName(daCollectionParamConfs.get(0).getCollectParameterName());
302                 saveData.setCollectionTime(new Date());
303                 saveData.setParamValue(DateUtil.formatDateTime(new Date()));
304                 daParamCollectionMapper.insertDaParamCollection(saveData);
305
306                 //更新过站记录表出站时间
307                 DaPassingStationCollection daPassingStationCollection = new DaPassingStationCollection();
308                 daPassingStationCollection.setWorkOrderNo(daParamCollection.getWorkOrderNo());
1df825 309                 daPassingStationCollection.setLocationCode(daParamCollection.getLocationCode());
32483a 310                 List<DaPassingStationCollection> daPassingStationCollections = daPassingStationCollectionMapper.selectDaPassingStationCollectionList(daPassingStationCollection);
311                 daPassingStationCollections.get(0).setOutboundTime(new Date());
312                 int i = daPassingStationCollectionMapper.updateDaPassingStationCollection(daPassingStationCollections.get(0));
313
8f0f8d 314 //                OPCUaSubscription.SaveParamData(daParamCollection.getProductBarcode(),"OP",daParamCollection.getLocationCode(),daParamCollection.getWorkOrderNo(),daParamCollection.getProductCode());
054a69 315
32483a 316                 //给opc发21
7bee80 317                 miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+daParamCollection.getLocationCode()+".RecordDataDone").value(21).build());
237733 318                 if(daParamCollection.getLocationCode().equals("OP240")){
2fbce7 319                     try{
A 320                         CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> {
321                             logger.info("OP230报工开始-工厂MES异步方法");
322                             String reportResult = RestfulService.getWorkReportResultFeedback(daParamCollection.getProductBarcode(), "OP230", format.format(new Date()));
323                             if("".equals(reportResult)){
324                                 //执行报工失败方法
325                             }else{
326                                 //解析工厂mes返回结果,如果失败,执行报工失败方法,修改是否报工为2,添加报工时间
327
328                                 //如果成功,执行报工成功方法,修改是否报工为1,添加报工时间
329                             }
330                             logger.info("OP230报工结束-工厂MES异步方法{}"+reportResult);
331                         });
332                     }catch (Exception e){
333                         System.out.println(e.getMessage());
334                     }
335 //                    RestfulService.getWorkReportResultFeedback(daParamCollection.getProductBarcode(),"OP230",format.format(new Date()));
237733 336                 }
2fbce7 337
A 338
32483a 339             } catch (Exception e) {
340                 throw new RuntimeException(e);
341             }
342         }
343     }
8f0f8d 344
345     @Override
346     public void insertBatch(List<DaParamCollection> confList){
347         try{
348             this.saveBatch(confList);
349         }catch (Exception e){
350             return;
351         }
352
353     }
ddb300 354
A 355     @Override
356     public void replaceAssemblyCode(DaParamCollection daParamCollection) {
357         List<DaParamCollection> list = daParamCollectionService.list(new LambdaQueryWrapper<DaParamCollection>()
2c7661 358                 .eq(DaParamCollection::getSfcCode, daParamCollection.getYzSfcCode())
ddb300 359         );
A 360         if(list.size() > 0){
361             for (DaParamCollection paramCollection : list) {
2c7661 362                 paramCollection.setSfcCode(daParamCollection.getSfcCode());
ddb300 363                 daParamCollectionService.saveOrUpdate(paramCollection);
A 364             }
365         }
366
367     }
4a5f2a 368
A 369     @Override
370     public void yzAddBasicParameters(DaParamCollection daParamCollection) {
371         // 假设这是从数据库或其他地方获取的参数数据
372         Map<String, String> map = new HashMap<>();
373 //        map.put("GC", "南浔工厂");
374 //        map.put("CXBH", "Pack线");
375 //        map.put("SBBH", "设备001");
376 //        map.put("YGBH", "员工001");
377 //        map.put("GDBH", daParamCollection.getWorkOrderNo());
378 //        map.put("CPXH", daParamCollection.getModel());
379         map.put("INT", DateUtil.formatDateTime(new Date()));
380
381         map.forEach((key, value) -> {
382             DaCollectionParamConf daCollectionParamConf = new DaCollectionParamConf();
383             daCollectionParamConf.setProcessesCode(daParamCollection.getLocationCode());
384             daCollectionParamConf.setCollectParameterId(key);
385             List<DaCollectionParamConf> daCollectionParamConfs = daCollectionParamConfMapper.selectDaCollectionParamConfList(daCollectionParamConf);
386             DaParamCollection saveData = new DaParamCollection();
387             saveData.setWorkOrderNo(daParamCollection.getWorkOrderNo());
388             saveData.setProductCode(daParamCollection.getProductCode());
389             saveData.setLocationCode(daParamCollection.getLocationCode());
390             saveData.setSfcCode(daParamCollection.getProductBarcode());
391             saveData.setParamCode(daCollectionParamConfs.get(0).getCollectParameterId());
392             saveData.setParamName(daCollectionParamConfs.get(0).getCollectParameterName());
393             saveData.setCollectionTime(new Date());
394             saveData.setParamValue(value);
395             daParamCollectionMapper.insertDaParamCollection(saveData);
396         });
397     }
1c84ae 398
A 399     @Override
400     public void jrmSaveCampaignTimeParameters(DaParamCollection daParamCollection) {
401         DaCollectionParamConf daCollectionParamConf = new DaCollectionParamConf();
402         daCollectionParamConf.setProcessesCode(daParamCollection.getLocationCode());
403         daCollectionParamConf.setCollectParameterId("OUTT");
404         List<DaCollectionParamConf> daCollectionParamConfs = daCollectionParamConfMapper.selectDaCollectionParamConfList(daCollectionParamConf);
405         DaParamCollection saveData = new DaParamCollection();
406         saveData.setWorkOrderNo(daParamCollection.getWorkOrderNo());
407         saveData.setProductCode(daParamCollection.getProductCode());
408         saveData.setLocationCode(daParamCollection.getLocationCode());
409         saveData.setSfcCode(daParamCollection.getProductBarcode());
410         saveData.setParamCode(daCollectionParamConfs.get(0).getCollectParameterId());
411         saveData.setParamName(daCollectionParamConfs.get(0).getCollectParameterName());
412         saveData.setCollectionTime(new Date());
413         saveData.setParamValue(DateUtil.formatDateTime(new Date()));
414         daParamCollectionMapper.insertDaParamCollection(saveData);
415
416         //更新过站记录表出站时间
417         DaPassingStationCollection daPassingStationCollection = new DaPassingStationCollection();
418         daPassingStationCollection.setWorkOrderNo(daParamCollection.getWorkOrderNo());
419         daPassingStationCollection.setLocationCode(daParamCollection.getLocationCode());
420         List<DaPassingStationCollection> daPassingStationCollections = daPassingStationCollectionMapper.selectDaPassingStationCollectionList(daPassingStationCollection);
421         daPassingStationCollections.get(0).setOutboundTime(new Date());
422         int i = daPassingStationCollectionMapper.updateDaPassingStationCollection(daPassingStationCollections.get(0));
423
424 //                OPCUaSubscription.SaveParamData(daParamCollection.getProductBarcode(),"OP",daParamCollection.getLocationCode(),daParamCollection.getWorkOrderNo(),daParamCollection.getProductCode());
425
426         //给opc发21
427         try {
428 //            miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+daParamCollection.getLocationCode()+".RecordDataDone").value(21).build());
1ccd69 429             String strA = daParamCollection.getLocationCode();
1c84ae 430             miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+strA+".RecordDataDone").value(21).build());
A 431         } catch (Exception e) {
432             throw new RuntimeException(e);
433         }
434     }
6a462f 435
W 436
437     public void sendToFactoryMes(String stationCode,String productNum ){
a846f2 438 //        String url = "https://imes-uat-group.geelycv-test.com/api/mom-open/restful/aMesSysIntegration/deviceResultFeedback";
A 439         String url = "https://imes-group.geelycv.com/api/mom-open/restful/aMesSysIntegration/deviceResultFeedback";
6a462f 440         ParentVO vo =new ParentVO();
W 441         List<ChildVO> checkList = new ArrayList<>();
442         List<DaParamCollection> list = this.list(new LambdaQueryWrapper<DaParamCollection>()
443                 .eq(DaParamCollection::getSfcCode, productNum)
444                 .eq(DaParamCollection::getLocationCode, stationCode));
445         vo.setTotalResult("1");
446         String string = new Random(10).toString();
447         vo.setRecordId(string);
448         vo.setProductNum(productNum);
449         vo.setSiteCode("3983");
450         vo.setStationCode(stationCode);
451         if (CollUtil.isNotEmpty(list)){
452             List<DaParamCollection> collect = list.stream().filter(x -> Constants.NG.equals(x.getParamValue())).collect(Collectors.toList());
453             if (CollUtil.isNotEmpty(collect)){
454                 vo.setTotalResult("0");
455             }
456             List<BsFormulaChildInfo> bsFormulaChildInfoList = bsFormulaChildInfoService.list();
457             for (DaParamCollection daParamCollection : list) {
458                 ChildVO childVO = new ChildVO();
459                 childVO.setItemCode(daParamCollection.getParamCode());
460                 String time = daParamCollection.getCollectionTime() != null ? daParamCollection.getCollectionTime().toString() : "";
461                 childVO.setCheckResult("1");
462                 if (StrUtil.isNotBlank(daParamCollection.getParamValue())){
463                     if (Constants.NG.equals(daParamCollection.getParamValue())){
464                         childVO.setCheckResult("0");
465                     }
466                 }
467                 childVO.setCheckTime(time);
468                 childVO.setItemValue(daParamCollection.getParamValue());
469                 childVO.setItemType("3");
470                 childVO.setItemText(daParamCollection.getParamName());
471                 if (StrUtil.isNotBlank(daParamCollection.getParamCode())){
472                     List<BsFormulaChildInfo> collect1 = bsFormulaChildInfoList.stream().filter(x -> daParamCollection.getParamCode().equals(x.getParamCode())).collect(Collectors.toList());
473                     if (CollUtil.isNotEmpty(collect1)){
474                         BsFormulaChildInfo bsFormulaChildInfo = collect1.get(0);
475                         childVO.setItemType(bsFormulaChildInfo.getOperationType());
476                     }
477                 }
478
479                 checkList.add(childVO);
480             }
481         }
482         vo.setCheckList(checkList);
483         HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(vo)).execute();
484
485     }
5966d6 486
A 487     @Override
488     public void pushGeelycvMesFeedback(String packID, String stationCode) {
d76bba 489         logger.info("进入人工工位推送工厂MES数据方法-pushGeelycvMesFeedback-工位{}-pack码{}",stationCode,packID);
5966d6 490         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
a846f2 491 //        String url = "https://imes-uat-group.geelycv-test.com/api/mom-open/restful/aMesSysIntegration/deviceResultFeedback";
A 492         String url = "https://imes-group.geelycv.com/api/mom-open/restful/aMesSysIntegration/deviceResultFeedback";
5966d6 493         String totalResult = "0";
8cfe20 494         List<DaParamCollectionTemp> paramList = daParamCollectionTempService.list(new LambdaQueryWrapper<DaParamCollectionTemp>().eq(DaParamCollectionTemp::getSfcCode, packID).eq(DaParamCollectionTemp::getLocationCode, stationCode));
A 495         if(paramList.size() > 0){
496             ParentVO parentVO = new ParentVO();
497             parentVO.setSiteCode("3983");
498             parentVO.setRecordId(String.valueOf(Instant.now().toEpochMilli()));
499             parentVO.setStationCode(stationCode);
500             parentVO.setProductNum(packID);
501             parentVO.setTotalResult("1");
502             List<ChildVO> listChildVo = new ArrayList<>();
503
504             for (DaParamCollectionTemp daParamCollection : paramList) {
505                 ChildVO childVO = new ChildVO();
506                 childVO.setItemCode(daParamCollection.getParamCode());
507 //                BsFormulaChildInfo childOne = bsFormulaChildInfoService.getOne(new LambdaQueryWrapper<BsFormulaChildInfo>().eq(BsFormulaChildInfo::getParamCode, daParamCollection.getParamCode()));
508 //                DaCollectionParamConf paramConfOne = daCollectionParamConfService.getOne(new LambdaQueryWrapper<DaCollectionParamConf>().eq(DaCollectionParamConf::getCollectParameterId, daParamCollection.getParamCode()));
509                 List<DaCollectionParamConf> paramConfOneList = daCollectionParamConfService.list(new LambdaQueryWrapper<DaCollectionParamConf>().eq(DaCollectionParamConf::getCollectParameterId, daParamCollection.getParamCode()));
510                 DaCollectionParamConf paramConfOne = paramConfOneList.get(0);
511 //                if(childOne!=null){
512 //                    String operationType = childOne.getOperationType();
513 //                    if(operationType.equals("1")){
514 //                        childVO.setItemType("2");
515 //                    }else if(operationType.equals("2")){
516 //                        childVO.setItemType("1");
517 //                    }
518 //                }else {
519 //                    childVO.setItemType("3");
520 //                }
521                 if(paramConfOne!=null){
522                     childVO.setItemType(paramConfOne.getSpareField1());
523                     childVO.setItemText(paramConfOne.getCollectParameterName());
524                 }else {
525                     childVO.setItemType("3");
526                     childVO.setItemText("");
527                 }
528                 childVO.setItemValue(daParamCollection.getParamValue());
529
530                 if(daParamCollection.getParamValue().equals("1")){
531                     childVO.setCheckResult("1");
532                 }else if(daParamCollection.getParamValue().equals("2")){
533                     childVO.setCheckResult("0");
534                     parentVO.setTotalResult("0");
535                     totalResult = "1";
536                 }else {
537                     childVO.setCheckResult("1");
538                 }
539                 childVO.setCheckTime(format.format(daParamCollection.getCollectionTime()));
540                 listChildVo.add(childVO);
541
542             }
543             parentVO.setCheckList(listChildVo);
d76bba 544             try{
A 545                 CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> {
546                     logger.info("开始执行异步方法");
547                     HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute();
548                     logger.info("异步方法执行结束");
549                     logger.info("手动工位传工厂MES异步方法{}"+execute.body());
2fbce7 550
A 551                     DaParamCollectionTemp daParamCollectionTemp = new DaParamCollectionTemp();
552                     daParamCollectionTemp.setSfcCode(packID);
553                     daParamCollectionTemp.setLocationCode(stationCode);
554                     int i = daParamCollectionTempService.deleteDaParamCollectionTempBySfcCodeAndLocationCode(daParamCollectionTemp);
d76bba 555                     logger.info("删除临时表数据条数{}-工位{}-pack码{}",i,stationCode,packID);
2fbce7 556 //                    List<Long> idsList = paramList.stream().map(DaParamCollectionTemp::getId).collect(Collectors.toList());
A 557 //                    Long[] array = idsList.toArray(new Long[0]);
558 //                    int i = daParamCollectionTempService.deleteDaParamCollectionTempByIds(array);
559 //                    logger.info("删除临时表数据条数{}-工位{}-pack码{}",i,stationCode,packID);
d76bba 560                 });
A 561             }catch (Exception e){
562                 System.out.println(e.getMessage());
563             }
564 //            HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute();
565
566 //            System.out.println(execute.body());
8cfe20 567             System.out.println("-----------------------"+totalResult);
d76bba 568             logger.info("结束人工工位推送工厂MES数据方法-pushGeelycvMesFeedback-工位{}-pack码{}",stationCode,packID);
8cfe20 569         }
A 570
571     }
572
573     @Override
574     public void automaticWorkstationPushGeelycvMesFeedback(String packID, String stationCode,List<DaParamCollection> paramList) {
bdb404 575         logger.info("进入工位{}-工厂MES推送数据方法automaticWorkstationPushGeelycvMesFeedback",stationCode);
8cfe20 576         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
A 577 //        String url = "https://imes-uat-group.geelycv-test.com/api/mom-open/restful/aMesSysIntegration/deviceResultFeedback";
578         String url = "https://imes-group.geelycv.com/api/mom-open/restful/aMesSysIntegration/deviceResultFeedback";
579         String totalResult = "0";
5966d6 580         if(paramList.size() > 0){
bdb404 581             logger.info("进入工位{}-拼数据",stationCode);
5966d6 582             ParentVO parentVO = new ParentVO();
A 583             parentVO.setSiteCode("3983");
584             parentVO.setRecordId(String.valueOf(Instant.now().toEpochMilli()));
585             parentVO.setStationCode(stationCode);
586             parentVO.setProductNum(packID);
587             parentVO.setTotalResult("1");
588             List<ChildVO> listChildVo = new ArrayList<>();
589
590             for (DaParamCollection daParamCollection : paramList) {
591                 ChildVO childVO = new ChildVO();
592                 childVO.setItemCode(daParamCollection.getParamCode());
8cfe20 593 //                BsFormulaChildInfo childOne = bsFormulaChildInfoService.getOne(new LambdaQueryWrapper<BsFormulaChildInfo>().eq(BsFormulaChildInfo::getParamCode, daParamCollection.getParamCode()));
A 594 //                DaCollectionParamConf paramConfOne = daCollectionParamConfService.getOne(new LambdaQueryWrapper<DaCollectionParamConf>().eq(DaCollectionParamConf::getCollectParameterId, daParamCollection.getParamCode()));
595                 List<DaCollectionParamConf> paramConfOneList = daCollectionParamConfService.list(new LambdaQueryWrapper<DaCollectionParamConf>().eq(DaCollectionParamConf::getCollectParameterId, daParamCollection.getParamCode()));
596                 DaCollectionParamConf paramConfOne = paramConfOneList.get(0);
237733 597 //                if(childOne!=null){
A 598 //                    String operationType = childOne.getOperationType();
599 //                    if(operationType.equals("1")){
600 //                        childVO.setItemType("2");
601 //                    }else if(operationType.equals("2")){
602 //                        childVO.setItemType("1");
603 //                    }
604 //                }else {
605 //                    childVO.setItemType("3");
606 //                }
5966d6 607                 if(paramConfOne!=null){
237733 608                     childVO.setItemType(paramConfOne.getSpareField1());
5966d6 609                     childVO.setItemText(paramConfOne.getCollectParameterName());
A 610                 }else {
237733 611                     childVO.setItemType("3");
5966d6 612                     childVO.setItemText("");
A 613                 }
614                 childVO.setItemValue(daParamCollection.getParamValue());
615
616                 if(daParamCollection.getParamValue().equals("1")){
617                     childVO.setCheckResult("1");
618                 }else if(daParamCollection.getParamValue().equals("2")){
619                     childVO.setCheckResult("0");
620                     parentVO.setTotalResult("0");
621                     totalResult = "1";
622                 }else {
623                     childVO.setCheckResult("1");
624                 }
625                 childVO.setCheckTime(format.format(daParamCollection.getCollectionTime()));
626                 listChildVo.add(childVO);
627             }
628             parentVO.setCheckList(listChildVo);
bdb404 629             logger.info("结束工位{}-拼数据",stationCode);
A 630             logger.info("进入工位{}-工厂MES推送数据方法HttpResponseSend",stationCode);
d76bba 631             try{
A 632                 CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> {
633                     logger.info("开始执行异步方法");
634                     HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute();
635                     System.out.println(execute.body());
636                     logger.info("异步方法执行结束");
637                     logger.info("自动工位传工厂MES异步方法{}"+execute.body());
638                 });
639             }catch (Exception e){
640                 System.out.println(e.getMessage());
641             }
642 //            HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute();
bdb404 643             logger.info("结束工位{}-工厂MES推送数据方法HttpResponseSend",stationCode);
5966d6 644             System.out.println("-----------------------"+totalResult);
A 645         }
bdb404 646         logger.info("结束工位{}-工厂MES推送数据方法automaticWorkstationPushGeelycvMesFeedback",stationCode);
5966d6 647     }
616f98 648
237733 649     @Override
A 650     public AjaxResult checkRecordDataDone(DaParamCollection daParamCollection) {
651         String result = "";
8cfe20 652
A 653
237733 654         try {
8cfe20 655             List<BsFormulaChildInfo> list = bsFormulaChildInfoService.list(new LambdaQueryWrapper<BsFormulaChildInfo>().eq(BsFormulaChildInfo::getSpareField4, "1").eq(BsFormulaChildInfo::getProcessesCode, daParamCollection.getLocationCode()));
A 656             if(list.size()>0){
657                 String results = list.get(0).getResults();
658                 if(results!= null && !results.equals("") && results.equals("OK")){
659                     result = "21";
660                 }
661             }
662             /*Object recordDataDone = miloService.readFromOpcUa("PACK" + "." + daParamCollection.getLocationCode() + ".RecordDataDone").getValue();
237733 663             if(ObjectUtil.isNotNull(recordDataDone)){
A 664                 result = recordDataDone.toString();
8cfe20 665             }*/
237733 666         } catch (Exception e) {
A 667             throw new RuntimeException(e);
668         }
669         return AjaxResult.success(result);
670     }
671
8cfe20 672     @Override
A 673     public void enterWeighing(DaParamCollection daParamCollection) {
674         String url = "https://imes-group.geelycv.com/api/mom-open/restful/aMesSysIntegration/deviceResultFeedback";
675         long timestampMillis = Instant.now().toEpochMilli();
676         ParentVO parentVO = new ParentVO();
677         ChildVO childVO = new ChildVO();
678         List<ChildVO> childVOList = new ArrayList<>();
679         childVO.setItemCode("PWD_PW");
680         childVO.setItemType("3");
681         childVO.setItemText("Pack重量值");
682         childVO.setItemValue(daParamCollection.getWeightValue());
683         childVO.setCheckTime(format.format(new Date()));
684         childVO.setCheckResult("1");
685         childVOList.add(childVO);
686         parentVO.setSiteCode("3983");
687         parentVO.setRecordId(""+timestampMillis);
688         parentVO.setStationCode("OP500");
689         parentVO.setProductNum(daParamCollection.getSfcCode());
690         parentVO.setTotalResult("1");
691         parentVO.setCheckList(childVOList);
692         HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute();
d76bba 693 //        try{
A 694 //            CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> {
695 //                logger.info("开始执行异步方法");
696 //                HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute();
697 //                System.out.println(execute.body());
698 //                logger.info("异步方法执行结束");
699 //                logger.info("称重异步方法{}",execute.body());
700 //            });
701 //        }catch (Exception e){
702 //            System.out.println(e.getMessage());
703 //        }
8cfe20 704         RestfulService.getWorkReportResultFeedback(daParamCollection.getSfcCode(),"OP500",format.format(new Date()));
A 705     }
706
e57a89 707 }