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/bigstorage/service/impl/BigStorageCageServiceImpl.java |   84 ++++++++++++++++++++++++++++++++++--------
 1 files changed, 68 insertions(+), 16 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 baa9974..c1c8415 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
@@ -2,18 +2,26 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.mes.bigstorage.entity.BigStorageCage;
 import com.mes.bigstorage.entity.BigStorageCageDetails;
+import com.mes.bigstorage.entity.dto.BigStorageAndDetailsDTO;
+import com.mes.bigstorage.entity.dto.BigStorageSummaryDTO;
+import com.mes.bigstorage.entity.vo.BigStorageDetailsQueryVO;
 import com.mes.bigstorage.mapper.BigStorageCageDetailsMapper;
 import com.mes.bigstorage.mapper.BigStorageCageMapper;
 import com.mes.bigstorage.service.BigStorageCageService;
 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.largenscreen.entity.PieChartVO;
+import com.mes.sysconfig.service.SysConfigService;
 import com.mes.temperingglass.entity.TemperingGlassInfo;
 import com.mes.temperingglass.service.TemperingGlassInfoService;
 import lombok.extern.slf4j.Slf4j;
@@ -48,6 +56,14 @@
 
     @Resource
     private GlassInfoService glassInfoService;
+    @Resource
+    private SysConfigService sysConfigService;
+
+//    @Value("${mes.glassGap}")
+//    private Integer glassGap;
+//
+//    @Value("${mes.slotWidth}")
+//    private Integer slotWidth;
 
     //杩涚墖閫昏緫
     @Override
@@ -190,13 +206,10 @@
                             .orderByDesc(GlassInfo::getTemperingFeedSequence);
                     List<GlassInfo> glassInfoList = glassInfoService.list(glassInfoWrapper);
                     if (glassInfoList.size() == Integer.parseInt(temperingNo.toString())) {
-                        for (GlassInfo glassInfo : glassInfoList
-                        ) {
-
+                        for (GlassInfo glassInfo : glassInfoList) {
                             TemperingGlassInfo temperingGlassInfo = new TemperingGlassInfo();
                             BeanUtils.copyProperties(glassInfo, temperingGlassInfo);
                             temperingGlassInfoService.save(temperingGlassInfo);
-
                         }
                         key = true;
                     }
@@ -209,23 +222,36 @@
         return false;
     }
 
+    @Override
+    public List<BigStorageAndDetailsDTO> querybigStorageCageDetail(BigStorageDetailsQueryVO query) {
+        MPJLambdaWrapper<BigStorageCage> wrapper = new MPJLambdaWrapper<>();
+        wrapper.selectAll(BigStorageCage.class).selectCollection(BigStorageCageDetails.class, BigStorageCage::getBigStorageCageDetails)
+                .leftJoin(BigStorageCageDetails.class, on -> on.eq(BigStorageCageDetails::getSlot, BigStorageCage::getSlot)
+                        .like(StringUtils.isNotBlank(query.getFilmsId()), BigStorageCageDetails::getFilmsId, query.getFilmsId())
+                        .like(StringUtils.isNotBlank(query.getFlowCardId()), BigStorageCageDetails::getFlowCardId, query.getFlowCardId())
+                        .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN, Const.GLASS_STATE_ARTIFICIAL, Const.GLASS_STATE_OUT_ING))
+//                .eq(BigStorageCage::getDeviceId, query.getDeviceId())
+                .orderByAsc(BigStorageCage::getDeviceId)
+                .orderByAsc(BigStorageCage::getSlot);
+        return bigStorageCageMapper.selectJoinList(BigStorageAndDetailsDTO.class, wrapper);
+    }
+
     //璁$畻鏍煎瓙鍓╀綑瀹藉害
     @Override
     public void updateRemainWidth(int slot) {
         log.info("鑾峰彇璇ユ牸瀛愬唴鐜荤拑淇℃伅锛岃绠楁牸瀛愬墿浣欏搴�");
-        double width = 5000;
+        double width = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_SLOT_WIDTH);
+        double glassGap = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_GLASS_GAP);
         LambdaQueryWrapper<BigStorageCageDetails> bigStorageCageDetailsWrapper = new LambdaQueryWrapper();
         bigStorageCageDetailsWrapper
                 .eq(BigStorageCageDetails::getSlot, slot)
-                .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
-                .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_ARTIFICIAL);
+                .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL);
 
         List<BigStorageCageDetails> bigStorageCageDetailsList = bigStorageCageDetailsMapper.selectList(bigStorageCageDetailsWrapper);
         for (BigStorageCageDetails bigStorageCageDetails : bigStorageCageDetailsList
         ) {
-            double widths = bigStorageCageDetails.getWidth();
-            double gap = bigStorageCageDetails.getGap();
-            width -= widths + gap;
+            double widths = Math.max(bigStorageCageDetails.getWidth(), bigStorageCageDetails.getHeight());
+            width = width - widths - glassGap;
         }
         //淇敼鏍煎瓙鍓╀綑瀹藉害
         BigStorageCage bigStorageCage = new BigStorageCage();
