admin
2024-07-01 768498719683f85e5ed19c73eb3d14cdbf420df4
jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/service/impl/BsFormulaChildInfoServiceImpl.java
@@ -4,24 +4,35 @@
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;
@@ -37,8 +48,10 @@
 * @date 2023-12-26
 */
@Service
@Slf4j
public class BsFormulaChildInfoServiceImpl extends ServiceImpl<BsFormulaChildInfoMapper,BsFormulaChildInfo> implements IBsFormulaChildInfoService
{
    private static final Logger logger = LoggerFactory.getLogger("sys-user");
    @Autowired
    private BsFormulaChildInfoMapper bsFormulaChildInfoMapper;
@@ -59,6 +72,12 @@
    @Autowired
    private IDaParamCollectionService daParamCollectionService;
    @Autowired
    private IDaPassingStationCollectionService daPassingStationCollectionService;
    @Autowired
    private IDaParamCollectionTempService daParamCollectionTempService;
    Map<String, Session> map = WebSocketUsers.getUsers();
@@ -162,10 +181,13 @@
                .eq(BsFormulaChildInfo::getProductCode, bsFormulaChildInfo.getProductCode())
                .eq(BsFormulaChildInfo::getOperationType, "2")
        );
        for (BsFormulaChildInfo formulaChildInfo : infos) {
            if(bsFormulaChildInfo.getScanBarcode().contains(formulaChildInfo.getMaterialCode())){
                bsFormulaChildInfos.add(formulaChildInfo);
                break;
        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){
@@ -195,54 +217,88 @@
    @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.error("扫描未完成,禁止拧紧操作!");
            }
        }
        BsFormulaChildInfo listQuery = new BsFormulaChildInfo();
        listQuery.setParamCode(bsFormulaChildInfo.getParamCode());
        String paramCode = bsFormulaChildInfo.getTightenTheArray();
        if(paramCode.contains("N")){
            List<BsFormulaChildInfo> bsFormulaChildInfos = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(listQuery);
            bsFormulaChildInfos.get(0).setResults("NG");
            bsFormulaChildInfos.get(0).setCollectData(bsFormulaChildInfo.getTightenTheArray());
            bsFormulaChildInfoMapper.updateBsFormulaChildInfo(bsFormulaChildInfos.get(0));
            return AjaxResult.error("扫描结果NG,请重新扫描!");
//        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);
            bsFormulaChildInfos.get(0).setResults("OK");
            bsFormulaChildInfos.get(0).setCollectData(bsFormulaChildInfo.getTightenTheArray());
            bsFormulaChildInfoMapper.updateBsFormulaChildInfo(bsFormulaChildInfos.get(0));
            Integer stepNumber = Integer.valueOf(bsFormulaChildInfos.get(0).getStepSort());
            try {
                miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+bsFormulaChildInfo.getLocationCode()+".MStepNumber").value(stepNumber+1).build());
            } catch (Exception e) {
                throw new RuntimeException(e);
//            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 = bsFormulaChildInfos.get(0).getSpareField4();
            if (spareField4 != null && !spareField4.isEmpty()) {
                // 执行操作
                if(bsFormulaChildInfos.get(0).getSpareField4().equals("1")){
                    try {
                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);
                            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
@@ -282,7 +338,7 @@
//                        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());
//                        miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+locationCode+".RecordDataDone").value(21).build());
                    } catch (Exception e) {
                        throw new RuntimeException(e);
                    }
@@ -292,6 +348,88 @@
            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("加热膜人工工位更新过站记录updateDaPassingStationCollectionBySfcCodeAndLocationCode:更新了{}条数据-更新条件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
@@ -311,7 +449,16 @@
        );
        for (BsFormulaChildInfo formulaChildInfo : infos) {
            if(bsFormulaChildInfo.getScanBarcode().contains(formulaChildInfo.getMaterialCode())){
                bsFormulaChildInfos.add(formulaChildInfo);
                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;
            }
        }
@@ -337,14 +484,12 @@
                if(bsFormulaChildInfos.get(0).getSpareField4().equals("1")){
                    try {
                        result = "3";
                        miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+bsFormulaChildInfo.getLocationCode()+".RecordDataDone").value(21).build());
//                        miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+bsFormulaChildInfo.getLocationCode()+".RecordDataDone").value(21).build());
                    } catch (Exception e) {
                        throw new RuntimeException(e);
                    }
                }
            }
        }else {
            result = "1";
        }
        return AjaxResult.success(result);
    }
@@ -359,6 +504,16 @@
        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){
@@ -381,24 +536,61 @@
            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) {
        daParamCollectionService.pushGeelycvMesFeedback(bsFormulaChildInfo.getProductBarcode(), bsFormulaChildInfo.getLocationCode());
        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);
//        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("普通人工工位更新过站记录updateDaPassingStationCollectionBySfcCodeAndLocationCode:更新了{}条数据-更新条件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");
@@ -406,52 +598,81 @@
        List<String> collect = operationType.stream().map(BsFormulaChildInfo::getResults).collect(Collectors.toList());
        for (String s : collect) {
            if(s.equals("")){
                return AjaxResult.error("扫描未完成,禁止拧紧操作!");
                return AjaxResult.error("扫码未完成,禁止拧紧操作!");
            }
        }
        BsFormulaChildInfo listQuery = new BsFormulaChildInfo();
        listQuery.setParamCode(bsFormulaChildInfo.getParamCode());
        //添加拧紧参数-参数采集表
        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("N")){
            List<BsFormulaChildInfo> bsFormulaChildInfos = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(listQuery);
        if(paramCode.contains("NG")){
       /*     List<BsFormulaChildInfo> bsFormulaChildInfos = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(listQuery);
            bsFormulaChildInfos.get(0).setResults("NG");
            bsFormulaChildInfos.get(0).setCollectData(bsFormulaChildInfo.getTightenTheArray());
            bsFormulaChildInfoMapper.updateBsFormulaChildInfo(bsFormulaChildInfos.get(0));
            return AjaxResult.error("扫描结果NG,请重新扫描!");
*/
            bsFormulaChildInfo.setResults("NG");
            bsFormulaChildInfo.setCollectData(bsFormulaChildInfo.getTightenTheArray());
            bsFormulaChildInfoMapper.updateBsFormulaChildInfo(bsFormulaChildInfo);
            return AjaxResult.error("拧紧结果NG,请重新拧紧!");
        }else {
            List<BsFormulaChildInfo> bsFormulaChildInfos = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(listQuery);
            bsFormulaChildInfos.get(0).setResults("OK");
            bsFormulaChildInfos.get(0).setCollectData(bsFormulaChildInfo.getTightenTheArray());
            bsFormulaChildInfoMapper.updateBsFormulaChildInfo(bsFormulaChildInfos.get(0));
            Integer stepNumber = Integer.valueOf(bsFormulaChildInfos.get(0).getStepSort());
            try {
                miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+bsFormulaChildInfo.getLocationCode()+".MStepNumber").value(stepNumber+1).build());
            } catch (Exception e) {
                throw new RuntimeException(e);
            //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);
            String spareField4 = bsFormulaChildInfos.get(0).getSpareField4();
            if (spareField4 != null && !spareField4.isEmpty()) {
                // 执行操作
                if(bsFormulaChildInfos.get(0).getSpareField4().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);
                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("扫描成功!");
        return AjaxResult.success("拧紧成功!");
    }