From fd4ceb219634c802a69828cdae2102278581ba9f Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期二, 14 一月 2025 14:58:02 +0800
Subject: [PATCH] 优化定时任务,添加自动接单(未完成,逻辑还不清楚),调整环境配置
---
src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java | 84 ++++++++++++++++++++++++++++++-----------
1 files changed, 61 insertions(+), 23 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 f8897c0..6b192ba 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
@@ -17,10 +17,7 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Optional;
+import java.util.*;
import java.util.stream.Collectors;
/**
@@ -92,6 +89,17 @@
if (!Cools.isEmpty(agvWrkMastService.selectByContainerCode(param.getBarcode()))) {
throw new CoolException(param.getBarcode() + "璐ф灦鐮佸凡瀛樺湪AGV宸ヤ綔妗d腑");
}
+ //鍒ゆ柇鏄惁鏈夌浉鍚屾槑缁�
+ List<CombParam.CombMat> combMats = param.getCombMats();
+ Map<String, String> data = new HashMap<>();
+ for (CombParam.CombMat combMat : combMats) {
+ String matnr = combMat.getMatnr();
+ String csocode = combMat.getCsocode();
+ if (data.get(matnr + csocode) != null) {
+ throw new CoolException("鏄庣粏涓瓨鍦ㄧ浉鍚岀墿鏂欏彿鍜岃鍗曞彿");
+ }
+ data.put(matnr + csocode, matnr + csocode);
+ }
if (Cools.isEmpty(param.getOrderNo())) {
//鏃犲崟缁勬墭
@@ -131,23 +139,23 @@
AgvWrkDetl agvWrkDetl = agvWrkDetlService.selectOne(new EntityWrapper<AgvWrkDetl>().eq("matnr", pick.getMatnr()).eq("three_code", pick.getThreeCode()).eq("supp_code", pick.getSuppCode()));
if (Cools.isEmpty(agvWrkDetl)) {
- AgvWrkDetl wrkDetl = new AgvWrkDetl();
+ agvWrkDetl = new AgvWrkDetl();
Mat mat = matService.selectByMatnr(pick.getMatnr());
if (Cools.isEmpty(mat)) {
throw new CoolException(pick.getMatnr() + "鍟嗗搧涓嶅瓨鍦�");
}
- wrkDetl.sync(mat);
- wrkDetl.setWrkNo(pickParams.getWrkNo());
- wrkDetl.setOrderNo(pick.getOrderNo());
- wrkDetl.setIoTime(agvWrkMast.getIoTime());
- wrkDetl.setAnfme(pick.getCount()); // 鏁伴噺
- wrkDetl.setSuppCode(pick.getSuppCode()); // 璐ф灦鏉$爜
- wrkDetl.setAppeUser(userId);
- wrkDetl.setAppeTime(now);
- wrkDetl.setModiUser(userId);
- wrkDetl.setModiTime(now);
- wrkDetl.setThreeCode(pick.getThreeCode());
- agvWrkDetlService.insert(wrkDetl);
+ agvWrkDetl.sync(mat);
+ agvWrkDetl.setWrkNo(pickParams.getWrkNo());
+ agvWrkDetl.setOrderNo(pick.getOrderNo());
+ agvWrkDetl.setIoTime(agvWrkMast.getIoTime());
+ agvWrkDetl.setAnfme(pick.getCount()); // 鏁伴噺
+ agvWrkDetl.setSuppCode(pick.getSuppCode()); // 璐ф灦鏉$爜
+ agvWrkDetl.setAppeUser(userId);
+ agvWrkDetl.setAppeTime(now);
+ agvWrkDetl.setModiUser(userId);
+ agvWrkDetl.setModiTime(now);
+ agvWrkDetl.setThreeCode(pick.getThreeCode());
+ agvWrkDetlService.insert(agvWrkDetl);
} else {
Double anfme = agvWrkDetl.getAnfme() + pick.getCount();
agvWrkDetl.setIoTime(agvWrkMast.getIoTime());
@@ -164,13 +172,14 @@
if (agvLocDetl.getAnfme() < agvWrkDetl.getAnfme()) {
throw new CoolException("鎷f枡鏁伴噺涓嶈兘澶т簬搴撳瓨鏁伴噺");
}
- }else {
+ } else {
throw new CoolException("鎷f枡鏁伴噺涓嶈兘澶т簬搴撳瓨鏁伴噺,瀛樺簱涓嶅瓨鍦�");
}
// 鏇存柊璁㈠崟
OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", pick.getOrderNo()).eq("matnr", pick.getMatnr()).eq("three_code", pick.getThreeCode()));
orderDetl.setQty(orderDetl.getQty() + pick.getCount());
+ orderDetl.setUpdateTime(new Date());
if (!orderDetlService.update(orderDetl, new EntityWrapper<OrderDetl>().eq("order_no", pick.getOrderNo()).eq("matnr", pick.getMatnr()).eq("three_code", pick.getThreeCode()))) {
throw new CoolException("淇敼璁㈠崟鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�" + pick.getOrderNo() + pick.getMatnr());
}
@@ -345,6 +354,10 @@
AgvBasDevp agvBasDevp = agvBasDevpService.selectOne(new EntityWrapper<AgvBasDevp>().eq("dev_no", stationCode));
+ if (agvBasDevp == null) {
+ throw new CoolException(stationCode + "绔欑偣淇℃伅閿欒");
+ }
+
if (Cools.eq(agvBasDevp.getBarcode(), barcode)) {
return;
}
@@ -359,9 +372,7 @@
throw new CoolException(barcode + "宸茬粡缁戝畾鍦�" + agvBasDevp.getDevNo() + "绔欑偣");
}
- if (agvBasDevp == null) {
- throw new CoolException(stationCode + "绔欑偣淇℃伅閿欒");
- }
+
if (!"O".equals(agvBasDevp.getLocSts())) {
throw new CoolException(stationCode + "璇ョ珯鐐硅揣浣嶇姸鎬侀潪绌�");
}
@@ -691,6 +702,9 @@
throw new CoolException("璇疯緭鍏ヨ揣鏋剁爜");
}
AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("source_loc_no", param.getDevNo()));
+ if (agvWrkMast == null) {
+ throw new CoolException("褰撳墠璐ф灦鐮佹病鏈変换鍔�");
+ }
Integer oldWrkNo = agvWrkMast.getWrkNo();
if (Cools.isEmpty(agvWrkMast)) {
throw new CoolException("宸ヤ綔妗d腑娌℃湁姝ょ珯鐐逛换鍔�");
@@ -746,6 +760,9 @@
public String handBack(AgvMobileStartPakin param, Long userId) {
Date now = new Date();
AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("source_loc_no", param.getDevNo()));
+ if (agvWrkMast == null){
+ throw new CoolException("宸ヤ綔妗d腑娌℃湁姝ょ珯鐐逛换鍔�");
+ }
agvWrkMast.setIoType(113);
agvWrkMast.setModiUser(userId);
agvWrkMast.setModiTime(now);
@@ -774,6 +791,9 @@
agvWrkDetlLogService.save(agvWrkMast.getWrkNo());
String sourceLocNo = agvWrkMast.getSourceLocNo();
AgvLocMast newLocMast = agvCommonService.getLocNo(3, 1, false, false);
+ if (newLocMast==null){
+ throw new CoolException("鏃犲彲鐢ㄥ簱浣�");
+ }
agvWrkMast.setSourceLocNo(agvWrkMast.getLocNo());
agvWrkMast.setLocNo(newLocMast.getLocNo());
agvWrkMast.setIoType(57);
@@ -860,9 +880,27 @@
throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
}
// 鍚屾璁㈠崟鏁伴噺
- OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("matnr", agvWrkDetl.getMatnr()).eq("three_code", agvWrkDetl.getThreeCode()).eq("order_no", agvWrkDetl.getOrderNo()).in("source", 18, 31, 34));
+ //OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("matnr", agvWrkDetl.getMatnr()).eq("three_code", agvWrkDetl.getThreeCode()).eq("order_no", agvWrkDetl.getOrderNo()).in("source", 18, 31, 34));
+ List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("matnr", agvWrkDetl.getMatnr()).eq("three_code", agvWrkDetl.getThreeCode()).eq("order_no", agvWrkDetl.getOrderNo()));
+ OrderDetl orderDetl = null;
+ if (orderDetls.isEmpty()) {
+ throw new CoolException("璁㈠崟鏄庣粏涓嶅瓨鍦�");
+ } else if (orderDetls.size() > 1) {
+ for (OrderDetl detl : orderDetls) {
+ if (Cools.isEmpty(agvWrkDetl.getBatch()) && Cools.isEmpty(detl.getBatch())) {
+ orderDetl = detl;
+ } else if (!Cools.isEmpty(agvWrkDetl.getBatch()) && !Cools.isEmpty(detl.getBatch()) && agvWrkDetl.getBatch().equals(detl.getBatch())) {
+ orderDetl = detl;
+ }
+ }
+ if (orderDetl == null) {
+ throw new CoolException("璁㈠崟鏄庣粏涓嶅尮閰�");
+ }
+ } else {
+ orderDetl = orderDetls.get(0);
+ }
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()))) {
+ if (!orderDetlService.updateById(orderDetl)) {
throw new CoolException("淇敼璁㈠崟鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�" + orderDetl.getOrderNo() + orderDetl.getMatnr());
}
}
--
Gitblit v1.9.1