From 480d4f9f5c31d8169d449241b1efea9936eb238f Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期三, 08 四月 2026 09:13:33 +0800
Subject: [PATCH] #

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/vo/WarehouseVO.java               |    9 ++++
 rsf-design/src/api/warehouse-areas.js                                                            |    2 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AsnOrderLogSchedule.java       |    2 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseController.java      |   16 ++++++++
 rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AsnOrderPressureSchedules.java |   80 ++++++++++++++++++++++-----------------
 5 files changed, 72 insertions(+), 37 deletions(-)

diff --git a/rsf-design/src/api/warehouse-areas.js b/rsf-design/src/api/warehouse-areas.js
index c5a0631..0d9aa5f 100644
--- a/rsf-design/src/api/warehouse-areas.js
+++ b/rsf-design/src/api/warehouse-areas.js
@@ -160,7 +160,7 @@
 
 export function fetchWarehouseList() {
   return request.post({
-    url: '/warehouse/list',
+    url: '/warehouse/list2',
     data: {}
   })
 }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseController.java
index 24421bd..6d73cff 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseController.java
@@ -12,6 +12,7 @@
 import com.vincent.rsf.server.common.domain.PageParam;
 import com.vincent.rsf.server.manager.entity.Warehouse;
 import com.vincent.rsf.server.manager.entity.WarehouseAreas;
+import com.vincent.rsf.server.manager.entity.vo.WarehouseVO;
 import com.vincent.rsf.server.manager.service.WarehouseAreasItemService;
 import com.vincent.rsf.server.manager.service.WarehouseAreasService;
 import com.vincent.rsf.server.manager.service.WarehouseService;
@@ -24,6 +25,7 @@
 
 import jakarta.servlet.http.HttpServletResponse;
 import java.util.*;
+import java.util.stream.Collectors;
 
 @Api(tags = "浠撳簱")
 @RestController
@@ -53,6 +55,20 @@
     }
 
     @PreAuthorize("hasAuthority('manager:warehouse:list')")
