From a84386f98cc752516d492222684d5c850c9c7a1e Mon Sep 17 00:00:00 2001
From: pjb <pjb123456>
Date: 星期一, 21 七月 2025 00:00:10 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/mdqzasrs' into mdqzasrs
---
src/main/java/com/zy/common/web/WcsController.java | 55 +++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 49 insertions(+), 6 deletions(-)
diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index 0f37693..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
@@ -67,6 +69,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
@@ -698,14 +712,43 @@
// 鍑哄簱绔欑偣
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) {
--
Gitblit v1.9.1