From 5eda9ebc27193dfdbe5941499bf213815d1e98f6 Mon Sep 17 00:00:00 2001 From: hdy <1105738590@qq.com> Date: 星期日, 12 五月 2024 17:00:26 +0800 Subject: [PATCH] 点位订阅 --- jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/service/impl/BsFormulaChildInfoServiceImpl.java | 210 ++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 195 insertions(+), 15 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 91899ee..a555451 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,10 +1,12 @@ 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.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.extension.service.impl.ServiceImpl; @@ -144,25 +146,20 @@ } @Override - public BsFormulaChildInfo releaseCheck(BsFormulaChildInfo bsFormulaChildInfo) { - return bsFormulaChildInfoMapper.releaseCheck(bsFormulaChildInfo); - } - - //1-闈炴湰宸ヤ綅鐗╂枡 2-姝e父鎵弿鍙户缁笅娆� 3-鎵弿缁撴潫宸茬粡鏄渶鍚庝竴浣嶅伐姝� - @Override - public AjaxResult updateResults(BsFormulaChildInfo bsFormulaChildInfo) { + public AjaxResult yzUpdateResults(BsFormulaChildInfo bsFormulaChildInfo) { String result = ""; -// BsFormulaChildInfo checkInfo = new BsFormulaChildInfo(); -// checkInfo.setProcessesCode(bsFormulaChildInfo.getLocationCode()); -// checkInfo.setProductCode(bsFormulaChildInfo.getProductCode()); -//// checkInfo.setMaterialCode(bsFormulaChildInfo.getScanBarcode()); -// bsFormulaChildInfo.setMaterialCode(bsFormulaChildInfo.getScanBarcode().substring(1,2)); -// List<BsFormulaChildInfo> bsFormulaChildInfos = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(checkInfo); - List<BsFormulaChildInfo> bsFormulaChildInfos = bsFormulaChildInfoService.list(new LambdaQueryWrapper<BsFormulaChildInfo>() + 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::getMaterialCode, bsFormulaChildInfo.getScanBarcode().substring(1, 2)) + .eq(BsFormulaChildInfo::getOperationType, "2") ); + 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()); @@ -172,6 +169,159 @@ 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 { + result = "1"; + } + return AjaxResult.success(result); + } + + @Override + public AjaxResult yzUpdateTighteningFormula(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("")){ + 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,璇烽噸鏂版壂鎻忥紒"); + }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).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 { +// WebSocketUsers.sendMessageToUserByText(map.get(bsFormulaChildInfo.getLocationCode()), "OUT"); + result = "2"; + } catch (Exception e) { + throw new RuntimeException(e); + } + } + } + + } + return AjaxResult.success(result); + } + + @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()); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + } + }else { + result = "1"; + } + return AjaxResult.success(result); + } + + @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())){ + 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")){ @@ -199,6 +349,28 @@ daParamCollection.setCollectionTime(new Date()); daParamCollection.setSfcCode(bsFormulaChildInfo.getSfcBarcode()); daParamCollectionMapper.insertDaParamCollection(daParamCollection); + } + + 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); +// } + } @Override @@ -240,6 +412,14 @@ 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).build()); + } catch (Exception e) { + throw new RuntimeException(e); + } + String spareField4 = bsFormulaChildInfos.get(0).getSpareField4(); if (spareField4 != null && !spareField4.isEmpty()) { // 鎵ц鎿嶄綔 -- Gitblit v1.9.3