From 43efe016c156158b9fc3a8b647810f612fb126e6 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期二, 02 九月 2025 11:39:52 +0800
Subject: [PATCH] 自动补货单新增 1.订单中只能生成两笔自动补货单 2.CTU库是否有足够的空库位,空库位数需要大于100才会生成自动补货单 3.在补货时加上订单明细的数量进行判断
---
src/main/java/com/zy/asrs/task/AutoReplenishmentScheduler.java | 54 ++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 48 insertions(+), 6 deletions(-)
diff --git a/src/main/java/com/zy/asrs/task/AutoReplenishmentScheduler.java b/src/main/java/com/zy/asrs/task/AutoReplenishmentScheduler.java
index 7ed6705..273d223 100644
--- a/src/main/java/com/zy/asrs/task/AutoReplenishmentScheduler.java
+++ b/src/main/java/com/zy/asrs/task/AutoReplenishmentScheduler.java
@@ -2,10 +2,7 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
-import com.zy.asrs.entity.DocType;
-import com.zy.asrs.entity.LocDetl;
-import com.zy.asrs.entity.Mat;
-import com.zy.asrs.entity.Order;
+import com.zy.asrs.entity.*;
import com.zy.asrs.service.*;
import com.zy.asrs.task.handler.AutoReplenishmentHandler;
import com.zy.common.entity.Parameter;
@@ -24,6 +21,8 @@
@Autowired
private OrderService orderService;
@Autowired
+ private OrderDetlService orderDetlService;
+ @Autowired
private DocTypeService docTypeService;
@Autowired
private AutoReplenishmentHandler autoReplenishmentHandler;
@@ -31,6 +30,8 @@
private MatService matService;
@Autowired
private AgvLocDetlService agvLocDetlService;
+ @Autowired
+ private AgvLocMastService agvLocMastService;
@Autowired
private LocDetlService locDetlService;
@@ -50,7 +51,13 @@
.eq("doc_type", docType.getDocId())
.andNew().eq("settle",2)
.or().eq("settle",1));
- if(count > 0){
+ if(count > 2){
+ return;
+ }
+
+ //鍒ゆ柇CTU搴撴槸鍚︽湁瓒冲鐨勭┖搴撲綅锛岀┖搴撲綅鏁伴渶瑕佸ぇ浜�100
+ int i = agvLocMastService.selectCount(new EntityWrapper<AgvLocMast>().eq("loc_sts", "O"));
+ if(i < 100){
return;
}
@@ -58,13 +65,48 @@
List<Mat> matList = matService.selectList(new EntityWrapper<Mat>().gt( "store_min", 0));
if(!Cools.isEmpty(matList)){
for (Mat mat : matList){
+ //妫�娴嬫槸鍚︽湁鏈畬鎴愮殑琛ヨ揣鍗曟嵁
+ DocType docType1 = docTypeService.selectOne(new EntityWrapper<DocType>().eq("doc_name", "鑷姩琛ヨ揣鍗�"));
+ int count1 = orderService.selectCount(new EntityWrapper<Order>()
+ .eq("doc_type", docType1.getDocId())
+ .andNew().eq("settle",2)
+ .or().eq("settle",1));
+ if(count1 > 2){
+ break;
+ }
+
+ //鍒ゆ柇CTU搴撴槸鍚︽湁瓒冲鐨勭┖搴撲綅锛岀┖搴撲綅鏁伴渶瑕佸ぇ浜�100
+ int j = agvLocMastService.selectCount(new EntityWrapper<AgvLocMast>().eq("loc_sts", "O"));
+ if(j < 100){
+ return;
+ }
+
+ //鏀堕泦褰撳墠鐗╂枡鑷姩琛ヨ揣鍗曟槑缁嗘暟閲�
+ Double orderDetlCount = 0.0;
+ List<Order> orders = orderService.selectList(new EntityWrapper<Order>()
+ .eq("doc_type", docType1.getDocId())
+ .andNew().eq("settle", 2)
+ .or().eq("settle", 1));
+ if(!Cools.isEmpty(orders)){
+ for (Order order : orders){
+ List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>()
+ .eq("matnr", mat.getMatnr())
+ .eq("order_no", order.getOrderNo()));
+ if(Cools.isEmpty(orderDetls)){
+ continue;
+ }
+ for (OrderDetl orderDetl : orderDetls){
+ orderDetlCount=orderDetlCount+orderDetl.getQty();
+ }
+ }
+ }
//鏌ヨ褰撳墠鐗╂枡鏄惁鍦╝gv搴撳皬浜庡簱瀛樹笂闄�
Double anfmeSum = agvLocDetlService.selectSumAnfmeByMatnr(mat.getMatnr());
if(Cools.isEmpty(anfmeSum)){
anfmeSum = 0.0;
}
//褰撳墠鐗╂枡涓嶉渶瑕佽ˉ璐�
- if(anfmeSum > mat.getStoreMin()){
+ if(anfmeSum+orderDetlCount > mat.getStoreMin()){
continue;
}
//鏌ヨ褰撳墠鐗╂枡鍥涢」搴撴槸鍚﹀瓨鍦�,骞朵笖鎵樼洏涓嶅惈鏈夐潪鏂欑鐗╂枡
--
Gitblit v1.9.1