From 5e26cbc65c02d0b2bfda731bdce5519057cf13e8 Mon Sep 17 00:00:00 2001
From: whycq <10027870+whycq@user.noreply.gitee.com>
Date: 星期一, 20 五月 2024 14:10:21 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java | 91 +++++++++++++++++++++++++++++----------------
1 files changed, 59 insertions(+), 32 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 57ee21d..4fa0048 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
@@ -11,6 +11,7 @@
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;
@@ -454,56 +455,41 @@
*/
@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 mast = new AgvWrkMast();
- //宸ヤ綔鐘舵��
- mast.setWrkSts(210L);
- //鍏ュ嚭搴撶被鍨�
- mast.setIoType(111);
- mast.setIoTime(now);
- //浼樺厛绾�
- mast.setIoPri(300.0);
- //婧愮珯鐐�
- mast.setSourceLocNo("");
- //鐩爣绔欑偣
- mast.setLocNo("");
- //瀹瑰櫒缂栫爜
- mast.setBarcode(agvWrkMast.getBarcode());
- //瀹瑰櫒绫诲瀷
- mast.setWhsType(30);
- // 鐩爣妤煎眰
- mast.setPauseMk(agvWrkMast.getPauseMk());
- mast.setAppeUser(userId);
- mast.setAppeTime(now);
- mast.setModiUser(userId);
- mast.setModiTime(now);
- if (!agvWrkMastService.insertByIncrease(mast)) {
- throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
- }
+ AgvWrkMast wrkMast = createWrkMast(111, 210L, "", "", agvWrkMast.getBarcode(), now, userId, 30, agvWrkMast.getCrnNo());
// 鏇存柊宸ヤ綔鏄庣粏
- List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
+ List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("supp_code", agvWrkMast.getBarcode()));
for (AgvWrkDetl agvWrkDetl : agvWrkDetls) {
- agvWrkDetl.setWrkNo(mast.getWrkNo());
- if (!agvWrkDetlService.update(agvWrkDetl,new EntityWrapper<AgvWrkDetl>().eq("supp_code", agvWrkMast.getBarcode()))) {
- throw new CoolException("鏇存柊宸ヤ綔鏄庣粏澶辫触");
+ 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宸ヤ綔妗�
- agvWrkMastService.deleteById(agvWrkMast);
+
+ //鍒犻櫎AGV宸ヤ綔鏄庣粏妗�
+ agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",oldWrkNo));
return "ok";
}
/*
@@ -514,8 +500,12 @@
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);
@@ -540,4 +530,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