From ff29672089700d05d30647d61d9b196d90e90a45 Mon Sep 17 00:00:00 2001 From: caojia <1301869380@qq.com> Date: Wed, 23 Sep 2026 16:01:00 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=89=E6=8B=A9=E6=8E=92=E9=99=A4=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=20=E9=A1=B5=E9=9D=A2=E6=94=AF=E6=8C=81=E8=BE=93?= =?UTF-8?q?=E5=85=A5=E5=A4=9A=E8=A1=8C=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ar/domain/vo/ArBillGenerateQuery.java | 2 +- .../ar/service/impl/ArBillServiceImpl.java | 6 ++-- .../price/mapper/PrcOrderBillMapper.java | 4 +-- .../mapper/price/PrcOrderBillMapper.xml | 36 ++++++++++++++----- .../ar/bill/components/GenerateBillDialog.vue | 12 +++++-- 5 files changed, 45 insertions(+), 15 deletions(-) diff --git a/bms-back/ruoyi-system/src/main/java/com/ruoyi/ar/domain/vo/ArBillGenerateQuery.java b/bms-back/ruoyi-system/src/main/java/com/ruoyi/ar/domain/vo/ArBillGenerateQuery.java index 1b565e23..fecba752 100644 --- a/bms-back/ruoyi-system/src/main/java/com/ruoyi/ar/domain/vo/ArBillGenerateQuery.java +++ b/bms-back/ruoyi-system/src/main/java/com/ruoyi/ar/domain/vo/ArBillGenerateQuery.java @@ -20,6 +20,6 @@ public class ArBillGenerateQuery /** 订单号、运单号或转单号;支持换行、逗号、分号或空格分隔多个号码。 */ private String orderOrTrackingNo; - /** 全选模式下,排除弹窗使用的附加订单号、运单号或转单号关键词。 */ + /** 全选模式下,排除弹窗使用的多行订单号、运单号或转单号。 */ private String excludeOrderOrTrackingNo; } diff --git a/bms-back/ruoyi-system/src/main/java/com/ruoyi/ar/service/impl/ArBillServiceImpl.java b/bms-back/ruoyi-system/src/main/java/com/ruoyi/ar/service/impl/ArBillServiceImpl.java index 382c0190..84b3b82f 100644 --- a/bms-back/ruoyi-system/src/main/java/com/ruoyi/ar/service/impl/ArBillServiceImpl.java +++ b/bms-back/ruoyi-system/src/main/java/com/ruoyi/ar/service/impl/ArBillServiceImpl.java @@ -224,9 +224,10 @@ public class ArBillServiceImpl implements IArBillService { public List previewBill(ArBillGenerateQuery query) { validatePreviewQuery(query); List orderIdentifiers = normalizeOrderIdentifiers(query.getOrderOrTrackingNo()); + List excludeOrderIdentifiers = normalizeOrderIdentifiers(query.getExcludeOrderOrTrackingNo()); return sourceBillMapper.selectPrcOrderBillByCustomerPeriod(query.getCustomerId(), query.getCustomerCode(), orderIdentifiers, - StringUtils.trim(query.getExcludeOrderOrTrackingNo()), query.getBillPeriodEnd(), query.getCurrency(), + excludeOrderIdentifiers, query.getBillPeriodEnd(), query.getCurrency(), eligibleOrderBillStatuses(), ArIncomeBillFeeStatus.UNBILLED.getCode(), null); } @@ -237,9 +238,10 @@ public class ArBillServiceImpl implements IArBillService { public BigDecimal sumPreviewBill(ArBillGenerateQuery query) { validatePreviewQuery(query); List orderIdentifiers = normalizeOrderIdentifiers(query.getOrderOrTrackingNo()); + List excludeOrderIdentifiers = normalizeOrderIdentifiers(query.getExcludeOrderOrTrackingNo()); return nvl(sourceBillMapper.sumPrcOrderBillIncomeByCustomerPeriod(query.getCustomerId(), query.getCustomerCode(), orderIdentifiers, - StringUtils.trim(query.getExcludeOrderOrTrackingNo()), query.getBillPeriodEnd(), query.getCurrency(), + excludeOrderIdentifiers, query.getBillPeriodEnd(), query.getCurrency(), eligibleOrderBillStatuses(), ArIncomeBillFeeStatus.UNBILLED.getCode())); } diff --git a/bms-back/ruoyi-system/src/main/java/com/ruoyi/price/mapper/PrcOrderBillMapper.java b/bms-back/ruoyi-system/src/main/java/com/ruoyi/price/mapper/PrcOrderBillMapper.java index bc84f7a8..c0d57d8d 100644 --- a/bms-back/ruoyi-system/src/main/java/com/ruoyi/price/mapper/PrcOrderBillMapper.java +++ b/bms-back/ruoyi-system/src/main/java/com/ruoyi/price/mapper/PrcOrderBillMapper.java @@ -32,7 +32,7 @@ public interface PrcOrderBillMapper /** 应收账单生成读取指定客户截止日期前仍存在未出账费用的订单计费快照。 */ public List selectPrcOrderBillByCustomerPeriod(@Param("customerId") Long customerId, @Param("customerCode") String customerCode, @Param("orderIdentifiers") List orderIdentifiers, - @Param("excludeOrderOrTrackingNo") String excludeOrderOrTrackingNo, + @Param("excludeOrderIdentifiers") List excludeOrderIdentifiers, @Param("cutoffDate") Date cutoffDate, @Param("currency") String currency, @Param("arBillStatuses") List arBillStatuses, @Param("feeArBillStatus") String feeArBillStatus, @Param("excludedBillIds") List excludedBillIds); @@ -40,7 +40,7 @@ public interface PrcOrderBillMapper /** 统计应收账单预览结果金额,供全选模式展示。 */ BigDecimal sumPrcOrderBillIncomeByCustomerPeriod(@Param("customerId") Long customerId, @Param("customerCode") String customerCode, @Param("orderIdentifiers") List orderIdentifiers, - @Param("excludeOrderOrTrackingNo") String excludeOrderOrTrackingNo, + @Param("excludeOrderIdentifiers") List excludeOrderIdentifiers, @Param("cutoffDate") Date cutoffDate, @Param("currency") String currency, @Param("arBillStatuses") List arBillStatuses, @Param("feeArBillStatus") String feeArBillStatus); diff --git a/bms-back/ruoyi-system/src/main/resources/mapper/price/PrcOrderBillMapper.xml b/bms-back/ruoyi-system/src/main/resources/mapper/price/PrcOrderBillMapper.xml index cf7b5b81..3c2979af 100644 --- a/bms-back/ruoyi-system/src/main/resources/mapper/price/PrcOrderBillMapper.xml +++ b/bms-back/ruoyi-system/src/main/resources/mapper/price/PrcOrderBillMapper.xml @@ -293,10 +293,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and p.customer_code like concat('%', #{customerCode}, '%') - - and (p.order_no like concat('%', #{excludeOrderOrTrackingNo}, '%') - or p.tracking_no like concat('%', #{excludeOrderOrTrackingNo}, '%') - or p.transfer_no like concat('%', #{excludeOrderOrTrackingNo}, '%')) + + and (p.order_no in + + #{identifier} + + or p.tracking_no in + + #{identifier} + + or p.transfer_no in + + #{identifier} + + ) and p.biz_date <= #{cutoffDate} and p.ar_bill_status in @@ -330,10 +340,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and p.customer_code like concat('%', #{customerCode}, '%') - - and (p.order_no like concat('%', #{excludeOrderOrTrackingNo}, '%') - or p.tracking_no like concat('%', #{excludeOrderOrTrackingNo}, '%') - or p.transfer_no like concat('%', #{excludeOrderOrTrackingNo}, '%')) + + and (p.order_no in + + #{identifier} + + or p.tracking_no in + + #{identifier} + + or p.transfer_no in + + #{identifier} + + ) and p.biz_date <= #{cutoffDate} and p.ar_bill_status in diff --git a/bms-front/src/views/ar/bill/components/GenerateBillDialog.vue b/bms-front/src/views/ar/bill/components/GenerateBillDialog.vue index d0b50226..f51a3ae0 100644 --- a/bms-front/src/views/ar/bill/components/GenerateBillDialog.vue +++ b/bms-front/src/views/ar/bill/components/GenerateBillDialog.vue @@ -95,7 +95,10 @@
- +
+ + 清空 +
查询
@@ -243,6 +246,11 @@ function clearOrderIdentifiers() { generateForm.orderOrTrackingNo = '' } +// 只清空排除输入内容,不自动刷新排除结果;用户点击“查询”后再按新条件筛选。 +function clearExcludeIdentifiers() { + excludeKeyword.value = '' +} + function loadDefaultBankAccount() { bankAccountLoading.value = true bankAccount.value = null @@ -552,7 +560,7 @@ function createRequestId() { return globalThis.crypto?.randomUUID?.() || `ar-${D .excluded-order-preview { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; max-height: 64px; margin: 0 0 8px; padding: 4px 8px; overflow-y: auto; border-radius: 4px; background: var(--el-fill-color-light); } .excluded-order-title { color: var(--el-text-color-secondary); font-size: 13px; } .exclude-toolbar { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; } -.exclude-search-input { width: 360px; } +.exclude-search-input { width: 540px; } .exclude-pagination { justify-content: flex-end; margin: 12px 0 4px; } .preview-pagination { justify-content: flex-end; margin: 12px 0 4px; } .bill-name-summary { margin: -4px 0 8px 90px; color: var(--el-text-color-secondary); font-size: 13px; }