From b5ca846c41affe2c41d719be38be326a1931b3de Mon Sep 17 00:00:00 2001 From: pjb <pjb123456> Date: 星期一, 21 七月 2025 09:47:22 +0800 Subject: [PATCH] 手动完成空桶库任务问题修复 --- src/main/java/com/zy/common/web/WcsController.java | 64 +++++++++++++++++++++++++++----- 1 files changed, 54 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java index a8cba24..1f22cba 100644 --- a/src/main/java/com/zy/common/web/WcsController.java +++ b/src/main/java/com/zy/common/web/WcsController.java @@ -10,6 +10,7 @@ import com.zy.asrs.entity.param.EmptyPlateOutParam; import com.zy.asrs.entity.param.StockOutParam; import com.zy.asrs.entity.result.FindLocNoAttributeVo; +import com.zy.asrs.mapper.BasCrnpMapper; import com.zy.asrs.mapper.LocMastMapper; import com.zy.asrs.mapper.WrkMastMapper; import com.zy.asrs.service.*; @@ -28,6 +29,7 @@ import javax.annotation.Resource; import java.util.*; +import java.util.stream.Collectors; /** * Created by vincent on 2020/10/30 @@ -68,6 +70,18 @@ @Resource private WrkMastMapper wrkMastMapper; + @Resource + private BasCrnpMapper basCrnpMapper; + + public static final Map<Integer,ArrayList<Integer>> crnOutSite; + + static { + crnOutSite = new HashMap<>(); + crnOutSite.put(1,new ArrayList<Integer>(){{add(1091);add(1092);add(1093);}}); + crnOutSite.put(2,new ArrayList<Integer>(){{add(1097);add(1098);add(1099);}}); + crnOutSite.put(3,new ArrayList<Integer>(){{add(1105);add(1106);add(1107);}}); + } + @PostMapping("/pakin/loc/v1") @ResponseBody @Transactional @@ -103,7 +117,7 @@ if(param.getIoType() == 1) { List<SearchLocParam.WantBucket> wantBucketFlag = param.getWantBucketFlag(); for(SearchLocParam.WantBucket wantBucket: wantBucketFlag) { - if(wantBucket.getBucketType() != 0 && wantBucket.getBucketType() == param.getBucketType()) { // 缃愯绾挎湁瑕佹《淇″彿骞朵笖褰撳墠妗舵槸缃愯绾胯鐨勬《 + if(wantBucket.getBucketType() != 0 && wantBucket.getBucketType() == param.getBucketType() && wantBucket.getWantBucketCount() >= 1) { // 缃愯绾挎湁瑕佹《淇″彿骞朵笖褰撳墠妗舵槸缃愯绾胯鐨勬《 if(waitPakin == null) { return R.error("鍏ュ簱閫氱煡妗d负绌�"); } else { @@ -260,7 +274,7 @@ // wrkMast.setCrnNo(dto.getCrnNo()); wrkMast.setSourceStaNo(param.getSourceStaNo()); wrkMast.setStaNo(1090); -// wrkMast.setLocNo(dto.getLocNo()); + wrkMast.setLocNo(!param.isTbFlag() ? "璐存爣澶辫触" : "澶嶆閲嶉噺寮傚父"); wrkMast.setBarcode(wrkMast1.getBarcode()); // 鎵樼洏鐮� wrkMast.setFullPlt("Y"); // 婊℃澘锛歒 // wrkMast.setPicking("N"); // 鎷f枡 @@ -450,7 +464,7 @@ WrkMast wrkMast = wrkMastService.selectById(wrkNo); if (wrkMast == null) { throw new CoolException("寮傚父鍙e叆搴撲换鍔″彿鏃犱换鍔★細" + wrkNo); - } else if (wrkMast.getLocNo() != null) { + } else if (wrkMast.getLocNo() != null && wrkMast.getLocNo().length() == 7) { throw new CoolException("寮傚父鍙e叆搴撳簱浣嶅凡鍒嗛厤锛�" + wrkMast.getLocNo()); } @@ -685,6 +699,7 @@ @PostMapping("/autoOutEmptyBucket") @ResponseBody public R autoOutEmptyBucket(@RequestBody StockOutParam param){ + log.info("鏀跺埌WCS鑷姩鍑虹┖妗舵帴鍙h姹�====>>鍏ュ弬:{}", param); workService.startupFullTakeStore(param, 29L); return R.ok("鍑哄簱鍚姩鎴愬姛"); } @@ -697,18 +712,47 @@ // 鍑哄簱绔欑偣 Integer site = Integer.valueOf(emptyPalletSite.get("site")); - LocMast locMast; + LocMast locMast = null; - // 鍏堟壘娴呭簱浣� - locMast = locMastMapper.queryLocMasterByLocStsAndRow(Arrays.asList(2, 3), type); + List<BasCrnp> basCrnps = basCrnpMapper.selectList(new EntityWrapper<BasCrnp>().eq("crn_sts", 3).eq("crn_err", 0).in("crn_no",1,2,3) + .eq("out_enable","Y")); + if (basCrnps.size() == 0) { + log.error("绌烘嫋鍑哄簱璇锋眰搴撲綅澶辫触锛屾病鏈夎仈鏈哄爢鍨涙満鎴栧爢鍨涙満寮傚父"); + throw new CoolException("绌烘嫋鍑哄簱璇锋眰搴撲綅澶辫触锛屾病鏈夎仈鏈哄爢鍨涙満鎴栧爢鍨涙満寮傚父"); + } - // 娴呭簱浣嶆病鏈夊垯鏌ヨ鎵�鏈� - if (locMast == null) { - locMast = locMastMapper.queryLocMasterByLocStsAndRow(null, type); + List<BasCrnp> basCrnpList = new ArrayList<>(); + for(BasCrnp basCrnp: basCrnps) { + List<BasDevp> devps = basDevpService.selectList(new EntityWrapper<BasDevp>().in("dev_no", crnOutSite.get(basCrnp.getCrnNo())).ne("wrk_no", 0)); + long count = devps.stream().map(BasDevp::getWrkNo).distinct().count(); + basCrnp.setWrkNo(count + basCrnp.getWrkNo() >= 5001 && basCrnp.getWrkNo() <= 9000 ? 1 : 0); + basCrnpList.add(basCrnp); + } + + basCrnpList = basCrnpList.stream().sorted(Comparator.comparing(BasCrnp::getWrkNo).thenComparing(BasCrnp::getCrnNo,Comparator.reverseOrder())).collect(Collectors.toList()); + + for(BasCrnp basCrnp:basCrnpList) { + Integer crnNo = basCrnp.getCrnNo(); + Wrapper<LocMast> wrapper = new EntityWrapper<LocMast>().eq("loc_sts", type) + .eq("crn_no", crnNo).orderBy("lev1").orderBy("bay1").orderBy("row1"); + if (crnNo == 1) { + wrapper.in("row1", 1, 4); + } + locMast = locMastService.selectOne(wrapper); + if (locMast != null) { + break; + } + // 娣卞簱浣嶆病鏈変簡鍒欒幏鍙栦竴涓祬搴撲綅 + if (crnNo == 1) { + locMast = locMastService.selectOne(wrapper.in("row1", 2, 3)); + if (locMast != null) { + break; + } + } } if (locMast == null) { - return R.error("搴撳瓨娌℃湁"+type+"绫诲瀷绌烘墭鐩�"); + return R.error("搴撳瓨娌℃湁"+type+"绫诲瀷绌烘墭鐩樻垨鏃犲彲鐢ㄥ爢鍨涙満"); } String locNo = locMast.getLocNo(); -- Gitblit v1.9.1