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