From 45333415b7634fc20b03b7e8ae3b7eee91101bda Mon Sep 17 00:00:00 2001
From: zyx <zyx123456>
Date: 星期四, 07 十二月 2023 10:48:31 +0800
Subject: [PATCH] 增加筛选条件
---
src/main/java/com/zy/common/service/AgvCommonService.java | 101 +++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 91 insertions(+), 10 deletions(-)
diff --git a/src/main/java/com/zy/common/service/AgvCommonService.java b/src/main/java/com/zy/common/service/AgvCommonService.java
index 9049ce8..8684a32 100644
--- a/src/main/java/com/zy/common/service/AgvCommonService.java
+++ b/src/main/java/com/zy/common/service/AgvCommonService.java
@@ -27,6 +27,10 @@
private AgvLocRuleService agvLocRuleService;
@Autowired
private AgvLocMastService agvLocMastService;
+ @Autowired
+ private MatService matService;
+ @Autowired
+ private LocRuleService locRuleService;
public int getWorkNo(Integer wrkMk) {
AgvWrkLastno wrkLastno = agvWrkLastnoService.selectById(wrkMk);
@@ -70,9 +74,19 @@
public AgvLocMast getLocNo(List<AgvWaitPakin> agvWaitPakinList, int floor) {
// 鐩爣搴撲綅
AgvLocMast locMast = null;
+ if(Cools.isEmpty(agvWaitPakinList)){
+ return getLocNoRule(floor);
+ }
//搴撲綅瑙勫垯
locMast = getLocByLocRule(agvWaitPakinList.get(0),floor);
+ if(!Cools.isEmpty(locMast)){
+ return locMast;
+ }
+
+
+ //搴撲綅缂栫爜瑙勫垯
+ locMast = getLocByLocCodeRule(agvWaitPakinList.get(0),floor);
if(!Cools.isEmpty(locMast)){
return locMast;
}
@@ -83,15 +97,18 @@
//鎵惧埌搴撲綅锛岃繑鍥瀌to
//return getLocNoStep6(staDescId, sourceStaNo, locMast);//杩斿洖dto
}
-//
-// // 闈犺繎鎽嗘斁瑙勫垯 --- 绌烘墭
-// locMast = getLocNoStep4(staDescId, locTypeDto);
-// if (locMast != null) {
-// //鎵惧埌搴撲綅锛岃繑鍥瀌to
-// return getLocNoStep6(staDescId, sourceStaNo, locMast);//杩斿洖dto
-// }
-//
-// // 濡傛灉娌℃湁鐩歌繎鐗╂枡锛屽垯鎸夎鍒欒疆璇㈣揣鏋�
+
+ //鏍规嵁鐗╂枡棰戠巼鎼滅储搴撲綅锛岄鐜囬珮鍒欐悳绱㈢缂撳瓨璐ф灦鏈�杩戝簱浣嶏紝棰戠巼浣庡垯鎼滅储鏈�杩滃簱浣�
+ Mat mat = matService.selectByMatnr(agvWaitPakinList.get(0).getMatnr());
+ if(Cools.isEmpty(mat.getBeBatch())){
+ mat.setBeBatch(0);
+ }
+ locMast = getLocByFre(mat.getBeBatch(), floor);
+ if (locMast != null) {
+ return locMast;
+ }
+
+
// 寮�濮嬫煡鎵惧簱浣� ==============================>>
locMast = getLocNoRule(floor);
if (locMast != null) {
@@ -137,14 +154,78 @@
}
/*
+ 搴撲綅瑙勫垯鏌ユ壘
+ */
+ private AgvLocMast getLocByLocCodeRule(AgvWaitPakin agvWaitPakin, int floor) {
+ if(Cools.isEmpty(agvWaitPakin.getBrand())){
+ return null;
+ }
+
+ //搴撳尯
+ String other = "agv-" + floor;
+ List<LocRule> locRules = locRuleService.findCode(agvWaitPakin.getMatnr(), other);
+ if(Cools.isEmpty(locRules)){
+ return null;
+ }
+
+ for (LocRule agvLocRule : locRules) {
+ 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;
+ }
+ }
+
+ return null;
+ }
+
+ /*
闈犺繎鎽嗘斁瑙勫垯
*/
-
private AgvLocMast getLocByProximityRule(){
//to do
return null;
}
+ /*
+ 鏍规嵁鐗╂枡棰戠巼鏌ユ壘
+ */
+ private AgvLocMast getLocByFre(int fre, int floor){
+ if(floor == 1){
+ if(fre == 1){
+ return agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>()
+ .eq("floor",floor)
+ .eq("loc_sts","O")
+ .orderBy("bay1",false));
+ }else{
+ return agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>()
+ .eq("floor",floor)
+ .eq("loc_sts","O")
+ .orderBy("bay1"));
+ }
+ }
+ if(floor == 3){
+ if(fre == 1){
+ return agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>()
+ .eq("floor",floor)
+ .eq("loc_sts","O")
+ .orderBy("row1",false));
+ }else{
+ return agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>()
+ .eq("floor",floor)
+ .eq("loc_sts","O")
+ .orderBy("row1"));
+ }
+ }
+
+ throw new CoolException("鎼滅储搴撲綅鏃讹紝妤煎眰鍑洪敊銆�");
+ }
+
//闅忔満鍙栦竴涓揣浣�
private AgvLocMast getLocNoRule(int floor){
return agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>()
--
Gitblit v1.9.1