feat: 完成客户第12条需求+多系统改造
1. 新增预警表添加工单号字段,支持按工单号检索预警 2. 添加工单过滤在制品/绩效报表/预警中心查询 3. 补全WMS台账字段口径与权限配置 4. 修复备料单与数量不符处理流程 5. 新增配送进度/库位联动/自动出库功能 6. 修复AGV配送状态更新逻辑 7. 优化退料与库存管理细节
This commit is contained in:
@@ -102,7 +102,7 @@ export const helpBom = {
|
||||
export const helpMaterial = {
|
||||
title: '备料单(按日排产自动算料)',
|
||||
overview:
|
||||
'备料单 = 仓库备料的依据:某天要生产的所有工单,各需要哪些物料、各要多少。\n\n操作方式:① 先到「日排产」排好某天的计划数量;② 回到本页选该「日期」;③ 点「按日排产生成备料」,系统按各产品物料清单自动计算(计划数量 × 单台用量 × (1+损耗率))并生成备料单明细;④ 仓库据此备料出库,由 AGV 配送到各工位。\n\n数据链路:日排产 → 本页按日期自动算料生成备料单 → 仓库出库 → AGV 配送。',
|
||||
'备料单 = 仓库备料的依据:某天要生产的所有工单,各需要哪些物料、各要多少。\n\n操作方式:① 先到「日排产」排好某天的计划数量;② 回到本页选该「日期」;③ 点「按日排产生成备料」,系统按各产品物料清单自动计算(计划数量 × 单台用量 × (1+损耗率))并生成备料单明细;④ 生成的同时系统按 FIFO 从 WMS 合格库存自动出库(平时无需人工领料),出库达标的备料单转为「已备料」,由 AGV 配送到各工位。\n\n库存不足怎么办:已出的部分照常记账,差额保持「待备料」并触发「备料未齐套」预警;补货后点「一键自动出库」即可补出(不会超领,重复执行安全)。\n\n超领规则:实际用量超出物料清单需求(损耗/报废/返修)时,系统不硬卡——WMS 出库时填写超领原因即放行并留痕,可统计、可预警;不填原因仍会被拦截。\n\n来源说明:「排产备料」= 按日排产自动生成;「工位补料」= 工位叫料/数量不符补发生成,仓库应优先发补料单。\n\n数据链路:日排产 → 本页按日期自动算料生成备料单 → 自动出库(WMS 扣账)→ AGV 配送 → 工位接料。',
|
||||
sections: [
|
||||
{
|
||||
title: '生成备料',
|
||||
@@ -111,11 +111,50 @@ export const helpMaterial = {
|
||||
{ name: '日期', source: '手动选择。', purpose: '按哪个排产日期生成备料', fill: '先选择排产日期,再点「按日排产生成备料」' }
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '自动出库',
|
||||
overview: '生成备料单时自动执行;也可在库存补齐后按排产日/工单一键补出。规则:结构件按批次号升序(FIFO)逐批出库,电气件按可用 SN 逐件出库,仅取 WMS「合格」在库库存;超出物料清单需求的领用必须填写超领原因(损耗/报废/返修),自动出库不擅自超领,超领部分会留在「未出齐」清单里等人工处理。',
|
||||
fields: [
|
||||
{ name: '一键自动出库', source: '人工在本页操作(生成时已自动执行一次)。', purpose: '把当前排产日/工单下未出齐的备料单补齐', fill: '选好日期或工单号后点「一键自动出库」,结果会列出仍未出齐的明细' }
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '物料去向对账',
|
||||
overview:
|
||||
'点「物料去向对账」查看工单物料的完整去向(只读汇总,不新增账本):需求总量、已发出(仓库已出库)、已退回、已消耗(报工核销)、在途(已发出−已接料)、工位余(已接料−已消耗−已退回)、待发缺口。可展开行看接料明细(每张备料单的实收与确认人),并可导出 CSV。\n\n对账状态只标三类硬异常,其余一律「正常」:① 超领 = 净领用(已发出−已退回)超过需求,超领原因在 WMS「出库管理」留痕可查;② 完结剩料 = 台账已领料完结但工位仍压料(没耗也没退),请催报工或发起退料;③ 在途等待 = 已发出未接料(含已送达未扫码),请看 WMS 出库单是否已送达或催工位扫码。生产中的待发缺口属正常状态,不标色。\n\n消耗明细与出库明细不跨系统重复展示:消耗按工序合计的留痕在 WMS 操作日志按工单号查询;出库明细与超领原因在 WMS「出库管理」按工单号查询。',
|
||||
fields: [
|
||||
{ name: '物料去向对账', source: 'WMS 台账 + 本系统已接料量实时合成,前端现算异常。', purpose: '一眼看清料到哪一步了、账对不对', fill: '按当前筛选条件查询,弹窗展示;行可展开看接料明细,右下角可导出 CSV' }
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '查询字段',
|
||||
fields: [
|
||||
{ name: '工单号', source: '手动输入。筛选条件。', purpose: '只查看指定工单的备料', fill: '可空,空=看全部工单' },
|
||||
{ name: '状态', source: '下拉。待备料/已确认。', purpose: '按备料进度筛选', fill: '可空' }
|
||||
{ name: '来源', source: '系统标记。排产备料=日排产自动生成;工位补料=工位叫料/差异补发。', purpose: '区分正常备料与补料,补料优先发', fill: '可空=全部' },
|
||||
{ name: '状态', source: '下拉。待备料 / 已备料(已出库) / 配送中 / 已接料完结。', purpose: '按备料进度筛选', fill: '可空' }
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
export const helpQtyReport = {
|
||||
title: '数量不符处理(差异闭环)',
|
||||
overview:
|
||||
'工位接料时发现「实收 ≠ 应发」,操作工在工位终端上报后,差异记录进入本页等待处理——这是差异闭环的唯一处理入口。\n\n处理方式三选一:\n· 补发:系统生成一张「工位补料」备料单(来源=工位补料),走既有自动出库链路补齐差额,补发量计入工单消耗;\n· 退库:系统生成 WMS 退库单(多发/错发的料退回仓库),仓库确认收货后库存加回、台账缺口自动回补;\n· 调整:双方确认差异、填写说明后直接关闭(不补不退)。\n\n处理完成后差异置为已处理并记录处理单据号,关联预警可在「预警中心」看到同一件事的提醒。补发/退库的单据流转状态请到「备料单」或 WMS「退库单」页查看。',
|
||||
sections: [
|
||||
{
|
||||
title: '查询字段',
|
||||
fields: [
|
||||
{ name: '状态', source: '系统维护。待处理/已处理。', purpose: '只看待处理的差异', fill: '默认待处理' },
|
||||
{ name: '工位 / 工单号 / 图号', source: '工位终端上报时写入。', purpose: '定位差异来源', fill: '可空=全部,不区分大小写' }
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '处理操作',
|
||||
fields: [
|
||||
{ name: '补发', source: '人工在本页操作。', purpose: '少发时补齐差额(生成工位补料单)', fill: '点「补发」→ 确认' },
|
||||
{ name: '退库', source: '人工在本页操作。', purpose: '多发/错发时退回仓库(生成退库单)', fill: '点「退库」→ 确认' },
|
||||
{ name: '调整', source: '人工在本页操作(需填处理说明)。', purpose: '少量差异双方确认后关闭', fill: '点「调整」→ 填说明 → 确认' }
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -203,7 +242,8 @@ export const helpTrace = {
|
||||
overview:
|
||||
'输入工件 SN,查它的完整履历:进线/完工时间、各工位时间线、步骤考核数据(扭矩/角度)、拧紧记录、以及它用了哪些批次/电气件。\n\n数据来源:全部由前端各环节自动写入(扫码报工、拧紧采集、产线设备下发、工位完成),本页只读查询。',
|
||||
fields: [
|
||||
{ name: '工件SN', source: '扫码枪/手输。来自工件条码。', purpose: '要追溯的工件唯一序列号', fill: '扫 SN 或手动输入后点查询' }
|
||||
{ name: '工件SN', source: '扫码枪/手输。来自工件条码。', purpose: '要追溯的工件唯一序列号', fill: '扫 SN 或手动输入后点查询' },
|
||||
{ name: '工单号', source: '手动输入。筛选条件。', purpose: '按工单号列出该工单下全部工件,再点行内「追溯」查看单个工件履历', fill: '可空;支持模糊匹配,回车即查' }
|
||||
]
|
||||
}
|
||||
|
||||
@@ -310,6 +350,7 @@ export const helpPerformance = {
|
||||
fields: [
|
||||
{ name: '操作人', source: '筛选条件。来自报工实绩的 operator 字段(工位终端登录人)。', purpose: '只看某个工人的工作量', fill: '输入姓名/账号,可空=全部' },
|
||||
{ name: '工位', source: '下拉选择(工位数以数据库为准)。', purpose: '只看某个工位的报工情况', fill: '可空=全部工位' },
|
||||
{ name: '工单号', source: '手动输入。筛选条件,取自报工实绩所属工单。', purpose: '只看某个工单的作业量与效率', fill: '可空=全部工单;支持模糊匹配,导出同样生效' },
|
||||
{ name: '日期范围', source: '筛选条件。来自报工实绩的产生时间,默认近 90 天。', purpose: '按时间段统计', fill: '选择起止日期;导出时同一范围' },
|
||||
{ name: '完成数', source: '自动汇总。该 操作人×日期×工位 的报工次数。', purpose: '工作量核心指标', fill: '只读' },
|
||||
{ name: '合格数/不合格数', source: '自动汇总。按报工实绩 result 字段(合格/不合格)分类计数。', purpose: '质量指标,OK+NG=完成数', fill: '只读' },
|
||||
@@ -428,6 +469,7 @@ export const helpWip = {
|
||||
overview:
|
||||
'在制品 = 已进线但尚未完工的工件(状态 已上线/在制/返修),跨天继续停留在此列表中。\n\n数据来源:MES 工件实时状态(GET /workpieces/in-process)。当前工位支持 0=上线位(虚拟)、1~12=物理工位、13=下线位(虚拟),工位数以数据库为准。\n\n与日排产的关系:已进线未完工的工件跨天继续,日排产仅排「未开工数量」,不会重复排产。停留时长自进线起算,便于发现滞留件。',
|
||||
fields: [
|
||||
{ name: '工单号', source: '手动输入。筛选条件。', purpose: '只看某个工单的在制品', fill: '可空=全部;支持模糊匹配,回车即查' },
|
||||
{ name: '当前工位', source: '按工件状态与工位组合推算。', purpose: '工件此刻停在哪一工位', fill: '只读,可筛选' },
|
||||
{ name: '状态', source: '系统维护。', purpose: '已上线/在制/返修', fill: '只读,可筛选' },
|
||||
{ name: '进度', source: '已完成工序数 / 工位组合总工序数。', purpose: '看该件走到第几步', fill: '只读' },
|
||||
@@ -442,6 +484,7 @@ export const helpAlertCenter = {
|
||||
fields: [
|
||||
{ name: '状态', source: '系统维护(未读/已读)。', purpose: '区分待处理与已处理预警', fill: '筛选项单选:全部/未读/已读' },
|
||||
{ name: '预警类型', source: '内置触发源自动写入。', purpose: '只关注某一类异常', fill: '下拉选择八类之一,留空=全部' },
|
||||
{ name: '工单号', source: '触发预警时自动关联(如拧紧不合格按其 SN 反查所属工单)。', purpose: '按工单号排查该工单相关的所有预警', fill: '可空=全部;支持模糊匹配' },
|
||||
{ name: '开始时间 / 结束时间', source: '系统记录触发时刻。', purpose: '按时间范围缩小排查范围', fill: '开始时间默认当天;结束时间留空=不限' },
|
||||
{ name: '类型', source: '内置触发源自动写入。', purpose: '区分八类预警(含应急呼叫)', fill: '只读' },
|
||||
{ name: '标题 / 内容', source: '触发时系统自动生成。', purpose: '说明预警的具体对象与原因', fill: '只读' },
|
||||
@@ -466,7 +509,7 @@ export const helpAttachment = {
|
||||
{ name: '大小', source: '系统统计上传达字节数。', purpose: '评估占用空间', fill: '只读' },
|
||||
{ name: '状态', source: '系统维护(有效/已归档/已删除)。', purpose: '区分当前可用的与已归档/已删除的附件', fill: '只读' },
|
||||
{ name: '预览 / 下载', source: '预览走免鉴权直链(PDF/图片浏览器内联打开);下载走鉴权路由并带回中文文件名。', purpose: '查看或另存附件', fill: '点击对应按钮' },
|
||||
{ name: '删除', source: '人工在本页操作(逻辑删除,需二次确认)。', purpose: '移除无效附件(保留可追溯索引)', fill: '点「删除」并确认' },
|
||||
{ name: '归档清理', source: '人工在本页操作(先预览数量再确认执行)。', purpose: '把早于本地保留年数的附件移到外部备份目录并标记已归档,释放磁盘', fill: '点「归档清理」→确认' }
|
||||
{ name: '删除', source: '行末按钮(权限 sys.attachment:manage,需二次确认)。', purpose: '逻辑删除无效附件(保留可追溯索引)', fill: '点「删除」并确认;无权限时该按钮不显示' },
|
||||
{ name: '归档清理', source: '按钮(权限 sys.attachment:manage;先预览数量再确认执行)。', purpose: '把早于本地保留年数的附件移到外部备份目录并标记已归档,释放磁盘', fill: '点「归档清理」→确认;无权限时该按钮不显示' }
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user