From 6ff1b66c16a506d8f40b7284c1c3774faf1e6d2e Mon Sep 17 00:00:00 2001
From: wuyouming666 <2265557248@qq.com>
Date: 星期五, 31 五月 2024 16:45:45 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes

---
 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