From d3df1630ad3e1c71b61d177ee818d5c5c94e97c0 Mon Sep 17 00:00:00 2001
From: wangfei <3597712270@qq.com>
Date: 星期六, 11 十月 2025 18:45:29 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10105/r/YiWuProject

---
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassOutRelationInfoServiceImpl.java |   77 ++++++++++++++++++++++++--------------
 1 files changed, 49 insertions(+), 28 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 14d0ff2..1a8c6d6 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;
@@ -24,6 +25,7 @@
 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;
@@ -33,8 +35,9 @@
 import freemarker.template.Version;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Value;
+import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.io.*;
@@ -62,24 +65,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);
     }
@@ -88,6 +95,12 @@
     public Boolean dispatchHollowSwitch(Boolean flag) {
         redisUtil.setCacheObject("dispatchHollowSwitch", flag);
         return redisUtil.getCacheObject("dispatchHollowSwitch");
+    }
+
+    @Override
+    public Boolean priorityHollowSwitch(Boolean flag) {
+        redisUtil.setCacheObject("priorityHollowSwitch", flag);
+        return redisUtil.getCacheObject("priorityHollowSwitch");
     }
 
     @Override
@@ -103,44 +116,44 @@
     }
 
     @Override
-    public List<HollowGlassQueueInfo> appointHollowTaskDetails(String flowCardId, int cell) {
+    public Map<String, List<HollowGlassQueueInfo>> appointHollowTaskDetails(int cell) {
         //鎸夌収娴佺▼鍗″強璺嚎锛屾煡鎵惧搴旂殑浠诲姟淇℃伅
-        HollowGlassOutRelationInfo hollowGlassOutRelationInfo = this.getOne(new LambdaQueryWrapper<HollowGlassOutRelationInfo>()
+        List<HollowGlassOutRelationInfo> hollowGlassOutRelationInfos = this.list(new LambdaQueryWrapper<HollowGlassOutRelationInfo>()
                 .in(HollowGlassOutRelationInfo::getState, Const.HOLLOW_FLOW_CARD_NEW, Const.HOLLOW_FLOW_CARD_START, Const.HOLLOW_FLOW_CARD_PAUSE)
-                .eq(HollowGlassOutRelationInfo::getFlowCardId, flowCardId)
-                .eq(HollowGlassOutRelationInfo::getCell, cell).last("limit 1"));
-        if (null == hollowGlassOutRelationInfo) {
-            return new ArrayList<HollowGlassQueueInfo>();
+                .eq(HollowGlassOutRelationInfo::getCell, cell));
+        if (CollectionUtil.isEmpty(hollowGlassOutRelationInfos)) {
+            return null;
         }
+        List<Long> ids = hollowGlassOutRelationInfos.stream()
+                .map(HollowGlassOutRelationInfo::getId) // 鎻愬彇姣忎釜鍏冪礌鐨刬d
+                .collect(Collectors.toList());
         //鎸夌収浠诲姟id鏌ヨ瀵瑰垪琛ㄤ腑鐨勯槦鍒椾俊鎭�
-        return hollowGlassQueueInfoService.list(new LambdaQueryWrapper<HollowGlassQueueInfo>()
-                .eq(HollowGlassQueueInfo::getRelationId, hollowGlassOutRelationInfo.getId()));
+        List<HollowGlassQueueInfo> hollowGlassQueueInfos = hollowGlassQueueInfoService.list(new LambdaQueryWrapper<HollowGlassQueueInfo>()
+                .in(HollowGlassQueueInfo::getRelationId, ids)
+                .orderByAsc(HollowGlassQueueInfo::getId));
+        Map<String, List<HollowGlassQueueInfo>> groupedByFlowCardId = hollowGlassQueueInfos.stream()
+                .collect(Collectors.groupingBy(
+                        HollowGlassQueueInfo::getFlowCardId,
+                        LinkedHashMap::new,
+                        Collectors.toList()
+                ));
+        return groupedByFlowCardId;
     }
 
     @Override
-    public Boolean startTask(String flowCardId, int cell) {
-        log.info("鏌ョ湅璇ユ祦绋嬪崱鏄惁鐢辨鍦ㄦ墽琛岀殑浠诲姟锛屾祦绋嬪崱锛歿}", flowCardId);
-        int taskCount = this.count(new LambdaQueryWrapper<HollowGlassOutRelationInfo>()
-                .in(HollowGlassOutRelationInfo::getState, Const.HOLLOW_FLOW_CARD_NEW, Const.HOLLOW_FLOW_CARD_START, Const.HOLLOW_FLOW_CARD_PAUSE)
-                .eq(HollowGlassOutRelationInfo::getFlowCardId, flowCardId));
-        if (taskCount == 0 || taskCount > 1) {
-            log.info("璇ユ祦绋嬪崱涓嶅瓨鍦ㄤ换鍔℃垨鑰呮湁姝e湪鎵ц涓紝鏃犳硶鍐嶆鎵ц");
-            return Boolean.FALSE;
-        }
+    public Boolean startTask(int cell) {
         //鏇存柊浠诲姟鐘舵�佷负寮�濮�
         return this.update(new LambdaUpdateWrapper<HollowGlassOutRelationInfo>()
                 .set(HollowGlassOutRelationInfo::getState, Const.HOLLOW_FLOW_CARD_START)
-                .eq(HollowGlassOutRelationInfo::getFlowCardId, flowCardId)
                 .ne(HollowGlassOutRelationInfo::getState, Const.HOLLOW_FLOW_CARD_SUCCESS)
                 .eq(HollowGlassOutRelationInfo::getCell, cell));
     }
 
     @Override
-    public Boolean pauseTask(String flowCardId, int cell) {
+    public Boolean pauseTask(int cell) {
 //        鏇存柊浠诲姟鐘舵�佷负鏆傚仠
         return this.update(new LambdaUpdateWrapper<HollowGlassOutRelationInfo>()
                 .set(HollowGlassOutRelationInfo::getState, Const.HOLLOW_FLOW_CARD_PAUSE)
-                .eq(HollowGlassOutRelationInfo::getFlowCardId, flowCardId)
                 .ne(HollowGlassOutRelationInfo::getState, Const.HOLLOW_FLOW_CARD_SUCCESS)
                 .eq(HollowGlassOutRelationInfo::getCell, cell));
     }
@@ -330,6 +343,12 @@
         return this.page(page, wrapper);
     }
 
+    @Override
+    @Cacheable(value = "orderDetails", key = "#flowCardId")
+    public OrderDetailsDTO queryProductNameByFlowCardId(String flowCardId) {
+        log.info("鏌ヨ鏁版嵁搴撲竴娆★細{}", flowCardId);
+        return baseMapper.queryProductNameByFlowCardId(flowCardId);
+    }
 
     private HollowGlassOutRelationInfo childrenTask(HollowTaskRequest request, int isForce) {
         GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getFlowCardId, request.getFlowCardId()).last("limit 1"));
@@ -359,7 +378,9 @@
                 .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));
@@ -428,7 +449,7 @@
     }
 
     @Override
-    public List<PieChartVO> queryPieChart(){
+    public List<PieChartVO> queryPieChart() {
         return baseMapper.queryPieChart();
     }
 }

--
Gitblit v1.8.0