// MES 管理后台 页面级操作说明:整体流程 + 各字段 数据来源/用途/怎么填 // 由 components/PageHelp.vue 在左下角 "?" 按钮弹出展示。 // 说明:这里的"数据来源"特指该字段的数据由谁产生、从哪个系统/页面来,帮助跑通真实流程。 export const helpProductType = { title: '物料档案(档案维护)', overview: '物料档案 = 本页是 WMS「基础数据(物料主数据)」中"成品"品类在本系统的视图,与 WMS 指向同一份主数据(以 WMS 为准,实时拉取、不双录)。本页承载的是"要生产哪些成品",是整条产线的源头基础数据。\n\n品类来源(与 WMS 一致):原材料=进货来的(外购);半成品、成品=自己生产的;其他=辅料/工装/试验设备等。成品还可以作为零部件,放进另一个成品的物料清单(BOM)里被再次加工成新的成品。\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: '手工填写(必填)。与 WMS 物料档案必填口径一致。', purpose: '成品的规格型号,用于识别与打印', fill: '如:500×300×200' }, { name: '单位', source: '手工填写(必填)。与 WMS 物料档案必填口径一致。', 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: '按工艺分组勾选工位(数据来自「工位绑定」页的工位↔工艺绑定)。保存为 [{flowId,stationNo}]。', purpose: '本工单的执行路线;自动排产/备料拆分/产线下发均按此组合派生', fill: '默认每个已绑定工艺的工位全选;至少选一道工艺;全不选某工艺则该工艺不进入组合;执行顺序=工位号升序,可跳过未选工位' }, { name: '状态', source: '新建时选"已创建",后续由流程推进。', purpose: '工单生命周期:创建→发布→生产→完成', fill: '新建时选"已创建";也可在列表操作列点「状态」快捷流转(发布/开工/完工)' }, { name: '完成日期', source: '手工填写,完工时必填。', purpose: '记录工单实际完成日期,用于交付与绩效统计', fill: '完工流转时选择日期,必填' }, { name: '创建人', source: '系统自动记录(当前登录账号)。', purpose: '追溯工单由谁创建', fill: '只读,自动带入' } ] }, { title: '工艺组合(路线)', overview: '新建/编辑工单时勾选「工艺组合」:按工艺分组,每组勾选该工艺要执行的工位。\n组合结果按工位号升序只读展示为路线条(如 2→5→6→8)——执行顺序=工位号升序,可跳过未选工位。\n「自动排产」要求工单已配置工艺组合:组合为空时按钮置灰,提示"请先选择工艺组合"。\n半成品再上线:编辑工单,只勾剩余要走的工位即可。', fields: [ { name: '工艺组合', source: '按工艺分组勾选工位。', purpose: '本工单经过的工位与其工艺,产线设备按组合下发', fill: '勾选即可,按工位号升序执行;至少选一道' } ] }, { title: '自动排产(引导式)', overview: '列表页「自动排产」按钮:选工单 + 日期区间 + 排产方式,一键把工单未开工数量分摊到多天日排产。', fields: [ { name: '日期区间', source: '日历选择起止日期。', purpose: '在哪段时间内排产', fill: '选开始/结束日期' }, { name: '排产方式', source: '二选一:平均分摊 / 固定日产。', purpose: '决定每天排多少', fill: '平均分摊=总量÷天数自动均分;固定日产=每天排指定数量,排满为止' }, { name: '每日数量', source: '固定日产方式下手工填写。', purpose: '固定每天的生产量', fill: '选固定日产时填写,如每天 20' }, { 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: '由工单「工艺组合」派生(工位号→接驳台编码去重),此处无需手填。', purpose: '该工单物料经 AGV 送到哪些接驳台(DOCK n↔工位n),备料单据此填 target_dock', fill: '随工艺组合自动展示;如需调整路线,到「工单管理」编辑工单的工艺组合' }, { name: '各工位分产量', source: '启用后点「编辑」,按工单工艺组合的工位逐个填写。', purpose: '各工位分产量决定备料拆分;未配置则同工艺工位平均分;备料需求 = 分产量 × 单台用量 × (1+损耗率%)', fill: '留空或 0 的工位不分担产量;建议合计=计划数量' }, { name: '停单/恢复', source: '工人在工位终端自主停单/恢复,管理端同步展示当日停单状态。', purpose: '现场异常(缺料/设备故障)时暂停该工位当日出产', fill: '管理端只读展示;恢复由工人或授权人员在工位终端操作' }, { name: '已完成', source: '系统自动累计。只读。', purpose: '该排产已实际完成多少件', fill: '无需填写' }, { name: '状态', source: '系统维护。只读。', purpose: '排产执行状态(待排产/已确认)', fill: '无需填写' }, { name: '启用/停用', source: '行内开关。', purpose: '停用后该条排产不参与备料/生产,可临时挂起某天计划', fill: '拨动开关切换;停用的排产不计入备料' } ] } export const helpMaterial = { title: '备料单(按日排产自动算料)', overview: '备料单 = 仓库备料的依据:某天要生产的所有工单,各需要哪些物料、各要多少。\n\n操作方式:① 先到「日排产」排好某天的计划数量;② 回到本页选该「日期」;③ 点「按日排产生成备料」,系统按各产品物料清单自动计算(计划数量 × 单台用量 × (1+损耗率))并生成备料单明细;④ 生成的同时系统按 FIFO 从 WMS 合格库存自动出库(平时无需人工领料),出库达标的备料单转为「已备料」,由 AGV 配送到各工位。\n\n库存不足怎么办:已出的部分照常记账,差额保持「待备料」并触发「备料未齐套」预警;补货后点「一键自动出库」即可补出(不会超领,重复执行安全)。\n\n超领规则:实际用量超出物料清单需求(损耗/报废/返修)时,系统不硬卡——WMS 出库时填写超领原因即放行并留痕,可统计、可预警;不填原因仍会被拦截。\n\n来源说明:「排产备料」= 按日排产自动生成;「工位补料」= 工位叫料/数量不符补发生成,仓库应优先发补料单。\n\n数据链路:日排产 → 本页按日期自动算料生成备料单 → 自动出库(WMS 扣账)→ AGV 配送 → 工位接料。', sections: [ { title: '生成备料', overview: '按所选日期,取当天所有排产工单,依据各自产品的物料清单自动汇总所需物料。', fields: [ { 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: '可空' } ] } ] } 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: '点「调整」→ 填说明 → 确认' } ] } ] } 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数据接入(TCP 抽象):拧紧枪数据由工位终端采集后自动上报 MES;内置模拟数据源供联调(正式丹尼科尔协议接入后直接插入同一链路,无需改页面)。本页不提供后台手工补录。\n\n一级按「工单号 + SN + 工位」汇总,并按工艺文件自动判定「应拧 vs 实拧」是否满足;点「拧紧结果」进二级明细,逐颗查看并审核签字。', sections: [ { title: '查询条件', overview: '四条件复合取交集,SN / 工单号 不区分大小写。', fields: [ { name: 'SN / 工单号', source: '手工填写。', purpose: '按工件或工单缩小范围', fill: '可空=全部;不区分大小写' }, { name: '工位', source: '手工填写。', purpose: '只看某道工位的拧紧汇总', fill: '如 3,可空' }, { name: '日期区间', source: '日期选择器。', purpose: '按采集时间筛选', fill: '选开始/结束日期,含当天' } ] }, { title: '一级汇总与统计', overview: '每行代表一个工件在某工位的拧紧总体情况。', fields: [ { name: '拧紧数量(应拧/实拧)', source: '应拧数来自工艺 isTorque 步骤数;实拧数来自拧紧记录。', purpose: '对比工艺要求与实际拧紧颗数', fill: '只读;应拧显示「未配置」表示该工位未绑定含扭矩步骤的工艺' }, { name: '合格/不合格', source: '拧紧记录统计。', purpose: '看该工件合格与不合格颗数', fill: '只读;不合格>0 会标红' }, { name: '拧紧结果', source: '系统判定:应拧>0 且 实拧>=应拧 且 无不合格 = 满足。', purpose: '一眼判定该工件拧紧是否达标', fill: '点「满足/不满足」链接进入二级明细' }, { name: '审核状态', source: '系统统计。分组内全部记录已审核才计已审核。', purpose: '提示检验员是否已完成签字', fill: '只读' } ] }, { title: '二级明细与审核签字', overview: '抽屉顶部展示应拧/实拧/合格/不合格统计,下方逐颗列出拧紧记录。', fields: [ { name: '螺丝号/扭矩/角度/结果', source: '拧紧枪自动采集上报。', purpose: '每颗螺丝的具体拧紧参数与判定', fill: '只读' }, { name: '审核签字', source: '检验员操作,写入审核人/时间。', purpose: '两人签字:操作人(采集自动带入) + 审核人(当前登录账号)', fill: '点「审核签字」→ 填审核意见 → 确认;已审核不可重复' }, { name: '留痕', source: '系统自动记录 torque_audit_log。', purpose: '展示该记录的审核/修改历史时间线', fill: '点「留痕」查看操作人/动作/改前改后/备注' } ] } ] } export const helpStation = { title: '工位绑定(工位总览)', overview: '工位数以数据库为准。本页可新增工位与改名;每个工位在下方下拉选择启用的工艺即完成绑定;一个工位只能绑定一个工艺;内置工位不允许删除。\n\n工位分「内置」与「自定义」两类:内置工位由种子/初始化数据产生(数据库 is_builtin=true),对应实体产线位置,需与 PLC 通讯并按工位号顺序流转,不允许修改工位类型、不允许删除;自定义工位是在本页点击「新增工位」创建的,可修改类型、可删除。\n\n绑定关系即本页下拉:选择「启用」的工艺即完成绑定(工位号即顺序号);工单的执行路线由工单的「工艺组合」决定,本页只维护工位↔工艺绑定,不再有按日派工。\n\n停单/恢复:工人在工位终端自主停单/恢复,管理端在本页/日排产侧同步展示当日停单状态(只读)。\n\n数据链路:本页绑定工艺 → 工单勾选工艺组合 → 工位终端按绑定工艺的工艺步骤采集 → 报工按考核标准自动判 合格/不合格。', fields: [ { name: '工位号', source: '内置工位由系统预置;自定义工位由本页「新增工位」填写。', purpose: '产线物理工位编号,工位号即顺序号', fill: '新增时自定义,可与现有工位不连续(如 14、15…)' }, { name: '工位名称', source: '可编辑。默认如 装配工位1。', purpose: '工位的显示名称', fill: '如 一号装配工位' }, { name: '类型', source: '内置工位由系统给定且不可修改;自定义工位可改。', purpose: '线上位(连 PLC)/线下位(虚拟,不连 PLC)', fill: '内置工位只读;自定义工位可在改名弹窗切换' }, { name: '来源', source: '系统标识(数据库 is_builtin)。', purpose: '区分内置工位与自定义工位', fill: '只读' }, { name: '接驳台', source: '内置数据给定(对应实体位置),不可手动更改。', purpose: '该工位位置是否有接驳台', fill: '只读' }, { name: '接驳台编码', source: '系统预置(种子初始化),与工位 1:1。', purpose: '该工位绑定的接驳台唯一标识', fill: '只读;由种子初始化,页面不可更改' }, { name: '绑定工艺', source: '本页下拉选择「启用」的工艺即完成绑定。', purpose: '该工位执行的工艺(决定工艺步骤/考核标准/PDF/物料清单);一个工位只能绑定一个工艺', fill: '在本页下拉为该工位选择启用工艺;工单执行路线由工单工艺组合决定' }, { name: '终端可见页签', source: '本页「页签」按钮配置(station.visibleTabs)。', purpose: '该工位终端允许显示哪些功能页签(上线建档/作业/物料/移料/工艺文件/巡检/下线完工),按工位差异化界面', fill: '点「页签」勾选;全部不勾 = 显示全部页签,保存后终端下次拉取任务生效' }, { name: '删除', source: '本页操作。', purpose: '删除自定义工位', fill: '仅自定义工位可删除;内置工位不允许删除' }, { name: '虚拟工位 0 / 13', source: '系统预置。工位号 0=上线位、13=下线位。', purpose: '产线进线口建档上线、出料口完工入库,由 PAD 操作,不连 PLC/拧紧枪', fill: '只读;上线位/下线位在工位终端(PAD)用「上线建档」「下线完工」面板操作' } ] } export const helpVirtualStation = { title: '虚拟工位作业(MES 后台人工报工)', overview: '虚拟工位 = 没有终端硬件(无屏、无 PLC、无拧紧枪)的工位(如包装等辅助工序,线下位类型)。这类工位无法用工位终端,由操作人用自己的手机/电脑登录 MES 后台,在本页完成作业:选择自己的虚拟工位 → 选工单、扫/输工件SN → 查看当前工艺步骤与应绑配料 → 逐项录入 → 点「完成报工」。\n\n与工位终端走同一套接口与校验(/station/task、/station/report):齐套校验、检测确认校验、不可倒序报工等规则完全一致;拧紧步骤因无硬件不在本页采集(由物理工位拧紧枪采集)。\n\n权限:菜单「虚拟工位作业」按账号开通(角色管理勾选 produce.virtualstation),不给普通账号开「工位绑定」等管理菜单即可。', fields: [ { name: '选择虚拟工位', source: '下拉来自「工位绑定」页维护的工位(建议给虚拟工序建线下位类型工位)。', purpose: '报工落在哪个工位(报工校验工位必须在工单工艺组合中)', fill: '选择自己负责的虚拟工位' }, { name: '工单', source: '今日已启用日排产且工单已下发/在制(与终端口径一致)。', purpose: '本工位今天该干哪些工单', fill: '选择当前作业的工单' }, { name: '工件SN', source: '上线建档时系统生成的工件唯一码(标签/二维码)。', purpose: '定位工件与所属工单,报工/绑定都挂在 SN 下', fill: '扫码或手输后回车载入' }, { name: '工艺步骤', source: '工位绑定工艺的步骤模板(工艺页维护)。', purpose: '本工位要做什么、考核标准是什么', fill: '手填步骤逐项录入数值/结果;「检测确认」步骤需勾选;拧紧步骤由物理工位采集,本页只读' }, { name: '配料', source: '工艺物料清单(flow_material)中该工艺要求装配的物料 + 已绑记录(bind-panel 接口)。', purpose: '装机绑定强校验:电气件需绑满单台用量 SN、结构件至少绑一个批次号,缺料不允许报工', fill: '在录入框填批次号/SN(多个用逗号分隔),随报工一次性提交' }, { name: '完成报工', source: 'POST /station/report(与终端同一接口)。', purpose: '写实绩 + 步骤考核 + 装机绑定,原子提交', fill: '全部录入后点「完成报工」;报错按提示补齐' } ] } export const helpSettings = { title: '基础设置(系统管理员)', overview: '运行参数集中配置页,保存即生效(无需重启服务)。库存查询、缺料补货、可生产套数、排产支撑均为实时计算:库存实时来自 WMS,需求按「日排产 × 工单工艺组合」现场汇总,MES 不落库存/需求表,所以改配置立刻影响下一次计算。\n\n可配置项:\n· WMS 地址(IP:端口):保存后热切换,所有库存查询/扣账/台账同步即刻走新地址;「测试连通」只试测不保存,失败不影响当前配置。\n· 需求窗口天数:缺料补货/未来需求按日排产取未来 N 天(默认 5),WMS 备料四态「预警」数据源。\n· 外推均值窗口 / 外推封顶:排产支撑在排产日耗尽仍有余量时,按近 N 天平均日需求外推,封顶防死循环。\n· 事件日志保留天数:超过保留期的操作日志每小时自动清理,0=不清理。\n\n本机基础信息(只读):主机名/内网 IP、服务监听地址、数据库、当前生效 WMS 地址、Go 版本、启动时间。\n\n安全边界:JWT 密钥、WMS Token、数据库密码等敏感信息一律留在 etc/bj_power_mes-api.yaml,不进本页(不在库里明文存密)。', fields: [ { name: 'WMS 地址', source: '手工填写(sys_config: wms.base_url),留空=用 YAML 配置/默认 127.0.0.1:9091。', purpose: '库存查询/扣账/半成品流转/台账同步的 WMS 服务地址,保存即热切换', fill: '如 http://192.168.1.100:9091;先用「测试连通」验证再保存' }, { name: '需求窗口天数', source: '数字(sys_config: demand.days,默认 5)。', purpose: '缺料补货/未来需求 = 未来 N 天日排产 × 工单单台含损耗用量', fill: '1~60 天;改大可提前看到更远期备料需求' }, { name: '外推均值窗口', source: '数字(sys_config: producible.extrap.window,默认 3)。', purpose: '排产支撑外推取最近 N 天平均日需求', fill: '1~30 天' }, { name: '外推封顶', source: '数字(sys_config: producible.extrap.cap,默认 365)。', purpose: '排产支撑外推最多算 N 天,防死循环', fill: '30~3650 天' }, { name: '事件日志保留天数', source: '数字(sys_config: eventlog.retention.days,默认 0=不清理)。', purpose: '操作日志超期自动清理(每小时检查一次)', fill: '如 180 = 保留半年;0 = 永不清理' } ] } export const helpDock = { title: '接驳台维护(只读主数据)', overview: '接驳台是产线与库房之间供 AGV 取送货的物理停靠位,真源在 MES(2026-09-21 自 WMS 迁入)。共 21 个固定编码:DOCK01~DOCK20(产线,DOCKn↔工位n)+ DOCK21(库房收货)。\n\n接驳台为系统预置只读主数据,由种子初始化,本页不提供新增/修改/删除,仅供查看;工位维护、排产推荐、AGV 通讯均以本表为真源查询接驳台。\n\n「占用状态/托盘关联」反映该接驳台当前是否有托盘及托盘对应的出库/备料单,供现场调度参考。', fields: [ { name: '接驳台编码', source: '系统预置(种子)。', purpose: '接驳台唯一标识 DOCK01..21', fill: '只读' }, { name: '接驳台名称', source: '系统预置。', purpose: '接驳台显示名称', fill: '只读' }, { name: '类型', source: '系统预置。line=产线 / store=库房 / other=其他。', purpose: '区分接驳台所在位置', fill: '只读' }, { name: '绑定工位', source: '系统预置(产线接驳台与工位 1:1)。', purpose: '该接驳台服务的产线工位号', fill: '只读;库房/其他接驳台不绑工位' }, { name: '占用状态', source: 'PLC 托盘传感器 / AGV 到位卸货自动维护。', purpose: '当前是否有托盘', fill: '只读' }, { name: '托盘关联', source: '有托盘时记录对应出库单号/备料单号。', purpose: '查这个托盘是哪批料、要送到哪', fill: '只读' }, { name: '启用状态', source: '系统预置 ENABLED/DISABLED。', purpose: '停用后不在下拉出现', fill: '只读' } ] } export const helpTrace = { title: '工件追溯', overview: '输入工件 SN,查它的完整履历:进线/完工时间、各工位时间线、步骤考核数据(扭矩/角度)、拧紧记录、以及它用了哪些批次/电气件。\n\n数据来源:全部由前端各环节自动写入(扫码报工、拧紧采集、产线设备下发、工位完成),本页只读查询。', fields: [ { name: '工件SN', source: '扫码枪/手输。来自工件条码。', purpose: '要追溯的工件唯一序列号', fill: '扫 SN 或手动输入后点查询' }, { name: '工单号', source: '手动输入。筛选条件。', purpose: '按工单号列出该工单下全部工件,再点行内「追溯」查看单个工件履历', fill: '可空;支持模糊匹配,回车即查' } ] } 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· 工艺:一份作业指导(PDF + 工艺步骤 + 物料清单);其启用状态决定是否参与生产。\n· 工艺步骤:工艺内包含多个步骤(如:装配完成、拧紧扭矩、测试)。\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: '一个工艺可含多个工艺步骤,按序号顺序执行' }, { name: '步骤附件/图纸', source: '每个工艺步骤单独上传(绑定式)。文件由 MES 服务器保存。', purpose: '把图纸精确绑定到具体步骤,工位终端按当前步骤自动展示对应图纸', fill: '在步骤行上传该步骤图纸/附件(可多个);随步骤自动分发到工位终端' }, { name: '物料清单', source: '本页维护:物料编号(下拉选择,取自物料档案)/名称/规格/单位/管控方式/单台用量/损耗率%,整表覆盖保存。', purpose: '该工艺装配所需物料;备料需求 = 各工位分产量 × 单台用量 × (1+损耗率%)', fill: '物料编号取自物料档案编码(结构件通常即图号),选中后名称/规格/单位/管控方式自动带出、不可改;管控方式:批次=1、序列号=2' } ] }, { 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: '下拉选择 ≥/≤/>/