From aa0211e80f03b180aadabeea9d203370d6df99f6 Mon Sep 17 00:00:00 2001 From: admin <15939171744@163.com> Date: 星期二, 23 七月 2024 13:47:24 +0800 Subject: [PATCH] -切换大模组代码更改 --- jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/service/impl/BsFormulaChildInfoServiceImpl.java | 483 ++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 433 insertions(+), 50 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 60b8193..b74e37d 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,23 +1,41 @@ 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.ObjectUtil; +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.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; +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; @@ -33,8 +51,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; @@ -50,7 +70,22 @@ @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(); + + @Autowired + private IBsFormulaChildInfoTempService bsFormulaChildInfoTempService; /** * 鏌ヨ閰嶆柟閰嶇疆瀛愪俊鎭� @@ -144,20 +179,29 @@ } @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 = 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; + } + } + } +// 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,7 +216,6 @@ 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); } @@ -180,6 +223,247 @@ } }else { result = "1"; + } + 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(); + WebSocketUsers.sendMessageToUserByText(map.get(locationCode), "OUT"); + +// 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); + daParamCollectionService.pushGeelycvMesFeedback(bsFormulaChildInfo.getProductBarcode(), bsFormulaChildInfo.getLocationCode()); + return AjaxResult.success(); + } + + @Override + public AjaxResult clearWorkpieceRelease(BsFormulaChildInfo bsFormulaChildInfo) { + 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.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); + } + + @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); } @@ -194,23 +478,56 @@ 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(); + 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()); + daParamCollectionTemp.setSfcCode(scanBarCode); + + boolean save = daParamCollectionTempService.save(daParamCollectionTemp); + System.out.println(save); } @Override public AjaxResult workpieceRelease(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.setSpareField4(""); - info.setResults(""); - bsFormulaChildInfoService.saveOrUpdate(info); + this.clearCollectDataAndResultsByProcessesCode(bsFormulaChildInfo); + try { + daParamCollectionService.pushGeelycvMesFeedback(bsFormulaChildInfo.getProductBarcode(), bsFormulaChildInfo.getLocationCode()); + }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"); @@ -218,44 +535,110 @@ 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); - bsFormulaChildInfos.get(0).setResults("NG"); - bsFormulaChildInfos.get(0).setCollectData(bsFormulaChildInfo.getTightenTheArray()); - bsFormulaChildInfoMapper.updateBsFormulaChildInfo(bsFormulaChildInfos.get(0)); - return AjaxResult.error("鎵弿缁撴灉NG,璇烽噸鏂版壂鎻忥紒"); + if(paramCode.contains("NG")){ + 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); - bsFormulaChildInfos.get(0).setResults("OK"); - bsFormulaChildInfos.get(0).setCollectData(bsFormulaChildInfo.getTightenTheArray()); - bsFormulaChildInfoMapper.updateBsFormulaChildInfo(bsFormulaChildInfos.get(0)); - 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); + //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 { + 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); + + 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,璇烽噸鏂版嫥绱э紒"); } } - return AjaxResult.success("鎵弿鎴愬姛锛�"); + + + 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); + } } -- Gitblit v1.9.3