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 | 484 +++++++++++++++++++++++++++++++++++------------------
1 files changed, 315 insertions(+), 169 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 0c3227a..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
@@ -66,6 +67,8 @@
private AgvWrkMastLogService agvWrkMastLogService;
@Autowired
private AgvWrkDetlLogService agvWrkDetlLogService;
+ @Autowired
+ private WrkMastExecuteService wrkMastExecuteService;
/*
@@ -89,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());
//鏍囪鏄惁涓鸿緭閫佺嚎鍏ュ簱
@@ -209,20 +212,20 @@
//List<AgvLocDetl> agvLocDetlList = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no",agvLocMast.getLocNo()));
AgvBasDevp agvBasDevp = agvBasDevpService.selectById(agvWrkMast.getSourceLocNo());
- //鎷f枡鍏ュ簱
- if(ioType == 53){
- //淇敼宸ヤ綔鍏氭槑缁�
- //agvWrkDetl.setAnfme(agvLocDetl.getAnfme() - agvWrkDetl.getAnfme());
- //agvWrkDetlService.update(agvWrkDetl,new EntityWrapper<AgvWrkDetl>().eq("wrk_no",agvWrkDetl.getWrkNo()));
- //淇敼搴撳瓨淇℃伅
- agvWrkDetlList.forEach(agvWrkDetl -> {
- AgvLocDetl agvLocDetl = agvLocDetlService.selectByMatnrAndBatchAndCsocodeAndisoCode(agvWrkMast.getLocNo(), agvWrkDetl.getMatnr(), agvWrkDetl.getBatch(), agvWrkDetl.getThreeCode(), agvWrkDetl.getDeadTime());
-
- //AgvLocDetl agvLocDetl = agvLocDetlService.selectLocdetl(agvWrkMast.getLocNo(),agvWrkDetl.getMatnr(),agvWrkDetl.getBatch(),agvWrkDetl.getThreeCode(),agvWrkDetl.getDeadTime());
- double updateAnfme = agvLocDetl.getAnfme() - agvWrkDetl.getAnfme();
- agvLocDetlService.updateAnfme(updateAnfme,agvLocDetl.getLocNo(),agvLocDetl.getMatnr(),agvLocDetl.getBatch(),agvLocDetl.getThreeCode(),agvLocDetl.getDeadTime());
- });
- }
+ ////鎷f枡鍏ュ簱
+ //if(ioType == 53){
+ // //淇敼宸ヤ綔鍏氭槑缁�
+ // //agvWrkDetl.setAnfme(agvLocDetl.getAnfme() - agvWrkDetl.getAnfme());
+ // //agvWrkDetlService.update(agvWrkDetl,new EntityWrapper<AgvWrkDetl>().eq("wrk_no",agvWrkDetl.getWrkNo()));
+ // //淇敼搴撳瓨淇℃伅
+ // agvWrkDetlList.forEach(agvWrkDetl -> {
+ // AgvLocDetl agvLocDetl = agvLocDetlService.selectByMatnrAndBatchAndCsocodeAndisoCode(agvWrkMast.getLocNo(), agvWrkDetl.getMatnr(), agvWrkDetl.getBatch(), agvWrkDetl.getThreeCode(), agvWrkDetl.getDeadTime());
+ //
+ // //AgvLocDetl agvLocDetl = agvLocDetlService.selectLocdetl(agvWrkMast.getLocNo(),agvWrkDetl.getMatnr(),agvWrkDetl.getBatch(),agvWrkDetl.getThreeCode(),agvWrkDetl.getDeadTime());
+ // double updateAnfme = agvLocDetl.getAnfme() - agvWrkDetl.getAnfme();
+ // agvLocDetlService.updateAnfme(updateAnfme,agvLocDetl.getLocNo(),agvLocDetl.getMatnr(),agvLocDetl.getBatch(),agvLocDetl.getThreeCode(),agvLocDetl.getDeadTime());
+ // });
+ //}
//淇敼搴撲綅淇℃伅
updateAgvLocMast(agvLocMast,"Q");
//淇敼绔欑偣淇℃伅
@@ -326,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) {
@@ -347,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();
@@ -361,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);
//鏇存柊婧愮珯鐐圭姸鎬�
@@ -557,13 +601,27 @@
if (Cools.isEmpty(wrkMast)){
throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪");
}
-// if(!wrkMast.getLocNo().contains("@") || !wrkMast.getSourceLocNo().contains("@")){
-// throw new CoolException("鐩爣搴撲綅鎴栬�呮簮搴撲綅鏆傛湭鍒嗛厤锛屾棤娉曞彇娑�");
-// }
- //淇敼AGV宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负205.宸ヤ綔瀹屾垚
- //agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),205);
- agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),205,"鎵嬪姩瀹屾垚",userId);
+ if (wrkMast.getIoType()==121){
+ if (wrkMast.getWrkSts()<12L){
+ agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),205,"鎵嬪姩瀹屾垚",userId);
+ }else if (wrkMast.getWrkSts()==12L){
+ agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),12,"鎵嬪姩瀹屾垚",userId);
+
+ WrkMastExecute wrkMastExecute = wrkMastExecuteService.selectOne(new EntityWrapper<WrkMastExecute>().eq("wrk_no", workNo));
+ wrkMastExecute.setWrkSts(3L);
+ wrkMastExecute.setNowPosition(3);
+ wrkMastExecuteService.updateById(wrkMastExecute);
+ }
+ return;
+
+ } else {
+ if(wrkMast.getIoType() == 110){
+ agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),206,"鎵嬪姩瀹屾垚",userId);
+ } else {
+ agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),205,"鎵嬪姩瀹屾垚",userId);
+ }
+ }
//鍑哄簱浠诲姟 101.鍑哄簱 || 103.鎷f枡鍑哄簱 || 107.鐩樼偣鍑哄簱
if(wrkMast.getIoType() == 101 || wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107 || wrkMast.getIoType() == 111){
@@ -575,8 +633,9 @@
agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getSourceLocNo(),"O","",wrkMast.getWhsType().shortValue());
}
//鍑哄簱浠诲姟 110.绌烘澘鍑哄簱
- if(wrkMast.getIoType() == 110){
- agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getLocNo(),"F",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue());
+
+ if (wrkMast.getIoType() == 10) {
+ agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getSourceLocNo(),"O",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue());
}
}
@@ -587,164 +646,228 @@
if (Cools.isEmpty(wrkMast)){
throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪");
}
- //鎷f枡鍏ュ簱 鐩樼偣鍏ュ簱涓嶅彲鍙栨秷
- if(wrkMast.getIoType() == 53 || wrkMast.getIoType() == 57){
- throw new CoolException("褰撳墠浠诲姟涓嶅彲鍙栨秷");
- }
+ if (wrkMast.getIoType()==121){
+ if (wrkMast.getWrkSts()<12L){
+ //婧愬簱浣�
+ String locNo = wrkMast.getSourceLocNo();
- //鍏ュ簱鍙栨秷
- if(wrkMast.getIoType() == 1 || wrkMast.getIoType() == 10 || wrkMast.getIoType() == 58){
- //婧愮珯鐐�
- String devNo = wrkMast.getSourceLocNo();
- //鐩爣搴撲綅
- String locNo = wrkMast.getLocNo();
- agvLocMastService.updateLocStsByLocNo(locNo,"O","",null);
- if (wrkMast.getIoType() == 58) {
- agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"F",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue());
- } else {
- agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"O","",wrkMast.getWhsType().shortValue());
- }
-
- if (wrkMast.getIoType() == 1) {
- List<AgvWaitPakin> agvWaitPakins = agvWaitPakinService.selectByContainerCode2(wrkMast.getBarcode());
-
- for (AgvWaitPakin agvWaitPakin : agvWaitPakins) {
- // 鍥炴粴鍏ュ簱璁㈠崟
- OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("three_code", agvWaitPakin.getThreeCode()).eq("matnr", agvWaitPakin.getMatnr()).eq("order_no", agvWaitPakin.getOrderNo()));
- orderDetl.setQty(orderDetl.getQty() - agvWaitPakin.getAnfme());
- if (!orderDetlService.updateById(orderDetl)) {
- throw new CoolException("璁㈠崟鍥炴粴澶辫触");
- }
- // 鍒犻櫎缁勬墭妗�
- if (!agvWaitPakinService.delete(new EntityWrapper<AgvWaitPakin>().eq("supp_code",agvWaitPakin.getSuppCode()).eq("matnr",agvWaitPakin.getMatnr()).eq("three_code",agvWaitPakin.getThreeCode()))) {
- throw new CoolException("鍏ュ簱閫氱煡妗e彇娑堝け璐�");
- }
- }
-
-
- }
-
-
- // 绉诲簱鍙栨秷
- } else if( wrkMast.getIoType() == 11 || wrkMast.getIoType() == 12) {
- //婧愬簱浣�
- String locNo = wrkMast.getSourceLocNo();
-
- // 鐩爣搴撲綅
- String targetLocNo = wrkMast.getLocNo();
- agvLocMastService.updateLocStsByLocNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo));
- agvLocMastService.updateLocStsByLocNo(targetLocNo,"O","",null);
- AgvLocMast locMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", targetLocNo));
- // 褰撳墠浠诲姟鏄法灞傜Щ搴� 涓旂洰鏍囨ゼ灞傛槸1妤肩殑 鍥炴粴璋冩嫧鍗�
- if (wrkMast.getIoType() == 12 && locMast.getFloor() == 1) {
- List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo));
- for (AgvLocDetl agvLocDetl : agvLocDetls) {
- OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("three_code", agvLocDetl.getThreeCode()).eq("matnr", agvLocDetl.getMatnr()).eq("order_no", "DB" + agvLocDetl.getOrderNo()));
- orderDetl.setQty(orderDetl.getQty() + agvLocDetl.getAnfme());
- if (!orderDetlService.updateById(orderDetl)) {
- throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
- }
- }
- }
- // 鑷姩璋冩嫧鍑哄簱鍙栨秷
- } else if(wrkMast.getIoType() == 108 || wrkMast.getIoType() == 111) {
- // 婧愬簱浣�
- String locNo = wrkMast.getSourceLocNo();
- // 鐩爣搴撲綅
- String targetLocNo = wrkMast.getLocNo();
- agvLocMastService.updateLocStsByLocNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo),"",(short)0);
- if (wrkMast.getIoType() == 108) {
- if (wrkMast.getWrkSts() != 22) {
- agvLocMastService.updateLocStsByLocNo(targetLocNo,"O","",null);
- }
- } else {
- if (wrkMast.getWrkSts() != 22) {
- agvBasDevpService.updateLocStsAndBarcodeByDevNo(targetLocNo,"O","",wrkMast.getWhsType().shortValue());
- }
- }
-
- List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo));
- // 鏇存柊璁㈠崟
- for (AgvLocDetl agvLocDetl : agvLocDetls) {
- OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", "DB" + agvLocDetl.getOrderNo()).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode()));
- orderDetl.setQty(orderDetl.getQty() - agvLocDetl.getAnfme());
- if (!orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>().eq("order_no","DB" + agvLocDetl.getOrderNo()).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode()))){
- throw new CoolException("淇敼璁㈠崟鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�"+agvLocDetl.getOrderNo()+agvLocDetl.getMatnr());
- }
- }
- //鍑哄簱鍙栨秷
- } else {
- //婧愬簱浣�
- String locNo = wrkMast.getSourceLocNo();
- //鐩爣绔欑偣
- String devNo = wrkMast.getLocNo();
- if (wrkMast.getIoType() == 110 || wrkMast.getIoType() == 109) {
- agvLocMastService.updateLocStsByLocNo(locNo,"D",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo));
- } else {
+ // 鐩爣搴撲綅
+ String targetLocNo = wrkMast.getLocNo();
agvLocMastService.updateLocStsByLocNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo));
- }
- if (wrkMast.getIoType() == 109){
- if (Cools.isEmpty(wrkMast.getLocNo())) {
+ agvLocMastService.updateLocStsByLocNo(targetLocNo,"O","",null);
+ wrkMast.setModiUser(userId);
+ wrkMast.setModiTime(new Date());
+ if (type == 2) {
+ wrkMast.setManuType("鎵嬪姩鍙栨秷锛坅gv锛�");
} else {
- agvLocMastService.updateLocStsByLocNo(devNo,"O","",(short)getContainerTypeByloc(devNo));
+ wrkMast.setManuType("鎵嬪姩鍙栨秷");
}
+
+ //淇濆瓨宸ヤ綔妗d互鍙婃槑缁�
+ agvWrkMastLogService.save(wrkMast);
+ agvWrkDetlLogService.save(wrkMast.getWrkNo());
+
+
+ //鍒犻櫎宸ヤ綔妗d互鍙婃槑缁�
+ if(!agvWrkMastService.deleteByWrkNo(wrkMast.getWrkNo()) || !agvWrkDetlService.deleteByWrkNo(wrkMast.getWrkNo())){
+ throw new CoolException("鍒犻櫎澶辫触锛岃鑱旂郴绠$悊鍛�");
+ }
+
+ if (type == 2) {
+ //璋冪敤agv鍙栨秷浠诲姟鎺ュ彛
+ agvWrkMastService.callCancelTask(wrkMast.getWrkNo());
+ }
}else {
- agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"O","",null);
+ throw new CoolException("褰撳墠浠诲姟姝e湪鎵ц锛屼笉鍙彇娑�");
}
- }
+ }else {
+ //鎷f枡鍏ュ簱 鐩樼偣鍏ュ簱涓嶅彲鍙栨秷
+ if(wrkMast.getIoType() == 53 || wrkMast.getIoType() == 57){
+ throw new CoolException("褰撳墠浠诲姟涓嶅彲鍙栨秷");
+ }
- if(wrkMast.getIoType() != 1 && wrkMast.getIoType() != 10 && wrkMast.getIoType()!=111 && wrkMast.getIoType()!=108 && wrkMast.getIoType() != 12){
- //璁㈠崟鍥炴粴
- //List<AgvWrkDetl> agvWrkDetlList = agvWrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
- List<AgvWrkDetl> agvWrkDetlList1 = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
- agvWrkDetlList1.forEach(agvWrkDetl -> {
+ //鍏ュ簱鍙栨秷
+ if(wrkMast.getIoType() == 1 || wrkMast.getIoType() == 10 || wrkMast.getIoType() == 58){
+ //婧愮珯鐐�
+ String devNo = wrkMast.getSourceLocNo();
+ //鐩爣搴撲綅
+ String locNo = wrkMast.getLocNo();
+ agvLocMastService.updateLocStsByLocNo(locNo,"O","",null);
+ if (wrkMast.getIoType() == 58) {
+ agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"F",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue());
+ } else {
+ agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"O","",wrkMast.getWhsType().shortValue());
+ }
- if(!Cools.isEmpty(agvWrkDetl.getOrderNo())){
- String orderNo = agvWrkDetl.getOrderNo();
- if(orderNo.contains("{")){
- JSONArray orderArray = JSON.parseArray(orderNo);
- for (Object o : orderArray){
- JSONObject jsonobject = (JSONObject) o;
- OrderDetl orderDetl = orderDetlService.selectByOrderNoAndMatnr(jsonobject.get("orderNo").toString(),agvWrkDetl.getMatnr(),agvWrkDetl.getThreeCode(),agvWrkDetl.getDeadTime());
- orderDetl.setQty(orderDetl.getQty() - agvWrkDetl.getAnfme());
- orderDetlService.updateById(orderDetl);
+ if (wrkMast.getIoType() == 1) {
+ List<AgvWaitPakin> agvWaitPakins = agvWaitPakinService.selectByContainerCode2(wrkMast.getBarcode());
+
+ for (AgvWaitPakin agvWaitPakin : agvWaitPakins) {
+ // 鍥炴粴鍏ュ簱璁㈠崟
+ OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("three_code", agvWaitPakin.getThreeCode()).eq("matnr", agvWaitPakin.getMatnr()).eq("order_no", agvWaitPakin.getOrderNo()));
+ orderDetl.setQty(orderDetl.getQty() - agvWaitPakin.getAnfme());
+ if (!orderDetlService.updateById(orderDetl)) {
+ throw new CoolException("璁㈠崟鍥炴粴澶辫触");
+ }
+ // 鍒犻櫎缁勬墭妗�
+ if (!agvWaitPakinService.delete(new EntityWrapper<AgvWaitPakin>().eq("supp_code",agvWaitPakin.getSuppCode()).eq("matnr",agvWaitPakin.getMatnr()).eq("three_code",agvWaitPakin.getThreeCode()))) {
+ throw new CoolException("鍏ュ簱閫氱煡妗e彇娑堝け璐�");
+ }
+ }
+
+
+ }
+
+
+ // 绉诲簱鍙栨秷
+ } else if( wrkMast.getIoType() == 11 || wrkMast.getIoType() == 12) {
+ //婧愬簱浣�
+ String locNo = wrkMast.getSourceLocNo();
+
+ // 鐩爣搴撲綅
+ String targetLocNo = wrkMast.getLocNo();
+ agvLocMastService.updateLocStsByLocNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo));
+ agvLocMastService.updateLocStsByLocNo(targetLocNo,"O","",null);
+ AgvLocMast locMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", targetLocNo));
+ // 褰撳墠浠诲姟鏄法灞傜Щ搴� 涓旂洰鏍囨ゼ灞傛槸1妤肩殑 鍥炴粴璋冩嫧鍗�
+ if (wrkMast.getIoType() == 12 && locMast.getFloor() == 1) {
+ List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo));
+ for (AgvLocDetl agvLocDetl : agvLocDetls) {
+ OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("three_code", agvLocDetl.getThreeCode()).eq("matnr", agvLocDetl.getMatnr()).eq("order_no", "DB" + agvLocDetl.getOrderNo()));
+ orderDetl.setQty(orderDetl.getQty() + agvLocDetl.getAnfme());
+ if (!orderDetlService.updateById(orderDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+ }
+ }
+ }
+ // 鑷姩璋冩嫧鍑哄簱鍙栨秷
+ } else if(wrkMast.getIoType() == 108 || wrkMast.getIoType() == 111 || wrkMast.getIoType() == 112) {
+ if (wrkMast.getIoType() == 112) {
+ throw new CoolException("褰撳墠浣滀笟涓嶈兘鍙栨秷锛�");
+ }
+ // 婧愬簱浣�
+ String locNo = wrkMast.getSourceLocNo();
+ // 鐩爣搴撲綅
+ String targetLocNo = wrkMast.getLocNo();
+ agvLocMastService.updateLocStsByLocNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo),"",(short)0);
+ if (wrkMast.getIoType() == 108) {
+ if (wrkMast.getWrkSts() != 22) {
+ agvLocMastService.updateLocStsByLocNo(targetLocNo,"O","",null);
+ }
+ } else {
+ if (wrkMast.getWrkSts() != 207L && wrkMast.getWrkSts() != 205L) {
+ if (wrkMast.getWrkSts() != 22) {
+ agvBasDevpService.updateLocStsAndBarcodeByDevNo(targetLocNo,"O","",wrkMast.getWhsType().shortValue());
+ }
+ } else {
+ throw new CoolException("褰撳墠浣滀笟涓嶈兘鍙栨秷锛�");
+ }
+
+
+ }
+
+ List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo));
+ // 鏇存柊璁㈠崟
+ for (AgvLocDetl agvLocDetl : agvLocDetls) {
+ OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", "DB" + agvLocDetl.getOrderNo()).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode()));
+ orderDetl.setQty(orderDetl.getQty() - agvLocDetl.getAnfme());
+ if (!orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>().eq("order_no","DB" + agvLocDetl.getOrderNo()).eq("matnr", agvLocDetl.getMatnr()).eq("three_code",agvLocDetl.getThreeCode()))){
+ throw new CoolException("淇敼璁㈠崟鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�"+agvLocDetl.getOrderNo()+agvLocDetl.getMatnr());
+ }
+ }
+ //鍑哄簱鍙栨秷
+ } else {
+ //婧愬簱浣�
+ String locNo = wrkMast.getSourceLocNo();
+ //鐩爣绔欑偣
+ String devNo = wrkMast.getLocNo();
+ if (wrkMast.getIoType() == 110 || wrkMast.getIoType() == 109) {
+ if (wrkMast.getIoType() == 109){
+ // 婧愬簱浣嶆槸绔欑偣
+ if ("DB".equals(locNo.substring(0,2))) {
+ agvBasDevpService.updateLocStsAndBarcodeByDevNo(locNo,"F",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue());
+ agvLocMastService.updateLocStsByLocNo(devNo,"O","",null);
+ // 婧愬簱浣嶆槸搴撲綅 鐩爣搴撲綅鏄珯鐐�
+ } else if ("DB".equals(devNo.substring(0,2))) {
+ agvLocMastService.updateLocStsByLocNo(locNo,"D",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue());
+ agvBasDevpService.updateLocStsAndBarcodeByDevNo(locNo,"O","",null);
+ // 婧愬簱浣嶆槸搴撲綅
+ } else {
+ agvLocMastService.updateLocStsByLocNo(locNo,"D",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue());
+ agvLocMastService.updateLocStsByLocNo(devNo,"O","",null);
}
}else {
- OrderDetl orderDetl = orderDetlService.selectByOrderNoAndMatnr(agvWrkDetl.getOrderNo(),agvWrkDetl.getMatnr(),agvWrkDetl.getThreeCode(),agvWrkDetl.getDeadTime());
- orderDetl.setQty(orderDetl.getQty() - agvWrkDetl.getAnfme());
- orderDetlService.updateById(orderDetl);
+ agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"O","",null);
}
+ } else if (wrkMast.getIoType() == 113) {
+ if (wrkMast.getWrkSts() == 212 || wrkMast.getWrkSts() == 213) {
+ agvBasDevpService.updateLocStsAndBarcodeByDevNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo));
+ } else {
+ agvBasDevpService.updateLocStsAndBarcodeByDevNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo));
+ if (!Cools.isEmpty(devNo)) {
+ agvLocMastService.updateLocStsByLocNo(devNo,"0","",null);
+ }
+ }
+
+ } else {
+ agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"O","",null);
+ agvLocMastService.updateLocStsByLocNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo));
}
- });
+
+ }
+
+ if(wrkMast.getIoType() != 1 && wrkMast.getIoType() != 10 && wrkMast.getIoType()!=111 && wrkMast.getIoType()!=108 && wrkMast.getIoType() != 12){
+ //璁㈠崟鍥炴粴
+ //List<AgvWrkDetl> agvWrkDetlList = agvWrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
+ List<AgvWrkDetl> agvWrkDetlList1 = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+ agvWrkDetlList1.forEach(agvWrkDetl -> {
+
+ if(!Cools.isEmpty(agvWrkDetl.getOrderNo())){
+ String orderNo = agvWrkDetl.getOrderNo();
+ if(orderNo.contains("{")){
+ JSONArray orderArray = JSON.parseArray(orderNo);
+ for (Object o : orderArray){
+ JSONObject jsonobject = (JSONObject) o;
+ OrderDetl orderDetl = orderDetlService.selectByOrderNoAndMatnr(jsonobject.get("orderNo").toString(),agvWrkDetl.getMatnr(),agvWrkDetl.getThreeCode(),agvWrkDetl.getDeadTime());
+ orderDetl.setQty(orderDetl.getQty() - agvWrkDetl.getAnfme());
+ orderDetlService.updateById(orderDetl);
+ }
+
+ }else {
+ OrderDetl orderDetl = orderDetlService.selectByOrderNoAndMatnr(agvWrkDetl.getOrderNo(),agvWrkDetl.getMatnr(),agvWrkDetl.getThreeCode(),agvWrkDetl.getDeadTime());
+ orderDetl.setQty(orderDetl.getQty() - agvWrkDetl.getAnfme());
+ orderDetlService.updateById(orderDetl);
+ }
+ }
+ });
+ }
+ wrkMast.setModiUser(userId);
+ wrkMast.setModiTime(new Date());
+ if (type == 2) {
+ wrkMast.setManuType("鎵嬪姩鍙栨秷锛坅gv锛�");
+ } else {
+ wrkMast.setManuType("鎵嬪姩鍙栨秷");
+ }
+
+
+ //淇濆瓨宸ヤ綔妗d互鍙婃槑缁�
+ agvWrkMastLogService.save(wrkMast);
+ agvWrkDetlLogService.save(wrkMast.getWrkNo());
+
+
+ //鍒犻櫎宸ヤ綔妗d互鍙婃槑缁�
+ if(!agvWrkMastService.deleteByWrkNo(wrkMast.getWrkNo()) || !agvWrkDetlService.deleteByWrkNo(wrkMast.getWrkNo())){
+ throw new CoolException("鍒犻櫎澶辫触锛岃鑱旂郴绠$悊鍛�");
+ }
+
+ if (type == 2) {
+ //璋冪敤agv鍙栨秷浠诲姟鎺ュ彛
+ agvWrkMastService.callCancelTask(wrkMast.getWrkNo());
+ }
}
- wrkMast.setModiUser(userId);
- wrkMast.setModiTime(new Date());
- if (type == 2) {
- wrkMast.setManuType("鎵嬪姩鍙栨秷锛坅gv锛�");
- } else {
- wrkMast.setManuType("鎵嬪姩鍙栨秷");
- }
-
-
- //淇濆瓨宸ヤ綔妗d互鍙婃槑缁�
- agvWrkMastLogService.save(wrkMast);
- agvWrkDetlLogService.save(wrkMast.getWrkNo());
-
-
-
- //鍒犻櫎宸ヤ綔妗d互鍙婃槑缁�
- if(!agvWrkMastService.deleteByWrkNo(wrkMast.getWrkNo()) || !agvWrkDetlService.deleteByWrkNo(wrkMast.getWrkNo())){
- throw new CoolException("鍒犻櫎澶辫触锛岃鑱旂郴绠$悊鍛�");
- }
- if (type == 2) {
- //璋冪敤agv鍙栨秷浠诲姟鎺ュ彛
- agvWrkMastService.callCancelTask(wrkMast.getWrkNo());
- }
-
-
}
/*
@@ -752,6 +875,7 @@
*/
private void updateAgvLocMast(AgvLocMast locMast, String locSts){
locMast.setLocSts(locSts);
+ locMast.setModiTime(new Date());
agvLocMastService.updateById(locMast);
}
@@ -761,6 +885,7 @@
private void updateAgvLocMast(AgvLocMast locMast, String locSts, short type){
locMast.setLocSts(locSts);
locMast.setLocType2(type);
+ locMast.setModiTime(new Date());
agvLocMastService.updateById(locMast);
}
@@ -797,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 + "鍟嗗搧缁存姢澶辫触");
@@ -810,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)) {
@@ -949,6 +1074,27 @@
}
}
+ @Override
+ @Transactional
+ public void changeType(String workNo, Long userId) {
+ AgvWrkMast wrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("wrk_no", workNo));
+ if (Cools.isEmpty(wrkMast)) {
+ throw new CoolException("鏆傛棤\n" + workNo + "\n宸ヤ綔");
+ }
+ if (wrkMast.getWrkSts() != 22) {
+ throw new CoolException("褰撳墠浠诲姟宸插垎閰嶇洰鏍囧簱浣嶏紝鏆備笉鏀寔璋冩暣");
+ }
+ if (wrkMast.getIoType() == 108) {
+ wrkMast.setIoType(111);
+ agvWrkMastService.update(wrkMast,new EntityWrapper<AgvWrkMast>().eq("wrk_no", workNo));
+ } else if(wrkMast.getIoType() == 111) {
+ wrkMast.setIoType(108);
+ agvWrkMastService.update(wrkMast,new EntityWrapper<AgvWrkMast>().eq("wrk_no", workNo));
+ }
+
+
+ }
+
private void addInQty(String devno){
AgvBasDevp agvBasDevp = agvBasDevpService.selectById(devno);
if(!Cools.isEmpty(agvBasDevp)){
--
Gitblit v1.9.1