3442 lines
88 KiB
Markdown
3442 lines
88 KiB
Markdown
# MES 新增需求技术开发详细方案
|
||
|
||
生成日期:2026-05-27
|
||
依据文档:
|
||
|
||
- `今后开发计划与新增需求分析记录_2026-05-27.docx`
|
||
- `今后开发计划_2026-05-27.md`
|
||
- `新增需求分析与开发记录_2026-05-23.md`
|
||
- `新增需求界面原型设计_2026-05-25.md`
|
||
- `隐性需求综合分析_2026-05-25.md`
|
||
- `MES_功能列表_页面_存储过程映射.md`
|
||
- `项目功能技术路线数据库分析报告_2026-05-22.md`
|
||
- `script.sql`
|
||
|
||
## 1. 项目技术现状
|
||
|
||
### 1.1 前端技术栈
|
||
|
||
主系统目录:`MES_Manage_View_V20`
|
||
|
||
技术栈:
|
||
|
||
- Vue 2.7.16
|
||
- Vue Router 3.6.5
|
||
- Vuex 3.6.2
|
||
- Element UI 2.15.14
|
||
- Webpack 5
|
||
- Axios 0.21.4
|
||
- xlsx / xlsx-style 用于导出
|
||
- vue-print-nb 用于打印
|
||
- pdfjs-dist 用于图纸预览
|
||
- mqtt 用于设备或网关通信
|
||
|
||
主业务页面位置:
|
||
|
||
- `src/views/PlanManagement`:计划、排产、订单关闭。
|
||
- `src/views/ProductionManagement`:生产中心、装配中心、工时、外协、异常、班次。
|
||
- `src/views/QualityManagement`:质检中心、质检任务、质检明细、不合格品。
|
||
- `src/views/ProcessManagement`:标准工艺、生产工艺、工序、图纸。
|
||
- `src/views/DeviceManagement`:设备台账、设备实时数据、设备历史数据。
|
||
- `src/views/SystemMaintenance`:工位、人员、权限等基础维护。
|
||
- `src/views/AnomalousManagement/PunctualWork`:及时开工报表。
|
||
|
||
### 1.2 后端调用方式
|
||
|
||
系统现有模式不是 REST API,而是前端统一传存储过程名给 `.ashx` 网关执行。
|
||
|
||
调用方式:
|
||
|
||
```text
|
||
Vue 页面
|
||
-> this.CreateData(type, procedureName, params, pageSize, pageCurrent)
|
||
-> this.ExecDatabase(data)
|
||
-> MESCommonBase.ashx
|
||
-> SQL Server 存储过程
|
||
```
|
||
|
||
常用 type:
|
||
|
||
| type | 用途 | 说明 |
|
||
|---|---|---|
|
||
| `11` | 查询 | 返回列表或分页数据 |
|
||
| `12` | 新增、修改、删除 | 返回执行结果 |
|
||
| `7` | JSON 批量 | 用于批量排产等 |
|
||
| `2001` | 导出 | 现有导出相关逻辑使用 |
|
||
|
||
参数格式:
|
||
|
||
```js
|
||
const param = []
|
||
param.push(['订单号', this.query.订单号])
|
||
param.push(['合同号', this.query.合同号])
|
||
const data = this.CreateData('11', '存储过程名', param, this.pageSize, this.pageCurrent)
|
||
this.ExecDatabase(data).then(res => { ... })
|
||
```
|
||
|
||
### 1.3 核心数据库对象
|
||
|
||
本轮开发必须优先复用以下核心表和视图。
|
||
|
||
#### 生产计划主表
|
||
|
||
表:`MES_接口_生产计划`
|
||
|
||
关键字段:
|
||
|
||
| 字段 | 类型 | 说明 |
|
||
|---|---|---|
|
||
| `订单编号` | int | 生产订单号,主键 |
|
||
| `合同号` | nvarchar(50) | 合同维度 |
|
||
| `订单状态` | nvarchar(50) | SAP/MES 订单状态 |
|
||
| `物料编号` | nvarchar(500) | 主物料编码 |
|
||
| `物料描述` | nvarchar(500) | 主物料名称 |
|
||
| `计划数量` | decimal(16,2) | 订单计划数量 |
|
||
| `计划开始` | datetime | 订单计划开始 |
|
||
| `计划完成` | datetime | 订单计划完成 |
|
||
| `同步时间` | datetime | SAP/MES 同步时间 |
|
||
| `任务状态` | int | 订单任务状态 |
|
||
| `齐套` | float | 齐套状态或齐套比例 |
|
||
| `预计齐套时间` | datetime | 现有预计齐套时间 |
|
||
| `齐套时间` | datetime | 现有齐套时间 |
|
||
| `发料状态` | nvarchar(50) | 发料状态 |
|
||
| `拣配状态` | nvarchar(50) | 拣配状态 |
|
||
| `发货状态` | nvarchar(50) | 发货状态 |
|
||
| `要求发货日期` | datetime | 发货要求日期 |
|
||
| `入库数量` | decimal(19,6) | 入库数量 |
|
||
| `确认状态` | nvarchar(50) | 现有确认状态 |
|
||
|
||
#### 生产任务表
|
||
|
||
表:`MES_接口_生产计划_生产任务`
|
||
|
||
关键字段:
|
||
|
||
| 字段 | 类型 | 说明 |
|
||
|---|---|---|
|
||
| `AID` | bigint | TaskAID,任务主键 |
|
||
| `订单编号` | int | 生产订单号 |
|
||
| `订单行号` | int | SAP/MES 行号 |
|
||
| `订单拆分内码` | int | 拆分内码 |
|
||
| `物料编码` | nvarchar(500) | 任务物料编码 |
|
||
| `物料名称` | nvarchar(500) | 任务物料名称 |
|
||
| `工序名称` | nvarchar(50) | 工序 |
|
||
| `顺序编号` | int | 工序顺序 |
|
||
| `总工时` | decimal(16,2) | 任务总工时,现有字段 |
|
||
| `指派对象编号` | nvarchar(50) | 指派对象编号 |
|
||
| `指派对象` | nvarchar(50) | 设备/工位/外协/装配等 |
|
||
| `指派数量` | decimal(16,2) | 指派数量 |
|
||
| `计划开始时间` | datetime | 任务计划开始 |
|
||
| `计划完成时间` | datetime | 任务计划完成 |
|
||
| `派工时间` | datetime | 现有派工时间 |
|
||
| `任务状态` | int | 任务状态 |
|
||
| `开工时间` | datetime | 开工时间 |
|
||
| `完工时间` | datetime | 完工时间 |
|
||
| `完成数量` | int | 完成数 |
|
||
| `合格数量` | int | 合格数 |
|
||
| `不合格数量` | int | 不合格数 |
|
||
| `让步放行数量` | int | 让步放行数 |
|
||
| `报废数量` | int | 报废数 |
|
||
| `外协通知` | int | 外协通知状态 |
|
||
| `外协备注` | nvarchar(500) | 外协备注 |
|
||
| `外协分组` | nvarchar(50) | 外协分组 |
|
||
|
||
#### 生产订单视图
|
||
|
||
视图:`View_生产订单_MES`
|
||
|
||
说明:目前多数计划、排产、生产任务查询均基于该视图。新增报表优先从该视图读取生产订单和任务基础信息。
|
||
|
||
#### 生产操作记录
|
||
|
||
表:`YL_加工中心_操作记录表`
|
||
|
||
用途:
|
||
|
||
- 现场开工、暂停、报工、辅助开始/结束、异常等操作记录。
|
||
- 及时检验起算时间。
|
||
- 历史工时查询。
|
||
- 班次产量表。
|
||
- 当前对应人员和当前对应内容。
|
||
|
||
现有字段从视图和过程可见:
|
||
|
||
| 字段 | 说明 |
|
||
|---|---|
|
||
| `TaskAID` | 关联生产任务 |
|
||
| `操作类别` | 开始加工、报工、辅助结束、异常等 |
|
||
| `操作人` | 人员 |
|
||
| `工位编号` / `工位名称` | 工位/设备 |
|
||
| `开始时间` / `结束时间` | 操作时间段 |
|
||
| `工时` | 秒或分钟,现有过程按 `工时 > 0` 汇总 |
|
||
| `操作数值` | 数量或工时数值 |
|
||
| `操作内容` | 工作内容 |
|
||
| `操作描述` / `异常说明` | 说明 |
|
||
|
||
#### 质检记录
|
||
|
||
表:`YL_质量检验_质检记录`
|
||
|
||
用途:
|
||
|
||
- 及时检验报表。
|
||
- 生产日报-送检。
|
||
- 让步接收记录。
|
||
- 外协任务检验字段补充。
|
||
- 产品合格率。
|
||
|
||
关键字段:
|
||
|
||
| 字段 | 说明 |
|
||
|---|---|
|
||
| `QT_AID` | 质检主键 |
|
||
| `TaskAID` | 关联生产任务 |
|
||
| `计划号` | 生产订单 |
|
||
| `零件编码` / `零件名称` | 物料 |
|
||
| `工序名称` | 工序 |
|
||
| `质检类型` / `检测类型编号` | 首检、巡检、序检、收检、终检等 |
|
||
| `检验数量` | 检验数 |
|
||
| `合格数` | 合格数 |
|
||
| `不合格数` | 不合格数 |
|
||
| `检测人` | 检验人 |
|
||
| `检测时间` | 检验时间 |
|
||
| `检测说明` | 说明 |
|
||
|
||
#### 设备采集相关表
|
||
|
||
| 表 | 说明 |
|
||
|---|---|
|
||
| `CaChe_Var` | 设备变量当前缓存 |
|
||
| `历史_设备数据_定时` | 设备历史采集点位数据 |
|
||
| `历史_工位设备状态每分钟记录` | 工位状态每分钟快照 |
|
||
| `YL_设备管理_设备台账` | 设备台账 |
|
||
| `YL_设备管理_工时记录` | 设备循环时间采集记录 |
|
||
|
||
## 2. 总体开发原则
|
||
|
||
### 2.1 页面开发原则
|
||
|
||
1. 保持现有 Element UI 风格:顶部筛选区、中间按钮区、下方表格、弹窗明细。
|
||
2. 报表页面只做查询、导出、打印、钻取,不承担基础主数据维护。
|
||
3. 待办类页面可以做状态确认,例如手续确认。
|
||
4. 能扩展现有页面的,不新建孤立维护页面。
|
||
5. 所有新增页面必须同步菜单、按钮权限、路由组件、操作日志。
|
||
6. 所有新增表格都要支持分页,避免一次性查全量。
|
||
7. 时间筛选全部统一为闭区间:开始日 `00:00:00` 到结束日 `23:59:59`。
|
||
8. 导出字段必须与页面字段一致。
|
||
|
||
### 2.2 数据库开发原则
|
||
|
||
1. 优先复用现有表和视图。
|
||
2. 新增字段优先加在业务主表或扩展表,不能只存在报表 SQL 中。
|
||
3. 人工维护字段必须有维护人、维护时间、原值、新值或日志。
|
||
4. SAP 来源字段必须有同步时间和同步状态。
|
||
5. 设备采集数据必须先落原始数据,再做汇总,不直接覆盖业务结果。
|
||
6. 报表公共口径优先做视图或公共存储过程,不允许每个报表各写一套算法。
|
||
7. 看板类过程必须可传统计日期;实时看板默认 `GETDATE()`。
|
||
8. 写操作过程必须返回 `result`、`message`,批量操作要返回每行结果。
|
||
|
||
### 2.3 命名规范
|
||
|
||
新增表建议命名:
|
||
|
||
```text
|
||
业务域_模块_对象
|
||
例:生产管理_装配已排产需求_维护字段
|
||
例:生产管理_设计任务
|
||
例:生产管理_编程任务
|
||
```
|
||
|
||
新增存储过程建议命名:
|
||
|
||
```text
|
||
业务域_页面_动作
|
||
例:生产管理_装配已排产需求_查询
|
||
例:生产管理_装配已排产需求_维护字段保存
|
||
例:质量管理_及时检验报表_查询
|
||
```
|
||
|
||
如复用原有 MES 前缀,也可以使用:
|
||
|
||
```text
|
||
MES_AssemblyPlannedDemand_Query
|
||
MES_AssemblyPlannedDemand_SaveManualFields
|
||
```
|
||
|
||
本项目已有大量中文过程名,建议新增需求优先用中文业务名,便于现场维护。
|
||
|
||
## 3. 通用新增基础表
|
||
|
||
以下表建议作为多需求共用基础能力,避免每个需求重复建字段。
|
||
|
||
### 3.1 SAP 调用日志表
|
||
|
||
表名:`系统集成_SAP调用日志`
|
||
|
||
用途:
|
||
|
||
- 批量关闭 SAP 订单。
|
||
- 外协采购收货单号追踪。
|
||
- 发货通知、缺件明细、派工时间、合同交货期同步。
|
||
- 后续 SAP 失败重试和对账。
|
||
|
||
建议 SQL:
|
||
|
||
```sql
|
||
CREATE TABLE dbo.系统集成_SAP调用日志 (
|
||
AID bigint IDENTITY(1,1) PRIMARY KEY,
|
||
业务类型 nvarchar(50) NOT NULL,
|
||
业务主键 nvarchar(100) NULL,
|
||
生产订单 int NULL,
|
||
TaskAID bigint NULL,
|
||
SAP对象类型 nvarchar(50) NULL,
|
||
SAP单据号 nvarchar(100) NULL,
|
||
请求地址 nvarchar(500) NULL,
|
||
请求方法 nvarchar(20) NULL,
|
||
请求内容 nvarchar(max) NULL,
|
||
返回内容 nvarchar(max) NULL,
|
||
执行结果 nvarchar(20) NOT NULL,
|
||
失败原因 nvarchar(max) NULL,
|
||
请求人 nvarchar(50) NULL,
|
||
请求时间 datetime NOT NULL DEFAULT GETDATE(),
|
||
完成时间 datetime NULL,
|
||
是否可重试 bit NOT NULL DEFAULT 0,
|
||
重试次数 int NOT NULL DEFAULT 0
|
||
);
|
||
```
|
||
|
||
索引:
|
||
|
||
```sql
|
||
CREATE INDEX IX_系统集成_SAP调用日志_生产订单 ON dbo.系统集成_SAP调用日志(生产订单);
|
||
CREATE INDEX IX_系统集成_SAP调用日志_业务类型_时间 ON dbo.系统集成_SAP调用日志(业务类型, 请求时间);
|
||
```
|
||
|
||
### 3.2 业务字段维护日志表
|
||
|
||
表名:`系统管理_业务字段维护日志`
|
||
|
||
用途:
|
||
|
||
- 装配完成时间人工修改。
|
||
- 钣金预达、钣金到达、泵预达、泵到达维护。
|
||
- 预计总工时维护。
|
||
- 预计可执行时间维护。
|
||
- 手续确认等人工确认字段。
|
||
|
||
建议 SQL:
|
||
|
||
```sql
|
||
CREATE TABLE dbo.系统管理_业务字段维护日志 (
|
||
AID bigint IDENTITY(1,1) PRIMARY KEY,
|
||
业务模块 nvarchar(100) NOT NULL,
|
||
业务表名 nvarchar(100) NULL,
|
||
业务主键 nvarchar(100) NOT NULL,
|
||
字段名 nvarchar(100) NOT NULL,
|
||
原值 nvarchar(max) NULL,
|
||
新值 nvarchar(max) NULL,
|
||
维护说明 nvarchar(500) NULL,
|
||
维护人 nvarchar(50) NOT NULL,
|
||
维护时间 datetime NOT NULL DEFAULT GETDATE()
|
||
);
|
||
```
|
||
|
||
索引:
|
||
|
||
```sql
|
||
CREATE INDEX IX_系统管理_业务字段维护日志_业务 ON dbo.系统管理_业务字段维护日志(业务模块, 业务主键);
|
||
```
|
||
|
||
### 3.3 统一异常关联表
|
||
|
||
现有已有异常管控页面和异常工时逻辑,但本轮要求所有报工页面选中任务直接报异常,且审批人多选。建议在不推翻现有异常管控的前提下增加关联表。
|
||
|
||
表名:`生产管理_异常管控_任务异常`
|
||
|
||
```sql
|
||
CREATE TABLE dbo.生产管理_异常管控_任务异常 (
|
||
异常AID bigint IDENTITY(1,1) PRIMARY KEY,
|
||
异常编号 nvarchar(50) NOT NULL,
|
||
来源模块 nvarchar(50) NOT NULL,
|
||
生产订单 int NULL,
|
||
TaskAID bigint NULL,
|
||
工序名称 nvarchar(50) NULL,
|
||
指派对象 nvarchar(50) NULL,
|
||
异常类型 nvarchar(50) NULL,
|
||
异常说明 nvarchar(1000) NULL,
|
||
附件ID nvarchar(500) NULL,
|
||
状态 nvarchar(20) NOT NULL DEFAULT N'待处理',
|
||
发起人 nvarchar(50) NOT NULL,
|
||
发起时间 datetime NOT NULL DEFAULT GETDATE(),
|
||
实际处理人 nvarchar(50) NULL,
|
||
处理时间 datetime NULL,
|
||
处理意见 nvarchar(1000) NULL,
|
||
是否关闭 bit NOT NULL DEFAULT 0
|
||
);
|
||
|
||
CREATE TABLE dbo.生产管理_异常管控_审批人 (
|
||
AID bigint IDENTITY(1,1) PRIMARY KEY,
|
||
异常AID bigint NOT NULL,
|
||
审批人编号 int NULL,
|
||
审批人姓名 nvarchar(50) NOT NULL,
|
||
是否已处理 bit NOT NULL DEFAULT 0,
|
||
处理时间 datetime NULL
|
||
);
|
||
```
|
||
|
||
索引:
|
||
|
||
```sql
|
||
CREATE INDEX IX_生产管理_异常管控_任务异常_TaskAID ON dbo.生产管理_异常管控_任务异常(TaskAID, 是否关闭);
|
||
CREATE INDEX IX_生产管理_异常管控_审批人_人员 ON dbo.生产管理_异常管控_审批人(审批人姓名, 是否已处理);
|
||
```
|
||
|
||
## 4. 需求 1:及时开工报表
|
||
|
||
### 4.1 现有页面
|
||
|
||
页面:`src/views/AnomalousManagement/PunctualWork/index.vue`
|
||
|
||
现状:
|
||
|
||
- 当前按指派对象过滤偏向反选逻辑。
|
||
- 需求要求增加正选页面或正选模式。
|
||
- 真实目标不是重做及时开工算法,只改筛选方式。
|
||
|
||
### 4.2 页面方案
|
||
|
||
在查询区新增:
|
||
|
||
| 控件 | 类型 | 默认值 | 说明 |
|
||
|---|---|---|---|
|
||
| 指派对象 | `el-select multiple` | 全部 | 复用现有设备/工位下拉 |
|
||
| 查询模式 | `el-radio-group` 或 `el-select` | 排除 | 包含、排除 |
|
||
|
||
页面展示:
|
||
|
||
```text
|
||
指派对象:[多选] 查询模式:[包含/排除] [查询] [重置] [导出]
|
||
```
|
||
|
||
交互规则:
|
||
|
||
- 查询模式=包含:只查选中指派对象。
|
||
- 查询模式=排除:排除选中指派对象。
|
||
- 未选择指派对象:不增加指派对象条件。
|
||
- 默认保留原逻辑,避免影响现场使用习惯。
|
||
|
||
### 4.3 存储过程
|
||
|
||
建议扩展现有及时开工过程,增加参数:
|
||
|
||
```sql
|
||
@指派对象 nvarchar(max) = N'',
|
||
@指派对象查询模式 nvarchar(10) = N'排除'
|
||
```
|
||
|
||
过滤逻辑:
|
||
|
||
```sql
|
||
IF ISNULL(@指派对象, '') <> ''
|
||
BEGIN
|
||
IF @指派对象查询模式 = N'包含'
|
||
SET @where = @where + N' AND 指派对象 IN (SELECT value FROM STRING_SPLIT(@指派对象, '',''))'
|
||
ELSE
|
||
SET @where = @where + N' AND 指派对象 NOT IN (SELECT value FROM STRING_SPLIT(@指派对象, '',''))'
|
||
END
|
||
```
|
||
|
||
注意:
|
||
|
||
- 现有很多过程使用字符串拼接动态 SQL,后续应尽量用 `sp_executesql` 参数化,降低注入风险。
|
||
- 如果 `.ashx` 传参不支持 `nvarchar(max)`,可用 `nvarchar(4000)`。
|
||
|
||
### 4.4 不需要新增表
|
||
|
||
该需求只改页面和存储过程参数,不新增表。
|
||
|
||
## 5. 需求 2:机加件排产-表单
|
||
|
||
包含两件事:
|
||
|
||
1. 已排产页面日期筛选优化。
|
||
2. 新增历史工时查询,总工时列和明细弹窗。
|
||
|
||
### 5.1 现有页面
|
||
|
||
页面:`src/views/PlanManagement/SelfMakePlandone/index.vue`
|
||
|
||
现有查询过程:`MES_OrderPlanned_Query`
|
||
|
||
现有过程参数:
|
||
|
||
```sql
|
||
@计划开始1 nvarchar(50)='',
|
||
@计划开始2 nvarchar(50)='',
|
||
@计划完成1 nvarchar(50)='',
|
||
@计划完成2 nvarchar(50)=''
|
||
```
|
||
|
||
### 5.2 页面日期筛选
|
||
|
||
改造前:
|
||
|
||
- 计划开始时间为时间段。
|
||
- 计划完成时间为时间段。
|
||
|
||
改造后:
|
||
|
||
| 字段 | 控件 | 参数传递 |
|
||
|---|---|---|
|
||
| 计划开始日期 | `el-date-picker type="date"` | 传 `计划开始日期` |
|
||
| 计划完成日期 | `el-date-picker type="date"` | 传 `计划完成日期` |
|
||
|
||
前端传参方式:
|
||
|
||
```js
|
||
if (this.query.计划开始日期) {
|
||
param.push(['计划开始日期', this.query.计划开始日期])
|
||
}
|
||
if (this.query.计划完成日期) {
|
||
param.push(['计划完成日期', this.query.计划完成日期])
|
||
}
|
||
```
|
||
|
||
兼容方案:
|
||
|
||
- 为减少影响,可以继续传旧参数:
|
||
- `计划开始1 = yyyy-MM-dd 00:00:00`
|
||
- `计划开始2 = yyyy-MM-dd 23:59:59`
|
||
- `计划完成1 = yyyy-MM-dd 00:00:00`
|
||
- `计划完成2 = yyyy-MM-dd 23:59:59`
|
||
- 存储过程也可新增单日期参数,旧参数保留。
|
||
|
||
### 5.3 存储过程改造
|
||
|
||
建议扩展 `MES_OrderPlanned_Query`:
|
||
|
||
```sql
|
||
ALTER PROCEDURE dbo.MES_OrderPlanned_Query
|
||
@订单号 int = 0,
|
||
...
|
||
@计划开始日期 nvarchar(50) = '',
|
||
@计划完成日期 nvarchar(50) = '',
|
||
@指派对象查询模式 nvarchar(10) = N'包含'
|
||
AS
|
||
BEGIN
|
||
...
|
||
IF (@计划开始日期 <> '')
|
||
SET @selectStrWhere = @selectStrWhere +
|
||
' AND [计划开始时间] >= ''' + @计划开始日期 + ' 00:00:00''
|
||
AND [计划开始时间] < DATEADD(DAY, 1, ''' + @计划开始日期 + ''')'
|
||
|
||
IF (@计划完成日期 <> '')
|
||
SET @selectStrWhere = @selectStrWhere +
|
||
' AND [计划完成时间] >= ''' + @计划完成日期 + ' 00:00:00''
|
||
AND [计划完成时间] < DATEADD(DAY, 1, ''' + @计划完成日期 + ''')'
|
||
END
|
||
```
|
||
|
||
更稳妥写法是把日期转成 `date` 类型后参数化。
|
||
|
||
### 5.4 总工时列
|
||
|
||
表格新增列:
|
||
|
||
| 列名 | 字段 | 交互 |
|
||
|---|---|---|
|
||
| 总工时 | `历史总工时` | 蓝色可点击,点击打开明细 |
|
||
|
||
总工时口径:
|
||
|
||
- 数据来源:`YL_加工中心_操作记录表`
|
||
- 过滤:`TaskAID = 当前任务 TaskAID`,`工时 > 0`
|
||
- 默认包含:报工、辅助结束、加班等正向工时。
|
||
- 默认排除:异常负工时、未结束记录。
|
||
- 单位:建议统一显示小时,保留 2 位小数。
|
||
|
||
### 5.5 新增存储过程
|
||
|
||
#### 5.5.1 总工时汇总
|
||
|
||
过程名:`生产管理_机加已排产_历史工时汇总`
|
||
|
||
参数:
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
|---|---|---|
|
||
| `@TaskAID` | bigint | 可选,单任务 |
|
||
| `@订单号` | int | 可选,订单 |
|
||
| `@开始日期` | date | 可选 |
|
||
| `@结束日期` | date | 可选 |
|
||
|
||
返回字段:
|
||
|
||
| 字段 | 说明 |
|
||
|---|---|
|
||
| `TaskAID` | 任务 |
|
||
| `订单编号` | 订单 |
|
||
| `工序名称` | 工序 |
|
||
| `总工时分钟` | 分钟 |
|
||
| `总工时小时` | 小时 |
|
||
|
||
SQL 示例:
|
||
|
||
```sql
|
||
CREATE PROCEDURE dbo.生产管理_机加已排产_历史工时汇总
|
||
@TaskAID bigint = NULL,
|
||
@订单号 int = NULL,
|
||
@开始日期 date = NULL,
|
||
@结束日期 date = NULL
|
||
AS
|
||
BEGIN
|
||
SET NOCOUNT ON;
|
||
|
||
SELECT
|
||
o.TaskAID,
|
||
MAX(t.订单编号) AS 订单编号,
|
||
MAX(o.工序名称) AS 工序名称,
|
||
SUM(ISNULL(o.工时, 0)) AS 总工时分钟,
|
||
CAST(SUM(ISNULL(o.工时, 0)) / 60.0 AS decimal(18,2)) AS 总工时小时
|
||
FROM dbo.YL_加工中心_操作记录表 o
|
||
LEFT JOIN dbo.MES_接口_生产计划_生产任务 t ON o.TaskAID = t.AID
|
||
WHERE ISNULL(o.工时, 0) > 0
|
||
AND (@TaskAID IS NULL OR o.TaskAID = @TaskAID)
|
||
AND (@订单号 IS NULL OR t.订单编号 = @订单号)
|
||
AND (@开始日期 IS NULL OR o.开始时间 >= @开始日期)
|
||
AND (@结束日期 IS NULL OR o.开始时间 < DATEADD(DAY, 1, @结束日期))
|
||
GROUP BY o.TaskAID;
|
||
END
|
||
```
|
||
|
||
#### 5.5.2 历史工时明细
|
||
|
||
过程名:`生产管理_机加已排产_历史工时明细`
|
||
|
||
参数:
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
|---|---|---|
|
||
| `@TaskAID` | bigint | 必填 |
|
||
|
||
返回字段:
|
||
|
||
| 字段 | 说明 |
|
||
|---|---|
|
||
| `设备名称` | 工位名称 |
|
||
| `日期` | 开始时间日期 |
|
||
| `生产订单` | 订单编号 |
|
||
| `物料编码` | 物料编码 |
|
||
| `物料名称` | 物料名称 |
|
||
| `工序名称` | 工序 |
|
||
| `操作人` | 操作人 |
|
||
| `开始时间` | 开始 |
|
||
| `结束时间` | 结束 |
|
||
| `工时分钟` | 分钟 |
|
||
| `工时小时` | 小时 |
|
||
| `设备日期小计小时` | 前端可展示分组合计 |
|
||
|
||
SQL 示例:
|
||
|
||
```sql
|
||
CREATE PROCEDURE dbo.生产管理_机加已排产_历史工时明细
|
||
@TaskAID bigint
|
||
AS
|
||
BEGIN
|
||
SET NOCOUNT ON;
|
||
|
||
SELECT
|
||
o.工位名称 AS 设备名称,
|
||
CONVERT(date, o.开始时间) AS 日期,
|
||
t.订单编号 AS 生产订单,
|
||
t.物料编码,
|
||
t.物料名称,
|
||
o.工序名称,
|
||
o.操作人,
|
||
o.开始时间,
|
||
o.结束时间,
|
||
ISNULL(o.工时, 0) AS 工时分钟,
|
||
CAST(ISNULL(o.工时, 0) / 60.0 AS decimal(18,2)) AS 工时小时,
|
||
CAST(SUM(ISNULL(o.工时, 0)) OVER (PARTITION BY o.工位名称, CONVERT(date, o.开始时间)) / 60.0 AS decimal(18,2)) AS 设备日期小计小时
|
||
FROM dbo.YL_加工中心_操作记录表 o
|
||
LEFT JOIN dbo.MES_接口_生产计划_生产任务 t ON o.TaskAID = t.AID
|
||
WHERE o.TaskAID = @TaskAID
|
||
AND ISNULL(o.工时, 0) > 0
|
||
ORDER BY o.工位名称, CONVERT(date, o.开始时间), o.开始时间;
|
||
END
|
||
```
|
||
|
||
### 5.6 前端弹窗
|
||
|
||
弹窗名:历史工时明细
|
||
|
||
结构:
|
||
|
||
```text
|
||
设备:CNC-01 小计:12.50小时
|
||
日期:2026-05-28 小计:8.00小时
|
||
任务明细表
|
||
日期:2026-05-29 小计:4.50小时
|
||
任务明细表
|
||
```
|
||
|
||
Element UI 实现建议:
|
||
|
||
- 用 `el-dialog`。
|
||
- 明细用 `el-table` 展示,按设备、日期排序。
|
||
- 如需要折叠效果,使用前端 computed 分组。
|
||
- 总工时列点击时调用 `生产管理_机加已排产_历史工时明细`。
|
||
|
||
### 5.7 不建议新增表
|
||
|
||
本需求只需要新增两个查询过程,不需要新增表。
|
||
|
||
## 6. 需求 3:装配已排产需求
|
||
|
||
### 6.1 定位
|
||
|
||
这是本轮最大的独立子项目,不是简单报表。
|
||
|
||
页面目标:
|
||
|
||
- 基于装配已排产数据。
|
||
- 整合 SAP 字段、MES 报工、工时、异常、齐套时间、装配完成时间、日计划。
|
||
- 支持部分人工维护字段。
|
||
|
||
建议页面路径:
|
||
|
||
```text
|
||
src/views/ProductionManagement/AssemblyPlannedDemand/index.vue
|
||
```
|
||
|
||
菜单建议:
|
||
|
||
```text
|
||
生产管理 -> 装配管理 -> 装配已排产需求
|
||
```
|
||
|
||
### 6.2 页面布局
|
||
|
||
页面结构:
|
||
|
||
```text
|
||
查询区:
|
||
系统分类[全部/系统/非系统] 合同号 生产订单 物料编码/名称
|
||
发料齐套时间[起止] 装配完成时间[起止] 状态[全部]
|
||
[查询] [重置] [导出] [日计划] [打印]
|
||
|
||
主表:
|
||
生产订单 合同号 物料编码 物料名称 系统/非系统 派工时间 合同交货期
|
||
发料齐套时间 装配完成时间 当前对应人员 当前对应内容
|
||
生产订单累计工时 合同工时汇总 合同进度参考 预计总工时 预计剩余工时
|
||
钣金预达 钣金到达 泵 生产异常 历史工序说明 操作
|
||
|
||
操作列:
|
||
[维护] [工时明细] [异常明细] [历史工序] [日计划]
|
||
```
|
||
|
||
### 6.3 字段口径
|
||
|
||
| 字段 | 来源 | 维护方式 | 说明 |
|
||
|---|---|---|---|
|
||
| 生产订单 | `MES_接口_生产计划.订单编号` | 只读 | 主键 |
|
||
| 合同号 | `MES_接口_生产计划.合同号` | 只读 | 合同维度 |
|
||
| 物料编码 | `MES_接口_生产计划.物料编号` | 只读 | 主物料 |
|
||
| 物料名称 | `MES_接口_生产计划.物料描述` | 只读 | 主物料名称 |
|
||
| 系统/非系统 | 规则计算 | 只读 | 高压冷却为系统,阀类非高压冷却为非系统 |
|
||
| 派工时间 | SAP 或任务表 `派工时间` | 只读 | 以 SAP 提供为准;现任务表已有派工时间 |
|
||
| 合同交货期 | SAP | 只读 | 需同步字段 |
|
||
| 发料齐套时间 | SAP/MES 齐套字段 | 可必要维护 | 优先使用 `齐套时间` 或后续 SAP 字段 |
|
||
| 装配完成时间 | 发料齐套时间 + 3 天 | 可维护 | 人工修改需记录日志 |
|
||
| 钣金预达 | 人工维护 | 可维护 | 过程字段 |
|
||
| 钣金到达 | 人工维护 | 可维护 | 过程字段 |
|
||
| 泵 | 人工维护 | 可维护 | 建议拆成泵预达/泵到达或说明 |
|
||
| 当前对应人员 | 操作记录 | 只读 | 开始未结束的人,多个合并 |
|
||
| 当前对应内容 | 操作记录/新增字段 | 只读/维护 | 装配开始时输入的工作内容 |
|
||
| 生产订单累计工时 | 工时汇总 | 只读 | 按生产订单分类汇总装配、质量、设计 |
|
||
| 历史工序说明 | 报工结束说明 | 只读 | 多条合并或明细弹窗 |
|
||
| 预计总工时 | 人工维护 | 可维护 | 订单级 |
|
||
| 合同工时汇总 | 工时汇总 | 只读 | 合同下所有订单 |
|
||
| 合同进度参考 | 计算 | 只读 | 累计工时 / 预计总工时 |
|
||
| 预计剩余工时 | 计算 | 只读 | 预计总工时 - 累计工时 |
|
||
| 生产异常 | 异常表 | 只读 | 未关闭异常数和明细 |
|
||
|
||
### 6.4 建议新增字段
|
||
|
||
优先不要直接无限扩展主表。建议建订单扩展表。
|
||
|
||
表名:`生产管理_装配已排产需求_扩展`
|
||
|
||
```sql
|
||
CREATE TABLE dbo.生产管理_装配已排产需求_扩展 (
|
||
AID bigint IDENTITY(1,1) PRIMARY KEY,
|
||
订单编号 int NOT NULL,
|
||
发料齐套时间 datetime NULL,
|
||
发料齐套时间来源 nvarchar(50) NULL,
|
||
装配完成时间 datetime NULL,
|
||
装配完成时间是否人工修改 bit NOT NULL DEFAULT 0,
|
||
SAP派工时间 datetime NULL,
|
||
合同交货期 datetime NULL,
|
||
钣金预达 datetime NULL,
|
||
钣金到达 datetime NULL,
|
||
泵预达 datetime NULL,
|
||
泵到达 datetime NULL,
|
||
泵说明 nvarchar(500) NULL,
|
||
预计总工时 decimal(18,2) NULL,
|
||
备注 nvarchar(1000) NULL,
|
||
最后维护人 nvarchar(50) NULL,
|
||
最后维护时间 datetime NULL,
|
||
创建时间 datetime NOT NULL DEFAULT GETDATE()
|
||
);
|
||
|
||
CREATE UNIQUE INDEX UX_生产管理_装配已排产需求_扩展_订单编号
|
||
ON dbo.生产管理_装配已排产需求_扩展(订单编号);
|
||
```
|
||
|
||
### 6.5 当前对应内容
|
||
|
||
当前系统 `MES_人员工时记录_开始` 和装配中心已有人员工时逻辑。需求要求“装配开始时输入工作内容”。如果现有开始记录没有工作内容字段,应补字段到对应记录表。由于实际装配人员工时表名需从存储过程确认,建议先通过 `MES_人员工时记录_开始` 的落表对象确认。
|
||
|
||
建议新增字段:
|
||
|
||
```sql
|
||
ALTER TABLE dbo.YL_加工中心_操作记录表 ADD 当前工作内容 nvarchar(1000) NULL;
|
||
```
|
||
|
||
如果装配人员工时独立表存在,应加在装配人员工时表,而不是操作记录表。
|
||
|
||
前端改造:
|
||
|
||
- `AssemblyCenter` 开始装配弹窗增加 `工作内容`。
|
||
- 调用 `MES_人员工时记录_开始` 时增加参数 `@工作内容`。
|
||
- 未结束记录的人员和工作内容在装配已排产需求页展示。
|
||
|
||
### 6.6 工时汇总视图
|
||
|
||
建议新增统一工时视图,供装配已排产需求、合同工时、工时报表复用。
|
||
|
||
视图名:`View_统一工时明细`
|
||
|
||
字段:
|
||
|
||
| 字段 | 说明 |
|
||
|---|---|
|
||
| `来源模块` | 机加、装配、质量、设计、编程、设备 |
|
||
| `工时类型` | 装配、质量、设计等 |
|
||
| `生产订单` | 订单 |
|
||
| `合同号` | 合同 |
|
||
| `TaskAID` | 任务,可空 |
|
||
| `工序名称` | 工序 |
|
||
| `操作人` | 人员 |
|
||
| `开始时间` | 开始 |
|
||
| `结束时间` | 结束 |
|
||
| `工时分钟` | 分钟 |
|
||
| `工时小时` | 小时 |
|
||
|
||
第一阶段可只接入:
|
||
|
||
- 装配:`MES_人员工时记录_*` 对应表或 `YL_加工中心_操作记录表`
|
||
- 质量:质检中心人员工时记录或操作记录
|
||
- 设计:设计任务报工表,等设计模块完成后接入
|
||
|
||
### 6.7 查询存储过程
|
||
|
||
过程名:`生产管理_装配已排产需求_查询`
|
||
|
||
参数:
|
||
|
||
| 参数 | 类型 |
|
||
|---|---|
|
||
| `@系统分类` | nvarchar(20),全部/系统/非系统 |
|
||
| `@合同号` | nvarchar(50) |
|
||
| `@订单编号` | int |
|
||
| `@物料` | nvarchar(100) |
|
||
| `@发料齐套开始` | date |
|
||
| `@发料齐套结束` | date |
|
||
| `@装配完成开始` | date |
|
||
| `@装配完成结束` | date |
|
||
| `@状态` | nvarchar(50) |
|
||
|
||
核心 SQL 口径:
|
||
|
||
```sql
|
||
SELECT
|
||
p.订单编号,
|
||
p.合同号,
|
||
p.物料编号,
|
||
p.物料描述,
|
||
CASE
|
||
WHEN p.物料描述 LIKE N'%高压冷却%' THEN N'系统'
|
||
ELSE N'非系统'
|
||
END AS 系统分类,
|
||
ISNULL(e.SAP派工时间, MAX(t.派工时间)) AS 派工时间,
|
||
e.合同交货期,
|
||
COALESCE(e.发料齐套时间, p.齐套时间, p.预计齐套时间) AS 发料齐套时间,
|
||
COALESCE(e.装配完成时间, DATEADD(DAY, 3, COALESCE(e.发料齐套时间, p.齐套时间, p.预计齐套时间))) AS 装配完成时间,
|
||
e.钣金预达,
|
||
e.钣金到达,
|
||
e.泵预达,
|
||
e.泵到达,
|
||
e.泵说明,
|
||
e.预计总工时,
|
||
wh.生产订单累计工时,
|
||
chw.合同工时汇总,
|
||
CASE WHEN ISNULL(e.预计总工时,0) = 0 THEN NULL
|
||
ELSE CAST(wh.生产订单累计工时 / e.预计总工时 AS decimal(18,4))
|
||
END AS 合同进度参考,
|
||
ISNULL(e.预计总工时,0) - ISNULL(wh.生产订单累计工时,0) AS 预计剩余工时,
|
||
cur.当前对应人员,
|
||
cur.当前对应内容,
|
||
abn.未关闭异常数
|
||
FROM dbo.MES_接口_生产计划 p
|
||
LEFT JOIN dbo.MES_接口_生产计划_生产任务 t ON p.订单编号 = t.订单编号
|
||
LEFT JOIN dbo.生产管理_装配已排产需求_扩展 e ON p.订单编号 = e.订单编号
|
||
LEFT JOIN (...) wh ON p.订单编号 = wh.生产订单
|
||
LEFT JOIN (...) chw ON p.合同号 = chw.合同号
|
||
LEFT JOIN (...) cur ON p.订单编号 = cur.生产订单
|
||
LEFT JOIN (...) abn ON p.订单编号 = abn.生产订单
|
||
WHERE p.自制件属性 LIKE N'%装配%'
|
||
GROUP BY ...
|
||
```
|
||
|
||
### 6.8 保存维护字段过程
|
||
|
||
过程名:`生产管理_装配已排产需求_维护字段保存`
|
||
|
||
参数:
|
||
|
||
- `@订单编号 int`
|
||
- `@发料齐套时间 datetime = NULL`
|
||
- `@装配完成时间 datetime = NULL`
|
||
- `@钣金预达 datetime = NULL`
|
||
- `@钣金到达 datetime = NULL`
|
||
- `@泵预达 datetime = NULL`
|
||
- `@泵到达 datetime = NULL`
|
||
- `@泵说明 nvarchar(500) = NULL`
|
||
- `@预计总工时 decimal(18,2) = NULL`
|
||
- `@备注 nvarchar(1000) = NULL`
|
||
- `@维护人 nvarchar(50)`
|
||
|
||
逻辑:
|
||
|
||
1. 如果扩展表不存在订单记录,插入。
|
||
2. 如果存在,更新。
|
||
3. 对每个字段写 `系统管理_业务字段维护日志`。
|
||
4. 返回 `result=1`。
|
||
|
||
### 6.9 工时明细过程
|
||
|
||
过程名:`生产管理_装配已排产需求_工时明细`
|
||
|
||
参数:
|
||
|
||
- `@订单编号 int`
|
||
- `@合同号 nvarchar(50)`
|
||
- `@工时类型 nvarchar(50)`,全部/装配/质量/设计
|
||
|
||
返回:
|
||
|
||
- 来源模块
|
||
- 工时类型
|
||
- 生产订单
|
||
- 合同号
|
||
- TaskAID
|
||
- 工序名称
|
||
- 操作人
|
||
- 开始时间
|
||
- 结束时间
|
||
- 工时小时
|
||
- 工作内容
|
||
- 结束说明
|
||
|
||
### 6.10 异常明细过程
|
||
|
||
过程名:`生产管理_装配已排产需求_异常明细`
|
||
|
||
数据来源:
|
||
|
||
- 优先:`生产管理_异常管控_任务异常`
|
||
- 兼容:现有异常管控表或 `YL_加工中心_操作记录表` 中 `操作类别='异常'`
|
||
|
||
返回:
|
||
|
||
- 异常编号
|
||
- 异常类型
|
||
- 异常说明
|
||
- 发起人
|
||
- 发起时间
|
||
- 状态
|
||
- 处理人
|
||
- 处理时间
|
||
|
||
### 6.11 日计划
|
||
|
||
页面按钮:`日计划`
|
||
|
||
规则:
|
||
|
||
- 按装配完成时间分组。
|
||
- 未完成、未入库、未关闭的任务进入计划。
|
||
- 支持导出、打印。
|
||
|
||
过程名:`生产管理_装配已排产需求_日计划`
|
||
|
||
参数:
|
||
|
||
- `@计划日期 date`
|
||
- `@系统分类 nvarchar(20)`
|
||
|
||
返回字段:
|
||
|
||
- 计划日期
|
||
- 生产订单
|
||
- 合同号
|
||
- 物料编码
|
||
- 物料名称
|
||
- 装配完成时间
|
||
- 当前对应人员
|
||
- 当前对应内容
|
||
- 异常状态
|
||
- 备注
|
||
|
||
打印:
|
||
|
||
- 使用 `vue-print-nb`。
|
||
- 打印区域为日计划表格。
|
||
- 标题:`装配日计划 YYYY-MM-DD`。
|
||
|
||
## 7. 需求 4:生产日报-送检
|
||
|
||
### 7.1 页面定位
|
||
|
||
建议新增页面:
|
||
|
||
```text
|
||
src/views/ReportManagement/InspectionDaily/index.vue
|
||
```
|
||
|
||
如果项目没有 `ReportManagement`,可放在:
|
||
|
||
```text
|
||
src/views/ProductionManagement/InspectionDaily/index.vue
|
||
```
|
||
|
||
菜单建议:
|
||
|
||
```text
|
||
报表中心 -> 生产日报 -> 生产日报-送检
|
||
```
|
||
|
||
页面采用两个页签:
|
||
|
||
- 机加送检日报
|
||
- 装配送检日报
|
||
|
||
### 7.2 页面布局
|
||
|
||
```text
|
||
页签:[机加送检日报] [装配送检日报]
|
||
|
||
查询区:
|
||
日期[单日/日期范围] 部门[全部] 生产订单 物料 工序 状态
|
||
[查询] [重置] [导出]
|
||
|
||
汇总区:
|
||
送检数量 已检数量 合格数量 不合格数量 未检数量 及时率
|
||
|
||
表格:
|
||
日期 部门 生产订单 物料编码 物料名称 工序名称 送检数量
|
||
已检数量 合格数量 不合格数量 未检数量 送检时间 检验时间 状态
|
||
```
|
||
|
||
### 7.3 需要确认的数据
|
||
|
||
| 数据 | 需要确认 |
|
||
|---|---|
|
||
| 送检记录来源 | 装配送检是否来自 `MES_ProductTask_SendInspection` 写入的记录,机加送检是否来自质检任务或操作记录 |
|
||
| 部门归属 | 按操作人部门、工位部门、任务部门还是物料/订单类型 |
|
||
| 送检数量 | 取操作记录 `操作数值`,还是质检记录 `检验数量` |
|
||
| 已检数量 | 质检记录合计 |
|
||
| 状态 | 未检、部分检验、已检、超期 |
|
||
|
||
### 7.4 建议视图
|
||
|
||
视图名:`View_生产日报_送检明细`
|
||
|
||
字段:
|
||
|
||
| 字段 | 来源 |
|
||
|---|---|
|
||
| 日期 | 送检时间日期 |
|
||
| 送检类型 | 机加/装配 |
|
||
| 部门 | 人员部门或工位部门 |
|
||
| 生产订单 | 任务订单 |
|
||
| TaskAID | 任务 |
|
||
| 物料编码 | 任务物料 |
|
||
| 物料名称 | 任务物料 |
|
||
| 工序名称 | 任务工序 |
|
||
| 指派对象 | 任务指派对象 |
|
||
| 送检数量 | 送检记录 |
|
||
| 已检数量 | 质检记录 |
|
||
| 合格数量 | 质检记录 |
|
||
| 不合格数量 | 质检记录 |
|
||
| 未检数量 | 送检数量 - 已检数量 |
|
||
| 送检时间 | 送检记录时间 |
|
||
| 检验时间 | 最后检验时间 |
|
||
| 状态 | 计算 |
|
||
|
||
### 7.5 存储过程
|
||
|
||
过程名:`生产日报_送检_查询`
|
||
|
||
参数:
|
||
|
||
| 参数 | 类型 |
|
||
|---|---|
|
||
| `@送检类型` | nvarchar(20),机加/装配 |
|
||
| `@开始日期` | date |
|
||
| `@结束日期` | date |
|
||
| `@部门` | nvarchar(50) |
|
||
| `@生产订单` | int |
|
||
| `@物料` | nvarchar(100) |
|
||
| `@状态` | nvarchar(20) |
|
||
|
||
核心逻辑:
|
||
|
||
```sql
|
||
SELECT
|
||
日期,
|
||
部门,
|
||
生产订单,
|
||
物料编码,
|
||
物料名称,
|
||
工序名称,
|
||
SUM(送检数量) AS 送检数量,
|
||
SUM(已检数量) AS 已检数量,
|
||
SUM(合格数量) AS 合格数量,
|
||
SUM(不合格数量) AS 不合格数量,
|
||
SUM(未检数量) AS 未检数量,
|
||
MIN(送检时间) AS 最早送检时间,
|
||
MAX(检验时间) AS 最后检验时间,
|
||
CASE
|
||
WHEN SUM(已检数量) = 0 THEN N'未检'
|
||
WHEN SUM(未检数量) > 0 THEN N'部分检验'
|
||
ELSE N'已检'
|
||
END AS 状态
|
||
FROM dbo.View_生产日报_送检明细
|
||
WHERE 日期 >= @开始日期
|
||
AND 日期 < DATEADD(DAY, 1, @结束日期)
|
||
AND (@送检类型 = N'全部' OR 送检类型 = @送检类型)
|
||
GROUP BY 日期, 部门, 生产订单, 物料编码, 物料名称, 工序名称
|
||
ORDER BY 日期, 部门, 生产订单;
|
||
```
|
||
|
||
### 7.6 是否新增表
|
||
|
||
第一阶段不新增表,使用视图 + 存储过程。
|
||
|
||
如果客户要求日报定版,需要新增快照表:
|
||
|
||
```sql
|
||
CREATE TABLE dbo.生产日报_送检_日报快照 (
|
||
AID bigint IDENTITY(1,1) PRIMARY KEY,
|
||
统计日期 date NOT NULL,
|
||
送检类型 nvarchar(20) NOT NULL,
|
||
部门 nvarchar(50) NULL,
|
||
生产订单 int NULL,
|
||
TaskAID bigint NULL,
|
||
物料编码 nvarchar(100) NULL,
|
||
物料名称 nvarchar(500) NULL,
|
||
工序名称 nvarchar(100) NULL,
|
||
送检数量 decimal(18,2) NULL,
|
||
已检数量 decimal(18,2) NULL,
|
||
合格数量 decimal(18,2) NULL,
|
||
不合格数量 decimal(18,2) NULL,
|
||
未检数量 decimal(18,2) NULL,
|
||
状态 nvarchar(20) NULL,
|
||
生成时间 datetime NOT NULL DEFAULT GETDATE(),
|
||
生成人 nvarchar(50) NULL
|
||
);
|
||
```
|
||
|
||
## 8. 需求 5:及时齐套跟踪结果报表
|
||
|
||
### 8.1 页面定位
|
||
|
||
新增页面:
|
||
|
||
```text
|
||
src/views/ProductionManagement/KitTrackingResult/index.vue
|
||
```
|
||
|
||
菜单建议:
|
||
|
||
```text
|
||
报表中心 -> 齐套报表 -> 及时齐套跟踪结果报表
|
||
```
|
||
|
||
### 8.2 页面布局
|
||
|
||
```text
|
||
查询区:
|
||
主生产订单 合同号 物料 齐套状态 预计可执行时间 SAP同步时间
|
||
[查询] [重置] [导出]
|
||
|
||
主表:
|
||
主生产订单 合同号 物料编码 物料名称 计划数量 齐套状态
|
||
缺件数 当前进度 预计可执行时间 SAP同步时间 操作
|
||
|
||
展开明细:
|
||
缺料生产订单 缺料物料编码 缺料物料名称 缺件数量 属性
|
||
对应单据号 当前进度 全序展示 单条预计完成时间 预计可执行时间 操作
|
||
```
|
||
|
||
### 8.3 数据来源
|
||
|
||
| 数据 | 来源 | 方式 |
|
||
|---|---|---|
|
||
| 主表订单 | `MES_接口_生产计划` / `View_生产订单_MES` | MES 查询 |
|
||
| 齐套状态 | `齐套`、`齐套时间`、`发料状态`、`拣配状态` | MES 字段 |
|
||
| 缺件明细 | SAP 实时接口 | 点击展开时查 |
|
||
| 主子订单关系 | SAP 或 MES 人工维护 | 建议落 MES 表 |
|
||
| 预计可执行时间 | 人工维护 | 报表内维护,写日志 |
|
||
|
||
### 8.4 建议新增表
|
||
|
||
#### 8.4.1 主子订单关系表
|
||
|
||
表名:`生产管理_齐套跟踪_主子订单关系`
|
||
|
||
```sql
|
||
CREATE TABLE dbo.生产管理_齐套跟踪_主子订单关系 (
|
||
AID bigint IDENTITY(1,1) PRIMARY KEY,
|
||
主生产订单 int NOT NULL,
|
||
缺料生产订单 int NOT NULL,
|
||
缺料物料编码 nvarchar(100) NULL,
|
||
缺料物料名称 nvarchar(500) NULL,
|
||
关系来源 nvarchar(50) NOT NULL DEFAULT N'人工维护',
|
||
是否有效 bit NOT NULL DEFAULT 1,
|
||
创建人 nvarchar(50) NULL,
|
||
创建时间 datetime NOT NULL DEFAULT GETDATE(),
|
||
最后维护人 nvarchar(50) NULL,
|
||
最后维护时间 datetime NULL
|
||
);
|
||
|
||
CREATE INDEX IX_生产管理_齐套跟踪_主子订单关系_主单
|
||
ON dbo.生产管理_齐套跟踪_主子订单关系(主生产订单, 是否有效);
|
||
```
|
||
|
||
#### 8.4.2 缺件预计信息表
|
||
|
||
表名:`生产管理_齐套跟踪_缺件预计信息`
|
||
|
||
```sql
|
||
CREATE TABLE dbo.生产管理_齐套跟踪_缺件预计信息 (
|
||
AID bigint IDENTITY(1,1) PRIMARY KEY,
|
||
主生产订单 int NOT NULL,
|
||
缺料生产订单 int NULL,
|
||
缺料物料编码 nvarchar(100) NOT NULL,
|
||
对应单据号 nvarchar(100) NULL,
|
||
预计可执行时间 datetime NULL,
|
||
预计可执行说明 nvarchar(500) NULL,
|
||
维护人 nvarchar(50) NULL,
|
||
维护时间 datetime NOT NULL DEFAULT GETDATE()
|
||
);
|
||
|
||
CREATE INDEX IX_生产管理_齐套跟踪_缺件预计信息_主单
|
||
ON dbo.生产管理_齐套跟踪_缺件预计信息(主生产订单);
|
||
```
|
||
|
||
#### 8.4.3 SAP 缺件缓存表
|
||
|
||
如果 SAP 实时查询压力大,新增缓存表:
|
||
|
||
```sql
|
||
CREATE TABLE dbo.系统集成_SAP缺件明细缓存 (
|
||
AID bigint IDENTITY(1,1) PRIMARY KEY,
|
||
主生产订单 int NOT NULL,
|
||
查询时间 datetime NOT NULL DEFAULT GETDATE(),
|
||
缺料生产订单 int NULL,
|
||
物料编码 nvarchar(100) NULL,
|
||
物料名称 nvarchar(500) NULL,
|
||
缺件数量 decimal(18,2) NULL,
|
||
属性 nvarchar(20) NULL,
|
||
对应单据号 nvarchar(100) NULL,
|
||
当前进度 nvarchar(500) NULL,
|
||
全序展示 nvarchar(max) NULL,
|
||
单条预计完成时间 datetime NULL,
|
||
原始JSON nvarchar(max) NULL
|
||
);
|
||
```
|
||
|
||
### 8.5 存储过程
|
||
|
||
主表查询:
|
||
|
||
```text
|
||
生产管理_齐套跟踪结果_主表查询
|
||
```
|
||
|
||
参数:
|
||
|
||
- `@主生产订单 int`
|
||
- `@合同号 nvarchar(50)`
|
||
- `@物料 nvarchar(100)`
|
||
- `@齐套状态 nvarchar(50)`
|
||
- `@预计开始 date`
|
||
- `@预计结束 date`
|
||
|
||
展开明细:
|
||
|
||
```text
|
||
生产管理_齐套跟踪结果_缺件明细查询
|
||
```
|
||
|
||
说明:
|
||
|
||
- 第一优先:点击展开时前端调用 SAP 接口,再把结果展示并可缓存。
|
||
- 如果后端 `.ashx` 只能执行 SQL,SAP 查询需要前端现有 SAP/B1 接口或后端新增封装接口。
|
||
- 如果不能实时查 SAP,先读取 `系统集成_SAP缺件明细缓存`。
|
||
|
||
预计可执行时间保存:
|
||
|
||
```text
|
||
生产管理_齐套跟踪结果_预计时间保存
|
||
```
|
||
|
||
参数:
|
||
|
||
- 主生产订单
|
||
- 缺料生产订单
|
||
- 缺料物料编码
|
||
- 对应单据号
|
||
- 预计可执行时间
|
||
- 预计可执行说明
|
||
- 维护人
|
||
|
||
同时写 `系统管理_业务字段维护日志`。
|
||
|
||
## 9. 需求 6:生产计划跟踪
|
||
|
||
### 9.1 现有页面
|
||
|
||
页面:
|
||
|
||
```text
|
||
src/views/ProductionManagement/ProductionPlanTrack/index.vue
|
||
```
|
||
|
||
现有调用:
|
||
|
||
```text
|
||
生产管理_生产计划跟踪
|
||
```
|
||
|
||
页面现状已经有外协状态处理、工序子表、颜色等基础逻辑。
|
||
|
||
### 9.2 页面改造
|
||
|
||
新增/调整:
|
||
|
||
| 内容 | 实现 |
|
||
|---|---|
|
||
| 当前序显示完整工艺路线 | 主表列改为路线组件 |
|
||
| 工序文字按状态变色 | 前端根据状态 class |
|
||
| 进度文案 | `打磨中`、`打磨毕待淬火` |
|
||
| 标准工时 | 表格列 |
|
||
| 订单状态 | 表格列 |
|
||
|
||
工艺路线显示:
|
||
|
||
```text
|
||
打磨(张三) -> 淬火(外协) -> 精磨(李四)
|
||
```
|
||
|
||
颜色规则:
|
||
|
||
| 状态 | 样式 |
|
||
|---|---|
|
||
| 正在加工 | 蓝色或绿色高亮 |
|
||
| 已完成 | 灰色 |
|
||
| 等待加工 | 默认 |
|
||
| 异常 | 红色 |
|
||
|
||
### 9.3 后端返回字段
|
||
|
||
过程 `生产管理_生产计划跟踪` 需要返回每道工序:
|
||
|
||
| 字段 | 说明 |
|
||
|---|---|
|
||
| 生产订单 |
|
||
| 合同号 |
|
||
| 订单状态 |
|
||
| 物料编码 |
|
||
| 物料名称 |
|
||
| TaskAID |
|
||
| 工序名称 |
|
||
| 顺序编号 |
|
||
| 指派对象 |
|
||
| 任务状态 |
|
||
| 加工状态 |
|
||
| 开工时间 |
|
||
| 完工时间 |
|
||
| 标准工时 |
|
||
| 外协结束时间 |
|
||
|
||
### 9.4 SQL 逻辑
|
||
|
||
标准工时来源:
|
||
|
||
- 优先 `车间生产管理工艺_零件生产工艺_工艺库.标准工时`
|
||
- 通过 `订单编号 + 工艺顺序/订单行号` 关联
|
||
|
||
订单状态来源:
|
||
|
||
- `MES_接口_生产计划.订单状态`
|
||
- 如果 SAP 同步了单据状态,也可增加 `单据状态`
|
||
|
||
过程示例逻辑:
|
||
|
||
```sql
|
||
SELECT
|
||
p.订单编号,
|
||
p.合同号,
|
||
p.订单状态,
|
||
t.AID AS TaskAID,
|
||
t.工序名称,
|
||
t.顺序编号,
|
||
t.指派对象,
|
||
t.任务状态,
|
||
t.加工状态,
|
||
t.开工时间,
|
||
t.完工时间,
|
||
ISNULL(g.标准工时, 0) AS 标准工时
|
||
FROM dbo.MES_接口_生产计划 p
|
||
JOIN dbo.MES_接口_生产计划_生产任务 t ON p.订单编号 = t.订单编号
|
||
LEFT JOIN dbo.车间生产管理工艺_零件生产工艺_工艺库 g
|
||
ON t.订单编号 = g.订单编号
|
||
AND t.订单行号 = g.工艺顺序
|
||
WHERE ...
|
||
ORDER BY p.订单编号, t.顺序编号;
|
||
```
|
||
|
||
### 9.5 前端算法
|
||
|
||
将后端明细按订单分组:
|
||
|
||
```js
|
||
const groups = {}
|
||
rows.forEach(row => {
|
||
if (!groups[row.订单编号]) groups[row.订单编号] = []
|
||
groups[row.订单编号].push(row)
|
||
})
|
||
```
|
||
|
||
每个工序状态:
|
||
|
||
```js
|
||
function getStepStatus(step) {
|
||
if (step.任务状态 === 4 || step.完工时间) return 'done'
|
||
if (step.加工状态 === 2 || step.开工时间) return 'doing'
|
||
return 'waiting'
|
||
}
|
||
```
|
||
|
||
进度文案:
|
||
|
||
```js
|
||
function getProgressText(steps) {
|
||
const doing = steps.find(x => getStepStatus(x) === 'doing')
|
||
if (doing) return `${doing.工序名称}中`
|
||
const lastDoneIndex = findLastDoneIndex(steps)
|
||
if (lastDoneIndex >= 0 && steps[lastDoneIndex + 1]) {
|
||
return `${steps[lastDoneIndex].工序名称}毕待${steps[lastDoneIndex + 1].工序名称}`
|
||
}
|
||
if (lastDoneIndex === steps.length - 1) return '已完成'
|
||
return '待开工'
|
||
}
|
||
```
|
||
|
||
## 10. 需求 7:外协任务检验
|
||
|
||
### 10.1 现有页面
|
||
|
||
相关页面:
|
||
|
||
```text
|
||
src/views/QualityManagement/CheckTask/processReceive.vue
|
||
src/views/ProductionManagement/OutsourceMange/index.vue
|
||
src/views/ProductionManagement/OutsourceSheet/index.vue
|
||
```
|
||
|
||
现有视图:
|
||
|
||
- `View_质量检验_质检记录_外协收检`
|
||
- `View_外协质检`
|
||
- `View_外协报表视图`
|
||
|
||
### 10.2 需求字段
|
||
|
||
| 字段 | 来源 |
|
||
|---|---|
|
||
| 指派对象 | 任务表 `MES_接口_生产计划_生产任务.指派对象` |
|
||
| 供应商 | SAP 采购/外协单据,或外协任务维护 |
|
||
| SAP采购收货单号 | SAP 采购收货成功后返回 |
|
||
|
||
### 10.3 建议新增字段
|
||
|
||
优先加在质检记录扩展表,避免直接改大表影响历史。
|
||
|
||
表名:`质量管理_外协收检_扩展`
|
||
|
||
```sql
|
||
CREATE TABLE dbo.质量管理_外协收检_扩展 (
|
||
AID bigint IDENTITY(1,1) PRIMARY KEY,
|
||
QT_AID bigint NOT NULL,
|
||
TaskAID bigint NULL,
|
||
指派对象 nvarchar(50) NULL,
|
||
供应商编码 nvarchar(100) NULL,
|
||
供应商名称 nvarchar(200) NULL,
|
||
SAP采购收货单号 nvarchar(100) NULL,
|
||
SAP采购收货行号 nvarchar(50) NULL,
|
||
SAP同步状态 nvarchar(20) NULL,
|
||
SAP返回信息 nvarchar(max) NULL,
|
||
创建时间 datetime NOT NULL DEFAULT GETDATE(),
|
||
最后维护时间 datetime NULL
|
||
);
|
||
|
||
CREATE UNIQUE INDEX UX_质量管理_外协收检_扩展_QT
|
||
ON dbo.质量管理_外协收检_扩展(QT_AID);
|
||
```
|
||
|
||
如果客户明确要在质检主记录中查询导出,也可直接加字段到 `YL_质量检验_质检记录`:
|
||
|
||
```sql
|
||
ALTER TABLE dbo.YL_质量检验_质检记录 ADD
|
||
指派对象 nvarchar(50) NULL,
|
||
供应商编码 nvarchar(100) NULL,
|
||
供应商名称 nvarchar(200) NULL,
|
||
SAP采购收货单号 nvarchar(100) NULL;
|
||
```
|
||
|
||
推荐扩展表,查询视图再拼接。
|
||
|
||
### 10.4 页面改造
|
||
|
||
序检收检页面:
|
||
|
||
- 收检表格增加:指派对象、供应商、SAP采购收货单号。
|
||
- 收检详情弹窗增加只读展示。
|
||
- 外协收检成功后,保存 SAP 返回的采购收货单号。
|
||
|
||
外协报表:
|
||
|
||
- 增加供应商、SAP采购收货单号列。
|
||
- 后续供应商合格率按供应商分组。
|
||
|
||
### 10.5 存储过程
|
||
|
||
新增或扩展:
|
||
|
||
| 过程 | 说明 |
|
||
|---|---|
|
||
| `质量管理_外协收检_扩展保存` | 收检完成后保存供应商和 SAP 单号 |
|
||
| `质量管理_外协收检_查询` | 查询外协收检扩展字段 |
|
||
| `生产管理_外协任务报表_查询` | 扩展供应商、SAP采购收货单号、采购到货期说明 |
|
||
|
||
## 11. 需求 8:异常管控
|
||
|
||
### 11.1 现有页面
|
||
|
||
异常页面:
|
||
|
||
```text
|
||
src/views/ProductionManagement/AbnormalControl/index.vue
|
||
```
|
||
|
||
需要加入口的页面:
|
||
|
||
- `ProductionManagement/MachiningCenter/index.vue`
|
||
- `ProductionManagement/AssemblyCenter/index.vue`
|
||
- `QualityManagement/QualityCenter/index.vue`
|
||
- `QualityManagement/CheckTask/processReceive.vue`
|
||
- 后续设计任务报工页面
|
||
- 后续编程任务清单页面
|
||
|
||
### 11.2 页面交互
|
||
|
||
在任务操作区增加按钮:
|
||
|
||
```text
|
||
[报异常]
|
||
```
|
||
|
||
点击前校验:
|
||
|
||
- 必须选中任务。
|
||
- 必须有 TaskAID 或生产订单。
|
||
- 已关闭/已入库任务不允许新报异常,除非角色有权限。
|
||
|
||
异常弹窗字段:
|
||
|
||
| 字段 | 控件 |
|
||
|---|---|
|
||
| 生产订单 | 只读 |
|
||
| TaskAID | 隐藏 |
|
||
| 工序名称 | 只读 |
|
||
| 指派对象 | 只读 |
|
||
| 异常类型 | 下拉 |
|
||
| 异常说明 | 多行文本 |
|
||
| 附件 | 上传 |
|
||
| 审批人 | 人员多选 |
|
||
|
||
### 11.3 数据表
|
||
|
||
使用第 3.3 节建议表:
|
||
|
||
- `生产管理_异常管控_任务异常`
|
||
- `生产管理_异常管控_审批人`
|
||
|
||
### 11.4 存储过程
|
||
|
||
#### 11.4.1 异常提交
|
||
|
||
过程名:`生产管理_异常管控_任务异常提交`
|
||
|
||
参数:
|
||
|
||
- 来源模块
|
||
- 生产订单
|
||
- TaskAID
|
||
- 工序名称
|
||
- 指派对象
|
||
- 异常类型
|
||
- 异常说明
|
||
- 附件ID
|
||
- 审批人JSON
|
||
- 发起人
|
||
|
||
逻辑:
|
||
|
||
1. 生成异常编号,例如 `YC202605280001`。
|
||
2. 插入 `生产管理_异常管控_任务异常`。
|
||
3. 解析审批人 JSON,插入 `生产管理_异常管控_审批人`。
|
||
4. 返回异常编号。
|
||
|
||
#### 11.4.2 待办查询
|
||
|
||
过程名:`生产管理_异常管控_待办查询`
|
||
|
||
参数:
|
||
|
||
- `@审批人姓名`
|
||
- `@状态`
|
||
|
||
逻辑:
|
||
|
||
- 审批人被选中即可看到任务。
|
||
- 任一审批人处理后,异常进入下一状态或关闭。
|
||
|
||
#### 11.4.3 异常处理
|
||
|
||
过程名:`生产管理_异常管控_任务异常处理`
|
||
|
||
参数:
|
||
|
||
- 异常AID
|
||
- 处理人
|
||
- 处理意见
|
||
- 处理结果
|
||
|
||
逻辑:
|
||
|
||
1. 更新异常主表实际处理人、处理时间、状态。
|
||
2. 当前审批人记录标记已处理。
|
||
3. 同一异常其他审批人不再待办。
|
||
|
||
## 12. 需求 9:机加班次产量表
|
||
|
||
### 12.1 页面定位
|
||
|
||
新增页面:
|
||
|
||
```text
|
||
src/views/ProductionManagement/MachiningShiftOutput/index.vue
|
||
```
|
||
|
||
菜单:
|
||
|
||
```text
|
||
报表中心 -> 生产报表 -> 机加班次产量表
|
||
```
|
||
|
||
### 12.2 页面布局
|
||
|
||
```text
|
||
查询区:
|
||
日期范围 班次 设备 操作人 生产订单 物料
|
||
[查询] [重置] [导出]
|
||
|
||
汇总卡:
|
||
总数量 总工时 设备数 班次数
|
||
|
||
分组表:
|
||
设备 -> 日期 -> 班次 -> 任务明细
|
||
```
|
||
|
||
### 12.3 数据来源
|
||
|
||
| 数据 | 来源 |
|
||
|---|---|
|
||
| 报工数量 | `YL_加工中心_操作记录表.操作数值` |
|
||
| 工时 | `YL_加工中心_操作记录表.工时` |
|
||
| 设备 | `工位名称` 或任务 `指派对象` |
|
||
| 生产订单/物料 | `MES_接口_生产计划_生产任务` |
|
||
| 班次 | `班次表` + 时间匹配 |
|
||
|
||
现有函数:
|
||
|
||
```text
|
||
dbo.计算班次重叠秒数
|
||
```
|
||
|
||
可用于跨天班次工时计算。
|
||
|
||
### 12.4 存储过程
|
||
|
||
过程名:`生产报表_机加班次产量表_查询`
|
||
|
||
参数:
|
||
|
||
- 开始日期
|
||
- 结束日期
|
||
- 班次
|
||
- 设备
|
||
- 操作人
|
||
- 生产订单
|
||
- 物料
|
||
|
||
返回:
|
||
|
||
- 设备名称
|
||
- 日期
|
||
- 班次
|
||
- 生产订单
|
||
- 物料编码
|
||
- 物料名称
|
||
- 工序名称
|
||
- 开始时间
|
||
- 结束时间
|
||
- 工时小时
|
||
- 数量
|
||
- 操作人
|
||
- 设备日期班次小计数量
|
||
- 设备日期班次小计工时
|
||
|
||
SQL 逻辑:
|
||
|
||
1. 取 `操作类别='报工'` 且 `操作数值 > 0` 的记录。
|
||
2. 按 `开始时间` 匹配班次。
|
||
3. 关联任务表补订单、物料、工序。
|
||
4. 按设备、日期、班次排序。
|
||
|
||
### 12.5 是否新增表
|
||
|
||
第一阶段不新增表。
|
||
|
||
如果班次规则不足,需要扩展 `班次表`:
|
||
|
||
```sql
|
||
ALTER TABLE dbo.班次表 ADD
|
||
是否跨天 bit NULL,
|
||
是否启用 bit NULL,
|
||
班次日期归属 nvarchar(20) NULL; -- 开始日/结束日
|
||
```
|
||
|
||
## 13. 需求 10:发货通知列表
|
||
|
||
### 13.1 页面定位
|
||
|
||
新增页面:
|
||
|
||
```text
|
||
src/views/ProductionManagement/ShippingNoticeList/index.vue
|
||
```
|
||
|
||
菜单:
|
||
|
||
```text
|
||
报表中心 -> 交付报表 -> 发货通知列表
|
||
```
|
||
|
||
### 13.2 数据来源
|
||
|
||
客户说明:SAP 已提供数据,大屏已显示。
|
||
|
||
需要先查新分析:
|
||
|
||
1. 大屏当前发货通知读取哪个过程。
|
||
2. `装配中心任务看板_发货状态查询` 是否已经包含发货通知字段。
|
||
3. `MES_接口_生产计划` 中 `发货状态`、`要求发货日期` 是否够用。
|
||
4. 是否有 SAP 发货通知同步落地表。
|
||
|
||
### 13.3 建议新增表
|
||
|
||
若当前没有发货通知落地表,建议建:
|
||
|
||
```sql
|
||
CREATE TABLE dbo.系统集成_SAP发货通知 (
|
||
AID bigint IDENTITY(1,1) PRIMARY KEY,
|
||
发货通知号 nvarchar(100) NOT NULL,
|
||
合同号 nvarchar(50) NULL,
|
||
客户编码 nvarchar(100) NULL,
|
||
客户名称 nvarchar(200) NULL,
|
||
生产订单 int NULL,
|
||
物料编码 nvarchar(100) NULL,
|
||
物料名称 nvarchar(500) NULL,
|
||
数量 decimal(18,2) NULL,
|
||
要求发货日期 datetime NULL,
|
||
发货状态 nvarchar(50) NULL,
|
||
SAP同步时间 datetime NULL,
|
||
原始JSON nvarchar(max) NULL,
|
||
创建时间 datetime NOT NULL DEFAULT GETDATE()
|
||
);
|
||
|
||
CREATE INDEX IX_系统集成_SAP发货通知_合同号 ON dbo.系统集成_SAP发货通知(合同号);
|
||
CREATE INDEX IX_系统集成_SAP发货通知_生产订单 ON dbo.系统集成_SAP发货通知(生产订单);
|
||
```
|
||
|
||
如果已有大屏同步表,则不建新表,直接复用。
|
||
|
||
### 13.4 存储过程
|
||
|
||
过程名:`报表_发货通知列表_查询`
|
||
|
||
参数:
|
||
|
||
- 发货通知号
|
||
- 合同号
|
||
- 客户
|
||
- 状态
|
||
- 要求发货开始
|
||
- 要求发货结束
|
||
|
||
返回:
|
||
|
||
- 发货通知号
|
||
- 合同号
|
||
- 客户
|
||
- 生产订单
|
||
- 物料编码
|
||
- 物料名称
|
||
- 数量
|
||
- 要求发货日期
|
||
- 发货状态
|
||
- SAP同步时间
|
||
|
||
## 14. 需求 11:质检任务早知道
|
||
|
||
### 14.1 依赖
|
||
|
||
强依赖:
|
||
|
||
- `生产管理_装配已排产需求_查询`
|
||
- 装配完成时间字段可用
|
||
|
||
### 14.2 页面定位
|
||
|
||
新增页面:
|
||
|
||
```text
|
||
src/views/QualityManagement/QualityTaskPreview/index.vue
|
||
```
|
||
|
||
菜单:
|
||
|
||
```text
|
||
质量管理 -> 质量报表 -> 质检任务早知道
|
||
```
|
||
|
||
### 14.3 查询规则
|
||
|
||
过滤:
|
||
|
||
- 装配完成时间在查询范围内。
|
||
- 排除已完成质检。
|
||
- 排除订单关闭、取消、整单已入库。
|
||
- 按装配完成时间分组。
|
||
|
||
### 14.4 存储过程
|
||
|
||
过程名:`质量管理_质检任务早知道_查询`
|
||
|
||
参数:
|
||
|
||
- 装配完成开始
|
||
- 装配完成结束
|
||
- 合同号
|
||
- 生产订单
|
||
- 物料
|
||
|
||
返回:
|
||
|
||
- 预计质检日期
|
||
- 生产订单
|
||
- 合同号
|
||
- 物料编码
|
||
- 物料名称
|
||
- 装配完成时间
|
||
- 当前对应人员
|
||
- 当前对应内容
|
||
- 累计工时
|
||
- 异常状态
|
||
- 质检状态
|
||
|
||
SQL 逻辑:
|
||
|
||
```sql
|
||
-- 基于装配已排产需求结果,再排除已检/关闭/取消/入库
|
||
```
|
||
|
||
### 14.5 不新增表
|
||
|
||
本需求不新增表,只新增查询过程和页面。
|
||
|
||
## 15. 需求 12:生产工艺自动带出标准工艺
|
||
|
||
### 15.1 现有页面
|
||
|
||
相关页面:
|
||
|
||
```text
|
||
src/views/ProcessManagement/ProcessProduct/index.vue
|
||
src/views/ProcessManagement/ProcessesDevelop/index.vue
|
||
```
|
||
|
||
### 15.2 页面交互
|
||
|
||
点击编辑生产工艺:
|
||
|
||
1. 查询是否已有生产工艺。
|
||
2. 如果有,正常打开。
|
||
3. 如果没有,提示:
|
||
|
||
```text
|
||
当前订单未找到生产工艺,是否按物料标准工艺带出草稿?
|
||
[带出标准工艺] [取消]
|
||
```
|
||
|
||
4. 带出后只在页面显示,不直接落库。
|
||
5. 用户点击保存后,写入生产工艺。
|
||
|
||
### 15.3 存储过程
|
||
|
||
新增:
|
||
|
||
| 过程 | 用途 |
|
||
|---|---|
|
||
| `工艺管理_生产工艺_是否存在` | 按订单号查询是否已有生产工艺 |
|
||
| `工艺管理_生产工艺_标准工艺草稿查询` | 按物料编码查标准工艺并映射成生产工艺字段 |
|
||
|
||
保存仍复用现有生产工艺保存过程。
|
||
|
||
### 15.4 字段映射
|
||
|
||
需要查新分析:
|
||
|
||
- 标准工艺表:`车间生产管理工艺_零件工序_工艺库`
|
||
- 生产工艺表:`车间生产管理工艺_零件生产工艺_工艺库`
|
||
- 两者字段差异。
|
||
|
||
至少映射:
|
||
|
||
| 标准工艺 | 生产工艺 |
|
||
|---|---|
|
||
| 物料编号 | 物料编号 |
|
||
| 工序名称 | 工序名称 |
|
||
| 工艺顺序 | 工艺顺序 |
|
||
| 标准工时 | 标准工时 |
|
||
| 工序说明 | 工序说明 |
|
||
| 指派对象默认值 | 指派对象 |
|
||
|
||
### 15.5 不建议新增表
|
||
|
||
该需求只改页面和过程,不新增表。
|
||
|
||
## 16. 需求 13:工时报表 + 备注类小改
|
||
|
||
### 16.1 工时报表新增指派对象
|
||
|
||
现有页面:
|
||
|
||
```text
|
||
src/views/ProductionManagement/Timesheet/index.vue
|
||
```
|
||
|
||
现有过程:
|
||
|
||
```text
|
||
工时统计_作业者工时_查询
|
||
工时统计_作业者工时_查询_导出
|
||
```
|
||
|
||
改造:
|
||
|
||
- 查询区增加指派对象筛选。
|
||
- 表格增加指派对象列。
|
||
- 导出增加指派对象列。
|
||
|
||
SQL 来源:
|
||
|
||
- `YL_加工中心_操作记录表.工位名称`
|
||
- 或关联任务表取 `MES_接口_生产计划_生产任务.指派对象`
|
||
|
||
推荐使用任务表指派对象,工位名称作为实际操作工位,两者都可展示:
|
||
|
||
| 字段 | 说明 |
|
||
|---|---|
|
||
| 指派对象 | 任务被派给谁 |
|
||
| 实际工位 | 操作记录发生在哪个工位 |
|
||
|
||
### 16.2 机加领料备注
|
||
|
||
需求:
|
||
|
||
- 生产领料(机加)增加备注字段。
|
||
|
||
需要先定位现有领料表。如果无独立表,可能通过 SAP 或操作记录保存。
|
||
|
||
建议:
|
||
|
||
```sql
|
||
ALTER TABLE dbo.MES_接口_生产计划_生产任务 ADD 机加领料备注 nvarchar(500) NULL;
|
||
```
|
||
|
||
如领料已有专表,应加在领料单表。
|
||
|
||
过程:
|
||
|
||
- `生产管理_机加领料_备注保存`
|
||
- `生产管理_机加领料_查询` 返回备注
|
||
|
||
### 16.3 机加退库备注、装配退库备注
|
||
|
||
建议如果退库已有业务表,在退库表增加:
|
||
|
||
```sql
|
||
备注 nvarchar(500) NULL,
|
||
最后维护人 nvarchar(50) NULL,
|
||
最后维护时间 datetime NULL
|
||
```
|
||
|
||
如果没有退库表,先不要加到任务表,建议建退库单扩展表:
|
||
|
||
```sql
|
||
CREATE TABLE dbo.生产管理_退库单_扩展 (
|
||
AID bigint IDENTITY(1,1) PRIMARY KEY,
|
||
退库单号 nvarchar(100) NOT NULL,
|
||
退库类型 nvarchar(20) NOT NULL, -- 机加/装配
|
||
生产订单 int NULL,
|
||
TaskAID bigint NULL,
|
||
备注 nvarchar(500) NULL,
|
||
最后维护人 nvarchar(50) NULL,
|
||
最后维护时间 datetime NULL
|
||
);
|
||
```
|
||
|
||
### 16.4 外协任务报表采购到货期说明
|
||
|
||
现有页面:
|
||
|
||
```text
|
||
src/views/ProductionManagement/OutsourceSheet/index.vue
|
||
src/views/ProductionManagement/OutsourceMange/index.vue
|
||
```
|
||
|
||
建议字段:
|
||
|
||
```sql
|
||
ALTER TABLE dbo.MES_接口_生产计划_生产任务 ADD 采购到货期说明 nvarchar(500) NULL;
|
||
```
|
||
|
||
如果采购到货期说明来自 SAP,则不允许手工覆盖,改为扩展表:
|
||
|
||
```sql
|
||
CREATE TABLE dbo.生产管理_外协任务_采购扩展 (
|
||
AID bigint IDENTITY(1,1) PRIMARY KEY,
|
||
TaskAID bigint NOT NULL,
|
||
采购到货期说明 nvarchar(500) NULL,
|
||
SAP采购订单号 nvarchar(100) NULL,
|
||
SAP采购收货单号 nvarchar(100) NULL,
|
||
供应商编码 nvarchar(100) NULL,
|
||
供应商名称 nvarchar(200) NULL,
|
||
最后维护人 nvarchar(50) NULL,
|
||
最后维护时间 datetime NULL
|
||
);
|
||
```
|
||
|
||
### 16.5 制定标准工艺保存提示
|
||
|
||
页面:
|
||
|
||
```text
|
||
src/views/ProcessManagement/ProcessesDevelop/index.vue
|
||
```
|
||
|
||
改造:
|
||
|
||
- 保存成功显示“标准工艺保存成功”。
|
||
- 保存失败显示后端 message。
|
||
- 如果字段缺失,提示具体字段。
|
||
|
||
不涉及数据库。
|
||
|
||
## 17. 需求 14:生产订单关闭批量更新 SAP 状态
|
||
|
||
### 17.1 现有页面
|
||
|
||
页面:
|
||
|
||
```text
|
||
src/views/PlanManagement/PlannOrderClose/index.vue
|
||
```
|
||
|
||
### 17.2 页面改造
|
||
|
||
表格增加多选列:
|
||
|
||
```html
|
||
<el-table-column type="selection" width="55" />
|
||
```
|
||
|
||
新增按钮:
|
||
|
||
```text
|
||
[批量关闭 SAP 订单]
|
||
```
|
||
|
||
点击后:
|
||
|
||
1. 校验已选择订单。
|
||
2. 弹出二次确认:
|
||
|
||
```text
|
||
即将批量关闭 N 个 SAP 生产订单。该操作会写入 SAP,可能部分成功部分失败,是否继续?
|
||
```
|
||
|
||
3. 调用批量关闭逻辑。
|
||
4. 展示结果弹窗。
|
||
|
||
结果弹窗字段:
|
||
|
||
- 生产订单
|
||
- SAP 单据号
|
||
- 执行结果
|
||
- 失败原因
|
||
- 是否可重试
|
||
|
||
### 17.3 后端建议
|
||
|
||
由于当前前端很多 SAP 操作是直接调用 SAP/B1 接口或通过现有工具实现,批量关闭建议封装为前端逐单执行 + MES 记录结果,或后端新增 API。若 `.ashx` 仅支持 SQL,不适合在 SQL 里直接调 SAP。
|
||
|
||
建议流程:
|
||
|
||
```text
|
||
前端选中订单
|
||
-> 查询订单 SAP DocEntry
|
||
-> 逐单 PATCH SAP ProductionOrders
|
||
-> 每单结果写入 系统集成_SAP调用日志
|
||
-> 更新 MES 订单状态或 SAP关闭状态扩展字段
|
||
```
|
||
|
||
### 17.4 建议新增字段
|
||
|
||
表:`MES_接口_生产计划`
|
||
|
||
```sql
|
||
ALTER TABLE dbo.MES_接口_生产计划 ADD
|
||
SAP关闭状态 nvarchar(20) NULL,
|
||
SAP关闭时间 datetime NULL,
|
||
SAP关闭失败原因 nvarchar(1000) NULL,
|
||
SAP关闭操作人 nvarchar(50) NULL;
|
||
```
|
||
|
||
如果不想改主表,新增扩展表:
|
||
|
||
```sql
|
||
CREATE TABLE dbo.生产管理_订单关闭_SAP状态 (
|
||
AID bigint IDENTITY(1,1) PRIMARY KEY,
|
||
订单编号 int NOT NULL,
|
||
SAP单据号 nvarchar(100) NULL,
|
||
关闭状态 nvarchar(20) NOT NULL,
|
||
失败原因 nvarchar(1000) NULL,
|
||
操作人 nvarchar(50) NULL,
|
||
操作时间 datetime NOT NULL DEFAULT GETDATE(),
|
||
是否可重试 bit NOT NULL DEFAULT 0
|
||
);
|
||
```
|
||
|
||
### 17.5 存储过程
|
||
|
||
| 过程 | 用途 |
|
||
|---|---|
|
||
| `生产管理_订单关闭_SAP结果保存` | 保存每单关闭结果 |
|
||
| `生产管理_订单关闭_SAP结果查询` | 查询批量关闭结果 |
|
||
| `生产管理_订单关闭_可关闭校验` | 批量操作前校验订单是否可关 |
|
||
|
||
## 18. 需求 15:及时检验报表
|
||
|
||
### 18.1 页面定位
|
||
|
||
新增页面:
|
||
|
||
```text
|
||
src/views/QualityManagement/TimelyInspectionReport/index.vue
|
||
```
|
||
|
||
菜单:
|
||
|
||
```text
|
||
质量管理 -> 质量报表 -> 及时检验报表
|
||
```
|
||
|
||
### 18.2 查询口径
|
||
|
||
进入报表条件:
|
||
|
||
1. `YL_加工中心_操作记录表` 中存在报工记录。
|
||
2. `操作类别 = '报工'`。
|
||
3. `操作数值 > 0`。
|
||
4. `结束时间 < DATEADD(DAY, -2, GETDATE())`。
|
||
5. 对应质检记录不存在,或检验数量不足。
|
||
|
||
### 18.3 页面字段
|
||
|
||
| 字段 |
|
||
|---|
|
||
| 生产订单 |
|
||
| TaskAID |
|
||
| 物料编码 |
|
||
| 物料名称 |
|
||
| 工序名称 |
|
||
| 指派对象 |
|
||
| 报工数量 |
|
||
| 已检数量 |
|
||
| 未检数量 |
|
||
| 报工结束时间 |
|
||
| 超期天数 |
|
||
| 操作人 |
|
||
|
||
### 18.4 存储过程
|
||
|
||
过程名:`质量管理_及时检验报表_查询`
|
||
|
||
参数:
|
||
|
||
- 生产订单
|
||
- 物料
|
||
- 工序
|
||
- 指派对象
|
||
- 报工结束开始
|
||
- 报工结束结束
|
||
- 超期天数,默认 2
|
||
|
||
SQL 示例:
|
||
|
||
```sql
|
||
CREATE PROCEDURE dbo.质量管理_及时检验报表_查询
|
||
@生产订单 int = NULL,
|
||
@物料 nvarchar(100) = '',
|
||
@工序 nvarchar(100) = '',
|
||
@指派对象 nvarchar(100) = '',
|
||
@报工结束开始 date = NULL,
|
||
@报工结束结束 date = NULL,
|
||
@超期天数 int = 2
|
||
AS
|
||
BEGIN
|
||
SET NOCOUNT ON;
|
||
|
||
WITH rpt AS (
|
||
SELECT
|
||
o.TaskAID,
|
||
SUM(ISNULL(o.操作数值,0)) AS 报工数量,
|
||
MAX(o.结束时间) AS 报工结束时间,
|
||
MAX(o.操作人) AS 操作人
|
||
FROM dbo.YL_加工中心_操作记录表 o
|
||
WHERE o.操作类别 = N'报工'
|
||
AND ISNULL(o.操作数值,0) > 0
|
||
AND o.结束时间 < DATEADD(DAY, -@超期天数, GETDATE())
|
||
GROUP BY o.TaskAID
|
||
),
|
||
qc AS (
|
||
SELECT
|
||
TaskAID,
|
||
SUM(ISNULL(检验数量,0)) AS 已检数量
|
||
FROM dbo.YL_质量检验_质检记录
|
||
GROUP BY TaskAID
|
||
)
|
||
SELECT
|
||
t.订单编号 AS 生产订单,
|
||
t.AID AS TaskAID,
|
||
t.物料编码,
|
||
t.物料名称,
|
||
t.工序名称,
|
||
t.指派对象,
|
||
rpt.报工数量,
|
||
ISNULL(qc.已检数量,0) AS 已检数量,
|
||
rpt.报工数量 - ISNULL(qc.已检数量,0) AS 未检数量,
|
||
rpt.报工结束时间,
|
||
DATEDIFF(DAY, rpt.报工结束时间, GETDATE()) AS 超期天数,
|
||
rpt.操作人
|
||
FROM rpt
|
||
JOIN dbo.MES_接口_生产计划_生产任务 t ON rpt.TaskAID = t.AID
|
||
LEFT JOIN qc ON rpt.TaskAID = qc.TaskAID
|
||
WHERE rpt.报工数量 > ISNULL(qc.已检数量,0)
|
||
AND (@生产订单 IS NULL OR t.订单编号 = @生产订单)
|
||
AND (@物料 = '' OR t.物料编码 LIKE '%' + @物料 + '%' OR t.物料名称 LIKE '%' + @物料 + '%')
|
||
AND (@工序 = '' OR t.工序名称 = @工序)
|
||
AND (@指派对象 = '' OR t.指派对象 = @指派对象)
|
||
AND (@报工结束开始 IS NULL OR rpt.报工结束时间 >= @报工结束开始)
|
||
AND (@报工结束结束 IS NULL OR rpt.报工结束时间 < DATEADD(DAY, 1, @报工结束结束))
|
||
ORDER BY 超期天数 DESC, rpt.报工结束时间;
|
||
END
|
||
```
|
||
|
||
### 18.5 不新增表
|
||
|
||
第一阶段不新增表。若要催办闭环,再新增催办记录表。
|
||
|
||
## 19. 需求 16:工序流转卡增加原料编码
|
||
|
||
### 19.1 需要查新分析
|
||
|
||
先定位工序流转卡打印页面和模板:
|
||
|
||
- 搜索页面中 `流转卡`、`print`、`打印`。
|
||
- 确认当前流转卡数据来源过程。
|
||
- 确认原料编码来自 BOM、SAP 工艺路线,还是物料字段。
|
||
|
||
### 19.2 数据来源建议
|
||
|
||
优先顺序:
|
||
|
||
1. `BOM数据` 中父件对应子件,取原料类子件编码。
|
||
2. SAP BOM/物料清单同步表。
|
||
3. 生产任务行文本备注或行物料字段。
|
||
|
||
### 19.3 存储过程
|
||
|
||
扩展流转卡查询过程,增加字段:
|
||
|
||
| 字段 | 说明 |
|
||
|---|---|
|
||
| 原料编码 | BOM 子件编码 |
|
||
| 原料名称 | BOM 子件名称,可选 |
|
||
| 原料规格 | 可选 |
|
||
|
||
SQL 示例:
|
||
|
||
```sql
|
||
LEFT JOIN dbo.BOM数据 bom
|
||
ON bom.父件编码 = t.物料编码
|
||
```
|
||
|
||
### 19.4 页面/打印
|
||
|
||
打印模板增加:
|
||
|
||
```text
|
||
原料编码:XXXXXXXX
|
||
```
|
||
|
||
如果一个成品对应多个原料编码:
|
||
|
||
- 用逗号合并。
|
||
- 或打印明细区。
|
||
|
||
## 20. 需求 17-19:现场大屏
|
||
|
||
包括:
|
||
|
||
- 一楼质检大屏幕
|
||
- 机加现场大屏幕
|
||
- 装配现场大屏幕
|
||
|
||
看板项目目录:
|
||
|
||
| 大屏 | 项目目录 |
|
||
|---|---|
|
||
| 质检任务看板 | `质检任务看板` |
|
||
| 机加现场大屏 | `机加设备生产运营看板`、`机加设备生产运营看板二` |
|
||
| 装配现场大屏 | `装配任务看板` |
|
||
|
||
### 20.1 通用大屏开发原则
|
||
|
||
1. 大屏只展示,不作为字段维护入口。
|
||
2. 关键工序、缺勤、送检状态必须先有业务数据来源。
|
||
3. 所有大屏过程必须支持 `@统计日期`,默认当天。
|
||
4. 大屏刷新频率建议 30 秒以上,除设备状态外不建议 5 秒刷新复杂 SQL。
|
||
5. 指标必须能下钻明细。
|
||
|
||
### 20.2 一楼质检大屏
|
||
|
||
#### 20.2.1 新增指标
|
||
|
||
| 指标 | 口径 |
|
||
|---|---|
|
||
| 质检及时率 | 及时检验任务数 / 应检任务数 |
|
||
| 超 2 天未检任务 | 最后生产完成时间超过 2 天且未检足 |
|
||
| 关键工序应检数 | 任务快照中 `是否关键工序=1` |
|
||
| 关键工序未检数 | 应检但未检足 |
|
||
| 关键工序已检数 | 已检足 |
|
||
|
||
#### 20.2.2 需要新增字段
|
||
|
||
关键工序不要放在看板维护,应加在工艺和任务快照。
|
||
|
||
建议字段:
|
||
|
||
```sql
|
||
ALTER TABLE dbo.车间生产管理工艺_零件工序_工艺库 ADD 是否关键工序 bit NULL DEFAULT 0;
|
||
ALTER TABLE dbo.车间生产管理工艺_零件生产工艺_工艺库 ADD 是否关键工序 bit NULL DEFAULT 0;
|
||
ALTER TABLE dbo.MES_接口_生产计划_生产任务 ADD 是否关键工序 bit NULL DEFAULT 0;
|
||
```
|
||
|
||
任务下发时把生产工艺中的 `是否关键工序` 快照到任务表。
|
||
|
||
#### 20.2.3 存储过程
|
||
|
||
扩展或新增:
|
||
|
||
| 过程 | 用途 |
|
||
|---|---|
|
||
| `质量任务看板_未完成统计` | 增加超期天数、关键工序统计 |
|
||
| `质量任务看板_未完成明细查询` | 增加最后生产完成时间、是否关键工序 |
|
||
| `质量任务看板_及时率统计` | 新增及时率 |
|
||
|
||
### 20.3 机加现场大屏
|
||
|
||
#### 20.3.1 新增指标
|
||
|
||
| 指标 | 口径 |
|
||
|---|---|
|
||
| 缺勤人员 | 应到人员 - 实到人员 |
|
||
| 关键工序任务汇总 | 已排产未完成且是否关键工序=1 |
|
||
| 关键工序任务明细 | 订单、物料、工序、设备、指派对象、计划开始、完成数 |
|
||
|
||
#### 20.3.2 缺勤数据
|
||
|
||
不能从“没有报工”反推缺勤。
|
||
|
||
需要数据:
|
||
|
||
| 数据 | 来源 |
|
||
|---|---|
|
||
| 应到人员 | 班次人员绑定表、排班表、岗位工位绑定 |
|
||
| 实到人员 | 考勤、上岗绑定、登录、报工记录 |
|
||
|
||
建议新增排班表:
|
||
|
||
```sql
|
||
CREATE TABLE dbo.人员排班表 (
|
||
AID bigint IDENTITY(1,1) PRIMARY KEY,
|
||
排班日期 date NOT NULL,
|
||
班次编号 int NULL,
|
||
班次名称 nvarchar(50) NULL,
|
||
人员编号 int NOT NULL,
|
||
人员姓名 nvarchar(50) NOT NULL,
|
||
岗位 nvarchar(50) NULL,
|
||
工位号 nvarchar(50) NULL,
|
||
是否应到 bit NOT NULL DEFAULT 1,
|
||
创建人 nvarchar(50) NULL,
|
||
创建时间 datetime NOT NULL DEFAULT GETDATE()
|
||
);
|
||
|
||
CREATE INDEX IX_人员排班表_日期班次 ON dbo.人员排班表(排班日期, 班次名称);
|
||
```
|
||
|
||
如果已有 `班次人员绑定表` 能满足,则不新建,只扩展字段。
|
||
|
||
#### 20.3.3 存储过程
|
||
|
||
| 过程 | 用途 |
|
||
|---|---|
|
||
| `机加现场大屏_缺勤人员查询` | 返回岗位、工位、姓名 |
|
||
| `机加现场大屏_关键工序统计` | 汇总关键工序任务 |
|
||
| `机加现场大屏_关键工序明细` | 明细下钻 |
|
||
|
||
### 20.4 装配现场大屏
|
||
|
||
#### 20.4.1 新增指标
|
||
|
||
| 指标 | 口径 |
|
||
|---|---|
|
||
| 缺勤人员 | 同机加 |
|
||
| 及时送检任务 | 发料齐套后超过 2 天未送检 |
|
||
| 排序 | 加急优先,其次及时送检超期,再按计划开始或齐套时间 |
|
||
|
||
#### 20.4.2 存储过程
|
||
|
||
| 过程 | 用途 |
|
||
|---|---|
|
||
| `装配现场大屏_缺勤人员查询` | 岗位、工位、姓名 |
|
||
| `装配现场大屏_及时送检任务查询` | 发料齐套后 2 天未送检 |
|
||
| `装配中心任务看板_装配任务查询` | 增加发料齐套时间、是否已送检、送检时间、超期天数 |
|
||
|
||
#### 20.4.3 字段来源
|
||
|
||
| 字段 | 来源 |
|
||
|---|---|
|
||
| 发料齐套时间 | `MES_接口_生产计划.齐套时间` 或装配扩展表 |
|
||
| 是否已送检 | 送检记录/质检任务/质检记录 |
|
||
| 送检时间 | 送检记录 |
|
||
| 超期天数 | `DATEDIFF(DAY, 发料齐套时间, GETDATE())` |
|
||
|
||
## 21. 需求 20:编程任务清单 / 编程报工
|
||
|
||
### 21.1 页面定位
|
||
|
||
新增页面:
|
||
|
||
```text
|
||
src/views/ProductionManagement/ProgrammingTask/index.vue
|
||
```
|
||
|
||
菜单:
|
||
|
||
```text
|
||
生产管理 -> 报工管理 -> 编程任务清单
|
||
```
|
||
|
||
### 21.2 页面布局
|
||
|
||
```text
|
||
查询区:
|
||
设备 工位 程序员 状态 生产订单 物料 日期
|
||
[查询] [重置] [新增编程任务] [导出]
|
||
|
||
表格:
|
||
任务编号 生产订单 物料编码 物料名称 工序 设备/工位 程序号
|
||
编程人员 状态 开始时间 结束时间 工时 操作
|
||
|
||
操作:
|
||
[开始编程] [结束编程] [编辑程序号] [工时记录] [报异常]
|
||
```
|
||
|
||
### 21.3 新增表
|
||
|
||
#### 21.3.1 编程任务表
|
||
|
||
```sql
|
||
CREATE TABLE dbo.生产管理_编程任务 (
|
||
编程任务ID bigint IDENTITY(1,1) PRIMARY KEY,
|
||
编程任务编号 nvarchar(50) NOT NULL,
|
||
生产订单 int NULL,
|
||
TaskAID bigint NULL,
|
||
物料编码 nvarchar(100) NULL,
|
||
物料名称 nvarchar(500) NULL,
|
||
工序名称 nvarchar(100) NULL,
|
||
设备编号 nvarchar(50) NULL,
|
||
设备名称 nvarchar(100) NULL,
|
||
工位编号 nvarchar(50) NULL,
|
||
工位名称 nvarchar(100) NULL,
|
||
程序号 nvarchar(100) NULL,
|
||
任务来源 nvarchar(50) NULL, -- 人工创建/订单生成/设备任务派生
|
||
状态 nvarchar(20) NOT NULL DEFAULT N'未开始',
|
||
任务说明 nvarchar(1000) NULL,
|
||
创建人 nvarchar(50) NULL,
|
||
创建时间 datetime NOT NULL DEFAULT GETDATE(),
|
||
最后维护人 nvarchar(50) NULL,
|
||
最后维护时间 datetime NULL
|
||
);
|
||
```
|
||
|
||
#### 21.3.2 编程工时记录表
|
||
|
||
```sql
|
||
CREATE TABLE dbo.生产管理_编程任务_工时记录 (
|
||
记录ID bigint IDENTITY(1,1) PRIMARY KEY,
|
||
编程任务ID bigint NOT NULL,
|
||
操作类别 nvarchar(20) NOT NULL, -- 开始/结束
|
||
操作人编号 int NULL,
|
||
操作人 nvarchar(50) NOT NULL,
|
||
开始时间 datetime NULL,
|
||
结束时间 datetime NULL,
|
||
工时分钟 int NULL,
|
||
工作内容 nvarchar(1000) NULL,
|
||
结束说明 nvarchar(1000) NULL,
|
||
创建时间 datetime NOT NULL DEFAULT GETDATE()
|
||
);
|
||
|
||
CREATE INDEX IX_生产管理_编程任务_工时记录_任务
|
||
ON dbo.生产管理_编程任务_工时记录(编程任务ID);
|
||
```
|
||
|
||
### 21.4 存储过程
|
||
|
||
| 过程 | 用途 |
|
||
|---|---|
|
||
| `生产管理_编程任务_查询` | 列表查询 |
|
||
| `生产管理_编程任务_新增` | 新增任务 |
|
||
| `生产管理_编程任务_开始` | 开始编程 |
|
||
| `生产管理_编程任务_结束` | 结束编程并计算工时 |
|
||
| `生产管理_编程任务_工时明细` | 工时明细 |
|
||
| `生产管理_编程任务_程序号保存` | 维护程序号 |
|
||
|
||
### 21.5 工时接入
|
||
|
||
`View_统一工时明细` 增加:
|
||
|
||
```text
|
||
来源模块 = 编程
|
||
工时类型 = 编程
|
||
```
|
||
|
||
这样后续合同工时、工时报表可选择是否包含编程工时。
|
||
|
||
## 22. 需求 21-24:设备档案、设备数据采集、OEE、工时查询联动
|
||
|
||
### 22.1 设备档案管理
|
||
|
||
现有页面:
|
||
|
||
```text
|
||
src/views/DeviceManagement/DeviceInformation/index.vue
|
||
```
|
||
|
||
现有表:
|
||
|
||
```text
|
||
YL_设备管理_设备台账
|
||
MES_资源主数据
|
||
```
|
||
|
||
建议新增字段:
|
||
|
||
```sql
|
||
ALTER TABLE dbo.YL_设备管理_设备台账 ADD
|
||
是否主要设备 bit NULL DEFAULT 0,
|
||
是否参与OEE bit NULL DEFAULT 0,
|
||
设备标准工时 decimal(18,2) NULL,
|
||
标准工时单位 nvarchar(20) NULL,
|
||
采集设备编码 nvarchar(100) NULL,
|
||
采集点位配置 nvarchar(max) NULL;
|
||
```
|
||
|
||
注意:
|
||
|
||
- 设备标准工时不能替代工艺标准工时。
|
||
- OEE 的标准单件工时优先来自工艺或设备+工序能力表。
|
||
|
||
建议新增设备工序能力表:
|
||
|
||
```sql
|
||
CREATE TABLE dbo.设备管理_设备工序能力 (
|
||
AID bigint IDENTITY(1,1) PRIMARY KEY,
|
||
设备编号 nvarchar(50) NOT NULL,
|
||
设备名称 nvarchar(100) NULL,
|
||
工序名称 nvarchar(100) NOT NULL,
|
||
物料编码 nvarchar(100) NULL,
|
||
标准单件工时 decimal(18,4) NULL,
|
||
单位 nvarchar(20) NULL DEFAULT N'分钟',
|
||
是否启用 bit NOT NULL DEFAULT 1,
|
||
创建人 nvarchar(50) NULL,
|
||
创建时间 datetime NOT NULL DEFAULT GETDATE(),
|
||
最后维护人 nvarchar(50) NULL,
|
||
最后维护时间 datetime NULL
|
||
);
|
||
```
|
||
|
||
### 22.2 设备数据采集
|
||
|
||
现有表:
|
||
|
||
- `CaChe_Var`
|
||
- `历史_设备数据_定时`
|
||
- `历史_工位设备状态每分钟记录`
|
||
- `YL_设备管理_工时记录`
|
||
|
||
新增建议:
|
||
|
||
#### 22.2.1 采集原始数据表
|
||
|
||
如果现有 `历史_设备数据_定时` 字段足够,可不新建。否则新增:
|
||
|
||
```sql
|
||
CREATE TABLE dbo.设备采集_原始数据 (
|
||
AID bigint IDENTITY(1,1) PRIMARY KEY,
|
||
采集时间 datetime NOT NULL,
|
||
设备编号 nvarchar(50) NULL,
|
||
设备名称 nvarchar(100) NULL,
|
||
工位号 nvarchar(50) NULL,
|
||
变量名称 nvarchar(100) NULL,
|
||
变量值 nvarchar(200) NULL,
|
||
原始值 nvarchar(200) NULL,
|
||
单位 nvarchar(20) NULL,
|
||
TagID nvarchar(100) NULL,
|
||
DeviceCode nvarchar(100) NULL,
|
||
在线状态 nvarchar(20) NULL,
|
||
采集质量 nvarchar(20) NULL,
|
||
创建时间 datetime NOT NULL DEFAULT GETDATE()
|
||
);
|
||
```
|
||
|
||
#### 22.2.2 设备状态汇总表
|
||
|
||
```sql
|
||
CREATE TABLE dbo.设备采集_设备状态分钟汇总 (
|
||
AID bigint IDENTITY(1,1) PRIMARY KEY,
|
||
统计时间 datetime NOT NULL,
|
||
统计日期 date NOT NULL,
|
||
班次名称 nvarchar(50) NULL,
|
||
设备编号 nvarchar(50) NULL,
|
||
设备名称 nvarchar(100) NULL,
|
||
工位号 nvarchar(50) NULL,
|
||
状态代码 int NULL,
|
||
状态名称 nvarchar(50) NULL,
|
||
持续秒数 int NOT NULL DEFAULT 60,
|
||
是否有效加工 bit NULL,
|
||
创建时间 datetime NOT NULL DEFAULT GETDATE()
|
||
);
|
||
```
|
||
|
||
#### 22.2.3 设备任务绑定表
|
||
|
||
设备采集必须绑定 MES 任务,否则无法算任务级程序工时。
|
||
|
||
```sql
|
||
CREATE TABLE dbo.设备采集_任务绑定 (
|
||
AID bigint IDENTITY(1,1) PRIMARY KEY,
|
||
设备编号 nvarchar(50) NOT NULL,
|
||
设备名称 nvarchar(100) NULL,
|
||
工位号 nvarchar(50) NULL,
|
||
TaskAID bigint NOT NULL,
|
||
生产订单 int NOT NULL,
|
||
程序号 nvarchar(100) NULL,
|
||
绑定开始时间 datetime NOT NULL,
|
||
绑定结束时间 datetime NULL,
|
||
绑定来源 nvarchar(50) NULL, -- 人工/条码/程序号/时间推断
|
||
绑定人 nvarchar(50) NULL,
|
||
创建时间 datetime NOT NULL DEFAULT GETDATE()
|
||
);
|
||
```
|
||
|
||
### 22.3 OEE 指标
|
||
|
||
建议新增指标明细表:
|
||
|
||
```sql
|
||
CREATE TABLE dbo.设备指标_班次明细 (
|
||
AID bigint IDENTITY(1,1) PRIMARY KEY,
|
||
统计日期 date NOT NULL,
|
||
班次名称 nvarchar(50) NULL,
|
||
设备编号 nvarchar(50) NOT NULL,
|
||
设备名称 nvarchar(100) NULL,
|
||
工位号 nvarchar(50) NULL,
|
||
TaskAID bigint NULL,
|
||
生产订单 int NULL,
|
||
物料编码 nvarchar(100) NULL,
|
||
物料名称 nvarchar(500) NULL,
|
||
工序名称 nvarchar(100) NULL,
|
||
计划产量 decimal(18,2) NULL,
|
||
实际产量 decimal(18,2) NULL,
|
||
良品数 decimal(18,2) NULL,
|
||
不良品数 decimal(18,2) NULL,
|
||
标准单件工时 decimal(18,4) NULL,
|
||
实际单件工时 decimal(18,4) NULL,
|
||
设备运行工时分钟 decimal(18,2) NULL,
|
||
标准可用工时分钟 decimal(18,2) NULL,
|
||
产能利用率 decimal(18,4) NULL,
|
||
设备利用率 decimal(18,4) NULL,
|
||
性能开动率 decimal(18,4) NULL,
|
||
产品合格率 decimal(18,4) NULL,
|
||
OEE decimal(18,4) NULL,
|
||
计算时间 datetime NOT NULL DEFAULT GETDATE(),
|
||
计算说明 nvarchar(1000) NULL
|
||
);
|
||
```
|
||
|
||
计算过程:
|
||
|
||
| 过程 | 用途 |
|
||
|---|---|
|
||
| `设备指标_班次明细_生成` | 按日期班次生成指标 |
|
||
| `设备指标_OEE_查询` | 页面/看板查询 |
|
||
| `设备指标_OEE_明细` | 下钻查看三项组成 |
|
||
|
||
### 22.4 工时查询联动
|
||
|
||
现有页面:
|
||
|
||
```text
|
||
src/views/ProductionManagement/Workhours/index.vue
|
||
src/views/ProductionManagement/Timesheet/index.vue
|
||
src/views/ProductionManagement/WorkHoursCheck/index.vue
|
||
```
|
||
|
||
新增字段:
|
||
|
||
- 程序工时
|
||
- 设备运行工时
|
||
- 实际单件工时
|
||
- 标准单件工时
|
||
- 设备采集状态
|
||
- 采集质量
|
||
|
||
建议过程:
|
||
|
||
```text
|
||
工时查询_设备采集工时_查询
|
||
```
|
||
|
||
按 TaskAID、设备、时间段关联 `设备采集_任务绑定` 和设备状态汇总。
|
||
|
||
## 23. 需求 25:手续确认报表
|
||
|
||
### 23.1 页面定位
|
||
|
||
新增页面:
|
||
|
||
```text
|
||
src/views/ProductionManagement/FormalityConfirmReport/index.vue
|
||
```
|
||
|
||
菜单:
|
||
|
||
```text
|
||
报表中心 -> 装配报表 -> 手续确认报表
|
||
```
|
||
|
||
### 23.2 页面布局
|
||
|
||
```text
|
||
查询区:
|
||
生产订单 合同号 物料 指派对象 发料齐套日期 手续确认状态
|
||
[查询] [重置] [导出] [批量确认完成]
|
||
|
||
表格:
|
||
选择 生产订单 合同号 物料编码 物料名称 指派对象 发料齐套时间
|
||
装配完成时间 当前状态 手续确认 确认人 确认时间 操作
|
||
|
||
操作:
|
||
[确认完成] [查看装配明细] [查看异常]
|
||
```
|
||
|
||
### 23.3 新增表
|
||
|
||
表名:`生产管理_手续确认`
|
||
|
||
```sql
|
||
CREATE TABLE dbo.生产管理_手续确认 (
|
||
AID bigint IDENTITY(1,1) PRIMARY KEY,
|
||
订单编号 int NOT NULL,
|
||
确认状态 nvarchar(20) NOT NULL DEFAULT N'未完成',
|
||
确认人 nvarchar(50) NULL,
|
||
确认时间 datetime NULL,
|
||
确认备注 nvarchar(500) NULL,
|
||
创建时间 datetime NOT NULL DEFAULT GETDATE(),
|
||
最后维护人 nvarchar(50) NULL,
|
||
最后维护时间 datetime NULL
|
||
);
|
||
|
||
CREATE UNIQUE INDEX UX_生产管理_手续确认_订单编号
|
||
ON dbo.生产管理_手续确认(订单编号);
|
||
```
|
||
|
||
### 23.4 消失条件
|
||
|
||
报表只显示待确认数据:
|
||
|
||
```sql
|
||
WHERE ISNULL(fc.确认状态, N'未完成') <> N'已完成'
|
||
AND ISNULL(p.订单状态, '') NOT IN (N'取消', N'关闭')
|
||
AND ISNULL(p.单据状态, '') NOT IN (N'取消', N'关闭')
|
||
AND ISNULL(p.入库数量, 0) < ISNULL(p.计划数量, 0)
|
||
```
|
||
|
||
### 23.5 存储过程
|
||
|
||
| 过程 | 用途 |
|
||
|---|---|
|
||
| `生产管理_手续确认报表_查询` | 待确认列表 |
|
||
| `生产管理_手续确认报表_确认完成` | 单条确认 |
|
||
| `生产管理_手续确认报表_批量确认完成` | 批量确认 |
|
||
|
||
确认过程同时写 `系统管理_业务字段维护日志`。
|
||
|
||
## 24. 需求 26:产品合格率(工位)
|
||
|
||
### 24.1 页面定位
|
||
|
||
新增或扩展质量报表页面:
|
||
|
||
```text
|
||
src/views/QualityManagement/StationPassRate/index.vue
|
||
```
|
||
|
||
### 24.2 口径
|
||
|
||
公式:
|
||
|
||
```text
|
||
产品合格率 = 良品数 / 总产量
|
||
```
|
||
|
||
需要先确认:
|
||
|
||
- 总产量取报工完成数量还是质检检验数量。
|
||
- 良品数取质检合格数还是报工合格数。
|
||
- 统计维度按工位、设备、指派对象还是实际操作工位。
|
||
|
||
建议第一版:
|
||
|
||
- 总产量:质检记录 `检验数量`
|
||
- 良品数:质检记录 `合格数`
|
||
- 工位:关联任务表 `指派对象`,同时展示质检记录来源工位。
|
||
|
||
### 24.3 存储过程
|
||
|
||
过程名:`质量管理_产品合格率_工位查询`
|
||
|
||
参数:
|
||
|
||
- 开始日期
|
||
- 结束日期
|
||
- 工位
|
||
- 工序
|
||
- 物料
|
||
|
||
返回:
|
||
|
||
- 工位
|
||
- 检验数量
|
||
- 合格数量
|
||
- 不合格数量
|
||
- 合格率
|
||
- 明细数
|
||
|
||
### 24.4 不新增表
|
||
|
||
第一阶段不新增表。如果要日快照,写入 `质量管理_工位合格率_日快照`。
|
||
|
||
## 25. 需求 27:让步接收记录
|
||
|
||
### 25.1 页面定位
|
||
|
||
新增页面:
|
||
|
||
```text
|
||
src/views/QualityManagement/ConcessionRecord/index.vue
|
||
```
|
||
|
||
菜单:
|
||
|
||
```text
|
||
质量管理 -> 质量报表 -> 让步接收记录
|
||
```
|
||
|
||
### 25.2 数据来源
|
||
|
||
现有字段:
|
||
|
||
- `MES_接口_生产计划_生产任务.让步放行数量`
|
||
- `YL_质量检验_不合格品处理.申请让步放行`
|
||
- `YL_质量检验_不合格品处理_处理节点.让步放行数量`
|
||
|
||
需求说“新增让步记录查询页面”,建议从不合格品处理和质检记录综合查询。
|
||
|
||
### 25.3 存储过程
|
||
|
||
过程名:`质量管理_让步接收记录_查询`
|
||
|
||
参数:
|
||
|
||
- 生产订单
|
||
- 物料
|
||
- 检验人
|
||
- 检验开始
|
||
- 检验结束
|
||
- 让步状态
|
||
|
||
返回:
|
||
|
||
- 生产订单
|
||
- TaskAID
|
||
- 物料编码
|
||
- 物料名称
|
||
- 工序名称
|
||
- 检验数量
|
||
- 不合格数量
|
||
- 让步放行数量
|
||
- 申请让步放行
|
||
- 检验人
|
||
- 检验时间
|
||
- 处理意见
|
||
|
||
### 25.4 不新增表
|
||
|
||
页面只查询,不维护。
|
||
|
||
## 26. 需求 28:设计任务报工模块 / 报工-技术-MES
|
||
|
||
### 26.1 页面定位
|
||
|
||
新增页面:
|
||
|
||
```text
|
||
src/views/ProductionManagement/DesignTaskWork/index.vue
|
||
```
|
||
|
||
菜单:
|
||
|
||
```text
|
||
生产管理 -> 报工管理 -> 设计任务报工
|
||
```
|
||
|
||
### 26.2 页面布局
|
||
|
||
```text
|
||
查询区:
|
||
任务名称 设计人员 状态 日期
|
||
[查询] [重置] [新增设计任务] [导出]
|
||
|
||
表格:
|
||
任务编号 任务名称 设计人员 状态 计划开始 计划完成
|
||
开始时间 结束时间 工时 工作内容 结束说明 创建人 操作
|
||
|
||
操作:
|
||
[开始报工] [结束报工] [工时记录] [编辑] [取消]
|
||
```
|
||
|
||
### 26.3 新增表
|
||
|
||
#### 26.3.1 设计任务表
|
||
|
||
```sql
|
||
CREATE TABLE dbo.生产管理_设计任务 (
|
||
设计任务ID bigint IDENTITY(1,1) PRIMARY KEY,
|
||
设计任务编号 nvarchar(50) NOT NULL,
|
||
任务名称 nvarchar(200) NOT NULL,
|
||
设计人员编号 int NULL,
|
||
设计人员 nvarchar(50) NULL,
|
||
状态 nvarchar(20) NOT NULL DEFAULT N'未开始',
|
||
计划开始时间 datetime NULL,
|
||
计划完成时间 datetime NULL,
|
||
任务说明 nvarchar(1000) NULL,
|
||
创建人 nvarchar(50) NULL,
|
||
创建时间 datetime NOT NULL DEFAULT GETDATE(),
|
||
最后维护人 nvarchar(50) NULL,
|
||
最后维护时间 datetime NULL
|
||
);
|
||
```
|
||
|
||
#### 26.3.2 设计工时记录表
|
||
|
||
```sql
|
||
CREATE TABLE dbo.生产管理_设计任务_工时记录 (
|
||
记录ID bigint IDENTITY(1,1) PRIMARY KEY,
|
||
设计任务ID bigint NOT NULL,
|
||
操作人编号 int NULL,
|
||
操作人 nvarchar(50) NOT NULL,
|
||
开始时间 datetime NOT NULL,
|
||
结束时间 datetime NULL,
|
||
工时分钟 int NULL,
|
||
工作内容 nvarchar(1000) NULL,
|
||
结束说明 nvarchar(1000) NULL,
|
||
创建时间 datetime NOT NULL DEFAULT GETDATE()
|
||
);
|
||
```
|
||
|
||
### 26.4 存储过程
|
||
|
||
| 过程 | 用途 |
|
||
|---|---|
|
||
| `生产管理_设计任务_查询` | 任务列表 |
|
||
| `生产管理_设计任务_新增` | 新建任务 |
|
||
| `生产管理_设计任务_编辑` | 编辑任务 |
|
||
| `生产管理_设计任务_取消` | 取消 |
|
||
| `生产管理_设计任务_开始` | 开始报工 |
|
||
| `生产管理_设计任务_结束` | 结束报工 |
|
||
| `生产管理_设计任务_工时明细` | 工时明细 |
|
||
|
||
### 26.5 工时接入
|
||
|
||
`View_统一工时明细` 增加:
|
||
|
||
```text
|
||
来源模块 = 设计
|
||
工时类型 = 设计
|
||
```
|
||
|
||
注意:
|
||
|
||
- 设计任务当前不上传 SAP。
|
||
- 设计任务不产生质量、装配、机加工时。
|
||
- 后续装配已排产需求的合同工时汇总可选择纳入设计工时。
|
||
|
||
## 27. 需求 29:工时异常报表
|
||
|
||
### 27.1 页面定位
|
||
|
||
新增页面:
|
||
|
||
```text
|
||
src/views/ProductionManagement/WorkTimeAbnormalReport/index.vue
|
||
```
|
||
|
||
### 27.2 异常口径
|
||
|
||
```text
|
||
实际单件工时 > 标准单件工时
|
||
```
|
||
|
||
字段来源:
|
||
|
||
| 字段 | 来源 |
|
||
|---|---|
|
||
| 实际单件工时 | 设备采集,或人工报工工时 / 完成数量 |
|
||
| 标准单件工时 | 生产工艺或设备工序能力表 |
|
||
| 设备/工位 | 任务指派对象、设备绑定 |
|
||
| 程序号 | 编程任务或设备采集 |
|
||
|
||
### 27.3 建议新增表
|
||
|
||
如需要异常确认闭环:
|
||
|
||
```sql
|
||
CREATE TABLE dbo.生产管理_工时异常确认 (
|
||
AID bigint IDENTITY(1,1) PRIMARY KEY,
|
||
统计日期 date NULL,
|
||
TaskAID bigint NULL,
|
||
生产订单 int NULL,
|
||
设备编号 nvarchar(50) NULL,
|
||
设备名称 nvarchar(100) NULL,
|
||
标准单件工时 decimal(18,4) NULL,
|
||
实际单件工时 decimal(18,4) NULL,
|
||
超出时长 decimal(18,4) NULL,
|
||
超出比例 decimal(18,4) NULL,
|
||
异常原因 nvarchar(500) NULL,
|
||
责任部门 nvarchar(100) NULL,
|
||
处理说明 nvarchar(1000) NULL,
|
||
确认状态 nvarchar(20) NOT NULL DEFAULT N'未确认',
|
||
确认人 nvarchar(50) NULL,
|
||
确认时间 datetime NULL
|
||
);
|
||
```
|
||
|
||
### 27.4 存储过程
|
||
|
||
| 过程 | 用途 |
|
||
|---|---|
|
||
| `生产管理_工时异常报表_查询` | 查询异常 |
|
||
| `生产管理_工时异常报表_明细` | 查看来源明细 |
|
||
| `生产管理_工时异常报表_确认` | 异常确认 |
|
||
|
||
### 27.5 页面字段
|
||
|
||
- 设备/工位
|
||
- 生产订单
|
||
- 物料编码
|
||
- 物料名称
|
||
- 工序名称
|
||
- 指派对象
|
||
- 操作人
|
||
- 程序号
|
||
- 标准单件工时
|
||
- 实际单件工时
|
||
- 超出时长
|
||
- 超出比例
|
||
- 开始时间
|
||
- 结束时间
|
||
- 班次
|
||
- 异常原因
|
||
- 确认状态
|
||
|
||
## 28. 需求 30:正在加工状态
|
||
|
||
### 28.1 目标
|
||
|
||
“正在加工状态:机加正在进行中”。
|
||
|
||
### 28.2 数据来源
|
||
|
||
优先复用:
|
||
|
||
- `MES_ProductCenter_DoingTask`
|
||
- `v_CurrentProductionStatus`
|
||
- `YL_加工中心_操作记录表` 中开始未结束记录
|
||
|
||
### 28.3 页面/看板展示
|
||
|
||
可以在以下页面增加状态:
|
||
|
||
- 加工中心任务列表
|
||
- 生产计划跟踪
|
||
- 机加现场大屏
|
||
|
||
展示规则:
|
||
|
||
| 条件 | 状态 |
|
||
|---|---|
|
||
| 有开始记录且未报工结束 | 正在加工 |
|
||
| 任务状态已完成 | 已完成 |
|
||
| 有暂停记录未恢复 | 暂停中 |
|
||
| 无开始记录 | 未开工 |
|
||
|
||
### 28.4 存储过程
|
||
|
||
过程名:`生产管理_正在加工状态_查询`
|
||
|
||
返回:
|
||
|
||
- TaskAID
|
||
- 生产订单
|
||
- 工序名称
|
||
- 指派对象
|
||
- 操作人
|
||
- 开始时间
|
||
- 当前持续分钟
|
||
- 状态
|
||
|
||
## 29. 暂不排期项的技术前置
|
||
|
||
### 29.1 及时拣配(机加/装配)
|
||
|
||
必须先确认:
|
||
|
||
1. 条码代表物料、箱号、批次、生产订单还是拣配单。
|
||
2. SAP 库存和 MES 拣配状态谁是主口径。
|
||
3. 扫码后是否写回 `拣配状态`、`齐套`、`发料状态`。
|
||
4. 机加和装配是否共用拣配表。
|
||
|
||
建议表:
|
||
|
||
```sql
|
||
CREATE TABLE dbo.生产管理_条码拣配记录 (
|
||
AID bigint IDENTITY(1,1) PRIMARY KEY,
|
||
拣配类型 nvarchar(20) NOT NULL, -- 机加/装配
|
||
条码 nvarchar(200) NOT NULL,
|
||
生产订单 int NULL,
|
||
TaskAID bigint NULL,
|
||
物料编码 nvarchar(100) NULL,
|
||
物料名称 nvarchar(500) NULL,
|
||
批次号 nvarchar(100) NULL,
|
||
数量 decimal(18,2) NULL,
|
||
拣配状态 nvarchar(20) NULL,
|
||
SAP校验状态 nvarchar(20) NULL,
|
||
异常说明 nvarchar(500) NULL,
|
||
拣配人 nvarchar(50) NULL,
|
||
拣配时间 datetime NOT NULL DEFAULT GETDATE()
|
||
);
|
||
```
|
||
|
||
### 29.2 标牌打印操作
|
||
|
||
需求未定,不建表不开发。需确认:
|
||
|
||
- 打印对象:物料、订单、设备、工位、产品?
|
||
- 条码内容。
|
||
- 模板样式。
|
||
- 是否需要打印记录。
|
||
|
||
### 29.3 首检、巡检
|
||
|
||
现有质检中心已有首检、巡检相关逻辑。空需求暂不开发。若后续提出,应先确认是新增报表、页面优化还是流程改造。
|
||
|
||
## 30. 菜单和权限
|
||
|
||
所有新增页面都需要写入 `登录基础数据_二级菜单`,并按角色分配。
|
||
|
||
建议新增菜单:
|
||
|
||
| 页面 | 菜单 |
|
||
|---|---|
|
||
| 装配已排产需求 | 生产管理/装配管理 |
|
||
| 生产日报-送检 | 报表中心/生产日报 |
|
||
| 及时齐套跟踪结果报表 | 报表中心/齐套报表 |
|
||
| 机加班次产量表 | 报表中心/生产报表 |
|
||
| 发货通知列表 | 报表中心/交付报表 |
|
||
| 质检任务早知道 | 质量管理/质量报表 |
|
||
| 及时检验报表 | 质量管理/质量报表 |
|
||
| 手续确认报表 | 报表中心/装配报表 |
|
||
| 让步接收记录 | 质量管理/质量报表 |
|
||
| 设计任务报工 | 生产管理/报工管理 |
|
||
| 编程任务清单 | 生产管理/报工管理 |
|
||
| 工时异常报表 | 报表中心/工时报表 |
|
||
|
||
菜单字段要参考现有 `登录基础数据_二级菜单`:
|
||
|
||
- `path`
|
||
- `componet`
|
||
- `name`
|
||
- `title`
|
||
- `icon`
|
||
- `账号代码`
|
||
|
||
## 31. 开发实施顺序
|
||
|
||
### 31.1 第一阶段:高优先级低风险
|
||
|
||
1. 及时开工报表正选/反选。
|
||
2. 机加已排产日期筛选。
|
||
3. 机加已排产历史工时弹窗。
|
||
4. 生产工艺自动带出标准工艺。
|
||
5. 工时报表指派对象。
|
||
6. 小字段:备注、提示、流转卡原料编码。
|
||
|
||
交付标准:
|
||
|
||
- 页面可查询。
|
||
- 数据字段正确。
|
||
- 导出同步。
|
||
- 不影响现有流程。
|
||
|
||
### 31.2 第二阶段:装配已排产专项
|
||
|
||
1. 建装配扩展表。
|
||
2. 做主查询页面。
|
||
3. 加系统/非系统筛选。
|
||
4. 接派工时间、合同交货期、发料齐套时间。
|
||
5. 做装配完成时间和人工维护。
|
||
6. 做当前人员、当前内容、历史说明。
|
||
7. 接工时汇总和明细。
|
||
8. 接异常明细。
|
||
9. 做日计划导出打印。
|
||
10. 派生质检任务早知道。
|
||
|
||
交付标准:
|
||
|
||
- 主表字段完整。
|
||
- 人工维护有日志。
|
||
- 工时可钻取。
|
||
- 日计划可导出/打印。
|
||
|
||
### 31.3 第三阶段:质量和齐套报表
|
||
|
||
1. 及时检验报表。
|
||
2. 生产日报-送检。
|
||
3. 及时齐套跟踪结果报表。
|
||
4. 让步接收记录。
|
||
5. 外协任务检验字段补充。
|
||
6. 产品合格率。
|
||
|
||
交付标准:
|
||
|
||
- 每个报表有明确口径。
|
||
- 可导出。
|
||
- 可钻明细。
|
||
- SAP 来源显示同步时间。
|
||
|
||
### 31.4 第四阶段:流程增强
|
||
|
||
1. 异常管控统一入口。
|
||
2. 生产订单批量关闭 SAP。
|
||
3. 手续确认报表。
|
||
4. 编程任务报工。
|
||
5. 设计任务报工。
|
||
|
||
交付标准:
|
||
|
||
- 写操作有确认。
|
||
- 批量结果逐条返回。
|
||
- 异常审批人多选可见,一人处理。
|
||
- 工时进入统一工时视图。
|
||
|
||
### 31.5 第五阶段:设备采集和大屏
|
||
|
||
1. 设备档案字段。
|
||
2. 设备采集原始数据和任务绑定。
|
||
3. OEE 指标明细。
|
||
4. 工时异常报表。
|
||
5. 质检、机加、装配现场大屏。
|
||
|
||
交付标准:
|
||
|
||
- 设备采集有原始数据和汇总数据。
|
||
- OEE 可下钻。
|
||
- 大屏指标无占位数据。
|
||
- 缺勤有排班/实到来源。
|
||
|
||
## 32. 测试清单
|
||
|
||
### 32.1 页面测试
|
||
|
||
每个页面至少测试:
|
||
|
||
- 查询为空。
|
||
- 单条件查询。
|
||
- 多条件组合查询。
|
||
- 日期边界。
|
||
- 分页。
|
||
- 导出。
|
||
- 弹窗打开关闭。
|
||
- 保存成功。
|
||
- 保存失败。
|
||
- 无权限访问。
|
||
|
||
### 32.2 数据测试
|
||
|
||
重点验证:
|
||
|
||
- 工时汇总和明细一致。
|
||
- 日期筛选包含当天 00:00:00 到 23:59:59。
|
||
- 已关闭/已入库/已完成任务是否正确排除。
|
||
- SAP 字段为空时页面不报错。
|
||
- 多人员当前任务合并显示正确。
|
||
- 班次跨天统计正确。
|
||
|
||
### 32.3 性能测试
|
||
|
||
重点过程:
|
||
|
||
- 装配已排产需求主查询。
|
||
- 及时齐套跟踪主表。
|
||
- 机加班次产量表。
|
||
- 及时检验报表。
|
||
- 大屏过程。
|
||
|
||
要求:
|
||
|
||
- 普通报表分页查询 3 秒内返回。
|
||
- 大屏过程 2 秒内返回。
|
||
- 导出可慢,但必须有 loading。
|
||
|
||
### 32.4 回归测试
|
||
|
||
必须回归:
|
||
|
||
- 机加排产。
|
||
- 装配排产。
|
||
- 加工中心报工。
|
||
- 装配中心报工。
|
||
- 质检收检。
|
||
- 外协收检。
|
||
- 工时统计。
|
||
- 生产计划跟踪。
|
||
- 看板刷新。
|
||
|
||
## 33. 风险和处理
|
||
|
||
| 风险 | 处理 |
|
||
|---|---|
|
||
| SAP 字段未到 | 页面字段先预留,显示空;存储过程字段从扩展表读取 |
|
||
| 发料齐套时间口径不稳 | 标记来源字段:SAP/MES/人工 |
|
||
| 设计工时依赖设计任务模块 | 装配已排产先显示装配/质量,设计为 0,模块完成后接入 |
|
||
| 设备采集不稳定 | OEE 和工时异常先用人工工时降级口径,并标记数据来源 |
|
||
| 缺勤无排班来源 | 不做缺勤正式统计,只做排班来源确认或新增排班表 |
|
||
| 动态 SQL 注入风险 | 新增过程尽量参数化 |
|
||
| 历史数据为空 | 字段允许 NULL,页面显示 `--`,不强行补假数据 |
|
||
|
||
## 34. 交付物
|
||
|
||
每个需求完成时至少交付:
|
||
|
||
1. 前端页面或页面改造。
|
||
2. SQL 增量脚本。
|
||
3. 新增/修改存储过程。
|
||
4. 菜单和权限配置说明。
|
||
5. 测试数据和测试结果。
|
||
6. 字段口径说明。
|
||
7. 如涉及 SAP,提供 SAP 调用日志或同步状态。
|
||
|