388 lines
14 KiB
Markdown
388 lines
14 KiB
Markdown
# 生产计划组件开发实施文档
|
||
|
||
## 1. 业务描述
|
||
|
||
### 1.1 业务背景
|
||
生产计划管理是车间生产管理的核心模块,用于跟踪和监控生产任务的执行情况。该组件需要展示生产计划的详细信息,包括订单号、产品名称、零件名称、工序、设备分配、计划数量、完成日期等关键信息。
|
||
|
||
### 1.2 业务目标
|
||
- 提供生产计划的查询和展示功能
|
||
- 支持按订单号、零件名称、工序、设备等条件进行筛选
|
||
- 展示生产进度和完成情况
|
||
- 支持分页查询
|
||
|
||
### 1.3 业务流程
|
||
```mermaid
|
||
flowchart TD
|
||
A[用户进入生产计划页面] --> B[选择查询月份]
|
||
B --> C[输入筛选条件]
|
||
C --> D[点击查询按钮]
|
||
D --> E[调用存储过程查询数据]
|
||
E --> F[返回查询结果]
|
||
F --> G[展示生产计划列表]
|
||
```
|
||
|
||
---
|
||
|
||
## 2. 技术方案
|
||
|
||
### 2.1 技术选型
|
||
| 分类 | 技术 | 版本 |
|
||
| :--- | :--- | :--- |
|
||
| 前端框架 | Vue.js | 2.x |
|
||
| UI组件库 | Element UI | 2.x |
|
||
| 构建工具 | Webpack | 4.x |
|
||
| 后端语言 | C# | .NET Framework |
|
||
| 数据库 | SQL Server | 2016+ |
|
||
|
||
### 2.2 架构设计
|
||
|
||
#### 2.2.1 架构分层
|
||
```mermaid
|
||
flowchart LR
|
||
A[前端展示层] --> B[API接口层]
|
||
B --> C[业务逻辑层]
|
||
C --> D[数据访问层]
|
||
D --> E[数据库]
|
||
```
|
||
|
||
#### 2.2.2 模块划分
|
||
| 模块 | 职责 | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| 视图层 | 生产计划列表展示 | Vue组件 |
|
||
| 数据层 | 数据查询与处理 | API调用 |
|
||
| 业务层 | 存储过程执行 | SQL存储过程 |
|
||
| 数据层 | 数据持久化 | 视图与表 |
|
||
|
||
---
|
||
|
||
## 3. 数据库设计
|
||
|
||
### 3.1 涉及的数据库表
|
||
|
||
#### 3.1.1 车间生产管理_零件工序_视图
|
||
| 字段名 | 类型 | 长度 | 说明 |
|
||
| :--- | :--- | :--- | :--- |
|
||
| 零件名称 | nvarchar | 50 | 零件名称 |
|
||
| 数量 | int | - | 订单数量 |
|
||
| 工序 | nvarchar | 50 | 工序名称 |
|
||
| 操作者 | nvarchar | 50 | 操作人员 |
|
||
| 加工设备 | nvarchar | 100 | 加工设备 |
|
||
| 材料 | nvarchar | 100 | 使用材料 |
|
||
| 派工日期 | datetime | - | 派工日期 |
|
||
| 已完成数 | int | - | 已完成数量 |
|
||
| 订单号 | nvarchar | 50 | 订单编号 |
|
||
| 产品名称 | nvarchar | 100 | 产品名称 |
|
||
| 零件图号 | nvarchar | 50 | 零件图号 |
|
||
| 工序流水号 | int | - | 工序流水号(主键) |
|
||
| 工艺计划流水号 | int | - | 工艺计划流水号 |
|
||
| 质检数 | int | - | 质检数量 |
|
||
| 不良数 | int | - | 不良数量 |
|
||
| 工序顺序 | int | - | 工序顺序 |
|
||
| 工艺要求 | nvarchar | 500 | 工艺要求 |
|
||
| 工序状态 | nvarchar | 20 | 工序状态 |
|
||
| 考核状态 | nvarchar | 20 | 考核状态 |
|
||
| 机床名称 | nvarchar | 50 | 机床名称 |
|
||
| 工位号 | nvarchar | 20 | 工位号 |
|
||
| 被派工人员 | nvarchar | 50 | 被派工人员 |
|
||
| 外协数量 | int | - | 外协数量 |
|
||
| 到货数量 | int | - | 到货数量 |
|
||
| 工艺编号 | nvarchar | 50 | 工艺编号 |
|
||
| 订单流水号 | int | - | 订单流水号 |
|
||
| 订单类型 | nvarchar | 20 | 订单类型 |
|
||
| 已分配数 | int | - | 已分配数量 |
|
||
| 分配数 | int | - | 分配数量 |
|
||
| 最大分配数 | int | - | 最大分配数量 |
|
||
| 精工期限 | datetime | - | 精工期限 |
|
||
| 是否为报废补投件 | bit | - | 是否为报废补投件 |
|
||
| 代号 | nvarchar | 50 | 代号 |
|
||
| 定额工时 | decimal | - | 定额工时 |
|
||
| 准结工时 | decimal | - | 准结工时 |
|
||
| 物料编码 | nvarchar | 50 | 物料编码 |
|
||
| 是否加急 | bit | - | 是否加急 |
|
||
| 计划完成日期 | datetime | - | 计划完成日期 |
|
||
| 计划开始日期 | datetime | - | 计划开始日期 |
|
||
|
||
#### 3.1.2 车间生产管理工艺_零件工序_任务分配
|
||
| 字段名 | 类型 | 长度 | 说明 |
|
||
| :--- | :--- | :--- | :--- |
|
||
| 工艺任务流水号 | int | - | 主键 |
|
||
| 工序流水号 | int | - | 关联零件工序视图 |
|
||
| 数量 | int | - | 计划数量 |
|
||
| 人员编号 | int | - | 操作人员编号 |
|
||
| 设备流水号 | int | - | 设备流水号 |
|
||
| 分配时间 | datetime | - | 分配时间 |
|
||
| 完工期限 | datetime | - | 完工期限 |
|
||
| 已领数量 | int | - | 已领数量 |
|
||
| 加工数量 | int | - | 已加工数量 |
|
||
| 是否加工中 | bit | - | 是否正在加工 |
|
||
| 调拨员编号 | int | - | 调拨员编号 |
|
||
| 计划完成日期 | datetime | - | 计划完成日期 |
|
||
| 计划开始日期 | datetime | - | 计划开始日期 |
|
||
|
||
#### 3.1.3 基础数据_设备工位点检表
|
||
| 字段名 | 类型 | 长度 | 说明 |
|
||
| :--- | :--- | :--- | :--- |
|
||
| 设备流水号 | int | - | 主键 |
|
||
| 工位号 | nvarchar | 20 | 工位号 |
|
||
| 设备名称 | nvarchar | 100 | 设备名称 |
|
||
|
||
### 3.2 视图定义
|
||
|
||
#### 车间生产管理_生产计划_视图(逻辑视图)
|
||
该视图为生产计划查询的核心视图,关联以下表:
|
||
- `车间生产管理工艺_零件工序_任务分配`
|
||
- `车间生产管理_零件工序_视图`
|
||
- `基础数据_设备工位点检表`
|
||
|
||
**查询逻辑:**
|
||
```sql
|
||
SELECT
|
||
dbo.车间生产管理_零件工序_视图.订单号,
|
||
dbo.车间生产管理_零件工序_视图.产品名称,
|
||
dbo.车间生产管理_零件工序_视图.零件名称,
|
||
dbo.车间生产管理_零件工序_视图.工序,
|
||
dbo.基础数据_设备工位点检表.工位号 + N':' + dbo.基础数据_设备工位点检表.设备名称 AS 设备,
|
||
dbo.车间生产管理_零件工序_视图.数量 AS 订单数,
|
||
dbo.车间生产管理工艺_零件工序_任务分配.数量 AS 计划数,
|
||
CONVERT(varchar(10), dbo.车间生产管理工艺_零件工序_任务分配.计划完成日期, 23) AS 计划完成日期,
|
||
dbo.车间生产管理工艺_零件工序_任务分配.数量 - dbo.车间生产管理工艺_零件工序_任务分配.加工数量 AS 剩余数,
|
||
dbo.车间生产管理_零件工序_视图.零件图号,
|
||
dbo.车间生产管理_零件工序_视图.工序顺序,
|
||
CONVERT(varchar(10), dbo.车间生产管理工艺_零件工序_任务分配.计划开始日期, 23) AS 计划开始日期,
|
||
dbo.基础数据_设备工位点检表.设备名称
|
||
FROM
|
||
dbo.车间生产管理工艺_零件工序_任务分配
|
||
INNER JOIN
|
||
dbo.车间生产管理_零件工序_视图 ON
|
||
dbo.车间生产管理工艺_零件工序_任务分配.工序流水号 = dbo.车间生产管理_零件工序_视图.工序流水号
|
||
INNER JOIN
|
||
dbo.基础数据_设备工位点检表 ON
|
||
dbo.车间生产管理工艺_零件工序_任务分配.设备流水号 = dbo.基础数据_设备工位点检表.设备流水号
|
||
```
|
||
|
||
---
|
||
|
||
## 4. 存储过程设计
|
||
|
||
### 4.1 车间生产管理_生产计划_查询数据
|
||
|
||
**功能:** 根据筛选条件分页查询生产计划数据
|
||
|
||
**参数说明:**
|
||
|
||
| 参数名 | 类型 | 长度 | 说明 | 默认值 |
|
||
| :--- | :--- | :--- | :--- | :--- |
|
||
| @合同编号_check | bit | - | 是否按合同编号筛选 | null |
|
||
| @合同编号 | nvarchar | 50 | 合同编号 | null |
|
||
| @零件名称_check | bit | - | 是否按零件名称筛选 | null |
|
||
| @零件名称 | nvarchar | 50 | 零件名称 | null |
|
||
| @工序名称_check | bit | - | 是否按工序名称筛选 | null |
|
||
| @工序名称 | nvarchar | 50 | 工序名称 | null |
|
||
| @设备_check | bit | - | 是否按设备筛选 | null |
|
||
| @设备 | nvarchar | 50 | 设备名称 | null |
|
||
| @月份 | nvarchar | 50 | 查询月份(格式:yyyy-MM) | - |
|
||
|
||
**存储过程代码:**
|
||
```sql
|
||
ALTER PROCEDURE [dbo].[车间生产管理_生产计划_查询数据]
|
||
@合同编号_check bit = null,
|
||
@合同编号 nvarchar(50) = null,
|
||
@零件名称_check bit = null,
|
||
@零件名称 nvarchar(50) = null,
|
||
@工序名称_check bit = null,
|
||
@工序名称 nvarchar(50) = null,
|
||
@设备_check bit = null,
|
||
@设备 nvarchar(50) = null,
|
||
@月份 nvarchar(50)
|
||
AS
|
||
declare @年 nvarchar(50)
|
||
declare @月 nvarchar(50)
|
||
|
||
select @年 = left(@月份,4)
|
||
select @月 = SUBSTRING(@月份,CHARINDEX('-',@月份)+1,len(@月份)-charindex('-',@月份))
|
||
|
||
declare @selectStr nvarchar(4000)
|
||
declare @selectStrWhere nvarchar(4000)
|
||
|
||
set @selectStr = 'select * from 车间生产管理_生产计划_视图 '
|
||
|
||
set @selectStrWhere = 'where 年份=@年 and 月份=@月 '
|
||
|
||
if(@零件名称_check = 1)
|
||
set @selectStrWhere = @selectStrWhere+' and 零件名称+零件图号 like + ''%'' + @零件名称 + ''%'' '
|
||
if(@合同编号_check = 1)
|
||
set @selectStrWhere = @selectStrWhere+' and 订单号 like + ''%'' + @合同编号 + ''%'' '
|
||
if(@工序名称_check = 1)
|
||
set @selectStrWhere = @selectStrWhere+' and 工序 like + ''%'' + @工序名称 + ''%'' '
|
||
if(@设备_check = 1)
|
||
set @selectStrWhere = @selectStrWhere+' and 设备 like + ''%'' + @设备 + ''%'' '
|
||
|
||
set @selectStr = @selectStr+@selectStrWhere
|
||
|
||
EXEC sp_executesql @selectStr,
|
||
N'@零件名称 nvarchar(50),@合同编号 nvarchar(50),@工序名称 nvarchar(50),@设备 nvarchar(50),@年 int,@月 int ',
|
||
@零件名称,@合同编号,@工序名称,@设备,@年,@月
|
||
```
|
||
|
||
---
|
||
|
||
## 5. 前端组件设计
|
||
|
||
### 5.1 组件结构
|
||
|
||
**文件路径:** `src/views/SeikoWorkshop/ProductionPlan/index.vue`
|
||
|
||
### 5.2 功能模块
|
||
|
||
#### 5.2.1 查询区域
|
||
| 控件 | 类型 | 绑定字段 | 说明 |
|
||
| :--- | :--- | :--- | :--- |
|
||
| 月份选择器 | el-date-picker | monthValue | 选择查询月份(必填) |
|
||
| 订单编号输入框 | el-input | orderNumberTypeValue | 按订单编号筛选 |
|
||
| 零件名称输入框 | el-input | partNameValue | 按零件名称或图号筛选 |
|
||
| 产品名称输入框 | el-input | productNameValue | 按产品名称筛选 |
|
||
| 状态下拉框 | el-select | statusValue | 按状态筛选(待料/生产中/已完成) |
|
||
| 查询按钮 | el-button | - | 触发查询 |
|
||
|
||
#### 5.2.2 表格展示区域
|
||
| 列名 | 宽度 | 说明 | 特殊处理 |
|
||
| :--- | :--- | :--- | :--- |
|
||
| 序号 | 50px | 行号 | 固定列 |
|
||
| 状态 | 60px | 订单状态 | 标签展示,不同状态不同颜色 |
|
||
| 订单编号 | 140px | 订单编号 | 固定列 |
|
||
| 收货人 | 80px | 收货人 | 固定列 |
|
||
| 投产日期 | 80px | 投产日期 | - |
|
||
| 订单交货日期 | 100px | 订单交货日期 | - |
|
||
| 数量 | 60px | 订单数量 | - |
|
||
| 产品名称 | 120px | 产品名称 | - |
|
||
| 规格型号 | 140px | 规格型号 | - |
|
||
| 零件名称 | 120px | 零件名称 | - |
|
||
| 零件图号 | 120px | 零件图号 | - |
|
||
| 毛坯类型 | 100px | 毛坯类型 | - |
|
||
| 完成率 | 80px | 完成率 | - |
|
||
| 当前状态 | 80px | 当前状态 | - |
|
||
| OP010~OP110 | 60px | 各工序状态 | - |
|
||
|
||
#### 5.2.3 分页区域
|
||
| 功能 | 说明 |
|
||
| :--- | :--- |
|
||
| 总条数 | 显示查询结果总数 |
|
||
| 每页条数选择 | 支持10/20/30/40/100 |
|
||
| 页码跳转 | 支持上一页/下一页/直接跳转 |
|
||
|
||
### 5.3 数据交互流程
|
||
|
||
```mermaid
|
||
sequenceDiagram
|
||
participant 前端 as Vue组件
|
||
participant API as API接口
|
||
participant 数据库 as SQL Server
|
||
|
||
前端->>前端: 用户输入筛选条件
|
||
前端->>前端: 调用searchTable1()方法
|
||
前端->>API: 调用CreateData()创建请求参数
|
||
API->>数据库: 执行存储过程车间生产管理_生产计划_查询数据
|
||
数据库-->>API: 返回查询结果
|
||
API-->>前端: 返回response数据
|
||
前端->>前端: 更新tableData2和total
|
||
前端->>前端: 渲染表格和分页
|
||
```
|
||
|
||
### 5.4 关键代码说明
|
||
|
||
#### 5.4.1 数据参数构造
|
||
```javascript
|
||
var param = []
|
||
param[0] = ['订单编号', this.orderNumberTypeValue]
|
||
param[1] = ['订单编号_check', orderNumberTypeValue_check]
|
||
param[2] = ['零件名称_check', partNameValue_check]
|
||
param[3] = ['零件名称', this.partNameValue]
|
||
param[4] = ['产品名称_check', productNameValue_check]
|
||
param[5] = ['产品名称', this.productNameValue]
|
||
param[6] = ['状态_check', statusValue_check]
|
||
param[7] = ['状态', this.statusValue]
|
||
param[8] = ['月份', this.monthValue]
|
||
```
|
||
|
||
#### 5.4.2 数据请求调用
|
||
```javascript
|
||
var Data = this.CreateData('11', '车间生产管理_生产计划_查询数据', param, this.pageSize, this.pageCurrent)
|
||
this.ExecDatabase(Data).then(response => {
|
||
this.tableData2 = response.data.rows
|
||
this.total = response.data.total
|
||
})
|
||
```
|
||
|
||
---
|
||
|
||
## 6. 详细工作步骤
|
||
|
||
### 6.1 数据库层开发
|
||
|
||
| 步骤 | 任务 | 负责人 | 预计时间 | 状态 |
|
||
| :--- | :--- | :--- | :--- | :--- |
|
||
| 1 | 创建/确认视图`车间生产管理_生产计划_视图` | DBA | 1天 | - |
|
||
| 2 | 创建/更新存储过程`车间生产管理_生产计划_查询数据` | DBA | 0.5天 | - |
|
||
| 3 | 测试存储过程执行结果 | DBA | 0.5天 | - |
|
||
|
||
### 6.2 前端组件开发
|
||
|
||
| 步骤 | 任务 | 负责人 | 预计时间 | 状态 |
|
||
| :--- | :--- | :--- | :--- | :--- |
|
||
| 1 | 创建查询区域UI(日期选择器、输入框、下拉框) | 前端开发 | 0.5天 | - |
|
||
| 2 | 创建表格展示区域(列定义、样式、状态标签) | 前端开发 | 1天 | - |
|
||
| 3 | 实现分页功能(页码切换、条数选择) | 前端开发 | 0.5天 | - |
|
||
| 4 | 实现数据查询逻辑(参数构造、API调用) | 前端开发 | 1天 | - |
|
||
| 5 | 联调测试(接口对接、数据展示验证) | 前端开发 | 1天 | - |
|
||
|
||
### 6.3 测试与上线
|
||
|
||
| 步骤 | 任务 | 负责人 | 预计时间 | 状态 |
|
||
| :--- | :--- | :--- | :--- | :--- |
|
||
| 1 | 功能测试(查询、筛选、分页) | 测试人员 | 1天 | - |
|
||
| 2 | 性能测试(大数据量查询) | 测试人员 | 0.5天 | - |
|
||
| 3 | Bug修复 | 开发人员 | 0.5天 | - |
|
||
| 4 | 代码评审 | 技术负责人 | 0.5天 | - |
|
||
| 5 | 上线部署 | 运维人员 | 0.5天 | - |
|
||
|
||
---
|
||
|
||
## 7. 注意事项
|
||
|
||
### 7.1 数据库注意事项
|
||
1. 确保视图`车间生产管理_生产计划_视图`包含`年份`和`月份`字段用于筛选
|
||
2. 存储过程使用动态SQL,需注意SQL注入风险
|
||
3. 建议对查询结果添加索引优化性能
|
||
|
||
### 7.2 前端注意事项
|
||
1. 月份为必填项,需添加非空校验
|
||
2. 表格列较多,需设置合理的宽度和滚动
|
||
3. 状态标签颜色需根据业务需求调整
|
||
|
||
### 7.3 安全注意事项
|
||
1. 输入参数需进行校验和过滤
|
||
2. 敏感数据需进行脱敏处理
|
||
3. API调用需携带认证信息
|
||
|
||
---
|
||
|
||
## 8. 附录
|
||
|
||
### 8.1 状态映射表
|
||
| 状态值 | 显示文本 | 标签类型 |
|
||
| :--- | :--- | :--- |
|
||
| 待料 | 待料 | warning |
|
||
| 生产中 | 生产中 | success |
|
||
| 已完成 | 已完成 | info |
|
||
|
||
### 8.2 日期格式说明
|
||
- 月份格式:`yyyy-M`(如:2024-01)
|
||
- 日期格式:`yyyy-MM-dd`(如:2024-01-15)
|
||
|
||
### 8.3 文件路径汇总
|
||
| 文件类型 | 文件路径 |
|
||
| :--- | :--- |
|
||
| 前端组件 | `src/views/SeikoWorkshop/ProductionPlan/index.vue` |
|
||
| API配置 | `src/assets/img/api/ManufacturingCenter/ProductionPlanQuery.js` |
|
||
| 图标文件 | `src/icons/svg/ProductionPlan.svg` | |