From b03389088870daf55208b44f627a538df077e91b Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期六, 11 十月 2025 08:39:22 +0800
Subject: [PATCH] 1、中空部分直接查询ERP数据库修改为使用OrderServices

---
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java |   91 ++++++++++++++++++++++++++++++++-------------
 1 files changed, 65 insertions(+), 26 deletions(-)

diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java
index 09316c3..1ab8446 100644
--- a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java
@@ -7,6 +7,8 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.mes.common.config.Const;
 import com.mes.common.config.ConstSysConfig;
+import com.mes.damage.entity.request.DamageRequest;
+import com.mes.damage.service.DamageService;
 import com.mes.glassinfo.entity.GlassInfo;
 import com.mes.glassinfo.service.GlassInfoService;
 import com.mes.hollow.entity.HollowBigStorageCage;
@@ -21,6 +23,9 @@
 import com.mes.hollow.service.HollowBigStorageCageService;
 import com.mes.hollow.service.HollowGlassOutRelationInfoService;
 import com.mes.hollow.service.HollowGlassRelationInfoService;
+import com.mes.order.entity.HollowGlassDetailsDTO;
+import com.mes.order.entity.OrderDetailsDTO;
+import com.mes.order.service.OrdersService;
 import com.mes.sysconfig.service.SysConfigService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
@@ -28,10 +33,7 @@
 
 import javax.annotation.Resource;
 import java.math.BigInteger;
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -59,6 +61,10 @@
     HollowBigStorageCageDetailsService hollowBigStorageCageDetailsService;
     @Resource
     SysConfigService sysConfigService;
+    @Resource
+    DamageService damageService;
+    @Resource
+    OrdersService ordersService;
 //    @Value("${mes.slotWidth}")
 //    private Integer slotWidth;
 //    @Value("${mes.glassGap}")
@@ -68,12 +74,12 @@
 //    private Integer outCarMaxSize;
 
     @Override
