From 768498719683f85e5ed19c73eb3d14cdbf420df4 Mon Sep 17 00:00:00 2001
From: admin <15939171744@163.com>
Date: 星期一, 01 七月 2024 14:03:01 +0800
Subject: [PATCH] 绑定小车码,预装总成码,手动工位扫码,拧紧逻辑优化

---
 jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/service/impl/BsFormulaChildInfoServiceImpl.java |  567 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 559 insertions(+), 8 deletions(-)

diff --git a/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/service/impl/BsFormulaChildInfoServiceImpl.java b/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/service/impl/BsFormulaChildInfoServiceImpl.java
index 09972b8..3221f31 100644
--- a/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/service/impl/BsFormulaChildInfoServiceImpl.java
+++ b/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/service/impl/BsFormulaChildInfoServiceImpl.java
@@ -1,14 +1,45 @@
 package com.jcdm.main.bs.formulaChild.service.impl;
 
+import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
 
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.jcdm.common.core.domain.AjaxResult;
 import com.jcdm.common.utils.DateUtils;
+import com.jcdm.common.utils.StringUtils;
+import com.jcdm.framework.websocket.WebSocketUsers;
+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.da.testDeviceInterface.service.IDaTestDeviceInterfaceService;
+import com.jcdm.main.plcserver.util.TimeUtil;
+import com.kangaroohy.milo.model.ReadWriteEntity;
+import com.kangaroohy.milo.service.MiloService;
+import lombok.extern.slf4j.Slf4j;
+import org.aspectj.weaver.loadtime.Aj;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.jcdm.main.bs.formulaChild.mapper.BsFormulaChildInfoMapper;
 import com.jcdm.main.bs.formulaChild.domain.BsFormulaChildInfo;
 import com.jcdm.main.bs.formulaChild.service.IBsFormulaChildInfoService;
+
+import javax.websocket.Session;
 
 /**
  * 閰嶆柟閰嶇疆瀛愪俊鎭疭ervice涓氬姟灞傚鐞�
@@ -17,10 +48,38 @@
  * @date 2023-12-26
  */
 @Service
