From 75b98831417be414bc43e1832479d05d20cf6ac3 Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期四, 13 三月 2025 16:44:06 +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/HollowGlassRelationInfoServiceImpl.java |   63 +++++++++++++++++++++++++++++++
 1 files changed, 62 insertions(+), 1 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 88f22a2..a43235c 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
@@ -192,7 +192,7 @@
     public void generateHollowGlassInfo(String flowCardId, int totalLayer, int layer) {
 
         GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getFlowCardId, flowCardId)
-                .eq(GlassInfo::getLayer, layer).last("limit 1"));
+                .eq(GlassInfo::getLayer, layer).orderByDesc(GlassInfo::getId).last("limit 1"));
         if (null == glassInfo) {
             log.info("褰撳墠娴佺▼鍗′俊鎭负瀵煎叆mes绯荤粺娴佺▼鍗★細{}锛屽眰鏁皗}", flowCardId, layer);
             return;
@@ -307,10 +307,71 @@
             HollowBigStorageCageDetails cageDetails = v.get(0);
             dtos.addAll(hollowBigStorageCageDetailsService.hollowIsAll(e, cageDetails.getTotalLayer(), Boolean.FALSE));
         });
+        Map<String, FlowCardGlassInfoDTO> result = dtos.stream()
+                .collect(Collectors.toMap(
+                        FlowCardGlassInfoDTO::getFlowCardId,
+                        dto -> {
+                            FlowCardGlassInfoDTO newDto = new FlowCardGlassInfoDTO();
+                            newDto.setFlowCardId(dto.getFlowCardId());
+                            newDto.setSumCount(dto.getSumCount());
+                            newDto.setPairCount(dto.getPairCount());
+                            newDto.setRealCount(dto.getRealCount());
+                            newDto.setLayer(dto.getLayer());
+                            return newDto;
+                        },
+                        (dto1, dto2) -> {
+                            dto1.setRealCount(dto1.getRealCount() + dto2.getRealCount()); // 绱姞 realCount
+                            dto1.setLayer(Math.max(dto1.getLayer(),dto2.getLayer())); // 绱姞 鏈�澶у眰鏁�
+                            return dto1; // 杩斿洖鍚堝苟鍚庣殑瀵硅薄
+                        }
+                ));
         return dtos.stream().collect(Collectors.groupingBy(FlowCardGlassInfoDTO::getFlowCardId));
     }
 
     @Override
+    public List<FlowCardGlassInfoDTO> queryHollowAllFlowCardSummary(HollowBigStorageDetailsQueryVO query) {
+        List<HollowBigStorageCageDetails> detailsList = hollowBigStorageCageDetailsService.list(new LambdaQueryWrapper<HollowBigStorageCageDetails>()
+                .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())
+                .eq(query.getThickness() != 0, HollowBigStorageCageDetails::getThickness, query.getThickness())
+                .orderByAsc(HollowBigStorageCageDetails::getFlowCardId)
+        );
+        if (CollectionUtil.isEmpty(detailsList)) {
+            log.info("绗煎唴鏃犵幓鐠�");
+            return null;
+        }
+        Map<String, List<HollowBigStorageCageDetails>> listMap = detailsList.stream().collect(Collectors.groupingBy(HollowBigStorageCageDetails::getFlowCardId));
+        List<FlowCardGlassInfoDTO> dtos = new ArrayList<>();
+        listMap.forEach((e, v) -> {
+            HollowBigStorageCageDetails cageDetails = v.get(0);
+            dtos.addAll(hollowBigStorageCageDetailsService.hollowIsAll(e, cageDetails.getTotalLayer(), Boolean.FALSE));
+        });
+        Map<String, FlowCardGlassInfoDTO> result = dtos.stream()
+                .collect(Collectors.toMap(
+                        FlowCardGlassInfoDTO::getFlowCardId,
+                        dto -> {
+                            FlowCardGlassInfoDTO newDto = new FlowCardGlassInfoDTO();
+                            newDto.setFlowCardId(dto.getFlowCardId());
+                            newDto.setSumCount(dto.getSumCount());
+                            newDto.setPairCount(dto.getPairCount());
+                            newDto.setRealCount(dto.getRealCount());
+                            newDto.setLayer(dto.getLayer());
+                            newDto.setSlotCount(dto.getSlotCount());
+                            return newDto;
+                        },
+                        (dto1, dto2) -> {
+                            dto1.setRealCount(dto1.getRealCount() + dto2.getRealCount()); // 绱姞 realCount
+                            dto1.setLayer(Math.max(dto1.getLayer(),dto2.getLayer())); // 绱姞 鏈�澶у眰鏁�
+                            dto1.setSlotCount(dto1.getSlotCount() + dto2.getSlotCount());
+                            return dto1; // 杩斿洖鍚堝苟鍚庣殑瀵硅薄
+                        }
+                ));
+        List<FlowCardGlassInfoDTO> resultList = new ArrayList<>(result.values());
+        return resultList;
+    }
+
+    @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));

--
Gitblit v1.8.0