admin
2024-10-15 6d313a4a6f9f9d7ea65ec50ab0d4491e595edb97
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());
@@ -386,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);
@@ -495,9 +509,10 @@
        daParamCollectionTemp.setParamValue(bsFormulaChildInfo.getParamValue());
        daParamCollectionTemp.setProductCode(bsFormulaChildInfo.getProductCode());
        daParamCollectionTemp.setCollectionTime(new Date());
        daParamCollection.setSfcCode(scanBarCode);
        daParamCollectionTemp.setSfcCode(scanBarCode);
        daParamCollectionTempService.save(daParamCollectionTemp);
        boolean save = daParamCollectionTempService.save(daParamCollectionTemp);
        System.out.println(save);
    }
    @Override
@@ -536,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());
            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);
@@ -568,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);
@@ -587,7 +600,17 @@
                String originalString = bsFormulaChildInfo.getTightenTheArray();
                String modifiedString = originalString.replaceFirst("OK", "NG");
                bsFormulaChildInfo.setCollectData(modifiedString);
//                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,请重新拧紧!");
            }
@@ -597,6 +620,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.setChildId(childInfo.getId());
            bsFormulaChildInfoTempService.save(childInfoTemp);
        }
    }