admin
2024-07-18 0aaabac24ac4ebc2fe3e54c56e95f250ea238d5b
jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/service/impl/BsFormulaChildInfoServiceImpl.java
@@ -8,6 +8,7 @@
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -17,6 +18,8 @@
import com.jcdm.common.utils.DateUtils;
import com.jcdm.common.utils.StringUtils;
import com.jcdm.framework.websocket.WebSocketUsers;
import com.jcdm.main.bs.formulaChildInfoTemp.domain.BsFormulaChildInfoTemp;
import com.jcdm.main.bs.formulaChildInfoTemp.service.IBsFormulaChildInfoTempService;
import com.jcdm.main.da.paramCollection.domain.DaParamCollection;
import com.jcdm.main.da.paramCollection.mapper.DaParamCollectionMapper;
import com.jcdm.main.da.paramCollection.service.IDaParamCollectionService;
@@ -80,6 +83,9 @@
    private IDaParamCollectionTempService daParamCollectionTempService;
    Map<String, Session> map = WebSocketUsers.getUsers();
    @Autowired
    private IBsFormulaChildInfoTempService bsFormulaChildInfoTempService;
    /**
     * 查询配方配置子信息
@@ -190,6 +196,12 @@
                }
            }
        }
//        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());
@@ -338,6 +350,8 @@
//                        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();
                        WebSocketUsers.sendMessageToUserByText(map.get(locationCode), "OUT");
//                        miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+locationCode+".RecordDataDone").value(21).build());
                    } catch (Exception e) {
                        throw new RuntimeException(e);
@@ -353,54 +367,12 @@
    @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){
        }
        daParamCollectionService.pushGeelycvMesFeedback(bsFormulaChildInfo.getProductBarcode(), bsFormulaChildInfo.getLocationCode());
        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();
    }
@@ -426,7 +398,9 @@
        LambdaUpdateWrapper<BsFormulaChildInfo> updateWrapper = new LambdaUpdateWrapper();
        updateWrapper.set(BsFormulaChildInfo::getCollectData, "");
        updateWrapper.set(BsFormulaChildInfo::getResults,"");
        updateWrapper.set(BsFormulaChildInfo::getNgTimes,0);
        updateWrapper.eq(BsFormulaChildInfo::getProcessesCode, bsFormulaChildInfo.getLocationCode());
        updateWrapper.eq(BsFormulaChildInfo::getProductCode, bsFormulaChildInfo.getProductCode());
        BsFormulaChildInfo info = new BsFormulaChildInfo();
        boolean update = this.update(info,updateWrapper);
        return AjaxResult.success(update);
@@ -518,71 +492,34 @@
    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);
//        }
        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(scanBarCode);
        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);
        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(scanBarCode);
        boolean save = daParamCollectionTempService.save(daParamCollectionTemp);
        System.out.println(save);
    }
    @Override
    public AjaxResult workpieceRelease(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);
//        }
        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();
@@ -614,13 +551,18 @@
        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);
//            Integer ngTimes = bsFormulaChildInfo.getNgTimes();
//            bsFormulaChildInfo.setNgTimes(ngTimes+1);
//            bsFormulaChildInfoMapper.updateBsFormulaChildInfo(bsFormulaChildInfo);
//
//            if(bsFormulaChildInfo.getNgTimes() > 3){
//                this.recordNgTighteningData(bsFormulaChildInfo.getLocationCode(), bsFormulaChildInfo.getProductCode(), bsFormulaChildInfo.getProductBarcode());
//                WebSocketUsers.sendMessageToUserByText(map.get(bsFormulaChildInfo.getLocationCode()), "NG");
//                return AjaxResult.error("超过三次拧紧 pack NG下线!");
//            }
            return AjaxResult.error("拧紧结果NG,请重新拧紧!");
        }else {
            //List<BsFormulaChildInfo> bsFormulaChildInfos = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(listQuery);
@@ -646,13 +588,6 @@
                    // 执行操作
                    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);
@@ -675,6 +610,27 @@
        return AjaxResult.success("拧紧成功!");
    }
    public void recordNgTighteningData(String locationCode,String productCode,String packId){
        List<BsFormulaChildInfo> ngFormulaList = bsFormulaChildInfoService.list(new LambdaQueryWrapper<BsFormulaChildInfo>()
                .eq(BsFormulaChildInfo::getProcessesCode, locationCode)
                .eq(BsFormulaChildInfo::getProductCode, productCode)
        );
        List<BsFormulaChildInfo> filteredList = ngFormulaList.stream()
                .filter(formula -> formula.getResults() != null && !formula.getResults().isEmpty())
                .collect(Collectors.toList());
        for (BsFormulaChildInfo childInfo : filteredList) {
            BsFormulaChildInfoTemp childInfoTemp = new BsFormulaChildInfoTemp();
            childInfoTemp.setCollectData(childInfo.getCollectData());
            childInfoTemp.setResults(childInfo.getResults());
            childInfoTemp.setSfcCode(packId);
            childInfoTemp.setProcessesCode(childInfo.getProcessesCode());
            childInfoTemp.setProductCode(childInfo.getProductCode());
            childInfoTemp.setStepSort(childInfo.getStepSort());
//            childInfoTemp.setLineCode(childInfo.getId());
            bsFormulaChildInfoTempService.save(childInfoTemp);
        }
    }