From 36c8b97ef1d250e724696cae846a754d48a92512 Mon Sep 17 00:00:00 2001
From: wu <731351411@qq.com>
Date: 星期二, 04 六月 2024 12:33:00 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java | 91 +++++++++++++++++++++++++++++++++++----------
1 files changed, 71 insertions(+), 20 deletions(-)
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java
index 51d5f49..c798fc7 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java
@@ -10,6 +10,7 @@
import com.mes.bigstorage.mapper.BigStorageCageMapper;
import com.mes.bigstorage.service.BigStorageCageService;
import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.service.GlassInfoService;
import com.mes.temperingglass.entity.TemperingGlassInfo;
import com.mes.temperingglass.service.TemperingGlassInfoService;
import lombok.extern.slf4j.Slf4j;
@@ -18,6 +19,7 @@
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@@ -44,29 +46,32 @@
@Resource
private TemperingGlassInfoService temperingGlassInfoService;
+ @Resource
+ private GlassInfoService glassInfoService;
+
+ //杩涚墖閫昏緫
@Override
public BigStorageCageDetails feedGlass(GlassInfo glassInfo, BigStorageCageDetails bigStorageCageDetails) {
- log.info("1銆佹煡璇㈢悊鐗囩鍐呯墖搴�+1绛変簬褰撳墠鐜荤拑鐗囧簭鐨勭幓鐠�");
LambdaQueryWrapper<BigStorageCageDetails> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(BigStorageCageDetails::getTemperingLayoutId, glassInfo.getTemperingLayoutId())
- .eq(BigStorageCageDetails::getTemperingFeedSequence, glassInfo.getTemperingFeedSequence() + 1);
+ .eq(BigStorageCageDetails::getTemperingFeedSequence, glassInfo.getTemperingFeedSequence() - 1);
BigStorageCageDetails layoutSlotInfo;
layoutSlotInfo= bigStorageCageDetailsMapper.selectOne(wrapper);
-
+ log.info("1銆佹煡璇㈢悊鐗囩鍐呯墖搴�-1绛変簬褰撳墠鐜荤拑鐗囧簭鐨勭幓鐠�"+layoutSlotInfo);
BeanUtils.copyProperties(glassInfo, bigStorageCageDetails);
- log.info("2銆佹煡璇㈢悊鐗囩鍐呯墖搴�+1绛変簬褰撳墠鐜荤拑鐗囧簭鐨勭幓鐠冪殑缁撴灉涓嶄负绌烘椂");
- if (layoutSlotInfo.getSlot() != null) {
+ log.info("2銆佹煡璇㈢悊鐗囩鍐呯墖搴�-1绛変簬褰撳墠鐜荤拑鐗囧簭鐨勭幓鐠冪殑缁撴灉涓嶄负绌烘椂"+layoutSlotInfo.getSlot());
+ if (layoutSlotInfo.getSlot() != null&&selectWidthSufficient(layoutSlotInfo,bigStorageCageDetails.getWidth())) {
bigStorageCageDetails.setSlot(layoutSlotInfo.getSlot());
} else {
- log.info("3銆佹煡璇㈢悊鐗囩鍐呯墖搴�+1绛変簬褰撳墠鐜荤拑鐗囧簭鐨勭幓鐠冪殑缁撴灉涓虹┖鏃惰幏鍙栧綋鍓嶇幓鐠冪増鍥緄d鏄惁瀛樺湪鐞嗙墖绗煎唴");
+ log.info("3銆佹煡璇㈢悊鐗囩鍐呯墖搴�-1绛変簬褰撳墠鐜荤拑鐗囧簭鐨勭幓鐠冪殑缁撴灉涓虹┖鏃惰幏鍙栧綋鍓嶇幓鐠冪増鍥緄d鏄惁瀛樺湪鐞嗙墖绗煎唴");
LambdaQueryWrapper<BigStorageCageDetails> bigStorageCageDetailslambdaQueryWrapper = new LambdaQueryWrapper<>();
bigStorageCageDetailslambdaQueryWrapper
.select(BigStorageCageDetails::getTemperingLayoutId);
layoutSlotInfo = bigStorageCageDetailsMapper.selectOne(bigStorageCageDetailslambdaQueryWrapper);
- if(layoutSlotInfo != null){
+ if(layoutSlotInfo != null&&selectWidthSufficient(layoutSlotInfo,bigStorageCageDetails.getWidth())){
log.info("4銆佽幏鍙栫瀛愬唴閫傚悎鐨勬牸瀛�");
BigStorageCage bigStorageCage=bigStorageCageSlot(layoutSlotInfo.getDeviceId());
bigStorageCageDetails.setSlot(bigStorageCage.getSlot());
@@ -81,13 +86,19 @@
List<Map<String, Object>> bigStorageCageDetailsCount= bigStorageCageDetailsMapper.selectMaps(queryWrapper);
log.info("5銆佹煡璇㈢瀛愬唴鏄惁鏈夊悎閫傜殑鏍煎瓙");
+ boolean found=false;
for (Map<String, Object> map : bigStorageCageDetailsCount) {
for (Map.Entry<String, Object> entry : map.entrySet()) {
int deviceId = Integer.parseInt(entry.getKey());
BigStorageCage bigStorageCage=bigStorageCageSlot(deviceId);
if(bigStorageCage!=null){
bigStorageCageDetails.setSlot(bigStorageCage.getSlot());
+ found=true;
+ break;
}
+ }
+ if(found){
+ break;
}
}
}
@@ -114,13 +125,14 @@
return bigStorageCageMapper.selectOne(bigStorageCageWrapper);
}
-
+ //鍑虹墖閫昏緫
@Override
public boolean outGlass() {
- List<TemperingGlassInfo> temperingGlassInfoList = temperingGlassInfoService.list();
+ LambdaQueryWrapper<TemperingGlassInfo> temperingGlassInfoWrapper=new LambdaQueryWrapper<>();
+ temperingGlassInfoWrapper.eq(TemperingGlassInfo::getState,-1);
+ List<TemperingGlassInfo> temperingGlassInfoList = temperingGlassInfoService.list(temperingGlassInfoWrapper);
log.info("1銆佹煡璇㈤挗鍖栧皬鐗囦换鍔¤〃鏄惁鏈夊緟鍑虹幓鐠�"+temperingGlassInfoList.size());
-
- if(temperingGlassInfoList!=null){
+ if(temperingGlassInfoList.size()>0){
temperingGlassInfoService.addOutTask(temperingGlassInfoList);
log.info("2銆佹坊鍔犱换鍔″埌浠诲姟琛�");
return true;
@@ -136,7 +148,17 @@
String layoutId = entry.getKey().substring(0, entry.getKey().indexOf('-'));
String layoutNum = entry.getKey().substring(entry.getKey().indexOf('-') + 1);
if (layoutNum.equals(entry.getValue())) {
- //4銆佹坊鍔犳閽㈠寲鐗堝浘id鎵�鏈夊皬鐗囧皬鐗囧埌閽㈠寲灏忕墖琛�
+ log.info("4銆佹坊鍔犳閽㈠寲鐗堝浘id鎵�鏈夊皬鐗囧皬鐗囧埌閽㈠寲灏忕墖琛�");
+ LambdaQueryWrapper<GlassInfo> glassInfoWrapper=new LambdaQueryWrapper<>();
+ glassInfoWrapper.select(GlassInfo::getTemperingLayoutId)
+ .orderByDesc(GlassInfo::getTemperingFeedSequence);
+ List<GlassInfo> glassInfoList= glassInfoService.list(glassInfoWrapper);
+ for (GlassInfo glassInfo:glassInfoList
+ ) {
+ TemperingGlassInfo temperingGlassInfo=new TemperingGlassInfo();
+ BeanUtils.copyProperties(glassInfo, temperingGlassInfo);
+ temperingGlassInfoService.save(temperingGlassInfo);
+ }
return false;
}
}
@@ -163,16 +185,21 @@
bigStorageCageMapper.update(bigStorageCage, bigStorageCageWrapper);
}
-
-
-
+ //鏌ヨ澶х悊鐗囦俊鎭紝鍓嶇灞曠ず鐢�
@Override
- public List<BigStorageCage> querybigStorageCageDetail() {
- //1銆佽幏鍙栧ぇ鐞嗙墖绗间俊鎭�
- List<BigStorageCage> bigStorageCages = bigStorageCageMapper.selectList(null);
+ public List<BigStorageCage> querybigStorageCageDetail(int deviceId) {
+
+ LambdaQueryWrapper<BigStorageCage> BigStorageCageWrapper =new LambdaQueryWrapper<>();
+ BigStorageCageWrapper.eq(BigStorageCage::getSlot,deviceId);
+
+ LambdaQueryWrapper<BigStorageCageDetails> BigStorageCageDetailsWrapper =new LambdaQueryWrapper<>();
+ BigStorageCageDetailsWrapper.eq(BigStorageCageDetails::getSlot,deviceId);
+
+ List<BigStorageCage> bigStorageCages = bigStorageCageMapper.selectList(BigStorageCageWrapper);
log.info("1銆佽幏鍙栧ぇ鐞嗙墖绗间俊鎭畬鎴愶紝鑾峰彇鍒扮殑鏁版嵁{}", bigStorageCages.size());
- //2鑾峰彇鐞嗙墖绗兼墍鏈変俊鎭�
- List<BigStorageCageDetails> bigStorageCageDetailsList = bigStorageCageDetailsMapper.selectList(null);
+
+ List<BigStorageCageDetails> bigStorageCageDetailsList = bigStorageCageDetailsMapper.selectList(BigStorageCageDetailsWrapper);
+
Map<Integer, List<BigStorageCageDetails>> listMap = bigStorageCageDetailsList.stream().collect(Collectors.groupingBy(BigStorageCageDetails::getSlot));
for (BigStorageCage bigStorageCage : bigStorageCages) {
List<BigStorageCageDetails> bigStorageCageDetails = listMap.get(bigStorageCage.getSlot());
@@ -181,4 +208,28 @@
return bigStorageCages;
}
+ //绗煎瓙浣跨敤鎯呭喌锛岀晫闈㈠睍绀虹敤
+ @Override
+ public List<Map<String, Object>> selectBigStorageCageUsage() {
+ QueryWrapper<BigStorageCage> wrapper = new QueryWrapper<>();
+ wrapper.select("device_id")
+ .select("ROUND(1 - SUM(CASE WHEN remain_width = 5000 THEN 1 ELSE 0 END) / COUNT(device_id), 2) AS percentage")
+ .select("COUNT(device_id) - SUM(CASE WHEN remain_width = 5000 THEN 1 ELSE 0 END) AS count")
+ .groupBy("device_id");
+ List<Map<String, Object>> bigStorageCageUsages=baseMapper.selectMaps(wrapper);
+ return bigStorageCageUsages;
+ }
+
+ //鍒ゆ柇绗煎瓙鍓╀綑瀹藉害鏄惁瓒冲
+ @Override
+ public boolean selectWidthSufficient(BigStorageCageDetails layoutSlotInfo,double width) {
+ LambdaQueryWrapper<BigStorageCage> BigStorageCageWrapper = new LambdaQueryWrapper<>();
+ BigStorageCageWrapper.eq(BigStorageCage::getSlot,layoutSlotInfo.getSlot());
+ BigStorageCage bigStorageCage=baseMapper.selectOne(BigStorageCageWrapper);
+ if(bigStorageCage.getRemainWidth()>width){
+ return true;
+ }else{
+ return false;
+ }
+ }
}
--
Gitblit v1.8.0