From b7bbb981103d865be75a16b95d188326015b8aa6 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期五, 06 六月 2025 13:54:28 +0800
Subject: [PATCH] 1、系统配置表新增钢化/中空间隙配置 2、钢化/中空新增厚度选择,按照厚度自动匹配对应的间隙,完成进入格子的片数的要求

---
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassOutRelationInfoServiceImpl.java |   58 ++++++++++++++++++++++++++++++++++------------------------
 1 files changed, 34 insertions(+), 24 deletions(-)

diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassOutRelationInfoServiceImpl.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassOutRelationInfoServiceImpl.java
index e237003..2de2d63 100644
--- a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassOutRelationInfoServiceImpl.java
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassOutRelationInfoServiceImpl.java
@@ -7,6 +7,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 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.hollow.controller.HollowBigStorageCageController;
@@ -23,6 +24,8 @@
 import com.mes.hollow.service.HollowGlassRelationInfoService;
 import com.mes.hollowqueue.entity.HollowGlassQueueInfo;
 import com.mes.hollowqueue.service.HollowGlassQueueInfoService;
+import com.mes.largenscreen.entity.PieChartVO;
+import com.mes.sysconfig.service.SysConfigService;
 import com.mes.tools.DateUtil;
 import com.mes.utils.Blank;
 import com.mes.utils.RedisUtil;
@@ -32,8 +35,8 @@
 import freemarker.template.Version;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.io.*;
@@ -61,24 +64,28 @@
     HollowFormulaDetailsService hollowFormulaDetailsService;
     @Resource
     HollowGlassRelationInfoService hollowGlassRelationInfoService;
+    @Resource
+    SysConfigService sysConfigService;
 
     @Resource
     RedisUtil redisUtil;
 
-    @Value("${mes.glassGap}")
-    private Integer glassGap;
-
-    @Value("${mes.carWidth}")
-    private Integer carWidth;
+//    @Value("${mes.glassGap}")
+//    private Integer glassGap;
+//
+//    @Value("${mes.carWidth}")
+//    private Integer carWidth;
 
     private static final int ID_RATIO = 10;
 
     @Override
+    @Transactional
     public HollowGlassOutRelationInfo receiveTask(HollowTaskRequest request) {
         return childrenTask(request, 0);
     }
 
     @Override
+    @Transactional
     public HollowGlassOutRelationInfo forceOutGlass(HollowTaskRequest request) {
         return childrenTask(request, 1);
     }
@@ -213,14 +220,16 @@
 
         //璁剧疆鏂囦欢绗竴灞傚垪琛ㄦ暟鎹�
         //鏆傛椂鐢熸垚绗煎唴鎵�鏈夌殑鐜荤拑淇℃伅锛堝凡閰嶅鍜屾湭閰嶅鐨勶級
-//        List<HollowGlassRelationInfo> hollowGlassRelationInfos = hollowGlassRelationInfoService.list(new LambdaQueryWrapper<HollowGlassRelationInfo>()
-//                .eq(HollowGlassRelationInfo::getFlowCardId, flowCardId).orderByAsc(HollowGlassRelationInfo::getHollowSequence));
         List<HollowBigStorageCageDetails> hollowGlassRelationInfos = hollowBigStorageCageDetailsService.queryPairGlassList(flowCardId, relationInfo.getTotalLayer(), relationInfo.getTotalPairQuantity(), isOut);
-        Map<Integer, List<HollowBigStorageCageDetails>> listMap = hollowGlassRelationInfos.stream().collect(Collectors.groupingBy(HollowBigStorageCageDetails::getHollowSequence));
-
+        Map<Integer, List<HollowBigStorageCageDetails>> listMap = hollowGlassRelationInfos.stream()
+                .collect(Collectors.groupingBy(HollowBigStorageCageDetails::getHollowSequence,
+                        Collectors.collectingAndThen(Collectors.toList(),
+                                list -> list.stream().sorted(Comparator.comparing(HollowBigStorageCageDetails::getLayer)).collect(Collectors.toList()))));
+        Map<Integer, List<HollowBigStorageCageDetails>> sortListMap = new TreeMap<>();
+        sortListMap.putAll(listMap);
         //璁剧疆闂撮殧鏉挎暟鎹叡鎵�鏈夐厤瀵圭幓鐠冧娇鐢�
         List<LisecHollowGlassAndFrameDetails> glassAndFrameList = new ArrayList<>();
