From 6ff1b66c16a506d8f40b7284c1c3774faf1e6d2e Mon Sep 17 00:00:00 2001 From: wuyouming666 <2265557248@qq.com> Date: 星期五, 31 五月 2024 16:45:45 +0800 Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes --- hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java | 91 +++++++++++++++++++++++++++++++++++---------- 1 files changed, 71 insertions(+), 20 deletions(-) diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java index 51d5f49..c798fc7 100644 --- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java +++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java @@ -10,6 +10,7 @@ import com.mes.bigstorage.mapper.BigStorageCageMapper; import com.mes.bigstorage.service.BigStorageCageService; import com.mes.glassinfo.entity.GlassInfo; +import com.mes.glassinfo.service.GlassInfoService; import com.mes.temperingglass.entity.TemperingGlassInfo; import com.mes.temperingglass.service.TemperingGlassInfoService; import lombok.extern.slf4j.Slf4j; @@ -18,6 +19,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; @@ -44,29 +46,32 @@ @Resource private TemperingGlassInfoService temperingGlassInfoService; + @Resource + private GlassInfoService glassInfoService; + + //杩涚墖閫昏緫 @Override public BigStorageCageDetails feedGlass(GlassInfo glassInfo, BigStorageCageDetails bigStorageCageDetails) { - log.info("1銆佹煡璇㈢悊鐗囩鍐呯墖搴�+1绛変簬褰撳墠鐜荤拑鐗囧簭鐨勭幓鐠�"); LambdaQueryWrapper<BigStorageCageDetails> wrapper = new LambdaQueryWrapper<>(); wrapper.eq(BigStorageCageDetails::getTemperingLayoutId, glassInfo.getTemperingLayoutId()) - .eq(BigStorageCageDetails::getTemperingFeedSequence, glassInfo.getTemperingFeedSequence() + 1); + .eq(BigStorageCageDetails::getTemperingFeedSequence, glassInfo.getTemperingFeedSequence() - 1); BigStorageCageDetails layoutSlotInfo; layoutSlotInfo= bigStorageCageDetailsMapper.selectOne(wrapper); - + log.info("1銆佹煡璇㈢悊鐗囩鍐呯墖搴�-1绛変簬褰撳墠鐜荤拑鐗囧簭鐨勭幓鐠�"+layoutSlotInfo); BeanUtils.copyProperties(glassInfo, bigStorageCageDetails); - log.info("2銆佹煡璇㈢悊鐗囩鍐呯墖搴�+1绛変簬褰撳墠鐜荤拑鐗囧簭鐨勭幓鐠冪殑缁撴灉涓嶄负绌烘椂"); - if (layoutSlotInfo.getSlot() != null) { + log.info("2銆佹煡璇㈢悊鐗囩鍐呯墖搴�-1绛変簬褰撳墠鐜荤拑鐗囧簭鐨勭幓鐠冪殑缁撴灉涓嶄负绌烘椂"+layoutSlotInfo.getSlot()); + if (layoutSlotInfo.getSlot() != null&&selectWidthSufficient(layoutSlotInfo,bigStorageCageDetails.getWidth())) { bigStorageCageDetails.setSlot(layoutSlotInfo.getSlot()); } else { - log.info("3銆佹煡璇㈢悊鐗囩鍐呯墖搴�+1绛変簬褰撳墠鐜荤拑鐗囧簭鐨勭幓鐠冪殑缁撴灉涓虹┖鏃惰幏鍙栧綋鍓嶇幓鐠冪増鍥緄d鏄惁瀛樺湪鐞嗙墖绗煎唴"); + log.info("3銆佹煡璇㈢悊鐗囩鍐呯墖搴�-1绛変簬褰撳墠鐜荤拑鐗囧簭鐨勭幓鐠冪殑缁撴灉涓虹┖鏃惰幏鍙栧綋鍓嶇幓鐠冪増鍥緄d鏄惁瀛樺湪鐞嗙墖绗煎唴"); LambdaQueryWrapper<BigStorageCageDetails> bigStorageCageDetailslambdaQueryWrapper = new LambdaQueryWrapper<>(); bigStorageCageDetailslambdaQueryWrapper .select(BigStorageCageDetails::getTemperingLayoutId); layoutSlotInfo = bigStorageCageDetailsMapper.selectOne(bigStorageCageDetailslambdaQueryWrapper); - if(layoutSlotInfo != null){ + if(layoutSlotInfo != null&&selectWidthSufficient(layoutSlotInfo,bigStorageCageDetails.getWidth())){ log.info("4銆佽幏鍙栫瀛愬唴閫傚悎鐨勬牸瀛�"); BigStorageCage bigStorageCage=bigStorageCageSlot(layoutSlotInfo.getDeviceId()); bigStorageCageDetails.setSlot(bigStorageCage.getSlot()); @@ -81,13 +86,19 @@ List<Map<String, Object>> bigStorageCageDetailsCount= bigStorageCageDetailsMapper.selectMaps(queryWrapper); log.info("5銆佹煡璇㈢瀛愬唴鏄惁鏈夊悎閫傜殑鏍煎瓙"); + boolean found=false; for (Map<String, Object> map : bigStorageCageDetailsCount) { for (Map.Entry<String, Object> entry : map.entrySet()) { int deviceId = Integer.parseInt(entry.getKey()); BigStorageCage bigStorageCage=bigStorageCageSlot(deviceId); if(bigStorageCage!=null){ bigStorageCageDetails.setSlot(bigStorageCage.getSlot()); + found=true; + break; } + } + if(found){ + break; } } } @@ -114,13 +125,14 @@ return bigStorageCageMapper.selectOne(bigStorageCageWrapper); } - + //鍑虹墖閫昏緫 @Override public boolean outGlass() { - List<TemperingGlassInfo> temperingGlassInfoList = temperingGlassInfoService.list(); + LambdaQueryWrapper<TemperingGlassInfo> temperingGlassInfoWrapper=new LambdaQueryWrapper<>(); + temperingGlassInfoWrapper.eq(TemperingGlassInfo::getState,-1); + List<TemperingGlassInfo> temperingGlassInfoList = temperingGlassInfoService.list(temperingGlassInfoWrapper); log.info("1銆佹煡璇㈤挗鍖栧皬鐗囦换鍔¤〃鏄惁鏈夊緟鍑虹幓鐠�"+temperingGlassInfoList.size()); - - if(temperingGlassInfoList!=null){ + if(temperingGlassInfoList.size()>0){ temperingGlassInfoService.addOutTask(temperingGlassInfoList); log.info("2銆佹坊鍔犱换鍔″埌浠诲姟琛�"); return true; @@ -136,7 +148,17 @@ String layoutId = entry.getKey().substring(0, entry.getKey().indexOf('-')); String layoutNum = entry.getKey().substring(entry.getKey().indexOf('-') + 1); if (layoutNum.equals(entry.getValue())) { - //4銆佹坊鍔犳閽㈠寲鐗堝浘id鎵�鏈夊皬鐗囧皬鐗囧埌閽㈠寲灏忕墖琛� + log.info("4銆佹坊鍔犳閽㈠寲鐗堝浘id鎵�鏈夊皬鐗囧皬鐗囧埌閽㈠寲灏忕墖琛�"); + LambdaQueryWrapper<GlassInfo> glassInfoWrapper=new LambdaQueryWrapper<>(); + glassInfoWrapper.select(GlassInfo::getTemperingLayoutId) + .orderByDesc(GlassInfo::getTemperingFeedSequence); + List<GlassInfo> glassInfoList= glassInfoService.list(glassInfoWrapper); + for (GlassInfo glassInfo:glassInfoList + ) { + TemperingGlassInfo temperingGlassInfo=new TemperingGlassInfo(); + BeanUtils.copyProperties(glassInfo, temperingGlassInfo); + temperingGlassInfoService.save(temperingGlassInfo); + } return false; } } @@ -163,16 +185,21 @@ bigStorageCageMapper.update(bigStorageCage, bigStorageCageWrapper); } - - - + //鏌ヨ澶х悊鐗囦俊鎭紝鍓嶇灞曠ず鐢� @Override - public List<BigStorageCage> querybigStorageCageDetail() { - //1銆佽幏鍙栧ぇ鐞嗙墖绗间俊鎭� - List<BigStorageCage> bigStorageCages = bigStorageCageMapper.selectList(null); + public List<BigStorageCage> querybigStorageCageDetail(int deviceId) { + + LambdaQueryWrapper<BigStorageCage> BigStorageCageWrapper =new LambdaQueryWrapper<>(); + BigStorageCageWrapper.eq(BigStorageCage::getSlot,deviceId); + + LambdaQueryWrapper<BigStorageCageDetails> BigStorageCageDetailsWrapper =new LambdaQueryWrapper<>(); + BigStorageCageDetailsWrapper.eq(BigStorageCageDetails::getSlot,deviceId); + + List<BigStorageCage> bigStorageCages = bigStorageCageMapper.selectList(BigStorageCageWrapper); log.info("1銆佽幏鍙栧ぇ鐞嗙墖绗间俊鎭畬鎴愶紝鑾峰彇鍒扮殑鏁版嵁{}", bigStorageCages.size()); - //2鑾峰彇鐞嗙墖绗兼墍鏈変俊鎭� - List<BigStorageCageDetails> bigStorageCageDetailsList = bigStorageCageDetailsMapper.selectList(null); + + List<BigStorageCageDetails> bigStorageCageDetailsList = bigStorageCageDetailsMapper.selectList(BigStorageCageDetailsWrapper); + Map<Integer, List<BigStorageCageDetails>> listMap = bigStorageCageDetailsList.stream().collect(Collectors.groupingBy(BigStorageCageDetails::getSlot)); for (BigStorageCage bigStorageCage : bigStorageCages) { List<BigStorageCageDetails> bigStorageCageDetails = listMap.get(bigStorageCage.getSlot()); @@ -181,4 +208,28 @@ return bigStorageCages; } + //绗煎瓙浣跨敤鎯呭喌锛岀晫闈㈠睍绀虹敤 + @Override + public List<Map<String, Object>> selectBigStorageCageUsage() { + QueryWrapper<BigStorageCage> wrapper = new QueryWrapper<>(); + wrapper.select("device_id") + .select("ROUND(1 - SUM(CASE WHEN remain_width = 5000 THEN 1 ELSE 0 END) / COUNT(device_id), 2) AS percentage") + .select("COUNT(device_id) - SUM(CASE WHEN remain_width = 5000 THEN 1 ELSE 0 END) AS count") + .groupBy("device_id"); + List<Map<String, Object>> bigStorageCageUsages=baseMapper.selectMaps(wrapper); + return bigStorageCageUsages; + } + + //鍒ゆ柇绗煎瓙鍓╀綑瀹藉害鏄惁瓒冲 + @Override + public boolean selectWidthSufficient(BigStorageCageDetails layoutSlotInfo,double width) { + LambdaQueryWrapper<BigStorageCage> BigStorageCageWrapper = new LambdaQueryWrapper<>(); + BigStorageCageWrapper.eq(BigStorageCage::getSlot,layoutSlotInfo.getSlot()); + BigStorageCage bigStorageCage=baseMapper.selectOne(BigStorageCageWrapper); + if(bigStorageCage.getRemainWidth()>width){ + return true; + }else{ + return false; + } + } } -- Gitblit v1.8.0