Files
JY1.0/docs/工艺接口设计文档.md

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 | 工艺名称错误(工艺编号不存在) |