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/DownStorageCageServiceImpl.java | 103 ++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 85 insertions(+), 18 deletions(-) diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java index e580072..b204f0c 100644 --- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java +++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java @@ -1,23 +1,24 @@ package com.mes.downstorage.service.impl; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; - -import com.mes.device.PlcParameterObject; +import com.mes.common.config.Const; +import com.mes.damage.entity.Damage; +import com.mes.damage.service.DamageService; import com.mes.downglassinfo.entity.DownGlassTask; import com.mes.downglassinfo.service.DownGlassTaskService; import com.mes.downstorage.entity.DownStorageCage; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.mes.downstorage.entity.DownStorageCageDetails; +import com.mes.downstorage.entity.request.CacheWornRequest; import com.mes.downstorage.mapper.DownStorageCageDetailsMapper; import com.mes.downstorage.mapper.DownStorageCageMapper; import com.mes.downstorage.service.DownStorageCageDetailsService; import com.mes.downstorage.service.DownStorageCageService; import com.mes.glassinfo.entity.GlassInfo; import com.mes.glassinfo.service.GlassInfoService; -import com.mes.pp.entity.OptimizeDetail; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -49,9 +50,11 @@ private DownStorageCageDetailsService downStorageCageDetailsService; @Autowired private DownStorageCageDetailsMapper downStorageCageDetailsMapper; + @Autowired + DamageService damageService; @Override - public DownGlassTask createDownGlassTask(GlassInfo glassInfo, String startCell, String endCell, String taskType) { + public DownGlassTask createDownGlassTask(GlassInfo glassInfo, Integer startCell, Integer endCell, Integer taskType) { DownGlassTask downGlassTask = new DownGlassTask(); BeanUtils.copyProperties(glassInfo, downGlassTask); @@ -63,7 +66,7 @@ } @Override - public DownGlassTask createDownGlassTask(DownStorageCageDetails glassInfo, String startCell, String endCell, String taskType) { + public DownGlassTask createDownGlassTask(DownStorageCageDetails glassInfo, Integer startCell, Integer endCell, Integer taskType) { DownGlassTask downGlassTask = new DownGlassTask(); BeanUtils.copyProperties(glassInfo, downGlassTask); @@ -72,27 +75,63 @@ downGlassTask.setEndCell(endCell); return downGlassTask; } - - //鎵惧埌绌烘牸瀛� @Override public List<DownStorageCageDetails> selectCacheEmpty() { - return baseMapper.selectJoinList(DownStorageCageDetails.class, + return this.selectJoinList(DownStorageCageDetails.class, JoinWrappers.lambda(DownStorageCage.class) .selectAll(DownStorageCage.class) - .select(DownStorageCageDetails::getWidth, DownStorageCageDetails::getHeight, DownStorageCageDetails::getGlassId) .leftJoin(DownStorageCageDetails.class, on -> on .eq(DownStorageCageDetails::getDeviceId, DownStorageCage::getDeviceId) - .eq(DownStorageCageDetails::getSlot, DownStorageCage::getSlot)) + .eq(DownStorageCageDetails::getSlot, DownStorageCage::getSlot) + .eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN)) .isNull(DownStorageCageDetails::getSlot) ); } + //鎵惧埌绌烘牸瀛� + @Override + public DownStorageCage selectCacheEmpty(int currentSlot, boolean flag) { + List<DownStorageCage> emptyList = this.selectJoinList(DownStorageCage.class, + JoinWrappers.lambda(DownStorageCage.class) + .selectAll(DownStorageCage.class) + .leftJoin(DownStorageCageDetails.class, on -> on + .eq(DownStorageCageDetails::getSlot, DownStorageCage::getSlot) + .eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN)) + .isNull(DownStorageCageDetails::getSlot) + .eq(DownStorageCage::getEnableState, Const.SLOT_ON) + .last("order by abs(t.slot - " + currentSlot + ") asc limit 2") + ); + if (flag && CollectionUtil.isNotEmpty(emptyList)) { + return emptyList.get(0); + } + if (CollectionUtil.isEmpty(emptyList) || emptyList.size() == 1) { + return null; + } + return emptyList.get(0); + } + @Override + public List<DownStorageCageDetails> selectCacheMax() { + return baseMapper.selectJoinList(DownStorageCageDetails.class, + JoinWrappers.lambda(DownStorageCage.class) + // 娣诲姞 DownStorageCage 鐨� enableState 涓� 1 鐨勬潯浠� + .select(DownStorageCageDetails::getFlowCardId) + .leftJoin(DownStorageCageDetails.class, on -> on + .eq(DownStorageCageDetails::getDeviceId, DownStorageCage::getDeviceId) + .eq(DownStorageCageDetails::getSlot, DownStorageCage::getSlot) + .eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN)) + .isNull(DownStorageCageDetails::getSlot) + .eq(DownStorageCage::getEnableState, 1) + .groupBy(DownStorageCageDetails::getFlowCardId) // 鏍规嵁 flowCardId 鍒嗙粍 + // 浣跨敤瀛愭煡璇㈠拰鎺掑簭鏉ヨ幏鍙栫浉鍚� FlowCardId 涓殑鏈�澶氳褰� + .having("count(*) = (select max(cnt) from (select count(*) as cnt from down_storage_cage_details group by flow_card_id) as temp)") + ); + } @Override @@ -103,7 +142,8 @@ .select(DownStorageCageDetails::getGlassId, DownStorageCageDetails::getWidth, DownStorageCageDetails::getHeight, DownStorageCageDetails::getId) .leftJoin(DownStorageCageDetails.class, on -> on .eq(DownStorageCageDetails::getDeviceId, DownStorageCage::getDeviceId) - .eq(DownStorageCageDetails::getSlot, DownStorageCage::getSlot)) + .eq(DownStorageCageDetails::getSlot, DownStorageCage::getSlot) + .eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN)) ); } @@ -117,10 +157,19 @@ @Override public boolean updateDownStorageCage(DownStorageCage downStorageCage) { DownStorageCage downItem = baseMapper.selectById(downStorageCage.getId()); - downItem.setEnableState(downStorageCage.getEnableState()); - baseMapper.updateById(downItem); - return true; + if (downItem != null) { + downItem.setEnableState(downStorageCage.getEnableState()); + int rowsAffected = baseMapper.updateById(downItem); + if (rowsAffected > 0) { + return true; + } else { + return false; + } + } else { + return false; + } } + /** * 淇敼鐞嗙墖绗间俊鎭� 鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑 銆愭坊鍔�/鍒犻櫎/鏇存崲銆� @@ -146,7 +195,10 @@ if (downItem != null) { //绉婚櫎 - DownStorageCageDetails result = downStorageCageDetailsMapper.selectOne(new MPJLambdaWrapper<DownStorageCageDetails>().eq(DownStorageCageDetails::getSlot, downStorageCageId)); + DownStorageCageDetails result = downStorageCageDetailsMapper + .selectOne(new MPJLambdaWrapper<DownStorageCageDetails>() + .eq(DownStorageCageDetails::getSlot, downStorageCageId) + ); if (result != null) { result.setSlot(0); downStorageCageDetailsMapper.updateById(result); @@ -156,4 +208,19 @@ return true; } + @Override + public void deleteDownStorageCage(CacheWornRequest cacheWornRequest) { + Damage damage = new Damage(); + BeanUtils.copyProperties(cacheWornRequest, damage); + damage.setType(cacheWornRequest.getState()); + damage.setRemark(""); + damage.setStatus(0); + damageService.insertDamage(damage); + downStorageCageDetailsService.update(new LambdaUpdateWrapper<DownStorageCageDetails>() + .set(DownStorageCageDetails::getState, Const.GLASS_STATE_OUT) + .eq(DownStorageCageDetails::getGlassId, cacheWornRequest.getGlassId()) + .eq(DownStorageCageDetails::getState,Const.GLASS_STATE_IN)); + + } + } -- Gitblit v1.8.0