From d5d0d1c7a84b996b9bbcebfaf2c2c95f1a5a3678 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期五, 11 十月 2024 08:39:15 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java |  151 ++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 128 insertions(+), 23 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 5501c02..0ea5be2 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,17 +3,14 @@
 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.MPJQueryWrapper;
-
-
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-
+import com.github.yulichang.query.MPJLambdaQueryWrapper;
 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;
-
 import com.mes.downstorage.mapper.DownStorageCageMapper;
 import com.mes.downstorage.service.DownStorageCageDetailsService;
 import com.mes.downworkstation.entity.DownWorkstation;
@@ -162,26 +159,44 @@
 //
 //    }
 
+  //  @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 String getGlassInfoMaxCount(String glassId, List<Integer> workList) {
+        DownStorageCageDetails glassInfoMaxCount = baseMapper.getGlassInfoMaxCount(workList);
+        return null == glassInfoMaxCount ? glassId : glassInfoMaxCount.getGlassId();
+    }
 
 
     @Override
@@ -197,7 +212,6 @@
         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) {
@@ -221,12 +235,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(); // 杩斿洖绌哄垪琛ㄦ垨鑰呮姏鍑哄紓甯革紝瑙嗘儏鍐佃�屽畾
@@ -254,7 +266,6 @@
             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);
@@ -264,4 +275,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