From 27917bf679759fb1aadcbf148db27b0407053db5 Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期三, 15 一月 2025 16:36:43 +0800
Subject: [PATCH] 优化库位检索逻辑,移除冗余参数
---
src/main/java/com/zy/common/service/AgvCommonService.java | 82 +++++++++++++++++++++++------------------
1 files changed, 46 insertions(+), 36 deletions(-)
diff --git a/src/main/java/com/zy/common/service/AgvCommonService.java b/src/main/java/com/zy/common/service/AgvCommonService.java
index 7af4f56..98c2b2f 100644
--- a/src/main/java/com/zy/common/service/AgvCommonService.java
+++ b/src/main/java/com/zy/common/service/AgvCommonService.java
@@ -78,7 +78,7 @@
* 妫�绱㈠簱浣嶅彿
* @return locNo 妫�绱㈠埌鐨勫簱浣嶅彿
*/
- public AgvLocMast getLocNo(int type, int floor, boolean isEmpty, boolean isCurrLev, String factory) {
+ public AgvLocMast getLocNo(int type, int floor, boolean isEmpty, boolean isCurrLev) {
// 鐩爣搴撲綅
AgvLocMast locMast = null;
// if(Cools.isEmpty(agvWaitPakinList)){
@@ -120,16 +120,16 @@
// 寮�濮嬫煡鎵惧簱浣� ==============================>>
// 鍥涙湡椤圭洰锛氶渶瑕佹敼鏌ユ壘搴撲綅閫昏緫
// 绠卞3鍏ュ簱
- if (type == 3) {
- //浼樺厛鍏ュ簱鍚稿1妤硷紝鍦�2妤�
- locMast = locUtils.getLocNoRuleByFactory(type,isEmpty ,factory);
- } else if (type == 6) {
- //鍗婃垚鍝佺澹冲叆搴擄紝鍏ュ埌鍚稿2妤肩殑370涓簱浣嶉噷
- locMast = locUtils.getLocNoRuleByFloor(type, floor, isEmpty,2);
- } else {
- //涓嶅姩杩欎釜閫昏緫
- locMast = getLocNoRule(type, floor, isEmpty, isCurrLev);
- }
+// if (type == 3 && factory != null) {
+// //浼樺厛鍏ュ簱鍚稿1妤硷紝鍦�2妤�
+// locMast = locUtils.getLocNoRuleByFactory(type, isEmpty, factory);
+// } else if (type == 6) {
+// //鍗婃垚鍝佺澹冲叆搴擄紝鍏ュ埌鍚稿2妤肩殑370涓簱浣嶉噷
+// locMast = locUtils.getLocNoRuleByFloor(type, floor, isEmpty, 2);
+// } else {
+// //涓嶅姩杩欎釜閫昏緫
+ locMast = getLocNoRule(type, floor, isEmpty, isCurrLev);
+// }
if (locMast != null) {
return locMast;
}
@@ -144,35 +144,45 @@
/*
搴撲綅瑙勫垯鏌ユ壘
*/
- private AgvLocMast getLocByLocRule(AgvWaitPakin agvWaitPakin, int floor) {
- List<AgvLocRule> agvLocRules = null;
- agvLocRules = agvLocRuleService.selectList(new EntityWrapper<AgvLocRule>()
- .eq("matnr", agvWaitPakin.getMatnr())
- .eq("batch", agvWaitPakin.getModel())
- .eq("floor", floor));
- if (Cools.isEmpty(agvLocRules)) {
- agvLocRules = agvLocRuleService.selectList(new EntityWrapper<AgvLocRule>()
- .eq("matnr", agvWaitPakin.getMatnr())
- .eq("floor", floor));
- }
- if (Cools.isEmpty(agvLocRules)) {
- return null;
- }
+ public AgvLocMast getLocByLocRule(int type, int floor, String factory) {
- for (AgvLocRule agvLocRule : agvLocRules) {
+ try {
EntityWrapper<AgvLocMast> wrapper = new EntityWrapper<>();
- wrapper.between("row1", agvLocRule.getRowBeg(), agvLocRule.getRowEnd())
- .between("bay1", agvLocRule.getBayBeg(), agvLocRule.getBayEnd())
- .between("lev1", agvLocRule.getLevBeg(), agvLocRule.getLevEnd())
- .eq("floor", floor)
- .eq("loc_sts", "O");
- AgvLocMast agvLocMast = agvLocMastService.selectOne(wrapper);
- if (!Cools.isEmpty(agvLocMast)) {
- return agvLocMast;
+ wrapper.eq("loc_sts", "O").eq("loc_type1", type);
+ List<AgvLocMast> agvLocMasts = new ArrayList<>();
+ //涓嶆槸绌烘澘浼樺厛鎵�2灞�
+ if (Cools.isEmpty(factory)) {
+ wrapper.eq("floor", floor).orderBy("lev1", false);
+ } else {
+ //B鏄簩鍘傦紝G鏄笁鍘�
+ switch (factory) {
+ case "B":
+ wrapper.eq("floor", floor).orderBy("lev1", true);
+ break;
+ case "G":
+ wrapper.eq("floor", floor).orderBy("lev1", false);
+ break;
+ default:
+ wrapper.eq("floor", floor).orderBy("lev1", true);
+ break;
+ }
}
- }
- return null;
+ //褰撶洰鏍囧簱浣嶆槸1妤�
+ if (floor == 1) {
+ wrapper.orderBy("loc_no", false);
+ }
+ agvLocMasts = agvLocMastService.selectList(wrapper);
+ for (AgvLocMast agvLocMast : agvLocMasts) {
+ AgvLocMast agvLocMast1 = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvLocMast.getLocNo()));
+ if (agvLocMast1.getLocSts().equals("O")) {
+ return agvLocMast1;
+ }
+ }
+ throw new CoolException("鎼滅储搴撲綅鏃讹紝鏈壘鍒板彲鍏ュ簱搴撲綅銆�");
+ } catch (Exception e) {
+ throw new CoolException("鎼滅储搴撲綅鏃讹紝鏈壘鍒板彲鍏ュ簱搴撲綅銆�");
+ }
}
/*
--
Gitblit v1.9.1