From c7093edbf1fb3c91107c457ea13935305e1a9458 Mon Sep 17 00:00:00 2001
From: 严智鑫 <test>
Date: 星期五, 05 七月 2024 14:58:50 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes

---
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java |  155 +++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 136 insertions(+), 19 deletions(-)

diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java
index 0696121..1b3d559 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java
@@ -3,12 +3,15 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.yulichang.query.MPJLambdaQueryWrapper;
 import com.github.yulichang.query.MPJQueryWrapper;
 
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
 import com.github.yulichang.toolkit.JoinWrappers;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.mes.common.config.Const;
 import com.mes.downstorage.entity.DownStorageCage;
 import com.mes.downstorage.entity.DownStorageCageDetails;
 import com.mes.downstorage.mapper.DownStorageCageDetailsMapper;
@@ -110,6 +113,7 @@
         return downStorageCageDetailsMapper.selectJoinMaps(JoinWrappers.lambda(DownStorageCageDetails.class) // 浣跨敤 JoinWrappers.lambda 鍒涘缓鑱斿悎鏌ヨ
                 .selectAll(DownStorageCageDetails.class) // 閫夋嫨鎵�鏈夊瓧娈�
                 .eq(DownStorageCage::getSlot, DownStorageCageDetails::getSlot) // 璁剧疆鍏宠仈鏉′欢
+                .eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN)
                 .orderByAsc(DownStorageCage::getSlot) // 鎸� slot 瀛楁鍗囧簭鎺掑簭
         );
     }
@@ -160,38 +164,58 @@
 //
 //    }
 
+  //  @Override
+//    public List<GlassInfo>  DirectConnection(){
+//        LambdaQueryWrapper<GlassInfo> queryWrapper2 = Wrappers.lambdaQuery();
+//        queryWrapper2.select(GlassInfo::getFlowCardId,
+//                GlassInfo::getGlassId,
+//                GlassInfo::getTemperingLayoutId,
+//                GlassInfo::getTemperingFeedSequence)
+//                .notInSql(GlassInfo::getGlassId, "SELECT glass_id FROM down_glass_info")
+//                .orderByAsc(GlassInfo::getTemperingLayoutId)
+//                .orderByDesc(GlassInfo::getTemperingFeedSequence)
+//                .last("LIMIT 1");
+//
+//        // 鏌ヨ GlassInfo 琛�
+//        log.info("鐩撮�氭煡璇�");
+//        return glassInfoMapper.selectList(queryWrapper2);
+//
+//    };
+
     @Override
-    public List<GlassInfo>  DirectConnection(){
-        LambdaQueryWrapper<GlassInfo> queryWrapper2 = Wrappers.lambdaQuery();
-        queryWrapper2.select(GlassInfo::getFlowCardId,
-                GlassInfo::getGlassId,
-                GlassInfo::getTemperingLayoutId,
-                GlassInfo::getTemperingFeedSequence)
+    public boolean DirectConnection(GlassInfo glassInfo) {
+        LambdaQueryWrapper<GlassInfo> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(GlassInfo::getGlassId, glassInfo.getGlassId())
                 .notInSql(GlassInfo::getGlassId, "SELECT glass_id FROM down_glass_info")
-                .orderByAsc(GlassInfo::getTemperingLayoutId)
-                .orderByDesc(GlassInfo::getTemperingFeedSequence)
+                .orderByDesc(GlassInfo::getGlassType)
+                .groupBy(GlassInfo::getFlowCardId)
                 .last("LIMIT 1");
 
-        // 鏌ヨ GlassInfo 琛�
-        log.info("鐩撮�氭煡璇�");
-        return glassInfoMapper.selectList(queryWrapper2);
+        // 鏌ヨ绗﹀悎鏉′欢鐨� GlassInfo 璁板綍鏁伴噺
+        int count = glassInfoMapper.selectCount(queryWrapper);
 
-    };
+        return count > 0;
+    }
 
