优化添加附加费

This commit is contained in:
wuweihua
2026-10-23 11:02:24 +08:00
parent fc94a15f76
commit fcebf9282c
5 changed files with 49 additions and 4 deletions
@@ -31,6 +31,8 @@ public class BatchAddIncomeBillFeeRequest implements Serializable
private List<String> productCodes; private List<String> productCodes;
private String countryCode; private String countryCode;
private String creditArrearsStatus; private String creditArrearsStatus;
/** Same as list filter billing_fail_status IN (...). */
private List<Integer> billingFailStatuses;
/** Billing time range (biz_date), inclusive; format yyyy-MM-dd. */ /** Billing time range (biz_date), inclusive; format yyyy-MM-dd. */
private String beginBizDate; private String beginBizDate;
@@ -25,6 +25,8 @@ public class RecalcBillPriceRequest implements Serializable
private List<String> productCodes; private List<String> productCodes;
private String countryCode; private String countryCode;
private String creditArrearsStatus; private String creditArrearsStatus;
/** Same as list filter billing_fail_status IN (...). */
private List<Integer> billingFailStatuses;
private String beginBizDate; private String beginBizDate;
private String endBizDate; private String endBizDate;
} }
@@ -666,7 +666,8 @@ public class PrcOrderBillServiceImpl implements IPrcOrderBillService
List<PrcOrderBill> bills = resolveListScopedBills(request.getScopeMode(), request.getBillIds(), List<PrcOrderBill> bills = resolveListScopedBills(request.getScopeMode(), request.getBillIds(),
request.getOrderNos(), request.getTrackingNos(), request.getTransferNos(), request.getOrderIdentifiers(), request.getOrderNos(), request.getTrackingNos(), request.getTransferNos(), request.getOrderIdentifiers(),
request.getCustomerCodes(), request.getProductCodes(), request.getCountryCode(), request.getCustomerCodes(), request.getProductCodes(), request.getCountryCode(),
request.getCreditArrearsStatus(), request.getBeginBizDate(), request.getEndBizDate(), request.getCreditArrearsStatus(), request.getBillingFailStatuses(),
request.getBeginBizDate(), request.getEndBizDate(),
"price.bill.recalc.filterRequired", "price.bill.recalc.scopeRequired", "price.bill.recalc.filterRequired", "price.bill.recalc.scopeRequired",
"price.bill.recalc.selectedRequired"); "price.bill.recalc.selectedRequired");
if (bills.isEmpty()) if (bills.isEmpty())
@@ -1139,7 +1140,8 @@ public class PrcOrderBillServiceImpl implements IPrcOrderBillService
return resolveListScopedBills(request.getScopeMode(), request.getBillIds(), return resolveListScopedBills(request.getScopeMode(), request.getBillIds(),
request.getOrderNos(), request.getTrackingNos(), request.getTransferNos(), request.getOrderIdentifiers(), request.getOrderNos(), request.getTrackingNos(), request.getTransferNos(), request.getOrderIdentifiers(),
request.getCustomerCodes(), request.getProductCodes(), request.getCountryCode(), request.getCustomerCodes(), request.getProductCodes(), request.getCountryCode(),
request.getCreditArrearsStatus(), request.getBeginBizDate(), request.getEndBizDate(), request.getCreditArrearsStatus(), request.getBillingFailStatuses(),
request.getBeginBizDate(), request.getEndBizDate(),
"price.bill.fee.batch.filterRequired", "price.bill.fee.batch.scopeRequired", "price.bill.fee.batch.filterRequired", "price.bill.fee.batch.scopeRequired",
"price.bill.fee.batch.selectedRequired"); "price.bill.fee.batch.selectedRequired");
} }
@@ -1151,7 +1153,8 @@ public class PrcOrderBillServiceImpl implements IPrcOrderBillService
private List<PrcOrderBill> resolveListScopedBills(String scopeModeRaw, List<String> billIdsRaw, private List<PrcOrderBill> resolveListScopedBills(String scopeModeRaw, List<String> billIdsRaw,
List<String> orderNosRaw, List<String> trackingNosRaw, List<String> transferNosRaw, List<String> orderIdentifiersRaw, List<String> orderNosRaw, List<String> trackingNosRaw, List<String> transferNosRaw, List<String> orderIdentifiersRaw,
List<String> customerCodesRaw, List<String> productCodesRaw, String countryCodeRaw, List<String> customerCodesRaw, List<String> productCodesRaw, String countryCodeRaw,
String creditArrearsStatusRaw, String beginBizDateRaw, String endBizDateRaw, String creditArrearsStatusRaw, List<Integer> billingFailStatusesRaw,
String beginBizDateRaw, String endBizDateRaw,
String msgFilter, String msgScope, String msgSelected) String msgFilter, String msgScope, String msgSelected)
{ {
String scopeMode = StringUtils.nvl(scopeModeRaw, "").trim().toUpperCase(); String scopeMode = StringUtils.nvl(scopeModeRaw, "").trim().toUpperCase();
@@ -1165,6 +1168,7 @@ public class PrcOrderBillServiceImpl implements IPrcOrderBillService
List<String> orderIdentifiers = normalizeOrderIdentifiers(orderIdentifiersRaw); List<String> orderIdentifiers = normalizeOrderIdentifiers(orderIdentifiersRaw);
List<String> customerCodes = normalizeCodeList(customerCodesRaw); List<String> customerCodes = normalizeCodeList(customerCodesRaw);
List<String> productCodes = normalizeCodeList(productCodesRaw); List<String> productCodes = normalizeCodeList(productCodesRaw);
List<Integer> billingFailStatuses = normalizeIntegerList(billingFailStatusesRaw);
String creditArrearsStatus = StringUtils.isEmpty(creditArrearsStatusRaw) ? null String creditArrearsStatus = StringUtils.isEmpty(creditArrearsStatusRaw) ? null
: creditArrearsStatusRaw.trim(); : creditArrearsStatusRaw.trim();
String countryCode = StringUtils.isEmpty(countryCodeRaw) ? null String countryCode = StringUtils.isEmpty(countryCodeRaw) ? null
@@ -1177,6 +1181,7 @@ public class PrcOrderBillServiceImpl implements IPrcOrderBillService
|| (orderIdentifiers != null && !orderIdentifiers.isEmpty()) || (orderIdentifiers != null && !orderIdentifiers.isEmpty())
|| (customerCodes != null && !customerCodes.isEmpty()) || (customerCodes != null && !customerCodes.isEmpty())
|| (productCodes != null && !productCodes.isEmpty()) || (productCodes != null && !productCodes.isEmpty())
|| (billingFailStatuses != null && !billingFailStatuses.isEmpty())
|| StringUtils.isNotEmpty(creditArrearsStatus) || StringUtils.isNotEmpty(creditArrearsStatus)
|| StringUtils.isNotEmpty(countryCode) || StringUtils.isNotEmpty(countryCode)
|| StringUtils.isNotEmpty(beginBizDate) || StringUtils.isNotEmpty(beginBizDate)
@@ -1204,6 +1209,7 @@ public class PrcOrderBillServiceImpl implements IPrcOrderBillService
query.setCustomerCodes(customerCodes); query.setCustomerCodes(customerCodes);
query.setProductCodes(productCodes); query.setProductCodes(productCodes);
query.setCreditArrearsStatus(creditArrearsStatus); query.setCreditArrearsStatus(creditArrearsStatus);
query.setBillingFailStatuses(billingFailStatuses);
query.setCountryCode(countryCode); query.setCountryCode(countryCode);
if (beginBizDate != null) if (beginBizDate != null)
{ {
@@ -1218,6 +1224,23 @@ public class PrcOrderBillServiceImpl implements IPrcOrderBillService
return list == null ? new ArrayList<PrcOrderBill>() : list; return list == null ? new ArrayList<PrcOrderBill>() : list;
} }
private List<Integer> normalizeIntegerList(List<Integer> values)
{
if (values == null || values.isEmpty())
{
return null;
}
List<Integer> out = new ArrayList<Integer>();
for (Integer v : values)
{
if (v != null)
{
out.add(v);
}
}
return out.isEmpty() ? null : out;
}
private PrcSurcharge requireActiveSurcharge(Long scId) private PrcSurcharge requireActiveSurcharge(Long scId)
{ {
PrcSurcharge surcharge = surchargeService.selectPrcSurchargeById(scId); PrcSurcharge surcharge = surchargeService.selectPrcSurchargeById(scId);
+2 -1
View File
@@ -570,7 +570,8 @@ function buildRecalcPayload() {
orderIdentifiers: parseOrderIdentifiers(rest.orderIdentifiers), orderIdentifiers: parseOrderIdentifiers(rest.orderIdentifiers),
customerCodes: rest.customerCodes || [], customerCodes: rest.customerCodes || [],
productCodes: rest.productCodes || [], productCodes: rest.productCodes || [],
creditArrearsStatus: rest.creditArrearsStatus || undefined creditArrearsStatus: rest.creditArrearsStatus || undefined,
billingFailStatuses: Array.isArray(rest.billingFailStatuses) ? rest.billingFailStatuses : []
} }
if (Array.isArray(bizDateRange) && (bizDateRange[0] || bizDateRange[1])) { if (Array.isArray(bizDateRange) && (bizDateRange[0] || bizDateRange[1])) {
payload.beginBizDate = bizDateRange[0] || null payload.beginBizDate = bizDateRange[0] || null
@@ -211,12 +211,28 @@ function buildQueryTags(q) {
: (q.creditArrearsStatus === 'NORMAL' ? "正常" : q.creditArrearsStatus) : (q.creditArrearsStatus === 'NORMAL' ? "正常" : q.creditArrearsStatus)
tags.push("额度欠费" + ':' + label) tags.push("额度欠费" + ':' + label)
} }
const failStatuses = Array.isArray(q.billingFailStatuses) ? q.billingFailStatuses.filter(v => v != null) : []
if (failStatuses.length) {
const labels = failStatuses.map(v => billingFailStatusLabel(v))
tags.push("计费失败" + ':' + labels.join(', '))
}
if (q.beginBizDate || q.endBizDate) { if (q.beginBizDate || q.endBizDate) {
tags.push("计费时间:" + (q.beginBizDate || '…') + ' ~ ' + (q.endBizDate || '…')) tags.push("计费时间:" + (q.beginBizDate || '…') + ' ~ ' + (q.endBizDate || '…'))
} }
return tags return tags
} }
function billingFailStatusLabel(code) {
const map = {
0: '计费成功',
1: '未匹配产品',
2: '未匹配国家',
3: '未匹配重量段'
}
const key = Number(code)
return map[key] != null ? map[key] : String(code)
}
function loadSurcharges() { function loadSurcharges() {
return listSurchargeOptions({ ssCode: 'on' }).then(res => { return listSurchargeOptions({ ssCode: 'on' }).then(res => {
surchargeOptions.value = res.data || [] surchargeOptions.value = res.data || []
@@ -262,6 +278,7 @@ function buildPayload() {
customerCodes: q.customerCodes || [], customerCodes: q.customerCodes || [],
productCodes: q.productCodes || [], productCodes: q.productCodes || [],
creditArrearsStatus: q.creditArrearsStatus || undefined, creditArrearsStatus: q.creditArrearsStatus || undefined,
billingFailStatuses: Array.isArray(q.billingFailStatuses) ? q.billingFailStatuses : [],
beginBizDate: q.beginBizDate || undefined, beginBizDate: q.beginBizDate || undefined,
endBizDate: q.endBizDate || undefined endBizDate: q.endBizDate || undefined
} }