From 9247ea3d414c528ff2210c4b1ccdb38741f52101 Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期四, 30 五月 2024 16:50:36 +0800
Subject: [PATCH] 添加新磨边任务表,添加上车宽度判断

---
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java |   69 +++++++++++++++++++++++++++-------
 1 files changed, 54 insertions(+), 15 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 5a1652e..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
@@ -49,20 +49,20 @@
     @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);
         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鏄惁瀛樺湪鐞嗙墖绗煎唴");
@@ -71,7 +71,7 @@
                     .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());
@@ -86,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;
                     }
                 }
             }
@@ -119,12 +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;
@@ -140,7 +148,7 @@
                     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);
@@ -177,14 +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());
@@ -193,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