From 12fa14c7114b4dd9fd322cfb31ad80f66c79a1ae Mon Sep 17 00:00:00 2001 From: lxy Date: Tue, 11 Mar 2025 17:24:47 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9syncState=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shipClazz/WechatMpShip/WechatMpShip.js | 78 ++++++++++--------- .../shipClazz/WechatMpShip/WechatMpShip.js | 78 ++++++++++--------- .../shipClazz/WechatMpShip/WechatMpShip.ts | 78 ++++++++++--------- 3 files changed, 121 insertions(+), 113 deletions(-) diff --git a/es/utils/shipClazz/WechatMpShip/WechatMpShip.js b/es/utils/shipClazz/WechatMpShip/WechatMpShip.js index 8ec8cc43..78b6640e 100644 --- a/es/utils/shipClazz/WechatMpShip/WechatMpShip.js +++ b/es/utils/shipClazz/WechatMpShip/WechatMpShip.js @@ -13,46 +13,48 @@ export default class WechatMpShip extends DebugClazz { } async syncState(shipId, context) { const instance = await this.getInstance(context); - const data = await this.prepareGetWaybillToken(shipId, context); - const waybillToken = await instance.getWaybillToken(data); - const result = await instance.getExpressState(waybillToken); - const { errcode, errmsg, waybill_info } = result; - if (errcode !== 0) { - throw new Error(errmsg); - } - else { - /** - * 0 运单不存在或未揽收 - * 1 已揽件 - * 2 运输中 - * 3 派件中 - * 4 已签收 - * 5 异常 - * 6 代签收 - */ - const status = waybill_info.status; - let state = undefined; - switch (status) { - case 1: - case 2: - case 3: { - state = 'shipping'; - break; - } - case 4: - case 6: { - state = 'received'; - break; - } - case 5: { - state = 'unknow'; - } - default: { - state = undefined; - } + const data = await this.prepareGetPath(shipId, context); + const result = await instance.getExpressPath(data); + const { path_item_num, path_item_list } = result; + const latestPath = path_item_list[path_item_num - 1] || undefined; + const latestType = latestPath?.action_type; + /** + * action_type: + * 100001 揽件阶段-揽件成功 + * 100002 揽件阶段-揽件失败 + * 100003 揽件阶段-分配业务员 + * 200001 运输阶段-更新运输轨迹 + * 300002 派送阶段-开始派送 + * 300003 派送阶段-签收成功 + * 300004 派送阶段-签收失败 + * 400001 异常阶段-订单取消 + * 400002 异常阶段-订单滞留 + */ + let state = undefined; + switch (latestType) { + case 100001: + case 100003: + case 200001: + case 300002: { + state = 'shipping'; + break; + } + case 300003: { + state = 'received'; + break; + } + // case 400001: { + // state = 'reject'; + // break; + // } + case 100002: + case 300004: + case 400002: { + state = 'unknow'; + break; } - return state; } + return state; } async syncPaths(shipId, context) { const instance = await this.getInstance(context); diff --git a/lib/utils/shipClazz/WechatMpShip/WechatMpShip.js b/lib/utils/shipClazz/WechatMpShip/WechatMpShip.js index 6282af59..64ef6eb1 100644 --- a/lib/utils/shipClazz/WechatMpShip/WechatMpShip.js +++ b/lib/utils/shipClazz/WechatMpShip/WechatMpShip.js @@ -16,46 +16,48 @@ class WechatMpShip extends WechatMpShip_debug_1.default { } async syncState(shipId, context) { const instance = await this.getInstance(context); - const data = await this.prepareGetWaybillToken(shipId, context); - const waybillToken = await instance.getWaybillToken(data); - const result = await instance.getExpressState(waybillToken); - const { errcode, errmsg, waybill_info } = result; - if (errcode !== 0) { - throw new Error(errmsg); - } - else { - /** - * 0 运单不存在或未揽收 - * 1 已揽件 - * 2 运输中 - * 3 派件中 - * 4 已签收 - * 5 异常 - * 6 代签收 - */ - const status = waybill_info.status; - let state = undefined; - switch (status) { - case 1: - case 2: - case 3: { - state = 'shipping'; - break; - } - case 4: - case 6: { - state = 'received'; - break; - } - case 5: { - state = 'unknow'; - } - default: { - state = undefined; - } + const data = await this.prepareGetPath(shipId, context); + const result = await instance.getExpressPath(data); + const { path_item_num, path_item_list } = result; + const latestPath = path_item_list[path_item_num - 1] || undefined; + const latestType = latestPath?.action_type; + /** + * action_type: + * 100001 揽件阶段-揽件成功 + * 100002 揽件阶段-揽件失败 + * 100003 揽件阶段-分配业务员 + * 200001 运输阶段-更新运输轨迹 + * 300002 派送阶段-开始派送 + * 300003 派送阶段-签收成功 + * 300004 派送阶段-签收失败 + * 400001 异常阶段-订单取消 + * 400002 异常阶段-订单滞留 + */ + let state = undefined; + switch (latestType) { + case 100001: + case 100003: + case 200001: + case 300002: { + state = 'shipping'; + break; + } + case 300003: { + state = 'received'; + break; + } + // case 400001: { + // state = 'reject'; + // break; + // } + case 100002: + case 300004: + case 400002: { + state = 'unknow'; + break; } - return state; } + return state; } async syncPaths(shipId, context) { const instance = await this.getInstance(context); diff --git a/src/utils/shipClazz/WechatMpShip/WechatMpShip.ts b/src/utils/shipClazz/WechatMpShip/WechatMpShip.ts index 7907651d..b78d527f 100644 --- a/src/utils/shipClazz/WechatMpShip/WechatMpShip.ts +++ b/src/utils/shipClazz/WechatMpShip/WechatMpShip.ts @@ -21,45 +21,49 @@ export default class WechatMpShip { const instance = await this.getInstance(context); - const data = await this.prepareGetWaybillToken(shipId, context); - const waybillToken = await instance.getWaybillToken(data); - const result = await instance.getExpressState(waybillToken); - const { errcode, errmsg, waybill_info } = result; - if (errcode !== 0) { - throw new Error(errmsg); - } else { - /** - * 0 运单不存在或未揽收 - * 1 已揽件 - * 2 运输中 - * 3 派件中 - * 4 已签收 - * 5 异常 - * 6 代签收 - */ - const status = waybill_info!.status!; - let state: EntityDict['ship']['OpSchema']['iState'] = undefined; - switch (status) { - case 1: - case 2: - case 3: { - state = 'shipping'; - break; - } - case 4: - case 6: { - state = 'received'; - break; - } - case 5: { - state = 'unknow'; - } - default: { - state = undefined; - } + const data = await this.prepareGetPath(shipId, context); + const result = await instance.getExpressPath(data); + const { path_item_num, path_item_list } = result; + const latestPath = path_item_list[path_item_num - 1] || undefined; + const latestType = latestPath?.action_type; + /** + * action_type: + * 100001 揽件阶段-揽件成功 + * 100002 揽件阶段-揽件失败 + * 100003 揽件阶段-分配业务员 + * 200001 运输阶段-更新运输轨迹 + * 300002 派送阶段-开始派送 + * 300003 派送阶段-签收成功 + * 300004 派送阶段-签收失败 + * 400001 异常阶段-订单取消 + * 400002 异常阶段-订单滞留 + */ + + let state: EntityDict['ship']['OpSchema']['iState'] = undefined; + switch (latestType) { + case 100001: + case 100003: + case 200001: + case 300002: { + state = 'shipping'; + break; + } + case 300003: { + state = 'received'; + break; + } + // case 400001: { + // state = 'reject'; + // break; + // } + case 100002: + case 300004: + case 400002: { + state = 'unknow'; + break; } - return state; } + return state; } async syncPaths(shipId: string, context: Context): Promise {