From e90dba0edc93be26e1509cfb2ec1d0681eb86e48 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期三, 27 八月 2025 08:37:04 +0800
Subject: [PATCH] 合并出库添加日志
---
src/main/java/com/zy/asrs/task/handler/AutoReplenishmentHandler.java | 90 ++++++++++++++++++++++++++++++---------------
1 files changed, 60 insertions(+), 30 deletions(-)
diff --git a/src/main/java/com/zy/asrs/task/handler/AutoReplenishmentHandler.java b/src/main/java/com/zy/asrs/task/handler/AutoReplenishmentHandler.java
index 044917d..451c395 100644
--- a/src/main/java/com/zy/asrs/task/handler/AutoReplenishmentHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AutoReplenishmentHandler.java
@@ -18,6 +18,7 @@
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
+import java.util.stream.Collectors;
@Service
public class AutoReplenishmentHandler extends AbstractHandler<String> {
@@ -28,6 +29,9 @@
private LocDetlService locDetlService;
@Autowired
private LocMastService locMastService;
+
+ @Autowired
+ private AgvLocMastService agvLocMastService;
@Autowired
private CommonService commonService;
@Autowired
@@ -44,6 +48,7 @@
public ReturnT<String> create(Mat mat, double anfme) {
//鍒涘缓涓�涓柊鐨勮嚜鍔ㄨˉ璐у崟鎹�
Order order = createOrder();
+ orderService.insert(order);
OrderDetl orderDetl = createOrderDetl(order);
orderDetl.setMatnr(mat.getMatnr());
orderDetl.setMaktx(mat.getMaktx());
@@ -51,7 +56,7 @@
orderDetl.setAnfme(anfme);
orderDetl.setQty(0.0);
- orderService.insert(order);
+
orderDetlService.insert(orderDetl);
return SUCCESS;
@@ -62,16 +67,16 @@
Date now = new Date();
Set<String> locNos = pakoutLoc(order);
- for (String locNo : locNos){
+ for (String locNo : locNos) {
LocMast locMast = locMastService.selectByLoc(locNo);
- if(!"F".equals(locMast.getLocSts())){
+ if (!"F".equals(locMast.getLocSts())) {
throw new CoolException("搴撲綅鐘舵�佸凡鍙樻洿");
}
//鐢熸垚宸ヤ綔妗�
- WrkMast wrkMast = createWrkMast(locNo,locMast.getBarcode(),now);
+ WrkMast wrkMast = createWrkMast(locNo, locMast.getBarcode(), now);
//鐢熸垚宸ヤ綔妗f槑缁�
List<LocDetl> locDetls = locDetlService.selectByLocNo(locNo);
- createWrkDetl(locDetls, wrkMast,order.getOrderNo(),now);
+ createWrkDetl(locDetls, wrkMast, order.getOrderNo(), now);
//淇敼搴撲綅鐘舵��
locMast.setLocSts("R");
locMastService.updateByLocNo(locMast);
@@ -82,7 +87,7 @@
return SUCCESS;
}
- private Order createOrder(){
+ private Order createOrder() {
Date now = new Date();
return new Order(
String.valueOf(snowflakeIdWorker.nextId()), // 缂栧彿[闈炵┖]
@@ -123,7 +128,7 @@
}
- private OrderDetl createOrderDetl(Order order){
+ private OrderDetl createOrderDetl(Order order) {
Date now = new Date();
OrderDetl orderDetl = new OrderDetl();
@@ -139,14 +144,14 @@
return orderDetl;
}
- private Set<String> pakoutLoc(Order order){
+ private Set<String> pakoutLoc(Order order) {
//闇�瑕佸嚭搴撶殑搴撲綅
Set<String> locNos = new HashSet<>();
//鏍规嵁璁㈠崟鐢熸垚鍥涢」搴撳嚭搴撳伐浣滄。
List<OrderDetl> orderDetlList = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no", order.getOrderNo()));
- for(OrderDetl orderDetl : orderDetlList){
- if(orderDetl.getAnfme() - orderDetl.getQty() <= 0){
+ for (OrderDetl orderDetl : orderDetlList) {
+ if (orderDetl.getAnfme() - orderDetl.getQty() <= 0) {
continue;
}
@@ -157,16 +162,34 @@
//List<String> locNosSearch = locDetlService.selectLocNo(matnr);
Set<String> locNosSearch = locDetlService.selectLocNos(matnr);
- //閲嶆柊鎺掑簭 骞朵笖妫�娴嬭搴撲綅鏄惁鍚病鏈夋枡绠辩爜鐨勭墿鏂欙紝濡傛湁鏈夊垯涓嶅厑璁稿嚭搴�
+ //杩囨护搴撲綅璐х墿涓洪珮璐х墿
+ locNosSearch = locNosSearch.stream().filter(locNo -> {
+ LocMast locMast = locMastService.selectByLoc(locNo);
+ if (locMast.getLocType1() == 3) {
+ return false;
+ } else {
+ //涓旀娴嬭搴撲綅鏄惁鍚病鏈夎揣鏋剁爜鐨勭墿鏂欙紝濡傛湁鏈夊垯涓嶅厑璁稿嚭搴�
+// LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locNo)
+// .andNew().eq("supp_code", "").or().isNull("supp_code"));
+
+ if (Cools.isEmpty(locDetlService.selectByLocWithoutContainer(locNo))) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+ }).collect(Collectors.toSet());
+
+ //閲嶆柊鎺掑簭
Set<String> resort = resort(locNosSearch);
- for(String locNo : resort){
+ for (String locNo : resort) {
List<LocDetl> locDetls = locDetlService.selectByLocNo(locNo);
locNos.add(locNo);
- for (LocDetl locDetl :locDetls){
- if(matnr.equals(locDetl.getMatnr())){
+ for (LocDetl locDetl : locDetls) {
+ if (matnr.equals(locDetl.getMatnr())) {
orderAnfme -= locDetl.getAnfme();
- }else {
+ } else {
OrderDetl odNew = createOrderDetl(order);
odNew.setMatnr(locDetl.getMatnr());
odNew.setMaktx(locDetl.getMaktx());
@@ -179,13 +202,13 @@
orderDetlService.insert(odNew);
}
}
- if(orderAnfme <= 0){
+ if (orderAnfme <= 0) {
orderDetl.setQty(orderDetl.getAnfme() - orderAnfme);
orderDetlService.updateById(orderDetl);
break;
}
}
- if(orderAnfme > 0){
+ if (orderAnfme > 0) {
orderDetl.setAnfme(orderDetl.getAnfme() - orderAnfme);
orderDetl.setQty(orderDetl.getAnfme());
orderDetlService.updateById(orderDetl);
@@ -196,30 +219,30 @@
}
//鏍规嵁娣辨祬搴撲綅杩涜閲嶆柊鎺掑簭
- private Set<String> resort(Set<String> locNos){
+ private Set<String> resort(Set<String> locNos) {
Set<String> locNosResort = new LinkedHashSet<>();
- for(String locNoSearch : locNos){
+ for (String locNoSearch : locNos) {
LocMast locMast = locMastService.selectById(locNoSearch);
- if(!"F".equals(locMast.getLocSts())){
+ if (!"F".equals(locMast.getLocSts())) {
continue;
}
List<String> groupOuterLoc = Utils.getGroupOuterLoc(locNoSearch);
- if(Cools.isEmpty(groupOuterLoc)){
+ if (Cools.isEmpty(groupOuterLoc)) {
locNosResort.add(locNoSearch);
- }else {
+ } else {
groupOuterLoc.add(locNoSearch);
//濡傛灉鏄繁搴撲綅锛屽垯鍏堟壘澶栦晶鐨勫簱浣�
- for (String locNoOut : groupOuterLoc){
+ for (String locNoOut : groupOuterLoc) {
LocMast locMastOuter = locMastService.selectById(locNoOut);
//澶栦晶濡傛灉鏄嫞鏂欙紝鍒欏唴娴嬩笉鍏佽鍑�
- if("P".equals(locMastOuter.getLocSts()) || "Q".equals(locMastOuter.getLocSts()) || "S".equals(locMastOuter.getLocSts())){
+ if ("P".equals(locMastOuter.getLocSts()) || "Q".equals(locMastOuter.getLocSts()) || "S".equals(locMastOuter.getLocSts())) {
break;
}
- if(!"F".equals(locMastOuter.getLocSts())){
+ if (!"F".equals(locMastOuter.getLocSts())) {
continue;
}
locNosResort.add(locNoOut);
@@ -230,7 +253,7 @@
return locNosResort;
}
- private WrkMast createWrkMast(String locNo,String barCode,Date now){
+ private WrkMast createWrkMast(String locNo, String barCode, Date now) {
int ioType = 101;
int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
WrkMast wrkMast = new WrkMast();
@@ -254,19 +277,26 @@
wrkMast.setAppeTime(now);
//wrkMast.setModiUser(userId);
wrkMast.setModiTime(now);
-
+ Integer pltType = null;
+ if (!Cools.isEmpty(locNo) && Cools.isEmpty(pltType)) {
+ AgvLocMast agvLocMast = agvLocMastService.selectById(locNo);
+ if (agvLocMast != null) {
+ pltType = agvLocMast.getPltType();
+ }
+ }
+ wrkMast.setPltType(pltType);
//琛ヨ揣鏍囪瘑
wrkMast.setMk("Y");
if (!wrkMastService.insert(wrkMast)) {
- throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細"+locNo);
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細" + locNo);
}
return wrkMast;
}
- private void createWrkDetl(List<LocDetl> locDetls, WrkMast wrkMast,String orderNo, Date now){
+ private void createWrkDetl(List<LocDetl> locDetls, WrkMast wrkMast, String orderNo, Date now) {
locDetls.forEach(locDetl -> {
WrkDetl wrkDetl = new WrkDetl();
- BeanUtils.copyProperties(locDetl,wrkDetl);
+ BeanUtils.copyProperties(locDetl, wrkDetl);
wrkDetl.setZpallet(wrkMast.getBarcode());
wrkDetl.setIoTime(now);
wrkDetl.setWrkNo(wrkMast.getWrkNo());
--
Gitblit v1.9.1