refactor(sales): 优化售后退货处理逻辑
- 在处理售后退货时,增加根据场景类型进行过滤的条件 - 修改实退金额的计算方式,保留 4 位小数以暴露潜在问题 - 更新测试用例,启用 previously commented out 代码
This commit is contained in:
parent
f90d6db61b
commit
e0f49363db
File diff suppressed because it is too large
Load Diff
|
@ -1369,7 +1369,9 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity {
|
|||
//查询OFS售后入库单对应的售后订单
|
||||
List<RerturnGoodsOrderSearchData> rerturnGoodsOrderSearchData = queryBatchAfterSalesOrder(returnGoodHeaderDetailsDataDtoList1);
|
||||
findAfterSalesOrder(rerturnGoodsOrderSearchData, returnGoodHeaderDetailsDataDtoList1);
|
||||
returnGoodHeaderDetailsDataDtoList1 = filterForSale(returnGoodHeaderDetailsDataDtoList1);
|
||||
if ("tran".equals(sceneType)) {
|
||||
returnGoodHeaderDetailsDataDtoList1 = filterForSale(returnGoodHeaderDetailsDataDtoList1);
|
||||
}
|
||||
//测试
|
||||
// RerturnGoodsOrderSearchData rerturnGoodsOrderSearchData2 = rerturnGoodsOrderSearchData.get(0);
|
||||
// List<RerturnGoodsOrderSearchDetails> details2 = rerturnGoodsOrderSearchData2.getDetails();
|
||||
|
@ -3001,7 +3003,7 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity {
|
|||
}
|
||||
//O含税单价=通过退货金额/请求数量
|
||||
BigDecimal unitPriceIncludingTax = new BigDecimal(totalAmount).divide(new BigDecimal(requestQty), 20, BigDecimal.ROUND_HALF_UP);
|
||||
//实退金额=O含税单价*(O售后入库单)实退数量
|
||||
//实退金额=O含税单价*(O售后入库单)这里保留 4 位小数的用途是便于暴露问题给后续方法,后续方法会变成 2 位小数(0.0034)
|
||||
BigDecimal actualRefundAmount = unitPriceIncludingTax.multiply(new BigDecimal(receivedQty)).setScale(4, BigDecimal.ROUND_HALF_UP);
|
||||
//出库对应的实退=含税单价(actualRefundAmount)*出库单实退数量
|
||||
// BigDecimal actualRefundAmountBigDecimal = new BigDecimal(receivedQty).multiply(actualRefundAmount).setScale(2, BigDecimal.ROUND_HALF_UP);
|
||||
|
|
|
@ -28,11 +28,11 @@ public class PassiveWarehouseReceiptToCTest {
|
|||
public void startImplementStockByTime() {
|
||||
try {
|
||||
//测试O无源件入库
|
||||
// passiveWarehouseReceiptToC.startImplementStockByTime("2025-03-11 22:27:02", "2025-03-11 22:27:02");
|
||||
passiveWarehouseReceiptToC.startImplementStockByTime("2025-03-11 22:27:02", "2025-03-11 22:27:02");
|
||||
//测试O无源生成红字应收
|
||||
// passiveWarehouseReceiptToC.startImplementByTradeTime("2025-03-11 22:27:02", "2025-03-11 22:27:02");
|
||||
|
||||
passiveWarehouseReceiptToC.startImplementByCode("1111", "stock");
|
||||
// passiveWarehouseReceiptToC.startImplementByCode("1111", "stock");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
|
|
@ -37,7 +37,7 @@ public class SoSaleReturnPluginInitializerToCTest {
|
|||
// soSaleReturnPluginInitializerToC.startImplement(null, null);
|
||||
try {
|
||||
String code = "LETS-RE2025022000001336";
|
||||
soSaleReturnPluginInitializerToC.startImplementByCode(code, "stock");
|
||||
soSaleReturnPluginInitializerToC.startImplementByCode(code, "tran");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue