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