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.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.constant.Constants; 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; import com.jcdm.main.bs.formulaChild.domain.BsFormulaChildInfo; import com.jcdm.main.bs.formulaChild.service.IBsFormulaChildInfoService; import javax.websocket.Session; /** * 配方配置子信息Service业务层处理 * * @author ruimin * @date 2023-12-26 */ @Service @Slf4j public class BsFormulaChildInfoServiceImpl extends ServiceImpl implements IBsFormulaChildInfoService { private static final Logger logger = LoggerFactory.getLogger("sys-user"); @Autowired private BsFormulaChildInfoMapper bsFormulaChildInfoMapper; @Autowired private IBsFormulaChildInfoService bsFormulaChildInfoService; @Autowired private DaParamCollectionMapper daParamCollectionMapper; @Autowired private MiloService miloService; @Autowired private DaPassingStationCollectionMapper daPassingStationCollectionMapper; @Autowired private IDaTestDeviceInterfaceService daTestDeviceInterfaceService; @Autowired private IDaParamCollectionService daParamCollectionService; @Autowired private IDaPassingStationCollectionService daPassingStationCollectionService; @Autowired private IDaParamCollectionTempService daParamCollectionTempService; Map map = WebSocketUsers.getUsers(); /** * 查询配方配置子信息 * * @param id 配方配置子信息主键 * @return 配方配置子信息 */ @Override public BsFormulaChildInfo selectBsFormulaChildInfoById(Long id) { return bsFormulaChildInfoMapper.selectBsFormulaChildInfoById(id); } /** * 查询配方配置子信息列表 * * @param bsFormulaChildInfo 配方配置子信息 * @return 配方配置子信息 */ @Override public List selectBsFormulaChildInfoList(BsFormulaChildInfo bsFormulaChildInfo) { return bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(bsFormulaChildInfo); } /** * 新增配方配置子信息 * * @param bsFormulaChildInfo 配方配置子信息 * @return 结果 */ @Override public int insertBsFormulaChildInfo(BsFormulaChildInfo bsFormulaChildInfo) { bsFormulaChildInfo.setCreateTime(DateUtils.getNowDate()); return bsFormulaChildInfoMapper.insertBsFormulaChildInfo(bsFormulaChildInfo); } /** * 修改配方配置子信息 * * @param bsFormulaChildInfo 配方配置子信息 * @return 结果 */ @Override public int updateBsFormulaChildInfo(BsFormulaChildInfo bsFormulaChildInfo) { bsFormulaChildInfo.setUpdateTime(DateUtils.getNowDate()); return bsFormulaChildInfoMapper.updateBsFormulaChildInfo(bsFormulaChildInfo); } /** * 批量删除配方配置子信息 * * @param ids 需要删除的配方配置子信息主键 * @return 结果 */ @Override public int deleteBsFormulaChildInfoByIds(Long[] ids) { return bsFormulaChildInfoMapper.deleteBsFormulaChildInfoByIds(ids); } /** * 删除配方配置子信息信息 * * @param id 配方配置子信息主键 * @return 结果 */ @Override public int deleteBsFormulaChildInfoById(Long id) { return bsFormulaChildInfoMapper.deleteBsFormulaChildInfoById(id); } @Override public BsFormulaChildInfo selectBsFormulaChildInfoByTypeTopOne(String type,String productCode,String processesCode) { BsFormulaChildInfo info = new BsFormulaChildInfo(); info.setOperationType(type); info.setProcessesCode(processesCode); info.setProductCode(productCode); return bsFormulaChildInfoMapper.selectBsFormulaChildInfoByTypeTopOne(info); } @Override public BsFormulaChildInfo getCount(String productCode, String processesCode) { BsFormulaChildInfo info = new BsFormulaChildInfo(); info.setProcessesCode(processesCode); info.setProductCode(productCode); return bsFormulaChildInfoMapper.getCount(info); } @Override public AjaxResult yzUpdateResults(BsFormulaChildInfo bsFormulaChildInfo) { String result = ""; List bsFormulaChildInfos = new ArrayList<>(); List infos = bsFormulaChildInfoService.list(new LambdaQueryWrapper() .eq(BsFormulaChildInfo::getProcessesCode, bsFormulaChildInfo.getLocationCode()) .eq(BsFormulaChildInfo::getProductCode, bsFormulaChildInfo.getProductCode()) .eq(BsFormulaChildInfo::getOperationType, "2") ); List 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){ 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); 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) { Boolean b = true; String result = "1"; // BsFormulaChildInfo getMaterTwo = new BsFormulaChildInfo(); // getMaterTwo.setProcessesCode(bsFormulaChildInfo.getLocationCode()); // getMaterTwo.setOperationType("2"); // List operationType = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(getMaterTwo); // List 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 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 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 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 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 bsFormulaChildInfos = new ArrayList<>(); List infos = bsFormulaChildInfoService.list(new LambdaQueryWrapper() .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(); // 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); // List list = bsFormulaChildInfoService.list(new LambdaQueryWrapper() // .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().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 list = bsFormulaChildInfoService.list(new LambdaQueryWrapper() // .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 operationType = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(getMaterTwo); List 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 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 public BsFormulaChildInfo releaseCheck(BsFormulaChildInfo bsFormulaChildInfo) { return bsFormulaChildInfoMapper.releaseCheck(bsFormulaChildInfo); } //1-非本工位物料 2-正常扫描可继续下次 3-扫描结束已经是最后一位工步 @Override public AjaxResult updateResults(BsFormulaChildInfo bsFormulaChildInfo) { String result = ""; List bsFormulaChildInfos = new ArrayList<>(); List infos = bsFormulaChildInfoService.list(new LambdaQueryWrapper() .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); } public void addParameterCollection(BsFormulaChildInfo bsFormulaChildInfo){ 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(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(); 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); // } 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) { this.clearCollectDataAndResultsByProcessesCode(bsFormulaChildInfo); // List list = bsFormulaChildInfoService.list(new LambdaQueryWrapper() // .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().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"); List operationType = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(getMaterTwo); List collect = operationType.stream().map(BsFormulaChildInfo::getResults).collect(Collectors.toList()); for (String s : collect) { if(s.equals("")){ return AjaxResult.error("扫码未完成,禁止拧紧操作!"); } } //添加拧紧参数-参数采集表 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("NG")){ /* List 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); return AjaxResult.error("拧紧结果NG,请重新拧紧!"); }else { //List 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 { String thoroughfare = Constants.thoroughfareMap.get(bsFormulaChildInfo.getLocationCode());//获取通道 miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare+"."+bsFormulaChildInfo.getLocationCode()+".MESScrew").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 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 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("拧紧成功!"); } }