From cb68c3e4547653ee7d308aa4da51f31363647a0f Mon Sep 17 00:00:00 2001
From: zyx <zyx123456>
Date: 星期四, 23 十一月 2023 18:09:43 +0800
Subject: [PATCH] 自动补货

---
 src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java     |    4 ++++
 src/main/java/com/zy/asrs/task/handler/AutoReplenishmentHandler.java |   14 +++++++++++++-
 src/main/java/com/zy/asrs/task/AutoReplenishmentScheduler.java       |   22 +++++++++++++++-------
 3 files changed, 32 insertions(+), 8 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 6dfd117..982fcbf 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
@@ -234,6 +234,10 @@
         if(!"O".equals(agvBasDevp.getLocSts())){
             throw new CoolException(stationCode + "璇ョ珯鐐硅揣浣嶇姸鎬侀潪绌�");
         }
+        AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", agvBasDevp.getDevNo()));
+        if(!Cools.isEmpty(agvWrkMast)){
+            throw new CoolException(stationCode + "璇ョ珯鐐瑰凡琚伐浣滃彿涓�" + agvWrkMast.getWrkNo() + "鍗犵敤锛屾棤娉曠粦瀹�");
+        }
 
         agvBasDevp.setBarcode(barcode);
         agvBasDevp.setLocSts("F");
diff --git a/src/main/java/com/zy/asrs/task/AutoReplenishmentScheduler.java b/src/main/java/com/zy/asrs/task/AutoReplenishmentScheduler.java
index d0ab451..3f08e02 100644
--- a/src/main/java/com/zy/asrs/task/AutoReplenishmentScheduler.java
+++ b/src/main/java/com/zy/asrs/task/AutoReplenishmentScheduler.java
@@ -3,12 +3,10 @@
 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.service.AgvLocDetlService;
-import com.zy.asrs.service.DocTypeService;
-import com.zy.asrs.service.MatService;
-import com.zy.asrs.service.OrderService;
+import com.zy.asrs.service.*;
 import com.zy.asrs.task.handler.AutoReplenishmentHandler;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -31,28 +29,38 @@
     private MatService matService;
     @Autowired
     private AgvLocDetlService agvLocDetlService;
+    @Autowired
+    private LocDetlService locDetlService;
 
     /*
     瀹氭椂渚垮埄搴撳瓨锛岀敓鎴愯嚜鍔ㄨˉ璐у崟鎹�
      */
-    //@Scheduled(cron = "0/5 * * * * ? ")
+    @Scheduled(cron = "0/5 * * * * ? ")
     public void createOrder(){
         //妫�娴嬫槸鍚︽湁鏈畬鎴愮殑琛ヨ揣鍗曟嵁
         DocType docType = docTypeService.selectOne(new EntityWrapper<DocType>().eq("doc_name", "鑷姩琛ヨ揣鍗�"));
         int count = orderService.selectCount(new EntityWrapper<Order>()
                 .eq("doc_type", docType.getDocId())
                 .andNew().eq("settle",2)
-                .or("settle",1));
+                .or().eq("settle",1));
         if(count > 0){
             return;
         }
 
         //鏌ヨ鎵�鏈夐渶瑕佽ˉ璐х殑鐗╂枡
-        List<Mat> matList = matService.selectList(new EntityWrapper<Mat>().eq(false, "store_min", 0));
+        List<Mat> matList = matService.selectList(new EntityWrapper<Mat>().gt( "store_min", 0));
         if(!Cools.isEmpty(matList)){
             for (Mat mat : matList){
                 //鏌ヨ褰撳墠鐗╂枡鏄惁鍦╝gv搴撳皬浜庡簱瀛樹笂闄�
                 Double anfmeSum = agvLocDetlService.selectSumAnfmeByMatnr(mat.getMatnr());
+                if(Cools.isEmpty(anfmeSum)){
+                    anfmeSum = 0.0;
+                }
+                //鏌ヨ褰撳墠鐗╂枡鍥涢」搴撴槸鍚﹀瓨鍦�
+                if(Cools.isEmpty(locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("matnr", mat.getMatnr())))){
+                    continue;
+                }
+
                 if(anfmeSum < mat.getStoreMin()){
                     autoReplenishmentHandler.create(mat,mat.getStoreMax() - anfmeSum);
                     break;
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..65b4f1a 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> {
@@ -44,6 +45,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 +53,7 @@
         orderDetl.setAnfme(anfme);
         orderDetl.setQty(0.0);
 
-        orderService.insert(order);
+
         orderDetlService.insert(orderDetl);
 
         return SUCCESS;
@@ -157,6 +159,16 @@
             //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 {
+                    return true;
+                }
+            }).collect(Collectors.toSet());
+
             //閲嶆柊鎺掑簭 骞朵笖妫�娴嬭搴撲綅鏄惁鍚病鏈夋枡绠辩爜鐨勭墿鏂欙紝濡傛湁鏈夊垯涓嶅厑璁稿嚭搴�
             Set<String> resort = resort(locNosSearch);
 

--
Gitblit v1.9.1