订单增加状态搜索

This commit is contained in:
wuweihua
2026-10-23 13:47:41 +08:00
parent fcebf9282c
commit 84939a8875
7 changed files with 212 additions and 20 deletions
@@ -77,6 +77,7 @@ import com.bms.price.domain.vo.TmsPriceQuoteFeeLine;
import com.bms.price.domain.vo.TmsPriceQuoteResult;
import com.bms.price.enums.BillCreditArrearsStatus;
import com.bms.price.enums.BillCustomerActiveStatus;
import com.bms.price.enums.BillOrderStatus;
import com.bms.price.enums.BillRefundStatus;
import com.bms.price.enums.BillBillingFailStatus;
import com.bms.price.enums.TmsOrderBillMatchType;
@@ -300,6 +301,8 @@ public class PrcOrderBillServiceImpl implements IPrcOrderBillService
refundFee.setManualFlag("0");
incomeBillFeeMapper.insertPrcIncomeBillFee(refundFee);
bill.setRefundStatus(BillRefundStatus.REFUNDED.getCode());
// Align with upstream 已退件 after fee refund.
bill.setOrderStatus(BillOrderStatus.REFUNDED.getCodeBoxed());
if (incomeBill != null)
{
incomeBill.setRefundStatus(BillRefundStatus.REFUNDED.getCode());
@@ -315,6 +318,7 @@ public class PrcOrderBillServiceImpl implements IPrcOrderBillService
req.put("refundAmount", feeSum.negate());
req.put("feeId", refundFee.getFeeId());
req.put("refundStatus", bill.getRefundStatus());
req.put("orderStatus", bill.getOrderStatus());
if (billSearchStore != null)
{
billSearchStore.save(EsLogType.BILL,
@@ -762,6 +766,7 @@ public class PrcOrderBillServiceImpl implements IPrcOrderBillService
{
throw new ServiceException(MessageUtils.message("price.bill.bizDateRequired"));
}
assertOrderBillNotRefunded(bill);
TmsPriceBillRequest req = buildBillRequestFromBill(bill);
return billLocalWithDbRetry(billId.trim(), req);
}
@@ -1631,6 +1636,7 @@ public class PrcOrderBillServiceImpl implements IPrcOrderBillService
String billKey = Md5Utils.hash(orderNo);
PrcOrderBill existed = orderBillMapper.selectPrcOrderBillByOrderNo(orderNo);
assertOrderBillEditable(existed);
assertOrderBillNotRefunded(existed);
BigDecimal previousIncome = existed == null ? BigDecimal.ZERO : nz(existed.getIncomeTotal());
PrcOrderBill bill = existed == null ? new PrcOrderBill() : existed;
if (existed == null)
@@ -2087,6 +2093,15 @@ public class PrcOrderBillServiceImpl implements IPrcOrderBillService
}
}
/** Block rebill when refundStatus=REFUNDED (order_status=9 alone is logistics return, not fee refund). */
private void assertOrderBillNotRefunded(PrcOrderBill bill)
{
if (bill != null && BillRefundStatus.REFUNDED.getCode().equalsIgnoreCase(bill.getRefundStatus()))
{
throw new ServiceException("\u8ba2\u5355\u5df2\u9000\u8d39\uff0c\u4e0d\u53ef\u91cd\u65b0\u8ba1\u8d39");
}
}
private static BigDecimal nz(BigDecimal v)
{
return v == null ? BigDecimal.ZERO : v;
@@ -2931,7 +2946,12 @@ public class PrcOrderBillServiceImpl implements IPrcOrderBillService
{
return;
}
if (request.getOrderStatus() != null)
// Fee refund marks order_status=9 (已退件); do not let Oracle sync overwrite it.
if (BillRefundStatus.REFUNDED.getCode().equalsIgnoreCase(bill.getRefundStatus()))
{
bill.setOrderStatus(BillOrderStatus.REFUNDED.getCodeBoxed());
}
else if (request.getOrderStatus() != null)
{
bill.setOrderStatus(request.getOrderStatus());
}