优化
This commit is contained in:
@@ -2,6 +2,8 @@
|
||||
|
||||
`db/test-return-relabel-checks.sql`:测试库退货转换标检查约束定向修复,显式目标 `baiyue_lastleg.ll_return_inventory_carton`。与 Lastleg 基线保持一致,允许正数量的 `RELABEL_PENDING`,保留可用/已出库正数量与已合箱零数量限制。一条原子 ALTER 同时替换两个既有 CHECK,不修改业务行、不删除数据、不关闭约束;重复执行得到相同约束,旧约束不存在则报错停止。凭据由外部测试数据库连接提供,执行前需测试库操作授权;末尾只读输出约束定义供回查。不是生产迁移入口,不能替代完整 HTTP 换标回归。
|
||||
|
||||
`../deploy/scripts/deploy-blue-green-service.sh`:受控部署流程调用的单服务蓝绿发布与健康检查入口;只由部署/Jenkins 编排使用,不作为普通验收脚本直接运行。目标服务、环境、镜像和凭据均由外部参数提供,失败按部署脚本回滚规则处理。
|
||||
|
||||
`db/relabel-wait-status-incremental.sql`:存量换标主单状态修正,显式使用 `baiyue_lastleg`。由操作者选择已授权数据库连接执行,无内置凭据;只更新未生成入库单、仍为待分配的 `RELABEL_APPLICATION` 主单为待换标/待排车/待出库,不修改库存或删除单据。事务执行、可重复运行,执行后按换标号回查订单状态;无单独报告文件。
|
||||
|
||||
`db/warehouse-transfer-outbound-incremental.sql`:固定指向 `baiyue_lastleg`,一次补齐仓储转运审核、提货、PDA 测量打托、现场照片、换标、FBA/私人仓目的地、入库计划、智能排车和派送所需表、租户字段及索引,并将换标新 SKU 和转运托盘生命周期字段修正为本地要求的可空结构。无内置凭据;表使用 `CREATE TABLE IF NOT EXISTS`,字段和索引通过 `information_schema` 独立判断,可重复执行,不删除或改写业务单据。完整成功时返回 `WAREHOUSE_TRANSFER_LATEST_SCHEMA_READY`;若历史数据存在同客户重复托盘号,则返回 `WAREHOUSE_TRANSFER_SCHEMA_APPLIED_WITH_INDEX_BLOCKER`,且 `inbound_pallet_unique_index` 为 `BLOCKED_BY_DUPLICATE_CUSTOMER_PALLET_NO`。其余结构仍正常补齐,脚本不会擅自修改历史托盘号。
|
||||
|
||||
@@ -108,3 +108,9 @@ test('relabel marks are checked on the authoritative outbound DTO without weaken
|
||||
assert.match(source, /detail\.data\?\.outbound\?\.dispatchNo === relabel\.dispatchNo/)
|
||||
assert.match(source, /relabel\?\.marker !== context\.marker/)
|
||||
})
|
||||
|
||||
test('manual exception retries only a transport failure with the identical business body', () => {
|
||||
assert.match(source, /manualException\.response\.http === 0/)
|
||||
assert.match(source, /人工异常连接失败后使用同载荷重试/)
|
||||
assert.match(source, /manualExceptionBody/)
|
||||
})
|
||||
|
||||
@@ -468,11 +468,16 @@ export async function run(context) {
|
||||
&& savedVisit.data?.visit?.selectedInboundCode === inbound.inboundCode
|
||||
&& savedVisit.data?.visit?.visitResult === 'SATISFIED', trace(savedVisit.response), OPTIONS)
|
||||
|
||||
const manualException = await platform(context, 'POST', '为本轮尾程单创建人工异常',
|
||||
`${LASTLEG_BASE}/exception-orders`, {
|
||||
const manualExceptionBody = {
|
||||
customerId, inboundCode: inbound.inboundCode, lastMileOrderNo: inbound.lastMileOrderNo,
|
||||
exceptionType: 'DAMAGED', reason: `${context.marker}-manual-exception`, packageCount: 1, skuCode: null,
|
||||
})
|
||||
}
|
||||
let manualException = await platform(context, 'POST', '为本轮尾程单创建人工异常',
|
||||
`${LASTLEG_BASE}/exception-orders`, manualExceptionBody)
|
||||
if (manualException.response.http === 0) {
|
||||
manualException = await platform(context, 'POST', '人工异常连接失败后使用同载荷重试',
|
||||
`${LASTLEG_BASE}/exception-orders`, manualExceptionBody)
|
||||
}
|
||||
const manualExceptionNo = id(manualException.data?.exceptionNo)
|
||||
context.assert(MODULE, '人工异常进入PENDING并返回业务单号', manualException.response,
|
||||
nonBlank(manualExceptionNo) && manualException.data?.status === 'PENDING', trace(manualException.response), OPTIONS)
|
||||
|
||||
Reference in New Issue
Block a user