增加导出功能
This commit is contained in:
@@ -37,6 +37,7 @@ import com.bms.price.domain.BatchAddIncomeBillFeeTask;
|
||||
import com.bms.price.domain.ChargeWeightImportTask;
|
||||
import com.bms.price.domain.PrcBillingTask;
|
||||
import com.bms.price.domain.PrcOrderBill;
|
||||
import com.bms.price.domain.PrcOrderBillExportTask;
|
||||
import com.bms.price.domain.PrcQuote;
|
||||
import com.bms.price.domain.vo.AddIncomeBillFeeRequest;
|
||||
import com.bms.price.domain.vo.BatchAddIncomeBillFeeRequest;
|
||||
@@ -57,6 +58,7 @@ import com.bms.price.service.IPrcBillingTaskService;
|
||||
import com.bms.price.service.IPrcOrderBillService;
|
||||
import com.bms.price.service.ITmsPriceQuoteService;
|
||||
import com.bms.price.service.OrderBillProductCheckService;
|
||||
import com.bms.price.service.support.OrderBillExportSupport;
|
||||
|
||||
/**
|
||||
* Billing center: order quote trial (authenticated).
|
||||
@@ -147,6 +149,50 @@ public class BillingController extends BaseController
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* Async export billing list by current filters (status limited to 0-3).
|
||||
* Requires at least one meaningful filter. Poll task then download.
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('price:billing:export')")
|
||||
@Log(title = "\u8ba1\u8d39\u5217\u8868", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/bill/export")
|
||||
public AjaxResult exportBillList(@RequestBody(required = false) PrcOrderBill query)
|
||||
{
|
||||
if (query == null)
|
||||
{
|
||||
query = new PrcOrderBill();
|
||||
}
|
||||
// Filter gate uses the request as-is; defaults applied only for query scope.
|
||||
if (!OrderBillExportSupport.hasExportFilter(query))
|
||||
{
|
||||
return error(MessageUtils.message("price.bill.export.filterRequired"));
|
||||
}
|
||||
query.setBillingFailStatuses(limitBillingListFailStatus(query.getBillingFailStatuses()));
|
||||
query.setBillingFailStatus(null);
|
||||
return successTask(prcOrderBillService.submitOrderBillExport(
|
||||
PrcOrderBillExportTask.TYPE_BILLING, query));
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('price:billing:export')")
|
||||
@GetMapping("/bill/export/task/{taskId}")
|
||||
public AjaxResult getBillExportTask(@PathVariable("taskId") String taskId)
|
||||
{
|
||||
PrcOrderBillExportTask task = prcOrderBillService.getOrderBillExportTask(taskId);
|
||||
if (task == null)
|
||||
{
|
||||
return error(MessageUtils.message("price.bill.export.taskNotExists"));
|
||||
}
|
||||
return success(task);
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('price:billing:export')")
|
||||
@GetMapping("/bill/export/download/{taskId}")
|
||||
public void downloadBillExport(@PathVariable("taskId") String taskId, HttpServletResponse response)
|
||||
throws Exception
|
||||
{
|
||||
prcOrderBillService.downloadOrderBillExport(taskId, response);
|
||||
}
|
||||
|
||||
private static List<Integer> limitBillingListFailStatus(List<Integer> requested)
|
||||
{
|
||||
List<Integer> allowed = Arrays.asList(Integer.valueOf(0), Integer.valueOf(1), Integer.valueOf(2), Integer.valueOf(3));
|
||||
@@ -179,6 +225,39 @@ public class BillingController extends BaseController
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* Async export order list by current filters.
|
||||
* Requires at least one meaningful filter (default orderStatuses alone is not enough).
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('price:orderBill:export')")
|
||||
@Log(title = "\u8ba2\u5355\u5217\u8868", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/orderBill/export")
|
||||
public AjaxResult exportOrderBillList(@RequestBody(required = false) PrcOrderBill query)
|
||||
{
|
||||
return successTask(prcOrderBillService.submitOrderBillExport(
|
||||
PrcOrderBillExportTask.TYPE_ORDER, query == null ? new PrcOrderBill() : query));
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('price:orderBill:export')")
|
||||
@GetMapping("/orderBill/export/task/{taskId}")
|
||||
public AjaxResult getOrderBillExportTask(@PathVariable("taskId") String taskId)
|
||||
{
|
||||
PrcOrderBillExportTask task = prcOrderBillService.getOrderBillExportTask(taskId);
|
||||
if (task == null)
|
||||
{
|
||||
return error(MessageUtils.message("price.bill.export.taskNotExists"));
|
||||
}
|
||||
return success(task);
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('price:orderBill:export')")
|
||||
@GetMapping("/orderBill/export/download/{taskId}")
|
||||
public void downloadOrderBillExport(@PathVariable("taskId") String taskId, HttpServletResponse response)
|
||||
throws Exception
|
||||
{
|
||||
prcOrderBillService.downloadOrderBillExport(taskId, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* Compare local order-bill products vs customer bound package SALES products
|
||||
* (includes product_code_mapping).
|
||||
|
||||
@@ -217,3 +217,9 @@ price.set.detail.duplicate.noZone=无分区
|
||||
price.bill.billingFail.product=计费失败:未匹配产品
|
||||
price.bill.billingFail.country=计费失败:未匹配国家
|
||||
price.bill.billingFail.weight=计费失败:未匹配重量段
|
||||
price.bill.export.filterRequired=请先设置列表查询条件后再导出
|
||||
price.bill.export.taskNotExists=导出任务不存在或已过期
|
||||
price.bill.export.tooMany=匹配订单超过上限 {0} 条,请缩小筛选范围
|
||||
price.bill.export.noMatch=未查询到匹配订单,无法导出
|
||||
price.bill.export.notReady=导出文件尚未生成或已失败
|
||||
price.bill.export.fileMissing=导出文件不存在或路径非法
|
||||
|
||||
Reference in New Issue
Block a user