From f8193b239dac7276cb9203af51ad9b424fa5e90d Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期六, 28 二月 2026 15:17:25 +0800
Subject: [PATCH] 发货时间限制

---
 src/main/java/com/zy/asrs/controller/PlaController.java |   35 +++++++++++++++++++++++++++++++++++
 1 files changed, 35 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/PlaController.java b/src/main/java/com/zy/asrs/controller/PlaController.java
index b4b08f2..55473bc 100644
--- a/src/main/java/com/zy/asrs/controller/PlaController.java
+++ b/src/main/java/com/zy/asrs/controller/PlaController.java
@@ -14,6 +14,7 @@
 import com.zy.asrs.entity.*;
 import com.zy.asrs.entity.param.GlobleParameter;
 import com.zy.asrs.entity.result.KeyValueVo;
+import com.zy.asrs.mapper.ManPakOutMapper;
 import com.zy.asrs.service.*;
 import com.zy.asrs.utils.PlaExcelListener;
 import com.zy.asrs.utils.SaasUtils;
@@ -36,6 +37,8 @@
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.net.URLEncoder;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -234,11 +237,43 @@
         return R.ok(plaQtyService.getDeliveryDate());
     }
 
+    @Resource
+    private ManPakOutMapper manPakOutMapper;
+
     @RequestMapping(value = "/pla/sellout/auth")
     @ManagerAuth(memo = "sellout")
     @Transactional
     @Synchronized
     public R sellout(@RequestBody List<Pla> plas) {
+        // 鍒ゆ柇鍙戣揣鏃堕棿娈靛唴锛屾槸鍚﹁秴
+        String pakoutTime = plas.get(0).getPakoutTime().split("\\(")[0];
+        if (!Cools.isEmpty(pakoutTime)) {
+            // 鑾峰彇鏃堕棿娈靛唴鍙戣揣閲嶉噺闄愰
+            Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "MAX_WEIGHT_PER_HOUR").eq("status", 1));
+            if (config != null) {
+                pakoutTime = pakoutTime.split("\\(")[0].trim();
+                DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+
+                // 瑙f瀽
+                LocalDateTime dateTime = LocalDateTime.parse(pakoutTime, formatter);
+
+                // 褰撳皬鏃惰捣鐐�
+                LocalDateTime startHour = dateTime.withMinute(0).withSecond(0);
+
+                // 涓嬩竴涓皬鏃�
+                LocalDateTime endHour = startHour.plusHours(1); // 鑷姩澶勭悊璺ㄥぉ
+
+                // 杞洖瀛楃涓�
+                String startStr = startHour.format(formatter); // 2026-01-28 23:00:00
+                String endStr = endHour.format(formatter);     // 2026-01-29 00:00:00
+
+                long anfme = manPakOutMapper.maxWeightPerHour(startStr, endStr);
+                long weightMax = Long.parseLong(config.getValue());
+                if (anfme + plas.get(0).getOrderWeight().longValue() > weightMax) {
+                    throw new CoolException("瓒呭皬鏃堕噸閲忛檺棰�:" + weightMax + "锛岃灏忔椂鍙戣揣閲忓凡鏈夛細" + anfme);
+                }
+            }
+        }
 
         String orderNo = plas.get(0).getOrderNo();
         String maktx = plas.get(0).getBrand();

--
Gitblit v1.9.1