From 3345225e1a1c5c9665a948ae612a677ae284431b Mon Sep 17 00:00:00 2001 From: zhoushihao <zsh19950802@163.com> Date: 星期一, 02 十二月 2024 09:27:39 +0800 Subject: [PATCH] 1、提交中控模块 2、修改大理片笼进出片交互bug --- hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageGlassInfoServiceImpl.java | 74 +++++++++++++++---------------------- 1 files changed, 30 insertions(+), 44 deletions(-) diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageGlassInfoServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageGlassInfoServiceImpl.java index 5b683fa..9586097 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageGlassInfoServiceImpl.java +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageGlassInfoServiceImpl.java @@ -9,8 +9,6 @@ import com.mes.bigstorage.entity.BigStorageGlassInfo; import com.mes.bigstorage.entity.BigStorageGlassRelationInfo; import com.mes.bigstorage.entity.dto.BigStorageDTO; -import com.mes.bigstorage.entity.dto.BigStorageRelationDTO; -import com.mes.bigstorage.entity.dto.BigStorageSequenceDTO; import com.mes.bigstorage.mapper.BigStorageGlassInfoMapper; import com.mes.bigstorage.service.BigStorageCageDetailsService; import com.mes.bigstorage.service.BigStorageCageService; @@ -51,25 +49,38 @@ private Integer slotWidth; @Value("${mes.glassGap}") private Integer glassGap; + @Value("${mes.outCarMaxSize}") + private Integer outCarMaxSize; @Override - public BigStorageDTO queryBigStorageTargetSlot(String glassId) { + public BigStorageDTO queryBigStorageTargetSlot(String engineerId, Integer temperingLayoutId, Integer temperingFeedSequence) { //鎸夌収鐜荤拑淇℃伅鑾峰彇鍏崇郴琛ㄦ槸鍚︽湁瀵瑰簲鐨勫叧绯� BigStorageGlassRelationInfo relationInfoOne = bigStorageGlassRelationInfoService.getOne(new LambdaQueryWrapper<BigStorageGlassRelationInfo>() - .eq(BigStorageGlassRelationInfo::getGlassId, glassId)); + .eq(BigStorageGlassRelationInfo::getEngineerId, engineerId) + .eq(BigStorageGlassRelationInfo::getTemperingLayoutId, temperingLayoutId) + .eq(BigStorageGlassRelationInfo::getTemperingFeedSequence, temperingFeedSequence) + ); if (relationInfoOne == null) { //鐞嗙墖绗煎叧绯昏〃涓病鏈夊搴旂殑鏁版嵁锛屾煡鐪嬬悊鐗囩铏氭嫙浣嶇疆琛ㄦ槸鍚︽湁鏈伐绋嬩笅鐨勬墍鏈夌幓鐠冭櫄鎷熶俊鎭� - BigStorageGlassInfo bigStorageGlassInfo = this.getOne(new LambdaQueryWrapper<BigStorageGlassInfo>().eq(BigStorageGlassInfo::getGlassId, glassId)); + BigStorageGlassInfo bigStorageGlassInfo = this.getOne(new LambdaQueryWrapper<BigStorageGlassInfo>() + .eq(BigStorageGlassInfo::getEngineerId, engineerId) + .eq(BigStorageGlassInfo::getTemperingLayoutId, temperingLayoutId) + .eq(BigStorageGlassInfo::getTemperingFeedSequence, temperingFeedSequence)); if (null == bigStorageGlassInfo) { //铏氭嫙浣嶇疆琛ㄦ病鏈夋湰宸ョ▼涓嬬殑鎵�鏈夌幓鐠冭櫄鎷熶俊鎭紝鎸夌収鐜荤拑id鐢熸垚鏈伐绋嬩笅鎵�鏈夌幓鐠冪殑铏氭嫙淇℃伅 - generateBigStorageGlassInfo(glassId); - bigStorageGlassInfo = this.getOne(new LambdaQueryWrapper<BigStorageGlassInfo>().eq(BigStorageGlassInfo::getGlassId, glassId)); + generateBigStorageGlassInfo(engineerId, temperingLayoutId); + bigStorageGlassInfo = this.getOne(new LambdaQueryWrapper<BigStorageGlassInfo>() + .eq(BigStorageGlassInfo::getEngineerId, engineerId) + .eq(BigStorageGlassInfo::getTemperingLayoutId, temperingLayoutId) + .eq(BigStorageGlassInfo::getTemperingFeedSequence, temperingFeedSequence)); } //鎸夌収铏氭嫙浣嶇疆鍜屽ぇ鐞嗙墖绗肩幇鏈夊彲鐢ㄦ牸瀛愮敓鎴愬叧绯昏〃 bigStorageSlotPair(bigStorageGlassInfo); //鍏崇郴琛ㄨ幏鍙栧疄闄呬綅缃� relationInfoOne = bigStorageGlassRelationInfoService.getOne(new LambdaQueryWrapper<BigStorageGlassRelationInfo>() - .eq(BigStorageGlassRelationInfo::getGlassId, glassId)); + .eq(BigStorageGlassRelationInfo::getEngineerId, engineerId) + .eq(BigStorageGlassRelationInfo::getTemperingLayoutId, temperingLayoutId) + .eq(BigStorageGlassRelationInfo::getTemperingFeedSequence, temperingFeedSequence)); } BigStorageCageDetails bigStorageCageDetails = bigStorageCageDetailsService.getOne(new LambdaQueryWrapper<BigStorageCageDetails>() .eq(BigStorageCageDetails::getSlot, relationInfoOne.getSlot()).in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL_ZERO) @@ -91,14 +102,17 @@ if (null == relationInfoBefore) { //琛ㄧず搴忓彿娌℃湁鎴栬�� 搴忓彿涓�1鍙堜笉鏄涓�鍧楁潵鐨� 鏂板紑涓�鏍� storageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>() - .eq(BigStorageCage::getEnableState, Const.SLOT_ON).eq(BigStorageCage::getRemainWidth, slotWidth).last("limit 1")); + .eq(BigStorageCage::getEnableState, Const.SLOT_ON).eq(BigStorageCage::getRemainWidth, slotWidth).orderByAsc(BigStorageCage::getSlot).last("limit 1")); } else { BigStorageCageDetails beforeGlass = bigStorageCageDetailsService.getOne(new LambdaQueryWrapper<BigStorageCageDetails>() - .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL_ZERO).eq(BigStorageCageDetails::getGlassId, relationInfoBefore.getGlassId()) + .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL_ZERO) + .eq(BigStorageCageDetails::getEngineerId, relationInfoBefore.getEngineerId()) + .eq(BigStorageCageDetails::getTemperingLayoutId, relationInfoBefore.getTemperingLayoutId()) + .eq(BigStorageCageDetails::getTemperingFeedSequence, relationInfoBefore.getTemperingFeedSequence()) ); if (null == beforeGlass) { storageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>() - .eq(BigStorageCage::getEnableState, Const.SLOT_ON).eq(BigStorageCage::getRemainWidth, slotWidth).last("limit 1")); + .eq(BigStorageCage::getEnableState, Const.SLOT_ON).eq(BigStorageCage::getRemainWidth, slotWidth).orderByAsc(BigStorageCage::getSlot).last("limit 1")); } else { storageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>() .eq(BigStorageCage::getEnableState, Const.SLOT_ON).eq(BigStorageCage::getSlot, beforeGlass.getSlot())); @@ -113,38 +127,10 @@ return storageDTO; } - public void dispatchBigStorageSlot() { - //todo:鑾峰彇绗煎唴鍗曟牸宸茬粡鍒伴綈鐨勭幓鐠冩牸瀛愪俊鎭� - List<BigStorageRelationDTO> virtualList = bigStorageCageDetailsService.queryIsAllNeedDispatchVirtualSlot(); - if (CollectionUtil.isEmpty(virtualList)) { - log.info("娌℃湁闇�瑕佽皟搴︾殑鏍煎瓙"); - } - for (BigStorageRelationDTO dto : virtualList) { - List<BigStorageSequenceDTO> sequenceDTOList = bigStorageCageDetailsService.dispatchBigStorageGlassInfo(dto); - if (CollectionUtil.isEmpty(sequenceDTOList) || sequenceDTOList.size() == 1) { - continue; - } - int sequence = 0; - int startSlot = 0; - int targetSlot = 0; - for (BigStorageSequenceDTO item : sequenceDTOList) { - if (item.getMinSequence() == sequence + 1) { - //鐢熸垚璋冨害浠诲姟 - startSlot = item.getSlot(); - break; - } - sequence = item.getMaxSequence(); - targetSlot = item.getSlot(); - } - } - // - } - @Override - public void generateBigStorageGlassInfo(String glassId) { - GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId)); + public void generateBigStorageGlassInfo(String engineerId, int temperingLayoutId) { List<BigStorageGlassInfo> list = this.list(new LambdaQueryWrapper<BigStorageGlassInfo>() - .eq(BigStorageGlassInfo::getEngineerId, glassInfo.getEngineerId()).eq(BigStorageGlassInfo::getTemperingLayoutId, glassInfo.getTemperingLayoutId())); + .eq(BigStorageGlassInfo::getEngineerId, engineerId).eq(BigStorageGlassInfo::getTemperingLayoutId, temperingLayoutId)); if (CollectionUtil.isNotEmpty(list)) { return; } @@ -152,7 +138,7 @@ // .eq(Engineering::getEngineerId, glassInfo.getEngineerId())); //鑾峰彇鐜荤拑鐨勫伐绋媔d锛屾寜鐓у伐绋媔d鑾峰彇宸ョ▼涓嬬殑鎵�鏈夌幓鐠冧俊鎭� List<GlassInfo> glassInfoList = glassInfoService.list(new LambdaQueryWrapper<GlassInfo>() - .eq(GlassInfo::getEngineerId, glassInfo.getEngineerId()) + .eq(GlassInfo::getEngineerId, engineerId) .orderByAsc(GlassInfo::getTemperingLayoutId).orderByAsc(GlassInfo::getTemperingFeedSequence)); Map<Integer, List<GlassInfo>> trmperingIdMap = glassInfoList.stream().collect(Collectors.groupingBy(GlassInfo::getTemperingLayoutId)); List<BigStorageGlassInfo> bigStorageGlassInfoList = new ArrayList<>(); @@ -163,7 +149,7 @@ int slotSequence = 1; for (GlassInfo item : v) { int maxLength = (int) Math.max(item.getWidth(), item.getHeight()); - if (remainWidth > maxLength) { + if (remainWidth > maxLength && slotSequence <= outCarMaxSize) { remainWidth = remainWidth - maxLength - glassGap; } else { slotNumber = slotNumber + 1; @@ -187,7 +173,7 @@ public int bigStorageSlotPair(BigStorageGlassInfo bigStorageGlassInfo) { //鑾峰彇鎵�鏈夌┖闂插彲鐢ㄧ殑鏍煎瓙鍙� BigStorageCage storageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>() - .eq(BigStorageCage::getEnableState, Const.SLOT_ON).eq(BigStorageCage::getRemainWidth, slotWidth).last("limit 1")); + .eq(BigStorageCage::getEnableState, Const.SLOT_ON).eq(BigStorageCage::getRemainWidth, slotWidth).orderByAsc(BigStorageCage::getSlot).last("limit 1")); Assert.isTrue(null != storageCage, "娌℃湁绌轰綑鐨勭瀛愬瓨鏀剧幓鐠�"); Integer slot = storageCage.getSlot(); //鑾峰彇璇ュ伐绋嬪悓涓�娴佺▼鍗″悓涓�杞︾殑鐜荤拑淇℃伅 -- Gitblit v1.8.0