From 616f9896be815a60b5c4063116b7d138892dcfaf Mon Sep 17 00:00:00 2001
From: admin <15939171744@163.com>
Date: 星期二, 14 五月 2024 14:59:25 +0800
Subject: [PATCH] -

---
 jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/service/impl/DaParamCollectionServiceImpl.java |  329 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 327 insertions(+), 2 deletions(-)

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 973d339..4b5b75b 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
@@ -1,18 +1,47 @@
 package com.jcdm.main.da.paramCollection.service.impl;
 
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.db.Db;
+import cn.hutool.http.HttpRequest;
+import cn.hutool.http.HttpResponse;
+import cn.hutool.json.JSONUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.jcdm.common.utils.DateUtils;
+import com.jcdm.main.bs.formula.service.IBsFormulaInfoService;
+import com.jcdm.main.bs.formula.service.impl.BsFormulaInfoServiceImpl;
 import com.jcdm.main.bs.formulaChild.domain.BsFormulaChildInfo;
 import com.jcdm.main.bs.formulaChild.mapper.BsFormulaChildInfoMapper;
+import com.jcdm.main.bs.formulaChild.service.IBsFormulaChildInfoService;
+import com.jcdm.main.constant.Constants;
 import com.jcdm.main.da.collectionParamConf.domain.DaCollectionParamConf;
 import com.jcdm.main.da.collectionParamConf.mapper.DaCollectionParamConfMapper;
+import com.jcdm.main.da.collectionParamConf.service.IDaCollectionParamConfService;
 import com.jcdm.main.da.paramCollection.domain.DaParamCollection;
 import com.jcdm.main.da.paramCollection.mapper.DaParamCollectionMapper;
 import com.jcdm.main.da.paramCollection.service.IDaParamCollectionService;
+import com.jcdm.main.da.passingStationCollection.domain.DaPassingStationCollection;
+import com.jcdm.main.da.passingStationCollection.mapper.DaPassingStationCollectionMapper;
+import com.jcdm.main.da.passingStationCollection.service.IDaPassingStationCollectionService;
+import com.jcdm.main.plcserver.sub.OPCUaSubscription;
+import com.jcdm.main.restful.qingYan.doman.ChildVO;
+import com.jcdm.main.restful.qingYan.doman.ParentVO;
+import com.kangaroohy.milo.model.ReadWriteEntity;
+import com.kangaroohy.milo.service.MiloService;
+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.security.core.parameters.P;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+import java.text.SimpleDateFormat;
+import java.time.Instant;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 璁惧浜у搧杩囩▼鍙傛暟閲囬泦Service涓氬姟灞傚鐞�
@@ -21,7 +50,7 @@
  * @date 2023-12-13
  */
 @Service
