From 5e1164518df7f1d3fe1870f9c29b073e33048e4a Mon Sep 17 00:00:00 2001
From: whycq <10027870+whycq@user.noreply.gitee.com>
Date: 星期三, 05 六月 2024 16:47:04 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/common/service/AgvCommonService.java | 48 +++++++++++++---
src/main/webapp/views/home/map2.html | 6 +
src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java | 4
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java | 8 +-
src/main/java/com/zy/asrs/task/AutoMoveScheduler.java | 32 +++++-----
src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java | 31 ++++++++-
src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java | 14 ++--
7 files changed, 99 insertions(+), 44 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
index 0660704..591ab0b 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
@@ -423,7 +423,7 @@
throw new CoolException("褰撳墠"+agvLocMast.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
}
//妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
- AgvLocMast locMast = agvCommonService.getLocNo(agvLocMast.getLocType1(),floor);
+ AgvLocMast locMast = agvCommonService.getLocNo(agvLocMast.getLocType1(),floor,false,true);
if (Cools.isEmpty(locMast)) {
throw new CoolException("褰撳墠妤煎眰娌℃湁绌哄簱浣�");
}
@@ -556,7 +556,7 @@
if (agvWrkMast.getCrnNo() != agvBasDevp.getFloor()) {
throw new CoolException("璇风Щ鍔ㄥ埌->" + agvWrkMast.getCrnNo() + "妤煎叆搴撶偣鍏ュ簱");
}
- AgvLocMast locNo = agvCommonService.getLocNo(3, 1);
+ AgvLocMast locNo = agvCommonService.getLocNo(3, 1,false,true);
//宸ヤ綔鐘舵��
agvWrkMast.setWrkSts(211L);
//鍏ュ嚭搴撶被鍨�
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
index 6669120..542545d 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -91,7 +91,7 @@
List<AgvWaitPakin> agvWaitPakinList = agvWaitPakinService.selectList(new EntityWrapper<AgvWaitPakin>().eq("supp_code", agvBasDevp.getBarcode()));
//妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
- AgvLocMast agvLocMast = agvCommonService.getLocNo(agvBasDevp.getLocType1(),agvBasDevp.getFloor());
+ AgvLocMast agvLocMast = agvCommonService.getLocNo(agvBasDevp.getLocType1(),agvBasDevp.getFloor(),false,false);
//鐢熸垚宸ヤ綔妗�
AgvWrkMast wrkMast = createWrkMast(1,201L,agvBasDevp.getDevNo(),agvLocMast.getLocNo(),agvBasDevp.getBarcode(),now,userId, agvBasDevp.getLocType2());
//鏍囪鏄惁涓鸿緭閫佺嚎鍏ュ簱
@@ -349,12 +349,13 @@
}
//妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
- AgvLocMast agvLocMast = agvCommonService.getLocNo(locType,agvBasDevp.getFloor());
+ AgvLocMast agvLocMast = new AgvLocMast();
+
//鏌ヨ鍏ュ簱閫氱煡妗�
List<AgvWaitPakin> agvWaitPakinList = agvWaitPakinService.selectByContainerCode(containerCode);
if(!Cools.isEmpty(agvWaitPakinList)){
-
+ agvLocMast = agvCommonService.getLocNo(locType,agvBasDevp.getFloor(),false,false);
String devNo = agvBasDevp.getDevNo();
String locNo = agvLocMast.getLocNo();
@@ -370,6 +371,7 @@
//鏇存柊婧愮珯鐐圭姸鎬�
updateAgvBasDevp(agvBasDevp,"R",containerType);
}else {
+ agvLocMast = agvCommonService.getLocNo(locType,agvBasDevp.getFloor(),true,true);
// 鐢熸垚宸ヤ綔妗� 10.绌烘澘鍏ュ簱
createWrkMast(10,201L,agvBasDevp.getDevNo(),agvLocMast.getLocNo(),containerCode,now,userId,containerType);
//鏇存柊婧愮珯鐐圭姸鎬�
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java b/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
index dc15777..e3f57a5 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
@@ -105,7 +105,7 @@
public int startAllcationIn(AgvWrkMast agvWrkMast) throws IOException {
AgvBasDevp basDevp = agvBasDevpService.selectByDevNo(agvWrkMast.getSourceLocNo());
//妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
- AgvLocMast locMast = agvCommonService.getLocNo(basDevp.getLocType1(),basDevp.getFloor());
+ AgvLocMast locMast = agvCommonService.getLocNo(basDevp.getLocType1(),basDevp.getFloor(),false,true);
agvWrkMast.setLocNo(locMast.getLocNo());
agvWrkMast.setWrkSts(201L);
agvWrkMastService.updateById(agvWrkMast);
@@ -221,10 +221,31 @@
agvWrkMast.setWrkNo(-agvWrkMast.getWrkNo());
}
agvTaskCreateParam.setTaskCode(agvWrkMast.getWrkNo().toString());
- if (agvWrkMast.getIoType() == 108 || (agvWrkMast.getIoType() == 109 && agvWrkMast.getWrkSts() == 201) || agvWrkMast.getIoType() == 12) {
- agvTaskCreateParam.setTaskTyp("F06");
- } else {
- agvTaskCreateParam.setTaskTyp("F01");
+ switch (agvWrkMast.getIoType()) {
+ case 108:
+ case 12:
+ agvTaskCreateParam.setTaskTyp("F06");
+ break;
+ case 109:
+ if (agvWrkMast.getWrkSts() == 201) {
+ agvTaskCreateParam.setTaskTyp("F06");
+ } else {
+ agvTaskCreateParam.setTaskTyp("F01");
+ }
+ break;
+ case 1:
+ // 鍏ュ簱浠诲姟鏄彧鏈� 鎺ラ┏浣� -- > 搴撲綅
+ AgvLocMast loc = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvWrkMast.getLocNo()));
+ String locSub = loc.getLocNo().substring(loc.getLocNo().length() - 4).substring(0, 2).substring(0, 2);
+ if ("02".equals(locSub)) {
+ agvTaskCreateParam.setTaskTyp("F06");
+ } else {
+ agvTaskCreateParam.setTaskTyp("F01");
+ }
+ break;
+ default:
+ agvTaskCreateParam.setTaskTyp("F01");
+ break;
}
agvTaskCreateParam.setPositionCodePath(agvTaskParamList);
diff --git a/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java b/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java
index 1c82e8f..5c9af68 100644
--- a/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java
+++ b/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java
@@ -203,24 +203,22 @@
*/
@Scheduled(cron = "0/2 * * * * ? ")
private void autoEmptyBack4(){
-// if (determineFloorConnection(2)){
- // 鏌ヨ 涓嶄负1妤肩殑绌鸿揣鏋�
- List<AgvLocMast> agvLocMasts = agvLocMastService.selectList(
- new EntityWrapper<AgvLocMast>()
- .ne("floor", 1)
- .eq("loc_sts","D")
- .eq("loc_type1",3));
- if (agvLocMasts.isEmpty()) {
- return;
+ // 鏌ヨ 涓嶄负1妤肩殑绌鸿揣鏋�
+ List<AgvLocMast> agvLocMasts = agvLocMastService.selectList(
+ new EntityWrapper<AgvLocMast>()
+ .ne("floor", 1)
+ .eq("loc_sts","D")
+ .eq("loc_type1",3));
+ if (agvLocMasts.isEmpty()) {
+ return;
+ }
+ for (AgvLocMast agvLocMast : agvLocMasts) {
+ try{
+ autoMoveHandler.autoEmptyBack4(agvLocMast);
+ } catch (Exception e){
+ log.error("搴撲綅鍙�"+agvLocMast.getLocNo()+"绌烘澘鑷姩鍥炲簱 搴撲綅-鎺ラ┏鐐� 搴撲綅-鍚稿杞﹂棿,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage());
}
- for (AgvLocMast agvLocMast : agvLocMasts) {
- try{
- autoMoveHandler.autoEmptyBack4(agvLocMast);
- } catch (Exception e){
- log.error("搴撲綅鍙�"+agvLocMast.getLocNo()+"绌烘澘鑷姩鍥炲簱 搴撲綅-鎺ラ┏鐐� 搴撲綅-鍚稿杞﹂棿,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage());
- }
- }
-// }
+ }
}
private boolean determineFloorConnection(Integer floor){
diff --git a/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java b/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java
index 1a40d13..1d2ebdc 100644
--- a/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java
@@ -55,7 +55,7 @@
doHandMove2(agvWrkMast);
return SUCCESS;
}
-
+ //鏍规嵁搴撲綅鐨刲octype鍊煎彂閫佷换鍔�--寮冪敤
private ReturnT<String> doAutoMove(AgvLocMast agvLocMast) {
Date now = new Date();
//鏌ヨ宸ヤ綔妗�
@@ -64,7 +64,7 @@
throw new CoolException("褰撳墠"+agvLocMast.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
}
//妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
- AgvLocMast LocMast = agvCommonService.getLocNo(3,agvLocMast.getLocType3());
+ AgvLocMast LocMast = agvCommonService.getLocNo(3,agvLocMast.getLocType3(),false,true);
//鐢熸垚宸ヤ綔妗�
AgvWrkMast mast = new AgvWrkMast();
//宸ヤ綔鐘舵��
@@ -182,7 +182,7 @@
private ReturnT<String> doAutoMove2(AgvWrkMast agvWrkMast) {
Date now = new Date();
//妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
- AgvLocMast locMast = agvCommonService.getLocNo(3,agvWrkMast.getCrnNo());
+ AgvLocMast locMast = agvCommonService.getLocNo(3,agvWrkMast.getCrnNo(),false,true);
if (Cools.isEmpty(locMast)) {
throw new CoolException("鏆傛棤搴撲綅");
}
@@ -274,7 +274,7 @@
Date now = new Date();
AgvBasDevp agvBasDevp = agvBasDevpService.selectByDevNo(agvWrkMast.getSourceLocNo());
//妫�绱㈢┖闂叉帴椹充綅锛岄�夋嫨鍚堥�傜殑鎺ラ┏浣�
- AgvLocMast locMast = agvCommonService.getLocNo(3, 1);
+ AgvLocMast locMast = agvCommonService.getLocNo(3, 1,true,true);
if (Cools.isEmpty(locMast)) {
throw new CoolException("1妤兼殏鏃犵┖搴撲綅");
}
@@ -299,7 +299,7 @@
throw new CoolException("褰撳墠"+agvLocMast.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
}
//妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
- AgvLocMast LocMast = agvCommonService.getLocNo(3,1);
+ AgvLocMast LocMast = agvCommonService.getLocNo(3,1,true,true);
//鐢熸垚宸ヤ綔妗�
AgvWrkMast mast = new AgvWrkMast();
//宸ヤ綔鐘舵��
@@ -361,7 +361,7 @@
ioType = 109;
} else {
//妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
- locMast = agvCommonService.getLocNo(3,1);
+ locMast = agvCommonService.getLocNo(3,1,true,true);
locNo = locMast.getLocNo();
wrkSts = 201L;
ioType = 109;
@@ -434,7 +434,7 @@
//鍏ュ嚭搴撶被鍨�
mast.setIoType(109);
//妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
- AgvLocMast locMast = agvCommonService.getLocNo(3,1);
+ AgvLocMast locMast = agvCommonService.getLocNo(3,1,true,true);
mast.setLocNo(locMast.getLocNo());
updateAgvLocMast(locMast,"S");
} else {
diff --git a/src/main/java/com/zy/common/service/AgvCommonService.java b/src/main/java/com/zy/common/service/AgvCommonService.java
index f756a9a..8efe2b6 100644
--- a/src/main/java/com/zy/common/service/AgvCommonService.java
+++ b/src/main/java/com/zy/common/service/AgvCommonService.java
@@ -9,6 +9,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.util.ArrayList;
import java.util.List;
/**
@@ -73,7 +74,7 @@
* 妫�绱㈠簱浣嶅彿
* @return locNo 妫�绱㈠埌鐨勫簱浣嶅彿
*/
- public AgvLocMast getLocNo(int type, int floor) {
+ public AgvLocMast getLocNo(int type, int floor,boolean isEmpty,boolean isCurrLev) {
// 鐩爣搴撲綅
AgvLocMast locMast = null;
// if(Cools.isEmpty(agvWaitPakinList)){
@@ -113,16 +114,16 @@
try{
// 寮�濮嬫煡鎵惧簱浣� ==============================>>
- locMast = getLocNoRule(type,floor);
+ locMast = getLocNoRule(type,floor,isEmpty,isCurrLev);
if (locMast != null) {
return locMast;
}
}catch (Exception e){
- throw new CoolException("妤煎眰鍙凤細"+floor+"锛涜妤煎眰娌℃湁绌哄簱浣�===>"+e.getMessage());
+ throw new CoolException(floor+"妤硷紱璇ユゼ灞傛病鏈夌┖搴撲綅===>"+e.getMessage());
}
//鎵句笉鍒板簱浣嶏紝鎶涘嚭寮傚父
- throw new CoolException("妤煎眰鍙凤細"+floor+"锛涜妤煎眰娌℃湁绌哄簱浣�");
+ throw new CoolException(floor+"妤硷紱璇ユゼ灞傛病鏈夌┖搴撲綅");
}
/*
@@ -233,12 +234,41 @@
}
//闅忔満鍙栦竴涓揣浣�
- private AgvLocMast getLocNoRule(int type,int floor){
+ private AgvLocMast getLocNoRule(int type,int floor,boolean isEmpty,boolean isCurrLev){
+ Boolean orderBy = false;
+ int levCount = 0;
+ int times = 1;
+ if (floor == 1) {
+ orderBy = true;
+ levCount = 2;
+ } else {
+ orderBy = false;
+ levCount = 1;
+ }
try{
- List<AgvLocMast> agvLocMasts = agvLocMastService.selectList(new EntityWrapper<AgvLocMast>()
- .eq("loc_sts", "O")
- .eq("floor", floor)
- .eq("loc_type1", type));
+ EntityWrapper<AgvLocMast> wrapper = new EntityWrapper<>();
+ wrapper.eq("loc_sts", "O").eq("loc_type1", type);
+ List<AgvLocMast> agvLocMasts = new ArrayList<>();
+ //涓嶆槸绌烘澘浼樺厛鎵�2灞�
+ if (isEmpty) {
+ wrapper.eq("floor", floor).eq("lev1",1);
+ } else {
+ wrapper.eq("floor", floor).orderBy("lev1",!orderBy);
+ }
+
+
+ //褰撶洰鏍囧簱浣嶆槸1妤�
+ if(floor == 1) {
+ wrapper.orderBy("loc_no",false);
+ }
+ agvLocMasts = agvLocMastService.selectList(wrapper);
+ //鏄惁褰撳墠灞�
+ if (Cools.isEmpty(agvLocMasts) && !isCurrLev) {
+ if (times < levCount) {
+ times++;
+ return getLocNoRule(type,floor,isEmpty,isCurrLev);
+ }
+ }
for (AgvLocMast agvLocMast : agvLocMasts){
AgvLocMast agvLocMast1 = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvLocMast.getLocNo()));
if (agvLocMast1.getLocSts().equals("O")){
diff --git a/src/main/webapp/views/home/map2.html b/src/main/webapp/views/home/map2.html
index e8e0c00..25a0932 100644
--- a/src/main/webapp/views/home/map2.html
+++ b/src/main/webapp/views/home/map2.html
@@ -591,7 +591,6 @@
currentLev: {
deep: true,
handler(val) {
- console.log(val)
this.init()
if (this.searchMatnr != ""
|| this.searchOrderNo != ""
@@ -605,6 +604,11 @@
currentFloor: {
deep: true,
handler(val) {
+ if (val == 1) {
+ this.floorList = [1,2]
+ } else {
+ this.floorList = [1]
+ }
this.init()
if (this.searchMatnr != ""
|| this.searchOrderNo != ""
--
Gitblit v1.9.1