-    public HollowBigStorageDTO queryHollowTargetSlot(String flowCardId, double width, double height, int totalLayer, int layer) {
+    public HollowBigStorageDTO queryHollowTargetSlot(String flowCardId, Integer glassType, double width, double height, int totalLayer, int layer) {
+        log.info("鐜荤拑娴佺▼鍗★細{}锛屽簭鍙凤細{}锛屾�诲眰鏁帮細{}锛屽眰鏁帮細{}", flowCardId, glassType, totalLayer, layer);
         //鎸夌収鐜荤拑淇℃伅鑾峰彇鍏崇郴琛ㄤ腑瀵瑰簲鐨勫ぇ鐞嗙墖绗兼牸瀛愬彿
         HollowGlassRelationInfo relationInfoOne = hollowGlassRelationInfoService.getOne(new LambdaQueryWrapper<HollowGlassRelationInfo>()
                 .eq(HollowGlassRelationInfo::getFlowCardId, flowCardId)
-                .eq(HollowGlassRelationInfo::getWidth, width)
-                .eq(HollowGlassRelationInfo::getHeight, height)
+                .eq(HollowGlassRelationInfo::getOrderSort, glassType)
                 .eq(HollowGlassRelationInfo::getTotalLayer, totalLayer)
                 .eq(HollowGlassRelationInfo::getLayer, layer)
                 .eq(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_NEW)
@@ -95,14 +101,16 @@
             //铏氭嫙浣嶇疆琛ㄦ病鏈夋湰宸ョ▼涓嬬殑鎵�鏈夌幓鐠冭櫄鎷熶俊鎭紝鎸夌収鐜荤拑id鐢熸垚鏈伐绋嬩笅鎵�鏈夌幓鐠冪殑铏氭嫙淇℃伅
             relationInfoOne = this.getOne(new LambdaQueryWrapper<HollowGlassRelationInfo>()
                     .eq(HollowGlassRelationInfo::getFlowCardId, flowCardId)
-                    .eq(HollowGlassRelationInfo::getWidth, width)
-                    .eq(HollowGlassRelationInfo::getHeight, height)
+                    .eq(HollowGlassRelationInfo::getOrderSort, glassType)
                     .eq(HollowGlassRelationInfo::getTotalLayer, totalLayer)
                     .eq(HollowGlassRelationInfo::getLayer, layer)
                     .eq(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_NEW)
                     .orderByAsc(HollowGlassRelationInfo::getHollowSequence)
                     .last("limit 1")
             );
+        }
+        if (null == relationInfoOne) {
+            throw new RuntimeException("鐩稿叧娴佺▼鍗℃湭鎵惧埌瀵瑰簲鐨勭粍鍙蜂俊鎭紝鐜荤拑娴佺▼鍗★細" + flowCardId + "锛屽簭鍙凤細" + glassType + "锛屾�诲眰鏁帮細" + totalLayer + "锛屽眰鏁帮細" + layer);
         }
         Integer slotWidth = sysConfigService.queryConfigValue(ConstSysConfig.HOLLOW_SLOT_WIDTH);
         //璇︽儏琛ㄥ唴鑾峰彇鏈粍鏄惁宸茬粡鏈夌幓鐠冨湪绗煎瓙鍐咃紙0琛ㄧず鎻愬墠鍗犵敤锛�
@@ -204,13 +212,13 @@
             return;
         }
         //鎸夌収娴佺▼鍗¤幏鍙栨湰娴佺▼鍗℃渶鍚庝竴灞傛垨绗竴娆$殑鐜荤拑鏁版嵁
-        List<HollowGlassDetailsDTO> glassDetailsDTOS = this.baseMapper.queryFlowCardIdMaxLayerGlassInfo(flowCardId, totalLayer);
+        List<HollowGlassDetailsDTO> glassDetailsDTOS = ordersService.queryFlowCardIdMaxLayerGlassInfo(flowCardId, totalLayer);
         if (CollectionUtil.isEmpty(glassDetailsDTOS)) {
             log.info("褰撳墠娴佺▼鍗℃渶澶栧眰鏁版嵁鏈壘鍒帮紝璇峰湪erp纭鏁版嵁鏃犺锛屾祦绋嬪崱锛歿}锛屾�诲眰鏁皗}", flowCardId, totalLayer);
             return;
         }
         if (totalLayer != layer) {
-            glassDetailsDTOS = this.baseMapper.queryFlowCardIdLayerGlassInfo(flowCardId, totalLayer, layer);
+            glassDetailsDTOS = ordersService.queryFlowCardIdLayerGlassInfo(flowCardId, totalLayer, layer);
         }
         if (CollectionUtil.isEmpty(glassDetailsDTOS)) {
             log.info("褰撳墠娴佺▼鍗℃渶澶栧眰鏁版嵁鏈壘鍒帮紝璇峰湪erp纭鏁版嵁鏃犺锛屾祦绋嬪崱锛歿}锛屾�诲眰鏁皗},灞傛暟{}", flowCardId, totalLayer, layer);
@@ -252,7 +260,7 @@
 
         Integer slotWidth = sysConfigService.queryConfigValue(ConstSysConfig.HOLLOW_SLOT_WIDTH);
 //        Integer glassGap = sysConfigService.queryConfigValue(ConstSysConfig.HOLLOW_GLASS_GAP);
-        Integer glassGap = getGlassGapByThickness(tempGlassList.get(0).getThickness());
+        Integer glassGap = getGlassGapByThickness(glassInfo.getThickness());
         Integer outCarMaxSize = sysConfigService.queryConfigValue(ConstSysConfig.HOLLOW_OUT_CAR_SIZE);
         List<HollowGlassRelationInfo> relationInfoList = new ArrayList();
         List<List<HollowGlassRelationInfo>> tempHollowList = new ArrayList<>();
@@ -301,6 +309,8 @@
 
     @Override
     public List<HollowAllFlowCardVO> queryHollowAllFlowCard(HollowBigStorageDetailsQueryVO query) {
+        Date startDate = new Date();
+        log.info("寮�濮嬫煡璇腑绌烘祦绋嬪崱浠诲姟淇℃伅锛屽紑濮嬫椂闂磠}", startDate);
         List<HollowBigStorageCageDetails> detailsList = hollowBigStorageCageDetailsService.list(new LambdaQueryWrapper<HollowBigStorageCageDetails>()
                 .eq(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN)
                 .like(StringUtils.isNotBlank(query.getFilmsId()), HollowBigStorageCageDetails::getFilmsId, query.getFilmsId())
@@ -312,6 +322,8 @@
             log.info("绗煎唴鏃犵幓鐠�");
             return new ArrayList<>();
         }
+        Date middleDate = new Date();
+        log.info("涓┖鐞嗙墖绗艰鎯呮暟鎹凡鏌ヨ瀹屾瘯锛岃�楁椂:{}ms", middleDate.getTime() - startDate.getTime());
         Map<String, List<HollowBigStorageCageDetails>> listMap = detailsList.stream().collect(Collectors.groupingBy(HollowBigStorageCageDetails::getFlowCardId));
         List<HollowAllFlowCardVO> resultList = new ArrayList<>();
         AtomicInteger pairTotalCount = new AtomicInteger();
@@ -319,23 +331,26 @@
             HollowAllFlowCardVO hollowAllFlowCardVO = new HollowAllFlowCardVO();
             HollowBigStorageCageDetails cageDetails = v.get(0);
             //鎸夌収娴佺▼鍗¤幏鍙栧搴旂殑浜у搧鍚嶇О
-            OrderDetailsDTO orderDetails = baseMapper.queryProductNameByFlowCardId(cageDetails.getFlowCardId(), query.getProductName(), query.getCustomerName());
+            OrderDetailsDTO orderDetails = this.queryProductNameByFlowCardId(cageDetails.getFlowCardId(), query.getProductName(), query.getCustomerName());
             if (null != orderDetails) {
                 BeanUtils.copyProperties(orderDetails, hollowAllFlowCardVO);
                 hollowAllFlowCardVO.setFlowCardId(e);
-
                 if (cageDetails.getHollowSequence() == 0) {
                     hollowAllFlowCardVO.setIsThroughSlot(Boolean.TRUE);
                 } else {
                     hollowAllFlowCardVO.setIsThroughSlot(Boolean.FALSE);
                 }
                 List<FlowCardGlassInfoDTO> flowCardInfoList = hollowBigStorageCageDetailsService.hollowIsAll(e, cageDetails.getTotalLayer(), Boolean.FALSE);
-                hollowAllFlowCardVO.setFlowCardGlassInfoDTOList(flowCardInfoList);
-                pairTotalCount.addAndGet(flowCardInfoList.get(0).getPairCount());
-
+                log.info("鑾峰彇鍒扮殑娴佺▼鍗′俊鎭负:{}", flowCardInfoList);
+                if (CollectionUtil.isNotEmpty(flowCardInfoList)) {
+                    hollowAllFlowCardVO.setFlowCardGlassInfoDTOList(flowCardInfoList);
+                    pairTotalCount.addAndGet(flowCardInfoList.get(0).getPairCount());
+                }
                 resultList.add(hollowAllFlowCardVO);
             }
         });
+        Date endDate = new Date();
+        log.info("瀹㈡埛淇℃伅鏁版嵁宸叉煡璇㈠畬姣曪紝鑰楁椂:{}ms锛屾�昏鑰楁椂锛歿}ms", endDate.getTime() - middleDate.getTime(), endDate.getTime() - startDate.getTime());
         if (CollectionUtil.isEmpty(resultList)) {
             return new ArrayList<>();
         }
@@ -392,10 +407,9 @@
     }
 
     @Override
