Files
JY1.0/docs/零件改制/零件改制功能开发说明.md

12 KiB

零件改制功能开发说明

01-功能内容

1.1 需求来源

因现场计件和生产过程追溯需要,将零件改制流程接入系统管理。该需求由罗总牵头,组织技术中心、精工车间、仓储等相关部门讨论后提出。

1.2 应用场景

  • 技术中心根据现场或订单需求发起零件改制订单。
  • 改制订单进入精工车间生产流程。
  • 精工车间可在生产任务查询中查看改制任务。
  • 车间派工可查看改制任务并进行派工。
  • MES 加工端显示改制订单编号,现场按改制任务加工。
  • 改制过程形成记录,便于后续查询、统计、追溯。

1.3 功能范围

  • 技术中心新增“零件改制订单发起”组件。
  • 左侧显示订单/产品,右侧显示所选产品下的零件。
  • 点击零件操作列“改制”按钮后弹窗发起改制。
  • 发起改制时要求改制零件图号不能与原零件图号相同。
  • 后端生成改制订单编号,规则为:BHGZ + 年月日 + 4位顺序号
  • 后端写入 技术中心_改制订单记录
  • 后端生成精工车间工艺计划任务。
  • 后端自动添加默认工艺 改制
  • 改制记录表回写 工艺计划流水号,后续查询统一按该字段关联。
  • 生产任务、派工、MES 待加工显示改制订单编号。

02-程序开发步骤

2.1 前端组件

文件:

src/views/TechnologyCenter/PartModificationOrder/index.vue

开发步骤:

  1. 新建技术中心零件改制组件目录和 index.vue
  2. 左侧订单下拉使用 订单信息_列表_查询数据_bak 获取订单列表。
  3. 左侧订单/产品查询使用 技术中心_改制订单_订单_查询
  4. 点击左侧产品后,右侧零件列表使用 技术中心_改制订单_零件_查询
  5. 右侧零件表格增加操作列,提供“查看图纸”和“改制”按钮。
  6. 参考 BOM 查询/维护组件“更换物料”交互调整改制弹窗。
  7. 发起改制提交前判断:
var oldDrawingNo = (this.form.原零件图号 || '').toString().trim()
var newDrawingNo = (this.form.改制零件图号 || '').toString().trim()
if (oldDrawingNo && newDrawingNo && oldDrawingNo === newDrawingNo) {
  this.$message.warning('改制零件图号不能与原零件图号相同')
  return
}
  1. 提交接口使用 技术中心_改制订单_发起改制

2.2 后端表结构

新增或维护表:

技术中心_改制订单记录
技术中心_改制订单排序

技术中心_改制订单记录 需要包含关键字段:

改制订单流水号
改制订单编号
原订单流水号
原组件流水号
原基本件流水号
原零件名称
原零件图号
改制零件名称
改制零件图号
改制数量
精工期限
工艺计划流水号
状态
发起人
发起时间
是否删除

如字段不存在,执行:

IF COL_LENGTH('dbo.技术中心_改制订单记录', '原零件名称') IS NULL
BEGIN
    ALTER TABLE dbo.技术中心_改制订单记录
    ADD 原零件名称 nvarchar(50) NULL;
END;

IF COL_LENGTH('dbo.技术中心_改制订单记录', '原零件图号') IS NULL
BEGIN
    ALTER TABLE dbo.技术中心_改制订单记录
    ADD 原零件图号 nvarchar(50) NULL;
END;

IF COL_LENGTH('dbo.技术中心_改制订单记录', '工艺计划流水号') IS NULL
BEGIN
    ALTER TABLE dbo.技术中心_改制订单记录
    ADD 工艺计划流水号 int NULL;
END;

2.3 后端发起改制过程

存储过程:

技术中心_改制订单_发起改制

