From 464116335cba47ddce55ee3a4ddc87af7fee5d15 Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期四, 09 四月 2026 17:08:23 +0800
Subject: [PATCH] #redis降级

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AsnOrderPressureSchedules.java |  131 +++++++++++++++++++------------------------
 1 files changed, 59 insertions(+), 72 deletions(-)

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 2262b15..7d4818e 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
@@ -2,11 +2,11 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.vincent.rsf.framework.exception.CoolException;
+import com.vincent.rsf.server.manager.entity.AsnOrderItemLog;
+import com.vincent.rsf.server.manager.entity.AsnOrderLog;
 import com.vincent.rsf.server.manager.entity.Matnr;
-import com.vincent.rsf.server.manager.entity.WkOrder;
-import com.vincent.rsf.server.manager.entity.WkOrderItem;
-import com.vincent.rsf.server.manager.service.AsnOrderItemService;
-import com.vincent.rsf.server.manager.service.AsnOrderService;
+import com.vincent.rsf.server.manager.service.AsnOrderItemLogService;
+import com.vincent.rsf.server.manager.service.AsnOrderLogService;
 import com.vincent.rsf.server.manager.service.MatnrService;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
@@ -22,7 +22,9 @@
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.concurrent.atomic.AtomicBoolean;
 
 /**
@@ -41,9 +43,9 @@
     private final AtomicBoolean running = new AtomicBoolean(false);
 
     @Autowired
-    private AsnOrderService asnOrderService;
+    private AsnOrderLogService asnOrderLogService;
     @Autowired
-    private AsnOrderItemService asnOrderItemService;
+    private AsnOrderItemLogService asnOrderItemLogService;
     @Autowired
     private MatnrService matnrService;
 
@@ -87,23 +89,33 @@
             LocalDateTime nowTime = LocalDateTime.now();
             double totalQty = itemCountPerOrder * itemQty;
 
-            List<WkOrder> orders = new ArrayList<>(orderCountPerRun);
+            List<AsnOrderLog> orders = new ArrayList<>(orderCountPerRun);
             for (int i = 0; i < orderCountPerRun; i++) {
                 orders.add(buildOrder(now, nowTime, totalQty, i));
             }
-            if (!asnOrderService.saveBatch(orders, 200)) {
+            if (!asnOrderLogService.saveBatch(orders, 200)) {
                 throw new CoolException("ASN鍘嬫祴涓诲崟鎻掑叆澶辫触");
             }
 
-            List<WkOrderItem> items = new ArrayList<>(orderCountPerRun * itemCountPerOrder);
+            List<AsnOrderLog> persistedOrders = asnOrderLogService.list(new LambdaQueryWrapper<AsnOrderLog>()
+                    .in(AsnOrderLog::getCode, extractOrderCodes(orders)));
+            Map<String, AsnOrderLog> orderMap = new HashMap<>(persistedOrders.size());
+            for (AsnOrderLog order : persistedOrders) {
+                orderMap.put(order.getCode(), order);
+            }
+
+            List<AsnOrderItemLog> items = new ArrayList<>(orderCountPerRun * itemCountPerOrder);
             for (int orderIndex = 0; orderIndex < orders.size(); orderIndex++) {
-                WkOrder order = orders.get(orderIndex);
+                AsnOrderLog order = orderMap.get(orders.get(orderIndex).getCode());
+                if (order == null) {
+                    throw new CoolException("ASN鍘嬫祴涓诲崟鍥炴煡澶辫触");
+                }
                 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)) {
+            if (!asnOrderItemLogService.saveBatch(items, 500)) {
                 throw new CoolException("ASN鍘嬫祴鏄庣粏鎻掑叆澶辫触");
             }
 
@@ -126,89 +138,69 @@
                 .last("limit " + needCount));
     }
 
-    private WkOrder buildOrder(Date now, LocalDateTime nowTime, double totalQty, int sequence) {
+    private List<String> extractOrderCodes(List<AsnOrderLog> orders) {
+        List<String> codes = new ArrayList<>(orders.size());
+        for (AsnOrderLog order : orders) {
+            codes.add(order.getCode());
+        }
+        return codes;
+    }
+
+    private AsnOrderLog buildOrder(Date now, LocalDateTime nowTime, double totalQty, int sequence) {
         String suffix = String.format("%04d", sequence + 1);
         String code = "erp" + nowTime.format(ORDER_CODE_FORMATTER) + suffix;
         long serialNo = System.currentTimeMillis() * 1000 + sequence;
 
-        return new WkOrder()
-                .setCode(code)
-                .setPoCode(code)
-                .setPoId(serialNo)
-                .setType(ORDER_TYPE)
-                .setWkType(ORDER_WORK_TYPE)
-                .setAnfme(totalQty)
-                .setQty(totalQty)
-                .setWorkQty(0.0)
-                .setCheckType(0)
-                .setRleStatus((short) 0)
-                .setNtyStatus(0)
-                .setExceStatus((short) 4)
-                .setStatus(1)
-                .setDeleted(0)
-                .setTenantId(TENANT_ID)
-                .setCreateBy(USER_ID)
-                .setCreateTime(now)
-                .setUpdateBy(USER_ID)
-                .setUpdateTime(now)
-                .setMemo(MEMO)
-                .setReportOnce(4)
-                .setBusinessTime(now)
-                .setStationId("1215")
-                .setOrderInternalCode(String.valueOf(serialNo))
-                .setStockDirect("stockDirect")
-                .setCustomerId("custom1")
-                .setCustomerName("瀹㈡埛1")
-                .setSupplierId("gongys1")
-                .setSupplierName("渚涘簲鍟�1")
-                .setStockOrgId("stockYH")
-                .setStockOrgName("娴欐睙閾舵箹绠卞寘鏈夐檺鍏徃浠撳簱")
-                .setPurchaseOrgId("yhcaigou")
-                .setPurchaseOrgName("娴欐睙閾舵箹绠卞寘鏈夐檺鍏徃閲囪喘")
-                .setPurchaseUserId("caigouyuan1")
-                .setPurchaseUserName("閲囪喘鍛�1")
-                .setPrdOrgId("prdYH")
-                .setPrdOrgName("娴欐睙閾舵箹绠卞寘鏈夐檺鍏徃")
-                .setSaleOrgId("sale1")
-                .setSaleOrgName("鐢熶骇缁�1")
-                .setSaleUserId("shengchanyuan1")
-                .setSaleUserName("鐢熶骇鍛�1")
-                .setVersion(0);
+        AsnOrderLog order = new AsnOrderLog();
+        order.setCode(code);
+        order.setPoCode(code);
+        order.setPoId(serialNo);
+        order.setType(ORDER_TYPE);
+        order.setWkType(ORDER_WORK_TYPE);
+        order.setAnfme(totalQty);
+        order.setQty(totalQty);
+        order.setRleStatus((short) 0);
+        order.setNtyStatus((short) 0);
+        order.setExceStatus((short) 4);
+        order.setStatus(1);
+        order.setDeleted(0);
+        order.setTenantId(TENANT_ID);
+        order.setCreateBy(USER_ID);
+        order.setCreateTime(now);
+        order.setUpdateBy(USER_ID);
+        order.setUpdateTime(now);
+        order.setMemo(MEMO);
+        return order;
     }
 
-    private WkOrderItem buildOrderItem(WkOrder order, Matnr matnr, Date now, int orderIndex, int itemIndex) {
+    private AsnOrderItemLog buildOrderItem(AsnOrderLog order, Matnr matnr, Date now, int orderIndex, int itemIndex) {
         String stockUnit = StringUtils.firstNonBlank(matnr.getStockUnit(), matnr.getPurUnit(), matnr.getUnit(), matnr.getBaseUnit());
         String purUnit = StringUtils.firstNonBlank(matnr.getPurUnit(), matnr.getUnit(), matnr.getStockUnit(), matnr.getBaseUnit());
-        String baseUnit = StringUtils.firstNonBlank(matnr.getBaseUnit(), matnr.getUnit(), matnr.getStockUnit(), matnr.getPurUnit());
         String batchCode = "B" + new SimpleDateFormat("yyyyMMddHHmmss").format(now)
                 + String.format("%02d%02d", orderIndex + 1, itemIndex + 1);
         String trackCode = "T" + System.currentTimeMillis() + String.format("%02d%02d", orderIndex + 1, itemIndex + 1);
 
-        return new WkOrderItem()
-                .setOrderId(order.getId())
-                .setOrderCode(order.getCode())
+        return new AsnOrderItemLog()
+                .setLogId(order.getId())
+                .setAsnId(order.getAsnId())
+                .setAsnCode(order.getCode())
                 .setPlatItemId("M" + (itemIndex + 1))
                 .setPoCode(order.getPoCode())
                 .setFieldsIndex(matnr.getFieldsIndex())
                 .setMatnrId(matnr.getId())
                 .setMatnrCode(matnr.getCode())
                 .setMaktx(matnr.getName())
-                .setSpec(matnr.getSpec())
-                .setModel(matnr.getModel())
                 .setAnfme(itemQty)
-                .setWorkQty(0.0)
                 .setPurQty(itemQty)
                 .setQty(itemQty)
                 .setStockUnit(stockUnit)
                 .setPurUnit(purUnit)
-                .setBatch(batchCode)
                 .setSplrBatch(batchCode)
                 .setSplrCode("gongys1")
                 .setSplrName("渚涘簲鍟�1")
                 .setTrackCode(trackCode)
                 .setBarcode(trackCode)
-                .setProdTime(new SimpleDateFormat("yyyy-MM-dd").format(now))
-                .setNtyStatus(0)
+                .setNtyStatus((short) 0)
                 .setStatus(1)
                 .setDeleted(0)
                 .setTenantId(TENANT_ID)
@@ -216,11 +208,6 @@
                 .setCreateTime(now)
                 .setUpdateBy(USER_ID)
                 .setUpdateTime(now)
-                .setMemo(MEMO)
-                .setBaseUnit(baseUnit)
-                .setUseOrgId(matnr.getUseOrgId())
-                .setUseOrgName(matnr.getUseOrgName())
-                .setErpClsId(matnr.getErpClsId())
-                .setPriceUnitId(baseUnit);
+                .setMemo(MEMO);
     }
 }

--
Gitblit v1.9.1