@@ -241,9 +267,9 @@
         MPJLambdaWrapper<BigStorageCage> wrapper = new MPJLambdaWrapper<>();
         wrapper.selectAll(BigStorageCage.class).selectCollection(BigStorageCageDetails.class, BigStorageCage::getBigStorageCageDetails)
                 .leftJoin(BigStorageCageDetails.class, on -> on.eq(BigStorageCageDetails::getSlot, BigStorageCage::getSlot)
-                        .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN, Const.GLASS_STATE_ARTIFICIAL))
-                        .orderByAsc(BigStorageCage::getDeviceId)
-                        .orderByAsc(BigStorageCage::getSlot);
+                        .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN, Const.GLASS_STATE_ARTIFICIAL, Const.GLASS_STATE_OUT_ING))
+                .orderByAsc(BigStorageCage::getDeviceId)
+                .orderByAsc(BigStorageCage::getSlot);
         return bigStorageCageMapper.selectJoinList(BigStorageCage.class, wrapper);
     }
 
@@ -254,7 +280,7 @@
         MPJLambdaWrapper<BigStorageCage> wrapper = new MPJLambdaWrapper<>();
         wrapper.selectAll(BigStorageCage.class).selectCollection(BigStorageCageDetails.class, BigStorageCage::getBigStorageCageDetails)
                 .leftJoin(BigStorageCageDetails.class, on -> on.eq(BigStorageCageDetails::getSlot, BigStorageCage::getSlot)
-                        .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN, Const.GLASS_STATE_ARTIFICIAL));
+                        .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL).orderByAsc(BigStorageCageDetails::getUpdateTime));
         List<BigStorageCage> bigStorageCages = bigStorageCageMapper.selectJoinList(BigStorageCage.class, wrapper);
         Map<Integer, List<BigStorageCage>> listMap = bigStorageCages.stream().collect(Collectors.groupingBy(item -> item.getDeviceId()));
         return listMap;
@@ -264,8 +290,9 @@
     @Override
     public List<Map<String, Object>> selectBigStorageCageUsage() {
         QueryWrapper<BigStorageCage> wrapper = new QueryWrapper<>();
-        wrapper.select("device_id,ROUND(1 - SUM(CASE WHEN remain_width = 5000 THEN 1 ELSE 0 END) / COUNT(device_id), 2) AS percentage,SUM(CASE WHEN remain_width = 5000 THEN 1 ELSE 0 END) AS count")
-
+        double slotWidth = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_SLOT_WIDTH);
+        wrapper.select("device_id,ROUND(1 - SUM(CASE WHEN remain_width = " + slotWidth + " THEN 1 ELSE 0 END) / COUNT(device_id), 2)*100 AS percentage,SUM(CASE WHEN remain_width = " + slotWidth + " THEN 1 ELSE 0 END) AS count")
+                .eq("enable_state", Const.SLOT_ON)
                 .groupBy("device_id");
         List<Map<String, Object>> bigStorageCageUsages = baseMapper.selectMaps(wrapper);
 
@@ -281,4 +308,29 @@
         bigStorageCageWrapper.eq(BigStorageCage::getSlot, slot);
         baseMapper.update(bigStorageCage, bigStorageCageWrapper);
     }
+
+    @Override
+    public List<Integer> queryFreeDeviceByUsed(double thickness) {
+        return baseMapper.queryFreeDeviceByUsed(thickness);
+    }
+
+    @Override
+    public List<BigStorageSummaryDTO> selectBigStorageSummary() {
+        return baseMapper.selectBigStorageSummary();
+    }
+
+    @Override
+    public Boolean resetCage() {
+        double slotWidth = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_SLOT_WIDTH);
+        bigStorageCageDetailsMapper.delete(Wrappers.<BigStorageCageDetails>lambdaQuery().eq(BigStorageCageDetails::getState, Const.GLASS_STATE_NEW));
+        this.update(new LambdaUpdateWrapper<BigStorageCage>().set(BigStorageCage::getRemainWidth, slotWidth)
+                .notInSql(BigStorageCage::getSlot, "select distinct slot from big_storage_cage_details where state in ( 100, 102, 103, 104)"));
+        return Boolean.TRUE;
+    }
+
+    @Override
+    public List<PieChartVO> queryPieChart() {
+        return baseMapper.queryPieChart();
+    }
+
 }

--
Gitblit v1.8.0