From fc94a15f7657cb27d96c0c9fa95d71e23c118057 Mon Sep 17 00:00:00 2001 From: caojia <1301869380@qq.com> Date: Fri, 23 Oct 2026 10:06:59 +0800 Subject: [PATCH 1/4] =?UTF-8?q?:sparkles:=20=E5=8D=95=E5=8F=B7=E7=AD=9B?= =?UTF-8?q?=E9=80=89=E6=94=B9=E4=B8=BA=E5=A4=9A=E8=A1=8C=E8=BE=93=E5=85=A5?= =?UTF-8?q?=E5=B9=B6=E9=99=90=E5=88=B61000=E4=B8=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/OrderBillProductCheckService.java | 30 ++++++++ .../service/impl/PrcOrderBillServiceImpl.java | 23 ++++-- bms-front/src/views/price/billing/bill.vue | 71 ++++++++++++++----- bms-front/src/views/price/orderBill/index.vue | 65 +++++++++++------ 4 files changed, 145 insertions(+), 44 deletions(-) diff --git a/bms-back/bms-system/src/main/java/com/bms/price/service/OrderBillProductCheckService.java b/bms-back/bms-system/src/main/java/com/bms/price/service/OrderBillProductCheckService.java index fc6c6894..ff7e7ad0 100644 --- a/bms-back/bms-system/src/main/java/com/bms/price/service/OrderBillProductCheckService.java +++ b/bms-back/bms-system/src/main/java/com/bms/price/service/OrderBillProductCheckService.java @@ -34,6 +34,7 @@ import com.bms.system.service.IBmsProductCodeMappingService; public class OrderBillProductCheckService { private static final int ORDER_DRILL_LIMIT = 500; + private static final int MAX_ORDER_IDENTIFIERS = 1000; @Autowired private ITmsPriceQuoteService tmsPriceQuoteService; @@ -225,6 +226,7 @@ public class OrderBillProductCheckService throw new ServiceException("please select customer"); } query.setCustomerCodes(codes); + query.setOrderIdentifiers(normalizeOrderIdentifiers(query.getOrderIdentifiers())); Map params = query.getParams(); String begin = params == null ? null : strObj(params.get("beginBizDate")); String end = params == null ? null : strObj(params.get("endBizDate")); @@ -251,6 +253,34 @@ public class OrderBillProductCheckService return new ArrayList(set); } + private static List normalizeOrderIdentifiers(List identifiers) + { + LinkedHashSet unique = new LinkedHashSet(); + if (identifiers != null) + { + for (String identifier : identifiers) + { + if (StringUtils.isEmpty(identifier)) + { + continue; + } + for (String token : identifier.split("[,,;;\\s]+")) + { + String value = token.trim(); + if (StringUtils.isNotEmpty(value)) + { + unique.add(value); + } + } + } + } + if (unique.size() > MAX_ORDER_IDENTIFIERS) + { + throw new ServiceException("单号去重后最多输入 " + MAX_ORDER_IDENTIFIERS + " 个"); + } + return new ArrayList(unique); + } + private static Date resolveAsOf(PrcOrderBill query) { Map params = query.getParams(); diff --git a/bms-back/bms-system/src/main/java/com/bms/price/service/impl/PrcOrderBillServiceImpl.java b/bms-back/bms-system/src/main/java/com/bms/price/service/impl/PrcOrderBillServiceImpl.java index 09904a62..4632a12d 100644 --- a/bms-back/bms-system/src/main/java/com/bms/price/service/impl/PrcOrderBillServiceImpl.java +++ b/bms-back/bms-system/src/main/java/com/bms/price/service/impl/PrcOrderBillServiceImpl.java @@ -106,6 +106,7 @@ public class PrcOrderBillServiceImpl implements IPrcOrderBillService private static final String DICT_FEE_TYPE = "bms_fee_type"; private static final String FEE_TYPE_REFUND = "REFUND"; + private static final int MAX_ORDER_IDENTIFIERS = 1000; @Autowired @Lazy @@ -343,6 +344,7 @@ public class PrcOrderBillServiceImpl implements IPrcOrderBillService query.setProductCodes(normalizeCodeList(query.getProductCodes())); query.setTrackingNos(normalizeCodeList(query.getTrackingNos())); query.setTransferNos(normalizeCodeList(query.getTransferNos())); + query.setOrderIdentifiers(normalizeOrderIdentifiers(query.getOrderIdentifiers())); return orderBillMapper.selectPrcOrderBillList(query); } @@ -401,6 +403,17 @@ public class PrcOrderBillServiceImpl implements IPrcOrderBillService return cleaned.isEmpty() ? null : cleaned; } + /** 单号筛选按去重后的订单号/运单号/转单号数量限制,避免过大的 IN 参数。 */ + private List normalizeOrderIdentifiers(List identifiers) + { + List cleaned = normalizeCodeList(identifiers); + if (cleaned != null && cleaned.size() > MAX_ORDER_IDENTIFIERS) + { + throw new ServiceException("单号去重后最多输入 " + MAX_ORDER_IDENTIFIERS + " 个"); + } + return cleaned; + } + @Override public TmsPriceQuoteResult getBill(String billId) { @@ -979,7 +992,7 @@ public class PrcOrderBillServiceImpl implements IPrcOrderBillService List orderNos = normalizeCodeList(request.getOrderNos()); List trackingNos = normalizeCodeList(request.getTrackingNos()); List transferNos = normalizeCodeList(request.getTransferNos()); - List orderIdentifiers = normalizeCodeList(request.getOrderIdentifiers()); + List orderIdentifiers = normalizeOrderIdentifiers(request.getOrderIdentifiers()); List customerCodes = normalizeCodeList(request.getCustomerCodes()); List productCodes = normalizeCodeList(request.getProductCodes()); String creditArrearsStatus = StringUtils.isEmpty(request.getCreditArrearsStatus()) ? null @@ -1030,7 +1043,7 @@ public class PrcOrderBillServiceImpl implements IPrcOrderBillService query.setProductCodes(normalizeCodeList(query.getProductCodes())); query.setTrackingNos(normalizeCodeList(query.getTrackingNos())); query.setTransferNos(normalizeCodeList(query.getTransferNos())); - query.setOrderIdentifiers(normalizeCodeList(query.getOrderIdentifiers())); + query.setOrderIdentifiers(normalizeOrderIdentifiers(query.getOrderIdentifiers())); query.setBillIds(normalizeCodeList(query.getBillIds())); } @@ -1149,7 +1162,7 @@ public class PrcOrderBillServiceImpl implements IPrcOrderBillService List orderNos = normalizeCodeList(orderNosRaw); List trackingNos = normalizeCodeList(trackingNosRaw); List transferNos = normalizeCodeList(transferNosRaw); - List orderIdentifiers = normalizeCodeList(orderIdentifiersRaw); + List orderIdentifiers = normalizeOrderIdentifiers(orderIdentifiersRaw); List customerCodes = normalizeCodeList(customerCodesRaw); List productCodes = normalizeCodeList(productCodesRaw); String creditArrearsStatus = StringUtils.isEmpty(creditArrearsStatusRaw) ? null @@ -2577,7 +2590,7 @@ public class PrcOrderBillServiceImpl implements IPrcOrderBillService boolean hasFilter = (orderNos != null && !orderNos.isEmpty()) || (trackingNos != null && !trackingNos.isEmpty()) || (transferNos != null && !transferNos.isEmpty()) - || (request.getOrderIdentifiers() != null && !normalizeCodeList(request.getOrderIdentifiers()).isEmpty()) + || (request.getOrderIdentifiers() != null && !normalizeOrderIdentifiers(request.getOrderIdentifiers()).isEmpty()) || (customerCodes != null && !customerCodes.isEmpty()) || (productCodes != null && !productCodes.isEmpty()) || StringUtils.isNotEmpty(creditArrearsStatus) @@ -2591,7 +2604,7 @@ public class PrcOrderBillServiceImpl implements IPrcOrderBillService query.setOrderNos(orderNos); query.setTrackingNos(trackingNos); query.setTransferNos(transferNos); - query.setOrderIdentifiers(normalizeCodeList(request.getOrderIdentifiers())); + query.setOrderIdentifiers(normalizeOrderIdentifiers(request.getOrderIdentifiers())); query.setCustomerCodes(customerCodes); query.setProductCodes(productCodes); query.setCreditArrearsStatus(creditArrearsStatus); diff --git a/bms-front/src/views/price/billing/bill.vue b/bms-front/src/views/price/billing/bill.vue index a757ceb8..7f4cc59f 100644 --- a/bms-front/src/views/price/billing/bill.vue +++ b/bms-front/src/views/price/billing/bill.vue @@ -14,12 +14,16 @@ virtual >