-        listMap.forEach((e, v) -> {
+        sortListMap.forEach((e, v) -> {
             LisecHollowGlassAndFrameDetails glassAndFrame = new LisecHollowGlassAndFrameDetails();
             List<LisecHollowGlassDetails> glassList = new ArrayList<>();
             List<LisecHollowFrameDetails> frameList = new ArrayList<>();
@@ -281,10 +290,7 @@
             glassAndFrame.setFrameList(frameList);
             glassAndFrameList.add(glassAndFrame);
         });
-        Collections.sort(glassAndFrameList, (s1, s2) -> Integer.parseInt(s1.getItemNum()) - Integer.parseInt(s2.getItemNum()));
         details.setGlassAndFrameList(glassAndFrameList);
-
-
         Configuration cfg = new Configuration(new Version("2.3.29"));
         cfg.setClassForTemplateLoading(HollowBigStorageCageController.class, "/templates/");
         // 鍒涘缓Calculator瀹炰緥
@@ -359,12 +365,15 @@
                 .queryOutGlassList(request.getFlowCardId(), request.getCell());
         int isPairCount = glassInfo.getTotalLayer() * request.getTotalPairQuantity();
         List<HollowGlassQueueInfo> hollowQueues = new ArrayList<>();
-
+        Integer carWidth = sysConfigService.queryConfigValue(ConstSysConfig.HOLLOW_CAR_WIDTH);
+//        Integer glassGap = sysConfigService.queryConfigValue(ConstSysConfig.HOLLOW_GLASS_GAP);
+        Integer glassGap = hollowGlassRelationInfoService.getGlassGapByThickness(hollowBigStorageCageDetailsList.get(0).getThickness());
         if (930 == request.getCell()) {
             Map<Integer, List<HollowBigStorageCageDetails>> listMap = hollowBigStorageCageDetailsList.stream()
                     .collect(Collectors.groupingBy(HollowBigStorageCageDetails::getHollowSequence));
-            List<List<HollowGlassQueueInfo>> disorderList = new ArrayList<>();
-            for (Map.Entry<Integer, List<HollowBigStorageCageDetails>> entry : listMap.entrySet()) {
+            Map<Integer, List<HollowBigStorageCageDetails>> sortListMap = new TreeMap<>();
+            sortListMap.putAll(listMap);
+            for (Map.Entry<Integer, List<HollowBigStorageCageDetails>> entry : sortListMap.entrySet()) {
                 //鍒涘缓闃熷垪鎺ユ敹涓嶆弧瓒虫垚瀵规儏鍐典笅锛氫竴瀵圭幓鐠冨垎鍑犳涓婅溅鐨勬搴忛棶棰�
                 List<HollowGlassQueueInfo> tempList = new ArrayList<>();
                 //鍏堝皢鐜荤拑鎸夌収姝e父椤哄簭鎺掑垪锛岃绠椾竴杞︽渶澶氭斁鍑犲潡锛岀畻濂藉潡鏁颁箣鍚庡皢涓�杞︾殑鐜荤拑鎸夌収鍊掑簭瀛樺偍
@@ -373,7 +382,7 @@
                 for (HollowBigStorageCageDetails item : reverse) {
                     remainWidth = remainWidth - (int) Math.max(item.getWidth(), item.getHeight());
                     if (remainWidth < 0) {
-                        disorderList.add(CollectionUtil.reverse(tempList));
+                        hollowQueues.addAll(CollectionUtil.reverse(tempList));
                         tempList = new ArrayList<>();
                         remainWidth = carWidth - (int) Math.max(item.getWidth(), item.getHeight());
                     }
@@ -381,7 +390,7 @@
                     tempList.add(queueInfo);
                     remainWidth = remainWidth - glassGap;
                 }
-                disorderList.add(CollectionUtil.reverse(tempList));
+                hollowQueues.addAll(CollectionUtil.reverse(tempList));
                 HollowBigStorageCageDetails cageDetails = entry.getValue().get(0);
                 if (cageDetails.getIsPair() == 1) {
                     isPairCount = isPairCount - cageDetails.getTotalLayer();
@@ -390,11 +399,7 @@
                     }
                 }
             }
-            //闃叉鐜荤拑涓┖绾跨幓鐠冩棤搴忥紝灏嗙幓鐠冩寜鐓ч『搴忛噸鏂版帓搴�
-            Collections.sort(disorderList, (s1, s2) -> s1.get(0).getHollowSequence() - s2.get(0).getHollowSequence());
-            for (List<HollowGlassQueueInfo> list : disorderList) {
-                hollowQueues.addAll(list);
-            }
+
         } else {
             loop:
             for (HollowBigStorageCageDetails item : hollowBigStorageCageDetailsList) {
@@ -429,5 +434,10 @@
         queueInfo.setUpdateTime(new Date());
         return queueInfo;
     }
+
+    @Override
+    public List<PieChartVO> queryPieChart() {
+        return baseMapper.queryPieChart();
+    }
 }
 

--
Gitblit v1.8.0