处理步骤:

  1. 校验原订单流水号、原组件流水号、改制零件名称、改制零件图号、改制数量。
  2. 后端再次校验原零件图号和改制零件图号不能相同。
  3. 生成改制订单编号。
  4. 插入 技术中心_改制订单记录
  5. 插入 车间生产管理工艺_零件工艺计划
  6. 回写 技术中心_改制订单记录.工艺计划流水号
  7. 查询基础工艺表是否存在 改制
  8. 不存在则插入 车间生产管理工艺_基础表_工艺名称
  9. 更新或插入 车间生产管理工艺_零件工序,默认工艺为 改制
  10. 调用或复用 精工车间_工艺保存_派工,将工艺计划推进到工艺完成状态。
  11. 更新原组件和原订单为精工车间承接。

2.4 查询接口调整

需要调整的查询:

精工车间生产任务查询
MES_机加工MES_零件待加工显示
车间派工相关查询

关联方式统一改为:

LEFT JOIN 技术中心_改制订单记录 AS GZ
    ON 主表.工艺计划流水号 = GZ.工艺计划流水号
    AND ISNULL(GZ.是否删除, 0) = 0

订单号显示规则:

ISNULL(GZ.改制订单编号, 原订单号) AS 订单号

03-推进台账

轮次 工作内容 修改文件/程序 验证内容 下一步
1 梳理零件改制流程方案 零件改制功能设计方案.md 方案内容、流程承接关系、入库节点 生成 PDF 和流程图
2 生成方案 PDF 和流程图 part-modification-plan.htmlpart-modification-plan.pdf PDF 文件生成、流程图位置调整 开发前端组件
3 新建零件改制组件 src/views/TechnologyCenter/PartModificationOrder/index.vue 组件路径、动态路由加载不再报 ENOENT 调整查询接口
4 查询接口调整 PartModificationOrder/index.vue 订单查询、零件查询接口名调整 优化界面
5 参考 BOM 更换物料功能调整界面 PartModificationOrder/index.vue 弹窗交互、物料选择样式、eslint 后端过程设计
6 设计发起改制后端过程 技术中心_改制订单_发起改制 生成改制记录、生成精工任务 增加改制订单编号规则
7 改制订单编号规则 技术中心_改制订单排序、发起过程 BHGZ + 年月日 + 4位顺序号 增加默认工艺
8 增加默认工艺 改制 发起过程、基础工艺表、零件工序表 自动添加默认工艺并推进到工艺完成 查询显示改制订单号
9 查询关联改制记录 生产任务查询、MES 待加工显示 订单号优先显示改制订单编号 完善验收
10 增加原零件信息字段 技术中心_改制订单记录、发起过程 记录原零件名称、原零件图号 联调完整流程

04-任务矩阵

任务编号 任务名称 状态 验收标准
GZ-001 编写零件改制功能方案 已完成 文档包含背景、场景、流程、表设计、接口设计
GZ-002 生成 PDF 和流程图 已完成 PDF 存在,流程图位置正确,流程包含入库
GZ-003 新建技术中心改制组件 已完成 路由可加载 PartModificationOrder/index.vue
GZ-004 左侧订单/产品查询 已完成 可通过订单编号下拉筛选并显示订单/产品
GZ-005 右侧零件查询 已完成 点击左侧产品后显示对应零件
GZ-006 发起改制弹窗 已完成 可录入改制零件名称、图号、数量、精工期限
GZ-007 图号一致校验 已完成 原零件图号与改制零件图号相同时禁止提交
GZ-008 改制订单记录表 待数据库执行 表包含原零件和改制零件信息
GZ-009 改制订单编号生成 待数据库执行 编号符合 BHGZyyyyMMdd0001 规则
GZ-010 发起改制后端过程 待数据库执行 成功写入记录并返回改制订单编号、工艺计划流水号
GZ-011 默认工艺 改制 待数据库执行 基础工艺不存在时自动创建,工序默认改制
GZ-012 工艺计划流水号回写 待数据库执行 改制记录表能通过工艺计划流水号关联生产任务
GZ-013 生产任务查询显示改制单号 待联调 改制任务显示改制订单编号,非改制任务显示原订单号
GZ-014 MES 待加工显示改制单号 待联调 加工端订单号优先显示改制订单编号
GZ-015 改制记录查询 待开发 可按改制订单编号、原订单、零件图号查询记录

