From 09a010c5dc11c68a866a6075a74bd1bbefb4a9a8 Mon Sep 17 00:00:00 2001 From: wu <731351411@qq.com> Date: 星期一, 24 六月 2024 16:38:23 +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 | 104 ++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 97 insertions(+), 7 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 b9fa01f..82d885e 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,12 +1,24 @@ 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.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.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> @@ -16,26 +28,104 @@ * @author zhoush * @since 2024-03-27 */ +@Slf4j @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; - double gay=50; + double carWidth=5000; + double gap=50; //鍐欏叆浠诲姟鍒颁换鍔¤〃 for (TemperingGlassInfo temperingGlassInfo:temperingGlassInfoList ) { - if((carwidth-gay-temperingGlassInfo.getWidth())>0){ - //娣诲姞浠诲姟鍒颁换鍔¤〃 - }else{ + log.info("1銆佸綋鍑虹墖杞﹀搴﹀ぇ浜庣幓鐠冨搴︽椂"); + if((carWidth-temperingGlassInfo.getWidth())>0){ + carWidth-=temperingGlassInfo.getWidth()+gap; + log.info("2銆佹坊鍔犻挗鍖栧皬鐗囪〃淇℃伅鍒颁换鍔¤〃"); + temperingGlassInfo.setState(-1); + baseMapper.updateById(temperingGlassInfo); + log.info("3銆佷慨鏀归挗鍖栧皬鐗囪〃浠诲姟鐘舵��"); + BigStorageCageOutTask bigStorageCageOutTask = new BigStorageCageOutTask(); + bigStorageCageOutTask.setId(temperingGlassInfo.getId()); + } else { break; } } } @Override - public List<TemperingGlassInfo> SelectTemperingGlassInfo() { - return null; + public boolean saveBatch(List<TemperingGlassInfo> list) { + return baseMapper.saveBatch(list); + } + + //璋冨害 + @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