From e90dba0edc93be26e1509cfb2ec1d0681eb86e48 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期三, 27 八月 2025 08:37:04 +0800
Subject: [PATCH] 合并出库添加日志
---
src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java | 666 ++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 512 insertions(+), 154 deletions(-)
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 1d2ebdc..1a5e60b 100644
--- a/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java
@@ -1,6 +1,7 @@
package com.zy.asrs.task.handler;
+import com.baomidou.mybatisplus.enums.SqlLike;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.core.exception.CoolException;
@@ -9,6 +10,8 @@
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import com.zy.common.service.AgvCommonService;
+import com.zy.system.entity.Config;
+import com.zy.system.service.ConfigService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -34,94 +37,107 @@
private AgvWrkDetlService agvWrkDetlService;
@Autowired
AgvBasDevpService agvBasDevpService;
+ @Autowired
+ private ConfigService configService;
- public ReturnT<String> start(AgvLocMast agvLocMast) {
- // locType 1. 鑷姩锛� 2. 鎵嬪姩
- if (agvLocMast.getLocType().equals("1")) {
- return doAutoMove(agvLocMast);
- } else if (agvLocMast.getLocType().equals("2")) {
- return doHandMove(agvLocMast);
- }
- return SUCCESS;
- }
+// public ReturnT<String> start(AgvLocMast agvLocMast) {
+// // locType 1. 鑷姩锛� 2. 鎵嬪姩
+// if (agvLocMast.getLocType().equals("1")) {
+// return doAutoMove(agvLocMast);
+// } else if (agvLocMast.getLocType().equals("2")) {
+// return doHandMove(agvLocMast);
+// }
+// return SUCCESS;
+// }
+ @Transactional
public ReturnT<String> start2(AgvWrkMast agvWrkMast) {
// locType 1. 鑷姩锛� 2. 鎵嬪姩
doAutoMove2(agvWrkMast);
return SUCCESS;
}
+
+ @Transactional
public ReturnT<String> start3(AgvWrkMast agvWrkMast) {
// locType 1. 鑷姩锛� 2. 鎵嬪姩
doHandMove2(agvWrkMast);
return SUCCESS;
}
- //鏍规嵁搴撲綅鐨刲octype鍊煎彂閫佷换鍔�--寮冪敤
- private ReturnT<String> doAutoMove(AgvLocMast agvLocMast) {
- Date now = new Date();
- //鏌ヨ宸ヤ綔妗�
- AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(agvLocMast.getBarcode());
- if(!Cools.isEmpty(agvWrkMast)){
- throw new CoolException("褰撳墠"+agvLocMast.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
- }
- //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
- AgvLocMast LocMast = agvCommonService.getLocNo(3,agvLocMast.getLocType3(),false,true);
- //鐢熸垚宸ヤ綔妗�
- AgvWrkMast mast = new AgvWrkMast();
- //宸ヤ綔鐘舵��
- mast.setWrkSts(201L);
- //鍏ュ嚭搴撶被鍨�
- mast.setIoType(108);
- mast.setIoTime(now);
- //浼樺厛绾�
- mast.setIoPri(300.0);
- //婧愮珯鐐�
- mast.setSourceLocNo(agvLocMast.getLocNo());
- //鐩爣绔欑偣
- mast.setLocNo(LocMast.getLocNo());
- //璐ф灦缂栫爜
- mast.setBarcode(agvLocMast.getBarcode());
- //璐ф灦绫诲瀷
- mast.setWhsType(30);
- mast.setAppeUser(9527L);
- mast.setAppeTime(now);
- mast.setModiUser(9527L);
- mast.setModiTime(now);
- if (!agvWrkMastService.insertByIncrease(mast)) {
- throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
- }
-
- AgvWrkMast mast1 = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", LocMast.getLocNo()).eq("source_loc_no",agvLocMast.getLocNo()));
- //鐢熸垚宸ヤ綔妗f槑缁�
- List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", agvLocMast.getLocNo()));
- agvLocDetls.forEach(agvLocDetl -> {
- AgvWrkDetl wrkDetl = new AgvWrkDetl();
- wrkDetl.setWrkNo(mast1.getWrkNo());
- wrkDetl.sync(agvLocDetl);
- wrkDetl.setSpecs("1-" + agvLocMast.getLocType3());
- wrkDetl.setSuppCode(agvLocDetl.getSuppCode());
- wrkDetl.setIoTime(now);
- wrkDetl.setAppeUser(9527L);
- wrkDetl.setAppeTime(now);
- wrkDetl.setModiUser(9527L);
- wrkDetl.setModiTime(now);
- if (!agvWrkDetlService.insert(wrkDetl)) {
- throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
- }
- });
- //鏇存柊鐩爣搴撲綅鐘舵��
- updateAgvLocMast(agvLocMast,"R");
- updateAgvLocMast(LocMast,"S");
-
+ @Transactional
+ public ReturnT<String> start4(AgvWrkMast agvWrkMast) {
+ // locType 1. 鑷姩锛� 2. 鎵嬪姩
+ doAutoMove3(agvWrkMast);
return SUCCESS;
}
+ //鏍规嵁搴撲綅鐨刲octype鍊煎彂閫佷换鍔�--寮冪敤
+// private ReturnT<String> doAutoMove(AgvLocMast agvLocMast) {
+// Date now = new Date();
+// //鏌ヨ宸ヤ綔妗�
+// AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(agvLocMast.getBarcode());
+// if(!Cools.isEmpty(agvWrkMast)){
+// throw new CoolException("褰撳墠"+agvLocMast.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
+// }
+// //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
+// AgvLocMast LocMast = agvCommonService.getLocNo(3,agvLocMast.getLocType3(),false,true);
+// //鐢熸垚宸ヤ綔妗�
+// AgvWrkMast mast = new AgvWrkMast();
+// //宸ヤ綔鐘舵��
+// mast.setWrkSts(201L);
+// //鍏ュ嚭搴撶被鍨�
+// mast.setIoType(108);
+// mast.setIoTime(now);
+// //浼樺厛绾�
+// mast.setIoPri(300.0);
+// //婧愮珯鐐�
+// mast.setSourceLocNo(agvLocMast.getLocNo());
+// //鐩爣绔欑偣
+// mast.setLocNo(LocMast.getLocNo());
+// //璐ф灦缂栫爜
+// mast.setBarcode(agvLocMast.getBarcode());
+// //璐ф灦绫诲瀷
+// mast.setWhsType(30);
+//
+// mast.setAppeUser(9527L);
+// mast.setAppeTime(now);
+// mast.setModiUser(9527L);
+// mast.setModiTime(now);
+// mast.setLogErrMemo("doAutoMove");
+// if (!agvWrkMastService.insertByIncrease(mast)) {
+// throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+// }
+//
+// AgvWrkMast mast1 = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", LocMast.getLocNo()).eq("source_loc_no",agvLocMast.getLocNo()));
+// //鐢熸垚宸ヤ綔妗f槑缁�
+// List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", agvLocMast.getLocNo()));
+// agvLocDetls.forEach(agvLocDetl -> {
+// AgvWrkDetl wrkDetl = new AgvWrkDetl();
+// wrkDetl.setWrkNo(mast1.getWrkNo());
+// wrkDetl.sync(agvLocDetl);
+// wrkDetl.setSpecs("1-" + agvLocMast.getLocType3());
+// wrkDetl.setSuppCode(agvLocDetl.getSuppCode());
+// wrkDetl.setIoTime(now);
+// wrkDetl.setAppeUser(9527L);
+// wrkDetl.setAppeTime(now);
+// wrkDetl.setModiUser(9527L);
+// wrkDetl.setModiTime(now);
+// if (!agvWrkDetlService.insert(wrkDetl)) {
+// throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+// }
+// });
+// //鏇存柊鐩爣搴撲綅鐘舵��
+// updateAgvLocMast(agvLocMast,"R");
+// updateAgvLocMast(LocMast,"S");
+//
+// return SUCCESS;
+// }
private ReturnT<String> doHandMove(AgvLocMast agvLocMast) {
Date now = new Date();
//鏌ヨ宸ヤ綔妗�
AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(agvLocMast.getBarcode());
- if(!Cools.isEmpty(agvWrkMast)){
- throw new CoolException("褰撳墠"+agvLocMast.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
+ if (!Cools.isEmpty(agvWrkMast)) {
+ throw new CoolException("褰撳墠" + agvLocMast.getBarcode() + "璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
}
// //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
// AgvLocMast LocMast = agvCommonService.getLocNo(3,agvLocMast.getLocType3());
@@ -143,7 +159,8 @@
//璐ф灦缂栫爜
mast.setBarcode(agvLocMast.getBarcode());
//璐ф灦绫诲瀷
- mast.setWhsType(30);
+ mast.setWhsType(Integer.parseInt(agvLocMast.getBarcode().substring(0, 2)));
+
// 鐩爣妤煎眰
mast.setPauseMk(agvLocMast.getLocType3().toString());
@@ -155,7 +172,7 @@
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
}
- AgvWrkMast mast1 = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", devpNo.getDevNo()).eq("source_loc_no",agvLocMast.getLocNo()));
+ AgvWrkMast mast1 = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", devpNo.getDevNo()).eq("source_loc_no", agvLocMast.getLocNo()));
//鐢熸垚宸ヤ綔妗f槑缁�
List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", agvLocMast.getLocNo()));
agvLocDetls.forEach(agvLocDetl -> {
@@ -174,56 +191,115 @@
}
});
//鏇存柊鐩爣搴撲綅鐘舵��
- updateAgvLocMast(agvLocMast,"R");
- updateAgvBasDevp(devpNo,"S",null,agvLocMast.getBarcode());
+ updateAgvLocMast(agvLocMast, "R");
+ updateAgvBasDevp(devpNo, "S", null, agvLocMast.getBarcode());
return SUCCESS;
}
- private ReturnT<String> doAutoMove2(AgvWrkMast agvWrkMast) {
+ @Transactional
+ public ReturnT<String> doAutoMove2(AgvWrkMast agvWrkMast) {
+ Date now = new Date();
+ String barcode = agvWrkMast.getBarcode();
+ AgvLocMast locMast;
+ if (Integer.parseInt(barcode.substring(0, 2)) == 31) {
+ //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
+ locMast = agvCommonService.getLocByLocRule(6, 2, 1);
+ } else {
+ //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
+ locMast = agvCommonService.getLocNo(3, agvWrkMast.getCrnNo(), false, true);
+ }
+
+ if (Cools.isEmpty(locMast)) {
+ log.info("鏆傛棤搴撲綅");
+ return FAIL;
+ //throw new CoolException("鏆傛棤搴撲綅");
+ }
+ AgvWrkMast workingMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", locMast.getLocNo()));
+ if (!Cools.isEmpty(workingMast)) {
+ log.info("褰撳墠搴撲綅姝e湪杩涜鍏ュ簱锛岃繘琛屼笅涓�娆¤疆璇�");
+ return FAIL;
+ //throw new CoolException("褰撳墠搴撲綅姝e湪杩涜鍏ュ簱锛岃繘琛屼笅涓�娆¤疆璇�");
+ }
+ agvWrkMast.setWrkSts(201L);
+ agvWrkMast.setModiTime(new Date());
+ agvWrkMast.setLocNo(locMast.getLocNo());
+ agvWrkMast.setLogErrMemo("start2-doAutoMove2");
+ agvWrkMastService.updateById(agvWrkMast);
+ //鏇存柊鐩爣搴撲綅鐘舵��
+ updateAgvLocMast(locMast, "S");
+ AgvLocMast locMast1 = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", locMast.getLocNo()));
+ log.info("鑷姩璋冩嫧浠诲姟 ==> 婧愬簱浣嶏細{}锛岀洰鏍囧簱浣嶏細{},搴撲綅鐘舵�亄}", agvWrkMast.getSourceLocNo(), agvWrkMast.getLocNo(), locMast1.getLocSts());
+
+ return SUCCESS;
+ }
+
+ @Transactional
+ public ReturnT<String> doAutoMove3(AgvWrkMast agvWrkMast) {
Date now = new Date();
//妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
- AgvLocMast locMast = agvCommonService.getLocNo(3,agvWrkMast.getCrnNo(),false,true);
+ AgvLocMast locMast = agvCommonService.getLocNo(3, agvWrkMast.getCrnNo(), false, false);
if (Cools.isEmpty(locMast)) {
- throw new CoolException("鏆傛棤搴撲綅");
+ log.info("鏆傛棤搴撲綅");
+ return FAIL;
+ //throw new CoolException("鏆傛棤搴撲綅");
}
agvWrkMast.setWrkSts(201L);
agvWrkMast.setLocNo(locMast.getLocNo());
+ agvWrkMast.setLogErrMemo("start2-doAutoMove2");
+ agvWrkMast.setModiTime(new Date());
agvWrkMastService.updateById(agvWrkMast);
//鏇存柊鐩爣搴撲綅鐘舵��
- updateAgvLocMast(locMast,"S");
+ updateAgvLocMast(locMast, "S");
return SUCCESS;
}
- private ReturnT<String> doHandMove2(AgvWrkMast agvWrkMast) {
+
+ @Transactional
+ public ReturnT<String> doHandMove2(AgvWrkMast agvWrkMast) {
Date now = new Date();
- AgvBasDevp devpNo = agvCommonService.getDevpNo(3, 1, "Y", "Y");
+ String lev1 = agvWrkMast.getSourceLocNo().substring(agvWrkMast.getSourceLocNo().length() - 4).substring(0, 2);
+ AgvBasDevp devpNo = new AgvBasDevp();
+ if ("01".equals(lev1)) {
+ devpNo = agvCommonService.getDevpNo(3, 1, "Y", "Y");
+ } else {
+ devpNo = agvCommonService.getDevpNo(3, 4, "Y", "Y");
+ }
+
if (Cools.isEmpty(devpNo)) {
- throw new CoolException("鏆傛棤绌洪棽鎺ラ┏浣�");
+ //log.info("鏆傛棤绌洪棽鎺ラ┏浣�");
+ return FAIL;
+ //throw new CoolException("鏆傛棤绌洪棽鎺ラ┏浣�");
}
agvWrkMast.setWrkSts(201L);
agvWrkMast.setLocNo(devpNo.getDevNo());
+ agvWrkMast.setModiTime(new Date());
+ agvWrkMast.setLogErrMemo("start3-doHandMove2");
agvWrkMastService.updateById(agvWrkMast);
- updateAgvBasDevp(devpNo,"S",null,agvWrkMast.getBarcode());
+ agvWrkMast.setModiTime(new Date());
+ updateAgvBasDevp(devpNo, "S", null, agvWrkMast.getBarcode());
return SUCCESS;
}
+
/*
鏇存柊鐩爣搴撲綅淇℃伅
*/
- private void updateAgvLocMast(AgvLocMast locMast, String locSts){
+ public void updateAgvLocMast(AgvLocMast locMast, String locSts) {
locMast.setLocSts(locSts);
agvLocMastService.updateById(locMast);
}
+
/*
鏇存柊婧愮珯鐐逛俊鎭�
*/
- private void updateAgvBasDevp(AgvBasDevp agvBasDevp, String locSts){
- if(!Cools.isEmpty(agvBasDevp)){
+ public void updateAgvBasDevp(AgvBasDevp agvBasDevp, String locSts) {
+ if (!Cools.isEmpty(agvBasDevp)) {
agvBasDevp.setLocSts(locSts);
agvBasDevpService.updateById(agvBasDevp);
}
}
- private void updateAgvBasDevp(AgvBasDevp agvBasDevp, String locSts, Short continerType, String containerCode){
- if(!Cools.isEmpty(agvBasDevp)){
+
+ public void updateAgvBasDevp(AgvBasDevp agvBasDevp, String locSts, Short continerType, String containerCode) {
+ if (!Cools.isEmpty(agvBasDevp)) {
agvBasDevp.setLocSts(locSts);
agvBasDevp.setBarcode(containerCode);
agvBasDevpService.updateById(agvBasDevp);
@@ -234,8 +310,8 @@
Date now = new Date();
//鏌ヨ宸ヤ綔妗�
AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(agvLocMast.getBarcode());
- if(!Cools.isEmpty(agvWrkMast)){
- throw new CoolException("褰撳墠"+agvLocMast.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
+ if (!Cools.isEmpty(agvWrkMast)) {
+ throw new CoolException("褰撳墠" + agvLocMast.getBarcode() + "璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
}
//妫�绱㈢┖闂叉帴椹充綅锛岄�夋嫨鍚堥�傜殑鎺ラ┏浣�
AgvBasDevp devpNo = agvCommonService.getDevpNo(3, agvLocMast.getFloor());
@@ -255,26 +331,30 @@
//璐ф灦缂栫爜
mast.setBarcode(agvLocMast.getBarcode());
//璐ф灦绫诲瀷
- mast.setWhsType(30);
+ mast.setWhsType(Integer.parseInt(agvLocMast.getBarcode().substring(0, 2)));
+
mast.setAppeUser(9527L);
mast.setAppeTime(now);
mast.setModiUser(9527L);
mast.setModiTime(now);
+ mast.setLogErrMemo("autoEmptyBack");
if (!agvWrkMastService.insertByIncrease(mast)) {
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
}
//鏇存柊鐩爣搴撲綅鐘舵��
- updateAgvLocMast(agvLocMast,"R");
- updateAgvBasDevp(devpNo,"S",agvLocMast.getLocType2(),agvLocMast.getBarcode());
+ updateAgvLocMast(agvLocMast, "R");
+ updateAgvBasDevp(devpNo, "S", agvLocMast.getLocType2(), agvLocMast.getBarcode());
return SUCCESS;
}
+
+ @Transactional
public ReturnT<String> autoEmptyBack3(AgvWrkMast agvWrkMast) {
Date now = new Date();
AgvBasDevp agvBasDevp = agvBasDevpService.selectByDevNo(agvWrkMast.getSourceLocNo());
//妫�绱㈢┖闂叉帴椹充綅锛岄�夋嫨鍚堥�傜殑鎺ラ┏浣�
- AgvLocMast locMast = agvCommonService.getLocNo(3, 1,true,true);
+ AgvLocMast locMast = agvCommonService.getLocNo(3, 1, true, true);
if (Cools.isEmpty(locMast)) {
throw new CoolException("1妤兼殏鏃犵┖搴撲綅");
}
@@ -283,61 +363,66 @@
agvWrkMast.setLocNo(locMast.getLocNo());
agvWrkMast.setModiUser(9527L);
agvWrkMast.setModiTime(now);
+ agvWrkMast.setLogErrMemo("autoEmptyBack3");
if (!agvWrkMastService.updateById(agvWrkMast)) {
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
}
//鏇存柊鐩爣搴撲綅鐘舵��
- updateAgvLocMast(locMast,"S");
- updateAgvBasDevp(agvBasDevp,"R");
- return SUCCESS;
- }
- public ReturnT<String> autoEmptyBack2(AgvLocMast agvLocMast) {
- Date now = new Date();
- //鏌ヨ宸ヤ綔妗�
- AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(agvLocMast.getBarcode());
- if(!Cools.isEmpty(agvWrkMast)){
- throw new CoolException("褰撳墠"+agvLocMast.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
- }
- //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
- AgvLocMast LocMast = agvCommonService.getLocNo(3,1,true,true);
- //鐢熸垚宸ヤ綔妗�
- AgvWrkMast mast = new AgvWrkMast();
- //宸ヤ綔鐘舵��
- mast.setWrkSts(201L);
- //鍏ュ嚭搴撶被鍨�
- mast.setIoType(109);
- mast.setIoTime(now);
- //浼樺厛绾�
- mast.setIoPri(300.0);
- //婧愮珯鐐�
- mast.setSourceLocNo(agvLocMast.getLocNo());
- //鐩爣绔欑偣
- mast.setLocNo(LocMast.getLocNo());
- //璐ф灦缂栫爜
- mast.setBarcode(agvLocMast.getBarcode());
- //璐ф灦绫诲瀷
- mast.setWhsType(30);
-
- mast.setAppeUser(9527L);
- mast.setAppeTime(now);
- mast.setModiUser(9527L);
- mast.setModiTime(now);
- if (!agvWrkMastService.insertByIncrease(mast)) {
- throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
- }
-
- //鏇存柊鐩爣搴撲綅鐘舵��
- updateAgvLocMast(agvLocMast,"R");
- updateAgvLocMast(LocMast,"S");
+ updateAgvLocMast(locMast, "S");
+ updateAgvBasDevp(agvBasDevp, "R");
return SUCCESS;
}
+// public ReturnT<String> autoEmptyBack2(AgvLocMast agvLocMast) {
+// Date now = new Date();
+// //鏌ヨ宸ヤ綔妗�
+// AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(agvLocMast.getBarcode());
+// if(!Cools.isEmpty(agvWrkMast)){
+// throw new CoolException("褰撳墠"+agvLocMast.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
+// }
+// //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
+// AgvLocMast LocMast = agvCommonService.getLocNo(3,1,true,true);
+// //鐢熸垚宸ヤ綔妗�
+// AgvWrkMast mast = new AgvWrkMast();
+// //宸ヤ綔鐘舵��
+// mast.setWrkSts(201L);
+// //鍏ュ嚭搴撶被鍨�
+// mast.setIoType(109);
+// mast.setIoTime(now);
+// //浼樺厛绾�
+// mast.setIoPri(300.0);
+// //婧愮珯鐐�
+// mast.setSourceLocNo(agvLocMast.getLocNo());
+// //鐩爣绔欑偣
+// mast.setLocNo(LocMast.getLocNo());
+// //璐ф灦缂栫爜
+// mast.setBarcode(agvLocMast.getBarcode());
+// //璐ф灦绫诲瀷
+// mast.setWhsType(30);
+//
+// mast.setAppeUser(9527L);
+// mast.setAppeTime(now);
+// mast.setModiUser(9527L);
+// mast.setModiTime(now);
+// mast.setLogErrMemo("autoEmptyBack2");
+// if (!agvWrkMastService.insertByIncrease(mast)) {
+// throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+// }
+//
+// //鏇存柊鐩爣搴撲綅鐘舵��
+// updateAgvLocMast(agvLocMast,"R");
+// updateAgvLocMast(LocMast,"S");
+// return SUCCESS;
+// }
+
+
+ @Transactional
public ReturnT<String> autoEmptyBack4(AgvLocMast agvLocMast) {
Date now = new Date();
//鏌ヨ宸ヤ綔妗�
AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(agvLocMast.getBarcode());
- if(!Cools.isEmpty(agvWrkMast)){
- throw new CoolException("褰撳墠"+agvLocMast.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
+ if (!Cools.isEmpty(agvWrkMast)) {
+ throw new CoolException("褰撳墠" + agvLocMast.getBarcode() + "璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
}
String floor = "";
String locNo = "";
@@ -346,22 +431,40 @@
AgvLocMast locMast = new AgvLocMast();
if (agvLocMast.getFloor() == 3) {
floor = "F3";
- } else if(agvLocMast.getFloor() == 2) {
+ } else if (agvLocMast.getFloor() == 2) {
floor = "F2";
+ } else if (agvLocMast.getFloor() == 1 && agvLocMast.getLev1() == 2) {
+ floor = "02F1";
}
- List<AgvWrkMast> agvWrkMasts = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().eq("io_type", 109).like("source_loc_no", floor).or().eq("io_type", 113));
+ List<AgvWrkMast> agvWrkMasts = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().eq("io_type", 109).like("barcode", "30", SqlLike.RIGHT).like("source_loc_no", floor).or().eq("io_type", 113));
if (agvWrkMasts.size() >= 5) {
- throw new CoolException("鏆傚仠鍥炴祦");
+ //log.error("鏆傚仠鍥炴祦");
+ return FAIL;
+ //throw new CoolException("鏆傚仠鍥炴祦");
}
//妫�绱㈢┖闂插彲鍏ユ帴椹充綅 娌℃湁绌洪棽鍙叆鎺ラ┏浣� 鐩存帴鎵惧簱浣�
- AgvBasDevp devpNo = agvCommonService.getDevpNo(3, agvLocMast.getFloor(),"Y","Y");
+ AgvBasDevp devpNo = agvCommonService.getDevpNo(3, agvLocMast.getFloor(), "Y", "Y");
if (!Cools.isEmpty(devpNo)) {
locNo = devpNo.getDevNo();
wrkSts = 21L;
ioType = 109;
} else {
+ try {
+ List<AgvLocMast> agvLocMasts = agvLocMastService.selectList(new EntityWrapper<AgvLocMast>().eq("loc_sts", "O").eq("loc_type1", 3).eq("lev1", 1).eq("floor", 1));
+ int num = 20;
+ Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "LOC_3_NUM_RETURN"));
+ if (config != null && !Cools.isEmpty(config.getValue())) {
+ num = Integer.parseInt(config.getValue());
+ }
+ if (agvLocMasts == null || agvLocMasts.size() < num) {
+ log.error("<搴撲綅涓嶈冻>" + num + "<搴撲綅涓嶈冻>");
+ return FAIL;
+ }
+ } catch (Exception e) {
+
+ }
//妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
- locMast = agvCommonService.getLocNo(3,1,true,true);
+ locMast = agvCommonService.getLocNo(3, 1, true, true);
locNo = locMast.getLocNo();
wrkSts = 201L;
ioType = 109;
@@ -383,33 +486,122 @@
//璐ф灦缂栫爜
mast.setBarcode(agvLocMast.getBarcode());
//璐ф灦绫诲瀷
- mast.setWhsType(30);
+ mast.setWhsType(Integer.parseInt(agvLocMast.getBarcode().substring(0, 2)));
+
mast.setAppeUser(9527L);
mast.setAppeTime(now);
mast.setModiUser(9527L);
mast.setModiTime(now);
+ mast.setLogErrMemo("autoEmptyBack4");
if (!agvWrkMastService.insertByIncrease(mast)) {
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
}
//鏇存柊鐩爣搴撲綅鐘舵��
- updateAgvLocMast(agvLocMast,"R");
+ updateAgvLocMast(agvLocMast, "R");
if (wrkSts == 21L) {
- updateAgvBasDevp(devpNo,"S",agvLocMast.getLocType2(),agvLocMast.getBarcode());
+ updateAgvBasDevp(devpNo, "S", agvLocMast.getLocType2(), agvLocMast.getBarcode());
} else {
- updateAgvLocMast(locMast,"S");
+ updateAgvLocMast(locMast, "S");
}
return SUCCESS;
}
+ @Transactional
+ public ReturnT<String> autoEmptyBackSiqi(AgvLocMast agvLocMast) {
+ Date now = new Date();
+ //鏌ヨ宸ヤ綔妗�
+ AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(agvLocMast.getBarcode());
+ if (!Cools.isEmpty(agvWrkMast)) {
+ throw new CoolException("褰撳墠" + agvLocMast.getBarcode() + "璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
+ }
+ String floor = "";
+ String locNo = "";
+ Long wrkSts = 0L;
+ Integer ioType = 0;
+ AgvLocMast locMast = new AgvLocMast();
+ if (agvLocMast.getFloor() == 3) {
+ floor = "F3";
+ } else if (agvLocMast.getFloor() == 2) {
+ floor = "F2";
+ }
+ List<AgvWrkMast> agvWrkMasts = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().eq("io_type", 109).like("barcode", "31", SqlLike.RIGHT).like("source_loc_no", floor).or().eq("io_type", 113));
+ Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "RETURN_6_MAX"));
+ if (config != null && !Cools.isEmpty(config.getValue())) {
+ if (agvWrkMasts.size() >= Integer.parseInt(config.getValue())) {
+ return FAIL;
+ }
+ } else {
+ if (agvWrkMasts.size() >= 5) {
+ return FAIL;
+ }
+ }
+ //妫�绱㈢┖闂插彲鍏ユ帴椹充綅 娌℃湁绌洪棽鍙叆鎺ラ┏浣� 鐩存帴鎵惧簱浣�
+ AgvBasDevp devpNo = agvCommonService.getDevpNo(6, agvLocMast.getFloor(), "Y", "Y");
+ if (!Cools.isEmpty(devpNo)) {
+ locNo = devpNo.getDevNo();
+ wrkSts = 21L;
+ ioType = 109;
+ } else {
+ //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
+ locMast = agvCommonService.getLocByFloorAndLev1(6, 1, 2);
+ locNo = locMast.getLocNo();
+ wrkSts = 201L;
+ ioType = 109;
+ }
+ if (locMast == null) {
+ throw new CoolException("娌℃湁鍙敤鐨勫簱浣�");
+ }
+ //鐢熸垚宸ヤ綔妗�
+ AgvWrkMast mast = new AgvWrkMast();
+ //宸ヤ綔鐘舵��
+ mast.setWrkSts(wrkSts);
+ //鍏ュ嚭搴撶被鍨�
+ mast.setIoType(ioType);
+ mast.setIoTime(now);
+ //浼樺厛绾�
+ mast.setIoPri(300.0);
+ //婧愮珯鐐�
+ mast.setSourceLocNo(agvLocMast.getLocNo());
+ //鐩爣绔欑偣
+ mast.setLocNo(locNo);
+ //璐ф灦缂栫爜
+ mast.setBarcode(agvLocMast.getBarcode());
+ //璐ф灦绫诲瀷
+ mast.setWhsType(Integer.parseInt(agvLocMast.getBarcode().substring(0, 2)));
+
+
+ mast.setAppeUser(9527L);
+ mast.setAppeTime(now);
+ mast.setModiUser(9527L);
+ mast.setModiTime(now);
+ mast.setLogErrMemo("autoEmptyBackSiqi");
+ if (!agvWrkMastService.insertByIncrease(mast)) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+
+ //鏇存柊鐩爣搴撲綅鐘舵��
+ updateAgvLocMast(agvLocMast, "R");
+ if (wrkSts == 21L) {
+ updateAgvBasDevp(devpNo, "S", agvLocMast.getLocType2(), agvLocMast.getBarcode());
+ } else {
+ updateAgvLocMast(locMast, "S");
+ }
+
+
+ return SUCCESS;
+ }
+
+
+ @Transactional
public ReturnT<String> autoEmptyBack5(AgvBasDevp agvBasDevp) {
//鏌ヨ宸ヤ綔妗�
AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(agvBasDevp.getBarcode());
- if(!Cools.isEmpty(agvWrkMast)){
- throw new CoolException("褰撳墠"+agvBasDevp.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
+ if (!Cools.isEmpty(agvWrkMast)) {
+ throw new CoolException("褰撳墠" + agvBasDevp.getBarcode() + "璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
}
Date now = new Date();
//鐢熸垚宸ヤ綔妗�
@@ -422,11 +614,13 @@
//璐ф灦缂栫爜
mast.setBarcode(agvBasDevp.getBarcode());
//璐ф灦绫诲瀷
- mast.setWhsType(30);
+ mast.setWhsType(Integer.parseInt(agvBasDevp.getBarcode().substring(0, 2)));
+
mast.setAppeUser(9527L);
mast.setAppeTime(now);
mast.setModiUser(9527L);
mast.setModiTime(now);
+ mast.setLogErrMemo("autoEmptyBack5");
// 鍒ゆ柇 鎺ラ┏鐐规槸鍚﹁嚜鍔�
if ("Y".equals(agvBasDevp.getAutoing())) {
//宸ヤ綔鐘舵��
@@ -434,9 +628,9 @@
//鍏ュ嚭搴撶被鍨�
mast.setIoType(109);
//妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
- AgvLocMast locMast = agvCommonService.getLocNo(3,1,true,true);
+ AgvLocMast locMast = agvCommonService.getLocNo(3, 1, true, true);
mast.setLocNo(locMast.getLocNo());
- updateAgvLocMast(locMast,"S");
+ updateAgvLocMast(locMast, "S");
} else {
//宸ヤ綔鐘舵��
mast.setWrkSts(212L);
@@ -449,17 +643,19 @@
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
}
//鏇存柊鐩爣搴撲綅鐘舵��
- updateAgvBasDevp(agvBasDevp,"R");
+ updateAgvBasDevp(agvBasDevp, "R");
return SUCCESS;
}
+
+ @Transactional
public ReturnT<String> autoEmptyBack6(AgvBasDevp agvBasDevp) {
//鏌ヨ宸ヤ綔妗�
AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(agvBasDevp.getBarcode());
- if(!Cools.isEmpty(agvWrkMast)){
- throw new CoolException("褰撳墠"+agvBasDevp.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
+ if (!Cools.isEmpty(agvWrkMast)) {
+ throw new CoolException("褰撳墠" + agvBasDevp.getBarcode() + "璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
}
Date now = new Date();
//鐢熸垚宸ヤ綔妗�
@@ -478,18 +674,180 @@
//璐ф灦缂栫爜
mast.setBarcode(agvBasDevp.getBarcode());
//璐ф灦绫诲瀷
- mast.setWhsType(30);
+ mast.setWhsType(Integer.parseInt(agvBasDevp.getBarcode().substring(0, 2)));
+
mast.setAppeUser(9527L);
mast.setAppeTime(now);
mast.setModiUser(9527L);
mast.setModiTime(now);
+ mast.setLogErrMemo("autoEmptyBack6");
if (!agvWrkMastService.insertByIncrease(mast)) {
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
}
//鏇存柊鐩爣搴撲綅鐘舵��
- updateAgvBasDevp(agvBasDevp,"R");
+ updateAgvBasDevp(agvBasDevp, "R");
return SUCCESS;
}
+
+ @Transactional
+ public ReturnT<String> autoTransfers(AgvLocMast agvLocMast, Integer maxTansk) {
+ Date now = new Date();
+ List<AgvLocDetl> locDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", agvLocMast.getLocNo()));
+ locDetls.forEach(agvLocDetl -> {
+ if (agvLocDetl.getProcessSts().equals(1)) {
+ throw new CoolException("褰撳墠搴撲綅鏈夊簱瀛樻湭鍔犲伐");
+ }
+ });
+ //鏌ヨ宸ヤ綔妗�
+ AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(agvLocMast.getBarcode());
+ if (!Cools.isEmpty(agvWrkMast)) {
+ throw new CoolException("褰撳墠" + agvLocMast.getBarcode() + "璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
+ }
+ //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
+ AgvLocMast LocMast = agvCommonService.getLocNo(3, 1, false, false);
+ if (LocMast.getLev1() != 2) {
+ //throw new CoolException("鐩爣妤煎眰涓嶆槸鍚稿浜屾ゼ");
+ return FAIL;
+ }
+ List<AgvWrkMast> agvWrkMasts = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().like("loc_no", "02F1").like("source_loc_no", "F1").eq("io_type", 12));
+ if (agvWrkMasts.size() >= maxTansk) {
+ throw new CoolException("鑷姩绉诲簱浠诲姟宸插埌璁惧畾鏈�澶у�硷細" + maxTansk);
+ }
+ //鐢熸垚宸ヤ綔妗�
+ AgvWrkMast mast = new AgvWrkMast();
+ //宸ヤ綔鐘舵��
+ mast.setWrkSts(201L);
+ //鍏ュ嚭搴撶被鍨�
+ mast.setIoType(12);
+ mast.setIoTime(now);
+ //浼樺厛绾�
+ mast.setIoPri(300.0);
+ //婧愮珯鐐�
+ mast.setSourceLocNo(agvLocMast.getLocNo());
+ //鐩爣绔欑偣
+ mast.setLocNo(LocMast.getLocNo());
+ //璐ф灦缂栫爜
+ mast.setBarcode(agvLocMast.getBarcode());
+ //璐ф灦绫诲瀷
+ mast.setWhsType(Integer.parseInt(agvLocMast.getBarcode().substring(0, 2)));
+
+
+ mast.setAppeUser(9527L);
+ mast.setAppeTime(now);
+ mast.setModiUser(9527L);
+ mast.setModiTime(now);
+ mast.setLogErrMemo("doAutoMove");
+ if (!agvWrkMastService.insertByIncrease(mast)) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+
+ AgvWrkMast mast1 = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", LocMast.getLocNo()).eq("source_loc_no", agvLocMast.getLocNo()));
+ //鐢熸垚宸ヤ綔妗f槑缁�
+ List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", agvLocMast.getLocNo()));
+ agvLocDetls.forEach(agvLocDetl -> {
+ AgvWrkDetl wrkDetl = new AgvWrkDetl();
+ wrkDetl.setWrkNo(mast1.getWrkNo());
+ wrkDetl.sync(agvLocDetl);
+ wrkDetl.setSuppCode(agvLocDetl.getSuppCode());
+ wrkDetl.setIoTime(now);
+ wrkDetl.setAppeUser(9527L);
+ wrkDetl.setAppeTime(now);
+ wrkDetl.setModiUser(9527L);
+ wrkDetl.setModiTime(now);
+ if (!agvWrkDetlService.insert(wrkDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+ }
+ });
+ //鏇存柊鐩爣搴撲綅鐘舵��
+ updateAgvLocMast(agvLocMast, "R");
+ updateAgvLocMast(LocMast, "S");
+
+ return SUCCESS;
+ }
+
+ /**
+ * 鍥涙湡锛岃法灞傜Щ搴擄紝1妤煎埌2妤硷紝2妤煎埌1妤�
+ *
+ * @param agvLocMast
+ * @param maxTansk
+ * @return
+ */
+ @Transactional
+ public ReturnT<String> autoTransfersV2(AgvLocMast agvLocMast, Integer maxTansk) {
+ Date now = new Date();
+ List<AgvLocDetl> locDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", agvLocMast.getLocNo()));
+ locDetls.forEach(agvLocDetl -> {
+ if (agvLocDetl.getProcessSts().equals(1)) {
+ throw new CoolException("褰撳墠搴撲綅鏈夊簱瀛樻湭鍔犲伐");
+ }
+ });
+ //鏌ヨ宸ヤ綔妗�
+ AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(agvLocMast.getBarcode());
+ if (!Cools.isEmpty(agvWrkMast)) {
+ throw new CoolException("褰撳墠" + agvLocMast.getBarcode() + "璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
+ }
+ AgvLocMast LocMast;
+ if (agvLocMast.getLev1() == 1) {
+ //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
+ LocMast = agvCommonService.getLocByLocRule2(3, 1, 2);
+ } else {
+ LocMast = agvCommonService.getLocByLocRule2(3, 1, 1);
+ }
+ List<AgvWrkMast> agvWrkMasts = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().eq("io_type", 12));
+ if (agvWrkMasts.size() >= maxTansk) {
+ throw new CoolException("鑷姩绉诲簱浠诲姟宸插埌璁惧畾鏈�澶у�硷細" + maxTansk);
+ }
+ //鐢熸垚宸ヤ綔妗�
+ AgvWrkMast mast = new AgvWrkMast();
+ //宸ヤ綔鐘舵��
+ mast.setWrkSts(201L);
+ //鍏ュ嚭搴撶被鍨�
+ mast.setIoType(12);
+ mast.setIoTime(now);
+ //浼樺厛绾�
+ mast.setIoPri(300.0);
+ //婧愮珯鐐�
+ mast.setSourceLocNo(agvLocMast.getLocNo());
+ //鐩爣绔欑偣
+ mast.setLocNo(LocMast.getLocNo());
+ //璐ф灦缂栫爜
+ mast.setBarcode(agvLocMast.getBarcode());
+ //璐ф灦绫诲瀷
+ mast.setWhsType(Integer.parseInt(agvLocMast.getBarcode().substring(0, 2)));
+
+
+ mast.setAppeUser(9527L);
+ mast.setAppeTime(now);
+ mast.setModiUser(9527L);
+ mast.setModiTime(now);
+ mast.setLogErrMemo("doAutoMoveV4");
+ if (!agvWrkMastService.insertByIncrease(mast)) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+
+ AgvWrkMast mast1 = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", LocMast.getLocNo()).eq("source_loc_no", agvLocMast.getLocNo()));
+ //鐢熸垚宸ヤ綔妗f槑缁�
+ List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", agvLocMast.getLocNo()));
+ agvLocDetls.forEach(agvLocDetl -> {
+ AgvWrkDetl wrkDetl = new AgvWrkDetl();
+ wrkDetl.setWrkNo(mast1.getWrkNo());
+ wrkDetl.sync(agvLocDetl);
+ wrkDetl.setSuppCode(agvLocDetl.getSuppCode());
+ wrkDetl.setIoTime(now);
+ wrkDetl.setAppeUser(9527L);
+ wrkDetl.setAppeTime(now);
+ wrkDetl.setModiUser(9527L);
+ wrkDetl.setModiTime(now);
+ if (!agvWrkDetlService.insert(wrkDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+ }
+ });
+ //鏇存柊鐩爣搴撲綅鐘舵��
+ updateAgvLocMast(agvLocMast, "R");
+ updateAgvLocMast(LocMast, "S");
+
+ return SUCCESS;
+ }
}
--
Gitblit v1.9.1