05-验收证据

5.1 前端文件

D:\景耀\JY1.0\src\views\TechnologyCenter\PartModificationOrder\index.vue

5.2 文档与 PDF

D:\景耀\JY1.0\零件改制功能设计方案.md
D:\景耀\JY1.0\part-modification-plan.html
D:\景耀\JY1.0\part-modification-plan.pdf

5.3 已执行验证命令

npx eslint --ext .vue D:\景耀\JY1.0\src\views\TechnologyCenter\PartModificationOrder\index.vue

结果:已通过。

5.4 关键 SQL 验收点

发起改制成功后应能查到:

SELECT *
FROM 技术中心_改制订单记录
WHERE 改制订单编号 LIKE 'BHGZ%';

改制记录应回写工艺计划流水号:

SELECT 改制订单编号, 原零件名称, 原零件图号, 改制零件名称, 改制零件图号, 工艺计划流水号
FROM 技术中心_改制订单记录
WHERE 工艺计划流水号 IS NOT NULL;

默认工艺应生成:

SELECT *
FROM 车间生产管理工艺_基础表_工艺名称
WHERE 工艺名称 = N'改制';

默认工序应生成或被更新:

SELECT *
FROM 车间生产管理工艺_零件工序
WHERE 工艺计划流水号 = @工艺计划流水号;

5.5 页面验收点

  • 技术中心零件改制页面可以正常打开。
  • 订单编号下拉可选择订单。
  • 左侧订单/产品数据去重显示。
  • 点击左侧产品后,右侧显示零件。
  • 点击“改制”打开弹窗。
  • 改制零件图号与原图号相同时,页面阻止提交。
  • 改制提交成功后返回成功提示。
  • 精工车间生产任务查询可看到改制任务。
  • MES 待加工显示中,改制任务订单号显示为 BHGZ...

06-决策记录

6.1 为什么改制订单号使用独立编号

改制订单不是原销售订单,也不是普通生产订单。使用 BHGZ + 年月日 + 4位顺序号 可以明确区分补货改制任务,便于车间识别、计件统计和后续追溯。

6.2 为什么改制记录表要保存工艺计划流水号

早期临时方案按 原基本件流水号 关联改制记录,但同一个基本件可能多次改制,会导致生产任务或 MES 待加工数据重复显示。最终决定在发起改制时回写 工艺计划流水号,后续查询统一按 工艺计划流水号 关联,保证一对一。

6.3 为什么需要保存原零件名称和原零件图号

改制后零件名称和图号会变化,如果只保存改制后的信息,后续无法准确追溯改制来源。增加 原零件名称原零件图号 后,改制记录可以完整展示“从哪个零件改成哪个零件”。

6.4 为什么前后端都校验图号不能相同

前端校验用于提升用户体验,避免无效提交。后端校验用于保证数据安全,防止绕过前端直接调用接口造成无意义改制记录。

6.5 为什么默认工艺设为 改制

改制任务进入精工车间后,需要可派工、可加工、可计件。如果每次都人工制定工艺,会增加现场操作成本。自动添加默认工艺 改制 后,改制任务可以快速进入派工和生产流程。

6.6 为什么不继续按基本件流水号关联改制记录

基本件流水号代表原零件来源,不代表某一次具体改制任务。改制任务真正进入车间后,对应的是新生成的 工艺计划流水号。因此正式查询必须按 工艺计划流水号 关联,避免重复数据和错误显示。

6.7 为什么生产任务和 MES 显示改制订单编号

现场需要识别当前任务是改制任务,并且计件、派工、加工、入库都需要统一单号。生产任务和 MES 端优先显示改制订单编号,可以减少现场沟通成本。

后续建议

  1. 补充 技术中心_改制订单_记录_查询 接口。
  2. 建立改制记录查询页面。
  3. 对生产任务查询、车间派工、MES 待加工显示做完整联调。
  4. 补充改制任务取消、退料、异常处理规则。
  5. 如后续恢复“非毛坯物料改制需要领料”,再扩展领料单生成与仓库出库状态。