From 4e3b8155722b66e25df3c6fd42cc586b68dea391 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期五, 06 六月 2025 13:55:39 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/tools/service/impl/BigStorageBaseServiceImpl.java | 214 +++++++++++++++++++++++++++-------------------------
1 files changed, 111 insertions(+), 103 deletions(-)
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/tools/service/impl/BigStorageBaseServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/tools/service/impl/BigStorageBaseServiceImpl.java
index 4b275c5..d713005 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/tools/service/impl/BigStorageBaseServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/tools/service/impl/BigStorageBaseServiceImpl.java
@@ -5,23 +5,22 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
-import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.mes.bigstorage.entity.BigStorageCage;
import com.mes.bigstorage.entity.BigStorageCageDetails;
-import com.mes.bigstorage.entity.BigStorageDTO;
+import com.mes.bigstorage.entity.dto.BigStorageDTO;
import com.mes.bigstorage.service.BigStorageCageDetailsService;
import com.mes.bigstorage.service.BigStorageCageService;
import com.mes.bigstoragetask.entity.BigStorageCageFeedTask;
import com.mes.common.S7object;
import com.mes.common.config.Const;
+import com.mes.common.config.ConstSysConfig;
import com.mes.device.PlcParameterObject;
import com.mes.glassinfo.entity.GlassInfo;
import com.mes.glassinfo.service.GlassInfoService;
+import com.mes.sysconfig.service.SysConfigService;
import com.mes.tools.S7control;
import com.mes.tools.service.BigStorageBaseService;
import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -49,22 +48,27 @@
@Resource
GlassInfoService glassInfoService;
- @Value("${mes.slotWidth}")
- private Integer slotWidth;
+ @Resource
+ SysConfigService sysConfigService;
- @Value("${mes.carWidth}")
- private Integer carWidth;
-
- @Value("${mes.outCarMaxSize}")
- private Integer outCarMaxSize;
-
- @Value("${mes.glassGap}")
- private Integer glassGap;
+// @Value("${mes.slotWidth}")
+// private Integer slotWidth;
+//
+// @Value("${mes.carWidth}")
+// private Integer carWidth;
+//
+// @Value("${mes.outCarMaxSize}")
+// private Integer outCarMaxSize;
+//
+// @Value("${mes.glassGap}")
+// private Integer glassGap;
@Override
public void updateSlotRemainBySlots(List<Integer> slotList) {
//鑾峰彇鏍煎瓙鍐呮墍鏈夌殑鐜荤拑淇℃伅
+ Integer slotWidth = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_SLOT_WIDTH);
+ int glassGap = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_GLASS_GAP);
List<BigStorageCageDetails> inSlotGlassList = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>()
.in(BigStorageCageDetails::getSlot, slotList).in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL));
Map<Integer, Double> slotRemainMap = new HashMap<>();
@@ -449,88 +453,88 @@
@Override
public BigStorageDTO queryTargetSlotByTempering(GlassInfo glassInfo) {
- BigStorageDTO bigStorageDTO = null;
- MPJLambdaWrapper<BigStorageCage> wrapper = new MPJLambdaWrapper<>(BigStorageCage.class)
- .selectAll(BigStorageCage.class)
- .leftJoin(BigStorageCageDetails.class, BigStorageCageDetails::getSlot, BigStorageCage::getSlot)
- .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
- .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL_ZERO)
- .eq(BigStorageCageDetails::getEngineerId, glassInfo.getEngineerId())
- .eq(BigStorageCageDetails::getTemperingLayoutId, glassInfo.getTemperingLayoutId())
- .gt(BigStorageCage::getRemainWidth, Math.max(glassInfo.getWidth(), glassInfo.getHeight()))
- .last("limit 1");
- if (glassInfo.getTemperingLayoutId() == 0) {
- wrapper.eq(BigStorageCageDetails::getFlowCardId, glassInfo.getFlowCardId())
- .eq(BigStorageCageDetails::getLayer, glassInfo.getLayer());
-// wrapper.eq(BigStorageCageDetails::getWidth, glassInfo.getWidth()).eq(BigStorageCageDetails::getHeight, glassInfo.getHeight());
- } else {
- wrapper.eq(BigStorageCageDetails::getTemperingFeedSequence, glassInfo.getTemperingFeedSequence() + 1);
- }
- BigStorageCage bigStorageCage = bigStorageCageService.selectJoinOne(BigStorageCage.class, wrapper);
- if (null != bigStorageCage) {
- log.info("鏃犻挗鍖栫増鍥緄d鎴栨牴鎹綋鍓嶇幓鐠冪墖搴�+1鎵惧埌鐩爣鏍煎瓙锛歿},鐜荤拑id锛歿}", bigStorageCage.getSlot(), glassInfo.getGlassId());
- bigStorageDTO = new BigStorageDTO();
- bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
- bigStorageDTO.setSlot(bigStorageCage.getSlot());
- bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId());
- return bigStorageDTO;
- }
- bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
- .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
- .eq(BigStorageCage::getRemainWidth, slotWidth)
-// .notInSql(BigStorageCage::getSlot, "select distinct slot from big_storage_cage_details where state = 0")
- .inSql(BigStorageCage::getDeviceId,
- "select distinct device_id from big_storage_cage_details where engineer_id = '" + glassInfo.getEngineerId() + "' and tempering_layout_id = " + glassInfo.getTemperingLayoutId())
- .last("limit 1"));
- if (null != bigStorageCage) {
- log.info("鏍规嵁鐗堝浘id鎵惧埌绗煎瓙鍐呯殑鐩爣鏍煎瓙锛歿},鐜荤拑id锛歿}", bigStorageCage.getSlot(), glassInfo.getGlassId());
- bigStorageDTO = new BigStorageDTO();
- bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
- bigStorageDTO.setSlot(bigStorageCage.getSlot());
- bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId());
- return bigStorageDTO;
- }
-
- //鑾峰彇鐜荤拑鐨勫帤搴︼細閲嶆柊閫夌瀛愰渶瑕佹寜鐓х瀛愬彲鏀剧幓鐠冨帤搴﹁繘琛岄�夋嫨 鍥犱负瀛愭煡璇㈡帓搴忓涓籹ql鏃犲奖鍝嶏紝鎵�浠ュ厛鎵ц瀛愭煡璇㈣幏鍙栭『搴忥紝鐒跺悗涓�娆″幓鏌ヨ
- List<Integer> deviceUsedList = bigStorageCageService.queryFreeDeviceByUsed(glassInfo.getThickness());
- List<Integer> deviceUseds = bigStorageCageService.queryFreeDeviceByUsed(glassInfo.getThickness());
- List<BigStorageCageDetails> engineerCount1 = baseMapper.selectList(
- new LambdaQueryWrapper<BigStorageCageDetails>()
- .notIn(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT, Const.GLASS_STATE_DAMAGE, Const.GLASS_STATE_TAKE)
- .select(BigStorageCageDetails::getEngineerId)
- .groupBy(BigStorageCageDetails::getEngineerId)
- .between(BigStorageCageDetails::getDeviceId, 1, 5)
- );
- List<BigStorageCageDetails> engineerCount2 = baseMapper.selectList(
- new LambdaQueryWrapper<BigStorageCageDetails>()
- .notIn(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT, Const.GLASS_STATE_DAMAGE, Const.GLASS_STATE_TAKE)
- .select(BigStorageCageDetails::getEngineerId)
- .groupBy(BigStorageCageDetails::getEngineerId)
- .between(BigStorageCageDetails::getDeviceId, 6, 8)
- );
- if (engineerCount1.size() > engineerCount2.size()) {
- deviceUsedList.removeIf(device -> device < 6);
- } else {
- deviceUsedList.removeIf(device -> device > 5);
- }
- if (CollectionUtils.isEmpty(deviceUsedList)) {
- deviceUsedList = deviceUseds;
- }
- for (Integer item : deviceUsedList) {
- bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
- .eq(BigStorageCage::getRemainWidth, slotWidth)
- .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
- .eq(BigStorageCage::getDeviceId, item)
- .last("limit 1"));
- if (null != bigStorageCage) {
- log.info("鎸夌収瀛樼鐜荤拑鏍煎瓙鏁板崰鐢ㄦ渶灏戞柟寮忚幏鍙栦俊鎭牸瀛愪负锛歿},鐜荤拑id锛歿}", bigStorageCage.getSlot(), glassInfo.getGlassId());
- bigStorageDTO = new BigStorageDTO();
- bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
- bigStorageDTO.setSlot(bigStorageCage.getSlot());
- bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId());
- return bigStorageDTO;
- }
- }
+// BigStorageDTO bigStorageDTO = null;
+// MPJLambdaWrapper<BigStorageCage> wrapper = new MPJLambdaWrapper<>(BigStorageCage.class)
+// .selectAll(BigStorageCage.class)
+// .leftJoin(BigStorageCageDetails.class, BigStorageCageDetails::getSlot, BigStorageCage::getSlot)
+// .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
+// .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL_ZERO)
+// .eq(BigStorageCageDetails::getEngineerId, glassInfo.getEngineerId())
+// .eq(BigStorageCageDetails::getTemperingLayoutId, glassInfo.getTemperingLayoutId())
+// .gt(BigStorageCage::getRemainWidth, Math.max(glassInfo.getWidth(), glassInfo.getHeight()))
+// .last("limit 1");
+// if (glassInfo.getTemperingLayoutId() == 0) {
+// wrapper.eq(BigStorageCageDetails::getFlowCardId, glassInfo.getFlowCardId())
+// .eq(BigStorageCageDetails::getLayer, glassInfo.getLayer());
+//// wrapper.eq(BigStorageCageDetails::getWidth, glassInfo.getWidth()).eq(BigStorageCageDetails::getHeight, glassInfo.getHeight());
+// } else {
+// wrapper.eq(BigStorageCageDetails::getTemperingFeedSequence, glassInfo.getTemperingFeedSequence() + 1);
+// }
+// BigStorageCage bigStorageCage = bigStorageCageService.selectJoinOne(BigStorageCage.class, wrapper);
+// if (null != bigStorageCage) {
+// log.info("鏃犻挗鍖栫増鍥緄d鎴栨牴鎹綋鍓嶇幓鐠冪墖搴�+1鎵惧埌鐩爣鏍煎瓙锛歿},鐜荤拑id锛歿}", bigStorageCage.getSlot(), glassInfo.getGlassId());
+// bigStorageDTO = new BigStorageDTO();
+// bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
+// bigStorageDTO.setSlot(bigStorageCage.getSlot());
+// bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId());
+// return bigStorageDTO;
+// }
+// bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
+// .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
+// .eq(BigStorageCage::getRemainWidth, slotWidth)
+//// .notInSql(BigStorageCage::getSlot, "select distinct slot from big_storage_cage_details where state = 0")
+// .inSql(BigStorageCage::getDeviceId,
+// "select distinct device_id from big_storage_cage_details where engineer_id = '" + glassInfo.getEngineerId() + "' and tempering_layout_id = " + glassInfo.getTemperingLayoutId())
+// .last("limit 1"));
+// if (null != bigStorageCage) {
+// log.info("鏍规嵁鐗堝浘id鎵惧埌绗煎瓙鍐呯殑鐩爣鏍煎瓙锛歿},鐜荤拑id锛歿}", bigStorageCage.getSlot(), glassInfo.getGlassId());
+// bigStorageDTO = new BigStorageDTO();
+// bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
+// bigStorageDTO.setSlot(bigStorageCage.getSlot());
+// bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId());
+// return bigStorageDTO;
+// }
+//
+// //鑾峰彇鐜荤拑鐨勫帤搴︼細閲嶆柊閫夌瀛愰渶瑕佹寜鐓х瀛愬彲鏀剧幓鐠冨帤搴﹁繘琛岄�夋嫨 鍥犱负瀛愭煡璇㈡帓搴忓涓籹ql鏃犲奖鍝嶏紝鎵�浠ュ厛鎵ц瀛愭煡璇㈣幏鍙栭『搴忥紝鐒跺悗涓�娆″幓鏌ヨ
+// List<Integer> deviceUsedList = bigStorageCageService.queryFreeDeviceByUsed(glassInfo.getThickness());
+// List<Integer> deviceUseds = bigStorageCageService.queryFreeDeviceByUsed(glassInfo.getThickness());
+// List<BigStorageCageDetails> engineerCount1 = baseMapper.selectList(
+// new LambdaQueryWrapper<BigStorageCageDetails>()
+// .notIn(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT, Const.GLASS_STATE_DAMAGE, Const.GLASS_STATE_TAKE)
+// .select(BigStorageCageDetails::getEngineerId)
+// .groupBy(BigStorageCageDetails::getEngineerId)
+// .between(BigStorageCageDetails::getDeviceId, 1, 5)
+// );
+// List<BigStorageCageDetails> engineerCount2 = baseMapper.selectList(
+// new LambdaQueryWrapper<BigStorageCageDetails>()
+// .notIn(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT, Const.GLASS_STATE_DAMAGE, Const.GLASS_STATE_TAKE)
+// .select(BigStorageCageDetails::getEngineerId)
+// .groupBy(BigStorageCageDetails::getEngineerId)
+// .between(BigStorageCageDetails::getDeviceId, 6, 8)
+// );
+// if (engineerCount1.size() > engineerCount2.size()) {
+// deviceUsedList.removeIf(device -> device < 6);
+// } else {
+// deviceUsedList.removeIf(device -> device > 5);
+// }
+// if (CollectionUtils.isEmpty(deviceUsedList)) {
+// deviceUsedList = deviceUseds;
+// }
+// for (Integer item : deviceUsedList) {
+// bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
+// .eq(BigStorageCage::getRemainWidth, slotWidth)
+// .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
+// .eq(BigStorageCage::getDeviceId, item)
+// .last("limit 1"));
+// if (null != bigStorageCage) {
+// log.info("鎸夌収瀛樼鐜荤拑鏍煎瓙鏁板崰鐢ㄦ渶灏戞柟寮忚幏鍙栦俊鎭牸瀛愪负锛歿},鐜荤拑id锛歿}", bigStorageCage.getSlot(), glassInfo.getGlassId());
+// bigStorageDTO = new BigStorageDTO();
+// bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
+// bigStorageDTO.setSlot(bigStorageCage.getSlot());
+// bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId());
+// return bigStorageDTO;
+// }
+// }
//鑾峰彇鐜荤拑鐨勫帤搴︼細閲嶆柊閫夌瀛愰渶瑕佹寜鐓х瀛愬彲鏀剧幓鐠冨帤搴﹁繘琛岄�夋嫨
// List<Integer> deviceNotUsedList = bigStorageCageService.queryFreeDeviceByNotUsed(glassInfo.getThickness());
@@ -549,12 +553,13 @@
// return bigStorageDTO;
// }
// }
- Assert.isTrue(null != bigStorageCage, "娌℃湁绌轰綑鐨勭瀛愬瓨鏀剧幓鐠�");
- return bigStorageDTO;
+// Assert.isTrue(null != bigStorageCage, "娌℃湁绌轰綑鐨勭瀛愬瓨鏀剧幓鐠�");
+// return bigStorageDTO;
+ return null;
}
- @Scheduled(fixedDelay = 300)
+ // @Scheduled(fixedDelay = 300)
public void querySizeByEngineerTask() {
log.info("鏌ヨ缁撴灉锛歿}", querySizeByEngineer("P24072402", 1, 10, 8));
log.info("鏌ヨ缁撴灉锛歿}", querySizeByEngineer("P24072402", 1, 5, 8));
@@ -575,13 +580,16 @@
List<GlassInfo> infoList = glassInfoService.list(new LambdaQueryWrapper<GlassInfo>()
.notInSql(GlassInfo::getGlassId, "select glass_id from damage where tempering_layout_id = " + temperingLayoutId + " and engineer_id = '" + engineerId + "'")
.eq(GlassInfo::getTemperingLayoutId, temperingLayoutId).eq(GlassInfo::getEngineerId, engineerId).orderByAsc(GlassInfo::getTemperingFeedSequence));
- int remainWidth = carWidth;
+ int remainWidth = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_CAR_WIDTH);
int trainNumber = 1;
int serialNumber = 0;
int min = 0;
int temp = infoList.get(0).getTemperingFeedSequence();
int slot = 0;
int resultTrainNumber = 0;
+ int outCarMaxSize = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_OUT_CAR_SIZE);
+ int carWidth = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_CAR_WIDTH);
+ int glassGap = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_GLASS_GAP);
for (GlassInfo e : infoList) {
int maxLength = Math.max((int) e.getWidth(), (int) e.getHeight());
if (serialNumber >= outCarMaxSize || maxLength > remainWidth || e.getTemperingFeedSequence() >= minLength) {
@@ -621,10 +629,10 @@
bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId());
return bigStorageDTO;
}
-
+ int slotWidth = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_SLOT_WIDTH);
bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
.eq(BigStorageCage::getEnableState, Const.SLOT_ON)
- .eq(BigStorageCage::getRemainWidth, slotWidth)
+ .eq(BigStorageCage::getRemainWidth, slotWidth).orderByAsc(BigStorageCage::getSlot)
.inSql(BigStorageCage::getDeviceId,
"select distinct device_id from big_storage_cage_details where engineer_id = '" + engineerId + "' and tempering_layout_id = " + temperingLayoutId)
.last("limit 1"));
@@ -642,7 +650,7 @@
List<Integer> deviceUsedList = bigStorageCageService.queryFreeDeviceByUsed(thickness);
for (Integer item : deviceUsedList) {
bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
- .eq(BigStorageCage::getRemainWidth, slotWidth)
+ .eq(BigStorageCage::getRemainWidth, slotWidth).orderByAsc(BigStorageCage::getSlot)
.eq(BigStorageCage::getEnableState, Const.SLOT_ON)
.eq(BigStorageCage::getDeviceId, item)
.last("limit 1"));
--
Gitblit v1.8.0