From 6977fb42d5067f6c938ef3de559a6ad19b542a0b Mon Sep 17 00:00:00 2001 From: 严智鑫 <test> Date: 星期五, 14 六月 2024 11:29:09 +0800 Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes --- hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java | 89 ++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 85 insertions(+), 4 deletions(-) diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java index 4e4b1c8..5f802b5 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java @@ -1,14 +1,26 @@ package com.mes.temperingglass.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.mes.bigstorage.entity.BigStorageCage; +import com.mes.bigstorage.entity.BigStorageCageDetails; +import com.mes.bigstorage.mapper.BigStorageCageDetailsMapper; +import com.mes.bigstorage.mapper.BigStorageCageMapper; import com.mes.bigstoragetask.entity.BigStorageCageOutTask; +import com.mes.glassinfo.mapper.GlassInfoMapper; import com.mes.temperingglass.entity.TemperingGlassInfo; import com.mes.temperingglass.mapper.TemperingGlassInfoMapper; import com.mes.temperingglass.service.TemperingGlassInfoService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import java.util.List; +import java.util.Map; /** * <p> @@ -22,6 +34,11 @@ @Service public class TemperingGlassInfoServiceImpl extends ServiceImpl<TemperingGlassInfoMapper, TemperingGlassInfo> implements TemperingGlassInfoService { + @Resource + private BigStorageCageDetailsMapper bigStorageCageDetailsMapper; + @Resource + private BigStorageCageMapper bigStorageCageMapper; + @Override public void addOutTask(List<TemperingGlassInfo> temperingGlassInfoList) { double carWidth=5000; @@ -31,11 +48,11 @@ ) { log.info("1銆佸綋鍑虹墖杞﹀搴﹀ぇ浜庣幓鐠冨搴︽椂"); if((carWidth-temperingGlassInfo.getWidth())>0){ - carWidth-=temperingGlassInfo.getWidth()-gap; - log.info("2銆佹坊鍔犲垰灏忕墖琛ㄤ俊鎭埌浠诲姟琛�"); - temperingGlassInfo.setState(1); + carWidth-=temperingGlassInfo.getWidth()+gap; + log.info("2銆佹坊鍔犻挗鍖栧皬鐗囪〃淇℃伅鍒颁换鍔¤〃"); + temperingGlassInfo.setState(-1); baseMapper.updateById(temperingGlassInfo); - log.info("3銆佹坊鍔犲垰灏忕墖琛ㄤ俊鎭埌浠诲姟琛�"); + log.info("3銆佷慨鏀归挗鍖栧皬鐗囪〃浠诲姟鐘舵��"); BigStorageCageOutTask bigStorageCageOutTask =new BigStorageCageOutTask(); bigStorageCageOutTask.setId(temperingGlassInfo.getId()); }else{ @@ -44,4 +61,68 @@ } } + //璋冨害 + @Override + public void schedulingTask(){ + QueryWrapper<BigStorageCageDetails> detailsWrapper1 = Wrappers.query(); + detailsWrapper1.select("tempering_layout_id", "count(distinct slot)") + .groupBy("tempering_layout_id"); + List<Map<String, Object>> temperingLayoutIdList = bigStorageCageDetailsMapper.selectMaps(detailsWrapper1); + + boolean key=false; + for (Map<String, Object> row : temperingLayoutIdList) { + for (Map.Entry<String, Object> entry : row.entrySet()) { + String temperingId = entry.getKey(); + int temperingNo = Integer.parseInt(entry.getValue().toString()); + if(temperingNo>8){ + QueryWrapper<BigStorageCageDetails> detailsWrapper2 = Wrappers.query(); + detailsWrapper2.select("tempering_layout_id", "slot") + .select("max(tempering_feed_sequence) as max_sequence", "min(tempering_feed_sequence) as min_sequence") + .groupBy("tempering_layout_id", "slot") + .orderByAsc("tempering_layout_id") + .orderByDesc("min_sequence"); + + List<Map<String, Object>> result = bigStorageCageDetailsMapper.selectMaps(detailsWrapper2); + for (Map<String, Object> rows : result) { + // 鑾峰彇姣忚鐨勫�� + Object temperingLayoutId = rows.get("tempering_layout_id"); + int slot = Integer.parseInt(rows.get("slot").toString()); + int maxSequence = Integer.parseInt(rows.get("max_sequence").toString()); + int minSequence = Integer.parseInt(rows.get("min_sequence").toString()); + + LambdaQueryWrapper<BigStorageCage> bigStorageCageWrapper=new LambdaQueryWrapper<>(); + bigStorageCageWrapper.eq(BigStorageCage::getSlot,slot); + BigStorageCage bigStorageCage=bigStorageCageMapper.selectOne(bigStorageCageWrapper); + Integer remainWidth=5000-bigStorageCage.getRemainWidth(); + + BigStorageCage bigStorageCages=bigStorageCageMapper.selectJoinOne(BigStorageCage.class, new MPJLambdaWrapper<BigStorageCage>() + .selectAll(BigStorageCage.class) + .leftJoin(BigStorageCageDetails.class, on -> on + .eq(BigStorageCage::getDeviceId, BigStorageCageDetails::getDeviceId) + .eq(BigStorageCage::getSlot, BigStorageCageDetails::getSlot)) + .gt(BigStorageCage::getRemainWidth,remainWidth) + .eq(BigStorageCageDetails::getTemperingLayoutId,temperingLayoutId) + .eq(BigStorageCageDetails::getTemperingFeedSequence,minSequence-1) + ); + + if(bigStorageCages.getSlot()!=null){ + LambdaQueryWrapper<BigStorageCageDetails> bigStorageCageDetailsWrapper=new LambdaQueryWrapper<>(); + bigStorageCageDetailsWrapper + .eq(BigStorageCageDetails::getSlot,slot) + .orderByDesc(BigStorageCageDetails::getTemperingFeedSequence); + List<BigStorageCageDetails> bigStorageCageDetailsList=bigStorageCageDetailsMapper.selectList(bigStorageCageDetailsWrapper); + for (BigStorageCageDetails bigStorageCageDetails:bigStorageCageDetailsList + ) { + BigStorageCageOutTask bigStorageCageOutTask=new BigStorageCageOutTask(); + bigStorageCageOutTask.setTaskState(-3); + bigStorageCageOutTask.setStartSlot(slot); + bigStorageCageOutTask.setEndSlot(bigStorageCages.getSlot()); + } + return; + } + } + } + } + } + } } -- Gitblit v1.8.0