-public class BsFormulaChildInfoServiceImpl implements IBsFormulaChildInfoService 
+@Slf4j
+public class BsFormulaChildInfoServiceImpl extends ServiceImpl<BsFormulaChildInfoMapper,BsFormulaChildInfo> implements IBsFormulaChildInfoService
 {
+    private static final Logger logger = LoggerFactory.getLogger("sys-user");
     @Autowired
     private BsFormulaChildInfoMapper bsFormulaChildInfoMapper;
+
+    @Autowired
+    private IBsFormulaChildInfoService bsFormulaChildInfoService;
+
+    @Autowired
+    private DaParamCollectionMapper daParamCollectionMapper;
+
+    @Autowired
+    private MiloService miloService;
+
+    @Autowired
+    private DaPassingStationCollectionMapper daPassingStationCollectionMapper;
+
+    @Autowired
+    private IDaTestDeviceInterfaceService daTestDeviceInterfaceService;
+
+    @Autowired
+    private IDaParamCollectionService daParamCollectionService;
+
+    @Autowired
+    private IDaPassingStationCollectionService daPassingStationCollectionService;
+
+    @Autowired
+    private IDaParamCollectionTempService daParamCollectionTempService;
+
+    Map<String, Session> map = WebSocketUsers.getUsers();
 
     /**
      * 鏌ヨ閰嶆柟閰嶇疆瀛愪俊鎭�
@@ -106,25 +165,517 @@
     }
 
     @Override
-    public List<BsFormulaChildInfo> releaseCheck(BsFormulaChildInfo bsFormulaChildInfo) {
-        return bsFormulaChildInfoMapper.releaseCheck(bsFormulaChildInfo);
+    public BsFormulaChildInfo getCount(String productCode, String processesCode) {
+        BsFormulaChildInfo info = new BsFormulaChildInfo();
+        info.setProcessesCode(processesCode);
+        info.setProductCode(productCode);
+        return bsFormulaChildInfoMapper.getCount(info);
     }
 
     @Override
-    public AjaxResult updateResults(BsFormulaChildInfo bsFormulaChildInfo) {
-        List<BsFormulaChildInfo> bsFormulaChildInfos = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(bsFormulaChildInfo);
+    public AjaxResult yzUpdateResults(BsFormulaChildInfo bsFormulaChildInfo) {
+        String result = "";
+        List<BsFormulaChildInfo> bsFormulaChildInfos = new ArrayList<>();
+        List<BsFormulaChildInfo> infos = bsFormulaChildInfoService.list(new LambdaQueryWrapper<BsFormulaChildInfo>()
+                .eq(BsFormulaChildInfo::getProcessesCode, bsFormulaChildInfo.getLocationCode())
+                .eq(BsFormulaChildInfo::getProductCode, bsFormulaChildInfo.getProductCode())
+                .eq(BsFormulaChildInfo::getOperationType, "2")
+        );
+        List<String> newResultsList = infos.stream().map(s -> s.getCollectData()).collect(Collectors.toList());
+        if(newResultsList.stream().noneMatch(results -> results.equals(bsFormulaChildInfo.getScanBarcode()))){
+            for (BsFormulaChildInfo formulaChildInfo : infos) {
+                if(bsFormulaChildInfo.getScanBarcode().contains(formulaChildInfo.getMaterialCode())) {
+                    bsFormulaChildInfos.add(formulaChildInfo);
+                    break;
+                }
+            }
+        }
         if(bsFormulaChildInfos.size()>0){
+            String spareField4 = bsFormulaChildInfos.get(0).getSpareField4();
+            bsFormulaChildInfos.get(0).setCollectData(bsFormulaChildInfo.getScanBarcode());
             bsFormulaChildInfos.get(0).setResults("OK");
             bsFormulaChildInfoMapper.updateBsFormulaChildInfo(bsFormulaChildInfos.get(0));
+            bsFormulaChildInfo.setParamValue(bsFormulaChildInfo.getScanBarcode());
+            bsFormulaChildInfo.setParamCode(bsFormulaChildInfos.get(0).getParamCode());
+            bsFormulaChildInfo.setSfcBarcode(bsFormulaChildInfo.getSfcBarcode());
+            addParameterCollection(bsFormulaChildInfo);
+            if (spareField4 != null && !spareField4.isEmpty()) {
+                // 鎵ц鎿嶄綔
+                if(bsFormulaChildInfos.get(0).getSpareField4().equals("1")){
+                    try {
+                        result = "3";
+                    } catch (Exception e) {
+                        throw new RuntimeException(e);
+                    }
+                }
+            }
         }else {
-            return AjaxResult.error("闈炴湰宸ヤ綅鐗╂枡锛岃閲嶆柊鎵弿");
+            result = "1";
         }
-        return AjaxResult.success("鎴愬姛");
+        return AjaxResult.success(result);
+    }
+
+    @Override
+    public AjaxResult yzUpdateTighteningFormula(BsFormulaChildInfo bsFormulaChildInfo) {
+        Boolean b = true;
+        String result = "1";
+//        BsFormulaChildInfo getMaterTwo = new BsFormulaChildInfo();
+//        getMaterTwo.setProcessesCode(bsFormulaChildInfo.getLocationCode());
+//        getMaterTwo.setOperationType("2");
+//        List<BsFormulaChildInfo> operationType = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(getMaterTwo);
+//        List<String> collect = operationType.stream().map(BsFormulaChildInfo::getResults).collect(Collectors.toList());
+//        for (String s : collect) {
+//            if(s.equals("")){
+////                return AjaxResult.success("鎵弿鏈畬鎴愶紝绂佹鎷х揣鎿嶄綔锛�");
+//            }
+//        }
+//        BsFormulaChildInfo listQuery = new BsFormulaChildInfo();
+//        listQuery.setParamCode(bsFormulaChildInfo.getParamCode());
+//        listQuery.setProcessesCode(bsFormulaChildInfo.getLocationCode());
+        String paramData = bsFormulaChildInfo.getTightenTheArray();
+        if(paramData.contains("N")){
+            result = "3";
+//            List<BsFormulaChildInfo> bsFormulaChildInfos = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(listQuery);
+//            bsFormulaChildInfos.get(0).setResults("NG");
+//            bsFormulaChildInfos.get(0).setCollectData(bsFormulaChildInfo.getTightenTheArray());
+//            bsFormulaChildInfoMapper.updateBsFormulaChildInfo(bsFormulaChildInfos.get(0));
+            this.updateTighteningData(bsFormulaChildInfo,"NG",paramData);
+//            return AjaxResult.success("鎵弿缁撴灉NG,璇烽噸鏂版壂鎻忥紒");
+        }else {
+//            List<BsFormulaChildInfo> bsFormulaChildInfos = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(listQuery);
+            if(bsFormulaChildInfo.getSpareField2()!=null&&bsFormulaChildInfo.getSpareField3()!=null){
+                String tightenArray = bsFormulaChildInfo.getTightenTheArray().replace("[", "").replace("]", "").replace(" ", "");
+                String[] tightenDataParts = tightenArray.split(",");
+                b = TimeUtil.isNumberInRange(Double.parseDouble(tightenDataParts[0]),Double.parseDouble(bsFormulaChildInfo.getSpareField2()),Double.parseDouble(bsFormulaChildInfo.getSpareField3()));
+            }
+            if(b){
+                result = "3";
+//                bsFormulaChildInfos.get(0).setResults("OK");
+//                bsFormulaChildInfos.get(0).setCollectData(bsFormulaChildInfo.getTightenTheArray());
+//                bsFormulaChildInfoMapper.updateBsFormulaChildInfo(bsFormulaChildInfos.get(0));
+                this.updateTighteningData(bsFormulaChildInfo,"OK",paramData);
+//                logger.info("yzUpdateTighteningFormula--鏌ヨ鏉′欢鍙傛暟锛�"+listQuery);
+//                logger.info("yzUpdateTighteningFormula--鏌ヨ缁撴灉锛�"+bsFormulaChildInfos.get(0));
+                Integer stepNumber = Integer.valueOf(bsFormulaChildInfo.getStepSort());
+                try {
+                    miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+bsFormulaChildInfo.getLocationCode()+".MStepNumber").value(stepNumber+1).build());
+                } catch (Exception e) {
+                    throw new RuntimeException(e);
+                }
+
+                String spareField4 = bsFormulaChildInfo.getSpareField4();
+                if (spareField4 != null && !spareField4.isEmpty()) {
+                    // 鎵ц鎿嶄綔
+                    if(bsFormulaChildInfo.getSpareField4().equals("1")){
+                        try {
+//                        WebSocketUsers.sendMessageToUserByText(map.get(bsFormulaChildInfo.getLocationCode()), "OUT");
+                            result = "2";
+                        } catch (Exception e) {
+                            throw new RuntimeException(e);
+                        }
+                    }
+                }
+            }else {
+                result = "3";
+//                List<BsFormulaChildInfo> bsFormulaChildInfos1 = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(listQuery);
+//                bsFormulaChildInfos1.get(0).setResults("NG");
+//                String originalString = bsFormulaChildInfo.getTightenTheArray();
+                String modifiedString = paramData.replaceFirst("OK", "NG");
+//                bsFormulaChildInfos1.get(0).setCollectData(modifiedString);
+//                bsFormulaChildInfoMapper.updateBsFormulaChildInfo(bsFormulaChildInfos1.get(0));
+                this.updateTighteningData(bsFormulaChildInfo,"NG",modifiedString);
+//                return AjaxResult.success("鎵弿缁撴灉NG,璇烽噸鏂版壂鎻忥紒");
+            }
+        }
+        return AjaxResult.success(result);
+    }
+
+    @Override
+    public AjaxResult updateTighteningData(BsFormulaChildInfo bsFormulaChildInfo,String result,String data) {
+        LambdaUpdateWrapper<BsFormulaChildInfo> updateWrapper = new LambdaUpdateWrapper();
+        updateWrapper.set(BsFormulaChildInfo::getCollectData, data);
+        updateWrapper.set(BsFormulaChildInfo::getResults, result);
+        updateWrapper.eq(BsFormulaChildInfo::getProcessesCode, bsFormulaChildInfo.getLocationCode());
+        updateWrapper.eq(BsFormulaChildInfo::getParamCode, bsFormulaChildInfo.getParamCode());
+        boolean update = bsFormulaChildInfoService.update(new BsFormulaChildInfo(), updateWrapper);
+        return AjaxResult.success(update);
+    }
+
+    @Override
+    public AjaxResult jrmUpdateResults(BsFormulaChildInfo bsFormulaChildInfo) {
+        String result = "";
+        List<BsFormulaChildInfo> bsFormulaChildInfos = new ArrayList<>();
+        List<BsFormulaChildInfo> infos = bsFormulaChildInfoService.list(new LambdaQueryWrapper<BsFormulaChildInfo>()
+                .eq(BsFormulaChildInfo::getProcessesCode, bsFormulaChildInfo.getLocationCode())
+                .eq(BsFormulaChildInfo::getProductCode, bsFormulaChildInfo.getProductCode())
+                .eq(BsFormulaChildInfo::getOperationType, "2")
+        ).stream().filter(x -> StrUtil.isBlank(x.getCollectData())).collect(Collectors.toList());
+
+
+        for (BsFormulaChildInfo formulaChildInfo : infos) {
+            if(bsFormulaChildInfo.getScanBarcode().contains(formulaChildInfo.getMaterialCode())){
+                bsFormulaChildInfos.add(formulaChildInfo);
+                break;
+            }
+        }
+        if(bsFormulaChildInfos.size()>0){
+            String spareField4 = bsFormulaChildInfos.get(0).getSpareField4();
+            bsFormulaChildInfos.get(0).setCollectData(bsFormulaChildInfo.getScanBarcode());
+            bsFormulaChildInfos.get(0).setResults("OK");
+            bsFormulaChildInfoMapper.updateBsFormulaChildInfo(bsFormulaChildInfos.get(0));
+            bsFormulaChildInfo.setParamValue(bsFormulaChildInfo.getScanBarcode());
+            bsFormulaChildInfo.setParamCode(bsFormulaChildInfos.get(0).getParamCode());
+            bsFormulaChildInfo.setSfcBarcode(bsFormulaChildInfo.getSfcBarcode());
+            jrmAddParameterCollection(bsFormulaChildInfo);
+
+            if (spareField4 != null && !spareField4.isEmpty()) {
+                // 鎵ц鎿嶄綔
+                if(bsFormulaChildInfos.get(0).getSpareField4().equals("1")){
+                    try {
+                        result = "3";
+//                        String strA = bsFormulaChildInfo.getLocationCode() + "A";
+//                        String strB = bsFormulaChildInfo.getLocationCode() + "B";
+//                        miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+strA+".RecordDataDone").value(21).build());
+//                        miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+strB+".RecordDataDone").value(21).build());
+                        String locationCode = bsFormulaChildInfo.getLocationCode();
+//                        miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+locationCode+".RecordDataDone").value(21).build());
+                    } catch (Exception e) {
+                        throw new RuntimeException(e);
+                    }
+                }
+            }
+        }else {
+            result = "1";
+        }
+        return AjaxResult.success(result);
+    }
+
+    @Override
+    public AjaxResult jrmWorkpieceRelease(BsFormulaChildInfo bsFormulaChildInfo) {
+        this.clearCollectDataAndResultsByProcessesCode(bsFormulaChildInfo);
+//        List<BsFormulaChildInfo> list = bsFormulaChildInfoService.list(new LambdaQueryWrapper<BsFormulaChildInfo>()
+//                .eq(BsFormulaChildInfo::getProcessesCode, bsFormulaChildInfo.getLocationCode())
+//                .eq(BsFormulaChildInfo::getProductCode, bsFormulaChildInfo.getProductCode()));
+//        for (BsFormulaChildInfo info : list) {
+//            info.setCollectData("");
+//            info.setResults("");
+//            bsFormulaChildInfoService.saveOrUpdate(info);
+//        }
+        String[] split = bsFormulaChildInfo.getProductBarcode().split(",");
+        try {
+            for (int i = 0; i < split.length; i++) {
+                daParamCollectionService.pushGeelycvMesFeedback(split[i], bsFormulaChildInfo.getLocationCode());
+
+                String barCode = split[i];
+                String locationCode = bsFormulaChildInfo.getLocationCode();
+
+                if(StringUtils.isNotBlank(locationCode)&&StringUtils.isNotBlank(barCode)){
+                    DaPassingStationCollection daPassingStationCollection = new DaPassingStationCollection();
+                    daPassingStationCollection.setOutRsSign("1");
+                    daPassingStationCollection.setOutboundTime(new Date());
+                    daPassingStationCollection.setSfcCode(barCode);
+                    daPassingStationCollection.setLocationCode(locationCode);
+                    int updateDaPassingStation = daPassingStationCollectionService.updateDaPassingStationCollectionBySfcCodeAndLocationCode(daPassingStationCollection);
+                    logger.info("鍔犵儹鑶滀汉宸ュ伐浣嶆洿鏂拌繃绔欒褰晆pdateDaPassingStationCollectionBySfcCodeAndLocationCode:鏇存柊浜唟}鏉℃暟鎹�-鏇存柊鏉′欢pack鐮亄}-宸ヤ綅{}",updateDaPassingStation,barCode,locationCode);
+                }
+
+//                DaPassingStationCollection passingStationCollectionOne = daPassingStationCollectionService.getOne(new LambdaQueryWrapper<DaPassingStationCollection>().eq(DaPassingStationCollection::getSfcCode, barCode).eq(DaPassingStationCollection::getLocationCode, locationCode));
+//                if (passingStationCollectionOne != null) {
+//                    passingStationCollectionOne.setOutRsSign("1");
+//                    passingStationCollectionOne.setOutboundTime(new Date());
+//                    daPassingStationCollectionService.saveOrUpdate(passingStationCollectionOne);
+//                }
+            }
+        }catch (Exception e){
+        }
+        return AjaxResult.success();
+    }
+
+    @Override
+    public AjaxResult clearWorkpieceRelease(BsFormulaChildInfo bsFormulaChildInfo) {
+//        List<BsFormulaChildInfo> list = bsFormulaChildInfoService.list(new LambdaQueryWrapper<BsFormulaChildInfo>()
+//                .eq(BsFormulaChildInfo::getProcessesCode, bsFormulaChildInfo.getLocationCode())
+//                .eq(BsFormulaChildInfo::getProductCode, bsFormulaChildInfo.getProductCode()));
+//        for (BsFormulaChildInfo info : list) {
+//            info.setCollectData("");
+//            info.setResults("");
+//            bsFormulaChildInfoService.saveOrUpdate(info);
+//        }
+        this.clearCollectDataAndResultsByProcessesCode(bsFormulaChildInfo);
+        return AjaxResult.success();
+    }
+
+    @Override
+    public AjaxResult checkMaterialCode(BsFormulaChildInfo bsFormulaChildInfo) {
+        String result = "1";
+        BsFormulaChildInfo getMaterTwo = new BsFormulaChildInfo();
+        getMaterTwo.setProcessesCode(bsFormulaChildInfo.getLocationCode());
+        getMaterTwo.setOperationType("2");
+        List<BsFormulaChildInfo> operationType = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(getMaterTwo);
+        List<String> collect = operationType.stream().map(BsFormulaChildInfo::getResults).collect(Collectors.toList());
+        for (String s : collect) {
+            if(s.equals("")){
+                result = "2";
+            }
+        }
+        return AjaxResult.success(result);
+    }
+
+    @Override
+    public AjaxResult clearCollectDataAndResultsByProcessesCode(BsFormulaChildInfo bsFormulaChildInfo) {
+        LambdaUpdateWrapper<BsFormulaChildInfo> updateWrapper = new LambdaUpdateWrapper();
+        updateWrapper.set(BsFormulaChildInfo::getCollectData, "");
+        updateWrapper.set(BsFormulaChildInfo::getResults,"");
+        updateWrapper.eq(BsFormulaChildInfo::getProcessesCode, bsFormulaChildInfo.getLocationCode());
+        BsFormulaChildInfo info = new BsFormulaChildInfo();
+        boolean update = this.update(info,updateWrapper);
+        return AjaxResult.success(update);
+    }
+
+    @Override
+    public BsFormulaChildInfo releaseCheck(BsFormulaChildInfo bsFormulaChildInfo) {
+        return bsFormulaChildInfoMapper.releaseCheck(bsFormulaChildInfo);
+    }
+
+    //1-闈炴湰宸ヤ綅鐗╂枡 2-姝e父鎵弿鍙户缁笅娆� 3-鎵弿缁撴潫宸茬粡鏄渶鍚庝竴浣嶅伐姝�
+    @Override
+    public AjaxResult updateResults(BsFormulaChildInfo bsFormulaChildInfo) {
+        String result = "";
+        List<BsFormulaChildInfo> bsFormulaChildInfos = new ArrayList<>();
+        List<BsFormulaChildInfo> infos = bsFormulaChildInfoService.list(new LambdaQueryWrapper<BsFormulaChildInfo>()
+                .eq(BsFormulaChildInfo::getProcessesCode, bsFormulaChildInfo.getLocationCode())
+                .eq(BsFormulaChildInfo::getProductCode, bsFormulaChildInfo.getProductCode())
+                .eq(BsFormulaChildInfo::getOperationType, "2")
+        );
+        for (BsFormulaChildInfo formulaChildInfo : infos) {
+            if(bsFormulaChildInfo.getScanBarcode().contains(formulaChildInfo.getMaterialCode())){
+                if(null != formulaChildInfo.getCollectData()){
+                    if(!formulaChildInfo.getCollectData().equals(bsFormulaChildInfo.getScanBarcode())){
+                        bsFormulaChildInfos.add(formulaChildInfo);
+                    }else{
+                        result = "2";
+                        return AjaxResult.success(result);
+                    }
+                }else{
+                    bsFormulaChildInfos.add(formulaChildInfo);
+                }
+                break;
+            }
+        }
+        if(bsFormulaChildInfos.size()>0){
+            String spareField4 = bsFormulaChildInfos.get(0).getSpareField4();
+            bsFormulaChildInfos.get(0).setCollectData(bsFormulaChildInfo.getScanBarcode());
+            bsFormulaChildInfos.get(0).setResults("OK");
+            bsFormulaChildInfoMapper.updateBsFormulaChildInfo(bsFormulaChildInfos.get(0));
+            bsFormulaChildInfo.setParamValue(bsFormulaChildInfo.getScanBarcode());
+            bsFormulaChildInfo.setParamCode(bsFormulaChildInfos.get(0).getParamCode());
+            bsFormulaChildInfo.setSfcBarcode(bsFormulaChildInfo.getSfcBarcode());
+            addParameterCollection(bsFormulaChildInfo);
+
+//            Integer stepNumber = Integer.valueOf(bsFormulaChildInfos.get(0).getStepSort());
+//            try {
+//                miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+bsFormulaChildInfo.getLocationCode()+".StepNumber").value(stepNumber).build());
+//            } catch (Exception e) {
+//                throw new RuntimeException(e);
+//            }
+
+            if (spareField4 != null && !spareField4.isEmpty()) {
+                // 鎵ц鎿嶄綔
+                if(bsFormulaChildInfos.get(0).getSpareField4().equals("1")){
+                    try {
+                        result = "3";
+//                        miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+bsFormulaChildInfo.getLocationCode()+".RecordDataDone").value(21).build());
+                    } catch (Exception e) {
+                        throw new RuntimeException(e);
+                    }
+                }
+            }
+        }
+        return AjaxResult.success(result);
+    }
+
+    public void addParameterCollection(BsFormulaChildInfo bsFormulaChildInfo){
+        DaParamCollection daParamCollection = new DaParamCollection();
+        daParamCollection.setParamCode(bsFormulaChildInfo.getParamCode());
+        daParamCollection.setWorkOrderNo(bsFormulaChildInfo.getWorkOrderNo());
+        daParamCollection.setLocationCode(bsFormulaChildInfo.getLocationCode());
+        daParamCollection.setParamValue(bsFormulaChildInfo.getParamValue());
+        daParamCollection.setProductCode(bsFormulaChildInfo.getProductCode());
+        daParamCollection.setCollectionTime(new Date());
+        daParamCollection.setSfcCode(bsFormulaChildInfo.getSfcBarcode());
+        daParamCollectionMapper.insertDaParamCollection(daParamCollection);
+
+        DaParamCollectionTemp daParamCollectionTemp = new DaParamCollectionTemp();
+        daParamCollectionTemp.setParamCode(bsFormulaChildInfo.getParamCode());
+        daParamCollectionTemp.setWorkOrderNo(bsFormulaChildInfo.getWorkOrderNo());
+        daParamCollectionTemp.setLocationCode(bsFormulaChildInfo.getLocationCode());
+        daParamCollectionTemp.setParamValue(bsFormulaChildInfo.getParamValue());
+        daParamCollectionTemp.setProductCode(bsFormulaChildInfo.getProductCode());
+        daParamCollectionTemp.setCollectionTime(new Date());
+        daParamCollectionTemp.setSfcCode(bsFormulaChildInfo.getSfcBarcode());
+        daParamCollectionTempService.save(daParamCollectionTemp);
+    }
+
+    public void jrmAddParameterCollection(BsFormulaChildInfo bsFormulaChildInfo){
+        String scanBarCode = bsFormulaChildInfo.getSfcBarcode();
+        String[] modeleSplit = scanBarCode.split(",");
+//        for (String modele : modeleSplit) {
+            DaParamCollection daParamCollection = new DaParamCollection();
+            daParamCollection.setParamCode(bsFormulaChildInfo.getParamCode());
+            daParamCollection.setWorkOrderNo(bsFormulaChildInfo.getWorkOrderNo());
+            daParamCollection.setLocationCode(bsFormulaChildInfo.getLocationCode());
+            daParamCollection.setParamValue(bsFormulaChildInfo.getParamValue());
+            daParamCollection.setProductCode(bsFormulaChildInfo.getProductCode());
+            daParamCollection.setCollectionTime(new Date());
+            if(bsFormulaChildInfo.getParamCode().contains("B")){
+                daParamCollection.setSfcCode(modeleSplit[1]);
+            }else {
+                daParamCollection.setSfcCode(modeleSplit[0]);
+            }
+//            daParamCollection.setSfcCode(modele);
+            daParamCollectionMapper.insertDaParamCollection(daParamCollection);
+//        }
+
+            DaParamCollectionTemp daParamCollectionTemp = new DaParamCollectionTemp();
+            daParamCollectionTemp.setParamCode(bsFormulaChildInfo.getParamCode());
+            daParamCollectionTemp.setWorkOrderNo(bsFormulaChildInfo.getWorkOrderNo());
+            daParamCollectionTemp.setLocationCode(bsFormulaChildInfo.getLocationCode());
+            daParamCollectionTemp.setParamValue(bsFormulaChildInfo.getParamValue());
+            daParamCollectionTemp.setProductCode(bsFormulaChildInfo.getProductCode());
+            daParamCollectionTemp.setCollectionTime(new Date());
+            if(bsFormulaChildInfo.getParamCode().contains("B")){
+                daParamCollectionTemp.setSfcCode(modeleSplit[1]);
+            }else {
+                daParamCollectionTemp.setSfcCode(modeleSplit[0]);
+            }
+            daParamCollectionTempService.save(daParamCollectionTemp);
     }
 
     @Override
     public AjaxResult workpieceRelease(BsFormulaChildInfo bsFormulaChildInfo) {
-        bsFormulaChildInfoMapper.workpieceRelease(bsFormulaChildInfo);
+        this.clearCollectDataAndResultsByProcessesCode(bsFormulaChildInfo);
+//        List<BsFormulaChildInfo> list = bsFormulaChildInfoService.list(new LambdaQueryWrapper<BsFormulaChildInfo>()
+//                .eq(BsFormulaChildInfo::getProcessesCode, bsFormulaChildInfo.getLocationCode())
+//                .eq(BsFormulaChildInfo::getProductCode, bsFormulaChildInfo.getProductCode()));
+//        for (BsFormulaChildInfo info : list) {
+//            info.setCollectData("");
+//            info.setResults("");
+//            bsFormulaChildInfoService.saveOrUpdate(info);
+//        }
+        try {
+            daParamCollectionService.pushGeelycvMesFeedback(bsFormulaChildInfo.getProductBarcode(), bsFormulaChildInfo.getLocationCode());
+//            String barCode = bsFormulaChildInfo.getProductBarcode();
+//            String locationCode = bsFormulaChildInfo.getLocationCode();
+//
+//            if(StringUtils.isNotBlank(locationCode)&&StringUtils.isNotBlank(barCode)){
+//                DaPassingStationCollection daPassingStationCollection = new DaPassingStationCollection();
+//                daPassingStationCollection.setOutRsSign("1");
+//                daPassingStationCollection.setOutboundTime(new Date());
+//                daPassingStationCollection.setSfcCode(barCode);
+//                daPassingStationCollection.setLocationCode(locationCode);
+//                int updateDaPassingStation = daPassingStationCollectionService.updateDaPassingStationCollectionBySfcCodeAndLocationCode(daPassingStationCollection);
+//                logger.info("鏅�氫汉宸ュ伐浣嶆洿鏂拌繃绔欒褰晆pdateDaPassingStationCollectionBySfcCodeAndLocationCode:鏇存柊浜唟}鏉℃暟鎹�-鏇存柊鏉′欢pack鐮亄}-宸ヤ綅{}",updateDaPassingStation,barCode,locationCode);
+//            }
+
+//            DaPassingStationCollection passingStationCollectionOne = daPassingStationCollectionService.getOne(new LambdaQueryWrapper<DaPassingStationCollection>().eq(DaPassingStationCollection::getSfcCode, barCode).eq(DaPassingStationCollection::getLocationCode, locationCode));
+//            if (passingStationCollectionOne != null) {
+//                passingStationCollectionOne.setOutRsSign("1");
+//                passingStationCollectionOne.setOutboundTime(new Date());
+//                daPassingStationCollectionService.saveOrUpdate(passingStationCollectionOne);
+//            }
+        }catch (Exception e){
+        }
         return AjaxResult.success();
     }
+
+    @Override
+    public AjaxResult updateTighteningFormula(BsFormulaChildInfo bsFormulaChildInfo) {
+        Boolean b = true;
+        BsFormulaChildInfo getMaterTwo = new BsFormulaChildInfo();
+        getMaterTwo.setProcessesCode(bsFormulaChildInfo.getLocationCode());
+        getMaterTwo.setOperationType("2");
+        List<BsFormulaChildInfo> operationType = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(getMaterTwo);
+        List<String> collect = operationType.stream().map(BsFormulaChildInfo::getResults).collect(Collectors.toList());
+        for (String s : collect) {
+            if(s.equals("")){
+                return AjaxResult.error("鎵爜鏈畬鎴愶紝绂佹鎷х揣鎿嶄綔锛�");
+            }
+        }
+
+        //娣诲姞鎷х揣鍙傛暟-鍙傛暟閲囬泦琛�
+        DaParamCollection daParamCollection = new DaParamCollection();
+        daParamCollection.setParamCode(bsFormulaChildInfo.getParamCode());
+        daParamCollection.setTightenTheArray(bsFormulaChildInfo.getTightenTheArray());
+        daParamCollection.setProductBarcode(bsFormulaChildInfo.getProductBarcode());
+        daParamCollection.setWorkOrderNo(bsFormulaChildInfo.getWorkOrderNo());
+        daParamCollection.setLocationCode(bsFormulaChildInfo.getLocationCode());
+        daParamCollection.setProductCode(bsFormulaChildInfo.getProductCode());
+        daParamCollectionService.addTighteningParameters(daParamCollection);
+
+        String paramCode = bsFormulaChildInfo.getTightenTheArray();
+        if(paramCode.contains("NG")){
+       /*     List<BsFormulaChildInfo> bsFormulaChildInfos = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(listQuery);
+            bsFormulaChildInfos.get(0).setResults("NG");
+            bsFormulaChildInfos.get(0).setCollectData(bsFormulaChildInfo.getTightenTheArray());
+*/
+            bsFormulaChildInfo.setResults("NG");
+            bsFormulaChildInfo.setCollectData(bsFormulaChildInfo.getTightenTheArray());
+            bsFormulaChildInfoMapper.updateBsFormulaChildInfo(bsFormulaChildInfo);
+            return AjaxResult.error("鎷х揣缁撴灉NG,璇烽噸鏂版嫥绱э紒");
+        }else {
+            //List<BsFormulaChildInfo> bsFormulaChildInfos = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(listQuery);
+            if(bsFormulaChildInfo.getSpareField2()!=null&&bsFormulaChildInfo.getSpareField3()!=null){
+                String tightenArray = bsFormulaChildInfo.getTightenTheArray().replace("[", "").replace("]", "").replace(" ", "");
+                String[] tightenDataParts = tightenArray.split(",");
+                b = TimeUtil.isNumberInRange(Double.parseDouble(tightenDataParts[0]),Double.parseDouble(bsFormulaChildInfo.getSpareField2()),Double.parseDouble(bsFormulaChildInfo.getSpareField3()));
+            }
+            if(b){
+                bsFormulaChildInfo.setResults("OK");
+                bsFormulaChildInfo.setCollectData(bsFormulaChildInfo.getTightenTheArray());
+                bsFormulaChildInfoMapper.updateBsFormulaChildInfo(bsFormulaChildInfo);
+
+                Integer stepNumber = Integer.valueOf(bsFormulaChildInfo.getStepSort());
+                try {
+                    miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+bsFormulaChildInfo.getLocationCode()+".MStepNumber").value(stepNumber+1).build());
+                } catch (Exception e) {
+                    throw new RuntimeException(e);
+                }
+
+                String spareField4 = bsFormulaChildInfo.getSpareField4();
+                if (spareField4 != null && !spareField4.isEmpty()) {
+                    // 鎵ц鎿嶄綔
+                    if(spareField4.equals("1")){
+                        try {
+    //                        //鏇存柊杩囩珯璁板綍琛ㄥ嚭绔欐椂闂�
+    //                        DaPassingStationCollection daPassingStationCollection = new DaPassingStationCollection();
+    //                        daPassingStationCollection.setWorkOrderNo(bsFormulaChildInfo.getWorkOrderNo());
+    //                        List<DaPassingStationCollection> daPassingStationCollections = daPassingStationCollectionMapper.selectDaPassingStationCollectionList(daPassingStationCollection);
+    //                        daPassingStationCollections.get(0).setOutboundTime(new Date());
+    //                        daPassingStationCollectionMapper.updateDaPassingStationCollection(daPassingStationCollections.get(0));
+//                            miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+bsFormulaChildInfo.getLocationCode()+".RecordDataDone").value(21).build());
+                            WebSocketUsers.sendMessageToUserByText(map.get(bsFormulaChildInfo.getLocationCode()), "OUT");
+                        } catch (Exception e) {
+                            throw new RuntimeException(e);
+                        }
+                    }
+                }
+            }else {
+                //List<BsFormulaChildInfo> bsFormulaChildInfos1 = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(listQuery);
+                bsFormulaChildInfo.setResults("NG");
+                String originalString = bsFormulaChildInfo.getTightenTheArray();
+                String modifiedString = originalString.replaceFirst("OK", "NG");
+                bsFormulaChildInfo.setCollectData(modifiedString);
+                bsFormulaChildInfoMapper.updateBsFormulaChildInfo(bsFormulaChildInfo);
+                return AjaxResult.error("鎷х揣缁撴灉NG,璇烽噸鏂版嫥绱э紒");
+            }
+
+        }
+
+
+        return AjaxResult.success("鎷х揣鎴愬姛锛�");
+    }
+
+
+
+
 }

--
Gitblit v1.9.3