chore: 完成多系统功能迭代与优化
1. 通用优化: - 统一系统标题为"库房客户端"/"MES产线控制",移除北自所前缀 - 调整内置账号密码为统一123456,优化密码校验逻辑 - 新增数据库自动创建逻辑,简化部署流程 - 修复日志时间格式配置,优化日志输出 - 新增纯数字密码安全提示 2. MES系统优化: - 新增日排产管理功能,支持增删改查与自动算料生成备料单 - 重构BOM模块,改为按产品编码维护而非工单维度 - 新增工艺参数模板配置与手动报工页面 - 新增产品类型自动编码功能 - 优化菜单结构,调整工单管理、扫码报工等页面名称与路由 - 新增删除日排产接口与权限保护 - 修复物料清单查询逻辑,适配新BOM结构 - 新增refreshToken支持,优化登录会话管理 3. WMS系统优化: - 新增基础数据维护页面,支持区域与物料档案管理 - 新增工单列表下拉接口,对接MES获取未完成工单优先展示 - 优化入库管理提示文案,替换英文提示为中文 - 修复精密件入库校验逻辑,优化错误提示 - 优化Excel导入功能,新增备注字段支持 - 优化登录页面与菜单文案,统一备料台账名称 - 新增自动打开浏览器功能,优化客户端启动体验 - 修复备料出库页面查询提示文案 - 新增WMS与MES对接配置,完善内部API调用逻辑 4. 其他优化: - 删除冗余的旧版静态资源文件,更新资源引用路径 - 新增帮助文档,完善基础数据模块说明 - 修复多处文案不统一、英文残留问题
This commit is contained in:
@@ -8,7 +8,12 @@ export const helpProductType = {
|
||||
'产品类型是"生产什么产品"的分类档案,是整条产线的源头基础数据。\n\n生产主数据链条:产品类型 → 建工单(选产品类型) → 配物料清单(BOM) → 日排产 → 备料 → PLC/AGV 配送 → 工位装配。\n必须先在这里维护好产品类型,后面所有环节(工单/BOM/备料/拧紧/追溯)才有可选对象。',
|
||||
fields: [
|
||||
{ name: '名称', source: '手工填写。用户自定义,无上游来源。', purpose: '产品类型的中文名,用于识别与下拉展示', fill: '如:智能电表、断路器、配电柜' },
|
||||
{ name: '编码', source: '手工填写。你自定义的编码,保存入库后成为该记录的唯一标识。', purpose: '产品唯一编码,工单/物料清单等下游按此关联', fill: '如 METER-01;全局唯一,建了不要随意改,否则下游关联会断' },
|
||||
{
|
||||
name: '编码',
|
||||
source: '系统自动生成 + 可手动修改。新建时会自动带出(格式 PROD-YYYYMMDD-序号),你可直接使用或改为自定义编码;编辑时保留已存值。一个产品编码可对应多个工单(同一型号今天做一批、明天做一批,工单号不同,产品编码相同)。',
|
||||
purpose: '产品唯一编码。它是 MES 内部识别该产品的标识,决定该产品的物料清单(BOM)内容,也是工单、备料、拧紧、追溯的挂靠键。',
|
||||
fill: '建议用有意义的编码,如 METER-01。要点:①本编码与 WMS 是两套系统、互相解耦,MES 这边独立维护,WMS 那边各自单独录入;②成品入库时,由操作人员把本编码**手动录入 WMS**,两系统靠人工对齐;③如产品编码就是"产品类型",则直接沿用该类型编码即可;④建好后不要随意改,否则下游工单/追溯的关联会断。'
|
||||
},
|
||||
{ name: '类别', source: '手工填写。可选,无上游来源。', purpose: '产品所属大类,便于分类统计', fill: '如:计量表 / 开关柜;可空' },
|
||||
{ name: '启用', source: '开关选择。默认开启。', purpose: '启用后才允许在新建工单/备料的下拉里被选到', fill: '默认开启;暂时停产的可关闭(不删除,保留档案)' },
|
||||
{ name: '备注', source: '手工填写。可选。', purpose: '补充说明', fill: '可不填' }
|
||||
@@ -18,7 +23,7 @@ export const helpProductType = {
|
||||
export const helpWorkOrder = {
|
||||
title: '工单管理(新建 / 编辑工单)',
|
||||
overview:
|
||||
'工单 = 一个"合同/生产批次"的唯一载体,是生产执行和仓库出库挂靠的核心对象。\n\n全流程:先有产品类型 → 建工单(选产品类型、定数量、定工序组合) → 进"物料清单"给该工单配料 → 行内"日排产"排哪天产多少 → 仓库按排产备料出库 → 产线装配/拧紧/报工 → 完工。\n工单号会贯穿 备料单、拧紧查询、扫码报工、工件追溯、操作日志 全链路。',
|
||||
'工单 = 一个"合同/生产批次"的唯一载体,是生产执行和仓库出库挂靠的核心对象。\n\n全流程:先有产品类型 → 建工单(选产品类型、定数量、定工序组合) → 进"物料清单"给该产品配料 → 行内"日排产"排哪天产多少 → 仓库按排产备料出库 → 产线装配/拧紧/报工 → 完工。\n工单号会贯穿 备料单、拧紧查询、手动报工、工件追溯、操作日志 全链路。',
|
||||
fields: [
|
||||
{ name: '工单号', source: '系统自动生成(WO+时间戳),可手工改。新建时自动带出。', purpose: '唯一标识一个工单,备料/出库/报工/追溯都挂在此号下', fill: '打开新建对话框时已自动生成,一般不用改;如改动须保证唯一' },
|
||||
{ name: '产品类型', source: '下拉选择。数据来自"产品类型"页面已启用的记录。', purpose: '说明这批生产的是什么产品,并决定物料清单内容', fill: '先到"产品类型"页面建好记录,再到这边下拉选择;没有可选项=还没建产品类型' },
|
||||
@@ -36,16 +41,36 @@ export const helpWorkOrder = {
|
||||
{ name: '日期', source: '手动选择日期。', purpose: '计划生产日期,仓库按它哪天备料', fill: '选一个日期,可对同一工单排未来多天' },
|
||||
{ name: '计划数量', source: '手动填写整数。', purpose: '当天计划产量,作为仓库备料/AGV配送的前瞻依据', fill: '≤ 工单总数量;如今天产 20 台' }
|
||||
]
|
||||
},
|
||||
{
|
||||
title: '行内"工序组合"弹窗',
|
||||
overview: '对当前这行工单快速维护要执行的工序组合,PLC 按此组合下发到工位。\n可自由拆组合、补工序(半成品再上线):如本应做第3/5序却做成了半成品,可在此把该件的组合改成只做漏掉的第2序,重上线完成闭环。',
|
||||
fields: [
|
||||
{ name: '工序组合', source: '人工自由维护。', purpose: '本工单在产线执行的工序集合,PLC 组合下发', fill: '只做第1/3/5序填 135;全序填 123456789101112;半成品补做第2序填 2' }
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
export const helpBom = {
|
||||
title: '物料清单(BOM)',
|
||||
export const helpDailyPlan = {
|
||||
title: '日排产(生产计划)',
|
||||
overview:
|
||||
'物料清单 = 生产 1 台该工单产品需要哪些物料、各用多少。\n仓库按它计算备料/出库需求量,并强约束累计出库 ≤ 需求总量。\n\n数据链路:先建工单 → 到本页选工单 → 为它逐条添加物料(编码要与 WMS 物料档案一致) → 之后仓库才能按此为工单领料。',
|
||||
'日排产 = 安排"哪个工单、在哪天、生产多少",是备料和出库的触发依据。\n\n数据链路:工单(总数) → 日排产(按天拆分量,合计不得超过工单总数) → 仓库按日排产备料出库 → 产线按日生产。\n可以按 工单号 / 排产日期 两个维度查询,也可直接新增/编辑/删除排产。',
|
||||
fields: [
|
||||
{ name: '工单号', source: '下拉/输入选择。来自已建的工单。', purpose: '要为哪个工单配置物料清单', fill: '选择工单号后加载该工单已有清单' },
|
||||
{ name: '工单号', source: '下拉选择。来自"工单管理"已建的工单。', purpose: '该排产对应哪个生产工单', fill: '选择工单号;也可手动输入未列出的工单号' },
|
||||
{ name: '排产日期', source: '日历选择。', purpose: '计划在哪一天生产', fill: '选具体日期,如 2026-08-29' },
|
||||
{ name: '计划数量', source: '手工填写整数。', purpose: '这一天计划生产多少件', fill: '整数≥1;注意:该工单所有日排产的数量合计不能超过工单总数量' },
|
||||
{ name: '已完成', source: '系统自动累计。只读。', purpose: '该排产已实际完成多少件', fill: '无需填写' },
|
||||
{ name: '状态', source: '系统维护。只读。', purpose: '排产执行状态(待排产/已确认)', fill: '无需填写' }
|
||||
]
|
||||
}
|
||||
|
||||
export const helpBom = {
|
||||
title: '物料清单(产品 BOM)',
|
||||
overview:
|
||||
'物料清单 = 生产 1 台该产品需要哪些物料、各用多少。\n按产品编码维护:同型号产品今天做一批、明天做一批,工单号不同、产品编码相同,共用这一份 BOM。\n仓库(库房)按工单取其产品的 BOM 计算备料/出库需求量,并强约束累计出库 ≤ 需求总量。\n\n职责分工:本页(MES)只维护「产品由哪几种料、各用几个」;每种物料叫什么、规格、是批次件还是 SN 件、库存有多少,统一在 WMS(库房)的「物料档案」里维护,两套系统互相解耦。\n\n数据链路:先建「产品类型」→ 到本页选产品编码,为它逐条添加物料(编码要与 WMS 物料档案一致) → 之后仓库才能为对应工单领料。',
|
||||
fields: [
|
||||
{ name: '产品编码', source: '下拉/输入选择。来自「产品类型」管理里建的编码;同一型号可对应多个工单。', purpose: '要为哪个产品配置物料清单', fill: '选择产品编码后加载该产品已有清单' },
|
||||
{ name: '物料编码', source: '手工填写。必须与 WMS(库房) 物料档案的编码一致。', purpose: '该物料在库房的全库唯一编码,两条系统靠它关联', fill: '如 螺丝=SCREW-M3、主控芯片=IC-001;编码对不上 WMS 将无法备料' },
|
||||
{ name: '物料名称', source: '手工填写。', purpose: '物料中文名,便于识别', fill: '如 十字螺丝、主控芯片' },
|
||||
{ name: '规格', source: '手工填写。', purpose: '物料规格型号', fill: '如 M3×8 / SMT-48脚' },
|
||||
@@ -95,15 +120,27 @@ export const helpTorque = {
|
||||
}
|
||||
|
||||
export const helpScan = {
|
||||
title: '扫码报工',
|
||||
title: '手动报工(工位工序完成上报)',
|
||||
overview:
|
||||
'扫码枪扫到工件,按类型记录工件在产线的流转事件。这是工单进度与工件追溯的核心数据来源。\n\n类型含义:进线(进入产线) → 工序(完成某道工序) → 完工(整件完成) → 暂存退回(退回库房)。',
|
||||
'每个工位装配/检测相对工序完成后,在【手动报工】页选择工位、扫入工件SN、选工序号,系统按该工序已维护的【工艺参数】模板动态展开需要采集的参数,人工录入并提交。\n提交后写工序实绩 + 步骤数据,系统按步骤考核标准自动判定 OK/NG。\n\n数据链路:工艺参数(维护每道工序要收集哪些参数、判定标准) → 手动报工页扫SN逐参数录入 → 判 OK/NG → 工件追溯可见。',
|
||||
fields: [
|
||||
{ name: 'SN', source: '扫码枪扫描。来自工件条码。', purpose: '工件的唯一序列号', fill: '扫码枪扫入' },
|
||||
{ name: '工单号', source: '自动带出/选择。来自工单。', purpose: '工件所属工单', fill: '输入或选择' },
|
||||
{ name: '工位', source: '手动填写/扫码枪绑定。', purpose: '当前扫码的工位编号', fill: '如 5' },
|
||||
{ name: '类型', source: '下拉选择。业务定义的事件类型。', purpose: '本次扫码的业务含义', fill: '进线 ONLINE / 工序 PROCESS / 完工 DONE / 暂存 TEMP_STORE' },
|
||||
{ name: '工序号', source: '手动填写。', purpose: '类型为"工序"时填第几道工序', fill: '如 3' }
|
||||
{ name: '工位', source: '下拉选择(1~12)。', purpose: '哪个工位在报工', fill: '选择工位 1~12' },
|
||||
{ name: '工件SN', source: '扫码枪扫描。来自工件条码。', purpose: '工件的唯一序列号,报工对象', fill: '扫码枪扫入,触发载入参数模板' },
|
||||
{ name: '工序号', source: '手动选择(1~12)。', purpose: '本次完成的工序,展开该工序的参数模板', fill: '选择 1~12' },
|
||||
{ name: '各步骤采集值', source: '手工填写 或 拧紧枪自动带出(视采集方式)。字段由【工艺参数】维护页人为定义,可增加/删除/改采集方式与判定标准。', purpose: '收集该工序的扭矩/角度/尺寸等参数,按标准判定合格与否', fill: '逐条填采集值,未维护标准的步骤仅记录' }
|
||||
]
|
||||
}
|
||||
|
||||
export const helpProcessStep = {
|
||||
title: '工艺参数(工序步骤与考核标准维护)',
|
||||
overview:
|
||||
'人为维护【每道工序要收集哪些参数】及【合格判定标准】,是手动报工的基础——报工页按这里的模板动态渲染参数输入框。\n· 一道工序可有多个步骤(参数);\n· 每步可选择采集方式:拧紧枪自动 / 手填 / 仅记录;\n· 每步可设考核标准(如扭矩在 [35,45] N·m 为合格),报工时系统自动判 OK/NG。',
|
||||
fields: [
|
||||
{ name: '工序号', source: '手动选择(1~12)。', purpose: '给哪道工序配置步骤', fill: '选择工序号,加载该工序现有步骤' },
|
||||
{ name: '步骤名称', source: '人为定义。', purpose: '该参数叫什么(如 装配完成/拧紧扭矩)', fill: '输入中文名称' },
|
||||
{ name: '采集方式', source: '人为选择。', purpose: '该参数怎么来:拧紧枪自动/手填/仅记录', fill: 'AUTO=拧紧枪自动;MANUAL=手填;NONE=仅记录' },
|
||||
{ name: '是否为拧紧', source: '开关。', purpose: '标识是否属于拧紧采集', fill: '拧紧扭矩/角度步骤打开' },
|
||||
{ name: '判定标准', source: '人为定义。可为一条或多条。', purpose: '报工时自动判定 OK/NG 的依据', fill: '如 扭矩 RANGE [35,45];角度 GE 90 等' }
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user