From d12ca7c9d0635eec17d1dc03ed085eeac7eb248f Mon Sep 17 00:00:00 2001 From: zhoushihao <zsh19950802@163.com> Date: 星期六, 10 八月 2024 14:11:21 +0800 Subject: [PATCH] 1、磨边前破损处理:识别仅将数据存入破损表,不做其他处理 2、磨边队列破损:将数据加入破损表,将状态改为破损 --- hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java | 180 ++++++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 140 insertions(+), 40 deletions(-) diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java index b337c2d..87716c5 100644 --- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java +++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java @@ -1,80 +1,180 @@ package com.mes.edgstoragecage.service.impl; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.github.yulichang.query.MPJQueryWrapper; +import cn.hutool.core.collection.CollectionUtil; +import com.github.yulichang.base.MPJBaseServiceImpl; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.mes.common.config.Const; +import com.mes.damage.entity.Damage; +import com.mes.damage.service.DamageService; import com.mes.edgstoragecage.entity.EdgStorageCage; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.mes.edgstoragecage.entity.EdgStorageCageDetails; -import com.mes.edgstoragecage.mapper.EdgStorageCageMapper; import com.mes.edgstoragecage.mapper.EdgStorageCageDetailsMapper; +import com.mes.edgstoragecage.mapper.EdgStorageCageMapper; +import com.mes.edgstoragecage.service.EdgStorageCageDetailsService; import com.mes.edgstoragecage.service.EdgStorageCageService; import com.mes.uppattenusage.entity.UpPattenUsage; import com.mes.uppattenusage.mapper.UpPattenUsageMapper; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; import java.util.Map; -import java.util.*; -import java.util.stream.Collectors; /** * <p> - * 鏈嶅姟瀹炵幇绫� + * 鏈嶅姟瀹炵幇绫� * </p> * * @author zhoush * @since 2024-04-07 */ +@Slf4j @Service -public class EdgStorageCageServiceImpl extends ServiceImpl<EdgStorageCageMapper, EdgStorageCage> implements EdgStorageCageService { +public class EdgStorageCageServiceImpl extends MPJBaseServiceImpl<EdgStorageCageMapper, EdgStorageCage> implements EdgStorageCageService { - @Autowired - EdgStorageCageMapper edgStorageCageMapper; @Autowired EdgStorageCageDetailsMapper edgStorageCageDetailsMapper; @Autowired UpPattenUsageMapper upPattenUsageMapper; - @Override - //鏌ヨ绗煎唴绌烘牸 - public List<Map> selectCacheEmpty(){ - List<Map> map=edgStorageCageMapper.selectJoinList( - Map.class,new MPJQueryWrapper<EdgStorageCage>().selectAll(EdgStorageCage.class) - .select("escd.glass_id","escd.flow_card_id","escd.width","escd.height") - .leftJoin("edg_storage_cage_details escd on t.device_id=escd.device_id and t.slot=escd.slot") - .isNull("escd.slot") - ); - return map; - } + @Autowired + DamageService damageService; @Override - //鏌ヨ绗煎唴鍑虹墖浠诲姟 鎸夐挗鍖栫増鍥惧彿+鐗堝浘鍐呭簭鍙� - public List<Map> selectCacheOut(){ - List<Map> list= upPattenUsageMapper.selectJoinList( - Map.class,new MPJQueryWrapper<UpPattenUsage>().selectAll(UpPattenUsage.class) - .select("escd.glass_id","escd.flow_card_id","escd.width","escd.height") - .leftJoin("edg_storage_cage_details escd on t.device_id=escd.device_id and t.slot=escd.slot") - .isNotNull("escd.slot") - .orderByAsc("escd.tempering_layout_id","escd.tempering_feed_sequence") + public EdgStorageCage selectNearestEmpty(int currentSlot, boolean flag) { + List<EdgStorageCage> emptyList = this.selectJoinList(EdgStorageCage.class, new MPJLambdaWrapper<EdgStorageCage>() + .selectAll(EdgStorageCage.class) + .leftJoin(EdgStorageCageDetails.class, on -> on + .eq(EdgStorageCageDetails::getSlot, EdgStorageCage::getSlot) + .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN)) + .isNull(EdgStorageCageDetails::getSlot) + .last("order by abs(t.slot - " + currentSlot + ") asc limit 2") ); - return list; + if (flag && CollectionUtil.isNotEmpty(emptyList)) { + return emptyList.get(0); + } + if (CollectionUtil.isEmpty(emptyList) || emptyList.size() == 1) { + return null; + } + return emptyList.get(0); } + /** + * 鏌ヨ绗煎唴绌烘牸 + * + * @return + */ @Override - //鐞嗙墖缂撳瓨璇︽儏 - public List<Map> selectEdgStorageCages(){ - List<Map> map=edgStorageCageMapper.selectJoinList( - Map.class,new MPJQueryWrapper<EdgStorageCage>().selectAll(EdgStorageCage.class) - .select("escd.glass_id","escd.flow_card_id","escd.width","escd.height") - .leftJoin("edg_storage_cage_details escd on t.device_id=escd.device_id and t.slot=escd.slot") + public List<EdgStorageCage> selectCacheEmpty() { + return baseMapper.selectJoinList(EdgStorageCage.class, new MPJLambdaWrapper<EdgStorageCage>() + .selectAll(EdgStorageCage.class) + .leftJoin(EdgStorageCageDetails.class, on -> on + .eq(EdgStorageCageDetails::getSlot, EdgStorageCage::getSlot) + .eq(EdgStorageCageDetails::getState, "100")) + .isNull(EdgStorageCageDetails::getSlot) + .last("order by abs(t.slot - 4) asc") ); - return map; } + /** + * 鏌ヨ绗煎唴鍑虹墖浠诲姟 鎸夐挗鍖栫増鍥惧彿+鐗堝浘鍐呭簭鍙� + * + * @return + */ @Override - //淇敼鐞嗙墖绗煎唴淇℃伅 鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑 銆愭坊鍔�/鍒犻櫎/鏇存崲銆� - public boolean updateEdgStorageCage(EdgStorageCage edgStorageCage){ - edgStorageCageMapper.updateById(edgStorageCage); + public List<Map<String, Object>> selectCacheOut() { + + return upPattenUsageMapper.selectJoinMaps(JoinWrappers.lambda(UpPattenUsage.class).selectAll(UpPattenUsage.class) + .select(EdgStorageCageDetails::getWidth, EdgStorageCageDetails::getHeight, EdgStorageCageDetails::getGlassId) + .leftJoin(EdgStorageCageDetails.class, on -> on + .eq(EdgStorageCageDetails::getDeviceId, EdgStorageCage::getDeviceId) + .eq(EdgStorageCageDetails::getSlot, EdgStorageCage::getSlot)) + .isNull(EdgStorageCageDetails::getSlot) + ); +// return upPattenUsageMapper.selectJoinMaps(new MPJQueryWrapper<UpPattenUsage>().selectAll(UpPattenUsage.class) +// .select("escd.glass_id","escd.flow_card_id","escd.width","escd.height") +// .leftJoin("edg_storage_cage_details escd on t.device_id=escd.device_id and t.slot=escd.slot") +// .isNotNull("escd.slot") +// .orderByAsc("escd.tempering_layout_id","escd.tempering_feed_sequence") +// ); + } + + /** + * 鐞嗙墖缂撳瓨璇︽儏 + * + * @return + */ + @Override + public List<Map<String, Object>> selectEdgStorageCages() { + return baseMapper.selectJoinMaps(JoinWrappers.lambda(EdgStorageCage.class) + .selectAll(EdgStorageCage.class) + .selectAs(EdgStorageCageDetails::getId, "esdId") + .select(EdgStorageCageDetails::getGlassId, EdgStorageCageDetails::getWidth, EdgStorageCageDetails::getHeight, EdgStorageCageDetails::getId) + .leftJoin(EdgStorageCageDetails.class, on -> on + .eq(EdgStorageCageDetails::getDeviceId, EdgStorageCage::getDeviceId) + .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN) + .eq(EdgStorageCageDetails::getSlot, EdgStorageCage::getSlot)) + ); + } + + /** + * 淇敼鐞嗙墖绗间俊鎭� 鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑 銆愬惎鐢�/绂佺敤銆� + * + * @param edgStorageCage + * @return + */ + @Override + public boolean updateEdgStorageCage(EdgStorageCage edgStorageCage) { + EdgStorageCage edgItem = baseMapper.selectById(edgStorageCage.getId()); + if(edgItem!=null){ + edgItem.setEnableState(edgStorageCage.getEnableState()); + baseMapper.updateById(edgItem); + log.info("鍗у缂撳瓨锛氥�愬惎鐢�/绂佺敤銆� 鍙傛暟:{} 缁撴灉:鎴愬姛",edgStorageCage); + return true; + } + log.info("鍗у缂撳瓨锛氥�愬惎鐢�/绂佺敤銆� 鍙傛暟:{} 缁撴灉:澶辫触",edgStorageCage); + return false; + } + + /** + * 淇敼鐞嗙墖绗间俊鎭� 鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑 銆愭坊鍔�/鍒犻櫎/鏇存崲銆� + * + * @param edgStorageCageId + * @param edgStorageCageDetails + * @return + */ + @Override + public boolean updateEdgStorageCageDetails(int edgStorageCageId, EdgStorageCageDetails edgStorageCageDetails) { + EdgStorageCage edgItem = baseMapper.selectById(edgStorageCageId); + log.info("姝e父" + edgItem); + EdgStorageCageDetails edgDItem = edgStorageCageDetailsMapper.selectById(edgStorageCageDetails.getId()); + if (edgItem != null) { + //绉婚櫎 锛堢牬鎹�,鐩墠涓や釜姒傚康娣峰悎鍦ㄤ竴璧�,寤鸿鎷嗗紑锛� + EdgStorageCageDetails result = edgStorageCageDetailsMapper.selectOne(new MPJLambdaWrapper<EdgStorageCageDetails>().eq(EdgStorageCageDetails::getSlot, edgStorageCageId)); + if (result != null) { + result.setSlot(0); + result.setState(201); + Damage damage =new Damage(); + damage.setGlassId(edgStorageCageDetails.getGlassId()); + damage.setLine(1002); + damage.setWorkingProcedure("鍗у紡鐞嗙墖"); + damage.setStatus(2); + damageService.insertDamage(damage); + edgStorageCageDetailsMapper.updateById(result); + } + //娣诲姞 + if (edgDItem != null) { + //鍙紶鏍煎瓙 锛氱Щ闄ょ幓鐠� + EdgStorageCageDetails newresult = edgStorageCageDetailsMapper.selectById(edgStorageCageDetails.getId()); + newresult.setSlot(edgItem.getSlot()); + edgStorageCageDetailsMapper.updateById(newresult); + } + } return true; } + } -- Gitblit v1.8.0