-    public Map<Integer, List<LackDetailsDTO>> queryLackByFlowCard(String flowCardId) {
-        List<LackDetailsDTO> lackDetailsList = this.baseMapper.queryLackByFlowCard(flowCardId);
-        Map<Integer, List<LackDetailsDTO>> listMap = lackDetailsList.stream().collect(Collectors.groupingBy(LackDetailsDTO::getLayer));
-        return listMap;
+    public List<LackDetailsDTO> queryLackByFlowCard() {
+        List<LackDetailsDTO> lackDetailsList = this.baseMapper.queryLackByFlowCard();
+        return lackDetailsList;
     }
 
     @Override
@@ -417,11 +431,36 @@
         }
         return sysConfigService.queryConfigValue(sysKey);
     }
-    //    @Override
-//    public List<LackDetailsDTO> queryLackByFlowCard(String flowCardId) {
-//        List<LackDetailsDTO> lackDetailsList = this.baseMapper.queryLackByFlowCard(flowCardId);
-//        return lackDetailsList;
-//    }
+
+    @Override
+    public Boolean hollowBigStorageGlassDamage(DamageRequest request) {
+        List<GlassInfo> glassInfos = glassInfoService.list(new LambdaQueryWrapper<GlassInfo>()
+                .eq(GlassInfo::getFlowCardId, request.getFlowCardId())
+                .eq(GlassInfo::getLayer, request.getLayer())
+                .eq(GlassInfo::getGlassType, request.getGlassType())
+                .eq(request.getGlassId() != null, GlassInfo::getGlassId, request.getGlassId())
+        );
+        for (GlassInfo glassInfo : glassInfos) {
+            //鎺扮墖鎶ョ牬鎹�
+            damageService.autoSubmitReport(glassInfo.getGlassId(), request.getLine(), request.getWorkingProcedure(), request.getRemark(), request.getState());
+        }
+        return Boolean.TRUE;
+    }
+
+    @Override
+    public List<GlassInfo> queryLackGlassByFlowCard(HollowBigStorageDetailsQueryVO query) {
+        return baseMapper.queryLackGlassByFlowCard(query.getFlowCardId(), query.getOrderSort(), query.getLayer());
+    }
+
+    @Override
+    public OrderDetailsDTO queryProductNameByFlowCardId(String flowCardId, String productName, String customerName) {
+        OrderDetailsDTO dto = hollowGlassOutRelationInfoService.queryProductNameByFlowCardId(flowCardId);
+        if ((StringUtils.isBlank(productName) || dto.getProductName().contains(productName)) && (StringUtils.isBlank(customerName) || dto.getCustomerName().contains(customerName))) {
+            return dto;
+        }
+        return null;
+    }
+
 
     private void sortFlowCardIdList(List<HollowAllFlowCardVO> list) {
         Pattern pattern = Pattern.compile("^NG(\\d+)([A-Za-z]+)(\\d+)$");

--
Gitblit v1.8.0