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/webapp/views/pla/sellout.html | 35 +++++++++++
src/main/webapp/views/pla3/sellout.html | 35 +++++++++++
src/main/java/com/zy/asrs/controller/PlaController.java | 35 +++++++++++
src/main/java/com/zy/asrs/mapper/ManPakOutMapper.java | 4 +
src/main/webapp/views/pla2/sellout.html | 35 +++++++++++
5 files changed, 141 insertions(+), 3 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();
diff --git a/src/main/java/com/zy/asrs/mapper/ManPakOutMapper.java b/src/main/java/com/zy/asrs/mapper/ManPakOutMapper.java
index 2e5d114..9df47da 100644
--- a/src/main/java/com/zy/asrs/mapper/ManPakOutMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/ManPakOutMapper.java
@@ -5,6 +5,7 @@
import com.zy.asrs.entity.param.PakOutDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
import java.util.Date;
@@ -21,4 +22,7 @@
int selectPakOutCount(@Param("docnum") String docnum,@Param("stime") Date stime, @Param("etime") Date etime,@Param("curr") Integer curr,@Param("limit") Integer limit,
@Param("userId") Long userId, @Param("custName") String custName, @Param("roleId") Long roleId);
+
+ @Select("SELECT SUM(anfme) FROM man_pakout WHERE specs >= #{startStr} AND specs < #{endStr}")
+ long maxWeightPerHour(@Param("startStr") String startStr,@Param("endStr") String endStr);
}
diff --git a/src/main/webapp/views/pla/sellout.html b/src/main/webapp/views/pla/sellout.html
index 68396ee..a0aadd9 100644
--- a/src/main/webapp/views/pla/sellout.html
+++ b/src/main/webapp/views/pla/sellout.html
@@ -193,9 +193,42 @@
var table = layui.table;
var laydate = layui.laydate;
// 鏃ユ湡鏃堕棿閫夋嫨鍣�
+ function getNowStr() {
+ var d = new Date();
+ return d.getFullYear() + '-' +
+ String(d.getMonth() + 1).padStart(2, '0') + '-' +
+ String(d.getDate()).padStart(2, '0') + ' ' +
+ String(d.getHours()).padStart(2, '0') + ':' +
+ String(d.getMinutes()).padStart(2, '0') + ':' +
+ String(d.getSeconds()).padStart(2, '0');
+ }
laydate.render({
elem: '#pakoutTime',
- type: 'datetime'
+ type: 'datetime',
+ min: getNowStr(), // 浠婂ぉ鍙婁互鍚�
+ maxTime: '17:00:00', // 姣忓ぉ鏈�澶ф椂闂�
+ done: function(value){
+ if (!value) return;
+
+ var d = new Date(value.replace(/-/g,'/'));
+ var now = new Date();
+
+ // 浠婂ぉ蹇呴』鏅氫簬褰撳墠鏃堕棿
+ if(d.getTime() < now.getTime()){
+ layer.msg('浠婂ぉ閫夋嫨鐨勬椂闂村繀椤绘櫄浜庡綋鍓嶆椂闂�');
+ document.getElementById('pakoutTime').value = '';
+ return;
+ }
+
+ // 鏃堕棿闄愬埗 08:00 - 17:00
+ var h = d.getHours();
+ var m = d.getMinutes();
+ var s = d.getSeconds();
+ if(h < 8 || h > 17 || (h === 17 && (m > 0 || s > 0))){
+ layer.msg('鍙兘閫夋嫨 08:00 - 17:00 鐨勬椂闂�');
+ document.getElementById('pakoutTime').value = '';
+ }
+ }
});
form.on('submit(edit)', function () {
diff --git a/src/main/webapp/views/pla2/sellout.html b/src/main/webapp/views/pla2/sellout.html
index 10487ac..4feeb0a 100644
--- a/src/main/webapp/views/pla2/sellout.html
+++ b/src/main/webapp/views/pla2/sellout.html
@@ -191,9 +191,42 @@
var table = layui.table;
var laydate = layui.laydate;
// 鏃ユ湡鏃堕棿閫夋嫨鍣�
+ function getNowStr() {
+ var d = new Date();
+ return d.getFullYear() + '-' +
+ String(d.getMonth() + 1).padStart(2, '0') + '-' +
+ String(d.getDate()).padStart(2, '0') + ' ' +
+ String(d.getHours()).padStart(2, '0') + ':' +
+ String(d.getMinutes()).padStart(2, '0') + ':' +
+ String(d.getSeconds()).padStart(2, '0');
+ }
laydate.render({
elem: '#pakoutTime',
- type: 'datetime'
+ type: 'datetime',
+ min: getNowStr(), // 浠婂ぉ鍙婁互鍚�
+ maxTime: '17:00:00', // 姣忓ぉ鏈�澶ф椂闂�
+ done: function(value){
+ if (!value) return;
+
+ var d = new Date(value.replace(/-/g,'/'));
+ var now = new Date();
+
+ // 浠婂ぉ蹇呴』鏅氫簬褰撳墠鏃堕棿
+ if(d.getTime() < now.getTime()){
+ layer.msg('浠婂ぉ閫夋嫨鐨勬椂闂村繀椤绘櫄浜庡綋鍓嶆椂闂�');
+ document.getElementById('pakoutTime').value = '';
+ return;
+ }
+
+ // 鏃堕棿闄愬埗 08:00 - 17:00
+ var h = d.getHours();
+ var m = d.getMinutes();
+ var s = d.getSeconds();
+ if(h < 8 || h > 17 || (h === 17 && (m > 0 || s > 0))){
+ layer.msg('鍙兘閫夋嫨 08:00 - 17:00 鐨勬椂闂�');
+ document.getElementById('pakoutTime').value = '';
+ }
+ }
});
form.on('submit(edit)', function () {
diff --git a/src/main/webapp/views/pla3/sellout.html b/src/main/webapp/views/pla3/sellout.html
index 10487ac..4feeb0a 100644
--- a/src/main/webapp/views/pla3/sellout.html
+++ b/src/main/webapp/views/pla3/sellout.html
@@ -191,9 +191,42 @@
var table = layui.table;
var laydate = layui.laydate;
// 鏃ユ湡鏃堕棿閫夋嫨鍣�
+ function getNowStr() {
+ var d = new Date();
+ return d.getFullYear() + '-' +
+ String(d.getMonth() + 1).padStart(2, '0') + '-' +
+ String(d.getDate()).padStart(2, '0') + ' ' +
+ String(d.getHours()).padStart(2, '0') + ':' +
+ String(d.getMinutes()).padStart(2, '0') + ':' +
+ String(d.getSeconds()).padStart(2, '0');
+ }
laydate.render({
elem: '#pakoutTime',
- type: 'datetime'
+ type: 'datetime',
+ min: getNowStr(), // 浠婂ぉ鍙婁互鍚�
+ maxTime: '17:00:00', // 姣忓ぉ鏈�澶ф椂闂�
+ done: function(value){
+ if (!value) return;
+
+ var d = new Date(value.replace(/-/g,'/'));
+ var now = new Date();
+
+ // 浠婂ぉ蹇呴』鏅氫簬褰撳墠鏃堕棿
+ if(d.getTime() < now.getTime()){
+ layer.msg('浠婂ぉ閫夋嫨鐨勬椂闂村繀椤绘櫄浜庡綋鍓嶆椂闂�');
+ document.getElementById('pakoutTime').value = '';
+ return;
+ }
+
+ // 鏃堕棿闄愬埗 08:00 - 17:00
+ var h = d.getHours();
+ var m = d.getMinutes();
+ var s = d.getSeconds();
+ if(h < 8 || h > 17 || (h === 17 && (m > 0 || s > 0))){
+ layer.msg('鍙兘閫夋嫨 08:00 - 17:00 鐨勬椂闂�');
+ document.getElementById('pakoutTime').value = '';
+ }
+ }
});
form.on('submit(edit)', function () {
--
Gitblit v1.9.1