-
-
+    @Override
+    public DownStorageCageDetails getGlassInfoMaxCount() {
+        return baseMapper.getGlassInfoMaxCount();
+    }
 
 
     @Override
     public List<DownStorageCageDetails> CacheOut1(int start, int end) {
 
 
-        List<DownStorageCageDetails> cageDetails = downStorageCageDetailsMapper.selectList(null);
+        // 鍒涘缓涓�涓� LambdaQueryWrapper 瀹炰緥
+        LambdaQueryWrapper<DownStorageCageDetails> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+// 鏉′欢 state=100
+        lambdaQueryWrapper.eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN);
+        List<DownStorageCageDetails> cageDetails = downStorageCageDetailsMapper.selectList(lambdaQueryWrapper);
         // Step 5: 鍒ゆ柇 down_storage_cage_details 缁撴灉鏁伴噺鏄惁涓�9锛屽鏋滄槸锛屽垯鎵ц鍙﹀涓�涓煡璇�
         if (cageDetails.size() == 9) {
             log.info("1銆佺瀛愭弧浜嗙殑鏃跺�欙紝鎸夌収绗煎唴鐗堝浘id 鐗堝浘鐗囧簭鍑�");
             List<DownWorkstation> workstationList = downWorkstationMapper.selectList(new QueryWrapper<DownWorkstation>().between("workstation_id", start, end));
-
 
             List<String> flowCardIds = new ArrayList<>();
             for (DownWorkstation workstation : workstationList) {
@@ -207,6 +231,7 @@
             anotherQueryWrapper.orderByAsc(DownStorageCageDetails::getTemperingLayoutId);
             anotherQueryWrapper.orderByDesc(DownStorageCageDetails::getTemperingFeedSequence);
             anotherQueryWrapper.in(DownStorageCageDetails::getFlowCardId, flowCardIds);
+            anotherQueryWrapper.eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN);
             anotherQueryWrapper.last("LIMIT 1");
             return downStorageCageDetailsMapper.selectList(anotherQueryWrapper);
         } else {
@@ -214,12 +239,10 @@
             // Step 1: 鏌ヨ DownWorkstation 琛ㄨ幏鍙栧搴� workstation_id 鐨� flow_card_id
             List<DownWorkstation> workstationList = downWorkstationMapper.selectList(new QueryWrapper<DownWorkstation>().between("workstation_id", start, end));
 
-
             List<String> flowCardIds = new ArrayList<>();
             for (DownWorkstation workstation : workstationList) {
                 flowCardIds.add(workstation.getFlowCardId());
             }
-
             if (flowCardIds.isEmpty()) {
                 log.error("2銆佹湭鎵惧埌瀵瑰簲鐨� flow_card_id");
                 return Collections.emptyList(); // 杩斿洖绌哄垪琛ㄦ垨鑰呮姏鍑哄紓甯革紝瑙嗘儏鍐佃�屽畾
@@ -246,7 +269,7 @@
             LambdaQueryWrapper<DownStorageCageDetails> cageDetailsQueryWrapper = Wrappers.lambdaQuery();
             cageDetailsQueryWrapper.in(DownStorageCageDetails::getGlassId, glassIds);
             cageDetailsQueryWrapper.in(DownStorageCageDetails::getFlowCardId, flowCardIds);
-
+            cageDetailsQueryWrapper.eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN);
             log.info("鎸夌収娴佺▼鍗$殑鐗堝浘id 鐗堝浘鐗囧簭鍑�");
             // Step 4: 鏌ヨ down_storage_cage_details 琛ㄥ苟杩斿洖缁撴灉
             return downStorageCageDetailsMapper.selectList(cageDetailsQueryWrapper);
@@ -256,4 +279,98 @@
     }
 
 
