From d354267572cbc5d2d4e1c0879a0ac1584f914583 Mon Sep 17 00:00:00 2001 From: zhuotianyuan Date: Wed, 28 Jan 2026 17:43:57 +0800 Subject: [PATCH 1/3] =?UTF-8?q?fix(logistics):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E8=BF=90=E5=8D=95=E7=8A=B6=E6=80=81=E5=88=A4=E6=96=AD=E5=92=8C?= =?UTF-8?q?=E7=BB=93=E6=9E=9C=E5=90=88=E5=B9=B6=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修正运单状态判断逻辑,移除冗余的条件检查 修复freightwaves服务返回结果合并方式 --- src/service/logistics.service.ts | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/service/logistics.service.ts b/src/service/logistics.service.ts index 174a93e..a410f7c 100644 --- a/src/service/logistics.service.ts +++ b/src/service/logistics.service.ts @@ -339,8 +339,6 @@ export class LogisticsService { throw new Error('不支持的运单平台'); } - - } catch (e) { throw e; } @@ -363,12 +361,7 @@ export class LogisticsService { try { resShipmentOrder = await this.mepShipment(data, order); - // 记录物流信息,并将订单状态转到完成,uniuni状态为SUCCESS,tms.freightwaves状态为00000200 - if (resShipmentOrder.status === 'SUCCESS' || resShipmentOrder.code === '00000200') { - order.orderStatus = ErpOrderStatus.COMPLETED; - } else { - throw new Error('运单生成失败'); - } + order.orderStatus = ErpOrderStatus.COMPLETED; const dataSource = this.dataSourceManager.getDataSource('default'); let transactionError = undefined; let shipmentId = undefined; @@ -732,6 +725,11 @@ export class LogisticsService { }; // 添加运单 resShipmentOrder = await this.uniExpressService.createShipment(reqBody); + + // 记录物流信息,并将订单状态转到完成,uniuni状态为SUCCESS,tms.freightwaves状态为00000200 + if (resShipmentOrder.status !== 'SUCCESS') { + throw new Error('运单生成失败'); + } } if (data.shipmentPlatform === 'freightwaves') { @@ -805,7 +803,10 @@ export class LogisticsService { resShipmentOrder = await this.freightwavesService.createOrder(reqBody); // 创建订单 //tms只返回了物流订单号,需要查询一次来获取完整的物流信息 const queryRes = await this.freightwavesService.queryOrder({ shipOrderId: resShipmentOrder.shipOrderId }); // 查询订单 - resShipmentOrder.push(queryRes); + return { + ...resShipmentOrder, + ...queryRes + } } return resShipmentOrder; -- 2.40.1 From 4877783e3f9b3d31c12d81c4dbee1afc10af6497 Mon Sep 17 00:00:00 2001 From: zhuotianyuan Date: Wed, 28 Jan 2026 20:06:11 +0800 Subject: [PATCH 2/3] =?UTF-8?q?fix(logistics):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E8=B4=A7=E8=BF=90=E5=B9=B3=E5=8F=B0courierCompany=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 当courierCompany为"最优物流"时不再传递空字符串,而是不设置shipCompany字段 --- src/service/logistics.service.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/service/logistics.service.ts b/src/service/logistics.service.ts index a410f7c..07815aa 100644 --- a/src/service/logistics.service.ts +++ b/src/service/logistics.service.ts @@ -733,10 +733,15 @@ export class LogisticsService { } if (data.shipmentPlatform === 'freightwaves') { + + let courierCompany: string = ""; + if (data.courierCompany != "最优物流") { + courierCompany = data.courierCompany; + } // 根据TMS系统对接说明文档格式化参数 const reqBody: any = { // shipCompany: 'UPSYYZ7000NEW', - shipCompany: data.courierCompany || "", + shipCompany: courierCompany, partnerOrderNumber: order.siteId + '-' + order.externalOrderId, warehouseId: '25072621030107400060', shipper: { @@ -836,10 +841,14 @@ export class LogisticsService { }) const address = shipments?.address; + let courierCompany: string = ""; + if (data.courierCompany != "最优物流") { + courierCompany = data.courierCompany; + } // 转换为RateTryRequest格式 const r = { // shipCompany: 'UPSYYZ7000NEW', - shipCompany: data.courierCompany || "", + shipCompany: courierCompany, partnerOrderNumber: `order-${Date.now()}`, // 必填,使用时间戳生成 warehouseId: '25072621030107400060', // 可选,使用stockPointId转换 shipper: { -- 2.40.1 From 4eeda35c2d0e62d1020474cfc5fd754138c73030 Mon Sep 17 00:00:00 2001 From: zhuotianyuan Date: Thu, 29 Jan 2026 11:01:32 +0800 Subject: [PATCH 3/3] =?UTF-8?q?fix(logistics):=20=E4=BF=AE=E6=94=B9courier?= =?UTF-8?q?Company=E9=AA=8C=E8=AF=81=E8=A7=84=E5=88=99=E5=B9=B6=E7=A7=BB?= =?UTF-8?q?=E9=99=A4=E5=86=97=E4=BD=99=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将logistics.dto.ts中的courierCompany验证规则从string()改为any() 移除logistics.service.ts中关于courierCompany的条件判断逻辑,直接使用原始值 --- src/dto/logistics.dto.ts | 2 +- src/service/logistics.service.ts | 19 +++---------------- 2 files changed, 4 insertions(+), 17 deletions(-) diff --git a/src/dto/logistics.dto.ts b/src/dto/logistics.dto.ts index 48841db..f0bd6ba 100644 --- a/src/dto/logistics.dto.ts +++ b/src/dto/logistics.dto.ts @@ -25,7 +25,7 @@ export class ShipmentBookDTO { shipmentPlatform: string; @ApiProperty() - @Rule(RuleType.string()) + @Rule(RuleType.any()) courierCompany: string; } diff --git a/src/service/logistics.service.ts b/src/service/logistics.service.ts index 07815aa..046ccd9 100644 --- a/src/service/logistics.service.ts +++ b/src/service/logistics.service.ts @@ -733,15 +733,10 @@ export class LogisticsService { } if (data.shipmentPlatform === 'freightwaves') { - - let courierCompany: string = ""; - if (data.courierCompany != "最优物流") { - courierCompany = data.courierCompany; - } // 根据TMS系统对接说明文档格式化参数 const reqBody: any = { // shipCompany: 'UPSYYZ7000NEW', - shipCompany: courierCompany, + shipCompany: data.courierCompany, partnerOrderNumber: order.siteId + '-' + order.externalOrderId, warehouseId: '25072621030107400060', shipper: { @@ -822,11 +817,7 @@ export class LogisticsService { } - /** - * 将ShipmentFeeBookDTO转换为freightwaves的RateTryRequest格式 - * @param data ShipmentFeeBookDTO数据 - * @returns RateTryRequest格式的数据 - */ + /** * 将ShipmentFeeBookDTO转换为freightwaves的RateTryRequest格式 * @param data ShipmentFeeBookDTO数据 @@ -841,14 +832,10 @@ export class LogisticsService { }) const address = shipments?.address; - let courierCompany: string = ""; - if (data.courierCompany != "最优物流") { - courierCompany = data.courierCompany; - } // 转换为RateTryRequest格式 const r = { // shipCompany: 'UPSYYZ7000NEW', - shipCompany: courierCompany, + shipCompany: data.courierCompany, partnerOrderNumber: `order-${Date.now()}`, // 必填,使用时间戳生成 warehouseId: '25072621030107400060', // 可选,使用stockPointId转换 shipper: { -- 2.40.1