diff --git a/bms-back/bms-admin/src/main/java/com/bms/web/controller/monitor/TabOrderMonitorController.java b/bms-back/bms-admin/src/main/java/com/bms/web/controller/monitor/TabOrderMonitorController.java index 32f96d30..5ebd8c6e 100644 --- a/bms-back/bms-admin/src/main/java/com/bms/web/controller/monitor/TabOrderMonitorController.java +++ b/bms-back/bms-admin/src/main/java/com/bms/web/controller/monitor/TabOrderMonitorController.java @@ -91,6 +91,21 @@ public class TabOrderMonitorController extends BaseController return success(data); } + @PreAuthorize("@ss.hasPermi('monitor:orderSource:list')") + @PostMapping("/checkProducts/orders") + public AjaxResult listOrdersByProduct(@RequestBody TabOrderMonitorQuery query) + { + if (!hasRequiredFilters(query)) + { + return error("customerCodes and pickup time required"); + } + if (StringUtils.isEmpty(query.getProductCode())) + { + return error("productCode required"); + } + return success(tabOrderMonitorService.selectOrderIdsByProduct(query)); + } + @PreAuthorize("@ss.hasPermi('monitor:orderSource:sync')") @Log(title = "order source sync filter", businessType = BusinessType.UPDATE) @PostMapping("/syncByFilter") diff --git a/bms-back/bms-system/src/main/java/com/bms/price/domain/vo/TabOrderMonitorQuery.java b/bms-back/bms-system/src/main/java/com/bms/price/domain/vo/TabOrderMonitorQuery.java index 75fce353..06a628ed 100644 --- a/bms-back/bms-system/src/main/java/com/bms/price/domain/vo/TabOrderMonitorQuery.java +++ b/bms-back/bms-system/src/main/java/com/bms/price/domain/vo/TabOrderMonitorQuery.java @@ -25,6 +25,8 @@ public class TabOrderMonitorQuery implements Serializable private String orgOrderId; /** 转单号 TRANSFER_ORDER_ID */ private String transferOrderId; + /** 上游产品代码 PRODUCT_CODE(产品比对点进订单号时使用) */ + private String productCode; /** 分批同步计费每批条数 */ private Integer batchSize; } diff --git a/bms-back/bms-system/src/main/java/com/bms/price/mapper/OracleUpstreamOrderMapper.java b/bms-back/bms-system/src/main/java/com/bms/price/mapper/OracleUpstreamOrderMapper.java index 52588402..85dc1983 100644 --- a/bms-back/bms-system/src/main/java/com/bms/price/mapper/OracleUpstreamOrderMapper.java +++ b/bms-back/bms-system/src/main/java/com/bms/price/mapper/OracleUpstreamOrderMapper.java @@ -32,4 +32,9 @@ public interface OracleUpstreamOrderMapper List> selectTabOrderProductCodes( @Param("orderTable") String orderTable, @Param("query") TabOrderMonitorQuery query); + + /** Order ids for one product code under the same filters (no pagination). */ + List> selectTabOrderIdsByProduct( + @Param("orderTable") String orderTable, + @Param("query") TabOrderMonitorQuery query); } diff --git a/bms-back/bms-system/src/main/java/com/bms/price/oracle/TabOrderMonitorService.java b/bms-back/bms-system/src/main/java/com/bms/price/oracle/TabOrderMonitorService.java index 9fe75d7d..31a33376 100644 --- a/bms-back/bms-system/src/main/java/com/bms/price/oracle/TabOrderMonitorService.java +++ b/bms-back/bms-system/src/main/java/com/bms/price/oracle/TabOrderMonitorService.java @@ -81,6 +81,38 @@ public class TabOrderMonitorService } } + @DataSource(DataSourceType.SLAVE) + public List> selectOrderIdsByProduct(TabOrderMonitorQuery query) + { + validate(query); + if (StringUtils.isEmpty(query.getProductCode())) + { + throw new ServiceException("productCode required"); + } + query.setProductCode(query.getProductCode().trim()); + String table = resolveTable(); + try + { + PageHelper.clearPage(); + long t0 = System.currentTimeMillis(); + List> rows = oracleUpstreamOrderMapper.selectTabOrderIdsByProduct(table, query); + log.info("oracle tab_order ids by product code={} customerSize={} begin={} end={} rows={} costMs={}", + query.getProductCode(), + query.getCustomerCodes() == null ? 0 : query.getCustomerCodes().size(), + query.getBeginTime(), query.getEndTime(), + rows == null ? 0 : rows.size(), System.currentTimeMillis() - t0); + return rows == null ? Collections.emptyList() : rows; + } + catch (RuntimeException e) + { + throw new ServiceException("Oracle TAB_ORDER ids by product failed: " + e.getMessage()); + } + finally + { + PageHelper.clearPage(); + } + } + @DataSource(DataSourceType.SLAVE) public List selectPage(TabOrderMonitorQuery query, int pageNum, int pageSize) { diff --git a/bms-back/bms-system/src/main/resources/mapper/price/OracleUpstreamOrderMapper.xml b/bms-back/bms-system/src/main/resources/mapper/price/OracleUpstreamOrderMapper.xml index 018a72b2..54d8b8b5 100644 --- a/bms-back/bms-system/src/main/resources/mapper/price/OracleUpstreamOrderMapper.xml +++ b/bms-back/bms-system/src/main/resources/mapper/price/OracleUpstreamOrderMapper.xml @@ -121,4 +121,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ORDER BY o.CUSTOMER_CODE, o.PRODUCT_CODE + + + diff --git a/bms-front/src/api/monitor/orderSource.js b/bms-front/src/api/monitor/orderSource.js index 11f566d9..1a1fc831 100644 --- a/bms-front/src/api/monitor/orderSource.js +++ b/bms-front/src/api/monitor/orderSource.js @@ -57,3 +57,12 @@ export function checkOrderSourceProducts(data) { timeout: 180000 }) } + +export function listOrderSourceOrdersByProduct(data) { + return request({ + url: '/monitor/orderSource/checkProducts/orders', + method: 'post', + data, + timeout: 120000 + }) +} diff --git a/bms-front/src/views/monitor/orderSource/components/OrderSourceProductCheckDrawer.vue b/bms-front/src/views/monitor/orderSource/components/OrderSourceProductCheckDrawer.vue index f1f0b6a8..544f482a 100644 --- a/bms-front/src/views/monitor/orderSource/components/OrderSourceProductCheckDrawer.vue +++ b/bms-front/src/views/monitor/orderSource/components/OrderSourceProductCheckDrawer.vue @@ -33,9 +33,10 @@ - - - + + @@ -57,7 +58,11 @@ - + + + @@ -71,17 +76,33 @@ + + + + + + + + + +