From 138b5fc883c3ccb25f4bed7114a60f93e78aaa9a Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期日, 02 六月 2024 13:30:37 +0800
Subject: [PATCH] #条码检测
---
src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java | 350 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 342 insertions(+), 8 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 256f695..48424db 100644
--- a/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java
@@ -5,10 +5,7 @@
import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
-import com.zy.asrs.service.AgvLocDetlService;
-import com.zy.asrs.service.AgvLocMastService;
-import com.zy.asrs.service.AgvWrkDetlService;
-import com.zy.asrs.service.AgvWrkMastService;
+import com.zy.asrs.service.*;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import com.zy.common.service.AgvCommonService;
@@ -35,6 +32,8 @@
private AgvLocDetlService agvLocDetlService;
@Autowired
private AgvWrkDetlService agvWrkDetlService;
+ @Autowired
+ AgvBasDevpService agvBasDevpService;
public ReturnT<String> start(AgvLocMast agvLocMast) {
// locType 1. 鑷姩锛� 2. 鎵嬪姩
@@ -43,6 +42,17 @@
} else if (agvLocMast.getLocType().equals("2")) {
return doHandMove(agvLocMast);
}
+ return SUCCESS;
+ }
+
+ public ReturnT<String> start2(AgvWrkMast agvWrkMast) {
+ // locType 1. 鑷姩锛� 2. 鎵嬪姩
+ doAutoMove2(agvWrkMast);
+ return SUCCESS;
+ }
+ public ReturnT<String> start3(AgvWrkMast agvWrkMast) {
+ // locType 1. 鑷姩锛� 2. 鎵嬪姩
+ doHandMove2(agvWrkMast);
return SUCCESS;
}
@@ -68,9 +78,9 @@
mast.setSourceLocNo(agvLocMast.getLocNo());
//鐩爣绔欑偣
mast.setLocNo(LocMast.getLocNo());
- //瀹瑰櫒缂栫爜
+ //璐ф灦缂栫爜
mast.setBarcode(agvLocMast.getBarcode());
- //瀹瑰櫒绫诲瀷
+ //璐ф灦绫诲瀷
mast.setWhsType(30);
mast.setAppeUser(9527L);
@@ -107,9 +117,95 @@
}
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()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
+ }
+// //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
+// AgvLocMast LocMast = agvCommonService.getLocNo(3,agvLocMast.getLocType3());
+ // 妫�绱gv鎺ラ┏浣�
+ AgvBasDevp devpNo = agvCommonService.getDevpNo(3, 1);
+ //鐢熸垚宸ヤ綔妗�
+ AgvWrkMast mast = new AgvWrkMast();
+ //宸ヤ綔鐘舵��
+ mast.setWrkSts(21L);
+ //鍏ュ嚭搴撶被鍨�
+ mast.setIoType(111);
+ mast.setIoTime(now);
+ //浼樺厛绾�
+ mast.setIoPri(300.0);
+ //婧愮珯鐐�
+ mast.setSourceLocNo(agvLocMast.getLocNo());
+ //鐩爣绔欑偣
+ mast.setLocNo(devpNo.getDevNo());
+ //璐ф灦缂栫爜
+ mast.setBarcode(agvLocMast.getBarcode());
+ //璐ф灦绫诲瀷
+ mast.setWhsType(30);
+ // 鐩爣妤煎眰
+ mast.setPauseMk(agvLocMast.getLocType3().toString());
+
+ 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", 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 -> {
+ 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");
+ updateAgvBasDevp(devpNo,"S",null,agvLocMast.getBarcode());
return SUCCESS;
}
+ private ReturnT<String> doAutoMove2(AgvWrkMast agvWrkMast) {
+ Date now = new Date();
+ //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
+ AgvLocMast locMast = agvCommonService.getLocNo(3,agvWrkMast.getCrnNo());
+ if (Cools.isEmpty(locMast)) {
+ throw new CoolException("鏆傛棤搴撲綅");
+ }
+ agvWrkMast.setWrkSts(201L);
+ agvWrkMast.setLocNo(locMast.getLocNo());
+ agvWrkMastService.updateById(agvWrkMast);
+ //鏇存柊鐩爣搴撲綅鐘舵��
+ updateAgvLocMast(locMast,"S");
+
+ return SUCCESS;
+ }
+ private ReturnT<String> doHandMove2(AgvWrkMast agvWrkMast) {
+ Date now = new Date();
+ AgvBasDevp devpNo = agvCommonService.getDevpNo(3, 1, "Y", "Y");
+ if (Cools.isEmpty(devpNo)) {
+ throw new CoolException("鏆傛棤绌洪棽鎺ラ┏浣�");
+ }
+ agvWrkMast.setWrkSts(201L);
+ agvWrkMast.setLocNo(devpNo.getDevNo());
+ agvWrkMastService.updateById(agvWrkMast);
+ updateAgvBasDevp(devpNo,"S",null,agvWrkMast.getBarcode());
+ return SUCCESS;
+ }
/*
鏇存柊鐩爣搴撲綅淇℃伅
*/
@@ -117,8 +213,85 @@
locMast.setLocSts(locSts);
agvLocMastService.updateById(locMast);
}
+ /*
+ 鏇存柊婧愮珯鐐逛俊鎭�
+ */
+ private 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)){
+ agvBasDevp.setLocSts(locSts);
+ agvBasDevp.setBarcode(containerCode);
+ agvBasDevpService.updateById(agvBasDevp);
+ }
+ }
public ReturnT<String> autoEmptyBack(AgvLocMast agvLocMast) {
+ Date now = new Date();
+ //鏌ヨ宸ヤ綔妗�
+ AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(agvLocMast.getBarcode());
+ if(!Cools.isEmpty(agvWrkMast)){
+ throw new CoolException("褰撳墠"+agvLocMast.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
+ }
+ //妫�绱㈢┖闂叉帴椹充綅锛岄�夋嫨鍚堥�傜殑鎺ラ┏浣�
+ AgvBasDevp devpNo = agvCommonService.getDevpNo(3, agvLocMast.getFloor());
+ //鐢熸垚宸ヤ綔妗�
+ AgvWrkMast mast = new AgvWrkMast();
+ //宸ヤ綔鐘舵��
+ mast.setWrkSts(21L);
+ //鍏ュ嚭搴撶被鍨�
+ mast.setIoType(109);
+ mast.setIoTime(now);
+ //浼樺厛绾�
+ mast.setIoPri(300.0);
+ //婧愮珯鐐�
+ mast.setSourceLocNo(agvLocMast.getLocNo());
+ //鐩爣绔欑偣
+ mast.setLocNo(devpNo.getDevNo());
+ //璐ф灦缂栫爜
+ 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");
+ updateAgvBasDevp(devpNo,"S",agvLocMast.getLocType2(),agvLocMast.getBarcode());
+ return SUCCESS;
+ }
+ public ReturnT<String> autoEmptyBack3(AgvWrkMast agvWrkMast) {
+ Date now = new Date();
+ AgvBasDevp agvBasDevp = agvBasDevpService.selectByDevNo(agvWrkMast.getSourceLocNo());
+ //妫�绱㈢┖闂叉帴椹充綅锛岄�夋嫨鍚堥�傜殑鎺ラ┏浣�
+ AgvLocMast locMast = agvCommonService.getLocNo(3, 1);
+ if (Cools.isEmpty(locMast)) {
+ throw new CoolException("1妤兼殏鏃犵┖搴撲綅");
+ }
+ //鐩爣绔欑偣
+ agvWrkMast.setWrkSts(201L);
+ agvWrkMast.setLocNo(locMast.getLocNo());
+ agvWrkMast.setModiUser(9527L);
+ agvWrkMast.setModiTime(now);
+ 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());
@@ -140,9 +313,9 @@
mast.setSourceLocNo(agvLocMast.getLocNo());
//鐩爣绔欑偣
mast.setLocNo(LocMast.getLocNo());
- //瀹瑰櫒缂栫爜
+ //璐ф灦缂栫爜
mast.setBarcode(agvLocMast.getBarcode());
- //瀹瑰櫒绫诲瀷
+ //璐ф灦绫诲瀷
mast.setWhsType(30);
mast.setAppeUser(9527L);
@@ -158,4 +331,165 @@
updateAgvLocMast(LocMast,"S");
return SUCCESS;
}
+
+ 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()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
+ }
+ 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).or().eq("io_type", 113).like("source_loc_no", floor));
+ if (agvWrkMasts.size() >= 5) {
+ throw new CoolException("鏆傚仠鍥炴祦");
+ }
+ //妫�绱㈢┖闂插彲鍏ユ帴椹充綅 娌℃湁绌洪棽鍙叆鎺ラ┏浣� 鐩存帴鎵惧簱浣�
+ AgvBasDevp devpNo = agvCommonService.getDevpNo(3, agvLocMast.getFloor(),"Y","Y");
+ if (!Cools.isEmpty(devpNo)) {
+ locNo = devpNo.getDevNo();
+ wrkSts = 21L;
+ ioType = 109;
+ } else {
+ //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
+ locMast = agvCommonService.getLocNo(3,1);
+ locNo = locMast.getLocNo();
+ wrkSts = 201L;
+ ioType = 109;
+ }
+
+ //鐢熸垚宸ヤ綔妗�
+ 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(30);
+
+ mast.setAppeUser(9527L);
+ mast.setAppeTime(now);
+ mast.setModiUser(9527L);
+ mast.setModiTime(now);
+ 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;
+ }
+
+ public ReturnT<String> autoEmptyBack5(AgvBasDevp agvBasDevp) {
+ //鏌ヨ宸ヤ綔妗�
+ AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(agvBasDevp.getBarcode());
+ if(!Cools.isEmpty(agvWrkMast)){
+ throw new CoolException("褰撳墠"+agvBasDevp.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
+ }
+ Date now = new Date();
+ //鐢熸垚宸ヤ綔妗�
+ AgvWrkMast mast = new AgvWrkMast();
+ mast.setIoTime(now);
+ //浼樺厛绾�
+ mast.setIoPri(300.0);
+ //婧愮珯鐐�
+ mast.setSourceLocNo(agvBasDevp.getDevNo());
+ //璐ф灦缂栫爜
+ mast.setBarcode(agvBasDevp.getBarcode());
+ //璐ф灦绫诲瀷
+ mast.setWhsType(30);
+ mast.setAppeUser(9527L);
+ mast.setAppeTime(now);
+ mast.setModiUser(9527L);
+ mast.setModiTime(now);
+ // 鍒ゆ柇 鎺ラ┏鐐规槸鍚﹁嚜鍔�
+ if ("Y".equals(agvBasDevp.getAutoing())) {
+ //宸ヤ綔鐘舵��
+ mast.setWrkSts(201L);
+ //鍏ュ嚭搴撶被鍨�
+ mast.setIoType(109);
+ //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
+ AgvLocMast locMast = agvCommonService.getLocNo(3,1);
+ mast.setLocNo(locMast.getLocNo());
+ updateAgvLocMast(locMast,"S");
+ } else {
+ //宸ヤ綔鐘舵��
+ mast.setWrkSts(212L);
+ //鍏ュ嚭搴撶被鍨�
+ mast.setIoType(113);
+ //鐩爣绔欑偣
+ mast.setLocNo("");
+ }
+ if (!agvWrkMastService.insertByIncrease(mast)) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+ //鏇存柊鐩爣搴撲綅鐘舵��
+ updateAgvBasDevp(agvBasDevp,"R");
+
+
+ return SUCCESS;
+ }
+
+ public ReturnT<String> autoEmptyBack6(AgvBasDevp agvBasDevp) {
+ //鏌ヨ宸ヤ綔妗�
+ AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(agvBasDevp.getBarcode());
+ if(!Cools.isEmpty(agvWrkMast)){
+ throw new CoolException("褰撳墠"+agvBasDevp.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
+ }
+ Date now = new Date();
+ //鐢熸垚宸ヤ綔妗�
+ AgvWrkMast mast = new AgvWrkMast();
+ //宸ヤ綔鐘舵��
+ mast.setWrkSts(214L);
+ //鍏ュ嚭搴撶被鍨�
+ mast.setIoType(113);
+ //鐩爣绔欑偣
+ mast.setLocNo("");
+ mast.setIoTime(now);
+ //浼樺厛绾�
+ mast.setIoPri(300.0);
+ //婧愮珯鐐�
+ mast.setSourceLocNo(agvBasDevp.getDevNo());
+ //璐ф灦缂栫爜
+ mast.setBarcode(agvBasDevp.getBarcode());
+ //璐ф灦绫诲瀷
+ mast.setWhsType(30);
+ mast.setAppeUser(9527L);
+ mast.setAppeTime(now);
+ mast.setModiUser(9527L);
+ mast.setModiTime(now);
+ if (!agvWrkMastService.insertByIncrease(mast)) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+ //鏇存柊鐩爣搴撲綅鐘舵��
+ updateAgvBasDevp(agvBasDevp,"R");
+
+
+ return SUCCESS;
+ }
}
--
Gitblit v1.9.1