订单数据源增加订单对比功能
This commit is contained in:
+75
@@ -24,6 +24,7 @@ import com.bms.common.core.page.TableSupport;
|
||||
import com.bms.common.enums.BusinessType;
|
||||
import com.bms.common.utils.StringUtils;
|
||||
import com.bms.price.domain.PrcBillingTaskRetryTask;
|
||||
import com.bms.price.domain.vo.TabOrderCompareTask;
|
||||
import com.bms.price.domain.vo.TabOrderMonitorQuery;
|
||||
import com.bms.price.domain.vo.TabOrderMonitorVo;
|
||||
import com.bms.price.domain.vo.TabOrderProductCheckResult;
|
||||
@@ -35,6 +36,7 @@ import com.bms.price.search.BillSearchPage;
|
||||
import com.bms.price.search.EsLogType;
|
||||
import com.bms.price.search.IBillSearchStore;
|
||||
import com.bms.price.search.TabOrderSyncEsLog;
|
||||
import com.bms.price.task.TabOrderCompareAsyncRunner;
|
||||
import com.bms.price.task.TabOrderSyncAsyncRunner;
|
||||
|
||||
/**
|
||||
@@ -53,6 +55,9 @@ public class TabOrderMonitorController extends BaseController
|
||||
@Autowired
|
||||
private TabOrderSyncAsyncRunner tabOrderSyncAsyncRunner;
|
||||
|
||||
@Autowired
|
||||
private TabOrderCompareAsyncRunner tabOrderCompareAsyncRunner;
|
||||
|
||||
@Autowired
|
||||
private IBillSearchStore billSearchStore;
|
||||
|
||||
@@ -82,6 +87,36 @@ public class TabOrderMonitorController extends BaseController
|
||||
pageSize == null ? 10 : pageSize.intValue());
|
||||
}
|
||||
|
||||
/**
|
||||
* 比对缺失转单号回填搜索专用:仅按转单号列查询,
|
||||
* 不走普通列表/三列单号收集路径。
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('monitor:orderSource:list')")
|
||||
@PostMapping("/listByTransferNos")
|
||||
public TableDataInfo listByTransferNos(@RequestBody TabOrderMonitorQuery query,
|
||||
@RequestParam(value = "pageNum", required = false) Integer pageNum,
|
||||
@RequestParam(value = "pageSize", required = false) Integer pageSize)
|
||||
{
|
||||
TableDataInfo rsp = new TableDataInfo();
|
||||
rsp.setCode(HttpStatus.SUCCESS);
|
||||
rsp.setMsg("查询成功");
|
||||
if (query == null || !hasNonBlankItem(query.getOrderIdentifiers()))
|
||||
{
|
||||
rsp.setRows(Collections.emptyList());
|
||||
rsp.setTotal(0L);
|
||||
return rsp;
|
||||
}
|
||||
// clear time so shared resolvers cannot accidentally reuse month window
|
||||
query.setBeginTime(null);
|
||||
query.setEndTime(null);
|
||||
customerKeywordResolver.resolve(query);
|
||||
TabOrderPageResult page = tabOrderMonitorService.searchPageByTransferNos(
|
||||
query, pageNum == null ? 1 : pageNum.intValue(), pageSize == null ? 10 : pageSize.intValue());
|
||||
rsp.setRows(page.getRows());
|
||||
rsp.setTotal(page.getTotal());
|
||||
return rsp;
|
||||
}
|
||||
|
||||
private TableDataInfo listPage(TabOrderMonitorQuery query, int pageNum, int pageSize)
|
||||
{
|
||||
TableDataInfo rsp = new TableDataInfo();
|
||||
@@ -102,6 +137,46 @@ public class TabOrderMonitorController extends BaseController
|
||||
return rsp;
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单比对(异步):按客户+提货时间分页比对转单号(上游有/本地无)。
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('monitor:orderSource:list')")
|
||||
@Log(title = "order source compare", businessType = BusinessType.OTHER)
|
||||
@PostMapping("/compareByFilter")
|
||||
public AjaxResult compareByFilter(@RequestBody TabOrderMonitorQuery query)
|
||||
{
|
||||
if (!hasRequiredFilters(query))
|
||||
{
|
||||
return error("订单比对需先选择客户和提货时间");
|
||||
}
|
||||
// 比对不受列表单号/回填影响
|
||||
query.setOrderIdentifiers(null);
|
||||
query.setOrderId(null);
|
||||
query.setOrgOrderId(null);
|
||||
query.setTransferOrderId(null);
|
||||
customerKeywordResolver.resolve(query);
|
||||
String asyncTaskId = UUID.randomUUID().toString().replace("-", "");
|
||||
tabOrderCompareAsyncRunner.put(asyncTaskId, TabOrderCompareTask.STATUS_PENDING, 0, "queued",
|
||||
0, 0, 0, null, null);
|
||||
tabOrderCompareAsyncRunner.run(asyncTaskId, query);
|
||||
Map<String, Object> data = new HashMap<String, Object>();
|
||||
data.put("asyncTaskId", asyncTaskId);
|
||||
TabOrderSyncEsLog.save(billSearchStore, asyncTaskId, "COMPARE", query, data, "SUCCESS", null);
|
||||
return success(data);
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('monitor:orderSource:list')")
|
||||
@GetMapping("/compareTask/{asyncTaskId}")
|
||||
public AjaxResult compareTaskProgress(@PathVariable("asyncTaskId") String asyncTaskId)
|
||||
{
|
||||
TabOrderCompareTask task = tabOrderCompareAsyncRunner.get(asyncTaskId);
|
||||
if (task == null)
|
||||
{
|
||||
return error("compare task not found or expired");
|
||||
}
|
||||
return success(task);
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('monitor:orderSource:list')")
|
||||
@PostMapping("/checkProducts")
|
||||
public AjaxResult checkProducts(@RequestBody TabOrderMonitorQuery query)
|
||||
|
||||
@@ -47,6 +47,7 @@ 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;
|
||||
import com.bms.price.domain.vo.OrderBillProductCheckResult;
|
||||
import com.bms.price.domain.vo.TmsPriceQuoteRequest;
|
||||
import com.bms.price.domain.vo.TmsPriceQuoteResult;
|
||||
import com.bms.price.enums.BillTaskSuccessStatus;
|
||||
@@ -54,6 +55,7 @@ import com.bms.price.enums.BillTaskType;
|
||||
import com.bms.price.service.IPrcBillingTaskService;
|
||||
import com.bms.price.service.IPrcOrderBillService;
|
||||
import com.bms.price.service.ITmsPriceQuoteService;
|
||||
import com.bms.price.service.OrderBillProductCheckService;
|
||||
|
||||
/**
|
||||
* Billing center: order quote trial (authenticated).
|
||||
@@ -76,6 +78,9 @@ public class BillingController extends BaseController
|
||||
@Autowired
|
||||
private IBmsBizAttachmentService bizAttachmentService;
|
||||
|
||||
@Autowired
|
||||
private OrderBillProductCheckService orderBillProductCheckService;
|
||||
|
||||
/**
|
||||
* Historical quote list.
|
||||
*/
|
||||
@@ -173,6 +178,25 @@ public class BillingController extends BaseController
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* Detect package sales products (as of billing end time) missing from product catalog.
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('price:orderBill:list')")
|
||||
@PostMapping("/orderBill/checkProducts")
|
||||
public AjaxResult checkOrderBillProducts(@RequestBody PrcOrderBill query)
|
||||
{
|
||||
OrderBillProductCheckResult data = orderBillProductCheckService.check(query);
|
||||
return success(data);
|
||||
}
|
||||
|
||||
/** Drill-down order bills for one product under the same check filters. */
|
||||
@PreAuthorize("@ss.hasPermi('price:orderBill:list')")
|
||||
@PostMapping("/orderBill/checkProducts/orders")
|
||||
public AjaxResult listOrderBillsByProduct(@RequestBody PrcOrderBill query)
|
||||
{
|
||||
return success(orderBillProductCheckService.listOrdersByProduct(query));
|
||||
}
|
||||
|
||||
/**
|
||||
* Order no options for remote-search dropdown (bill list multi search).
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user