From 74863c38a407b1e0f36250dfa0c63e5da7fe5f66 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期一, 19 一月 2026 18:06:51 +0800
Subject: [PATCH] WMS功能完善
---
src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java | 169 ++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 116 insertions(+), 53 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java
index 6e602da..1b0199b 100644
--- a/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.core.common.Cools;
import com.core.common.DateUtils;
+import com.core.common.R;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.mapper.TaskMapper;
@@ -14,6 +15,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import javax.annotation.Resource;
import java.util.Collections;
import java.util.Date;
import java.util.List;
@@ -35,6 +37,9 @@
@Autowired
private TaskDetlLogService taskDetlLogService;
+ @Resource
+ private BasStationService basStationService;
+
@Override
@Transactional(rollbackFor = Exception.class)
public void completeWrkMast(String workNo, Long userId) {
@@ -42,13 +47,37 @@
if (Cools.isEmpty(wrkMast)) {
throw new CoolException(workNo + "宸ヤ綔妗d笉瀛樺湪");
}
- if (wrkMast.getWrkSts() == 304) {
- throw new CoolException("褰撳墠宸ヤ綔妗e凡瀹屾垚");
+ Date now = new Date();
+ // 缁堢偣鏄帴椹充綅 鍙兘瀹屾垚305
+ if (wrkMast.getStaNo().startsWith("A")) {
+ if(wrkMast.getWrkSts() == 305) {
+ throw new CoolException("褰撳墠宸ヤ綔妗e凡瀹屾垚");
+ }
+ wrkMast.setWrkSts(305L);
+ // 缁戝畾绔欑偣
+ BasStation basStation = basStationService.selectOne(new EntityWrapper<BasStation>().eq("dev_no", wrkMast.getStaNo()));
+ if (basStation.getBarcode().equals(wrkMast.getBarcode())) {
+ basStation.setLocSts("F");
+ basStation.setModiTime(now);
+ basStation.setModiUser(userId);
+ basStationService.updateById(basStation);
+ }
+ } else {
+ // 璧风偣鏄帴椹充綅 鍙兘瀹屾垚304
+ if (wrkMast.getWrkSts() == 304) {
+ throw new CoolException("褰撳墠宸ヤ綔妗e凡瀹屾垚");
+ }
+ wrkMast.setWrkSts(304L);
+ // 瑙g粦绔欑偣
+ BasStation basStation = basStationService.selectOne(new EntityWrapper<BasStation>().eq("dev_no", wrkMast.getSourceStaNo()));
+ if (basStation.getBarcode().equals(wrkMast.getBarcode())) {
+ basStation.setLocSts("O");
+ basStation.setModiTime(now);
+ basStation.setModiUser(userId);
+ basStationService.updateById(basStation);
+ }
}
- wrkMast.setWrkSts(304L);
-
- Date now = new Date();
wrkMast.setCrnStrTime(DateUtils.calculate(now, 1L, TimeUnit.SECONDS, true));
wrkMast.setCrnEndTime(now);
wrkMast.setModiTime(now);
@@ -60,61 +89,68 @@
}
}
+ @Resource
+ private MobileService mobileService;
+
@Override
@Transactional
public void pickWrkMast(String workNo, Long userId) {
- Task wrkMast = this.selectById(workNo);
+ Task wrkMast = this.selectOne(new EntityWrapper<Task>().eq("wrk_no", workNo));
if (Cools.isEmpty(wrkMast)) {
throw new CoolException(workNo + "宸ヤ綔妗d笉瀛樺湪");
}
- // 鍏ュ嚭搴撶被鍨嬪垽鏂�
- if (wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107) {
- throw new CoolException("褰撳墠鍏ュ嚭搴撶被鍨嬫棤娉曡繘琛屾搷浣�");
+ R r = mobileService.djReturn(wrkMast.getBarcode());
+ if(!r.get("code").equals(200)) {
+ throw new CoolException(""+r.get("msg"));
}
- // 宸ヤ綔鐘舵�佸垽鏂�
- if (wrkMast.getWrkSts() < 11 || wrkMast.getWrkSts() == 15) {
- throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曡繘琛屾搷浣�");
- }
- // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
-// if (!wrkDetlLogService.save(wrkMast.getWrkNo())) {
-// throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。澶辫触");
+// // 鍏ュ嚭搴撶被鍨嬪垽鏂�
+// if (wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107) {
+// throw new CoolException("褰撳墠鍏ュ嚭搴撶被鍨嬫棤娉曡繘琛屾搷浣�");
// }
- // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
- if (!taskLogService.save(wrkMast.getWrkNo())) {
- throw new CoolException("淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
- }
- // 鑾峰彇鐩爣绔�
-// Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
-// .eq("type_no", wrkMast.getIoType() - 50)
-// .eq("stn_no", wrkMast.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
-// .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿
-// StaDesc staDesc = staDescService.selectOne(wrapper);
-// if (Cools.isEmpty(staDesc)) {
-// throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
+// // 宸ヤ綔鐘舵�佸垽鏂�
+// if (wrkMast.getWrkSts() < 11 || wrkMast.getWrkSts() == 15) {
+// throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曡繘琛屾搷浣�");
// }
- Date now = new Date();
- // 鍫嗗灈鏈虹珯鐐�(鐩爣绔�)
-// Integer staNo = staDesc.getCrnStn();
- // 鏇存柊宸ヤ綔妗f暟鎹姸鎬�
- wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
- wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
- wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 婧愮珯
-// wrkMast.setStaNo(staNo + ""); // 鐩爣绔�
- wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
- wrkMast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌�
- wrkMast.setModiTime(now);
- wrkMast.setModiUser(userId);
- if (!this.updateById(wrkMast)) {
- throw new CoolException("鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
- }
- // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
- LocCache locMast = locCacheService.selectOne(new EntityWrapper<LocCache>().eq("loc_no", wrkMast.getLocNo()));
- locMast.setLocSts("Q");
- locMast.setModiTime(now);
- locMast.setModiUser(userId);
- if (!locCacheService.updateById(locMast)) {
- throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
- }
+// // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
+//// if (!wrkDetlLogService.save(wrkMast.getWrkNo())) {
+//// throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。澶辫触");
+//// }
+// // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
+// if (!taskLogService.save(wrkMast.getWrkNo())) {
+// throw new CoolException("淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
+// }
+// // 鑾峰彇鐩爣绔�
+//// Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+//// .eq("type_no", wrkMast.getIoType() - 50)
+//// .eq("stn_no", wrkMast.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
+//// .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿
+//// StaDesc staDesc = staDescService.selectOne(wrapper);
+//// if (Cools.isEmpty(staDesc)) {
+//// throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
+//// }
+// Date now = new Date();
+// // 鍫嗗灈鏈虹珯鐐�(鐩爣绔�)
+//// Integer staNo = staDesc.getCrnStn();
+// // 鏇存柊宸ヤ綔妗f暟鎹姸鎬�
+// wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
+// wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
+// wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 婧愮珯
+//// wrkMast.setStaNo(staNo + ""); // 鐩爣绔�
+// wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
+// wrkMast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌�
+// wrkMast.setModiTime(now);
+// wrkMast.setModiUser(userId);
+// if (!this.updateById(wrkMast)) {
+// throw new CoolException("鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
+// }
+// // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
+// LocCache locMast = locCacheService.selectOne(new EntityWrapper<LocCache>().eq("loc_no", wrkMast.getLocNo()));
+// locMast.setLocSts("Q");
+// locMast.setModiTime(now);
+// locMast.setModiUser(userId);
+// if (!locCacheService.updateById(locMast)) {
+// throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
+// }
}
@Override
@@ -131,8 +167,35 @@
if (Cools.isEmpty(wrkMast)) {
throw new CoolException(workNo + "宸ヤ綔妗d笉瀛樺湪");
}
- if(wrkMast.getWrkSts() >= 304) {
- throw new CoolException("宸ヤ綔鐘舵�佸凡缁忓畬鎴愶細" + wrkMast.getWrkSts());
+ // 缁堢偣鏄帴椹充綅
+ if (wrkMast.getStaNo().startsWith("A")) {
+// if(wrkMast.getWrkSts() == 305) {
+// throw new CoolException("褰撳墠宸ヤ綔妗e凡瀹屾垚");
+// }
+ // 瑙g粦绔欑偣
+ BasStation basStation = basStationService.selectOne(new EntityWrapper<BasStation>().eq("dev_no", wrkMast.getStaNo()));
+ if (basStation.getBarcode().equals(wrkMast.getBarcode())) {
+ basStation.setLocSts("O");
+ basStation.setBarcode("");
+ basStation.setModiTime(now);
+ basStation.setModiUser(userId);
+ basStationService.updateById(basStation);
+ }
+
+ } else {
+ // 璧风偣鏄帴椹充綅 鍙兘瀹屾垚304
+ if (wrkMast.getWrkSts() == 304) {
+ throw new CoolException("褰撳墠宸ヤ綔妗e凡瀹屾垚");
+ }
+ // 瑙g粦绔欑偣
+ BasStation basStation = basStationService.selectOne(new EntityWrapper<BasStation>().eq("dev_no", wrkMast.getSourceStaNo()));
+ if (basStation.getBarcode().equals(wrkMast.getBarcode())) {
+ basStation.setLocSts("O");
+ basStation.setBarcode("");
+ basStation.setModiTime(now);
+ basStation.setModiUser(userId);
+ basStationService.updateById(basStation);
+ }
}
// 鍙栨秷鎿嶄綔浜哄憳璁板綍
--
Gitblit v1.9.1