-public class DaParamCollectionServiceImpl implements IDaParamCollectionService
+public class DaParamCollectionServiceImpl extends ServiceImpl<DaParamCollectionMapper,DaParamCollection> implements IDaParamCollectionService
 {
     @Autowired
     private DaParamCollectionMapper daParamCollectionMapper;
@@ -31,6 +60,24 @@
 
     @Autowired
     private BsFormulaChildInfoMapper bsFormulaChildInfoMapper;
+
+    @Autowired
+    private IBsFormulaChildInfoService bsFormulaChildInfoService;
+
+    @Autowired
+    private MiloService miloService;
+
+    @Autowired
+    private DaPassingStationCollectionMapper daPassingStationCollectionMapper;
+
+    @Resource
+    private SqlSessionFactory sqlSessionFactory;
+
+    @Autowired
+    private IDaParamCollectionService daParamCollectionService;
+
+    @Autowired
+    private IDaCollectionParamConfService daCollectionParamConfService;
 
     /**
      * 鏌ヨ璁惧浜у搧杩囩▼鍙傛暟閲囬泦
@@ -54,6 +101,27 @@
     public List<DaParamCollection> selectDaParamCollectionList(DaParamCollection daParamCollection)
     {
         return daParamCollectionMapper.selectDaParamCollectionList(daParamCollection);
+    }
+
+    @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();
+        }
     }
 
     /**
@@ -127,7 +195,7 @@
             saveData.setWorkOrderNo(daParamCollection.getWorkOrderNo());
             saveData.setProductCode(daParamCollection.getProductCode());
             saveData.setLocationCode(daParamCollection.getLocationCode());
-            saveData.setSfcCode(daParamCollection.getSfcCode());
+            saveData.setSfcCode(daParamCollection.getProductBarcode());
             saveData.setParamCode(daCollectionParamConfs.get(0).getCollectParameterId());
             saveData.setParamName(daCollectionParamConfs.get(0).getCollectParameterName());
             saveData.setCollectionTime(new Date());
@@ -151,4 +219,261 @@
             daParamCollectionMapper.insertDaParamCollection(daParamCollection);
         }
     }
+
+    @Override
+    public void saveCampaignTimeParameters(DaParamCollection daParamCollection) {
+        List<BsFormulaChildInfo> list = bsFormulaChildInfoService.list(new LambdaQueryWrapper<BsFormulaChildInfo>()
+                .eq(BsFormulaChildInfo::getProcessesCode, daParamCollection.getLocationCode())
+                .eq(BsFormulaChildInfo::getSpareField4, "1")
+        );
+        if(!list.get(0).getResults().equals("OK")){
+            try {
+                miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+daParamCollection.getLocationCode()+".RecordDataDone").value(22).build());
+            } catch (Exception e) {
+                throw new RuntimeException(e);
+            }
+            return;
+        }
+        BsFormulaChildInfo bsFormulaChildInfo = new BsFormulaChildInfo();
+        bsFormulaChildInfo.setProcessesCode(daParamCollection.getLocationCode());
+        bsFormulaChildInfo.setProductCode(daParamCollection.getProductCode());
+        bsFormulaChildInfo.setSpareField4("1");
+        List<BsFormulaChildInfo> bsFormulaChildInfos = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(bsFormulaChildInfo);
+        String result = bsFormulaChildInfos.get(0).getResults();
+        if(result != null && !result.isEmpty()){
+            try {
+                //杩囩珯鍙傛暟閲囬泦璁板綍鍑虹珯鏃堕棿
+                DaCollectionParamConf daCollectionParamConf = new DaCollectionParamConf();
+                daCollectionParamConf.setProcessesCode(daParamCollection.getLocationCode());
+                daCollectionParamConf.setCollectParameterId("OUTT");
+                List<DaCollectionParamConf> daCollectionParamConfs = daCollectionParamConfMapper.selectDaCollectionParamConfList(daCollectionParamConf);
+                DaParamCollection saveData = new DaParamCollection();
+                saveData.setWorkOrderNo(daParamCollection.getWorkOrderNo());
+                saveData.setProductCode(daParamCollection.getProductCode());
+                saveData.setLocationCode(daParamCollection.getLocationCode());
+                saveData.setSfcCode(daParamCollection.getProductBarcode());
+                saveData.setParamCode(daCollectionParamConfs.get(0).getCollectParameterId());
+                saveData.setParamName(daCollectionParamConfs.get(0).getCollectParameterName());
+                saveData.setCollectionTime(new Date());
+                saveData.setParamValue(DateUtil.formatDateTime(new Date()));
+                daParamCollectionMapper.insertDaParamCollection(saveData);
+
+                //鏇存柊杩囩珯璁板綍琛ㄥ嚭绔欐椂闂�
+                DaPassingStationCollection daPassingStationCollection = new DaPassingStationCollection();
+                daPassingStationCollection.setWorkOrderNo(daParamCollection.getWorkOrderNo());
+                daPassingStationCollection.setLocationCode(daParamCollection.getLocationCode());
+                List<DaPassingStationCollection> daPassingStationCollections = daPassingStationCollectionMapper.selectDaPassingStationCollectionList(daPassingStationCollection);
+                daPassingStationCollections.get(0).setOutboundTime(new Date());
+                int i = daPassingStationCollectionMapper.updateDaPassingStationCollection(daPassingStationCollections.get(0));
+
+//                OPCUaSubscription.SaveParamData(daParamCollection.getProductBarcode(),"OP",daParamCollection.getLocationCode(),daParamCollection.getWorkOrderNo(),daParamCollection.getProductCode());
+
+                //缁檕pc鍙�21
+                miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+daParamCollection.getLocationCode()+".RecordDataDone").value(21).build());
+            } catch (Exception e) {
+                throw new RuntimeException(e);
+            }
+        }
+    }
+
+    @Override
+    public void insertBatch(List<DaParamCollection> confList){
+        try{
+            this.saveBatch(confList);
+        }catch (Exception e){
+            return;
+        }
+
+    }
+
+    @Override
+    public void replaceAssemblyCode(DaParamCollection daParamCollection) {
+        List<DaParamCollection> list = daParamCollectionService.list(new LambdaQueryWrapper<DaParamCollection>()
+                .eq(DaParamCollection::getSfcCode, daParamCollection.getYzSfcCode())
+        );
+        if(list.size() > 0){
+            for (DaParamCollection paramCollection : list) {
+                paramCollection.setSfcCode(daParamCollection.getSfcCode());
+                daParamCollectionService.saveOrUpdate(paramCollection);
+            }
+        }
+
+    }
+
+    @Override
+    public void yzAddBasicParameters(DaParamCollection daParamCollection) {
+        // 鍋囪杩欐槸浠庢暟鎹簱鎴栧叾浠栧湴鏂硅幏鍙栫殑鍙傛暟鏁版嵁
+        Map<String, String> map = new HashMap<>();
+//        map.put("GC", "鍗楁禂宸ュ巶");
+//        map.put("CXBH", "Pack绾�");
+//        map.put("SBBH", "璁惧001");
+//        map.put("YGBH", "鍛樺伐001");
+//        map.put("GDBH", daParamCollection.getWorkOrderNo());
+//        map.put("CPXH", daParamCollection.getModel());
+        map.put("INT", DateUtil.formatDateTime(new Date()));
+
+        map.forEach((key, value) -> {
+            DaCollectionParamConf daCollectionParamConf = new DaCollectionParamConf();
+            daCollectionParamConf.setProcessesCode(daParamCollection.getLocationCode());
+            daCollectionParamConf.setCollectParameterId(key);
+            List<DaCollectionParamConf> daCollectionParamConfs = daCollectionParamConfMapper.selectDaCollectionParamConfList(daCollectionParamConf);
+            DaParamCollection saveData = new DaParamCollection();
+            saveData.setWorkOrderNo(daParamCollection.getWorkOrderNo());
+            saveData.setProductCode(daParamCollection.getProductCode());
+            saveData.setLocationCode(daParamCollection.getLocationCode());
+            saveData.setSfcCode(daParamCollection.getProductBarcode());
+            saveData.setParamCode(daCollectionParamConfs.get(0).getCollectParameterId());
+            saveData.setParamName(daCollectionParamConfs.get(0).getCollectParameterName());
+            saveData.setCollectionTime(new Date());
+            saveData.setParamValue(value);
+            daParamCollectionMapper.insertDaParamCollection(saveData);
+        });
+    }
+
+    @Override
+    public void jrmSaveCampaignTimeParameters(DaParamCollection daParamCollection) {
+        DaCollectionParamConf daCollectionParamConf = new DaCollectionParamConf();
+        daCollectionParamConf.setProcessesCode(daParamCollection.getLocationCode());
+        daCollectionParamConf.setCollectParameterId("OUTT");
+        List<DaCollectionParamConf> daCollectionParamConfs = daCollectionParamConfMapper.selectDaCollectionParamConfList(daCollectionParamConf);
+        DaParamCollection saveData = new DaParamCollection();
+        saveData.setWorkOrderNo(daParamCollection.getWorkOrderNo());
+        saveData.setProductCode(daParamCollection.getProductCode());
+        saveData.setLocationCode(daParamCollection.getLocationCode());
+        saveData.setSfcCode(daParamCollection.getProductBarcode());
+        saveData.setParamCode(daCollectionParamConfs.get(0).getCollectParameterId());
+        saveData.setParamName(daCollectionParamConfs.get(0).getCollectParameterName());
+        saveData.setCollectionTime(new Date());
+        saveData.setParamValue(DateUtil.formatDateTime(new Date()));
+        daParamCollectionMapper.insertDaParamCollection(saveData);
+
+        //鏇存柊杩囩珯璁板綍琛ㄥ嚭绔欐椂闂�
+        DaPassingStationCollection daPassingStationCollection = new DaPassingStationCollection();
+        daPassingStationCollection.setWorkOrderNo(daParamCollection.getWorkOrderNo());
+        daPassingStationCollection.setLocationCode(daParamCollection.getLocationCode());
+        List<DaPassingStationCollection> daPassingStationCollections = daPassingStationCollectionMapper.selectDaPassingStationCollectionList(daPassingStationCollection);
+        daPassingStationCollections.get(0).setOutboundTime(new Date());
+        int i = daPassingStationCollectionMapper.updateDaPassingStationCollection(daPassingStationCollections.get(0));
+
+//                OPCUaSubscription.SaveParamData(daParamCollection.getProductBarcode(),"OP",daParamCollection.getLocationCode(),daParamCollection.getWorkOrderNo(),daParamCollection.getProductCode());
+
+        //缁檕pc鍙�21
+        try {
+//            miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+daParamCollection.getLocationCode()+".RecordDataDone").value(21).build());
+            String strA = daParamCollection.getLocationCode() + "A";
+            String strB = daParamCollection.getLocationCode() + "B";
+            miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+strA+".RecordDataDone").value(21).build());
+            miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+strB+".RecordDataDone").value(21).build());
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+
+    public void sendToFactoryMes(String stationCode,String productNum ){
+        String url = "https://imes-uat-group.geelycv-test.com/api/mom-open/restful/aMesSysIntegration/deviceResultFeedback";
+        ParentVO vo =new ParentVO();
+        List<ChildVO> checkList = new ArrayList<>();
+        List<DaParamCollection> list = this.list(new LambdaQueryWrapper<DaParamCollection>()
+                .eq(DaParamCollection::getSfcCode, productNum)
+                .eq(DaParamCollection::getLocationCode, stationCode));
+        vo.setTotalResult("1");
+        String string = new Random(10).toString();
+        vo.setRecordId(string);
+        vo.setProductNum(productNum);
+        vo.setSiteCode("3983");
+        vo.setStationCode(stationCode);
+        if (CollUtil.isNotEmpty(list)){
+            List<DaParamCollection> collect = list.stream().filter(x -> Constants.NG.equals(x.getParamValue())).collect(Collectors.toList());
+            if (CollUtil.isNotEmpty(collect)){
+                vo.setTotalResult("0");
+            }
+            List<BsFormulaChildInfo> bsFormulaChildInfoList = bsFormulaChildInfoService.list();
+            for (DaParamCollection daParamCollection : list) {
+                ChildVO childVO = new ChildVO();
+                childVO.setItemCode(daParamCollection.getParamCode());
+                String time = daParamCollection.getCollectionTime() != null ? daParamCollection.getCollectionTime().toString() : "";
+                childVO.setCheckResult("1");
+                if (StrUtil.isNotBlank(daParamCollection.getParamValue())){
+                    if (Constants.NG.equals(daParamCollection.getParamValue())){
+                        childVO.setCheckResult("0");
+                    }
+                }
+                childVO.setCheckTime(time);
+                childVO.setItemValue(daParamCollection.getParamValue());
+                childVO.setItemType("3");
+                childVO.setItemText(daParamCollection.getParamName());
+                if (StrUtil.isNotBlank(daParamCollection.getParamCode())){
+                    List<BsFormulaChildInfo> collect1 = bsFormulaChildInfoList.stream().filter(x -> daParamCollection.getParamCode().equals(x.getParamCode())).collect(Collectors.toList());
+                    if (CollUtil.isNotEmpty(collect1)){
+                        BsFormulaChildInfo bsFormulaChildInfo = collect1.get(0);
+                        childVO.setItemType(bsFormulaChildInfo.getOperationType());
+                    }
+                }
+
+                checkList.add(childVO);
+            }
+        }
+        vo.setCheckList(checkList);
+        HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(vo)).execute();
+
+    }
+
+    @Override
+    public void pushGeelycvMesFeedback(String packID, String stationCode) {
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String url = "https://imes-uat-group.geelycv-test.com/api/mom-open/restful/aMesSysIntegration/deviceResultFeedback";
+        String totalResult = "0";
+        List<DaParamCollection> paramList = daParamCollectionService.list(new LambdaQueryWrapper<DaParamCollection>().eq(DaParamCollection::getSfcCode, packID).eq(DaParamCollection::getLocationCode, stationCode));
+        if(paramList.size() > 0){
+            ParentVO parentVO = new ParentVO();
+            parentVO.setSiteCode("3983");
+            parentVO.setRecordId(String.valueOf(Instant.now().toEpochMilli()));
+            parentVO.setStationCode(stationCode);
+            parentVO.setProductNum(packID);
+            parentVO.setTotalResult("1");
+            List<ChildVO> listChildVo = new ArrayList<>();
+
+            for (DaParamCollection daParamCollection : paramList) {
+                ChildVO childVO = new ChildVO();
+                childVO.setItemCode(daParamCollection.getParamCode());
+                BsFormulaChildInfo childOne = bsFormulaChildInfoService.getOne(new LambdaQueryWrapper<BsFormulaChildInfo>().eq(BsFormulaChildInfo::getParamCode, daParamCollection.getParamCode()));
+                DaCollectionParamConf paramConfOne = daCollectionParamConfService.getOne(new LambdaQueryWrapper<DaCollectionParamConf>().eq(DaCollectionParamConf::getCollectParameterId, daParamCollection.getParamCode()));
+                if(childOne!=null){
+                    String operationType = childOne.getOperationType();
+                    if(operationType.equals("1")){
+                        childVO.setItemType("2");
+                    }else if(operationType.equals("2")){
+                        childVO.setItemType("1");
+                    }
+                }else {
+                    childVO.setItemType("3");
+                }
+                if(paramConfOne!=null){
+                    childVO.setItemText(paramConfOne.getCollectParameterName());
+                }else {
+                    childVO.setItemText("");
+                }
+                childVO.setItemValue(daParamCollection.getParamValue());
+
+                if(daParamCollection.getParamValue().equals("1")){
+                    childVO.setCheckResult("1");
+                }else if(daParamCollection.getParamValue().equals("2")){
+                    childVO.setCheckResult("0");
+                    parentVO.setTotalResult("0");
+                    totalResult = "1";
+                }else {
+                    childVO.setCheckResult("1");
+                }
+                childVO.setCheckTime(format.format(daParamCollection.getCollectionTime()));
+                listChildVo.add(childVO);
+            }
+            parentVO.setCheckList(listChildVo);
+            HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute();
+            System.out.println(execute.body());
+            System.out.println("-----------------------"+totalResult);
+        }
+
+    }
+
 }

--
Gitblit v1.9.3