From 82ae4f5a83ffaadc6c7f37c19050400156eb8a9e Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期六, 28 十二月 2024 21:56:20 +0800
Subject: [PATCH] 1、中空大理片笼详情页新增删除、破损、拿走操作按钮接口 2、理片笼进片任务计算目标格子优化:笼子进笼将格子分组求笼内最大组序,确保中间块玻璃破损后仍能进入,导致玻璃错乱的情况

---
 hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java |   41 ++++++++++++++++++++++++++++++++---------
 1 files changed, 32 insertions(+), 9 deletions(-)

diff --git a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java
index cafa468..4aa8a57 100644
--- a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java
+++ b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java
@@ -3,6 +3,7 @@
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.lang.Assert;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.mes.common.config.Const;
 import com.mes.glassinfo.entity.GlassInfo;
@@ -14,6 +15,7 @@
 import com.mes.hollow.entity.dto.HollowBigStorageDTO;
 import com.mes.hollow.entity.dto.HollowGlassDetailsDTO;
 import com.mes.hollow.entity.dto.LackDetailsDTO;
+import com.mes.hollow.entity.vo.HollowBigStorageDetailsQueryVO;
 import com.mes.hollow.mapper.HollowGlassRelationInfoMapper;
 import com.mes.hollow.service.HollowBigStorageCageDetailsService;
 import com.mes.hollow.service.HollowBigStorageCageService;
@@ -84,15 +86,16 @@
                     .last("limit 1")
             );
         }
-        HollowBigStorageCageDetails hollowDetails = hollowBigStorageCageDetailsService.getOne(new LambdaQueryWrapper<HollowBigStorageCageDetails>()
+        //璇︽儏琛ㄥ唴鑾峰彇鏈粍鏄惁宸茬粡鏈夌幓鐠冨湪绗煎瓙鍐咃紙0琛ㄧず鎻愬墠鍗犵敤锛�
+        List<HollowBigStorageCageDetails> hollowDetailsList = hollowBigStorageCageDetailsService.list(new LambdaQueryWrapper<HollowBigStorageCageDetails>()
                 .eq(HollowBigStorageCageDetails::getFlowCardId, relationInfoOne.getFlowCardId())
                 .eq(HollowBigStorageCageDetails::getTotalLayer, totalLayer)
                 .eq(HollowBigStorageCageDetails::getLayer, layer)
                 .eq(HollowBigStorageCageDetails::getVirtualSlot, relationInfoOne.getVirtualSlot())
-                .in(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL_ZERO)
-                .orderByDesc(HollowBigStorageCageDetails::getSequence).last("limit 1"));
+                .in(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL_ZERO));
         HollowBigStorageCage storageCage = null;
