Compare commits

...

4 Commits

Author SHA1 Message Date
zhuotianyuan f2f72f8c44 fix(logistics): 修改courierCompany验证规则并移除冗余逻辑
将logistics.dto.ts中的courierCompany验证规则从string()改为any()
移除logistics.service.ts中关于courierCompany的条件判断逻辑,直接使用原始值
2026-01-29 11:01:32 +08:00
zhuotianyuan 97ae006468 fix(logistics): 修复货运平台courierCompany字段处理逻辑
当courierCompany为"最优物流"时不再传递空字符串,而是不设置shipCompany字段
2026-01-28 20:06:11 +08:00
zhuotianyuan 59f4c46f08 fix(logistics): 修复运单状态判断和结果合并问题
修正运单状态判断逻辑,移除冗余的条件检查
修复freightwaves服务返回结果合并方式
2026-01-28 17:43:57 +08:00
zhuotianyuan be32eead2c feat(logistics): 添加courierCompany字段并更新相关逻辑
在ShipmentBookDTO和ShipmentFeeBookDTO中添加courierCompany字段
更新物流服务中shipCompany的赋值逻辑,优先使用courierCompany
2026-01-27 19:55:43 +08:00
2 changed files with 22 additions and 17 deletions

View File

@ -23,6 +23,10 @@ export class ShipmentBookDTO {
@ApiProperty() @ApiProperty()
@Rule(RuleType.string()) @Rule(RuleType.string())
shipmentPlatform: string; shipmentPlatform: string;
@ApiProperty()
@Rule(RuleType.any())
courierCompany: string;
} }
export class ShipmentFeeBookDTO { export class ShipmentFeeBookDTO {
@ -30,6 +34,8 @@ export class ShipmentFeeBookDTO {
@ApiProperty() @ApiProperty()
shipmentPlatform: string; shipmentPlatform: string;
@ApiProperty() @ApiProperty()
courierCompany: string;
@ApiProperty()
stockPointId: number; stockPointId: number;
@ApiProperty() @ApiProperty()
sender: string; sender: string;

View File

@ -339,8 +339,6 @@ export class LogisticsService {
throw new Error('不支持的运单平台'); throw new Error('不支持的运单平台');
} }
} catch (e) { } catch (e) {
throw e; throw e;
} }
@ -363,12 +361,7 @@ export class LogisticsService {
try { try {
resShipmentOrder = await this.mepShipment(data, order); resShipmentOrder = await this.mepShipment(data, order);
// 记录物流信息,并将订单状态转到完成,uniuni状态为SUCCESStms.freightwaves状态为00000200
if (resShipmentOrder.status === 'SUCCESS' || resShipmentOrder.code === '00000200') {
order.orderStatus = ErpOrderStatus.COMPLETED; order.orderStatus = ErpOrderStatus.COMPLETED;
} else {
throw new Error('运单生成失败');
}
const dataSource = this.dataSourceManager.getDataSource('default'); const dataSource = this.dataSourceManager.getDataSource('default');
let transactionError = undefined; let transactionError = undefined;
let shipmentId = undefined; let shipmentId = undefined;
@ -467,7 +460,7 @@ export class LogisticsService {
} }
}; };
} catch (error) { } catch (error) {
if (resShipmentOrder.status === 'SUCCESS') { if (resShipmentOrder?.status === 'SUCCESS') {
await this.uniExpressService.deleteShipment(resShipmentOrder.data.tno); await this.uniExpressService.deleteShipment(resShipmentOrder.data.tno);
} }
throw new Error(`上游请求错误:${error}`); throw new Error(`上游请求错误:${error}`);
@ -732,12 +725,18 @@ export class LogisticsService {
}; };
// 添加运单 // 添加运单
resShipmentOrder = await this.uniExpressService.createShipment(reqBody); resShipmentOrder = await this.uniExpressService.createShipment(reqBody);
// 记录物流信息,并将订单状态转到完成,uniuni状态为SUCCESStms.freightwaves状态为00000200
if (resShipmentOrder.status !== 'SUCCESS') {
throw new Error('运单生成失败');
}
} }
if (data.shipmentPlatform === 'freightwaves') { if (data.shipmentPlatform === 'freightwaves') {
// 根据TMS系统对接说明文档格式化参数 // 根据TMS系统对接说明文档格式化参数
const reqBody: any = { const reqBody: any = {
shipCompany: 'UPSYYZ7000NEW', // shipCompany: 'UPSYYZ7000NEW',
shipCompany: data.courierCompany,
partnerOrderNumber: order.siteId + '-' + order.externalOrderId, partnerOrderNumber: order.siteId + '-' + order.externalOrderId,
warehouseId: '25072621030107400060', warehouseId: '25072621030107400060',
shipper: { shipper: {
@ -804,7 +803,10 @@ export class LogisticsService {
resShipmentOrder = await this.freightwavesService.createOrder(reqBody); // 创建订单 resShipmentOrder = await this.freightwavesService.createOrder(reqBody); // 创建订单
//tms只返回了物流订单号需要查询一次来获取完整的物流信息 //tms只返回了物流订单号需要查询一次来获取完整的物流信息
const queryRes = await this.freightwavesService.queryOrder({ shipOrderId: resShipmentOrder.shipOrderId }); // 查询订单 const queryRes = await this.freightwavesService.queryOrder({ shipOrderId: resShipmentOrder.shipOrderId }); // 查询订单
resShipmentOrder.push(queryRes); return {
...resShipmentOrder,
...queryRes
}
} }
return resShipmentOrder; return resShipmentOrder;
@ -815,11 +817,7 @@ export class LogisticsService {
} }
/**
* ShipmentFeeBookDTO转换为freightwaves的RateTryRequest格式
* @param data ShipmentFeeBookDTO数据
* @returns RateTryRequest格式的数据
*/
/** /**
* ShipmentFeeBookDTO转换为freightwaves的RateTryRequest格式 * ShipmentFeeBookDTO转换为freightwaves的RateTryRequest格式
* @param data ShipmentFeeBookDTO数据 * @param data ShipmentFeeBookDTO数据
@ -836,7 +834,8 @@ export class LogisticsService {
const address = shipments?.address; const address = shipments?.address;
// 转换为RateTryRequest格式 // 转换为RateTryRequest格式
const r = { const r = {
shipCompany: 'UPSYYZ7000NEW', // 必填但ShipmentFeeBookDTO中缺少 // shipCompany: 'UPSYYZ7000NEW',
shipCompany: data.courierCompany,
partnerOrderNumber: `order-${Date.now()}`, // 必填,使用时间戳生成 partnerOrderNumber: `order-${Date.now()}`, // 必填,使用时间戳生成
warehouseId: '25072621030107400060', // 可选使用stockPointId转换 warehouseId: '25072621030107400060', // 可选使用stockPointId转换
shipper: { shipper: {