From 1eadcf2fe21a211ba361b3cdb86a79f34b4b0479 Mon Sep 17 00:00:00 2001
From: wuyouming666 <2265557248@qq.com>
Date: 星期二, 14 五月 2024 14:48:02 +0800
Subject: [PATCH] 修改出片逻辑

---
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java |   71 +++++++++++++++++++++++++++++++++++
 1 files changed, 71 insertions(+), 0 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 c2d8f32..211dc88 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
@@ -1,6 +1,8 @@
 package com.mes.downstorage.service.impl;
 
+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;
 
 
@@ -13,14 +15,20 @@
 
 import com.mes.downstorage.mapper.DownStorageCageMapper;
 import com.mes.downstorage.service.DownStorageCageDetailsService;
+import com.mes.downworkstation.entity.DownWorkstation;
+import com.mes.downworkstation.mapper.DownWorkstationMapper;
 import com.mes.glassinfo.entity.GlassInfo;
 import com.mes.glassinfo.mapper.GlassInfoMapper;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
+
 @Slf4j
 @Service
 public class DownStorageCageDetailsServiceImpl extends ServiceImpl<DownStorageCageDetailsMapper, DownStorageCageDetails> implements DownStorageCageDetailsService {
@@ -31,6 +39,8 @@
     private DownStorageCageDetailsMapper downStorageCageDetailsMapper;
     @Autowired
     private GlassInfoMapper glassInfoMapper;
+    @Autowired
+    private DownWorkstationMapper downWorkstationMapper;
     @Override
     public void addDownStorageCageDetails(DownStorageCageDetails details) {
         this.save(details);
@@ -63,6 +73,7 @@
 
         );
     }
+
 
 
 
@@ -172,9 +183,69 @@
 
 
 
+    @Override
+    public List<DownStorageCageDetails> CacheOut1(int start,int end) {
 
 
 
+        List<DownStorageCageDetails> cageDetails = downStorageCageDetailsMapper.selectList(null);
+        // Step 5: 鍒ゆ柇 down_storage_cage_details 缁撴灉鏁伴噺鏄惁涓�9锛屽鏋滄槸锛屽垯鎵ц鍙﹀涓�涓煡璇�
+        if (cageDetails.size() == 9) {
+       log.info("婊′簡鐨勬椂鍊欙紝鎸夌収绗煎唴鐗堝浘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());
+            }
+            LambdaQueryWrapper<DownStorageCageDetails> anotherQueryWrapper = Wrappers.lambdaQuery();
+
+            anotherQueryWrapper.orderByAsc(DownStorageCageDetails::getTemperingLayoutId);
+            anotherQueryWrapper.orderByDesc(DownStorageCageDetails::getTemperingFeedSequence);
+            anotherQueryWrapper.in(DownStorageCageDetails::getFlowCardId,flowCardIds);
+            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());
+        }
+
+        LambdaQueryWrapper<GlassInfo> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.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 琛�
+        List<GlassInfo> glassInfos = glassInfoMapper.selectList(queryWrapper);
+
+        // 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);
+
+            log.info("鎸夌収娴佺▼鍗$殑鐗堝浘id 鐗堝浘鐗囧簭鍑�");
+        // Step 4: 鏌ヨ down_storage_cage_details 琛ㄥ苟杩斿洖缁撴灉
+        return downStorageCageDetailsMapper.selectList(cageDetailsQueryWrapper);
+        }
+
+
+    }
+
+
 
 
 

--
Gitblit v1.8.0