From dbbf0c051ef05480a0becee07974b80e32b1cb8f Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期二, 20 五月 2025 11:38:31 +0800
Subject: [PATCH] 提交阿尔及及利亚项目改动
---
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageGlassInfoServiceImpl.java | 102 ++++++++++++++++++++++++++------------------------
1 files changed, 53 insertions(+), 49 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..13340eb 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,19 +9,18 @@
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;
import com.mes.bigstorage.service.BigStorageGlassInfoService;
import com.mes.bigstorage.service.BigStorageGlassRelationInfoService;
import com.mes.common.config.Const;
+import com.mes.common.config.ConstSysConfig;
import com.mes.glassinfo.entity.GlassInfo;
import com.mes.glassinfo.service.GlassInfoService;
+import com.mes.sysconfig.service.SysConfigService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -47,30 +46,46 @@
BigStorageCageDetailsService bigStorageCageDetailsService;
@Resource
BigStorageGlassRelationInfoService bigStorageGlassRelationInfoService;
- @Value("${mes.slotWidth}")
- private Integer slotWidth;
- @Value("${mes.glassGap}")
- private Integer glassGap;
+ @Resource
+ SysConfigService sysConfigService;
+// @Value("${mes.slotWidth}")
+// 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));
}
+ Integer slotWidth = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_SLOT_WIDTH);
BigStorageCageDetails bigStorageCageDetails = bigStorageCageDetailsService.getOne(new LambdaQueryWrapper<BigStorageCageDetails>()
.eq(BigStorageCageDetails::getSlot, relationInfoOne.getSlot()).in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL_ZERO)
.orderByDesc(BigStorageCageDetails::getSequence).last("limit 1"));
@@ -91,14 +106,24 @@
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)
+ .le(BigStorageCage::getMinThickness, bigStorageCageDetails.getThickness())
+ .ge(BigStorageCage::getMaxThickness, bigStorageCageDetails.getThickness())
+ .orderByAsc(BigStorageCage::getMaxThickness)
+ .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)
+ .le(BigStorageCage::getMinThickness, bigStorageCageDetails.getThickness())
+ .ge(BigStorageCage::getMaxThickness, bigStorageCageDetails.getThickness())
+ .orderByAsc(BigStorageCage::getMaxThickness).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,46 +138,21 @@
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;
}
+ Integer slotWidth = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_SLOT_WIDTH);
+ Integer glassGap = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_GLASS_GAP);
+ Integer outCarMaxSize = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_OUT_CAR_SIZE);
// Engineering engineering = engineeringMapper.selectOne(new LambdaQueryWrapper<Engineering>()
// .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 +163,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;
@@ -186,8 +186,12 @@
@Override
public int bigStorageSlotPair(BigStorageGlassInfo bigStorageGlassInfo) {
//鑾峰彇鎵�鏈夌┖闂插彲鐢ㄧ殑鏍煎瓙鍙�
+ Integer slotWidth = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_SLOT_WIDTH);
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)
+ .le(BigStorageCage::getMinThickness, bigStorageGlassInfo.getThickness())
+ .ge(BigStorageCage::getMaxThickness, bigStorageGlassInfo.getThickness())
+ .orderByAsc(BigStorageCage::getMaxThickness).orderByAsc(BigStorageCage::getSlot).last("limit 1"));
Assert.isTrue(null != storageCage, "娌℃湁绌轰綑鐨勭瀛愬瓨鏀剧幓鐠�");
Integer slot = storageCage.getSlot();
//鑾峰彇璇ュ伐绋嬪悓涓�娴佺▼鍗″悓涓�杞︾殑鐜荤拑淇℃伅
--
Gitblit v1.8.0