From 93674068e900b95726ef1ab9fd4dd61b50a1cb2f Mon Sep 17 00:00:00 2001
From: whycq <10027870+whycq@user.noreply.gitee.com>
Date: 星期三, 12 六月 2024 09:56:45 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java | 52 +++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 47 insertions(+), 5 deletions(-)
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..af4d600 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -27,6 +27,7 @@
import java.util.Date;
import java.util.Iterator;
import java.util.List;
+import java.util.concurrent.atomic.AtomicBoolean;
/**
* Created by vincent on 2020/6/11
@@ -91,7 +92,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());
//鏍囪鏄惁涓鸿緭閫佺嚎鍏ュ簱
@@ -328,6 +329,33 @@
if (Cools.isEmpty(agvBasDevp)) {
throw new CoolException("鏆傛棤"+ station + "绔欑偣");
}
+ int br = 0;
+ if (containerType == 21 && agvBasDevp.getFloor() == 2) {
+ containerType = 20;
+ }
+ switch (containerType) {
+ case 10:
+ br = 1;
+ break;
+ case 20:
+ br = 2;
+ break;
+ case 21:
+ br = 4;
+ break;
+ case 30:
+ br = 3;
+ break;
+ case 40:
+ br = 5;
+ break;
+ }
+ if (br == 4 && agvBasDevp.getLocType1() == 2) {
+ br = 2;
+ }
+ if (agvBasDevp.getLocType1() != br) {
+ throw new CoolException("绔欑偣寮傚父锛�");
+ }
if (containerType == 40) {
locType = 5;
} else if (containerType == 21 && agvBasDevp.getFloor() == 3) {
@@ -349,11 +377,24 @@
}
//妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
- AgvLocMast agvLocMast = agvCommonService.getLocNo(locType,agvBasDevp.getFloor());
+ AgvLocMast agvLocMast = new AgvLocMast();
+
//鏌ヨ鍏ュ簱閫氱煡妗�
List<AgvWaitPakin> agvWaitPakinList = agvWaitPakinService.selectByContainerCode(containerCode);
if(!Cools.isEmpty(agvWaitPakinList)){
+ AtomicBoolean isCurrLev = new AtomicBoolean(false);
+ agvWaitPakinList.forEach(agvWaitPakin -> {
+ if (agvWaitPakin.getProcessSts() == 1) {
+ isCurrLev.set(true);
+ }
+ });
+ if (isCurrLev.get()) {
+ agvLocMast = agvCommonService.getLocNo(locType,agvBasDevp.getFloor(),false,true);
+ } else {
+ agvLocMast = agvCommonService.getLocNo(locType,agvBasDevp.getFloor(),false,false);
+ }
+
String devNo = agvBasDevp.getDevNo();
@@ -363,13 +404,14 @@
AgvWrkMast wrkMast = createWrkMast(1,201L,devNo,locNo,containerCode,now,userId, containerType);
//鐢熸垚宸ヤ綔妗f槑缁�
agvWaitPakinList.forEach(wp -> {
- createWrkDetlReWrite(wp.getMatnr(),wrkMast.getWrkNo(),wp.getOrderNo(),wp.getBatch(),wp.getAnfme(),wp.getSuppCode(),now,userId,wp.getThreeCode(),wp.getDeadTime());
+ createWrkDetlReWrite(wp.getMatnr(),wrkMast.getWrkNo(),wp.getOrderNo(),wp.getBatch(),wp.getAnfme(),wp.getSuppCode(),now,userId,wp.getThreeCode(),wp.getDeadTime(),wp.getProcessSts());
});
//淇敼鍏ュ簱閫氱煡妗g姸鎬�
agvWaitPakinService.updateIoStatus(containerCode,"Y");
//鏇存柊婧愮珯鐐圭姸鎬�
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);
//鏇存柊婧愮珯鐐圭姸鎬�
@@ -880,7 +922,7 @@
/*
鐢熸垚宸ヤ綔妗f槑缁�
*/
- private void createWrkDetlReWrite(String matnr, int wrkNo, String orderNo,String batch, double anfme, String zpallet, Date now, Long userId, String csocode, String isoseq){
+ private void createWrkDetlReWrite(String matnr, int wrkNo, String orderNo,String batch, double anfme, String zpallet, Date now, Long userId, String csocode, String isoseq,Integer processSts){
Mat mat = matService.selectByMatnr(matnr);
if (Cools.isEmpty(mat)) {
throw new CoolException(matnr + "鍟嗗搧缁存姢澶辫触");
@@ -893,11 +935,11 @@
wrkDetl.setBatch(batch);
wrkDetl.setAnfme(anfme); // 鏁伴噺
wrkDetl.setSuppCode(zpallet); // 璐ф灦鏉$爜
+ wrkDetl.setProcessSts(processSts);
wrkDetl.setAppeUser(userId);
wrkDetl.setAppeTime(now);
wrkDetl.setModiUser(userId);
wrkDetl.setModiTime(now);
-
wrkDetl.setThreeCode(csocode);
wrkDetl.setDeadTime(isoseq);
if (!agvWrkDetlService.insert(wrkDetl)) {
--
Gitblit v1.9.1