fix: 半成品扫码入库按 external_serial 精准判定模式并恢复批号联动
- external_serial 有值 → SN + 填外部序列号;为空 → Batch(不再因身份证有值误切 SN) - Batch 模式恢复批号自增(onMaterialSelected→checkHistoryAndSetMode),空时兜底 000001 - Batch 下 16 位身份证回填序列号字段,随提交载荷供 Webhook 通知 Track
This commit is contained in:
@ -1501,15 +1501,23 @@ const handleScannerConfirm = (result: string) => {
|
||||
// Track 扫码入库:扫码面板扫到身份证后,自动带出物料基础信息 + 序列号
|
||||
const handleTrackScanFill = async (data: { track: any; material: any }) => {
|
||||
const { track, material } = data
|
||||
// 选择物料:触发原生联动(基础信息/历史库位/历史模式与批号自增)
|
||||
await onMaterialSelected(material)
|
||||
// 优先使用真实自定义序列号(external_serial),回退到 16 位系统身份证
|
||||
form.serial_number = track.external_serial || track.serial_number || ''
|
||||
// 自动切换入库模式:有真实序列号 → 强制 SN;否则 → Batch
|
||||
if (form.serial_number) {
|
||||
|
||||
if (track.external_serial) {
|
||||
// 序列号管理产品:切 SN,填真实外部业务序列号
|
||||
entryMode.value = 'serial'
|
||||
modeLocked.value = false // 扫码为明确序列号输入,解除历史锁定
|
||||
form.serial_number = track.external_serial
|
||||
form.batch_number = ''
|
||||
} else {
|
||||
// 批次管理产品:切 Batch,恢复批号自增(onMaterialSelected→checkHistoryAndSetMode 已按历史生成)
|
||||
entryMode.value = 'batch'
|
||||
modeLocked.value = false
|
||||
// 批号兜底:无历史/历史为 SN 时确保有默认批号,避免阻断校验
|
||||
if (!form.batch_number) form.batch_number = '000001'
|
||||
// 16 位身份证回填序列号字段(Batch 下该字段禁用,随提交载荷供 Webhook 精准通知 Track)
|
||||
form.serial_number = track.serial_number || ''
|
||||
}
|
||||
ElMessage.success('扫码入库信息已自动填充,请核对后补充库位/数量等')
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user