From c2e92c3bd4fc134b27ba6a6271f63b032b2b9d99 Mon Sep 17 00:00:00 2001
From: admin <15939171744@163.com>
Date: 星期三, 28 八月 2024 15:46:32 +0800
Subject: [PATCH] -打印bug修改

---
 jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/service/impl/DaParamCollectionServiceImpl.java |  664 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 624 insertions(+), 40 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 4e182b7..e15299d 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,34 +1,65 @@
 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.ObjectUtil;
+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.JSONObject;
+import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.google.gson.Gson;
+import com.jcdm.common.core.domain.AjaxResult;
 import com.jcdm.common.utils.DateUtils;
+import com.jcdm.common.utils.SecurityUtils;
+import com.jcdm.common.utils.StringUtils;
+import com.jcdm.framework.websocket.WebSocketUsers;
 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.paramCollectionTemp.domain.DaParamCollectionTemp;
+import com.jcdm.main.da.paramCollectionTemp.service.IDaParamCollectionTempService;
 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.om.productionOrde.domain.OmProductionOrdeInfo;
+import com.jcdm.main.om.productionOrde.service.IOmProductionOrdeInfoService;
 import com.jcdm.main.plcserver.sub.OPCUaSubscription;
+import com.jcdm.main.restful.factoryMes.service.RestfulService;
+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 lombok.extern.slf4j.Slf4j;
 import org.apache.ibatis.session.ExecutorType;
 import org.apache.ibatis.session.SqlSession;
 import org.apache.ibatis.session.SqlSessionFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.core.parameters.P;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import javax.websocket.Session;
+import java.text.SimpleDateFormat;
+import java.time.Instant;
 import java.util.*;
+import java.util.concurrent.CompletableFuture;
+import java.util.stream.Collectors;
 
 /**
  * 璁惧浜у搧杩囩▼鍙傛暟閲囬泦Service涓氬姟灞傚鐞�
@@ -36,9 +67,12 @@
  * @author yyt
  * @date 2023-12-13
  */
