From cf55ca39fd7f7d65d5119313dff6315ac63aad8c Mon Sep 17 00:00:00 2001
From: zyx <zyx123456>
Date: 星期四, 12 十月 2023 08:29:10 +0800
Subject: [PATCH] 自动补货单
---
src/main/java/com/zy/asrs/task/handler/AutoReplenishmentHandler.java | 99 +++++++++++++++++++++++++++++++++
src/main/java/com/zy/asrs/task/AutoReplenishmentScheduler.java | 43 ++++++++++++++
2 files changed, 142 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/zy/asrs/task/AutoReplenishmentScheduler.java b/src/main/java/com/zy/asrs/task/AutoReplenishmentScheduler.java
new file mode 100644
index 0000000..7050458
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/AutoReplenishmentScheduler.java
@@ -0,0 +1,43 @@
+package com.zy.asrs.task;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
+import com.zy.asrs.entity.DocType;
+import com.zy.asrs.entity.Order;
+import com.zy.asrs.service.DocTypeService;
+import com.zy.asrs.service.OrderService;
+import com.zy.asrs.task.handler.AutoReplenishmentHandler;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+@Slf4j
+@Component
+public class AutoReplenishmentScheduler {
+
+ @Autowired
+ private OrderService orderService;
+ @Autowired
+ private DocTypeService docTypeService;
+ @Autowired
+ private AutoReplenishmentHandler autoReplenishmentHandler;
+
+ /*
+ 瀹氭椂澶勭悊鑷姩琛ヨ揣鍗曟嵁
+ */
+ @Scheduled(cron = "0/5 * * * * ? ")
+ public void excute(){
+ DocType docType = docTypeService.selectOne(new EntityWrapper<DocType>().eq("doc_name", "鑷姩琛ヨ揣鍗�"));
+ List<Order> orderList = orderService.selectList(new EntityWrapper<Order>()
+ .eq("doc_type", docType.getDocId())
+ .eq("settle",1));
+ if(!Cools.isEmpty(orderList)){
+ orderList.forEach(order -> {
+ autoReplenishmentHandler.start(order);
+ });
+ }
+ }
+}
diff --git a/src/main/java/com/zy/asrs/task/handler/AutoReplenishmentHandler.java b/src/main/java/com/zy/asrs/task/handler/AutoReplenishmentHandler.java
new file mode 100644
index 0000000..2a9cb89
--- /dev/null
+++ b/src/main/java/com/zy/asrs/task/handler/AutoReplenishmentHandler.java
@@ -0,0 +1,99 @@
+package com.zy.asrs.task.handler;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.exception.CoolException;
+import com.zy.asrs.entity.LocDetl;
+import com.zy.asrs.entity.LocMast;
+import com.zy.asrs.entity.Order;
+import com.zy.asrs.entity.OrderDetl;
+import com.zy.asrs.service.LocDetlService;
+import com.zy.asrs.service.LocMastService;
+import com.zy.asrs.service.OrderDetlService;
+import com.zy.asrs.service.WorkService;
+import com.zy.asrs.task.AbstractHandler;
+import com.zy.asrs.task.core.ReturnT;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+@Service
+public class AutoReplenishmentHandler extends AbstractHandler<String> {
+
+ @Autowired
+ private OrderDetlService orderDetlService;
+ @Autowired
+ private LocDetlService locDetlService;
+ @Autowired
+ private LocMastService locMastService;
+ @Autowired
+ private WorkService workService;
+
+ @Transactional
+ public ReturnT<String> start(Order order) {
+
+ Set<String> locNos = pakoutLoc(order);
+ for (String locNo : locNos){
+ LocMast locMast = locMastService.selectByLoc(locNo);
+ if(!"F".equals(locMast.getLocSts())){
+ throw new CoolException("搴撲綅鐘舵�佸凡鍙樻洿");
+ }
+ //鐢熸垚宸ヤ綔妗�
+
+ //鐢熸垚宸ヤ綔妗f槑缁�
+ //淇敼搴撲綅鐘舵��
+ }
+
+
+ return SUCCESS;
+ }
+
+ private Set<String> pakoutLoc(Order order){
+ //闇�瑕佸嚭搴撶殑搴撲綅
+ Set<String> locNos = new HashSet<>();
+ //鏍规嵁璁㈠崟鐢熸垚鍥涢」搴撳嚭搴撳伐浣滄。
+ List<OrderDetl> orderDetlList = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no", order.getOrderNo()));
+ orderDetlList.forEach(orderDetl -> {
+ String matnr = orderDetl.getMatnr();
+ Double orderAnfme = orderDetl.getAnfme();
+
+ List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>()
+ .eq("matnr", matnr)
+ .eq("loc_sts","F")
+ .groupBy("loc_no"));
+ for (LocDetl locDetl : locDetls){
+ String locNo = locDetl.getLocNo();
+ //璁㈠崟寰呭嚭鏁伴噺鍑忓幓搴撳瓨鏁伴噺
+ orderAnfme -= locDetl.getAnfme();
+ //娣诲姞寰呭嚭搴撳簱浣�
+ locNos.add(locNo);
+
+ if(orderAnfme <= 0){
+ orderDetl.setQty(orderDetl.getAnfme() - orderAnfme);
+ orderDetlService.updateById(orderDetl);
+ break;
+ }
+ }
+
+ });
+
+ return locNos;
+ }
+
+ public static void main(String[] args) {
+ for (int i=0; i<10; i++){
+ for (int y=0; y<10; y++){
+ System.out.println(i);
+ System.out.println(y);
+ if(y == 5){
+ break;
+ }
+ }
+ }
+ }
+
+
+}
--
Gitblit v1.9.1