订单增加状态搜索
This commit is contained in:
+21
-1
@@ -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());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user