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