Initial commit: 景耀JY1.0项目

This commit is contained in:
Developer
2026-05-21 09:46:02 +08:00
parent 4969870de8
commit fd70670235
90 changed files with 10278 additions and 1508 deletions

View File

@@ -0,0 +1,388 @@
# 生产计划组件开发实施文档
## 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` |