From 65b0504a31e97af4f80bd31eaf7b56eea7e80a38 Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期一, 08 十二月 2025 08:44:54 +0800
Subject: [PATCH] #出库单
---
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java | 192 ++++++++++++++++++++++++++++++++++++------------
1 files changed, 144 insertions(+), 48 deletions(-)
diff --git a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
index ef6f47d..2179a15 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -59,6 +59,8 @@
private BasStationServiceImpl basStationService;
@Autowired
private CheckOrderDetlService checkOrderDetlService;
+ @Autowired
+ private WaitPakinLogService waitPakinLogService;
public ReturnT<String> start(WrkMast wrkMast) {
// 4.鍏ュ簱瀹屾垚
@@ -831,58 +833,152 @@
@Transactional(rollbackFor = Exception.class)
public ReturnT<String> agvDoIn(Task wrkMast) {
LocCache locCache = locCacheService.selectOne(new EntityWrapper<LocCache>().eq("loc_no", wrkMast.getLocNo()));
- if (Objects.isNull(locCache)) {
- throw new CoolException("鏁版嵁閿欒锛屽簱浣嶄笉瀛樺湪锛侊紒");
- }
- if (!locCache.getLocSts().equals(LocStsType.LOC_STS_TYPE_S.type)) {
- throw new CoolException(
- "褰撳墠搴撲綅鐘舵�佷负锛�" + LocStsType.LOC_STS_TYPE_S.type + "." + LocStsType.LOC_STS_TYPE_S.desc + "锛屼笉鏄嚭搴撻绾︾姸鎬�");
- }
- List<WaitPakin> apallet = waitPakinService
- .selectList(new EntityWrapper<WaitPakin>().eq("zpallet", wrkMast.getBarcode()));
- if (Objects.isNull(apallet)) {
- throw new CoolException("鏁版嵁閿欒锛氱粍鎵樻暟鎹笉瀛樺湪锛侊紒");
- }
- apallet.forEach(pakin -> {
- LocDetl detl = new LocDetl();
- BeanUtils.copyProperties(pakin, detl);
-
- detl.setBarcode(pakin.getBarcode());
- detl.setAnfme(pakin.getAnfme());
- detl.setBrand(pakin.getBrand());
- detl.setAppeTime(new Date());
- detl.setSpecs(pakin.getSpecs());
- detl.setColor(pakin.getColor());
- detl.setLocId(locCache.getId());
- detl.setLocNo(locCache.getLocNo());
- detl.setAreaId(locCache.getAreaId());
- detl.setAreaName(locCache.getAreaName());
- detl.setUnit(pakin.getUnit());
- detl.setBatch(pakin.getBatch());
- if (!locDetlService.insert(detl)) {
- throw new CoolException("搴撲綅鏄庣粏淇濆瓨澶辫触锛侊紒");
+ if(wrkMast.getIoType().equals(1)){
+ if (Objects.isNull(locCache)) {
+ throw new CoolException("鏁版嵁閿欒锛屽簱浣嶄笉瀛樺湪锛侊紒");
}
- });
+ if (!locCache.getLocSts().equals(LocStsType.LOC_STS_TYPE_S.type)) {
+ throw new CoolException(
+ "褰撳墠搴撲綅鐘舵�佷负锛�" + LocStsType.LOC_STS_TYPE_S.type + "." + LocStsType.LOC_STS_TYPE_S.desc + "锛屼笉鏄嚭搴撻绾︾姸鎬�");
+ }
+ List<WaitPakin> apallet = waitPakinService
+ .selectList(new EntityWrapper<WaitPakin>().eq("zpallet", wrkMast.getBarcode()));
+ if (Objects.isNull(apallet)) {
+ throw new CoolException("鏁版嵁閿欒锛氱粍鎵樻暟鎹笉瀛樺湪锛侊紒");
+ }
+ apallet.forEach(pakin -> {
+ LocDetl detl = new LocDetl();
+ BeanUtils.copyProperties(pakin, detl);
- locCache.setLocSts(LocStsType.LOC_STS_TYPE_F.type);
- locCache.setModiTime(new Date());
- locCache.setBarcode(wrkMast.getBarcode());
- locCache.setModiTime(new Date());
- locCache.setIoTime(new Date());
- if (!locCacheService.updateById(locCache)) {
- throw new CoolException("搴撲綅鐘舵�佷慨鏀瑰け璐ワ紒");
- }
- wrkMast.setWrkSts(5L);
- wrkMast.setModiTime(new Date());
- if (!taskService.updateById(wrkMast)) {
- throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+ detl.setBarcode(pakin.getBarcode());
+ detl.setAnfme(pakin.getAnfme());
+ detl.setBrand(pakin.getBrand());
+ detl.setAppeTime(new Date());
+ detl.setSpecs(pakin.getSpecs());
+ detl.setColor(pakin.getColor());
+ detl.setLocId(locCache.getId());
+ detl.setLocNo(locCache.getLocNo());
+ detl.setAreaId(locCache.getAreaId());
+ detl.setAreaName(locCache.getAreaName());
+ detl.setUnit(pakin.getUnit());
+ detl.setBatch(pakin.getBatch());
+ if (!locDetlService.insert(detl)) {
+ throw new CoolException("搴撲綅鏄庣粏淇濆瓨澶辫触锛侊紒");
+ }
+ });
+
+ locCache.setLocSts(LocStsType.LOC_STS_TYPE_F.type);
+ locCache.setModiTime(new Date());
+ locCache.setBarcode(wrkMast.getBarcode());
+ locCache.setModiTime(new Date());
+ locCache.setIoTime(new Date());
+ if (!locCacheService.updateById(locCache)) {
+ throw new CoolException("搴撲綅鐘舵�佷慨鏀瑰け璐ワ紒");
+ }
+ wrkMast.setWrkSts(5L);
+ wrkMast.setModiTime(new Date());
+ if (!taskService.updateById(wrkMast)) {
+ throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+ }
+
+ for (WaitPakin pakin : apallet){
+ WaitPakinLog waitPakinLog = new WaitPakinLog();
+ BeanUtils.copyProperties(pakin, waitPakinLog);
+ waitPakinLogService.insert(waitPakinLog);
+ waitPakinService.deleteById(pakin.getId());
+ }
+
+ Set<Long> list = apallet.stream().map(WaitPakin::getOrderId).collect(Collectors.toSet());
+ List<OrderPakin> pakins = orderPakinService.selectList(new EntityWrapper<OrderPakin>().in("id", list));
+ if (Objects.isNull(pakins) || pakins.isEmpty()) {
+// throw new CoolException("鍗曟嵁涓嶅瓨鍦紒锛�");
+ }
+ }else if(wrkMast.getIoType().equals(53)){
+ // 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
+ List<TaskDetl> wrkDetls53 = taskDetlService
+ .selectList(new EntityWrapper<TaskDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+ if (wrkDetls53.isEmpty()) {
+ // exceptionHandle("鎷f枡鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo="
+ + wrkMast.getLocNo() + "]");
+ }
+ for (TaskDetl wrkDetl : wrkDetls53) {
+
+ LocDetl locDetl = locDetlService.selectItem(locCache.getLocNo(), wrkDetl.getMatnr(),
+ wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(),
+ wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(),
+ wrkDetl.getBoxType3());
+ if (null != locDetl) {
+ if (!locDetlService.updateAnfme(locDetl.getAnfme() - wrkDetl.getAnfme(), locCache.getLocNo(),
+ wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(),
+ wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(),
+ wrkDetl.getBoxType2(), wrkDetl.getBoxType3())) {
+ // exceptionHandle("鎷f枡鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
+ // wrkMast.getWrkNo(), wrkMast.getLocNo());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo="
+ + wrkMast.getLocNo() + "]");
+ }
+ }
+
+ // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+ OrderDetlPakout orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(),
+ wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(),
+ wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(),
+ wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
+ if (orderDetlPakout == null) {
+ orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
+ wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(),
+ wrkDetl.getStandby2(), wrkDetl.getStandby3(),
+ wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
+ }
+ try {
+ if (!Cools.isEmpty(orderDetlPakout)) {
+ if (!orderDetlPakinService.increaseQtyByOrderNo(wrkDetl.getOrderNo(),
+ wrkDetl.getMatnr(),
+ orderDetlPakout.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(),
+ wrkDetl.getStandby2(), wrkDetl.getStandby3(),
+ wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3(),
+ wrkDetl.getAnfme())) {
+ // exceptionHandle("鎷f枡鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
+ // wrkMast.getWrkNo(), wrkMast.getLocNo());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo()
+ + "],[locNo=" + wrkMast.getLocNo() + "]");
+ }
+ }
+ } catch (Exception ignore) {
+ }
+
+ }
+ Date now = new Date();
+ // 淇敼搴撲綅鐘舵�� Q ====>> F
+ if (locCache.getLocSts().equals("Q")) {
+ locCache.setLocSts("F");
+ locCache.setBarcode(wrkMast.getBarcode());
+ locCache.setIoTime(now);
+ locCache.setModiTime(now);
+ if (!locCacheService.updateById(locCache)) {
+ // exceptionHandle("鎷f枡鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]",
+ // wrkMast.getWrkNo(), wrkMast.getLocNo());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo="
+ + wrkMast.getLocNo() + "]");
+ }
+ }
+
+ // 淇敼宸ヤ綔涓绘。鐘舵��
+ wrkMast.setWrkSts(5L);
+ wrkMast.setModiTime(now);
+ if (!taskService.updateById(wrkMast)) {
+ // exceptionHandle("鏇存柊鍏ュ簱瀹屾垚鐘舵�佸け璐�;[workNo={0}]", wrkMast.getWrkNo());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL
+ .setMsg("鏇存柊鍏ュ簱瀹屾垚鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+ }
}
- Set<Long> list = apallet.stream().map(WaitPakin::getOrderId).collect(Collectors.toSet());
- List<OrderPakin> pakins = orderPakinService.selectList(new EntityWrapper<OrderPakin>().in("id", list));
- if (Objects.isNull(pakins) || pakins.isEmpty()) {
- throw new CoolException("鍗曟嵁涓嶅瓨鍦紒锛�");
- }
return SUCCESS;
}
--
Gitblit v1.9.1