From b42da56f5b8fa7a2c7b78485142ed96ac4ea3571 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期日, 10 十一月 2024 13:58:59 +0800
Subject: [PATCH] 修改堆垛机库出入库限制
---
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 41 +++++++++++++++++++++++++++++++++++++----
1 files changed, 37 insertions(+), 4 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
index 78041df..2c35100 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -8,6 +8,7 @@
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.*;
+import com.zy.asrs.mapper.BasDevpMapper;
import com.zy.asrs.mapper.ManLocDetlMapper;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.MatUtils;
@@ -24,6 +25,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import javax.annotation.Resource;
import java.util.*;
/**
@@ -73,13 +75,25 @@
@Autowired
private ManLocDetlMapper manLocDetlMapper;
+ @Resource
+ private BasDevpMapper basDevpMapper;
@Override
public R inLocCallAgv(String sta, String inSta) {
- // 鍒ゆ柇鍏ュ簱绔欑偣鏈夋棤鍑哄簱浠诲姟杩囨护鐩樼偣鎹℃枡
- int count = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("sta_no", inSta).ne("wrk_sts",15).notIn("io_type",103,107));
- if (count > 0) {
- return R.parse(inSta + "绔欑偣瀛樺湪鍑哄簱浠诲姟");
+
+ BasDevp basDevp = basDevpMapper.selectById(inSta);
+ // 0.鍑哄簱妯″紡锛�1.agv鍏ュ簱涓紝2.鐢熸垚鍏ュ簱浠诲姟
+ if (basDevp.getDevMk().equals("0")) { // 鏄嚭搴�
+ // 鍒ゆ柇鏄惁鏈夊嚭搴撲换鍔�
+ int count = wrkMastService.selectCount(new EntityWrapper<WrkMast>()
+ .eq("sta_no", inSta).lt("wrk_sts",14).in("io_type",101,103,107,110));
+ if (count == 0) {
+ // 娌℃湁鍑哄簱浠诲姟锛屾洿鏀逛负鍏ュ簱妯″紡
+ basDevp.setDevMk("1");
+ basDevpMapper.updateById(basDevp);
+ } else {
+ return R.parse(inSta + "绔欑偣瀛樺湪鍑哄簱浠诲姟");
+ }
}
// 鍏堢粦瀹�
@@ -378,6 +392,11 @@
if(param.getCombMats().stream().anyMatch(obj -> obj.getAnfme() == null)){
throw new CoolException("鍏ュ簱鐗╂枡鏁伴噺涓嶈兘涓虹┖");
}
+ Order order = orderService.selectByNo(param.getOrderNo());
+ if (Cools.isEmpty(order) || order.getSettle() > 2) {
+ throw new CoolException("鍗曟嵁缂栧彿宸茶繃鏈�");
+ }
+
// 鍒ゆ柇鏄惁鏈夌浉鍚屾潯鐮佺殑鏁版嵁
if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>().
eq("zpallet", param.getBarcode()).eq("io_status", "N")) > 0) {
@@ -399,6 +418,19 @@
Date now = new Date();
for (CombParam.CombMat combMat : param.getCombMats()) {
+ // 璁㈠崟鏄庣粏鏁伴噺鏍¢獙
+ OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), combMat.getMatnr(), combMat.getBatch());
+ if (Cools.isEmpty(orderDetl)) {
+ throw new CoolException("璇ュ崟鎹腑鏈壘鍒板搴旂墿鏂欐槑缁�");
+ }
+ if (combMat.getAnfme() > orderDetl.getEnableQty()) {
+ throw new CoolException(orderDetl.getMatnr() + "鍏ュ簱鏁伴噺涓嶅悎娉�");
+ }
+ // 淇敼璁㈠崟浣滀笟鏁伴噺
+ if (!orderDetlService.increaseWorkQty(order.getId(), combMat.getMatnr(), combMat.getBatch(), combMat.getAnfme())) {
+ throw new CoolException("淇敼鍗曟嵁浣滀笟鏁伴噺澶辫触");
+ }
+
Mat mat = matService.selectByMatnr(combMat.getMatnr());
WrkDetl wrkDetl = new WrkDetl();
wrkDetl.sync(mat);
@@ -411,6 +443,7 @@
wrkDetl.setAppeUser(userId);
wrkDetl.setModiTime(now);
wrkDetl.setModiUser(userId);
+ wrkDetl.setManu(orderDetl.getManu());
wrkDetlService.insert(wrkDetl);
}
--
Gitblit v1.9.1