121 lines
4.5 KiB
Markdown
121 lines
4.5 KiB
Markdown
# 存储过程:工艺数据\_PLM导入 - 运行流程图
|
|
|
|
## 流程图示
|
|
|
|
```mermaid
|
|
flowchart TD
|
|
Start([开始]) --> Validate1{产品流水号<br>是否为空?}
|
|
Validate1 -->|是| Fail1[导入类型=0<br>返回:产品流水号不能为空]
|
|
Fail1 --> End1([结束])
|
|
|
|
Validate1 -->|否| CheckProduct[查询产品信息表<br>获取产品名称]
|
|
CheckProduct --> Validate2{产品是否存在?}
|
|
Validate2 -->|否| Fail2[导入类型=0<br>返回:产品流水号不存在]
|
|
Fail2 --> End2([结束])
|
|
|
|
Validate2 -->|是| SetName[设置产品名称<br>若为空则使用查询到的名称]
|
|
SetName --> Validate3{必填字段验证:<br>图号/名称/工序号/<br>工艺名称/工艺要求}
|
|
|
|
Validate3 -->|任一为空| Fail3[导入类型=3<br>返回:对应字段不能为空]
|
|
Fail3 --> End3([结束])
|
|
|
|
Validate3 -->|全部非空| FindMaterial1{物料编码是否存在<br>且非空?}
|
|
|
|
FindMaterial1 -->|是| FindByCode[通过物料编码<br>查询物料主文件]
|
|
FindByCode --> FindMaterial2{是否找到物料?}
|
|
|
|
FindMaterial1 -->|否| FindByDrawing[通过图号+名称<br>查询物料主文件]
|
|
FindByDrawing --> FindMaterial2
|
|
|
|
FindMaterial2 -->|否| Fail4[导入类型=0<br>返回:物料不存在提示]
|
|
Fail4 --> End4([结束])
|
|
|
|
FindMaterial2 -->|是| GetProcessPlan[订单流水号<br>存在且>0?]
|
|
GetProcessPlan --> CheckExist{获取工艺计划流水号<br>从零件工艺计划视图通过订单号,零件名称,图号查询}
|
|
|
|
CheckExist --> CheckDuplicate[检查工艺数据是否已存在<br>查询零件工序表]
|
|
|
|
|
|
CheckDuplicate -->|是-更新| UpdateOrder[更新订单工艺数据<br>SET 工艺计划流水号/<br>工序顺序/工艺编号/工艺要求]
|
|
UpdateOrder --> CheckUpdate{更新成功?<br>ROWCOUNT>0}
|
|
|
|
CheckDuplicate -->|否-新增| InsertOrder[插入订单工艺数据]
|
|
InsertOrder --> CheckInsert{插入成功?<br>ROWCOUNT>0}
|
|
|
|
|
|
CheckUpdate -->|是| Success2[导入类型=2<br>返回:更新成功]
|
|
CheckUpdate -->|否| Fail6[导入类型=0<br>返回:工艺数据更新失败]
|
|
|
|
CheckInsert -->|是| Success1[导入类型=1<br>返回:新增成功]
|
|
CheckInsert -->|否| Fail7[导入类型=0<br>返回:工艺数据导入失败]
|
|
|
|
Success1 --> End6([结束])
|
|
Success2 --> End6
|
|
Fail6 --> End6
|
|
Fail7 --> End6
|
|
```
|
|
|
|
***
|
|
|
|
## 涉及的数据表
|
|
|
|
| 表名 | 用途 |
|
|
| :------------------ | :--------------- |
|
|
| 产品信息\_基础表 | 验证产品是否存在,获取产品名称 |
|
|
| 库存管理\_物料主文件\_基本 | 验证物料是否存在,获取物料流水号 |
|
|
| 车间生产管理\_零件工艺计划\_视图 | 获取工艺计划流水号 |
|
|
| 车间生产管理工艺\_基础表\_工艺名称 | 获取工艺编号 |
|
|
| 车间生产管理工艺\_零件工序 | 工艺数据的主存储表(增删改查) |
|
|
|
|
***
|
|
|
|
## 流程说明
|
|
|
|
### 3.1 产品验证阶段
|
|
|
|
1. **产品流水号校验**:检查产品流水号是否为空
|
|
2. **产品存在性验证**:从产品信息表查询产品是否存在
|
|
3. **产品名称设置**:若传入的产品名称为空,则使用查询到的名称
|
|
|
|
### 3.2 必填字段验证阶段
|
|
|
|
验证以下必填字段是否非空:
|
|
|
|
- 图号
|
|
- 名称
|
|
- 工序号
|
|
- 工艺名称
|
|
- 工艺要求
|
|
|
|
### 3.3 物料查找阶段
|
|
|
|
支持两种查找方式:
|
|
|
|
1. **优先通过物料编码查找**:若物料编码存在且非空,通过物料编码查询
|
|
2. **图号+名称查找**:若物料编码为空,通过图号和名称组合查询
|
|
|
|
|
|
### 3.4 数据处理阶段
|
|
|
|
根据订单流水号判断处理逻辑:
|
|
|
|
| 条件 | 处理方式 |
|
|
| :-------- | :-------------------------- |
|
|
| 订单流水号 > 0 | 查询零件工序表检查是否已存在,存在则更新,不存在则新增 |
|
|
| 订单流水号 ≤ 0 | 直接插入产品工艺数据 |
|
|
|
|
### 3.5 工艺信息获取阶段
|
|
|
|
1. **获取工艺计划流水号**:从零件工艺计划视图通过订单号获取
|
|
|
|
### 3.6 返回结果码说明
|
|
|
|
| 返回码 | 说明 |
|
|
| :-- | :-------------------------------- |
|
|
| 0 | 失败(产品流水号不存在、物料不存在、工艺名称错误、更新/插入失败) |
|
|
| 1 | 新增成功 |
|
|
| 2 | 更新成功 |
|
|
| 3 | 数据不完整(必填字段为空) |
|
|
| 4 | 工艺名称错误(工艺编号不存在) |
|
|
|