From 0213556a2ec8d77bb012dca635e4581e0791cb2b Mon Sep 17 00:00:00 2001
From: whycq <10027870+whycq@user.noreply.gitee.com>
Date: 星期一, 20 五月 2024 16:52:30 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java | 161 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 157 insertions(+), 4 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 5a91cb0..4a624f1 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
@@ -7,13 +7,11 @@
import com.core.common.R;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
-import com.zy.asrs.entity.param.CombParam;
-import com.zy.asrs.entity.param.LocMoveParam;
-import com.zy.asrs.entity.param.MobileAdjustParam;
-import com.zy.asrs.entity.param.PickParam;
+import com.zy.asrs.entity.param.*;
import com.zy.asrs.service.*;
import com.zy.common.model.DetlDto;
import com.zy.common.service.AgvCommonService;
+import lombok.Synchronized;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -55,6 +53,10 @@
private AgvLocMastService agvLocMastService;
@Autowired
private AgvCommonService agvCommonService;
+ @Autowired
+ private AgvWrkMastLogService agvWrkMastLogService;
+ @Autowired
+ private AgvWrkDetlLogService agvWrkDetlLogService;
/*
@@ -449,6 +451,120 @@
}
/*
+ 璋冩嫧绂诲満
+ */
+ @Override
+ @Transactional
+ @Synchronized
+ public String allocationOut(AgvMobileStartPakin param, Long userId) {
+ Date now = new Date();
+ AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", param.getDevNo()));
+ Integer oldWrkNo = agvWrkMast.getWrkNo();
+ if (Cools.isEmpty(agvWrkMast)) {
+ throw new CoolException("宸ヤ綔妗d腑娌℃湁姝ょ珯鐐逛换鍔�");
+ }
+
+ //鐢熸垚AGV宸ヤ綔鍘嗗彶妗� + 鐢熸垚AGV宸ヤ綔鏄庣粏鍘嗗彶妗�
+ agvWrkMastLogService.save(agvWrkMast);
+ agvWrkDetlLogService.save(agvWrkMast.getWrkNo());
+ //鍒犻櫎AGV宸ヤ綔妗�
+ agvWrkMastService.deleteById(agvWrkMast);
+ //鐢熸垚宸ヤ綔妗�
+ AgvWrkMast wrkMast = createWrkMast(111, 210L, "", "", agvWrkMast.getBarcode(), now, userId, 30, agvWrkMast.getCrnNo());
+ // 鏇存柊宸ヤ綔鏄庣粏
+ List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("supp_code", agvWrkMast.getBarcode()));
+ for (AgvWrkDetl agvWrkDetl : agvWrkDetls) {
+ agvWrkDetl.setWrkNo(wrkMast.getWrkNo());
+ // 淇濇寔宸ヤ綔妗f槑缁�
+ agvWrkDetl.setWrkNo(wrkMast.getWrkNo());
+ agvWrkDetl.setModiUser(userId);
+ agvWrkDetl.setModiTime(now);
+ if (!agvWrkDetlService.insert(agvWrkDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+ }
+ }
+ // 鏇存柊绔欑偣鐘舵��
+ agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",null);
+ // 鏇存柊婧愬簱浣嶇姸鎬�
+ agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"O","",agvWrkMast.getWhsType().shortValue());
+
+ //鍒犻櫎AGV宸ヤ綔鏄庣粏妗�
+ agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",oldWrkNo));
+ return "ok";
+ }
+ /*
+ 璋冩嫧杩涘満
+ */
+ @Override
+ @Transactional
+ public String allocationIn(AgvMobileStartPakin param, Long userId) {
+ Date now = new Date();
+ AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("barcode", param.getBarcode()));
+ AgvBasDevp agvBasDevp = agvBasDevpService.selectByDevNo(param.getDevNo());
+ if (Cools.isEmpty(agvWrkMast)) {
+ throw new CoolException("宸ヤ綔妗d腑娌℃湁姝よ揣鏋朵换鍔�");
+ }
+ if (agvWrkMast.getCrnNo() != agvBasDevp.getFloor()) {
+ throw new CoolException("璇风Щ鍔ㄥ埌->" + agvWrkMast.getCrnNo() + "妤煎叆搴撶偣鍏ュ簱");
+ }
+ //宸ヤ綔鐘舵��
+ agvWrkMast.setWrkSts(211L);
+ //鍏ュ嚭搴撶被鍨�
+ agvWrkMast.setIoType(112);
+ agvWrkMast.setSourceLocNo(param.getDevNo());
+ agvWrkMast.setModiUser(userId);
+ agvWrkMast.setModiTime(now);
+ if (!agvWrkMastService.update(agvWrkMast,new EntityWrapper<AgvWrkMast>().eq("wrk_no",agvWrkMast.getWrkNo()))) {
+ throw new CoolException("鏇存柊宸ヤ綔妗eけ璐�");
+ }
+ // 鏇存柊婧愬簱浣嶇姸鎬�
+ agvBasDevpService.updateLocStsAndBarcodeByDevNo(param.getDevNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
+ //鍒犻櫎AGV宸ヤ綔妗�
+ return "ok";
+ }
+ /*
+ * 绔欑偣鍥為��
+ */
+ @Override
+ @Transactional
+ public String doBack(AgvMobileStartPakin param, Long userId) {
+ Date now = new Date();
+ AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", param.getDevNo()));
+ Integer oldWrkNo = agvWrkMast.getWrkNo();
+ // 鏂板缓鍥為��宸ヤ綔妗�
+ AgvWrkMast wrkMast = createWrkMast(58, 201L, agvWrkMast.getLocNo(), agvWrkMast.getSourceLocNo(), agvWrkMast.getBarcode(), now, userId, agvWrkMast.getWhsType(), 0);
+ // 鏇存柊鎺ラ┏浣嶏紝鏇存柊搴撲綅鐘舵��
+ agvLocMastService.updateLocStsByLocNo(wrkMast.getLocNo(),"S",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue());
+ agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getSourceLocNo(),"R",wrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
+ // 鏇存柊宸ヤ綔鏄庣粏
+ List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("supp_code", agvWrkMast.getBarcode()));
+ for (AgvWrkDetl agvWrkDetl : agvWrkDetls) {
+ agvWrkDetl.setWrkNo(wrkMast.getWrkNo());
+ // 淇濇寔宸ヤ綔妗f槑缁�
+ agvWrkDetl.setWrkNo(wrkMast.getWrkNo());
+ agvWrkDetl.setModiUser(userId);
+ agvWrkDetl.setModiTime(now);
+ if (!agvWrkDetlService.insert(agvWrkDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+ }
+ // 鍚屾璁㈠崟鏁伴噺
+ OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("matnr", agvWrkDetl.getMatnr()).eq("three_code",agvWrkDetl.getThreeCode()).in("source",18,31,34));
+ orderDetl.setQty(orderDetl.getQty() - agvWrkDetl.getAnfme());
+ if (!orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>().eq("order_no",orderDetl.getOrderNo()).eq("matnr", orderDetl.getMatnr()).eq("three_code",orderDetl.getThreeCode()))){
+ throw new CoolException("淇敼璁㈠崟鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�"+orderDetl.getOrderNo()+orderDetl.getMatnr());
+ }
+ }
+
+ //鐢熸垚AGV宸ヤ綔鍘嗗彶妗� + 鐢熸垚AGV宸ヤ綔鏄庣粏鍘嗗彶妗�
+ agvWrkMastLogService.save(agvWrkMast);
+ agvWrkDetlLogService.save(agvWrkMast.getWrkNo());
+ //鍒犻櫎AGV宸ヤ綔妗�
+ agvWrkMastService.deleteById(agvWrkMast);
+ //鍒犻櫎AGV宸ヤ綔鏄庣粏妗�
+ agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",oldWrkNo));
+ return "ok";
+ }
+ /*
鏇存柊鐩爣搴撲綅淇℃伅
*/
private void updateAgvLocMast(AgvLocMast locMast, String locSts){
@@ -456,4 +572,41 @@
agvLocMastService.updateById(locMast);
}
+ /*
+ 鐢熸垚宸ヤ綔妗�
+ */
+ private AgvWrkMast createWrkMast(int ioType, long wrkSts, String sourceLocNo, String locNo, String barcode, Date now, Long userId, int containerType,int floor){
+ AgvWrkMast wrkMast = new AgvWrkMast();
+ //宸ヤ綔鐘舵��
+ wrkMast.setWrkSts(wrkSts);
+ //鍏ュ嚭搴撶被鍨�
+ wrkMast.setIoType(ioType);
+ wrkMast.setIoTime(now);
+ //浼樺厛绾�
+ wrkMast.setIoPri(300.0);
+ //婧愮珯鐐�
+ wrkMast.setSourceLocNo(sourceLocNo);
+ //鐩爣绔欑偣
+ wrkMast.setLocNo(locNo);
+ //瀹瑰櫒缂栫爜
+ wrkMast.setBarcode(barcode);
+ //瀹瑰櫒绫诲瀷
+ wrkMast.setWhsType(containerType);
+ // 鐩爣妤煎眰
+ wrkMast.setCrnNo(floor);
+
+ wrkMast.setAppeUser(userId);
+ wrkMast.setAppeTime(now);
+ wrkMast.setModiUser(userId);
+ wrkMast.setModiTime(now);
+
+ if (!agvWrkMastService.insertByIncrease(wrkMast)) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+
+ wrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", locNo).eq("source_loc_no",sourceLocNo).eq("barcode",barcode).orderBy("modi_time",false));
+
+ return wrkMast;
+ }
+
}
--
Gitblit v1.9.1