+    @PostMapping("/warehouse/list2")
+    public R list2(@RequestBody Map<String, Object> map) {
+        List<Warehouse> warehouseList = warehouseService.list(new LambdaQueryWrapper<Warehouse>().select(Warehouse::getId,Warehouse::getName));
+
+        List<WarehouseVO> warehouseList2 = warehouseList.stream().map(warehouse -> {
+            WarehouseVO vo = new WarehouseVO();
+            vo.setId(warehouse.getId());
+            vo.setName(warehouse.getName());
+            return vo;
+        }).collect(Collectors.toList());
+        return R.ok().add(warehouseList2);
+    }
+
+    @PreAuthorize("hasAuthority('manager:warehouse:list')")
     @PostMapping({"/warehouse/many/{ids}", "/warehouses/many/{ids}"})
     public R many(@PathVariable Long[] ids) {
         return R.ok().add(warehouseService.listByIds(Arrays.asList(ids)));
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/vo/WarehouseVO.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/vo/WarehouseVO.java
new file mode 100644
index 0000000..548c5d3
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/vo/WarehouseVO.java
@@ -0,0 +1,9 @@
+package com.vincent.rsf.server.manager.entity.vo;
+
+import lombok.Data;
+
+@Data
+public class WarehouseVO {
+    private Long id;
+    private String name;
+}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AsnOrderLogSchedule.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AsnOrderLogSchedule.java
index b7827a5..c5b76da 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AsnOrderLogSchedule.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AsnOrderLogSchedule.java
@@ -63,7 +63,7 @@
      * @description 鍒犻櫎宸插畬鎴愯鍗曞姞鍏og琛�
      * @time 2025/3/19 19:09
      */
-    @Scheduled(cron = "0/35 * * * * ?  ")
+//    @Scheduled(cron = "0/35 * * * * ?  ")
     @Transactional(rollbackFor = Exception.class)
     public void InStockToLog() {
         List<WkOrder> wkOrders = asnOrderService.list(new LambdaQueryWrapper<WkOrder>()
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AsnOrderPressureSchedules.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AsnOrderPressureSchedules.java
index 8c187c6..2262b15 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AsnOrderPressureSchedules.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AsnOrderPressureSchedules.java
@@ -23,6 +23,7 @@
 import java.util.Collections;
 import java.util.Date;
 import java.util.List;
+import java.util.concurrent.atomic.AtomicBoolean;
 
 /**
  * ASN 鍗曟嵁鍘嬫祴鏁版嵁瀹氭椂鐢熸垚鍣ㄣ��
@@ -37,6 +38,7 @@
     private static final Integer TENANT_ID = 1;
     private static final Long USER_ID = 51L;
     private static final String MEMO = "ASN_PRESSURE_TEST";
+    private final AtomicBoolean running = new AtomicBoolean(false);
 
     @Autowired
     private AsnOrderService asnOrderService;
@@ -59,48 +61,56 @@
 
     @Scheduled(cron = "${pressure.asn-order.cron:0/10 * * * * ?}")
     @Transactional(rollbackFor = Exception.class)
-    public synchronized void insertPressureOrders() {
+    public void insertPressureOrders() {
         if (!enabled) {
             return;
         }
-        if (orderCountPerRun <= 0 || itemCountPerOrder <= 0 || itemQty <= 0) {
-            log.warn("ASN鍘嬫祴浠诲姟閰嶇疆鏃犳晥锛岃烦杩囨墽琛�: orderCountPerRun={}, itemCountPerOrder={}, itemQty={}",
-                    orderCountPerRun, itemCountPerOrder, itemQty);
+        if (!running.compareAndSet(false, true)) {
+            log.warn("ASN鍘嬫祴浠诲姟浠嶅湪鎵ц涓紝鏈疆璺宠繃");
             return;
         }
-
-        List<Matnr> matnrs = loadMatnrs();
-        if (matnrs.isEmpty()) {
-            log.warn("ASN鍘嬫祴浠诲姟鏈幏鍙栧埌鍙敤鐗╂枡锛岃烦杩囨墽琛�");
-            return;
-        }
-        Collections.shuffle(matnrs);
-
-        Date now = new Date();
-        LocalDateTime nowTime = LocalDateTime.now();
-        double totalQty = itemCountPerOrder * itemQty;
-
-        List<WkOrder> orders = new ArrayList<>(orderCountPerRun);
-        for (int i = 0; i < orderCountPerRun; i++) {
-            orders.add(buildOrder(now, nowTime, totalQty, i));
-        }
-        if (!asnOrderService.saveBatch(orders, 200)) {
-            throw new CoolException("ASN鍘嬫祴涓诲崟鎻掑叆澶辫触");
-        }
-
-        List<WkOrderItem> items = new ArrayList<>(orderCountPerRun * itemCountPerOrder);
-        for (int orderIndex = 0; orderIndex < orders.size(); orderIndex++) {
-            WkOrder order = orders.get(orderIndex);
-            for (int itemIndex = 0; itemIndex < itemCountPerOrder; itemIndex++) {
-                Matnr matnr = matnrs.get((orderIndex * itemCountPerOrder + itemIndex) % matnrs.size());
-                items.add(buildOrderItem(order, matnr, now, orderIndex, itemIndex));
+        try {
+            if (orderCountPerRun <= 0 || itemCountPerOrder <= 0 || itemQty <= 0) {
+                log.warn("ASN鍘嬫祴浠诲姟閰嶇疆鏃犳晥锛岃烦杩囨墽琛�: orderCountPerRun={}, itemCountPerOrder={}, itemQty={}",
+                        orderCountPerRun, itemCountPerOrder, itemQty);
+                return;
             }
-        }
-        if (!asnOrderItemService.saveBatch(items, 500)) {
-            throw new CoolException("ASN鍘嬫祴鏄庣粏鎻掑叆澶辫触");
-        }
 
-        log.info("ASN鍘嬫祴浠诲姟鎵ц瀹屾垚锛屾湰娆℃彃鍏ヤ富鍗� {} 鏉★紝鏄庣粏 {} 鏉�", orders.size(), items.size());
+            List<Matnr> matnrs = loadMatnrs();
+            if (matnrs.isEmpty()) {
+                log.warn("ASN鍘嬫祴浠诲姟鏈幏鍙栧埌鍙敤鐗╂枡锛岃烦杩囨墽琛�");
+                return;
+            }
+            Collections.shuffle(matnrs);
+
+            Date now = new Date();
+            LocalDateTime nowTime = LocalDateTime.now();
+            double totalQty = itemCountPerOrder * itemQty;
+
+            List<WkOrder> orders = new ArrayList<>(orderCountPerRun);
+            for (int i = 0; i < orderCountPerRun; i++) {
+                orders.add(buildOrder(now, nowTime, totalQty, i));
+            }
+            if (!asnOrderService.saveBatch(orders, 200)) {
+                throw new CoolException("ASN鍘嬫祴涓诲崟鎻掑叆澶辫触");
+            }
+
+            List<WkOrderItem> items = new ArrayList<>(orderCountPerRun * itemCountPerOrder);
+            for (int orderIndex = 0; orderIndex < orders.size(); orderIndex++) {
+                WkOrder order = orders.get(orderIndex);
+                for (int itemIndex = 0; itemIndex < itemCountPerOrder; itemIndex++) {
+                    Matnr matnr = matnrs.get((orderIndex * itemCountPerOrder + itemIndex) % matnrs.size());
+                    items.add(buildOrderItem(order, matnr, now, orderIndex, itemIndex));
+                }
+            }
+            if (!asnOrderItemService.saveBatch(items, 500)) {
+                throw new CoolException("ASN鍘嬫祴鏄庣粏鎻掑叆澶辫触");
+            }
+
+            log.info("ASN鍘嬫祴浠诲姟鎵ц瀹屾垚锛屾湰娆℃彃鍏ヤ富鍗� {} 鏉★紝鏄庣粏 {} 鏉�", orders.size(), items.size());
+        } finally {
+            running.set(false);
+        }
     }
 
     private List<Matnr> loadMatnrs() {

--
Gitblit v1.9.1