支持按提货时间重新计费

This commit is contained in:
wuweihua
2026-10-23 17:36:03 +08:00
parent dac0c0f252
commit 48d938c4f7
3 changed files with 32 additions and 11 deletions
@@ -28,4 +28,6 @@ public class LocalRebillRequest implements Serializable
private String creditArrearsStatus;
private String beginBizDate;
private String endBizDate;
private String beginPickupDate;
private String endPickupDate;
}
@@ -1007,16 +1007,24 @@ public class PrcOrderBillServiceImpl implements IPrcOrderBillService
: request.getCountryCode().trim().toUpperCase();
String beginBizDate = StringUtils.isEmpty(request.getBeginBizDate()) ? null : request.getBeginBizDate().trim();
String endBizDate = StringUtils.isEmpty(request.getEndBizDate()) ? null : request.getEndBizDate().trim();
boolean hasFilter = (orderNos != null && !orderNos.isEmpty())
String beginPickupDate = StringUtils.isEmpty(request.getBeginPickupDate()) ? null
: request.getBeginPickupDate().trim();
String endPickupDate = StringUtils.isEmpty(request.getEndPickupDate()) ? null
: request.getEndPickupDate().trim();
boolean hasIdentifier = (orderNos != null && !orderNos.isEmpty())
|| (trackingNos != null && !trackingNos.isEmpty())
|| (transferNos != null && !transferNos.isEmpty())
|| (orderIdentifiers != null && !orderIdentifiers.isEmpty())
|| (customerCodes != null && !customerCodes.isEmpty())
|| (productCodes != null && !productCodes.isEmpty())
|| (orderIdentifiers != null && !orderIdentifiers.isEmpty());
boolean hasCustomer = customerCodes != null && !customerCodes.isEmpty();
boolean hasBizDate = StringUtils.isNotEmpty(beginBizDate) && StringUtils.isNotEmpty(endBizDate);
boolean hasPickupDate = StringUtils.isNotEmpty(beginPickupDate) && StringUtils.isNotEmpty(endPickupDate);
boolean hasOtherFilter = (productCodes != null && !productCodes.isEmpty())
|| StringUtils.isNotEmpty(creditArrearsStatus)
|| StringUtils.isNotEmpty(countryCode)
|| StringUtils.isNotEmpty(beginBizDate)
|| StringUtils.isNotEmpty(endBizDate);
|| StringUtils.isNotEmpty(countryCode);
// Same gate as order-list UI: identifiers, or customer + (bizDate or pickupDate).
boolean hasFilter = hasIdentifier
|| (hasCustomer && (hasBizDate || hasPickupDate))
|| hasOtherFilter;
if (!hasFilter)
{
throw new ServiceException(MessageUtils.message("price.bill.recalc.filterRequired"));
@@ -1039,6 +1047,14 @@ public class PrcOrderBillServiceImpl implements IPrcOrderBillService
{
query.getParams().put("endBizDate", endBizDate);
}
if (beginPickupDate != null)
{
query.getParams().put("beginPickupDate", beginPickupDate);
}
if (endPickupDate != null)
{
query.getParams().put("endPickupDate", endPickupDate);
}
return query;
}
@@ -410,7 +410,9 @@ function buildRebillFilter() {
orderStatuses: Array.isArray(q.orderStatuses) ? q.orderStatuses : [],
billingFailStatuses: Array.isArray(q.billingFailStatuses) ? q.billingFailStatuses : [],
beginBizDate: q.params?.beginBizDate || null,
endBizDate: q.params?.endBizDate || null
endBizDate: q.params?.endBizDate || null,
beginPickupDate: q.params?.beginPickupDate || null,
endPickupDate: q.params?.endPickupDate || null
}
return filter
}
@@ -420,7 +422,8 @@ function hasRebillFilter(filter) {
if (ids.length) return true
const hasCustomer = Array.isArray(filter.customerCodes) && filter.customerCodes.length > 0
const hasBizDate = !!(filter.beginBizDate && filter.endBizDate)
return hasCustomer && hasBizDate
const hasPickupDate = !!(filter.beginPickupDate && filter.endPickupDate)
return hasCustomer && (hasBizDate || hasPickupDate)
}
function buildCheckQuery() {
@@ -507,7 +510,7 @@ function openFilterRebill() {
const identifiers = filter.orderIdentifiers || []
if (!validateOrderIdentifierLimit(identifiers)) return
if (!hasRebillFilter(filter)) {
ElMessage.warning('请输入单号,或选择客户并选择计费时间后再重新计费;也可勾选订单后点重新计费选中')
ElMessage.warning('请输入单号,或选择客户并选择计费时间或提货时间后再重新计费;也可勾选订单后点重新计费选中')
return
}
if (identifiers.length > MAX_REBILL) {
@@ -518,7 +521,7 @@ function openFilterRebill() {
if (identifiers.length) {
confirmText = '将按 ' + identifiers.length + ' 个单号从本地订单表重新计费(不查上游),确认继续?'
} else {
confirmText = '将按当前列表筛选(客户 + 计费时间等)从本地订单表重新计费(不查上游),确认继续?'
confirmText = '将按当前列表筛选(客户 + 计费时间/提货时间等)从本地订单表重新计费(不查上游),确认继续?'
}
runLocalRebill(filter, confirmText)
}