+
+
+        @Override
+        public List<DownStorageCageDetails> CacheOut2(int start, int end) {
+
+
+            // 鍒涘缓涓�涓� LambdaQueryWrapper 瀹炰緥
+            LambdaQueryWrapper<DownStorageCageDetails> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+// 鏉′欢 state=100
+            lambdaQueryWrapper.eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN);
+            List<DownStorageCageDetails> cageDetails = downStorageCageDetailsMapper.selectList(lambdaQueryWrapper);
+            // Step 5: 鍒ゆ柇 down_storage_cage_details 缁撴灉鏁伴噺鏄惁涓�9锛屽鏋滄槸锛屽垯鎵ц鍙﹀涓�涓煡璇�
+            if (cageDetails.size() == 9) {
+                log.info("1銆佺瀛愭弧浜嗙殑鏃跺�欙紝鎸夌収绗煎唴娴佺▼鍗¢『搴忓嚭 GlassType鐩墠鏄祦绋嬪崱涓殑椤哄簭");
+                List<DownWorkstation> workstationList = downWorkstationMapper.selectList(new QueryWrapper<DownWorkstation>().between("workstation_id", start, end));
+
+                List<String> flowCardIds = new ArrayList<>();
+                for (DownWorkstation workstation : workstationList) {
+                    flowCardIds.add(workstation.getFlowCardId());
+                }
+
+                if (flowCardIds.isEmpty()) {
+                    log.error("鏈壘鍒板搴旂殑 flow_card_id");
+                    return Collections.emptyList(); // 杩斿洖绌哄垪琛ㄦ垨鑰呮姏鍑哄紓甯革紝瑙嗘儏鍐佃�屽畾
+                }
+                LambdaQueryWrapper<DownStorageCageDetails> anotherQueryWrapper = Wrappers.lambdaQuery();
+
+                anotherQueryWrapper.orderByAsc(DownStorageCageDetails::getGlassType);
+                anotherQueryWrapper.in(DownStorageCageDetails::getFlowCardId, flowCardIds);
+                anotherQueryWrapper.eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN);
+                anotherQueryWrapper.last("LIMIT 1");
+                return downStorageCageDetailsMapper.selectList(anotherQueryWrapper);
+            } else {
+
+                // Step 1: 鏌ヨ DownWorkstation 琛ㄨ幏鍙栧搴� workstation_id 鐨� flow_card_id
+                List<DownWorkstation> workstationList = downWorkstationMapper.selectList(new QueryWrapper<DownWorkstation>().between("workstation_id", start, end));
+
+                List<String> flowCardIds = new ArrayList<>();
+                for (DownWorkstation workstation : workstationList) {
+                    flowCardIds.add(workstation.getFlowCardId());
+                }
+                if (flowCardIds.isEmpty()) {
+                    log.error("2銆佹湭鎵惧埌瀵瑰簲鐨� flow_card_id");
+                    return Collections.emptyList(); // 杩斿洖绌哄垪琛ㄦ垨鑰呮姏鍑哄紓甯革紝瑙嗘儏鍐佃�屽畾
+                }
+                log.info("娴佺▼鍗�:{}", flowCardIds);
+                LambdaQueryWrapper<GlassInfo> queryWrapper2 = Wrappers.lambdaQuery();
+                queryWrapper2.select(GlassInfo::getFlowCardId,
+                        GlassInfo::getGlassId)
+                        .notInSql(GlassInfo::getGlassId, "SELECT glass_id FROM down_glass_info")
+                        .orderByAsc(GlassInfo::getGlassType)
+                        .last("LIMIT 1");
+
+                // 鏌ヨ GlassInfo 琛�
+                List<GlassInfo> glassInfos = glassInfoMapper.selectList(queryWrapper2);
+                if (glassInfos.isEmpty()) {
+                    log.error("鏈壘鍒板搴旂殑鐜荤拑淇℃伅");
+                    return Collections.emptyList(); // 杩斿洖绌哄垪琛ㄦ垨鑰呮姏鍑哄紓甯革紝瑙嗘儏鍐佃�屽畾
+                }
+                // Step 3: 鏋勯�犳煡璇� down_storage_cage_details 琛ㄧ殑鏉′欢
+                List<String> glassIds = glassInfos.stream().map(GlassInfo::getGlassId).collect(Collectors.toList());
+                LambdaQueryWrapper<DownStorageCageDetails> cageDetailsQueryWrapper = Wrappers.lambdaQuery();
+                cageDetailsQueryWrapper.in(DownStorageCageDetails::getGlassId, glassIds);
+                cageDetailsQueryWrapper.in(DownStorageCageDetails::getFlowCardId, flowCardIds);
+                cageDetailsQueryWrapper.eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN);
+                log.info("鎸夌収娴佺▼鍗$殑椤哄簭鍑�");
+                // Step 4: 鏌ヨ down_storage_cage_details 琛ㄥ苟杩斿洖缁撴灉
+                return downStorageCageDetailsMapper.selectList(cageDetailsQueryWrapper);
+            }
+
+
+    }
+
+
+
+
+    @Override
+    public boolean identWorn(String glassId, int ControlsId) {
+        List<DownStorageCageDetails> edgStorageCageDetails = baseMapper.selectList(new MPJLambdaQueryWrapper<DownStorageCageDetails>().selectAll(DownStorageCageDetails.class).eq(DownStorageCageDetails::getGlassId, glassId));
+        if (edgStorageCageDetails.size() == 1) {
+            DownStorageCageDetails item = edgStorageCageDetails.get(0);
+            item.setState(ControlsId);
+            baseMapper.update(item, new MPJLambdaWrapper<DownStorageCageDetails>().selectAll(DownStorageCageDetails.class).eq(DownStorageCageDetails::getGlassId, glassId));
+            return true;
+        }
+
+        return false;
+    }
+
+
+
+
+
+
 }

--
Gitblit v1.8.0