From cdff083940805bae9c631681095b9ab36554bf15 Mon Sep 17 00:00:00 2001 From: tikkhun Date: Fri, 9 Jan 2026 11:12:51 +0800 Subject: [PATCH] =?UTF-8?q?fix(logistics):=20=E5=A4=84=E7=90=86=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E8=BF=90=E5=8D=95=E7=8A=B6=E6=80=81=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E7=9A=84=E6=83=85=E5=86=B5=E5=B9=B6=E4=BC=98=E5=8C=96=E6=89=B9?= =?UTF-8?q?=E9=87=8F=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 当获取运单状态返回FAIL时抛出错误信息 将运单状态更新改为并行处理并添加日志记录 --- src/job/sync_shipment.job.ts | 19 +++++++++++-------- src/service/logistics.service.ts | 4 ++++ 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/job/sync_shipment.job.ts b/src/job/sync_shipment.job.ts index 94707d9..f6497f3 100644 --- a/src/job/sync_shipment.job.ts +++ b/src/job/sync_shipment.job.ts @@ -75,17 +75,20 @@ export class SyncUniuniShipmentJob implements IJob{ '255': 'Gateway_To_Gateway_Transit' }; async onTick() { - try { const shipments:Shipment[] = await this.shipmentModel.findBy({ finished: false }); - shipments.forEach(shipment => { - this.logisticsService.updateShipmentState(shipment); - }); - } catch (error) { - this.logger.error(`更新运单状态失败 ${error.message}`); - } + const results = await Promise.all( + shipments.map(async shipment => { + return await this.logisticsService.updateShipmentState(shipment); + }) + ) + this.logger.info(`更新运单状态完毕 ${JSON.stringify(results)}`); + return results } onComplete(result: any) { - + this.logger.info(`更新运单状态完成 ${result}`); + } + onError(error: any) { + this.logger.error(`更新运单状态失败 ${error.message}`); } } \ No newline at end of file diff --git a/src/service/logistics.service.ts b/src/service/logistics.service.ts index ce4fc70..b37c781 100644 --- a/src/service/logistics.service.ts +++ b/src/service/logistics.service.ts @@ -125,6 +125,10 @@ export class LogisticsService { try { const data = await this.uniExpressService.getOrderStatus(shipment.return_tracking_number); console.log('updateShipmentState data:', data); + // huo + if(data.status === 'FAIL'){ + throw new Error('获取运单状态失败,原因为'+ data.ret_msg) + } shipment.state = data.data[0].state; if (shipment.state in [203, 215, 216, 230]) { // todo,写常数 shipment.finished = true;