+@Slf4j
 @Service
 public class DaParamCollectionServiceImpl extends ServiceImpl<DaParamCollectionMapper,DaParamCollection> implements IDaParamCollectionService
 {
+    private static final Logger logger = LoggerFactory.getLogger("sys-user");
+
     @Autowired
     private DaParamCollectionMapper daParamCollectionMapper;
 
@@ -62,6 +96,23 @@
 
     @Autowired
     private IDaParamCollectionService daParamCollectionService;
+
+    @Autowired
+    private IDaCollectionParamConfService daCollectionParamConfService;
+
+    @Autowired
+    private IDaParamCollectionTempService daParamCollectionTempService;
+
+    @Autowired
+    private IOmProductionOrdeInfoService omProductionOrdeInfoService;
+
+    @Autowired
+    private IDaPassingStationCollectionService daPassingStationCollectionService;
+
+    public SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+    Map<String, Session> map = WebSocketUsers.getUsers();
+
 
     /**
      * 鏌ヨ璁惧浜у搧杩囩▼鍙傛暟閲囬泦
@@ -92,6 +143,7 @@
         // ExecutorType.SIMPLE: 杩欎釜鎵ц鍣ㄧ被鍨嬩笉鍋氱壒娈婄殑浜嬫儏銆傚畠涓烘瘡涓鍙ョ殑鎵ц鍒涘缓涓�涓柊鐨勯澶勭悊璇彞銆�
         // ExecutorType.REUSE: 杩欎釜鎵ц鍣ㄧ被鍨嬩細澶嶇敤棰勫鐞嗚鍙ャ��
         // ExecutorType.BATCH: 杩欎釜鎵ц鍣ㄤ細鎵归噺鎵ц鎵�鏈夋洿鏂拌鍙�,濡傛灉 SELECT 鍦ㄥ畠浠腑闂存墽琛岃繕浼氭爣瀹氬畠浠槸 蹇呴』鐨�,鏉ヤ繚璇佷竴涓畝鍗曞苟鏄撲簬鐞嗚В鐨勮涓恒��
+        logger.info("杩涘叆涔愬伐鎵归噺鏂规硶saveBeachDaParamCollection");
 
         // 鍏抽棴session鐨勮嚜鍔ㄦ彁浜�
         SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false);
@@ -101,6 +153,8 @@
             // 鎻愪氦鏁版嵁
             sqlSession.commit();
             sqlSession.rollback();
+            logger.info("缁撴潫涔愬伐鎵归噺鏂规硶saveBeachDaParamCollection");
+
         } catch (Exception e) {
             sqlSession.rollback();
         } finally {
@@ -190,27 +244,49 @@
 
     @Override
     public void addTighteningParameters(DaParamCollection daParamCollection) {
-        String tightenData = daParamCollection.getTightenTheArray();
-        tightenData = tightenData.replace("[", "").replace("]", "").replace(" ", "");
-        String[] tightenDataParts = tightenData.split(",");
         String paramCode = daParamCollection.getParamCode();
-        String[] paramCodeParts = paramCode.split(",");
-        for (int i = 0; i < paramCodeParts.length; i++) {
-            daParamCollection.setParamValue(tightenDataParts[i]);
-            daParamCollection.setParamCode(paramCodeParts[i]);
-            daParamCollection.setCollectionTime(new Date());
-            daParamCollection.setSfcCode(daParamCollection.getProductBarcode());
-            daParamCollectionMapper.insertDaParamCollection(daParamCollection);
+        String tightenData = daParamCollection.getTightenTheArray();
+        if(StringUtils.isNotBlank(paramCode)&&StringUtils.isNotBlank(tightenData)){
+            tightenData = tightenData.replace("[", "").replace("]", "").replace(" ", "");
+            String[] tightenDataParts = tightenData.split(",");
+            String[] paramCodeParts = paramCode.split(",");
+            for (int i = 0; i < paramCodeParts.length; i++) {
+                daParamCollection.setParamValue(tightenDataParts[i]);
+                daParamCollection.setParamCode(paramCodeParts[i]);
+                daParamCollection.setCollectionTime(new Date());
+                daParamCollection.setSfcCode(daParamCollection.getProductBarcode());
+                daParamCollectionMapper.insertDaParamCollection(daParamCollection);
+
+                DaParamCollectionTemp daParamCollectionTemp = new DaParamCollectionTemp();
+                daParamCollectionTemp.setParamValue(tightenDataParts[i]);
+                daParamCollectionTemp.setParamCode(paramCodeParts[i]);
+                daParamCollectionTemp.setCollectionTime(new Date());
+                daParamCollectionTemp.setSfcCode(daParamCollection.getProductBarcode());
+                daParamCollectionTemp.setLocationCode(daParamCollection.getLocationCode());
+                daParamCollectionTemp.setProductCode(daParamCollection.getProductCode());
+                daParamCollectionTemp.setWorkOrderNo(daParamCollection.getWorkOrderNo());
+                daParamCollectionTempService.save(daParamCollectionTemp);
+            }
         }
     }
 
     @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")){
+//        List<BsFormulaChildInfo> list = bsFormulaChildInfoService.list(new LambdaQueryWrapper<BsFormulaChildInfo>()
+//                .eq(BsFormulaChildInfo::getProcessesCode, daParamCollection.getLocationCode())
+//                .eq(BsFormulaChildInfo::getSpareField4, "1")
+//        );
+        BsFormulaChildInfo childInfo = daParamCollection.getFormulaChildEntity();
+        if(StringUtils.isNotBlank(childInfo.getResults())){
+            if(!childInfo.getResults().equals("OK")){
+                try {
+                    miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+daParamCollection.getLocationCode()+".RecordDataDone").value(22).build());
+                } catch (Exception e) {
+                    throw new RuntimeException(e);
+                }
+                return;
+            }
+        }else {
             try {
                 miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+daParamCollection.getLocationCode()+".RecordDataDone").value(22).build());
             } catch (Exception e) {
@@ -218,42 +294,84 @@
             }
             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();
+//        BsFormulaChildInfo bsFormulaChildInfo = new BsFormulaChildInfo();
+//        bsFormulaChildInfo.setProcessesCode(daParamCollection.getLocationCode());
+//        bsFormulaChildInfo.setProductCode(daParamCollection.getProductCode());
+//        bsFormulaChildInfo.setSpareField4("1");
+//        List<BsFormulaChildInfo> bsFormulaChildInfos = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(bsFormulaChildInfo);
+        String result = childInfo.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);
+//                //鏇存柊鍙傛暟閲囬泦閰嶇疆琛�
+//                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.setSfcCode(daParamCollection.getProductBarcode());
+                daPassingStationCollection.setProductCode(daParamCollection.getProductCode());
                 daPassingStationCollection.setLocationCode(daParamCollection.getLocationCode());
-                List<DaPassingStationCollection> daPassingStationCollections = daPassingStationCollectionMapper.selectDaPassingStationCollectionList(daPassingStationCollection);
-                daPassingStationCollections.get(0).setOutboundTime(new Date());
-                int i = daPassingStationCollectionMapper.updateDaPassingStationCollection(daPassingStationCollections.get(0));
+                daPassingStationCollection.setInboundTime(daParamCollection.getInboundTime());
+                daPassingStationCollection.setOutboundTime(new Date());
+                daPassingStationCollection.setCreateTime(new Date());
+                daPassingStationCollection.setOutRsSign("1");
+                boolean save = daPassingStationCollectionService.save(daPassingStationCollection);
+
+                //娣诲姞鍩虹鍙傛暟
+                this.manualWorkstationsAddBasicParameters(daParamCollection);
+
+//                //鏇存柊杩囩珯璁板綍琛ㄥ嚭绔欐椂闂�
+//                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());
+                if(daParamCollection.getLocationCode().equals("POP240")){
+                    try{
+                        CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> {
+                            logger.info("OP230鎶ュ伐寮�濮�-宸ュ巶MES寮傛鏂规硶");
+                            String reportResult = RestfulService.getWorkReportResultFeedback(daParamCollection.getProductBarcode(), "POP230", format.format(new Date()));
+                            JSONObject jsonObject = new JSONObject(reportResult);
+                            String code = jsonObject.getStr("code");
+                            if("success".equals(code)){
+                                //濡傛灉鎴愬姛锛屾墽琛屾姤宸ユ垚鍔熸柟娉曪紝淇敼鏄惁鎶ュ伐涓�1锛屾坊鍔犳姤宸ユ椂闂�
+                                omProductionOrdeInfoService.updateOrderByProductNum("1",daParamCollection.getProductBarcode(),"POP230");
+                            }else{
+                                //瑙f瀽宸ュ巶mes杩斿洖缁撴灉锛屽鏋滃け璐ワ紝鎵ц鎶ュ伐澶辫触鏂规硶锛屼慨鏀规槸鍚︽姤宸ヤ负2锛屾坊鍔犳姤宸ユ椂闂�
+                                omProductionOrdeInfoService.updateOrderByProductNum("2",daParamCollection.getProductBarcode(),"POP230");
+                            }
+                            logger.info("OP230鎶ュ伐缁撴潫-宸ュ巶MES寮傛鏂规硶{}"+reportResult);
+                        });
+                    }catch (Exception e){
+                        System.out.println(e.getMessage());
+                    }
+//                    RestfulService.getWorkReportResultFeedback(daParamCollection.getProductBarcode(),"OP230",format.format(new Date()));
+                }
+                if(daParamCollection.getLocationCode().equals("POP430")){
+                    this.enterWeighing(daParamCollection);
+                }
+
+
+
             } catch (Exception e) {
                 throw new RuntimeException(e);
             }
@@ -313,4 +431,470 @@
             daParamCollectionMapper.insertDaParamCollection(saveData);
         });
     }
+
+    @Override
+    public void jrmSaveCampaignTimeParameters(DaParamCollection daParamCollection) {
+        //澧炲姞杩囩珯璁板綍
+        DaPassingStationCollection daPassingStationCollection = new DaPassingStationCollection();
+        daPassingStationCollection.setWorkOrderNo(daParamCollection.getWorkOrderNo());
+        daPassingStationCollection.setSfcCode(daParamCollection.getProductBarcode());
+        daPassingStationCollection.setProductCode(daParamCollection.getProductCode());
+        daPassingStationCollection.setLocationCode(daParamCollection.getLocationCode());
+        daPassingStationCollection.setInboundTime(daParamCollection.getInboundTime());
+        daPassingStationCollection.setOutboundTime(new Date());
+        daPassingStationCollection.setCreateTime(new Date());
+        daPassingStationCollection.setOutRsSign("1");
+        boolean save = daPassingStationCollectionService.save(daPassingStationCollection);
+
+        //娣诲姞鍩虹鍙傛暟
+        this.manualWorkstationsAddBasicParameters(daParamCollection);
+
+        //缁檕pc鍙�21
+        try {
+//            miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+daParamCollection.getLocationCode()+".RecordDataDone").value(21).build());
+            String str = daParamCollection.getLocationCode();
+            miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+str+".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";
+        String url = "https://imes-group.geelycv.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) {
+        logger.info("杩涘叆浜哄伐宸ヤ綅鎺ㄩ�佸伐鍘侻ES鏁版嵁鏂规硶-pushGeelycvMesFeedback-宸ヤ綅{}-pack鐮亄}",stationCode,packID);
+        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 url = "https://imes-group.geelycv.com/api/mom-open/restful/aMesSysIntegration/deviceResultFeedback";
+        String totalResult = "0";
+        List<DaParamCollectionTemp> paramList = daParamCollectionTempService.list(new LambdaQueryWrapper<DaParamCollectionTemp>().eq(DaParamCollectionTemp::getSfcCode, packID).eq(DaParamCollectionTemp::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 (DaParamCollectionTemp daParamCollection : paramList) {
+                ChildVO childVO = new ChildVO();
+                childVO.setItemCode(daParamCollection.getParamCode());
+                List<DaCollectionParamConf> paramConfOneList = daCollectionParamConfService.list(new LambdaQueryWrapper<DaCollectionParamConf>()
+                        .eq(DaCollectionParamConf::getCollectParameterId, daParamCollection.getParamCode())
+                        .eq(DaCollectionParamConf::getProductModel, "PE01B")
+                );
+                DaCollectionParamConf paramConfOne = paramConfOneList.get(0);
+                if(paramConfOne!=null){
+                    childVO.setItemType(paramConfOne.getSpareField1());
+                    childVO.setItemText(paramConfOne.getCollectParameterName());
+                }else {
+                    childVO.setItemType("3");
+                    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);
+            try{
+                CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> {
+                    logger.info("宸ヤ綅{}---寮�濮嬫墽琛屽紓姝ユ柟娉�---pack鐮佹槸{}"+stationCode,packID);
+                    HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute();
+                    logger.info("宸ヤ綅{}---寮傛鏂规硶鎵ц缁撴潫---pack鐮佹槸{}"+stationCode,packID);
+                    logger.info("鎵嬪姩宸ヤ綅{}浼犲伐鍘傚叆鍙俈O{}---pack鐮佹槸{}" + stationCode,new Gson().toJson(parentVO),packID);
+                    logger.info("鎵嬪姩宸ヤ綅{}浼犲伐鍘侻ES寮傛鏂规硶{}---pack鐮佹槸{}"+stationCode,execute.body(),packID);
+
+                    DaParamCollectionTemp daParamCollectionTemp = new DaParamCollectionTemp();
+                    daParamCollectionTemp.setSfcCode(packID);
+                    daParamCollectionTemp.setLocationCode(stationCode);
+                    int i = daParamCollectionTempService.deleteDaParamCollectionTempBySfcCodeAndLocationCode(daParamCollectionTemp);
+                    logger.info("鍒犻櫎涓存椂琛ㄦ暟鎹潯鏁皗}-宸ヤ綅{}-pack鐮亄}",i,stationCode,packID);
+                });
+            }catch (Exception e){
+                System.out.println(e.getMessage());
+            }
+            logger.info("缁撴潫浜哄伐宸ヤ綅鎺ㄩ�佸伐鍘侻ES鏁版嵁鏂规硶-pushGeelycvMesFeedback-宸ヤ綅{}-pack鐮亄}",stationCode,packID);
+        }
+
+    }
+
+    @Override
+    public void automaticWorkstationPushGeelycvMesFeedback(String packID, String stationCode,List<DaParamCollection> paramList) {
+        logger.info("杩涘叆宸ヤ綅{}-宸ュ巶MES鎺ㄩ�佹暟鎹柟娉昦utomaticWorkstationPushGeelycvMesFeedback",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 url = "https://imes-group.geelycv.com/api/mom-open/restful/aMesSysIntegration/deviceResultFeedback";
+        String totalResult = "0";
+        if(paramList.size() > 0){
+            logger.info("杩涘叆宸ヤ綅{}-鎷兼暟鎹�",stationCode);
+            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()));
+                List<DaCollectionParamConf> paramConfOneList = daCollectionParamConfService.list(new LambdaQueryWrapper<DaCollectionParamConf>()
+                        .eq(DaCollectionParamConf::getCollectParameterId, daParamCollection.getParamCode())
+                        .eq(DaCollectionParamConf::getProductModel, "PE01B")
+                );
+                DaCollectionParamConf paramConfOne = paramConfOneList.get(0);
+                if(paramConfOne!=null){
+                    childVO.setItemType(paramConfOne.getSpareField1());
+                    childVO.setItemText(paramConfOne.getCollectParameterName());
+                }else {
+                    childVO.setItemType("3");
+                    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);
+            logger.info("缁撴潫宸ヤ綅{}-鎷兼暟鎹�",stationCode);
+            logger.info("杩涘叆宸ヤ綅{}-宸ュ巶MES鎺ㄩ�佹暟鎹柟娉旽ttpResponseSend",stationCode);
+            try{
+                CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> {
+                    logger.info("宸ヤ綅{}---鑷姩宸ヤ綅寮�濮嬫墽琛屽紓姝ユ柟娉�---pack鐮佹槸{}"+stationCode,packID);
+                    HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute();
+                    logger.info("宸ヤ綅{}---鑷姩宸ヤ綅寮傛鏂规硶鎵ц缁撴潫---pack鐮佹槸{}"+stationCode,packID);
+                    logger.info("鑷姩宸ヤ綅{}浼犲伐鍘傚叆鍙俈O{}" + stationCode,new Gson().toJson(parentVO));
+                    logger.info("鑷姩宸ヤ綅{}浼犲伐鍘侻ES寮傛鏂规硶杩斿洖{}"+stationCode,execute.body());
+                });
+            }catch (Exception e){
+                System.out.println(e.getMessage());
+            }
+//            HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute();
+            logger.info("缁撴潫宸ヤ綅{}-宸ュ巶MES鎺ㄩ�佹暟鎹柟娉旽ttpResponseSend",stationCode);
+        }
+        logger.info("缁撴潫宸ヤ綅{}-宸ュ巶MES鎺ㄩ�佹暟鎹柟娉昦utomaticWorkstationPushGeelycvMesFeedback",stationCode);
+    }
+
+    @Override
+    public AjaxResult checkRecordDataDone(DaParamCollection daParamCollection) {
+        String result = "";
+
+
+        try {
+            List<BsFormulaChildInfo> list = bsFormulaChildInfoService.list(new LambdaQueryWrapper<BsFormulaChildInfo>().eq(BsFormulaChildInfo::getSpareField4, "1").eq(BsFormulaChildInfo::getProcessesCode, daParamCollection.getLocationCode()));
+            if(list.size()>0){
+                String results = list.get(0).getResults();
+                if(results!= null && !results.equals("") && results.equals("OK")){
+                    result = "21";
+                }
+            }
+            /*Object recordDataDone = miloService.readFromOpcUa("PACK" + "." + daParamCollection.getLocationCode() + ".RecordDataDone").getValue();
+            if(ObjectUtil.isNotNull(recordDataDone)){
+                result = recordDataDone.toString();
+            }*/
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+        return AjaxResult.success(result);
+    }
+
+    @Override
+    public void enterWeighing(DaParamCollection daParamCollection) {
+        String url = "https://imes-group.geelycv.com/api/mom-open/restful/aMesSysIntegration/deviceResultFeedback";
+//        String url = "https://imes-uat-group.geelycv-test.com/api/mom-open/restful/aMesSysIntegration/deviceResultFeedback";
+        try{
+            daParamCollection.setWeightValue(getRandomNumberBetween(312.5, 313.5));
+            Object recordDataDone = miloService.readFromOpcUa("PACK" + "." + daParamCollection.getLocationCode() + ".weight").getValue();
+            if(ObjectUtil.isNotNull(recordDataDone)){
+                daParamCollection.setWeightValue(recordDataDone.toString());
+            }
+            long timestampMillis = Instant.now().toEpochMilli();
+            ParentVO parentVO = new ParentVO();
+            ChildVO childVO = new ChildVO();
+            List<ChildVO> childVOList = new ArrayList<>();
+            childVO.setItemCode("PWD_PW");
+            childVO.setItemType("3");
+            childVO.setItemText("Pack閲嶉噺鍊�");
+            childVO.setItemValue(daParamCollection.getWeightValue());
+            childVO.setCheckTime(format.format(new Date()));
+            childVO.setCheckResult("1");
+            childVOList.add(childVO);
+            parentVO.setSiteCode("3983");
+            parentVO.setRecordId(""+timestampMillis);
+            parentVO.setStationCode("POP430");
+            parentVO.setProductNum(daParamCollection.getProductBarcode());
+            parentVO.setTotalResult("1");
+            parentVO.setCheckList(childVOList);
+            CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> {
+                logger.info("POP430鎶ュ伐寮�濮�-宸ュ巶MES寮傛鏂规硶");
+                HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute();
+                logger.info("绉伴噸430杩斿洖缁撴灉"+execute.body());
+                String reportResult = RestfulService.getWorkReportResultFeedback(daParamCollection.getProductBarcode(), "POP430", format.format(new Date()));
+                JSONObject jsonObject = new JSONObject(reportResult);
+                String code = jsonObject.getStr("code");
+                String resultCode = jsonObject.getJSONObject("data").getStr("resultCode");
+                if("success".equals(code)&&"S".equals(resultCode)){
+                    //濡傛灉鎴愬姛锛屾墽琛屾姤宸ユ垚鍔熸柟娉曪紝淇敼鏄惁鎶ュ伐涓�1锛屾坊鍔犳姤宸ユ椂闂�
+                    WebSocketUsers.sendMessageToUserByText(map.get("POP430"), "reportSuccess");
+                    omProductionOrdeInfoService.updateOrderByProductNum("1",daParamCollection.getProductBarcode(),"POP430");
+                }else{
+                    WebSocketUsers.sendMessageToUserByText(map.get("POP430"), "reportError");
+                    //瑙f瀽宸ュ巶mes杩斿洖缁撴灉锛屽鏋滃け璐ワ紝鎵ц鎶ュ伐澶辫触鏂规硶锛屼慨鏀规槸鍚︽姤宸ヤ负2锛屾坊鍔犳姤宸ユ椂闂�
+                    omProductionOrdeInfoService.updateOrderByProductNum("2",daParamCollection.getProductBarcode(),"POP430");
+                }
+                logger.info("OP430鎶ュ伐缁撴潫-宸ュ巶MES寮傛鏂规硶{}"+reportResult);
+            });
+        }catch (Exception e){
+            WebSocketUsers.sendMessageToUserByText(map.get("POP430"), "reportError");
+            System.out.println(e.getMessage());
+        }
+//        HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute();
+//        RestfulService.getWorkReportResultFeedback(daParamCollection.getSfcCode(),"POP430",format.format(new Date()));
+    }
+
+    @Override
+    public void manualWorkstationsAddBasicParameters(DaParamCollection daParamCollection) {
+        // 鍋囪杩欐槸浠庢暟鎹簱鎴栧叾浠栧湴鏂硅幏鍙栫殑鍙傛暟鏁版嵁
+        Map<String, String> map = new HashMap<>();
+        map.put("GC", "鍗楁禂宸ュ巶");
+        map.put("CXBH", "Pack绾�");
+        map.put("SBBH", "璁惧001");
+        map.put("YGBH", SecurityUtils.getUsername());
+        map.put("GDBH", daParamCollection.getWorkOrderNo());
+        map.put("CPXH", daParamCollection.getProductCode());
+        map.put("INT", format.format(daParamCollection.getInboundTime()));
+        map.put("OUTT",format.format(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);
+
+            DaParamCollectionTemp saveDataTemp = new DaParamCollectionTemp();
+            saveDataTemp.setWorkOrderNo(daParamCollection.getWorkOrderNo());
+            saveDataTemp.setProductCode(daParamCollection.getProductCode());
+            saveDataTemp.setLocationCode(daParamCollection.getLocationCode());
+            saveDataTemp.setSfcCode(daParamCollection.getProductBarcode());
+            saveDataTemp.setParamCode(daCollectionParamConfs.get(0).getCollectParameterId());
+            saveDataTemp.setParamName(daCollectionParamConfs.get(0).getCollectParameterName());
+            saveDataTemp.setCollectionTime(new Date());
+            saveDataTemp.setParamValue(value);
+            daParamCollectionTempService.save(saveDataTemp);
+
+        });
+    }
+
+    @Override
+    public void preInstallOut(DaParamCollection daParamCollection) {
+        String locationCode = daParamCollection.getLocationCode();
+        //澧炲姞杩囩珯璁板綍
+        DaPassingStationCollection daPassingStationCollection = new DaPassingStationCollection();
+        daPassingStationCollection.setSfcCode(daParamCollection.getProductBarcode());
+        daPassingStationCollection.setLocationCode(locationCode);
+        daPassingStationCollection.setInboundTime(daParamCollection.getInboundTime());
+        daPassingStationCollection.setOutboundTime(new Date());
+        daPassingStationCollection.setCreateTime(new Date());
+        daPassingStationCollection.setOutRsSign("1");
+        boolean save = daPassingStationCollectionService.save(daPassingStationCollection);
+        //娣诲姞鍩虹鍙傛暟
+        this.manualWorkstationsAddBasicParameters(daParamCollection);
+
+        try {
+            String str = "PACK."+locationCode+".RecordDataDone";
+            miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(str).value(21).build());
+            logger.info("棰勮宸ヤ綅鍐欏叆OPC鎴愬姛锛屽伐浣嶏細{}锛屽�納}",str,21);
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    @Override
+    public AjaxResult addRepairTighteningData(DaParamCollection daParamCollection) {
+        try {
+        String url = "https://imes-group.geelycv.com/api/mom-open/restful/aMesSysIntegration/deviceResultFeedback";
+//            String url = "https://imes-uat-group.geelycv-test.com/api/mom-open/restful/aMesSysIntegration/deviceResultFeedback";
+            String processesCode =  daParamCollection.getLocationCode();
+
+            long timestampMillis = Instant.now().toEpochMilli();
+            ParentVO parentVO = new ParentVO();
+            List<ChildVO> childVOList = new ArrayList<>();
+            parentVO.setSiteCode("3983");
+            parentVO.setRecordId(""+timestampMillis);
+            parentVO.setStationCode(processesCode);
+            parentVO.setProductNum(daParamCollection.getSfcCode());
+            parentVO.setTotalResult("1");
+            parentVO.setCheckList(childVOList);
+
+            String screwNumber = daParamCollection.getScrewNumber();
+            String torque = daParamCollection.getTorque();
+            String angle = daParamCollection.getAngle();
+            String torqueResult = daParamCollection.getTorqueResult();
+            String angleResult = daParamCollection.getAngleResult();
+
+            Map<String, String> map = new HashMap<>();
+            map.put("POP320","妯$粍");
+            map.put("POP400","绠辩洊");
+
+            List<String> nameLikeString = new ArrayList<>();
+            nameLikeString.add(map.get(processesCode)+"鎷х揣鏈�缁堟壄鐭�");
+            nameLikeString.add(map.get(processesCode)+"鎷х揣鏈�缁堣搴�");
+            nameLikeString.add(map.get(processesCode)+"鎷х揣鏈�缁堟壄鐭╂槸鍚﹀湪鑼冨洿鍐�");
+            nameLikeString.add(map.get(processesCode)+"鎷х揣鏈�缁堣搴︽槸鍚﹀湪鑼冨洿鍐�");
+
+            if(screwNumber.contains("锛�")){
+                String[] screwNumberSplit = screwNumber.split("锛�");
+                String[] torqueSplit = torque.split("锛�");
+                String[] angleSplit = angle.split("锛�");
+                String[] torqueResultSplit = torqueResult.split("锛�");
+                String[] angleResultSplit = angleResult.split("锛�");
+
+                List<String[]> dataList = new ArrayList<String[]>();
+                dataList.add(torqueSplit);
+                dataList.add(angleSplit);
+                dataList.add(torqueResultSplit);
+                dataList.add(angleResultSplit);
+
+                for (int k = 0; k < nameLikeString.size(); k++) {
+                    for (int i = 0; i < screwNumberSplit.length; i++) {
+                        String s1 = nameLikeString.get(k)+screwNumberSplit[i];
+                        List<DaCollectionParamConf> confList = daCollectionParamConfService.list(new LambdaQueryWrapper<DaCollectionParamConf>()
+                                .eq(DaCollectionParamConf::getProcessesCode, processesCode)
+                                .eq(DaCollectionParamConf::getCollectParameterName, s1)
+                        );
+                        DaCollectionParamConf daCollectionParamConf = confList.get(0);
+                        ChildVO childVO = new ChildVO();
+                        childVO.setItemCode(daCollectionParamConf.getCollectParameterId());
+                        childVO.setItemType(daCollectionParamConf.getSpareField1());
+                        childVO.setItemText(daCollectionParamConf.getCollectParameterName());
+                        String itemValue = dataList.get(k)[i];
+                        childVO.setItemValue(itemValue);
+                        childVO.setCheckTime(format.format(new Date()));
+                        childVO.setCheckResult("1");
+                        childVOList.add(childVO);
+                    }
+                }
+            }else {
+                List<String> dataList = new ArrayList<>();
+                dataList.add(torque);
+                dataList.add(angle);
+                dataList.add(torqueResult);
+                dataList.add(angleResult);
+                for (int k = 0; k < nameLikeString.size(); k++) {
+                    String collectParameterName = nameLikeString.get(k)+screwNumber;
+                    List<DaCollectionParamConf> confList = daCollectionParamConfService.list(new LambdaQueryWrapper<DaCollectionParamConf>()
+                            .eq(DaCollectionParamConf::getProcessesCode, processesCode)
+                            .eq(DaCollectionParamConf::getCollectParameterName, collectParameterName)
+                    );
+                    DaCollectionParamConf daCollectionParamConf = confList.get(0);
+                    ChildVO childVO = new ChildVO();
+                    childVO.setItemCode(daCollectionParamConf.getCollectParameterId());
+                    childVO.setItemType(daCollectionParamConf.getSpareField1());
+                    childVO.setItemText(daCollectionParamConf.getCollectParameterName());
+                    String itemValue = dataList.get(k);
+                    childVO.setItemValue(itemValue);
+                    childVO.setCheckTime(format.format(new Date()));
+                    childVO.setCheckResult("1");
+                    childVOList.add(childVO);
+                }
+            }
+
+            System.out.println(childVOList);
+            logger.info("宸ヤ綅{}-----------杩斾慨鏁版嵁涓婁紶鍏ュ弬vo锛歿}",processesCode,new Gson().toJson(parentVO));
+            HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute();
+            logger.info("宸ヤ綅{}-----------杩斾慨鏁版嵁涓婁紶缁撴灉锛歿}",processesCode,execute.body());
+            return AjaxResult.success("涓婁紶鎴愬姛");
+        }catch (Exception e){
+            return AjaxResult.error("涓婁紶澶辫触锛屽弬鏁颁笉瀵硅妫�鏌ワ紒");
+        }
+    }
+
+    public static String getRandomNumberBetween(double min, double max) {
+        return String.format("%.1f",min + (Math.random() * (max - min)));
+    }
+
+
 }

--
Gitblit v1.9.3