302 lines
12 KiB
Markdown
302 lines
12 KiB
Markdown
# 零件改制功能开发说明
|
|
|
|
## 01-功能内容
|
|
|
|
### 1.1 需求来源
|
|
|
|
因现场计件和生产过程追溯需要,将零件改制流程接入系统管理。该需求由罗总牵头,组织技术中心、精工车间、仓储等相关部门讨论后提出。
|
|
|
|
### 1.2 应用场景
|
|
|
|
- 技术中心根据现场或订单需求发起零件改制订单。
|
|
- 改制订单进入精工车间生产流程。
|
|
- 精工车间可在生产任务查询中查看改制任务。
|
|
- 车间派工可查看改制任务并进行派工。
|
|
- MES 加工端显示改制订单编号,现场按改制任务加工。
|
|
- 改制过程形成记录,便于后续查询、统计、追溯。
|
|
|
|
### 1.3 功能范围
|
|
|
|
- 技术中心新增“零件改制订单发起”组件。
|
|
- 左侧显示订单/产品,右侧显示所选产品下的零件。
|
|
- 点击零件操作列“改制”按钮后弹窗发起改制。
|
|
- 发起改制时要求改制零件图号不能与原零件图号相同。
|
|
- 后端生成改制订单编号,规则为:`BHGZ + 年月日 + 4位顺序号`。
|
|
- 后端写入 `技术中心_改制订单记录`。
|
|
- 后端生成精工车间工艺计划任务。
|
|
- 后端自动添加默认工艺 `改制`。
|
|
- 改制记录表回写 `工艺计划流水号`,后续查询统一按该字段关联。
|
|
- 生产任务、派工、MES 待加工显示改制订单编号。
|
|
|
|
## 02-程序开发步骤
|
|
|
|
### 2.1 前端组件
|
|
|
|
文件:
|
|
|
|
```text
|
|
src/views/TechnologyCenter/PartModificationOrder/index.vue
|
|
```
|
|
|
|
开发步骤:
|
|
|
|
1. 新建技术中心零件改制组件目录和 `index.vue`。
|
|
2. 左侧订单下拉使用 `订单信息_列表_查询数据_bak` 获取订单列表。
|
|
3. 左侧订单/产品查询使用 `技术中心_改制订单_订单_查询`。
|
|
4. 点击左侧产品后,右侧零件列表使用 `技术中心_改制订单_零件_查询`。
|
|
5. 右侧零件表格增加操作列,提供“查看图纸”和“改制”按钮。
|
|
6. 参考 BOM 查询/维护组件“更换物料”交互调整改制弹窗。
|
|
7. 发起改制提交前判断:
|
|
|
|
```js
|
|
var oldDrawingNo = (this.form.原零件图号 || '').toString().trim()
|
|
var newDrawingNo = (this.form.改制零件图号 || '').toString().trim()
|
|
if (oldDrawingNo && newDrawingNo && oldDrawingNo === newDrawingNo) {
|
|
this.$message.warning('改制零件图号不能与原零件图号相同')
|
|
return
|
|
}
|
|
```
|
|
|
|
8. 提交接口使用 `技术中心_改制订单_发起改制`。
|
|
|
|
### 2.2 后端表结构
|
|
|
|
新增或维护表:
|
|
|
|
```sql
|
|
技术中心_改制订单记录
|
|
技术中心_改制订单排序
|
|
```
|
|
|
|
`技术中心_改制订单记录` 需要包含关键字段:
|
|
|
|
```text
|
|
改制订单流水号
|
|
改制订单编号
|
|
原订单流水号
|
|
原组件流水号
|
|
原基本件流水号
|
|
原零件名称
|
|
原零件图号
|
|
改制零件名称
|
|
改制零件图号
|
|
改制数量
|
|
精工期限
|
|
工艺计划流水号
|
|
状态
|
|
发起人
|
|
发起时间
|
|
是否删除
|
|
```
|
|
|
|
如字段不存在,执行:
|
|
|
|
```sql
|
|
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 后端发起改制过程
|
|
|
|
存储过程:
|
|
|
|
```text
|
|
技术中心_改制订单_发起改制
|
|
```
|
|
|
|
处理步骤:
|
|
|
|
1. 校验原订单流水号、原组件流水号、改制零件名称、改制零件图号、改制数量。
|
|
2. 后端再次校验原零件图号和改制零件图号不能相同。
|
|
3. 生成改制订单编号。
|
|
4. 插入 `技术中心_改制订单记录`。
|
|
5. 插入 `车间生产管理工艺_零件工艺计划`。
|
|
6. 回写 `技术中心_改制订单记录.工艺计划流水号`。
|
|
7. 查询基础工艺表是否存在 `改制`。
|
|
8. 不存在则插入 `车间生产管理工艺_基础表_工艺名称`。
|
|
9. 更新或插入 `车间生产管理工艺_零件工序`,默认工艺为 `改制`。
|
|
10. 调用或复用 `精工车间_工艺保存_派工`,将工艺计划推进到工艺完成状态。
|
|
11. 更新原组件和原订单为精工车间承接。
|
|
|
|
### 2.4 查询接口调整
|
|
|
|
需要调整的查询:
|
|
|
|
```text
|
|
精工车间生产任务查询
|
|
MES_机加工MES_零件待加工显示
|
|
车间派工相关查询
|
|
```
|
|
|
|
关联方式统一改为:
|
|
|
|
```sql
|
|
LEFT JOIN 技术中心_改制订单记录 AS GZ
|
|
ON 主表.工艺计划流水号 = GZ.工艺计划流水号
|
|
AND ISNULL(GZ.是否删除, 0) = 0
|
|
```
|
|
|
|
订单号显示规则:
|
|
|
|
```sql
|
|
ISNULL(GZ.改制订单编号, 原订单号) AS 订单号
|
|
```
|
|
|
|
## 03-推进台账
|
|
|
|
| 轮次 | 工作内容 | 修改文件/程序 | 验证内容 | 下一步 |
|
|
| --- | --- | --- | --- | --- |
|
|
| 1 | 梳理零件改制流程方案 | `零件改制功能设计方案.md` | 方案内容、流程承接关系、入库节点 | 生成 PDF 和流程图 |
|
|
| 2 | 生成方案 PDF 和流程图 | `part-modification-plan.html`、`part-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 前端文件
|
|
|
|
```text
|
|
D:\景耀\JY1.0\src\views\TechnologyCenter\PartModificationOrder\index.vue
|
|
```
|
|
|
|
### 5.2 文档与 PDF
|
|
|
|
```text
|
|
D:\景耀\JY1.0\零件改制功能设计方案.md
|
|
D:\景耀\JY1.0\part-modification-plan.html
|
|
D:\景耀\JY1.0\part-modification-plan.pdf
|
|
```
|
|
|
|
### 5.3 已执行验证命令
|
|
|
|
```bash
|
|
npx eslint --ext .vue D:\景耀\JY1.0\src\views\TechnologyCenter\PartModificationOrder\index.vue
|
|
```
|
|
|
|
结果:已通过。
|
|
|
|
### 5.4 关键 SQL 验收点
|
|
|
|
发起改制成功后应能查到:
|
|
|
|
```sql
|
|
SELECT *
|
|
FROM 技术中心_改制订单记录
|
|
WHERE 改制订单编号 LIKE 'BHGZ%';
|
|
```
|
|
|
|
改制记录应回写工艺计划流水号:
|
|
|
|
```sql
|
|
SELECT 改制订单编号, 原零件名称, 原零件图号, 改制零件名称, 改制零件图号, 工艺计划流水号
|
|
FROM 技术中心_改制订单记录
|
|
WHERE 工艺计划流水号 IS NOT NULL;
|
|
```
|
|
|
|
默认工艺应生成:
|
|
|
|
```sql
|
|
SELECT *
|
|
FROM 车间生产管理工艺_基础表_工艺名称
|
|
WHERE 工艺名称 = N'改制';
|
|
```
|
|
|
|
默认工序应生成或被更新:
|
|
|
|
```sql
|
|
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. 如后续恢复“非毛坯物料改制需要领料”,再扩展领料单生成与仓库出库状态。
|