-        if (null == hollowDetails) {
+        //濡傛灉涓嶅瓨鍦ㄥ垯閫夋嫨绗煎唴鏈敤鐨勬柊鏍煎瓙
+        if (CollectionUtil.isEmpty(hollowDetailsList)) {
             storageCage = hollowBigStorageCageService.getOne(new LambdaQueryWrapper<HollowBigStorageCage>()
                     .eq(HollowBigStorageCage::getEnableState, Const.SLOT_ON).eq(HollowBigStorageCage::getRemainWidth, slotWidth)
                     .le(HollowBigStorageCage::getMinThickness, relationInfoOne.getThickness())
@@ -103,6 +106,7 @@
             BeanUtils.copyProperties(relationInfoOne, storageDTO);
             return storageDTO;
         }
+        //鑾峰彇褰撳墠缁勫湪绗煎瓙鍐呯殑鏍煎瓙鍙凤紙鎸夌収缁勫唴搴忓彿-1璁$畻 濡傛灉娌℃湁鍒欐柊寮�涓�鏍硷級
         HollowGlassRelationInfo relationInfoBefore = hollowGlassRelationInfoService.getOne(new LambdaQueryWrapper<HollowGlassRelationInfo>()
                 .eq(HollowGlassRelationInfo::getFlowCardId, relationInfoOne.getFlowCardId())
                 .eq(HollowGlassRelationInfo::getTotalLayer, relationInfoOne.getTotalLayer())
@@ -110,19 +114,20 @@
                 .eq(HollowGlassRelationInfo::getVirtualSlot, relationInfoOne.getVirtualSlot())
                 .eq(HollowGlassRelationInfo::getSlotSequence, relationInfoOne.getSlotSequence() - 1));
         if (null == relationInfoBefore) {
-            //琛ㄧず搴忓彿娌℃湁鎴栬��  搴忓彿涓�1鍙堜笉鏄涓�鍧楁潵鐨� 鏂板紑涓�鏍�
             storageCage = hollowBigStorageCageService.getOne(new LambdaQueryWrapper<HollowBigStorageCage>()
                     .eq(HollowBigStorageCage::getEnableState, Const.SLOT_ON).eq(HollowBigStorageCage::getRemainWidth, slotWidth)
                     .le(HollowBigStorageCage::getMinThickness, relationInfoOne.getThickness())
                     .ge(HollowBigStorageCage::getMaxThickness, relationInfoOne.getThickness())
                     .orderByAsc(HollowBigStorageCage::getMaxThickness).last("limit 1"));
         } else {
+            //鑾峰彇璇︽儏琛ㄧ粍鍐呭墠涓�鐗囩幓鐠冪殑绗煎唴璇︽儏鏁版嵁
             HollowBigStorageCageDetails beforeGlass = hollowBigStorageCageDetailsService.getOne(new LambdaQueryWrapper<HollowBigStorageCageDetails>()
                     .in(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL_ZERO)
                     .eq(HollowBigStorageCageDetails::getEngineerId, relationInfoBefore.getEngineerId())
                     .eq(HollowBigStorageCageDetails::getTemperingLayoutId, relationInfoBefore.getTemperingLayoutId())
                     .eq(HollowBigStorageCageDetails::getTemperingFeedSequence, relationInfoBefore.getTemperingFeedSequence())
             );
+            //鏀圭粍鍦ㄧ鍐呮湁鐜荤拑浣嗘槸鍓嶄竴鍧楃幓鐠冩病鏈夛細鍘熷洜 鐜荤拑鐮存崯澶勭悊
             if (null == beforeGlass) {
                 storageCage = hollowBigStorageCageService.getOne(new LambdaQueryWrapper<HollowBigStorageCage>()
                         .eq(HollowBigStorageCage::getEnableState, Const.SLOT_ON).eq(HollowBigStorageCage::getRemainWidth, slotWidth)
@@ -130,8 +135,23 @@
                         .ge(HollowBigStorageCage::getMaxThickness, relationInfoOne.getThickness())
                         .orderByAsc(HollowBigStorageCage::getMaxThickness).last("limit 1"));
             } else {
-                storageCage = hollowBigStorageCageService.getOne(new LambdaQueryWrapper<HollowBigStorageCage>()
-                        .eq(HollowBigStorageCage::getEnableState, Const.SLOT_ON).eq(HollowBigStorageCage::getSlot, beforeGlass.getSlot()));
+                //鍙栧嚭姣忕粍鐜荤拑鍗犵敤绗煎瓙鐨勬牸瀛愬苟璁$畻鏍煎瓙鍐呯殑鏈�澶х粍搴忓彿,閬垮厤鐜荤拑椤哄簭閿欎贡
+                List<HollowBigStorageCageDetails> hollowSequenceList = hollowBigStorageCageDetailsService
+                        .querySlotMaxSequence(beforeGlass.getFlowCardId(), beforeGlass.getTotalLayer(), beforeGlass.getLayer(), beforeGlass.getVirtualSlot());
+                for (HollowBigStorageCageDetails hollowBigStorageCageDetail : hollowSequenceList) {
+                    if (relationInfoOne.getSlotSequence() - 1 == hollowBigStorageCageDetail.getSequence()) {
+                        storageCage = hollowBigStorageCageService.getOne(new LambdaQueryWrapper<HollowBigStorageCage>()
+                                .eq(HollowBigStorageCage::getEnableState, Const.SLOT_ON).eq(HollowBigStorageCage::getSlot, beforeGlass.getSlot()));
+                        break;
+                    }
+                }
+                if (storageCage == null) {
+                    storageCage = hollowBigStorageCageService.getOne(new LambdaQueryWrapper<HollowBigStorageCage>()
+                            .eq(HollowBigStorageCage::getEnableState, Const.SLOT_ON).eq(HollowBigStorageCage::getRemainWidth, slotWidth)
+                            .le(HollowBigStorageCage::getMinThickness, relationInfoOne.getThickness())
+                            .ge(HollowBigStorageCage::getMaxThickness, relationInfoOne.getThickness())
+                            .orderByAsc(HollowBigStorageCage::getMaxThickness).last("limit 1"));
+                }
             }
         }
         Assert.isTrue(null != storageCage, "娌℃湁绌轰綑鐨勭瀛愬瓨鏀剧幓鐠�");
@@ -242,9 +262,12 @@
     }
 
     @Override
-    public Map<String, List<FlowCardGlassInfoDTO>> queryHollowAllFlowCard() {
+    public Map<String, List<FlowCardGlassInfoDTO>> queryHollowAllFlowCard(HollowBigStorageDetailsQueryVO query) {
         List<HollowBigStorageCageDetails> detailsList = hollowBigStorageCageDetailsService.list(new LambdaQueryWrapper<HollowBigStorageCageDetails>()
-                .eq(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN));
+                .eq(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN)
+                .like(StringUtils.isNotBlank(query.getFilmsId()), HollowBigStorageCageDetails::getFilmsId, query.getFilmsId())
+                .like(StringUtils.isNotBlank(query.getFlowCardId()), HollowBigStorageCageDetails::getFlowCardId, query.getFlowCardId())
+        );
         if (CollectionUtil.isEmpty(detailsList)) {
             log.info("绗煎唴鏃犵幓鐠�");
             return new HashMap<>();

--
Gitblit v1.8.0