优化
This commit is contained in:
@@ -177,6 +177,74 @@ export async function run(context) {
|
||||
&& Number(assignedLoadingPlan?.version) === 1,
|
||||
`loadingPlanId=${loadingPlanId}, version=${assignedLoadingPlan?.version ?? 'missing'}`, OPTIONS)
|
||||
|
||||
const assignedItem = assignedLoadingPlan?.items?.find?.((item) => id(item.inboundId) === inboundId)
|
||||
const orderRemarks = context.createdResources?.orders || {}
|
||||
context.assert(MODULE, '装柜明细客户备注与最新内部备注来源精确且不冒用货物备注', assignmentResponse,
|
||||
assignedItem?.customerRemark === orderRemarks.customerRemark
|
||||
&& assignedItem?.internalRemark === orderRemarks.internalRemark
|
||||
&& assignedItem?.internalRemark !== orderRemarks.cargoRemark,
|
||||
`customerRemark=${assignedItem?.customerRemark || 'missing'}, internalRemark=${assignedItem?.internalRemark || 'missing'}, cargoRemark=${orderRemarks.cargoRemark || 'missing'}`, OPTIONS)
|
||||
if (!assignedItem?.id || !Number.isInteger(Number(assignedItem.version))) return
|
||||
const warehouseRemark = `${context.marker}-WAREHOUSE-REMARK`
|
||||
const warehouseRemarkPath = `${smartLoadingBase}/plans/${loadingPlanId}/items/${id(assignedItem.id)}/warehouse-remark`
|
||||
const warehouseRemarkBody = Object.freeze({ warehouseRemark,
|
||||
expectedPlanVersion: Number(assignedLoadingPlan.version), expectedItemVersion: Number(assignedItem.version),
|
||||
operationId: `${context.marker}-warehouse-remark`.slice(0, 128) })
|
||||
const remarkResponse = await request(context, 'PATCH', warehouseRemarkPath, warehouseRemarkBody)
|
||||
const remarkedPlan = context.apiSuccess(MODULE, 'EDITING 装柜明细保存仓库备注', remarkResponse, '', OPTIONS)
|
||||
const remarkedItem = remarkedPlan?.items?.find?.((item) => id(item.id) === id(assignedItem.id))
|
||||
context.assert(MODULE, '仓库备注保存后计划与明细版本递增且三备注并存', remarkResponse,
|
||||
remarkedItem?.warehouseRemark === warehouseRemark
|
||||
&& Number(remarkedPlan?.version) > Number(assignedLoadingPlan.version)
|
||||
&& Number(remarkedItem?.version) > Number(assignedItem.version)
|
||||
&& remarkedItem?.customerRemark === orderRemarks.customerRemark
|
||||
&& remarkedItem?.internalRemark === orderRemarks.internalRemark,
|
||||
`planVersion=${remarkedPlan?.version ?? 'missing'}, itemVersion=${remarkedItem?.version ?? 'missing'}`, OPTIONS)
|
||||
if (!remarkedItem?.id) return
|
||||
const remarkReplayResponse = await request(context, 'PATCH', warehouseRemarkPath, warehouseRemarkBody)
|
||||
const replayedRemarkPlan = context.apiSuccess(MODULE, '仓库备注相同 operationId 与原请求精确重放', remarkReplayResponse, '', OPTIONS)
|
||||
const replayedRemarkItem = replayedRemarkPlan?.items?.find?.((item) => id(item.id) === id(assignedItem.id))
|
||||
context.assert(MODULE, '仓库备注精确重放不重复递增版本或历史事实', remarkReplayResponse,
|
||||
Number(replayedRemarkPlan?.version) === Number(remarkedPlan?.version)
|
||||
&& Number(replayedRemarkItem?.version) === Number(remarkedItem?.version)
|
||||
&& replayedRemarkItem?.warehouseRemark === warehouseRemark,
|
||||
`planVersion=${replayedRemarkPlan?.version ?? 'missing'}, itemVersion=${replayedRemarkItem?.version ?? 'missing'}`, OPTIONS)
|
||||
const staleRemarkResponse = await request(context, 'PATCH',
|
||||
`${smartLoadingBase}/plans/${loadingPlanId}/items/${id(assignedItem.id)}/warehouse-remark`, {
|
||||
warehouseRemark: `${warehouseRemark}-STALE`, expectedPlanVersion: Number(assignedLoadingPlan.version),
|
||||
expectedItemVersion: Number(assignedItem.version), operationId: `${context.marker}-warehouse-remark-stale`.slice(0, 128),
|
||||
})
|
||||
context.addStep(MODULE, '仓库备注旧版本 A0409 且零写入', staleRemarkResponse,
|
||||
staleRemarkResponse.http === 200 && codeOf(staleRemarkResponse) === 'A0409',
|
||||
`HTTP=${staleRemarkResponse.http}, code=${codeOf(staleRemarkResponse)}`, OPTIONS)
|
||||
const afterStaleRemarkResponse = await context.request('GET', `${smartLoadingBase}/plans/${loadingPlanId}`)
|
||||
const afterStaleRemarkPlan = context.apiSuccess(MODULE, '仓库备注旧版本冲突后回查计划', afterStaleRemarkResponse, '', OPTIONS)
|
||||
const afterStaleRemarkItem = afterStaleRemarkPlan?.items?.find?.((item) => id(item.id) === id(remarkedItem.id))
|
||||
context.assert(MODULE, '仓库备注旧版本冲突后版本与备注事实零漂移', afterStaleRemarkResponse,
|
||||
Number(afterStaleRemarkPlan?.version) === Number(remarkedPlan?.version)
|
||||
&& Number(afterStaleRemarkItem?.version) === Number(remarkedItem?.version)
|
||||
&& afterStaleRemarkItem?.warehouseRemark === warehouseRemark,
|
||||
`planVersion=${afterStaleRemarkPlan?.version ?? 'missing'}, itemVersion=${afterStaleRemarkItem?.version ?? 'missing'}`, OPTIONS)
|
||||
const clearRemarkResponse = await request(context, 'PATCH',
|
||||
`${smartLoadingBase}/plans/${loadingPlanId}/items/${id(remarkedItem.id)}/warehouse-remark`, {
|
||||
warehouseRemark: ' ', expectedPlanVersion: Number(remarkedPlan.version),
|
||||
expectedItemVersion: Number(remarkedItem.version), operationId: `${context.marker}-warehouse-remark-clear`.slice(0, 128),
|
||||
})
|
||||
const clearedPlan = context.apiSuccess(MODULE, 'EDITING 装柜明细空白仓库备注归一化为 null', clearRemarkResponse, '', OPTIONS)
|
||||
const clearedItem = clearedPlan?.items?.find?.((item) => id(item.id) === id(remarkedItem.id))
|
||||
context.assert(MODULE, '清空仓库备注不影响客户与内部备注来源', clearRemarkResponse,
|
||||
clearedItem?.warehouseRemark == null && clearedItem?.customerRemark === orderRemarks.customerRemark
|
||||
&& clearedItem?.internalRemark === orderRemarks.internalRemark,
|
||||
`warehouseRemark=${clearedItem?.warehouseRemark ?? 'null'}`, OPTIONS)
|
||||
if (!clearedItem?.id) return
|
||||
const restoreRemarkResponse = await request(context, 'PATCH',
|
||||
`${smartLoadingBase}/plans/${loadingPlanId}/items/${id(clearedItem.id)}/warehouse-remark`, {
|
||||
warehouseRemark, expectedPlanVersion: Number(clearedPlan.version), expectedItemVersion: Number(clearedItem.version),
|
||||
operationId: `${context.marker}-warehouse-remark-restore`.slice(0, 128),
|
||||
})
|
||||
const persistedRemarkPlan = context.apiSuccess(MODULE, '恢复真实仓库备注供装柜完成事件下发', restoreRemarkResponse, '', OPTIONS)
|
||||
if (!Number.isInteger(Number(persistedRemarkPlan?.version))) return
|
||||
|
||||
const pendingPreloadResponse = await context.request('GET', `${base}/preload?tenantId=${encodeURIComponent(tenantId)}`)
|
||||
const pendingPreload = context.apiSuccess(MODULE, '智能排货自动建立 PENDING 预装聚合', pendingPreloadResponse, '', OPTIONS)
|
||||
const planId = id(pendingPreload?.id)
|
||||
@@ -187,7 +255,7 @@ export async function run(context) {
|
||||
|
||||
const pushRequest = Object.freeze({
|
||||
path: `${smartLoadingBase}/plans/${loadingPlanId}/push-preload`,
|
||||
body: Object.freeze({ expectedVersion: Number(assignedLoadingPlan.version) }),
|
||||
body: Object.freeze({ expectedVersion: Number(persistedRemarkPlan.version) }),
|
||||
headers: Object.freeze({ 'Idempotency-Key': `${context.marker}-bridge-push`.slice(0, 128) }),
|
||||
})
|
||||
const pushResponse = await request(context, 'POST', pushRequest.path, pushRequest.body, pushRequest.headers)
|
||||
@@ -919,6 +987,7 @@ export async function run(context) {
|
||||
})
|
||||
const incrementedPlan = context.apiSuccess(MODULE, 'LOADING 阶段向同一 PDA task 增加入库单', incrementResponse, '', OPTIONS)
|
||||
const incrementalPlanItem = incrementedPlan?.items?.find?.((item) => id(item?.inboundId) === incrementalInboundId)
|
||||
const preservedRemarkItem = incrementedPlan?.items?.find?.((item) => id(item?.id) === id(assignedItem.id))
|
||||
const incrementedTaskResponse = await context.request('GET', `${pdaBase}/tasks/${canonicalTaskId}`)
|
||||
const incrementedTask = context.apiSuccess(MODULE, '增量后回查稳定 PDA 四元身份', incrementedTaskResponse, '', OPTIONS)
|
||||
const incrementalTaskItem = incrementedTask?.items?.find?.((item) =>
|
||||
@@ -933,6 +1002,8 @@ export async function run(context) {
|
||||
&& Number(incrementedPlan?.pdaTaskVersion) > Number(taskBeforeIncrement?.version)
|
||||
&& Number(incrementalPlanItem?.version) === 0 && Number(incrementalPlanItem?.pickedPackageCount) === 0
|
||||
&& Number(incrementalPlanItem?.minPackageCount) === 1
|
||||
&& incrementalPlanItem?.warehouseRemark == null
|
||||
&& preservedRemarkItem?.warehouseRemark === warehouseRemark
|
||||
&& incrementalPlanItem?.canAdjust === true && incrementalPlanItem?.canRemove === true
|
||||
&& id(incrementedTask?.loadingPlanId) === loadingPlanId
|
||||
&& id(incrementedTask?.containerBookingId) === containerBookingId
|
||||
@@ -999,7 +1070,8 @@ export async function run(context) {
|
||||
Number(adjustedPlan?.version) > Number(reassignedPlan?.version)
|
||||
&& Number(adjustedPlan?.pdaTaskVersion) > Number(reassignedPlan?.pdaTaskVersion)
|
||||
&& Number(adjustedItem?.version) > Number(reassignedPlanItem?.version)
|
||||
&& Number(adjustedItem?.packageCount) === 2 && id(adjustedPlan?.pdaTaskId) === canonicalTaskId,
|
||||
&& Number(adjustedItem?.packageCount) === 2 && adjustedItem?.warehouseRemark === reassignedPlanItem?.warehouseRemark
|
||||
&& id(adjustedPlan?.pdaTaskId) === canonicalTaskId,
|
||||
`planVersion=${adjustedPlan?.version ?? 'missing'}, taskVersion=${adjustedPlan?.pdaTaskVersion ?? 'missing'}, itemVersion=${adjustedItem?.version ?? 'missing'}`, OPTIONS)
|
||||
effectiveDynamicPlan = adjustedPlan
|
||||
reassignedPlanItem = adjustedItem
|
||||
|
||||
Reference in New Issue
Block a user