物流管理:增加订单号,完善搜索功能

This commit is contained in:
longbot 2025-08-11 13:57:17 +08:00
parent 94767d5120
commit cc23f1694d
1 changed files with 17 additions and 10 deletions

View File

@ -601,29 +601,36 @@ export class LogisticsService {
const { const {
pageSize = 10, pageSize = 10,
current = 1, current = 1,
primary_tracking_number, return_tracking_number,
stockPointId, stockPointId,
externalOrderId,
} = param; } = param;
const offset = pageSize * (current - 1); const offset = pageSize * (current - 1);
const values: any[] = []; const values: any[] = [];
let whereClause = 'WHERE 1=1'; let whereClause = 'WHERE 1=1';
if (primary_tracking_number) { if (return_tracking_number) {
whereClause += ' AND s.primary_tracking_number LIKE ?'; whereClause += ' AND s.return_tracking_number LIKE ?';
values.push(`%${primary_tracking_number}%`); values.push(`%${return_tracking_number}%`);
} }
if (stockPointId) { if (stockPointId) {
whereClause += ' AND os.stockPointId = ?'; whereClause += ' AND sp.id = ?';
values.push(stockPointId); values.push(stockPointId);
} }
// todo增加订单号搜索
if (externalOrderId) {
whereClause += ' AND o.externalOrderId = ?';
values.push(externalOrderId);
}
const sql = ` const sql = `
SELECT s.*, sp.name SELECT s.*, sp.name, o.externalOrderId
FROM shipment s FROM shipment s
LEFT JOIN order_shipment os ON s.id = os.shipment_id LEFT JOIN \`order\` o ON s.order_id = o.id
LEFT JOIN stock_point sp ON os.stockPointId = sp.id LEFT JOIN stock_point sp ON s.stock_point_id = sp.id
${whereClause} ${whereClause}
ORDER BY s.createdAt DESC ORDER BY s.createdAt DESC
LIMIT ?, ? LIMIT ?, ?
@ -632,12 +639,12 @@ export class LogisticsService {
values.push(offset, Number(pageSize)); values.push(offset, Number(pageSize));
const items = await this.serviceModel.query(sql, values); const items = await this.serviceModel.query(sql, values);
// 单独计算总数 // 单独计算总数
const countSql = ` const countSql = `
SELECT COUNT(DISTINCT s.id) as total SELECT COUNT(DISTINCT s.id) as total
FROM shipment s FROM shipment s
LEFT JOIN order_shipment os ON s.id = os.shipment_id LEFT JOIN \`order\` o ON s.order_id = o.id
LEFT JOIN stock_point sp ON s.stock_point_id = sp.id
${whereClause} ${whereClause}
`; `;