增加产品价和红线价重计费功能

This commit is contained in:
wuweihua
2026-10-15 16:09:05 +08:00
parent 41ce05a08a
commit 071e7f0c55
9 changed files with 615 additions and 25 deletions
@@ -41,6 +41,7 @@ import com.bms.price.domain.vo.BatchAddIncomeBillFeeRequest;
import com.bms.price.domain.vo.BillingTaskSubmitRequest;
import com.bms.price.domain.vo.ChargeWeightImportRow;
import com.bms.price.domain.vo.ChargeWeightTemplateRequest;
import com.bms.price.domain.vo.RecalcBillPriceRequest;
import com.bms.price.domain.vo.UpdateChargeWeightRequest;
import com.bms.price.domain.vo.UpdateIncomeBillFeeRequest;
import com.bms.price.domain.vo.TmsPriceBillRequest;
@@ -303,6 +304,53 @@ public class BillingController extends BaseController
return success(task);
}
/** Async recalc product_amount only. Poll /bill/recalcPrice/task/{taskId}. */
@PreAuthorize("@ss.hasPermi('price:billing:recalc')")
@Log(title = "Billing recalc product amount", businessType = BusinessType.UPDATE)
@PostMapping("/bill/recalcProduct")
public AjaxResult submitRecalcProductAmount(@RequestBody RecalcBillPriceRequest request)
{
if (request == null)
{
request = new RecalcBillPriceRequest();
}
request.setMode("PRODUCT");
return successTask(prcOrderBillService.submitRecalcBillPrice(request));
}
/** Async recalc redline_amount only. Poll /bill/recalcPrice/task/{taskId}. */
@PreAuthorize("@ss.hasPermi('price:billing:recalc')")
@Log(title = "Billing recalc redline amount", businessType = BusinessType.UPDATE)
@PostMapping("/bill/recalcRedline")
public AjaxResult submitRecalcRedlineAmount(@RequestBody RecalcBillPriceRequest request)
{
if (request == null)
{
request = new RecalcBillPriceRequest();
}
request.setMode("REDLINE");
return successTask(prcOrderBillService.submitRecalcBillPrice(request));
}
@PreAuthorize("@ss.hasPermi('price:billing:recalc')")
@GetMapping("/bill/recalcPrice/task/{taskId}")
public AjaxResult getRecalcBillPriceTask(@PathVariable String taskId)
{
BatchAddIncomeBillFeeTask task = prcOrderBillService.getRecalcBillPriceTask(taskId);
if (task == null)
{
return error(MessageUtils.message("price.bill.recalc.taskNotExists"));
}
return success(task);
}
private AjaxResult successTask(String taskId)
{
Map<String, Object> payload = new HashMap<String, Object>();
payload.put("taskId", taskId);
return success(payload);
}
@PreAuthorize("@ss.hasPermi('price:billing:feeEdit')")
@Log(title = "Billing income fee", businessType = BusinessType.UPDATE)
@PutMapping("/bill/fee")
@@ -187,6 +187,14 @@ price.bill.fee.batch.noMatch=未查询到匹配的计费订单,无法批量增
price.bill.fee.batch.filterRequired=请先在计费列表设置查询条件
price.bill.fee.batch.selectedRequired=请勾选要增加费用的订单
price.bill.fee.batch.scopeRequired=请选择添加范围
price.bill.recalc.taskNotExists=重算价格任务不存在或已过期
price.bill.recalc.tooMany=匹配订单超过上限 {0} 条,请缩小筛选范围
price.bill.recalc.noMatch=未查询到已计费订单,无法重算产品价/红线价
price.bill.recalc.filterRequired=请先在计费列表设置查询条件
price.bill.recalc.selectedRequired=请勾选要重算的订单
price.bill.recalc.modeRequired=请指定重算类型(PRODUCT/产品价或 REDLINE/红线价)
price.bill.recalc.scopeRequired=请选择重算范围
price.bill.recalc.quoteEmpty=计价结果为空,无法更新产品价/红线价
price.bill.fee.surchargeNotFound=附加费配置不存在或已停用
price.bill.fee.notFound=费用明细不存在
price.bill.fee.notManual=仅手动增加的费用可编辑或删除