From 9247ea3d414c528ff2210c4b1ccdb38741f52101 Mon Sep 17 00:00:00 2001 From: ZengTao <2773468879@qq.com> Date: 星期四, 30 五月 2024 16:50:36 +0800 Subject: [PATCH] 添加新磨边任务表,添加上车宽度判断 --- hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java | 69 +++++++++++++++++++++++++++------- 1 files changed, 54 insertions(+), 15 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 5a1652e..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 @@ -49,20 +49,20 @@ @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); 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鏄惁瀛樺湪鐞嗙墖绗煎唴"); @@ -71,7 +71,7 @@ .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()); @@ -86,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; } } } @@ -119,12 +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; @@ -140,7 +148,7 @@ 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); @@ -177,14 +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()); @@ -193,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