Files
bj_power/bj_power_mes/frontend/src/help.js
T
SunYF 4a5e2d7bac feat: 完成多模块迭代更新
- 新增过程巡检按步骤上报、数量不符上报、工位退料功能
- 增加工单工程编号三级归属字段
- 新增物料安全库存与缺货预警
- 新增附件管理、退库单管理模块
- 优化生产看板展示逻辑与前端页面文案
- 清理冗余的工艺路线相关代码与备份文件
2026-09-15 16:37:39 +08:00

380 lines
40 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// MES 管理后台 页面级操作说明:整体流程 + 各字段 数据来源/用途/怎么填
// 由 components/PageHelp.vue 在左下角 "?" 按钮弹出展示。
// 说明:这里的"数据来源"特指该字段的数据由谁产生、从哪个系统/页面来,帮助跑通真实流程。
export const helpProductType = {
title: '产品型号(档案维护)',
overview:
'产品型号 = 企业要生产哪些产品的分类档案,是整条产线的源头基础数据。\n\n主数据链条:产品型号 → 工单(选产品型号+物料清单) → 物料清单(给该产品编号配料) → 日排产 → 备料单 → 库房出库 → 产线生产 → 完工成品自动回流 WMS 入库。\n\n关系说明(几对几):\n· 产品型号 ↔ 工单:1 对 N。一个产品型号可以建多个工单(同一型号今天做一批、明天做一批,工单号不同、产品编号相同)。\n· 产品型号 ↔ 物料清单:1 对多(选用制)。同一型号可并存多份物料清单(不同厂家供货/含半成品结构),用「物料清单名称」区分,工单建单时选定一份,备料/装机都按工单锁定的那份算。\n· 产品型号 ↔ 备料单:间接。备料单由「日排产 × 工单锁定的物料清单」算出,与产品型号无直接约束。\n· 强约束:工单/物料清单都挂在产品编号下,产品型号编码变了,下游关联会断,建议建好后不要改。\n· 与 WMS 的关系:两套系统解耦。产品/物料编码主数据以 WMS 为单一来源,MES 实时拉取(WMS 不可达时允许手填、仅提示不强校验);成品完工后由系统自动生成 SN 回流 WMS 入库,无需人工对账。',
fields: [
{ name: '名称', source: '手工填写。用户自定义,无上游来源。', purpose: '产品型号的中文名,用于识别与下拉展示', fill: '如:智能电表、断路器、配电柜' },
{
name: '编码',
source: '系统自动生成 + 可手动修改。新建时会自动带出(格式 PROD-YYYYMMDD-序号),你可直接使用或改为自定义编码;编辑时保留已存值。一个产品编号可对应多个工单(同一型号今天做一批、明天做一批,工单号不同,产品编号相同)。',
purpose: '产品唯一编码。它是 MES 内部识别该产品的标识,决定该产品的物料清单内容,也是工单、备料、拧紧、追溯的挂靠键。',
fill: '建议用有意义的编码,如 METER-01。要点:①编码主数据以 WMS(库房) 为单一来源,本系统实时从 WMS 拉取物料/产品档案;WMS 不可达时允许手填、仅提示不强校验;②成品完工后系统自动生成 SN 并回流 WMS 入库,无需人工对账;③如产品编号就是"产品型号",则直接沿用该类型编码即可;④建好后不要随意改,否则下游工单/追溯的关联会断。'
},
{ name: '类别', source: '手工填写。可选,无上游来源。', purpose: '产品所属大类,便于分类统计', fill: '如:计量表 / 开关柜;可空' },
{ name: '启用', source: '开关选择。默认开启。', purpose: '启用后才允许在新建工单/备料的下拉里被选到', fill: '默认开启;暂时停产的可关闭(不删除,保留档案)' },
{ name: '备注', source: '手工填写。可选。', purpose: '补充说明', fill: '可不填' }
]
}
export const helpWorkOrder = {
title: '工单管理(新建 / 编辑 / 删除工单)',
overview:
'工单 = 一个"合同/生产批次"的唯一载体,是生产执行和仓库出库挂靠的核心对象。\n\n全流程:先有产品型号 → 建工单(选产品型号、选定物料清单、定数量、勾选工位组合) → 进"物料清单"给该产品配料 → 到"日排产"排哪天产多少 → 仓库按排产备料出库 → 产线装配/拧紧/报工 → 完工(成品 SN 系统自动生成,并自动回流 WMS 入库为"成品"品类)。\n工单号会贯穿 备料单、拧紧查询、手动报工、工件追溯、操作日志 全链路。\n\n工程编号:一个合同对应一个工程编号,一个工程编号下对应各个产品的产品序号——即「合同号 → 工程编号 → 产品序号」三级归属,用于按合同/工程项目归集与追溯。\n\n查询:支持按 工单号 / 产品编号 / 产品名称(模糊) / 合同号 / 工程编号 / 状态 组合筛选;删除:仅「已创建 / 待排产 / 已发布」且无排产、备料、生产数据的工单可删除(操作列「删除」),生产中或已完成的工单不可删除。',
sections: [
{
title: '工单基本信息',
fields: [
{ name: '工单号', source: '系统自动生成(WO+时间戳),可手工改。新建时自动带出。', purpose: '唯一标识一个工单,备料/出库/报工/追溯都挂在此号下', fill: '一般不用改;如改动须保证唯一' },
{ name: '产品型号', source: '下拉选择。数据来自"产品型号"页面已启用的记录。', purpose: '说明这批生产的是什么产品,并决定物料清单内容', fill: '先到"产品型号"页面建好记录再选择' },
{ name: '合同号', source: '手工填写。', purpose: '标记本工单所属的合同(一个合同对应一个工程编号)', fill: '如 HT-2026-001(可空)' },
{ name: '工程编号', source: '手工填写。', purpose: '标记本工单所属的工程编号(一个工程编号下挂多个产品序号)', fill: '如 GC-2026-001(可空)' },
{ name: '产品序号', source: '手工填写。', purpose: '本产品在该工程编号下的序号,用于区分同工程下的不同产品', fill: '如 01、02(可空)' },
{ name: '产品编号', source: '手工填写。通常与所选产品型号的编码一致。', purpose: '产品唯一编码,用于展示与追溯', fill: '如 METER-01,与产品型号编码对齐' },
{ name: '产品名称', source: '手工填写。通常与产品型号名称一致。', purpose: '产品中文名,用于展示', fill: '如 智能电表' },
{ name: '数量', source: '手工填写整数。', purpose: '本工单生产总数量(合同台数),决定需求量与排产上限', fill: '整数 ≥1,如 100' },
{ name: '工位组合', source: '勾选要经过的工位(工位数以数据库为准)。', purpose: '本工单要经过的工位集合,产线设备按此组合下发控制产线', fill: '勾选要经过的工位即可,系统自动按工位号顺序执行(传送带不回走);半成品再上线可只勾漏做的工位' },
{ name: '状态', source: '新建时选"已创建",后续由流程推进。', purpose: '工单生命周期:创建→发布→生产→完成', fill: '新建时选"已创建";也可在列表操作列点「状态」快捷流转(发布/开工/完工)' }
]
},
{
title: '行内"工位组合"维护',
overview: '对当前工单快速维护要经过的工位组合。\n可自由勾选、补工位(半成品再上线):如本应走第3/5工位却做成半成品,可在此只勾第2工位重上线完成闭环。',
fields: [
{ name: '工位组合', source: '勾选要经过的工位。', purpose: '本工单经过的工位集合,产线设备组合下发', fill: '勾选即可,按工位号顺序执行;全选=全部工位' }
]
}
]
}
export const helpDailyPlan = {
title: '日排产(生产计划)',
overview:
'日排产 = 安排"哪个工单、在哪天、生产多少",是备料和出库的触发依据。\n\n数据链路:工单(总数) → 日排产(按天拆分量,合计不得超过工单总数) → 仓库按日排产备料出库 → 产线按日生产。\n可以按 工单号 / 排产日期 两个维度查询,也可直接新增/编辑/删除排产。',
fields: [
{ name: '工单号', source: '下拉选择。来自"工单管理"已建的工单。', purpose: '该排产对应哪个生产工单', fill: '选择工单号;也可手动输入未列出的工单号' },
{ name: '排产日期', source: '日历选择。', purpose: '计划在哪一天生产', fill: '选具体日期,如 2026-08-29' },
{ name: '计划数量', source: '手工填写整数。', purpose: '这一天计划生产多少件', fill: '整数≥1;注意:该工单所有日排产的数量合计不能超过工单总数量' },
{ name: '送达接驳台', source: '排产时人工确认(可多选 DOCK01~20产线 / DOCK21库房)。', purpose: '该工单物料经 AGV 送到哪些接驳台(DOCK n↔工位n),备料单据此填 target_dock', fill: '默认推荐该工单上次使用的接驳台,可修改;至少选一个。AGV 按把这些料送到对应工位' },
{ name: '已完成', source: '系统自动累计。只读。', purpose: '该排产已实际完成多少件', fill: '无需填写' },
{ name: '状态', source: '系统维护。只读。', purpose: '排产执行状态(待排产/已确认)', fill: '无需填写' }
]
}
export const helpBom = {
title: '物料清单',
overview:
'物料清单 = 生产 1 台该产品需要哪些物料、各用多少。\n按「产品编号 + 物料清单名称」维护:同一产品编号可并存多份物料清单(选用制)——不同厂家供货、含半成品的结构差异,都用不同的物料清单名称区分(缺省叫「默认」,不用 V1/V2 版本号)。\n工单建单时选定其中一份,之后该工单的备料算料、装机绑定校验都锁定这份物料清单,不同厂家的料单互不串。\n\n与 WMS 的关系:本页(MES)只维护「产品由哪几种料、各用几个」;每种物料叫什么、规格、是电气件(SN)还是结构件(批次)、库存有多少,统一在 WMS(库房)的「物料档案」里维护,两套系统互相解耦、通过物料编码对齐。\n\n编码对应规则:本页的「物料编码」必须与 WMS 物料档案里的「编码」完全一致;「管理方式」也要对应(电气件=SN 逐件,结构件=批次)。编码对不上,WMS 将无法为对应工单备料/出库。\n\n保护规则:某份物料清单一旦被工单选用过,就不允许再从中移除物料(防止历史工单追溯断链);新建/改名的物料清单名称在本页「物料清单名称」下拉直接输入即可创建。\n\n数据链路:先建「产品型号」→ 到本页选产品编号 + 命名物料清单,逐条添加物料 → 建工单时选定物料清单 → 仓库才能为对应工单领料。',
fields: [
{ name: '物料清单名称', source: '下拉选择/输入(可搜索,输入新名即创建)。缺省「默认」。', purpose: '同一产品编号下多份物料清单的区分名,工单建单时按此选定', fill: '如「默认」「A厂料单」「含半成品」;同一型号下名称唯一' },
{ name: '产品编号', source: '下拉选择。来自「产品型号」里建的编码。', purpose: '要为哪个产品配置物料清单', fill: '在查询区或「添加物料」弹窗里选择产品编号' },
{ name: '物料编码', source: '手工填写。必须与 WMS(库房) 物料档案的编码一致。', purpose: '该物料在库房的全库唯一编码,两系统靠它关联', fill: '如 螺丝=GJ-LUOSI-M16;编码对不上 WMS 将无法备料' },
{ name: '物料名称', source: '手工填写。', purpose: '物料中文名,便于识别', fill: '如 十字螺丝、主控芯片' },
{ name: '规格', source: '手工填写。', purpose: '物料规格型号', fill: '如 M16×80 / SMT-48脚' },
{ name: '单位', source: '手工填写。', purpose: '计量单位,用于算量', fill: '个 / 件 / 套 / kg' },
{ name: '管理方式', source: '单选。按物料类型决定,与 WMS 一致。', purpose: '电气件=逐件按SN管理;结构件=按批次管理', fill: '电子件/电气件选"电气件 SN";螺丝等标准件选"结构件 批次"' },
{ name: '单台用量', source: '手工填写。', purpose: '生产 1 台产品用的该物料数量', fill: '如每台 8 颗螺丝 → 填 8' },
{ name: '损耗率%', source: '手工填写。', purpose: '考虑报废/损耗的加放比例', fill: '如 2% 填 20=不计算损耗' },
{ name: '需求量', source: '自动计算 = 数量×单台用量×(1+损耗率),可覆盖。', purpose: '该物料总需求,出库不能超它', fill: '一般自动算,不必改' }
]
}
export const helpMaterial = {
title: '备料单(按日排产自动算料)',
overview:
'备料单 = 仓库备料的依据:某天要生产的所有工单,各需要哪些物料、各要多少。\n\n操作方式:① 先到「日排产」排好某天的计划数量;② 回到本页选该「日期」;③ 点「按日排产生成备料」,系统按各产品物料清单自动计算(计划数量 × 单台用量 × (1+损耗率))并生成备料单明细;④ 仓库据此备料出库,由 AGV 配送到各工位。\n\n数据链路:日排产 → 本页按日期自动算料生成备料单 → 仓库出库 → AGV 配送。',
sections: [
{
title: '生成备料',
overview: '按所选日期,取当天所有排产工单,依据各自产品的物料清单自动汇总所需物料。',
fields: [
{ name: '日期', source: '手动选择。', purpose: '按哪个排产日期生成备料', fill: '先选择排产日期,再点「按日排产生成备料」' }
]
},
{
title: '查询字段',
fields: [
{ name: '工单号', source: '手动输入。筛选条件。', purpose: '只查看指定工单的备料', fill: '可空,空=看全部工单' },
{ name: '状态', source: '下拉。待备料/已确认。', purpose: '按备料进度筛选', fill: '可空' }
]
}
]
}
export const helpPlc = {
title: '工位组合下发(下发录入 / 下发记录)',
overview:
'这个菜单做什么用:把某工单/工件的「工位组合」写入产线设备(如 PLC 控制器),产线传送带据此只停靠勾选的工位,其余工位不加工。\n\n页面分两个页签:「下发录入」(默认打开)、「下发记录」(点击才加载,可按工单号/状态筛选)。\n\n操作流程:选工单号 → 下拉选出该工单已上线未完工的工件 SN(也可扫码/手输) → 系统按工件实际进度自动带出「当前工位」(只读) → 工位组合中 ≤ 当前工位的编号视为已完成,自动剔除且禁选 → 勾选剩余要走的工位 → 下发。\n\n为什么单独一个菜单:产线偶尔需要人工干预——比如本该走 3 号工位却做成了半成品,人工在此只勾剩余工位重上线,完成闭环。\n\n核心约束:系统遵循「上一条未收到完成信号,不下发下一条」,确保产线不串序。\n\n数据链路:工单(含工位组合) → 本页下发到产线设备 → 产线设备驱动传送带/工位 → 收到完成信号再下发下一条。',
fields: [
{ name: '工单号', source: '下拉选择/输入。来自工单。', purpose: '当前生产的工单,选中后带出该工单可下发的工件 SN', fill: '选择或输入工单号' },
{ name: '工件SN', source: '下拉选择(该工单已上线未完工的 SN,可搜索),也可扫码枪扫入手输。', purpose: '当前流经的工件唯一序列号', fill: '优先下拉选已上线 SN;扫码手输时须是已上线的工件才能带出当前工位' },
{ name: '当前工位', source: '自动带出(只读)。按所选工件的实际生产进度识别。', purpose: '从哪一站开始继续下发', fill: '无需填写;未带出说明工件未上线或 SN 有误' },
{ name: '工位组合', source: '勾选要经过的工位;≤当前工位的编号已禁选(视为完成)。', purpose: '该工件还要经过的工位,产线设备控制停靠', fill: '勾选剩余要走的工位即可,按工位号顺序执行' }
]
}
export const helpTorque = {
title: '拧紧数据(补录 / 记录查询)',
overview:
'接收丹尼科尔拧紧工具的采集结果(扭矩/角度/时间/结果/操作人),用于质量追溯。\n\n页面分两个页签:「拧紧补录」(默认打开) 补录设备漏传/手工修正的历史数据;「记录查询」(点击才加载) 按 SN / 工单号(均不区分大小写) 查询拧紧记录。\n\n实时采集不在本页:数据在工位终端/产线设备 报工时由拧紧枪自动同步到 MES;本页补录仅用于设备漏传或手工修正历史,补录记录操作人自动标记「(补录)」并写入操作日志。',
fields: [
{ name: '工单号 / SN', source: '补录必填,手工填写。', purpose: '补录记录挂靠的工单与工件', fill: '设备漏传时补填对应工单号与 SN' },
{ name: '工位', source: '手工填写。', purpose: '拧紧发生在哪道工位', fill: '如 5,可空' },
{ name: '螺丝号', source: '手工填写。', purpose: '同一工件多颗螺丝时区分第几颗', fill: '如 S1,可空' },
{ name: '扭矩(N·m) / 角度(°)', source: '正常由拧紧枪自动采集;补录时手工填写。', purpose: '实际拧紧扭矩与旋转角度,判定是否达标', fill: '按实际值填写' },
{ name: '结果', source: '单选 合格/不合格。', purpose: '拧紧判定结果', fill: '默认 OK' },
{ name: '补录原因', source: '手工填写,必填。', purpose: '说明为何补录,留痕审计', fill: '如:设备漏传 / 手工修正' },
{ name: '查询(SN / 工单号)', source: '「记录查询」页签筛选条件,不区分大小写。', purpose: '只看指定工件/工单的拧紧记录', fill: '可空=全部' }
]
}
export const helpScan = {
title: '手动报工(工位工序步骤完成上报)',
overview:
'页面分两个页签:「报工录入」(默认打开)、「报工记录」(点击才加载,分页)。\n\n录入流程:选择工位、扫入/输入工件 SN 后,系统自动载入该工位「启用」工艺流程的工序步骤(扭矩/角度/尺寸等采集项),逐参数录入提交;提交后写报工实绩 + 步骤数据,系统按考核标准自动判定 合格/不合格。\n\n装机绑定:若该产品在本工序配置了需绑定的装配物料(物料清单「装配工位」),会出现装机绑定区——电气件扫 SN、结构件扫/输批次号,逐项绑齐(已绑/需绑)后才允许提交报工;未配置物料则不校验。\n\n数据链路:工艺流程(工序步骤+考核标准) + 物料清单 装机配置 → 本页选工位扫 SN 自动载入 → 绑料+录参数 → 判 合格/不合格 → 工件追溯可见。',
fields: [
{ name: '工位', source: '下拉选择(工位数以数据库为准)。', purpose: '哪个工位在报工,选择后自动载入该工位的工序步骤', fill: '选择工位 1~12' },
{ name: '工件SN', source: '扫码枪扫描或手输。来自工件条码。', purpose: '工件的唯一序列号,报工对象', fill: '扫码枪扫入,与工位一起触发自动载入' },
{ name: '各步骤采集值', source: '手工填写 或 拧紧枪自动带出(视采集方式)。字段由【工艺流程】的工序步骤人为定义。', purpose: '收集该工位的扭矩/角度/尺寸等参数,按标准判定合格与否', fill: '逐条填采集值,未维护标准的步骤仅记录' },
{ name: '装机绑定(物料/已绑/需绑)', source: '来自物料清单的「装配工位」配置(按工单锁定的物料清单过滤)。', purpose: '该工件本工序应装哪些料;电气件按 SN、结构件按批次绑定,齐套后才允许报工', fill: '在绑定输入框扫码或录入后点「绑定」,绑齐后提交报工' },
{ name: '报工记录查询(SN / 工单号)', source: '「报工记录」页签筛选条件,分页查看。', purpose: '查历史报工实绩', fill: '可空=全部' }
]
}
export const helpStation = {
title: '关联工位(工位总览)',
overview:
'工位数以数据库为准(仅可修改名称,不增删工位)。本页是工位总览:查看每个工位当前绑定了哪个工艺流程,可修改工位名称。\n\n绑定关系由本页单独维护:在下拉中选择「启用」的工艺流程即绑定到该工位;一个工位只能有一个启用的工艺流程(先停用旧流程再绑新流程);流程停用后自动解绑。\n\n数据链路:关联工位页(选启用流程绑定) → 手动报工/工位终端按该流程的工序步骤采集 → 报工判定 合格/不合格。',
fields: [
{ name: '工位号', source: '系统固定(工位数以数据库为准),不可增删。', purpose: '产线物理工位编号', fill: '无需填写' },
{ name: '工位名称', source: '可编辑。默认如 装配工位1。', purpose: '工位的显示名称', fill: '如 一号装配工位' },
{ name: '绑定工艺流程', source: '自动来自本页:为工位选择「启用」的工艺流程即绑定。', purpose: '该工位执行的工艺流程(决定工序步骤/考核标准/PDF)', fill: '到本页为该工位选择启用流程;本页只读展示' }
]
}
export const helpTrace = {
title: '工件追溯',
overview:
'输入工件 SN,查它的完整履历:进线/完工时间、各工位时间线、步骤考核数据(扭矩/角度)、拧紧记录、以及它用了哪些批次/电气件。\n\n数据来源:全部由前端各环节自动写入(扫码报工、拧紧采集、产线设备下发、工位完成),本页只读查询。',
fields: [
{ name: '工件SN', source: '扫码枪/手输。来自工件条码。', purpose: '要追溯的工件唯一序列号', fill: '扫 SN 或手动输入后点查询' }
]
}
export const helpAccount = {
title: '账号管理',
overview:
'管理可登录 MES 的账号:新建、编辑、停用,并为其分配角色(角色决定菜单与按钮权限)。\n建议只给操作员分配其工位所需菜单权限。系统内置 admin 账号不可修改/删除。',
sections: [
{
title: '列表',
fields: [
{ name: '状态', source: '行内开关。', purpose: '停用后该账号无法登录', fill: '直接拨动开关;内置账号(admin)已锁定' },
{ name: '工位终端/允许工位', source: '账号设置。', purpose: '是否允许登录工位终端及各终端允许的工位号', fill: '未开通=不能登录工位终端;允许工位留空=全部' }
]
},
{
title: '新建 / 编辑',
fields: [
{ name: '用户名', source: '手工填写。', purpose: '登录账号,唯一;创建后不可改', fill: '如 operator1' },
{ name: '密码', source: '手工填写,保存时加密存储。', purpose: '登录密码', fill: '≥6位且不能纯数字;编辑时留空=不修改' },
{ name: '姓名', source: '手工填写。', purpose: '真实姓名,操作日志追溯用', fill: '如 张三' },
{ name: '角色', source: '下拉选择。来自"角色管理"页。', purpose: '决定该账号的菜单与功能权限', fill: '选择已建角色' },
{ name: '状态', source: '下拉选择。', purpose: '停用后无法登录', fill: '启用 / 停用' }
]
}
]
}
export const helpRole = {
title: '角色管理',
overview:
'角色决定账号能看哪些菜单(勾选菜单)与能用哪些功能(勾选其下按钮),勾选互不影响。\n内置角色:超级管理员(全部权限)、生产操作员、质检员——不可删除;超级管理员权限不可编辑。',
sections: [
{
title: '新增 / 编辑权限',
fields: [
{ name: '角色名称', source: '手工填写。', purpose: '角色中文名', fill: '如 库房管理员' },
{ name: '角色编码', source: '手工填写。', purpose: '角色唯一编码,创建后不可改', fill: '如 intro-manager' },
{ name: '权限树', source: '勾选。来自系统预置的权限菜单与按钮。', purpose: '决定该角色可见菜单与可用按钮', fill: '勾选菜单=可见;勾选按钮=可用(两者独立)' }
]
}
]
}
export const helpEventLog = {
title: '操作日志',
overview:
'审计查看关键业务操作(工单/日排产/物料清单/备料/下发/拧紧/扫码报工/完工等),由系统自动写入,本页只读。\n支持按业务域类型、工单号、操作人、时间范围筛选,分页查看。',
sections: [
{
title: '查询区',
fields: [
{ name: '事件类型', source: '下拉。', purpose: '按业务域过滤(工单/日排产/报工…)', fill: '选一族或留空=全部' },
{ name: '工单号', source: '输入。', purpose: '只看某工单的全部操作', fill: '可空=全部' },
{ name: '操作人', source: '输入。', purpose: '只看某人的操作', fill: '可空=全部' },
{ name: '时间范围', source: '日历选择。', purpose: '限定发生时间区间', fill: '不选=全部时间' }
]
}
]
}
export const helpProcessFlow = {
title: '工艺流程(作业指导,含工序步骤)',
overview:
'页面分「流程列表」「流程配置」两个页签:列表查看全部流程并做启用/停用/删除;配置页维护流程基本信息与工序步骤(新增与编辑共用,不再弹窗套弹窗)。\n\n工艺流程 = 一份「菜谱」:只描述某个产品该怎么装配(步骤名、采集方式、考核标准),不绑定具体工位。\n\n概念统一说明:\n· 工位:产线上的物理工位(工位数以数据库为准,仅改名称不增删),相当于「灶台」。\n· 工艺流程:一份作业指导,可有多版本(如 总装流程_2026版);其启用状态决定是否参与生产。\n· 工序步骤:流程内包含多个工序步骤(如:装配完成、拧紧扭矩、测试)。\n\n绑定关系在「关联工位」页维护:在该页为某工位选择启用的工艺流程即绑定;一个工位只能有一个启用的流程。手动报工/工位终端按所选工位的绑定流程载入工序步骤。\n\n数据链路:本页维护流程+工序步骤+考核标准 → 关联工位页绑定 → 手动报工/工位终端按工序步骤采集 → 报工按考核标准自动判 合格/不合格 → 工件追溯/绩效报表可见。',
sections: [
{
title: '流程基本信息',
fields: [
{ name: '流程名称', source: '手工填写。人为定义。', purpose: '流程版本名,用于区分同一工位的不同版本', fill: '如 总装流程 / 总装流程_2026版' },
{ name: '状态', source: '下拉选择 启用/停用。也可在列表操作列点「启用/停用」快捷切换。', purpose: '启用=该流程可被「关联工位」页绑定到工位并参与生产;停用=不可绑定、不参与生产', fill: '启用后可在「关联工位」页绑定到工位;停用后不可绑定' },
{ name: '工艺图纸(PDF)', source: '本页上传。文件由 MES 服务器保存。', purpose: '该工位的作业指导图,工位终端打开预览', fill: '选择 PDF 上传,成功后显示文件名可预览' },
{ name: '工序步骤', source: '本页维护(步骤名/采集方式/是否拧紧/考核标准)。', purpose: '手动报工/工位终端报工时按此动态渲染参数输入', fill: '一个流程可含多个工序步骤,按序号顺序执行' }
]
},
{
title: '采集方式(每个工序步骤三选一)',
overview: '决定该步骤的数值从哪里来。',
fields: [
{ name: '拧紧枪自动', source: '拧紧枪设备自动回传。', purpose: '扭矩/角度等由拧紧枪采集,工人无需手输', fill: '选「拧紧枪自动」,并在「是否拧紧」打开开关' },
{ name: '手填', source: '工人在工位终端/报工页手动输入数值。', purpose: '无法自动采集的参数(如尺寸、电压)由人工录入', fill: '选「手填」' },
{ name: '仅记录', source: '无数据,只做操作步骤确认(如"装配完成")。', purpose: '记录该步骤已执行,不采集数值、不判定', fill: '选「仅记录」' }
]
},
{
title: '考核标准(每个步骤可设多条)',
overview: '用于报工时自动判定该步骤「合格/不合格」。在哪用:工位终端/手动报工提交该步骤数值时,系统按此标准判 合格/不合格,结果进入工件追溯与流程卡。如何收集:数值来自上面的采集方式(拧紧枪自动或手填)。',
fields: [
{ name: '指标名', source: '人为定义。', purpose: '标准叫什么(如 扭矩/角度/尺寸)', fill: '如 扭矩' },
{ name: '单位', source: '人为填写。', purpose: '数值单位', fill: '如 N·m、°、mm' },
{ name: '逻辑', source: '下拉选择 ≥/≤/>/</区间/=。', purpose: '判定关系', fill: '区间需填上下限;其余填目标值' },
{ name: '目标值/下限/上限', source: '人为填写。', purpose: '合格范围', fill: '如 扭矩区间 [35,45] N·m' }
]
}
]
}
export const helpPerformance = {
title: '绩效报表(工人工作量统计)',
overview:
'按 操作人 × 日期 × 工位 汇总每个工人的完成/合格/NG 数量,用于工作量与绩效统计。\n\n页面提供「按人 / 按工位 / 明细」三个页签:按人看每人汇总,按工位看每工位汇总,明细看逐条记录(含工序名);三个视图各自独立分页,均受上方筛选条件约束。\n\n筛选与导出:支持 操作人 / 工位 / 日期范围 组合筛选(默认近 90 天);顶部汇总卡随查询刷新;「导出 xlsx」一次导出三个 sheet(按人/按工位/明细),导出遵循统一时间硬规则(时间范围为空默认近 3 个月、只传一端报错、跨度超 1 年报错)。\n\n数据来源:全部由工位终端/手动报工的「工位完成上报」自动写入报工实绩(workpiece_process),本页只读统计,不手工录入。',
fields: [
{ name: '操作人', source: '筛选条件。来自报工实绩的 operator 字段(工位终端登录人)。', purpose: '只看某个工人的工作量', fill: '输入姓名/账号,可空=全部' },
{ name: '工位', source: '下拉选择(工位数以数据库为准)。', purpose: '只看某个工位的报工情况', fill: '可空=全部工位' },
{ name: '日期范围', source: '筛选条件。来自报工实绩的产生时间,默认近 90 天。', purpose: '按时间段统计', fill: '选择起止日期;导出时同一范围' },
{ name: '完成数', source: '自动汇总。该 操作人×日期×工位 的报工次数。', purpose: '工作量核心指标', fill: '只读' },
{ name: '合格数/不合格数', source: '自动汇总。按报工实绩 result 字段(合格/不合格)分类计数。', purpose: '质量指标,OK+NG=完成数', fill: '只读' },
{ name: '合格率', source: '自动计算 = 合格数/完成数。', purpose: '质量表现', fill: '只读' }
]
}
export const helpInspect = {
title: '巡检终端(PAD / PC 通用)',
overview:
'检验员/线长用手持平板(PAD)或电脑浏览器做巡检与检验确认,PC 与 PAD 访问同一地址、前端自适应。\n\n数据来源:全部记录提交后写入 MES 巡检记录表(inspection_record),用于追溯和流程卡输出,也可在看板触发报警。\n\n权限:菜单「巡检终端」+ 各功能独立按钮权限码(sys.inspect:checkin/point/process/done/alarm/view),由【角色权限管理】统一分配。操作工通常无此菜单。',
sections: [
{
title: '打开方式(PAD / 手机独立访问)',
overview:
'电脑端:左侧菜单「巡检终端」打开。\n\nPAD / 手机独立打开:在浏览器地址栏输入\n' +
window.location.origin + '/inspect\n' +
'(如上所示即本机当前访问地址,例如 http://192.168.1.100:8888/inspect)。\n\n' +
'首次打开会跳转登录页,登录一次后(浏览器记住登录态)再次打开将直接进入巡检页;PAD 与电脑需在同一局域网。\n\n' +
'功能按权限显示:无「巡检终端」菜单或按钮权限的账号无法使用。',
fields: []
},
{
title: '开工签到',
fields: [
{ name: '班次', source: '手动选择(早/中/晚)。', purpose: '记录开工班次', fill: '选早/中/晚' },
{ name: '拍照', source: '调用浏览器相册/摄像头(input file capture)。照片上传到 MES 服务器。', purpose: '留证现场开工状态', fill: '点击拍照并上传' },
{ name: '提交', source: '提交时自动记录:时间、拍照人(登录账号)、工位号。', purpose: '形成签到记录,供追溯', fill: '选班次+拍照后提交' }
]
},
{
title: '工位点检',
fields: [
{ name: '工位号', source: '手动选择(工位数以数据库为准)。', purpose: '点检哪个工位', fill: '选 1~12' },
{ name: '点检项', source: '手动多选(设备运行正常/安全防护到位/工具齐全/工位清洁)。', purpose: '点检的项目清单', fill: '勾选已完成的项目' },
{ name: '拍照', source: '浏览器相册/摄像头上传。', purpose: '留证', fill: '拍照上传' }
]
},
{
title: '过程巡检(按步骤逐条提交)',
overview:
'选择工单后,系统自动拉出该工单「工位组合」里每个工位绑定的工艺步骤,逐步骤填报巡检结果——与工位终端的执行顺序一致,确保每一道工序都有检验留痕。\n\n全部步骤提交完成后,点「一键生成《工序间检验记录》」,系统把该工单的 PROCESS 类巡检按步骤汇总成一张可核对/打印的记录表。',
fields: [
{ name: '工单号', source: '手动选择/搜索。来自【工单管理】已建工单。', purpose: '对哪个工单巡检', fill: '搜索选择工单号' },
{ name: '步骤列表', source: '自动带出:该工单工位组合 → 各工位 station.flow_id 指向的工艺流程步骤。', purpose: '逐步骤填报,避免漏检', fill: '只读,系统自动展开' },
{ name: '实测值', source: '手动填写该步骤的实测数据。', purpose: '留存检验实测量', fill: '按步骤要求填写' },
{ name: '合格/不合格', source: '手动选择。', purpose: '该步骤的巡检结论', fill: '选择合格或不合格' },
{ name: '签字', source: '输入检验人姓名。', purpose: '检验人签字留证', fill: '输入签字内容' },
{ name: '生成《工序间检验记录》', source: '一键汇总。', purpose: '输出该工单的工序间检验汇总记录', fill: '全部步骤提交后点击' }
]
},
{
title: '完工确认',
fields: [
{ name: '工单号', source: '手动选择/搜索。来自【工单管理】。', purpose: '确认哪个工单全部工位完成', fill: '搜索选择工单号' },
{ name: '确认全部工位完成', source: '手动勾选。', purpose: '声明该工单全部工位已完成', fill: '勾选确认' },
{ name: '签字', source: '手写/输入。', purpose: '确认人签字留证', fill: '输入签字内容' }
]
},
{
title: '异常上报',
fields: [
{ name: '工位号', source: '手动选择(工位数以数据库为准)。', purpose: '异常发生在哪个工位', fill: '选 1~12' },
{ name: '异常类型', source: '手动多选(设备故障/物料异常/工艺偏差/安全隐患/其他)。', purpose: '异常分类', fill: '勾选异常类型' },
{ name: '拍照', source: '浏览器相册/摄像头上传。', purpose: '留证异常现场', fill: '拍照上传' },
{ name: '文字描述', source: '手动填写。', purpose: '异常详细说明', fill: '描述异常情况' }
]
},
{
title: '记录查看',
fields: [
{ name: '类型/操作人/日期', source: '筛选条件。来自巡检记录表各字段。', purpose: '过滤历史巡检记录', fill: '可空=全部' },
{ name: '图片', source: '提交时上传的照片,MES 服务器存储。', purpose: '点击缩略图放大查看留证照片', fill: '只读' }
]
}
]
}
export const helpProcessCard = {
title: '生产流程卡(产品型号级全景流程卡)',
overview:
'这个菜单做什么用:按**产品型号**全方位展示该型号的完整制造定义,用于工艺交底、审核与客户查阅;与「工件追溯」页里按单个 SN 打印的流程卡互补——后者记的是“这一件实际怎么做的”,本页讲的是“这个型号应该怎么做”。\n\n内容构成(页面按页签展示,打印时全部输出):①工位流程总览——工位组合、每工位绑定的工艺流程、流程状态、步骤数、检验点数、拧紧步骤数、工艺图纸、该型号的历史作业时间;②工艺流程与步骤——逐工位列出每条步骤的采集方式(手工录入/自动采集/无需采集)、是否需检测确认、是否拧紧采集、考核标准(含上下限);③物料清单——该型号的 BOM 明细,按 BOM 名称分组,含物料编码/名称/规格/单位/管理方式/装配工位/单台用量/损耗率/需求总量;④检验卡项——把所有「需要检测确认」的步骤汇总成检验项清单,含判定标准。\n\n工位组合从哪来:优先取该产品编号最近一张工单的「工位组合」;若该型号还没有工单,则按全产线工位顺序(升序)展示,页面顶部会标注来源。\n\n打印/导出:点「打印 / 导出 PDF」,系统会在新窗口打开排版好的 A4 卡片版式,用浏览器打印即可(选择“另存为 PDF”即导出电子档)。',
fields: [
{ name: '产品型号', source: '下拉选择,来自「产品型号」页。', purpose: '要查看哪个型号的全景流程', fill: '选定后自动带出产品编号' },
{ name: '产品编号', source: '自动带出(也可手工填写,直接按编号生成)。', purpose: '匹配工单、物料清单的关键字', fill: '一般无需手填' },
{ name: '工位组合', source: '只读,自动带出。', purpose: '该型号要走哪些工位、按什么顺序', fill: '-' },
{ name: '工位流程总览-工艺图纸', source: '来自「工艺流程」页上传的图纸文件名。', purpose: '该工位是否有可查阅的工艺图', fill: '-' },
{ name: '工位流程总览-作业时间', source: '按本型号历史报工实绩聚合的首末作业时间。', purpose: '了解各环节实际耗时', fill: '无实绩时显示“暂无实绩”' },
{ name: '检验卡项', source: '自动汇总所有「检测确认」步骤。', purpose: '作为检验清单使用', fill: '-' }
]
}
export const helpQtyReport = {
title: '数量不符上报',
overview:
'这个菜单做什么用:记录「工位收料时实收数量 ≠ 备料单应发数量」的差异,形成闭环——上报→落预警→生产/仓库核实处理。\n\n上报入口有两处:①工位终端「巡检/异常」面板——操作工现场发现数量不符时直接上报;②本页(MES 电脑端)——由生产调度/线长代录或复核。\n\n差异怎么算:系统自动按「实收 − 应发」计算差异(正数=多收、负数=少收);上报后同步落一条预警中心消息(type=qty_diff),未读状态可提醒相关人员。\n\n处理流程:仓库/生产核实后在预警中心标记已读,本页记录保持存档,供后续对账与追溯。',
fields: [
{ name: '工位', source: '工位终端上报自动带入;本页手录时手动选择(工位数以数据库为准)。', purpose: '差异发生在哪个工位', fill: '选工位号' },
{ name: '工单号', source: '工位终端上报自动带入;来自【工单管理】。', purpose: '定位是哪张工单的物料', fill: '搜索/输入工单号' },
{ name: '产品序列号', source: '工位终端上报自动带入(当前作业件)。', purpose: '追溯到具体那一件', fill: '扫描/输入 SN' },
{ name: '物料编码/名称', source: '工位终端上报自动带入(当前收料物料)。', purpose: '是哪一种物料数量不符', fill: '选择/输入物料' },
{ name: '应发数量', source: '手动/自动带入备料单应发数。', purpose: '作为差异计算基准', fill: '填应发数' },
{ name: '实收数量', source: '手动填写(现场实际清点结果)。', purpose: '作为差异计算基准', fill: '填实收数' },
{ name: '差异', source: '系统自动计算(实收−应发)。', purpose: '一眼看出多收/少收', fill: '只读' },
{ name: '原因', source: '手动填写。', purpose: '说明数量不符的原因(如供应商短装/破损/漏发)', fill: '描述原因' },
{ name: '状态', source: '系统维护(待处理/已处理)。', purpose: '跟踪闭环进度', fill: '只读,筛选用' }
]
}