Files
JY1.0/生产计划组件开发实施文档.md
2026-05-21 09:46:02 +08:00

388 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 生产计划组件开发实施文档
## 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` |