chore: save local MES snapshot

This commit is contained in:
2026-06-25 15:49:15 +08:00
parent 4f6a16fb2e
commit f6dce5daa8
102 changed files with 45101 additions and 218 deletions

View File

@@ -0,0 +1,760 @@
# MES_Manage_View_V20 功能列表 — 页面 → 存储过程映射
> **生成日期**: 2026-05-18
> **说明**: 系统采用动态菜单架构,页面路由由数据库表 `登录基础数据_二级菜单` 配置,前端通过 `this.CreateData(type, name, data)` 统一调用后端存储过程。
> **通信协议**: 前端 → ASP.NET后端 → SQL Server存储过程参数以JSON格式传递。
---
## 架构说明
```
前端 Vue 组件
├── this.CreateData('1', '存储过程名', [参数数组])
│ └── 查询操作 (type='1')
├── this.CreateData('2', '存储过程名', [参数数组])
│ └── 增删改操作 (type='2')
└── this.CreateData('7', '存储过程名', jsonData, pageSize, pageList)
└── 批量/JSON操作 (type='7')
```
---
## 一、登录与权限管理
### 1.1 用户登录
| 项目 | 内容 |
|------|------|
| **页面路径** | `/login` |
| **Vue组件** | `src/views/login/index.vue` |
| **功能描述** | 用户工号密码验证、多角色选择、记住密码(Cookie)、修改密码 |
| 操作 | 前端调用 type | 存储过程 / 后端名称 | 说明 |
|------|:---:|------|------|
| 用户名密码验证 | 1 | `菜单模块系统_用户名密码_查询数据``MES_登录_工号密码验证` | 查询 `基础表_用户角色` |
| 获取用户角色菜单 | 1 | `菜单模块系统_项目角色模块列表_二级_查询数据``View_账号权限信息` | 按角色编号返回菜单树 |
| 修改密码 | 2 | `账号信息_修改密码_MESWORK` | 调用 `editPassword()` API |
| 获取工位列表 | 1 | `MES_登录_工位与名称_查询` | 来自 `View_基础数据_工位` |
| 获取班次信息 | 1 | `MES_登录_班次信息` | 来自 `YL_基础表_数据字典` |
**涉及数据库对象**:
| 类型 | 名称 |
|------|------|
| 表 | `登录基础数据_人员信息`, `登录基础数据_角色信息`, `登录基础数据_人员权限角色`, `登录基础数据_二级菜单`, `基础表_用户角色` |
| 视图 | `View_账号权限信息`, `View_基础数据_工位`, `登录基础数据_管理人员权限视图` |
| 存储过程 | `MES_登录_工号密码验证`, `MES_登录_工位与名称_查询`, `MES_登录_班次信息` |
---
### 1.2 权限与菜单管理
| 项目 | 内容 |
|------|------|
| **功能描述** | 动态菜单路由生成、角色-菜单-按钮权限控制 |
| 类型 | 名称 | 说明 |
|------|------|------|
| 表 | `登录基础数据_二级菜单` | 菜单树配置(id/pid/path/componet/name/title/icon/账号代码) |
| 表 | `登录基础数据_角色信息` | 角色定义 |
| 表 | `登录基础数据_人员权限角色` | 人员-角色关联 |
| 表 | `登录基础数据_部门` | 组织架构 |
| 视图 | `登录基础数据_管理人员权限视图` | 角色-人员-部门完整视图 |
| 前端 | `src/permission.js` | 路由守卫 |
| 前端 | `src/router/getTreeData.js` | 动态菜单树递归生成 |
---
## 二、生产排产管理
### 2.1 排产任务查询
| 项目 | 内容 |
|------|------|
| **页面路径** | 动态配置 (如 `/orderPlanned` 等) |
| **功能描述** | 查询待排产任务、按多种条件筛选(订单号/合同号/物料/工序/时间范围/排产状态/工位) |
| 操作 | type | 存储过程 | 说明 |
|------|:---:|------|------|
| 机加件排产查询 | 1 | `MES_OrderPlanned_Query` | 过滤: 物料类型=pit_Resource, 自制件属性=机加件, 任务状态<4 |
| 装配件排产查询 | 1 | `MES_OrderPlanned_Queryzp` | 过滤: 自制件属性包含装配 |
| 获取订单详细信息 | 1 | `Prog_MES_GetProductOrder_byAID` | 按TaskAID查订单工序详情 |
**涉及数据库对象**:
| 类型 | 名称 |
|------|------|
| 视图 | `View_生产订单_MES` |
| 表 | `MES_接口_生产计划`, `MES_接口_生产计划_生产任务`, `车间生产管理工艺_零件生产工艺_工艺库` |
| 存储过程 | `MES_OrderPlanned_Query`, `MES_OrderPlanned_Queryzp`, `Prog_MES_GetProductOrder_byAID` |
---
### 2.2 单任务排产/拆分
| 项目 | 内容 |
|------|------|
| **功能描述** | 单个工序任务指派工位、拆分数量、设定计划时间 |
| 操作 | type | 存储过程 | 说明 |
|------|:---:|------|------|
| 单任务排产指派 | 2 | `MES_OrderPlanned_SingleTaskPlanned` | 核心排产:指派数量<计划数量时自动拆分;>计划数量时合并/报错 |
| 编辑任务排产信息 | 2 | `MES_OrderPlanned_EditTaskPlanned` | 动态SQL编辑排产字段 |
| 编辑任务描述 | 2 | `MES_OrderPlanned_DescriptionEdit` | 编辑优先级/未完成说明/派工特殊说明 |
---
### 2.3 批量排产确认
| 操作 | type | 存储过程 | 说明 |
|------|:---:|------|------|
| 批量排产确认 | 7 | `MES_OrderPlanned_Finish` | JSON格式批量传入OPENJSON解析 |
---
### 2.4 子任务(二次派工)
| 操作 | type | 存储过程 | 说明 |
|------|:---:|------|------|
| 新增子任务 | 2 | `MES_OrderPlanned_ChildTask_Add` | 插入 `MES_接口_生产计划_生产任务_子任务` |
| 查询子任务 | 1 | `MES_OrderPlanned_ChildTask_Get` | 按父TaskAID查子任务列表 |
---
### 2.5 排产重置
| 操作 | type | 存储过程 | 说明 |
|------|:---:|------|------|
| 重置排产 | 2 | `__Reset_ProductOrder` | @optType=0重置排产, @optType=1重置加工中心(TRUNCATE操作记录) |
---
## 三、生产订单管理
### 3.1 订单查询
| 页面路径 | 动态配置 |
| **功能描述** | 多条件查询生产订单(订单号/合同号/物料/工序/排产状态/工位) |
| 操作 | type | 存储过程 | 说明 |
|------|:---:|------|------|
| 机加件订单查询 | 1 | `MES_ProductAdmin_Query` | 含不合格数量/收料数量等 |
| 装配件订单查询 | 1 | `MES_ProductAdmin_Query` | @物料类型='装配件' |
| 订单工序任务获取 | 1 | `MES_ProductCenter_GetOrderTasks` | 按TaskAID查同订单所有工序及前序合格/不合格数 |
**涉及视图**: `View_生产订单_MES`, `View_生产订单全部包括已关闭`, `View_生产订单Temp_ERP`
---
### 3.2 ERP订单同步
| 操作 | type | 存储过程 | 说明 |
|------|:---:|------|------|
| SAP订单同步到MES | 2 | `MES_接口_生产计划_Insert` | 装配件自动生成生产任务行 |
**涉及外部数据源**: `SAP.SBO_YL.dbo.OWOR`, `SAP.SBO_YL.dbo.OWR1`, `SAP.SBO_YL.dbo.OWR4`
---
## 四、加工中心(生产执行)
### 4.1 任务查看
| 页面路径 | 动态配置 |
| **功能描述** | 查看分配给当前工位的可执行/进行中任务 |
| 操作 | type | 存储过程 | 说明 |
|------|:---:|------|------|
| 机加任务查询 | 1 | `MES_ProductCenter_GetTask` | 多条件筛选(订单号/零件编号/计划开工/生产状态/工位/用户ID) |
| 装配任务查询 | 1 | `MES_ProductCenter_GetTask_zp` | 过滤装配工序 |
| 获取进行中任务 | 1 | `MES_ProductCenter_DoingTask` | 按工位获取正在加工的任务 |
| 获取操作记录 | 1 | `MES_ProductCenter_OptRecords` | 按工位查最近50条操作记录 |
---
### 4.2 生产操作流程
```
收料 → 开始加工 → (暂停/恢复) → 报工
→ 首检 → 巡检 → 序检
```
| 操作步骤 | type | 存储过程 | 说明 |
|------|:---:|------|------|
| **收料** | 2 | `MES_ProductTask_MaterialRecieved` | 更新收料数量,收料>0时任务变为可执行(1) |
| **标记可执行** | 2 | `MES_ProductTask_Excutable` | 手动标记任务为可执行状态 |
| **开始加工** | 2 | `MES_ProductTask_WorkingStart` | 任务状态→已开工(2),自动同步上序合格数为收料数 |
| **暂停** | 2 | `MES_ProductTask_Rest` | 加工状态→暂停(5),关联开始记录 |
| **报工** | 2 | `MES_ProductTask_ProdReport` | 核心报工:含加班计算、捆绑报工、前序不合格数、报工记录双写入 |
| **辅助开始** | 2 | `MES_ProductTask_HelpStart` | 辅助工序开始 |
| **辅助结束** | 2 | `MES_ProductTask_HelpEnd` | 含加班时长计算、休息日处理 |
| **首检** | 2 | `MES_ProductTask_FirstCheck` | 生成首检操作记录 |
| **送检(装配报工)** | 2 | `MES_ProductTask_SendInspection` | 装配工序的报工操作 |
| **外协通知** | 2 | `MES_ProductTask_Notice` | 更新外协通知状态 |
**底层操作记录保存**:
| 操作 | type | 存储过程 | 说明 |
|------|:---:|------|------|
| 操作记录统一保存 | - | `MES_ProductCenter_OptRecord_Save` | 被上述所有操作调用,处理暂停/开始/报工联动计算工时 |
**涉及数据库对象**:
| 类型 | 名称 |
|------|------|
| 表 | `YL_加工中心_操作记录表`, `YL_加工中心_报工记录` |
| 视图 | `View_生产工时视图`, `View_校验后的生产工时`, `v_CurrentProductionStatus` |
| 索引 | `IX_YL_加工中心_操作记录表_TaskAID_操作内容` |
---
### 4.3 暂停状态管理
| 操作 | type | 存储过程 | 说明 |
|------|:---:|------|------|
| 获取暂停状态 | 1 | `MES_操作记录_获取暂停状态` | 查询最近未结束的暂停记录(24小时内) |
| 获取任务暂停状态 | 1 | `MES_操作记录_获取任务暂停状态` | 按TaskAID查暂停状态 |
| 查找未完成开始记录 | 1 | `FindUnfinishedStartOperations` | 查询开始加工但未报工的记录 |
---
## 五、工时管理与校验
### 5.1 报工记录管理
| 页面路径 | 动态配置 |
| **功能描述** | 查看/确认各班次报工记录 |
| 操作 | type | 存储过程 | 说明 |
|------|:---:|------|------|
| 报工记录查询 | 1 | `MES_ProductAdmin_GetRptRecords` | 按日期/工位/合同号/订单号/操作人/确认状态筛选 |
| 报工确认 | 2 | `MES_ProductAdmin_RptConfirm` | 确认工时、填写确认说明 |
| 工时汇总查询 | 1 | `MES_ProductTask_WorkTimeSum` | 按TaskAID/工序汇总工时 |
**涉及数据库对象**:
| 类型 | 名称 |
|------|------|
| 表 | `YL_加工中心_报工记录`, `生产管理_工时校验_校验工时表` |
| 视图 | `View_生产工时视图`, `View_校验后的生产工时`, `View_报工人员` |
---
### 5.2 装配人员工时
| 操作 | type | 存储过程 | 说明 |
|------|:---:|------|------|
| 开始记录 | 2 | `MES_人员工时记录_开始` | 装配人员开始加工 |
| 结束记录 | 2 | `MES_人员工时记录_结束` | 含白班/加班/休息日完整工时计算 |
| 检查进行中 | 1 | `MES_人员工时记录_检查是否存在` | 检查是否有未结束记录 |
| 获取进行中任务 | 1 | `MES_人员工时记录_获取进行中任务` | 按用户ID查进行中装配任务 |
| 获取所有进行中 | 1 | `MES_人员工时记录_获取进行中任务2` | 查所有未结束装配任务 |
---
## 六、质量管理
### 6.1 质检任务查询
| 页面路径 | 动态配置 |
| **功能描述** | 多条件查询质检任务(计划号/零件编码/工艺编号/检测类型/检验结果/检测人/时间) |
| 操作 | type | 存储过程 | 说明 |
|------|:---:|------|------|
| 质检记录查询 | 1 | `MES_QualityInspection_CheckRecord_Query` | 排除来料检验,含工艺编号关联 |
| 质检任务查询 | 1 | `MES_QulityInspection_GetTask` | 查已开工/已完成任务(含首检/巡检/序检状态) |
| 获取检测标准 | 1 | `MES_QulityInspection_GetItemStandard` | 按物料编号+工序名称编号+检测类别编号查标准 |
| 获取检测数量 | 1 | `MES_QulityInspection_GetCheckCount` | 按TaskAID查检验总数 |
| 获取检测零件 | 1 | `MES_QulityInspection_GetPart` | 按QT_AID查零件列表 |
| 获取检测零件详情 | 1 | `MES_QualityInspection_GetInspectionParts` | 零件级检测结果 |
| 获取检测明细数据 | 1 | `MES_QualityInspection_GetInspectionDetails` | 检测项目明细(理论值/实测值) |
---
### 6.2 质检操作
| 操作步骤 | type | 存储过程 | 说明 |
|------|:---:|------|------|
| **收检** | 2 | `MES_QulityInspection_ReceiveCheck` | 事务性写入,总检测数=计划数时自动完成任务,收检合格触发下一工序可执行 |
| **终检** | 2 | `MES_QulityInspection_FinalCheck` | 终检记录(含放行数量) |
| **巡检** | 2 | `MES_QulityInspection_RoundCheck` | 更新不合格数+巡检标记 |
| **序检** | 2 | `MES_QulityInspection_ProcessCheck` | 更新不合格数+序检标记 |
| **首检记录查询** | 1 | `MES_QulityInspection_FirstCheckRecords` | 按工序/工位/订单号/零件/时间筛选 |
| **保存检测数据** | 2 | `MES_QulityInspection_CheckItemData_Save` | 事务性三级写入(质检主表→零件表→检测数据表) |
---
### 6.3 不合格品处理
| 操作 | type | 存储过程 | 说明 |
|------|:---:|------|------|
| 发起处理流程 | 2 | `MES_QulityInspection_NGPart_Add` | 含申请让步放行,自动创建首个审批节点 |
| 新增审批节点 | 2 | `MES_QulityInspection_NGPart_FlowNode_Add` | 追加审批节点 |
| 完成审批节点 | 2 | `MES_QulityInspection_NGPart_FlowNode_Update` | 填写处理意见/让步放行数量 |
| 结束处理流程 | 2 | `MES_QulityInspection_NGPart_Finish` | 更新结束时间 |
**涉及数据库对象**:
| 类型 | 名称 |
|------|------|
| 表 | `YL_质量检验_质检记录`, `YL_质量检验_质检记录_检测零件`, `YL_质量检验_质检记录_检测数据` |
| 表 | `YL_质量检验_检测标准`, `YL_质量检验_量具信息` |
| 表 | `YL_质量检验_不合格品处理`, `YL_质量检验_不合格品处理_处理节点` |
| 视图 | `View_质量检验_质检记录`, `View_质量检验_质检记录_外协收检`, `View_质量检验_不合格品处理` |
| 视图 | `View_外协质检`, `View_质检明细`, `View_终检状态`, `View_装配信息` |
---
### 6.4 量具管理
| 操作 | type | 存储过程 | 说明 |
|------|:---:|------|------|
| 量具查询 | 1 | `MES_QulityInspection_MeasuringTool` | 按编号/名称/规格/制造商/状态/负责人筛选 |
**涉及表**: `YL_质量检验_量具信息`
---
### 6.5 SAP质检任务
| 类型 | 名称 | 说明 |
|------|------|------|
| 表 | `质量检验_质检任务_SAP` | SAP来料检验任务同步表 |
---
## 七、设备管理
### 7.1 设备台账
| 页面路径 | 动态配置 |
| **功能描述** | 设备台账增删改查、设备主数据管理 |
| 操作 | type | 存储过程 | 说明 |
|------|:---:|------|------|
| 新增设备 | 2 | `MES_DeviceAdmin_BaseInfo` | 含设备编号唯一性校验 |
| 设备查询 | 1 | (直接查 `YL_设备管理_设备台账`) | |
| 点检表管理 | - | `基础数据_设备工位点检表` | 设备点检清单 |
---
### 7.2 设备生产状态
| 操作 | type | 存储过程 | 说明 |
|------|:---:|------|------|
| 更新生产状态 | 2 | `MES_DeviceAdmin_DeviceProductState_Update` | 自动写入历史记录表 |
| 状态查询(当前) | 1 | `MES_DeviceAdmin_ProductState_MobyQuery` | 当前设备生产状态 |
| 状态查询(历史) | 1 | `MES_DeviceAdmin_ProductState_HistoryQuery` | 设备生产状态变更历史 |
**涉及表**: `YL_设备管理_设备生产状态_Moby`, `YL_设备管理_设备生产状态_Moby_历史记录`
---
### 7.3 维修记录
| 操作 | type | 存储过程 | 说明 |
|------|:---:|------|------|
| 新增维修记录 | 2 | `MES_DeviceAdmin_RepairRecords_Add` | 记录故障描述/维修人员/完成时间 |
| 维修记录查询 | 1 | `MES_DeviceAdmin_RepairRecords_Query` | 按工位/设备/故障/时间/人员筛选 |
**涉及表**: `YL_设备管理_维修记录`
---
### 7.4 设备工时
| 类型 | 名称 | 说明 |
|------|------|------|
| 表 | `YL_设备管理_工时记录` | 设备循环时间采集记录 |
---
## 八、工艺管理
### 8.1 工序基础数据
| 操作 | type | 存储过程 | 说明 |
|------|:---:|------|------|
| 工序查询 | 1 | `MES_ProcessManagement_ProcessGet` | 支持逗号分隔多ID查询 |
| 新增工序 | 2 | `MES_ProcessManagement_ProcessAdd` | 自动计算工艺编号(max+1) |
| 编辑工序 | 2 | `MES_ProcessManagement_ProcessEdit` | 按工艺编号修改工序名称 |
| 删除工序 | 2 | `MES_ProcessManagement_ProcessDel` | 按工艺编号删除 |
**涉及表**: `基础表_工序`
---
### 8.2 标准工艺库
| 操作 | type | 存储过程 | 说明 |
|------|:---:|------|------|
| 物料查询 | 1 | `MES_ProcessManagement_PartGet` | 查询SAP物料编码(TOP 100) |
| 工艺绑定查询 | 1 | `MES_ProcessManagement_ProcessBindGet` | 按物料编号查关联的标准工艺工序 |
**涉及数据库对象**:
| 类型 | 名称 |
|------|------|
| 表 | `车间生产管理工艺_零件工序_工艺库`, `车间生产管理工艺_零件生产工艺_工艺库` |
| 视图 | `View_标准工艺视图`, `View_生产工艺视图`, `计划任务视图` |
| 外部源 | `SAP.SBO_YL.dbo.UBT_OITM` |
---
## 九、看板与报表
### 9.1 首页看板
| 页面路径 | `/dashboard` |
| **Vue组件** | `src/views/dashboard/index.vue` |
| **功能描述** | 动态展示有权限的一级和二级菜单模块入口(九宫格布局) |
---
### 9.2 当前生产状态看板
| 操作 | type | 存储过程/视图 | 说明 |
|------|:---:|------|------|
| 查询当前状态 | 1 | `v_CurrentProductionStatus` | 机加(加工中)+装配(加工中) UNION含人员聚合(STRING_AGG) |
---
### 9.3 外协报表
| 视图 | 说明 |
|------|------|
| `View_外协报表视图` | 关联SAP采购数据(供应商/含税单价/材质/发料)的外协完整报表 |
---
### 9.4 生产订单完工视图
| 视图 | 说明 |
|------|------|
| `View_生产订单完工` | 复杂完工判定:合格数+不合格数=计划数量 |
---
### 9.5 图纸视图
| 视图 | 说明 |
|------|------|
| `View_图纸视图` | 零件图纸+物料描述关联 |
| `View_生产计划零件图纸视图` | 生产订单+图纸关联 |
---
## 十、图纸与文件管理
### 10.1 零件图纸
| 功能 | 涉及表 |
|------|------|
| 图纸上传/预览/删除 | `物料基础数据_零件图纸` |
| 图纸删除记录 | `物料基础数据_零件图纸删除记录` |
| 工艺图纸 | `物料基础数据_工艺图纸` |
| PDF在线预览 | pdfjs-dist 5.1.91 |
**文件操作 API**:
| 操作 | URL | 说明 |
|------|------|------|
| 上传文件 | `{baseURL}/submit/MESUploadFile.ashx` | `MESUploadFile` |
| 下载文件 | `{baseURL}/webpage/part/` | `MESDownFile` |
---
## 十一、实时监控与数据采集
### 11.1 设备变量缓存
| 操作 | type | 存储过程 | 说明 |
|------|:---:|------|------|
| 缓存变量更新 | - | `Event_CaChe_Var_Update` | 设备实时数据写入/更新缓存,含循环时间触发工时记录 |
| 看板查询 | 1 | `Event_CaChe_Var_看板查询` | Sort<11按Zone+Sort排序 |
**涉及表**: `CaChe_Var`
---
### 11.2 设备数据采集
| 操作 | type | 存储过程 | 说明 |
|------|:---:|------|------|
| 历史数据插入 | - | `Event_Device_Insert_CurrInfo` | 写入 `历史_设备数据_定时` |
| 当前数据更新 | - | `Event_Device_Update_CurrInfo` | 更新 `当前_工位_通用` |
---
### 11.3 工位状态监控
| 操作 | type | 存储过程 | 说明 |
|------|:---:|------|------|
| 状态插入 | - | `Event_StationStatus_Insert` | 写入 `历史_工位设备状态每分钟记录` |
| 状态更新 | - | `Event_StationStatus_Update` | 更新 `基础_工位` 状态代码 |
**状态码**: -1关机, 0待机, 1工作, 2报警, 3暂停
---
### 11.4 报警管理
| 操作 | type | 存储过程 | 说明 |
|------|:---:|------|------|
| 报警开始 | - | `Event_Alarm_Start` | 写入缓存表+设备状态备份 |
| 报警结束 | - | `Event_Alarm_End` | 计算持续时间→迁移至历史表→删除缓存 |
**涉及表**: `报警_记录_历史`, `报警_记录_历史_缓存`, `EquipmentStatus_Backup`
---
### 11.5 设备数据历史
| 表 | 说明 |
|------|------|
| `历史_设备数据_定时` | 设备变量历史数据(在线状态/设备代码/变量名/值/单位) |
| `历史_工位设备状态每分钟记录` | 每分钟工位状态快照(含电流1-3/线电压1-3/功率1-3/总功率/电能) |
---
### 11.6 PLC设备读写
| 方法 | 函数 | 说明 |
|------|------|------|
| 读设备 | `WebApi_ReadDevice(TagList)` | Cmd_Opc_Read |
| 写设备 | `WebApi_WriteDevice(TagList)` | Cmd_Opc_Write |
**通信**: 前端 → `window.dt_Config.deviceApiAddress` → 设备网关使用MQTT协议(`mqtt: 4.3.7`)
---
## 十二、工作流与审批
### 12.1 流程管理
| 涉及表 | 说明 |
|------|------|
| `流程表` | 审批流程主表(标题/描述/优先级/状态/发起人/当前节点/完成人) |
| `流程节点表` | 审批节点(审批人/步骤序号/状态/转办) |
| `流程完成记录表` | 流程完成记录 |
| `流程转办表` | 审批转办记录 |
| `审批记录表` | 审批意见记录 |
---
## 十三、系统管理
### 13.1 数据字典
| 操作 | type | 存储过程 | 说明 |
|------|:---:|------|------|
| 按类别查询 | 1 | `Prog_MES_GetDictionar_ByType` | 按数据类别查词条列表 |
| 按名称查ID | 1 | `MES_GetDicItemID_ByDicItemName` | 按词条名称+数据类别查编号 |
**涉及表**: `YL_基础表_数据字典`
**数据类别示例**: 生产操作(收料/开始加工/暂停/报工/首检)、班次、报工确认
---
### 13.2 操作日志
| 操作 | type | 存储过程 | 说明 |
|------|:---:|------|------|
| 插入操作日志 | - | `_日志_增加` | 按子组件名查菜单标题后插入,过滤高频查询 |
| API请求日志 | - | `Event_Log_Request` | 记录请求内容/时间返回AID |
| API响应日志 | - | `Event_Log_Respond` | 按AID更新响应内容/时间 |
**涉及表**: `_日志`, `记录_日志_项目运行日志`
---
### 13.3 数据库备份
| 存储过程 | 说明 |
|------|------|
| `___DB_BAK` | 全量备份到 `C:\_MW\数据库\YL_MESDB_yyyy_MM_dd__HH_mm_ss_fff.bak` |
---
### 13.4 工具函数
| 存储过程 | 说明 |
|------|------|
| `p_PopFirstWord` | 逗号分隔字符串解析 |
| `A_Update_T_Table01` | 测试用更新 |
---
### 13.5 附件管理
| 表 | 说明 |
|------|------|
| `Attachments` | 文件附件(FileName/FilePath/FileSize/FileType/Uploader/IsDeleted) |
---
## 十四、班次与人员管理
### 14.1 班次配置
| 涉及表 | 说明 |
|------|------|
| `班次表` | 班次定义(白班07:45-16:30, 夜班16:30-00:40) |
| `班次人员绑定表` | 人员-班次绑定 |
---
### 14.2 工位人员绑定
| 涉及表 | 说明 |
|------|------|
| `工位人员绑定表` | 工位-人员绑定关系(唯一约束: 工位号+人员编号+绑定状态=1) |
| `View_工位人员绑定数` | 每个人员的绑定设备数统计 |
| `View_设备工位人员` | 设备-工位-人员-班次四维关联 |
---
## 十五、物料与BOM
| 涉及表 | 说明 |
|------|------|
| `物料数据` | 物料主数据缓存(编码/描述/分类/品牌/规格/仓库) |
| `BOM数据` | BOM清单(父件编码/子件编码/子件数量) |
---
## 附录A完整存储过程索引
| 序号 | 存储过程 | 所属模块 | 功能 |
|:---:|------|------|------|
| 1 | `___DB_BAK` | 系统管理 | 数据库备份 |
| 2 | `__Reset_ProductOrder` | 排产管理 | 重置排产/加工中心 |
| 3 | `_日志_增加` | 系统管理 | 操作日志插入 |
| 4 | `A_Update_T_Table01` | 系统管理 | 测试用 |
| 5 | `Event_Alarm_End` | 实时监控 | 报警结束处理 |
| 6 | `Event_Alarm_Start` | 实时监控 | 报警开始处理 |
| 7 | `Event_CaChe_Var_Update` | 实时监控 | 设备变量缓存更新 |
| 8 | `Event_CaChe_Var_看板查询` | 实时监控 | 看板变量查询 |
| 9 | `Event_Device_Insert_CurrInfo` | 实时监控 | 设备历史数据写入 |
| 10 | `Event_Device_Update_CurrInfo` | 实时监控 | 设备当前数据更新 |
| 11 | `Event_Log_Request` | 系统管理 | API请求日志 |
| 12 | `Event_Log_Respond` | 系统管理 | API响应日志 |
| 13 | `Event_StationStatus_Insert` | 实时监控 | 工位状态插入 |
| 14 | `Event_StationStatus_Update` | 实时监控 | 工位状态更新 |
| 15 | `FindUnfinishedStartOperations` | 加工中心 | 查未完成开始操作 |
| 16 | `MES_DeviceAdmin_BaseInfo` | 设备管理 | 设备台账新增 |
| 17 | `MES_DeviceAdmin_DeviceProductState_Update` | 设备管理 | 设备生产状态更新 |
| 18 | `MES_DeviceAdmin_ProductState_HistoryQuery` | 设备管理 | 设备状态历史 |
| 19 | `MES_DeviceAdmin_ProductState_MobyQuery` | 设备管理 | 设备状态当前 |
| 20 | `MES_DeviceAdmin_RepairRecords_Add` | 设备管理 | 维修记录新增 |
| 21 | `MES_DeviceAdmin_RepairRecords_Query` | 设备管理 | 维修记录查询 |
| 22 | `MES_GetDicItemID_ByDicItemName` | 系统管理 | 字典项ID查询 |
| 23 | `MES_OrderPlanned_ChildTask_Add` | 排产管理 | 子任务新增 |
| 24 | `MES_OrderPlanned_ChildTask_Get` | 排产管理 | 子任务查询 |
| 25 | `MES_OrderPlanned_DescriptionEdit` | 排产管理 | 任务描述编辑 |
| 26 | `MES_OrderPlanned_EditTaskPlanned` | 排产管理 | 编辑排产信息 |
| 27 | `MES_OrderPlanned_Finish` | 排产管理 | 批量排产确认 |
| 28 | `MES_OrderPlanned_Query` | 排产管理 | 机加件排产查询 |
| 29 | `MES_OrderPlanned_Queryzp` | 排产管理 | 装配件排产查询 |
| 30 | `MES_OrderPlanned_SingleTaskPlanned` | 排产管理 | 单任务排产拆分 |
| 31 | `MES_ProcessManagement_PartGet` | 工艺管理 | 物料查询 |
| 32 | `MES_ProcessManagement_ProcessAdd` | 工艺管理 | 工序新增 |
| 33 | `MES_ProcessManagement_ProcessBindGet` | 工艺管理 | 工艺绑定查询 |
| 34 | `MES_ProcessManagement_ProcessDel` | 工艺管理 | 工序删除 |
| 35 | `MES_ProcessManagement_ProcessEdit` | 工艺管理 | 工序编辑 |
| 36 | `MES_ProcessManagement_ProcessGet` | 工艺管理 | 工序查询 |
| 37 | `MES_ProductAdmin_GetRptRecords` | 工时管理 | 报工记录查询 |
| 38 | `MES_ProductAdmin_Query` | 订单管理 | 生产订单查询 |
| 39 | `MES_ProductAdmin_RptConfirm` | 工时管理 | 报工确认 |
| 40 | `MES_ProductCenter_DoingTask` | 加工中心 | 获取进行中任务 |
| 41 | `MES_ProductCenter_GetOrderTasks` | 加工中心 | 订单工序任务 |
| 42 | `MES_ProductCenter_GetTask` | 加工中心 | 机加任务查询 |
| 43 | `MES_ProductCenter_GetTask_zp` | 加工中心 | 装配任务查询 |
| 44 | `MES_ProductCenter_OptRecord_Save` | 加工中心 | **操作记录保存核心** |
| 45 | `MES_ProductCenter_OptRecords` | 加工中心 | 操作记录查询 |
| 46 | `MES_ProductTask_Excutable` | 加工中心 | 标记可执行 |
| 47 | `MES_ProductTask_FirstCheck` | 加工中心 | 首检操作 |
| 48 | `MES_ProductTask_HelpEnd` | 加工中心 | 辅助结束(含加班) |
| 49 | `MES_ProductTask_HelpStart` | 加工中心 | 辅助开始 |
| 50 | `MES_ProductTask_MaterialRecieved` | 加工中心 | 收料操作 |
| 51 | `MES_ProductTask_Notice` | 加工中心 | 外协通知 |
| 52 | `MES_ProductTask_ProdReport` | 加工中心 | **报工核心(含加班)** |
| 53 | `MES_ProductTask_Rest` | 加工中心 | 暂停操作 |
| 54 | `MES_ProductTask_SendInspection` | 加工中心 | 送检(装配报工) |
| 55 | `MES_ProductTask_WorkingStart` | 加工中心 | 开始加工 |
| 56 | `MES_ProductTask_WorkTimeSum` | 工时管理 | 工时汇总 |
| 57 | `MES_QualityInspection_CheckRecord_Query` | 质量管理 | 质检记录查询 |
| 58 | `MES_QualityInspection_GetInspectionDetails` | 质量管理 | 检测明细查询 |
| 59 | `MES_QualityInspection_GetInspectionParts` | 质量管理 | 检测零件查询 |
| 60 | `MES_QulityInspection_CheckItemData_Save` | 质量管理 | **检测数据保存(事务)** |
| 61 | `MES_QulityInspection_FinalCheck` | 质量管理 | 终检操作 |
| 62 | `MES_QulityInspection_FirstCheckRecords` | 质量管理 | 首检记录查询 |
| 63 | `MES_QulityInspection_GetCheckCount` | 质量管理 | 检测数量查询 |
| 64 | `MES_QulityInspection_GetItemStandard` | 质量管理 | 检测标准查询 |
| 65 | `MES_QulityInspection_GetPart` | 质量管理 | 检测零件查询 |
| 66 | `MES_QulityInspection_GetTask` | 质量管理 | 质检任务查询 |
| 67 | `MES_QulityInspection_MeasuringTool` | 质量管理 | 量具查询 |
| 68 | `MES_QulityInspection_NGPart_Add` | 质量管理 | 不合格品处理发起 |
| 69 | `MES_QulityInspection_NGPart_Finish` | 质量管理 | 不合格品处理结束 |
| 70 | `MES_QulityInspection_NGPart_FlowNode_Add` | 质量管理 | 审批节点新增 |
| 71 | `MES_QulityInspection_NGPart_FlowNode_Update` | 质量管理 | 审批节点完成 |
| 72 | `MES_QulityInspection_ProcessCheck` | 质量管理 | 序检操作 |
| 73 | `MES_QulityInspection_ReceiveCheck` | 质量管理 | **收检操作(联动下一工序)** |
| 74 | `MES_QulityInspection_RoundCheck` | 质量管理 | 巡检操作 |
| 75 | `MES_操作记录_获取任务暂停状态` | 加工中心 | 任务暂停状态 |
| 76 | `MES_操作记录_获取暂停状态` | 加工中心 | 全局暂停状态 |
| 77 | `MES_登录_工号密码验证` | 登录管理 | 用户验证 |
| 78 | `MES_登录_工位与名称_查询` | 登录管理 | 工位列表 |
| 79 | `MES_登录_班次信息` | 登录管理 | 班次字典 |
| 80 | `MES_接口_生产计划_Insert` | 订单管理 | ERP订单同步 |
| 81 | `MES_人员工时记录_获取进行中任务` | 工时管理 | 装配进行中(按用户) |
| 82 | `MES_人员工时记录_获取进行中任务2` | 工时管理 | 装配进行中(全部) |
| 83 | `MES_人员工时记录_检查是否存在` | 工时管理 | 检查进行中 |
| 84 | `MES_人员工时记录_结束` | 工时管理 | 装配结束(含加班) |
| 85 | `MES_人员工时记录_开始` | 工时管理 | 装配开始 |
| 86 | `Prog_MES_GetDictionar_ByType` | 系统管理 | 字典查询 |
| 87 | `Prog_MES_GetProductOrder_byAID` | 订单管理 | 订单详情查询 |
| 88 | `p_PopFirstWord` | 系统管理 | 字符串解析工具 |
---
## 附录B完整视图索引
| 序号 | 视图名称 | 功能分类 |
|:---:|------|------|
| 1 | `View_基础数据_工位` | 基础数据 |
| 2 | `View_生产订单_MES` | **核心视图** |
| 3 | `View_生产订单全部包括已关闭` | 订单管理 |
| 4 | `View_生产订单Temp_ERP` | ERP集成 |
| 5 | `View_工位人员绑定数` | 人员管理 |
| 6 | `View_生产工时视图` | 工时管理 |
| 7 | `View_校验后的生产工时` | 工时管理 |
| 8 | `View_图纸视图` | 图纸管理 |
| 9 | `View_生产计划零件图纸视图` | 图纸管理 |
| 10 | `View_质量检验_质检记录` | 质量管理 |
| 11 | `View_质量检验_质检记录_外协收检` | 质量管理 |
| 12 | `View_质量检验_不合格品处理` | 质量管理 |
| 13 | `View_标准工艺视图` | 工艺管理 |
| 14 | `View_生产工艺视图` | 工艺管理 |
| 15 | `View_账号权限信息` | 权限管理 |
| 16 | `View_报工人员` | 工时管理 |
| 17 | `View_设备工位人员` | 人员管理 |
| 18 | `View_外协质检` | 质量管理 |
| 19 | `View_装配信息` | 质量管理 |
| 20 | `View_生产订单完工` | 订单管理 |
| 21 | `View_终检状态` | 质量管理 |
| 22 | `View_质检明细` | 质量管理 |
| 23 | `View_外协报表视图` | 报表 |
| 24 | `v_CurrentProductionStatus` | 看板 |
| 25 | `登录基础数据_管理人员权限视图` | 权限管理 |
| 26 | `计划任务视图` | 工艺管理 |
---
## 附录CUDF函数
| 函数名称 | 参数 | 返回值 | 功能 |
|------|------|:---:|------|
| `计算班次重叠秒数` | @开始时间 datetime, @结束时间 datetime, @班次开始 time, @班次结束 time | int | 逐日循环计算时间段与班次重叠秒数支持跨天班次最大3天范围 |
---
> 📅 生成日期: 2026-05-18
> 📊 总计: 15个功能模块 | 88个存储过程 | 26个视图 | 1个UDF函数 | 30+张表

View File

@@ -0,0 +1,756 @@
# MES_Manage_View_V20 软件项目技术分析报告
> **项目名称**: MacroinfManage_MES (MES_Manage_View_V20)
> **版本**: v1.1.0
> **日期**: 2026-05-18
> **作者**: MESWORK
> **描述**: 山东元利科技有限公司制造执行系统(MES)管理视图平台
---
## 目录
1. [项目概述](#1-项目概述)
2. [技术架构路线](#2-技术架构路线)
3. [前端技术详细分析](#3-前端技术详细分析)
4. [数据库 script.sql 详细解析](#4-数据库-scriptsql-详细解析)
5. [程序问题分析报告](#5-程序问题分析报告)
---
## 1. 项目概述
| 属性 | 内容 |
|------|------|
| 项目名称 | MacroinfManage_MES (MES_Manage_View_V20) |
| 版本 | v1.1.0 |
| 基础模板 | vue-element-admin (PanJiaChen) |
| 数据库 | Microsoft SQL Server 2019 (兼容级别150) |
| 数据库名 | YL_MESDB |
| 外部集成 | SAP Business One (跨库查询) |
| 设备通信 | MQTT 4.3.7 (物联网设备实时数据) |
---
## 2. 技术架构路线
```
┌──────────────────────────────────────────────────────────────────┐
│ 前端层 (Frontend) │
│ Vue 2.7.16 + Element UI 2.15.14 + Webpack 5 │
│ ├── Vue Router 3.6.5 (权限动态路由) │
│ ├── Vuex 3.6.2 (全局状态管理) │
│ ├── Axios 0.21.4 (HTTP 通信) │
│ ├── ECharts 5.4.3 (数据可视化/看板) │
│ ├── FullCalendar 6.1.x (排产日历) │
│ ├── MQTT 4.3.7 (设备实时数据/物联网通信) │
│ └── xlsx / jspdf / docxtemplater (报表导出) │
├──────────────────────────────────────────────────────────────────┤
│ 中间层 (Middleware) │
│ ├── ASP.NET / Node.js 后端API服务 │
│ └── 存储过程调用 (后端直接调用SQL Server存储过程) │
├──────────────────────────────────────────────────────────────────┤
│ 数据库层 (Database) │
│ Microsoft SQL Server 2019 (兼容级别150) │
│ 数据库名: YL_MESDB │
│ ├── 30+ 数据表 │
│ ├── 20+ 视图 │
│ ├── 1 用户自定义函数 │
│ ├── 60+ 存储过程 │
│ └── 外部数据源: SAP.SBO_YL (SAP Business One) │
├──────────────────────────────────────────────────────────────────┤
│ 外部集成 (Integration) │
│ ├── SAP Business One (ERP系统跨数据库查询) │
│ │ ├── SAP.SBO_YL.dbo.UBT_OITM (物料主数据) │
│ │ ├── SAP.SBO_YL.dbo.UBT_WW_MES_OPORandOPCH (采购订单) │
│ │ └── SAP.SBO_YL.dbo.OWOR / OWR1 / OWR4 (生产订单) │
│ ├── 设备PLC/SCADA (通过MQTT协议采集实时数据) │
│ └── 文件服务器 (图纸/附件存储) │
└──────────────────────────────────────────────────────────────────┘
```
---
## 3. 前端技术详细分析
### 3.1 核心框架与依赖
| 类别 | 技术 | 版本 | 用途 |
|------|------|------|------|
| 框架 | Vue.js | 2.7.16 | SPA 核心框架 |
| UI库 | Element UI | 2.15.14 | 企业级UI组件 |
| 路由 | Vue Router | 3.6.5 | 动态权限路由 |
| 状态管理 | Vuex | 3.6.2 | 全局状态 |
| HTTP | Axios | 0.21.4 | API通信 |
| 图表 | ECharts | 5.4.3 | 看板/统计图表 |
| 日历 | FullCalendar | 6.1.17 | 排产甘特视图 |
| IoT | MQTT.js | 4.3.7 | 设备实时数据订阅 |
| 构建 | Webpack | 5.89.0 | 模块打包 |
| PDF | jsPDF / html2canvas | 2.5.1 / 1.4.1 | PDF导出 |
| Excel | xlsx | 0.18.5 | 表格导入导出 |
| Word | docxtemplater | 3.42.0 | Word模板生成 |
| 条码 | qrcode | 1.5.3 | 二维码生成 |
| PDF预览 | pdfjs-dist | 5.1.91 | 图纸在线预览 |
### 3.2 项目目录结构 (src/)
```
src/
├── main.js # 入口文件,全局注册
├── App.vue # 根组件
├── permission.js # 路由守卫/权限控制
├── api/ # API接口层
│ └── login.js # 登录/密码修改API
├── router/
│ ├── index.js # 路由配置
│ ├── getTreeData.js # 动态菜单树生成
│ └── menuComponentModule.js # 菜单组件映射
├── store/
│ ├── index.js # Vuex Store 入口
│ └── modules/
│ ├── app.js # 应用全局状态
│ ├── user.js # 用户状态(登录/登出)
│ ├── login.js # 登录时间跟踪
│ ├── permission.js # 权限路由状态
│ └── tagsView.js # 标签页状态
├── views/ # 业务视图模块
│ ├── layout/ # 布局组件
│ ├── login/ # 登录页
│ ├── dashboard/ # 看板首页
│ └── [业务模块]/ # 各MES业务模块
├── components/ # 公用组件
├── styles/ # 全局样式
├── utils/
│ ├── auth.js # Token管理(Cookie)
│ ├── request.js # Axios实例配置
│ └── curd.js # 通用增删改查
├── directive/ # 自定义指令
│ └── el-dragDialog/ # 对话框拖拽指令
├── icons/ # SVG图标
└── vendor/ # 第三方工具(htmlToPdf)
```
### 3.3 权限控制机制
```
1. 用户登录 → 后端验证用户名/密码 → 返回角色列表
2. 选择登录角色 → setToken(角色编号) → Cookie存储
3. 路由守卫 permission.js 拦截:
├── 无Token → 重定向 /login
└── 有Token → GetInfo() → getTreeData() 构建动态路由树
→ GenerateRoutes → router.addRoutes()
```
---
## 4. 数据库 script.sql 详细解析
### 4.1 数据库基础配置
```sql
: YL_MESDB
: D:\sqlData\YL_MESDB.mdf ( ~6.9GB, 64MB)
: D:\sqlDataLog\YL_MESDB_log.ldf ( ~263GB, 2048GB)
: 150 (SQL Server 2019)
: FULL ()
: DATABASE_DEFAULT
```
### 4.2 核心业务表一览
#### 生产计划与任务
| 表名 | 主键 | 说明 |
|------|------|------|
| `MES_接口_生产计划` | 订单编号 (int) | 从ERP同步的生产订单主表 |
| `MES_接口_生产计划_生产任务` | AID (bigint) | 工序级任务拆分表UK: (订单编号+订单行号+订单拆分内码) |
| `MES_接口_生产计划_生产任务_子任务` | AID | 子任务(二次派工) |
| `MES_接口_工艺路线主数据` | AID (int) | 工艺路线主数据接口表 |
**`MES_接口_生产计划_生产任务` 关键字段**:
| 字段 | 类型 | 说明 |
|------|------|------|
| 任务状态 | int | 0-待执行, 1-可执行, 2-已开工, 4-已完成 |
| 加工状态 | int | 2-辅助开始, 3-辅助结束, 4-开始加工, 5-暂停, 6-报工 |
| 指派对象/编号 | nvarchar(50) | 分配的工位/设备名称与编号 |
| 指派数量 | decimal(16,2) | 本序计划生产数量 |
| 二次派工 | nvarchar(500) | 多人协作分配(逗号分隔人员ID) |
| 进度 | decimal(16,2) | 完成百分比 |
#### 资源与人员
| 表名 | 主键 | 说明 |
|------|------|------|
| `MES_资源主数据` | VisCode (nvarchar(50)) | 设备/工位主数据(SAP同步) |
| `登录基础数据_人员信息` | Personnel_Number (int) | 人员账号表, UK: account |
| `登录基础数据_角色信息` | Roles_number (int) | 角色定义表 |
| `登录基础数据_人员权限角色` | ID (int) | 人员-角色多对多关联 |
| `登录基础数据_二级菜单` | IDD (int) | 菜单/路由配置表 |
| `登录基础数据_部门` | 部门编号 (int) | 组织架构 |
| `工位人员绑定表` | 绑定编号 (int) | 工位-人员绑定关系 |
| `班次表` | 班次编号 (nvarchar(50)) | 班次定义(白班07:45-16:30, 夜班16:30-00:40) |
| `班次人员绑定表` | 绑定ID (int) | 人员-班次绑定 |
#### 操作记录与工时
| 表名 | 主键 | 说明 |
|------|------|------|
| `YL_加工中心_操作记录表` | AID (int) | **核心操作记录表**,含暂停/恢复/报工全流程 |
| `YL_加工中心_报工记录` | AID (int) | 报工确认记录(生产工时/辅助工时) |
| `生产管理_工时校验_校验工时表` | AID (int) | 工时审核校验(上传工时 vs 系统计算工时) |
**操作记录表关键字段**: `总时长`, `暂停总时长`, `实际工时` = 总时长 - 暂停总时长
| 操作类别 | 说明 |
|----------|------|
| 收料 | 物料接收确认 |
| 开始加工 / 辅助开始 | 生产/辅助启动 |
| 暂停 | 暂停加工 |
| 报工 / 辅助结束 | 完成报工 |
| 首检 | 首件质量检验 |
| 加班 / 休息日加班 / 法定休息日加班 | 加班工时记录 |
#### 质量管理
| 表名 | 主键 | 说明 |
|------|------|------|
| `YL_质量检验_质检记录` | QT_AID (bigint) | 质检主记录 |
| `YL_质量检验_质检记录_检测零件` | LJ_AID (bigint) | 每个被检零件的检测结果(1合格/0不合格) |
| `YL_质量检验_质检记录_检测数据` | AID (bigint) | 检测项目明细(理论值/上限/下限/实测值) |
| `YL_质量检验_检测标准` | AID (int) | 各物料工序的检测标准 |
| `YL_质量检验_量具信息` | AID (int) | 量具台账 |
| `YL_质量检验_不合格品处理` | FlowAID (int) | 不合格品处理流程(让步放行申请) |
| `YL_质量检验_不合格品处理_处理节点` | (FlowAID, FlowNodeID) | 审批流程节点 |
| 检测类型编号 | 质检类型 |
|-------------|----------|
| 1 | 首检自检 |
| 3 | 序检自检 |
| 6 | 收检 (跨工序接收检验) |
| 8 | 终检 (最终检验) |
#### 设备管理
| 表名 | 主键 | 说明 |
|------|------|------|
| `YL_设备管理_设备台账` | 设备ID (int) | 设备主数据, UK: 设备编号 |
| `YL_设备管理_维修记录` | AID (int) | 设备故障维修记录 |
| `YL_设备管理_工时记录` | ID (int) | 设备循环时间采集记录 |
| `YL_设备管理_设备生产状态_Moby` | AID | 设备实时生产状态 |
| `YL_设备管理_设备生产状态_Moby_历史记录` | AID | 设备状态变更历史 |
| `基础数据_设备工位点检表` | 设备流水号 (int) | 设备点检清单 |
#### 实时监控与历史数据
| 表名 | 主键 | 说明 |
|------|------|------|
| `CaChe_Var` | AID (int) | 设备变量实时缓存 |
| `历史_设备数据_定时` | AID (bigint) | 设备变量历史数据 |
| `历史_工位设备状态每分钟记录` | AID_N (bigint) | 每分工位状态快照(含电流/电压/功率) |
| `报警_记录_历史` | AID (int) | 报警历史记录 |
| `报警_记录_历史_缓存` | AID (int) | 当前活跃报警缓存 |
| `设备信息缓存表` | (无主键) | 工位任务信息缓存 |
| `记录_日志_项目运行日志` | AID (bigint) | API请求/响应日志 |
| `_日志` | ID (int) | 用户操作审计日志 |
#### 工艺与技术文档
| 表名 | 主键 | 说明 |
|------|------|------|
| `基础表_工序` | 工艺编号 (int) | 工序基础数据 |
| `车间生产管理工艺_零件工序_工艺库` | id (int) | 标准工艺路线库 |
| `车间生产管理工艺_零件生产工艺_工艺库` | id (int) | 生产订单关联工艺库(含订单编号) |
| `物料基础数据_零件图纸` | id (int) | 零件图纸文件元数据 |
| `物料基础数据_工艺图纸` | id (int) | 工艺图纸文件元数据 |
| `物料基础数据_零件图纸删除记录` | ID (int) | 图纸删除审计日志 |
#### 工作流与审批
| 表名 | 主键 | 说明 |
|------|------|------|
| `流程表` | 流程ID (int) | 审批流程主表 |
| `流程节点表` | 节点ID (int) | 审批流程节点 |
| `流程完成记录表` | 完成记录ID (int) | 流程完成记录 |
| `流程转办表` | 转办ID (int) | 审批转办记录 |
| `审批记录表` | 记录ID (int) | 审批意见记录 |
#### 其他
| 表名 | 说明 |
|------|------|
| `物料数据` | 物料主数据缓存 |
| `BOM数据` | BOM物料清单 |
| `YL_基础表_数据字典` | 全局数据字典(操作类别/班次/报工确认等) |
| `Attachments` | 文件附件管理 |
| `质量检验_质检任务_SAP` | SAP来料检验任务 |
### 4.3 关键视图分析
| 视图名称 | 功能描述 |
|----------|----------|
| `View_生产订单_MES` | **核心视图**:联合生产计划+生产任务+资源+图纸的完整视图 |
| `View_生产订单全部包括已关闭` | 同上但不过滤已关闭订单 |
| `View_生产工时视图` | 整合操作记录+校验工时+生产订单的多表联查 |
| `View_校验后的生产工时` | 仅显示已校验通过的生产工时 |
| `v_CurrentProductionStatus` | **当前生产状态看板**:机加+装配UNION含人员名称聚合 |
| `View_外协报表视图` | 外协工序完整报表联查SAP采购数据(s.含税行总计, s.供应商名称) |
| `View_设备工位人员` | 设备-工位-人员-班次四维关联视图 |
| `View_标准工艺视图` | 标准工艺+零件+工序关联 |
| `View_生产工艺视图` | 生产订单工艺+物料+订单状态 |
| `View_质检明细` | 质检记录+工位+合同号完整明细 |
| `View_外协质检` | 外协收检记录视图 |
| `View_装配信息` | 装配送检数/质检合格数统计 |
| `View_生产订单完工` | 复杂完工判定逻辑(合格数+不合格数=计划数量) |
| `View_终检状态` | 终检记录关联 |
| `View_账号权限信息` | 人员-角色-菜单完整权限链路 |
| `登录基础数据_管理人员权限视图` | 角色-人员-部门多维视图 |
| `计划任务视图` | 工艺编号+订单编号+物料名称 |
### 4.4 用户自定义函数 (UDF)
#### `计算班次重叠秒数`
```sql
(@ datetime, @ datetime,
@ time, @ time) RETURNS int
```
- 逐日循环计算打卡时间和班次时间的重叠秒数
- 支持跨天班次(如夜班16:30-00:30)
- 限制最大3天计算范围防止无限循环
- 用于工时计算和加班判断
### 4.5 关键存储过程分析
#### 生产排产
| 存储过程 | 功能 |
|----------|------|
| `MES_OrderPlanned_SingleTaskPlanned` | **核心排产逻辑**:单任务拆分。当计划数量>指派数量时创建拆分任务;当计划数量<指派数量时删除未分配任务 |
| `MES_OrderPlanned_Finish` | 批量排产确认通过OPENJSON解析JSON任务列表更新指派信息 |
| `MES_OrderPlanned_EditTaskPlanned` | 动态SQL编辑任务排产字段 |
| `MES_OrderPlanned_ChildTask_Add` | 子任务(二次派工)新增 |
| `MES_OrderPlanned_Query` / `_Queryzp` | 排产查询(自制件/装配件) |
| `__Reset_ProductOrder` | 重置订单(排产或加工中心数据) |
#### 加工中心操作
| 存储过程 | 功能 |
|----------|------|
| `MES_ProductTask_MaterialRecieved` | 收料操作:更新收料数量,当收料>0时任务状态变为可执行 |
| `MES_ProductTask_WorkingStart` | 开始加工:任务状态变为已开工(2),自动同步上序合格数作为收料数 |
| `MES_ProductTask_Rest` | 暂停操作:加工状态变为暂停 |
| `MES_ProductTask_ProdReport` | **报工核心**:含完整加班计算(白班/夜班拆分、休息日/法定休息日处理)、捆绑报工、前序不合格数处理、报工记录双插入(生产工时+辅助工时) |
| `MES_ProductTask_HelpStart` | 辅助开始 |
| `MES_ProductTask_HelpEnd` | 辅助结束:含加班时长计算、班次判断、特殊加班人员处理 |
| `MES_ProductTask_FirstCheck` | 首检操作 |
| `MES_ProductTask_Excutable` | 标记任务为可执行 |
| `MES_ProductTask_SendInspection` | 送检(装配报工) |
| `MES_ProductCenter_OptRecord_Save` | **操作记录保存核心**:处理暂停/开始/报工的联动逻辑,计算工时 |
| `MES_ProductCenter_OptRecords` | 操作记录查询 |
#### 人员工时(装配)
| 存储过程 | 功能 |
|----------|------|
| `MES_人员工时记录_开始` | 装配人员开始加工记录 |
| `MES_人员工时记录_结束` | 装配人员结束加工:含白班/加班/休息日完整计算,生成报工记录和加班记录 |
| `MES_人员工时记录_检查是否存在` | 检查是否有未结束的开始记录 |
| `MES_人员工时记录_获取进行中任务` | 按用户ID获取进行中的装配任务 |
#### 质量管理
| 存储过程 | 功能 |
|----------|------|
| `MES_QulityInspection_ReceiveCheck` | **收检处理**:事务性写入质检记录,总检测数=计划生产数时自动完成任务,收检合格后触发下一工序可执行 |
| `MES_QulityInspection_FinalCheck` | 终检记录 |
| `MES_QulityInspection_CheckItemData_Save` | **检测数据保存**:事务性三级写入(质检主表→零件表→检测数据表),支持批量零件检测 |
| `MES_QulityInspection_FirstCheckRecords` | 首检记录查询 |
| `MES_QulityInspection_RoundCheck` | 巡检操作 |
| `MES_QulityInspection_ProcessCheck` | 序检操作 |
| `MES_QulityInspection_GetItemStandard` | 获取检测标准 |
| `MES_QulityInspection_GetInspectionDetails` | 获取检测明细数据 |
| `MES_QulityInspection_GetInspectionParts` | 获取检测零件列表 |
| `MES_QulityInspection_NGPart_Add` | 不合格品处理流程发起 |
| `MES_QulityInspection_NGPart_FlowNode_Add` | 审批节点新增 |
| `MES_QulityInspection_NGPart_FlowNode_Update` | 审批节点完成 |
| `MES_QulityInspection_NGPart_Finish` | 不合格品处理流程结束 |
#### 设备管理与实时监控
| 存储过程 | 功能 |
|----------|------|
| `MES_DeviceAdmin_BaseInfo` | 设备台账新增 |
| `MES_DeviceAdmin_RepairRecords_Add/Query` | 维修记录增查 |
| `MES_DeviceAdmin_DeviceProductState_Update` | 设备生产状态更新(含历史记录) |
| `Event_CaChe_Var_Update` | 设备变量实时缓存更新(含循环时间触发工时记录) |
| `Event_Device_Insert_CurrInfo` | 设备数据历史写入 |
| `Event_Device_Update_CurrInfo` | 设备变量当前值更新 |
| `Event_StationStatus_Insert/Update` | 工位状态记录/更新 |
| `Event_Alarm_Start/End` | 报警开始/结束处理(含缓存→历史迁移) |
| `Event_Log_Request/Respond` | API请求/响应日志 |
#### 登录与用户
| 存储过程 | 功能 |
|----------|------|
| `MES_登录_工号密码验证` | 用户登录验证(查询基础表_用户角色) |
| `MES_登录_工位与名称_查询` | 获取工位列表(来自View_基础数据_工位) |
| `MES_登录_班次信息` | 获取班次数据字典 |
| `Prog_MES_GetDictionar_ByType` | 按类别获取数据字典 |
#### 系统工具
| 存储过程 | 功能 |
|----------|------|
| `___DB_BAK` | 数据库全量备份到 C:\_MW\数据库\ |
| `_日志_增加` | 用户操作日志插入 |
| `p_PopFirstWord` | 逗号分隔字符串解析工具函数 |
### 4.6 外部系统集成 (SAP Business One)
```
跨数据库查询链路:
├── SAP.SBO_YL.dbo.UBT_OITM → 物料主数据(编码/名称/品牌)
├── SAP.SBO_YL.dbo.UBT_WW_MES_OPORandOPCH → 采购订单(供应商/含税单价/材质)
├── SAP.SBO_YL.dbo.OWOR → 生产订单(ERP侧)
├── SAP.SBO_YL.dbo.OWR1 → 生产订单行
└── SAP.SBO_YL.dbo.OWR4 → 生产订单阶段
```
### 4.7 核心数据流
```
ERP(SAP)订单下发
MES_接口_生产计划 (订单同步)
排产 (MES_OrderPlanned_SingleTaskPlanned)
│ └── 任务拆分/工位指派/计划时间设定
MES_接口_生产计划_生产任务 (工序级任务)
├── 收料 → 任务状态: 0(待执行) → 1(可执行)
├── 开始加工 → 任务状态: 1 → 2(已开工)
│ │
│ ├── 暂停/恢复循环 (关联开始记录 ↔ 关联暂停记录)
│ │
│ └── 报工 → 计算工时(总时长-暂停总时长)
│ │
│ ├── 生成报工记录(生产工时+辅助工时)
│ ├── 判断加班(白班/夜班拆分/休息日)
│ └── 任务状态: 2 → 4(已完成)
├── 首检 → 巡检 → 序检 (质检环节)
├── 收检 (MES_QulityInspection_ReceiveCheck)
│ │ 合格数触发下一工序可执行
│ └── 任务状态 → 4(已完成)
└── 终检 → 完工判定
```
---
## 5. 程序问题分析报告
### 🔴 严重问题 (Critical)
#### 问题 1SQL注入漏洞 — 60+个存储过程
**位置**: `script.sql` 中几乎所有动态SQL存储过程
所有使用 `sp_executesql` 拼接 `@whereStr` 的存储过程都存在SQL注入风险。用户输入直接通过字符串拼接插入SQL语句
```sql
-- MES_OrderPlanned_Query (line 3303)
if(@<>'') set @selectStrWhere = @selectStrWhere
+ ' and [合同号] like ''%'+@+'%'''
```
**受影响的存储过程 (部分列表)**:
- `MES_OrderPlanned_Query` / `MES_OrderPlanned_Queryzp`
- `MES_ProductAdmin_Query` / `MES_ProductAdmin_GetRptRecords`
- `MES_ProductCenter_OptRecords`
- `MES_QulityInspection_CheckRecord_Query`
- `MES_QulityInspection_FirstCheckRecords`
- `MES_QulityInspection_MeasuringTool`
- `MES_QulityInspection_GetTask`
- `MES_ProductCenter_GetTask` / `MES_ProductCenter_GetTask_zp`
**修复建议**: 统一使用参数化查询模式:
```sql
SET @SQL = @SQL + ' AND [合同号] LIKE ''%'' + @合同号 + ''%'''
EXEC sp_executesql @SQL, N'@合同号 nvarchar(50)', @ = @
```
---
#### 问题 2明文密码存储于Cookie
**位置**: `src/views/login/index.vue` line 243-246
```javascript
setCookie(username, password, checked) {
Cookie.set('username', username, { expires: 7 })
Cookie.set('password', password, { expires: 7 }) // ❌ 明文密码存7天
Cookie.set('checked', checked, { expires: 7 })
}
```
密码以明文存储在客户端Cookie中持续7天可被XSS攻击轻易窃取。
---
#### 问题 3Axios已知CVE漏洞版本
**位置**: `package.json` line 17
```json
"axios": "^0.21.4"
```
axios 0.21.4 存在已知安全漏洞 CVE-2021-3749 (ReDoS攻击),当前最新版本为 1.7.x。
---
#### 问题 4开发代理绕过HTTPS证书验证 + 死代码配置
**位置**: `config/index.js` line 18-19, 37-38
```javascript
proxyTable: {
'/api/b1s': {
target: 'https://192.168.2.90:50000', // SAP B1
secure: false, // ❌ 跳过SSL证书验证 — 中间人攻击风险
},
'/openapi/v1': {
target: 'http://192.168.2.90:8082',
pathRewrite: {
'^/api/tm': '/openapi/v1' // ❌ 死代码:/openapi/v1 永远不会匹配 /api/tm
}
}
}
```
第二个代理的 pathRewrite 规则永远无法触发。
---
#### 问题 5登录密码拼在URL参数中
**位置**: `src/api/login.js` line 13
```javascript
param: `用户名=${username}&密码=${password}`
```
密码作为URL查询参数传输会被代理服务器日志、浏览器历史记录记录。
---
### 🟠 高优先级问题 (High)
#### 问题 6修改密码验证器Bug (复制粘贴错误)
**位置**: `src/views/login/index.vue` line 119-130
```javascript
const validateValue = (rules, value, callback) => {
// ❌ 三个条件都检查同一个字段 — 明显的复制粘贴bug
if (typeof (this.form.againPassword) === 'string' ||
typeof (this.form.againPassword) === 'string' ||
typeof (this.form.againPassword) === 'string') {
callback(new Error('请输入英文字母组合')) // ❌ 字符串类型反而报错?
}
// ❌ 下面代码永远不会执行已callback但未return
if (this.form.newPassword !== this.form.againPassword) {
callback(new Error('两次输入密码不同'))
}
}
```
该验证器应用于所有4个密码字段导致密码修改功能**完全无法正常工作**。
---
#### 问题 7Vuex Action中 this.$router 为undefined
**位置**: `src/store/modules/user.js` line 44-45
```javascript
Login({ commit }, userInfo) {
login(username, userInfo.password).then(response => {
if (data.length === 0 || data.result === '0') {
Message.error('账号或密码错误,请重新登录')
this.$router.push({ path: '/login' }) // ❌ Vuex action中this不是Vue组件实例
}
```
在Vuex action中使用 `this.$router` 会抛出 `TypeError: Cannot read properties of undefined`
---
#### 问题 8GetInfo 硬编码角色为 'admin'
**位置**: `src/store/modules/user.js` line 83
```javascript
GetInfo({ commit, state }) {
getInfo(state.token).then(response => {
commit('SET_ROLES', 'admin') // ❌ 无视后端返回的真实角色数据
resolve(response)
})
}
```
所有登录用户都被授予 `'admin'` 角色。`permission.js` 第13行 `roles.indexOf('admin') >= 0` 对所有用户放行,导致权限控制完全失效。
---
#### 问题 9登录错误被静默吞掉
**位置**: `src/views/login/index.vue` line 198-200
```javascript
}).catch(() => {
this.loading = false // ❌ 无任何错误提示
})
```
网络故障或服务器错误时用户看不到任何反馈。
---
#### 问题 10Webpack开发服务器强制HTTPS但无有效证书
**位置**: `build/webpack.dev.conf.js` line 31
```javascript
devServer: {
https: true, // ❌ 未配置证书 → 浏览器报安全错误
```
本地开发时浏览器会因自签名证书阻止访问。
---
### 🟡 中优先级问题 (Medium)
#### 问题 11Vue 2 已于 2023年12月 EOL
Vue 2.x 不再接收安全补丁和新功能。建议规划迁移至 Vue 3。
#### 问题 12生产环境暴露 Source Map
**位置**: `config/index.js` line 110
```javascript
devtool: 'source-map', // 生产环境暴露完整源码
```
用户可通过浏览器开发者工具查看未压缩的完整源码。
#### 问题 13`__Reset_ProductOrder` 存储过程执行 TRUNCATE
**位置**: `script.sql` line 2288-2289
```sql
truncate table YL_加工中心_操作记录表
truncate table YL_加工中心_报工记录
```
`@optType=1` 时无条件清空全部操作记录和报工记录,误调用将导致数据永久丢失且无法回滚。
#### 问题 14数据库日志文件初始263GB
**位置**: `script.sql` line 9
```sql
LOG ON
(NAME = N'YL_MESDB_log', FILENAME = N'D:\sqlDataLog\YL_MESDB_log.ldf',
SIZE = 269688832KB) -- 约263GB
```
恢复模式为FULL但只有全量备份没有事务日志备份日志文件会持续增长直至磁盘占满。
#### 问题 15依赖项问题
**位置**: `package.json` line 26
```json
"install": "^0.13.0" // ❌ "install"是一个真实的npm包但不应作为项目依赖
```
这是脚手架残留或误操作引入。
#### 问题 16关键ESLint规则被关闭
**位置**: `.eslintrc.js` line 83, 153
```javascript
'no-console': 'off',
'no-unused-vars': ['off', { ... }]
```
大量 `console.log` 残留于生产代码,未使用变量不提示。
---
### 🟢 低优先级/建议 (Low)
| # | 问题 | 位置 |
|---|------|------|
| 17 | `vue$` alias 指向 `vue.esm.js` 而非 `vue.runtime.esm.js` | `webpack.base.conf.js` line 32 |
| 18 | webpack dev 使用 `cache.type: 'filesystem'` 可能引起缓存过期问题 | `webpack.dev.conf.js` line 24 |
| 19 | `devServer` 配置使用 Webpack 4 风格 (static/publicPath) | `webpack.dev.conf.js` |
| 20 | `CopyWebpackPlugin` v11 API 已弃用 patterns 外层写法 | `webpack.dev.conf.js` line 61 |
| 21 | SCSS loader 使用 Dart Sass 但配置了 `indentedSyntax: true` | `webpack.base.conf.js` line 165 |
| 22 | 登录页用户名变更时清空密码 (可能非预期行为) | `login/index.vue` line 182 |
| 23 | `config/index.js` 第9行 `networkInterfaces['WLAN']` 硬编码,可能在乙太网卡环境出错 | `config/index.js` line 9 |
| 24 | Vue-loader 配置文件为空对象,未配置任何选项 | `build/vue-loader.conf.js` |
---
### 📊 问题汇总统计
| 级别 | 数量 | 影响 |
|------|------|------|
| 🔴 Critical | 5 | 安全漏洞、数据泄露风险 |
| 🟠 High | 5 | 功能Bug、权限失效、运行时错误 |
| 🟡 Medium | 6 | 可维护性、稳定性风险 |
| 🟢 Low | 7 | 代码质量、最佳实践 |
| **总计** | **23** | |
---
### 🔧 优先修复路线图
**第1阶段 (立即)**:
1. 修复所有SQL注入漏洞 → 动态SQL改用参数化查询
2. 移除Cookie明文密码 → 仅存Token
3. 修复 `validateValue` 验证器Bug
**第2阶段 (本周)**:
4. 升级 axios 到 1.7.x
5. 修复 `GetInfo` 硬编码 admin 角色
6. 修复 `this.$router` 在 Vuex 中的调用
**第3阶段 (本月)**:
7. 配置事务日志定期备份策略
8. 修复 webpack 生产环境 source-map 泄露
9.`__Reset_ProductOrder` 添加安全防护(备份确认/权限限制)
**第4阶段 (规划)**:
10. 规划 Vue 3 迁移路线图
11. 清理无用依赖和死代码
12. 恢复 ESLint 关键规则并修复代码
---
> 📅 报告生成日期: 2026-05-18
> 📝 分析范围: 全项目静态代码分析 (前端 + 数据库)

View File

@@ -0,0 +1,680 @@
# MES 工业互联网平台 — 用户操作手册
> **版本**: v1.1.0
> **适用岗位**: 生产操作工、质检员、班组长、车间主管、生产调度员
> **日期**: 2026-05-18
---
## 目录
- [1. 快速入门](#1-快速入门)
- [1.1 登录系统](#11-登录系统)
- [1.2 界面认知](#12-界面认知)
- [1.3 通用操作方式](#13-通用操作方式)
- [1.4 退出系统](#14-退出系统)
- [2. 生产操作工日常操作](#2-生产操作工日常操作)
- [2.1 查看我的任务](#21-查看我的任务)
- [2.2 物料接收(收料)](#22-物料接收收料)
- [2.3 开始加工](#23-开始加工)
- [2.4 暂停与恢复加工](#24-暂停与恢复加工)
- [2.5 完工报工](#25-完工报工)
- [2.6 辅助工序操作](#26-辅助工序操作)
- [2.7 首件自检](#27-首件自检)
- [3. 质检员日常操作](#3-质检员日常操作)
- [3.1 巡检操作](#31-巡检操作)
- [3.2 序检操作](#32-序检操作)
- [3.3 收检操作(工序交接)](#33-收检操作工序交接)
- [3.4 终检操作](#34-终检操作)
- [3.5 逐项检测数据录入](#35-逐项检测数据录入)
- [3.6 不合格品处理](#36-不合格品处理)
- [4. 班组长/主管日常操作](#4-班组长主管日常操作)
- [4.1 生产排产](#41-生产排产)
- [4.2 报工确认](#42-报工确认)
- [4.3 工时查询](#43-工时查询)
- [4.4 二次派工](#44-二次派工)
- [5. 加班操作指南](#5-加班操作指南)
- [5.1 工作日加班](#51-工作日加班)
- [5.2 休息日加班](#52-休息日加班)
- [5.3 特殊加班人员处理](#53-特殊加班人员处理)
- [6. 其他常用功能](#6-其他常用功能)
- [6.1 查看生产进度](#61-查看生产进度)
- [6.2 图纸查看](#62-图纸查看)
- [6.3 外协业务](#63-外协业务)
- [6.4 装配工序操作](#64-装配工序操作)
- [7. 附录](#7-附录)
- [7.1 名词解释](#71-名词解释)
- [7.2 快捷键与操作提示](#72-快捷键与操作提示)
- [7.3 常见错误提示与处理](#73-常见错误提示与处理)
---
## 1. 快速入门
### 1.1 登录系统
```
步骤1打开浏览器输入系统网址
步骤2在登录页面输入您的工号和密码
步骤3点击"登录"按钮
步骤4如有多个角色在弹出框中选择本次使用的角色 → 点击"确定"
```
**登录页面各区域说明**
```
┌──────────────────────────────────┐
│ │
│ MES工业互联网平台 │
│ │
│ ┌──────────────────────┐ │
│ │ 👤 请输入用户名 │ │
│ └──────────────────────┘ │
│ ┌──────────────────────┐ │
│ │ 🔒 请输入密码 │ │
│ └──────────────────────┘ │
│ ☐ 记住账号 │
│ ┌──────────────────────┐ │
│ │ 登 录 │ │
│ └──────────────────────┘ │
│ 修改密码 │
└──────────────────────────────────┘
```
> 💡 **提示**: 勾选"记住账号"后下次打开登录页会自动填入用户名和密码有效期7天
**修改密码**
```
步骤1点击"修改密码"
步骤2输入工号 → 原始密码 → 新密码 → 确认密码
步骤3点击"确定"
```
> ⚠️ 密码修改成功后需重新登录。
---
### 1.2 界面认知
登录成功后进入系统主界面,分为四个区域:
```
┌─────────────────────────────────────────────────┐
│ ☰ 面包屑导航 🔔消息 ✏修改密码 👤用户名 │ ← 顶栏
├────────┬────────────────────────────────────────┤
│ LOGO │ │
│ │ │
│ 菜单1 │ 主工作区域 │
│ 菜单2 │ │
│ 菜单3 │ (表格 / 表单 / 搜索区) │
│ 菜单4 │ │
│ ... │ │
│ │ │
│ │ │
├────────┴────────────────────────────────────────┤
│ 已打开的标签页: [首页] [排产管理] [加工中心] │ ← 标签栏
└─────────────────────────────────────────────────┘
```
| 区域 | 位置 | 功能 |
|------|------|------|
| **侧边栏** | 左侧 | 显示功能菜单,单击展开子菜单,再单击进入功能页面 |
| **顶栏** | 顶部 | 面包屑导航、未读报警消息、修改密码入口、用户头像(登出) |
| **标签栏** | 底部(主区域上方) | 显示已打开的页面标签,可切换或关闭 |
| **主工作区** | 中央 | 当前功能的操作界面(搜索条件+数据表格+操作按钮) |
**首页看板**:登录后默认进入首页,显示九宫格功能入口,按模块分组排列。直接点击图标即可进入对应功能。
---
### 1.3 通用操作方式
系统中所有数据管理页面遵循统一的操作模式:
```
┌────────────────────────────────────────┐
│ 🔍 搜索条件区 │
│ [订单号____] [物料____] [日期____] │
│ [查询] [重置] │
├────────────────────────────────────────┤
│ 操作按钮区 │
│ [新增] [编辑] [删除] [导出Excel] │
├────────────────────────────────────────┤
│ 数据表格区 │
│ ┌────┬──────┬──────┬──────┬────┐ │
│ │ 序号│ 订单号 │ 物料 │ 状态 │操作│ │
│ ├────┼──────┼──────┼──────┼────┤ │
│ │ 1 │10001 │零件A │可执行│编辑│ │
│ │ 2 │10002 │零件B │已开工│编辑│ │
│ └────┴──────┴──────┴──────┴────┘ │
│ 共 50 条 ◀ 1 2 3 ... 5 ▶ │
└────────────────────────────────────────┘
```
**通用操作按钮说明**
| 按钮 | 图标 | 功能 |
|------|:--:|------|
| 查询 | 🔍 | 按搜索条件筛选数据 |
| 重置 | 🔄 | 清空搜索条件 |
| 新增 | | 打开新增表单 |
| 编辑 | ✏ | 选中一行后打开编辑表单 |
| 删除 | 🗑 | 选中一行后删除(需确认) |
| 导出 | 📥 | 导出当前数据为Excel |
**表单操作通用规则**
- 红色星号 `*` 标记的为必填项
- 下拉框可输入文字快速搜索
- 日期选择器可直接输入或点击日历图标选择
- 表单验证不通过时,该项下方显示红色提示文字
---
### 1.4 退出系统
```
方式1点击右上角用户头像 → 选择"Log Out"
方式2直接关闭浏览器标签页
方式3长时间无操作后自动退出约30分钟
```
---
## 2. 生产操作工日常操作
> 📋 **典型工作流程**
> 登录 → 加工中心 → 查看任务 → 收料 → 开始加工 → (暂停/恢复) → 报工 → 完成
### 2.1 查看我的任务
**操作路径**:侧边栏 → **加工中心** → 任务列表
进入后显示分配给**当前工位**的生产任务。表格中包含以下关键信息:
| 列名 | 含义 | 示例 |
|------|------|------|
| 订单号 | 生产订单编号 | 10001234 |
| 零件编码 | 物料编号 | YL-001-02 |
| 零件名称 | 物料描述 | 轴承座 |
| 工序名称 | 当前需执行的工序 | 车削 |
| 分配数 | 本工序需完成的数量 | 200 |
| 完成数量 | 已完成的合格数量 | 150 |
| 收料 | 已接收上序来料数量 | 180 |
| 任务状态 | 当前状态 | **可执行** |
| 加工状态 | 加工进度 | 开始加工 |
| 计划完成 | 要求完工日期 | 2026-05-25 |
**颜色含义**
- 🟢 **可执行**:可以开工
- 🔵 **已开工**:正在加工
-**待执行**:等待来料
-**已完成**:已报工完成
### 2.2 物料接收(收料)
> **场景**: 上道工序送来加工零件,清点数量后确认接收。
```
步骤1在任务列表中找到需要收料的任务行
步骤2确认任务状态为"待执行"或"可执行"
步骤3点击该行的"收料"按钮
步骤4在弹出框中输入本次接收的数量
步骤5点击"确认"
步骤6任务状态自动变为"可执行"(收料数量 > 0 时)
```
> ⚠️ **注意**: 首次开始加工时,系统会自动把上序合格数同步为收料数。
### 2.3 开始加工
> **场景**: 准备就绪,开始正式生产加工。
```
步骤1确认任务状态为"可执行"(绿色显示)
步骤2点击"开始加工"按钮
步骤3系统自动记录开始时间任务状态变为"已开工"
```
> 💡 **提示**:开始加工后计时器启动,工时从此刻开始计算。
### 2.4 暂停与恢复加工
> **场景**: 中途需要休息、换刀、等料等需要临时中断生产。
**暂停操作**
```
步骤1点击"暂停"按钮
步骤2系统记录暂停时间点加工状态变为"暂停"
```
**恢复操作**
```
步骤1点击"开始加工"按钮
步骤2系统自动计算上次暂停的持续时长
步骤3恢复计时加工状态变为"开始加工"
```
> 💡 **提示**:系统自动计算"总时长 - 暂停总时长 = 实际工时",无需手动计算。
### 2.5 完工报工
> **场景**: 本批零件加工完成,需要进行完工汇报。
```
步骤1确认任务状态为"已开工"
步骤2点击"报工"按钮
步骤3填写报工信息
├── 报工日期:默认为当天(可修改)
├── 报工班次:选择白班/夜班
├── 报工数量:本次完成的合格品数量
├── 报工说明:备注(可选)
├── 是否加班:超时工作选"是"见第5章
├── 加班人员:填写加班人员姓名(逗号分隔)
└── 特殊加班人员:非标准工时人员(逗号分隔)
步骤4点击"确认"
步骤5系统计算工时并保存报工记录
```
**报工结果判断**
| 条件 | 结果 |
|------|------|
| 累计完成数量 < 指派数量 | 任务保持"已开工",可继续报工 |
| 累计完成数量 = 指派数量 | 任务状态变为"已完成" |
| 报工数量 > 剩余未完成数 | **报错**:超出指派数量,不可提交 |
### 2.6 辅助工序操作
> **场景**: 上下料、工装准备、设备清理等辅助性工作也需要记录工时。
```
辅助开始:
步骤1在任务列表中点击"辅助开始"
步骤2系统记录辅助开始时间
辅助结束:
步骤1点击"辅助结束"
步骤2输入本次辅助完成的数量
步骤3如需加班勾选"是否加班"并填写人员
步骤4点击"确认"
```
**辅助工时**独立于生产工时计算。
### 2.7 首件自检
> **场景**: 每批零件加工的第一件需要自检确认。
```
步骤1加工完首件后点击"首检"按钮
步骤2测量零件关键尺寸
步骤3选择检验结果OK合格/ NG不合格
步骤4点击"确认"
```
> ⚠️ 首检NG时需调整设备/工艺后重新加工首件并再次首检。
---
## 3. 质检员日常操作
> 📋 **典型工作流程**
> 登录 → 质量管理 → 选择质检任务 → 巡检/序检/收检/终检 → 录入检测数据 → 不合格品处理
### 3.1 巡检操作
> **场景**: 生产过程中定期对加工零件进行抽检。
```
步骤1进入"质量管理"→"质检任务"
步骤2筛选条件选择"已开工"的任务
步骤3点击目标任务的"巡检"按钮
步骤4输入抽检数量和NG数量
步骤5填写检测说明可选
步骤6点击"保存"
```
### 3.2 序检操作
> **场景**: 一道工序加工完成后对本序产品进行检验。
```
步骤1进入质检任务列表
步骤2筛选"已开工"的任务
步骤3点击"序检"
步骤4输入检验数量和不合格数量
步骤5填写检测说明
步骤6点击"保存"
```
### 3.3 收检操作(工序交接)
> **场景**: 上道工序完工后,下道工序接收时进行检验确认。这是最重要的质检环节。
```
步骤1进入"质检任务"列表
步骤2质检类型选择"收检"
步骤3点击目标任务的"收检"
步骤4填入以下信息
├── 检验数量:本次抽检/全检的数量
├── 合格数:判定合格的数量
├── 不合格数:判定不合格的数量
├── 检测人:自动取当前用户
└── 检测说明:填写备注
步骤5点击"保存"
```
**系统自动联动**
- ✅ 收检合格数 > 0 → 下一道工序自动变为"可执行"
- ✅ 总检测数 = 计划生产数 → 当前工序自动标记为"已完成"
### 3.4 终检操作
> **场景**: 所有工序完成后,对成品进行最终检验。
```
步骤1进入质检任务列表
步骤2点击"终检"按钮
步骤3填入
├── 检测数量:本次检验总数
├── 合格数:判定合格的数量
├── 不合格数:判定不合格的数量
└── 放行数量:让步放行的数量
步骤4点击"保存"
```
### 3.5 逐项检测数据录入
> **场景**: 需要按检测标准逐项测量和记录的精密检验。
```
步骤1在质检任务中点击"检测数据"进入详细录入界面
步骤2选择当前检测零件编号第1件/第2件...
步骤3逐项录入检测数据
┌─────────────────────────────────────────┐
│ 检测项目 理论值 上限 下限 实测值 │
│ 外径 50.00 50.05 49.95 [____] │
│ 内径 30.00 30.03 29.97 [____] │
│ 长度 100.00 100.10 99.90 [____] │
└─────────────────────────────────────────┘
步骤4每输入一项实测值系统自动判断合格/不合格
步骤5完成所有检测项目后点击"保存"
步骤6切换下一个零件编号继续检测
```
**颜色标识**
- 🟢 绿色:实测值在上下限范围内 → 合格
- 🔴 红色:实测值超出上下限范围 → 不合格
### 3.6 不合格品处理
> **场景**: 发现不合格品后,发起处理流程(让步放行申请等)。
```
步骤1在质检记录中点击"不合格品处理"
步骤2填写处理申请
├── 不合格数量:自动带入
├── 申请让步放行:勾选是否需要让步
├── 申请内容:说明不合格情况和理由
└── 接收人:选择审批人
步骤3点击"提交"
步骤4审批人会收到处理通知
步骤5审批人填写处理意见 → 完成审批节点
步骤6流程发起人可查看处理结果
```
---
## 4. 班组长/主管日常操作
### 4.1 生产排产
> **场景**: 接到生产订单后,将任务分配到具体工位。
**4.1.1 查询待排产订单**
```
步骤1侧边栏 → "生产排产" → "排产任务"
步骤2设置条件
├── 物料类型:自制件/装配件
├── 订单号:输入具体订单号
├── 合同号:输入销售合同号
├── 产品编码:模糊搜索
├── 工序名称:指定工序
├── 排产状态:未完成
└── 指派对象:选择目标工位
步骤3点击"查询"
```
**4.1.2 单任务排产**
```
步骤1在列表中选中一条任务
步骤2点击"排产"或"编辑"
步骤3填写排产信息
├── 指派对象(工位):必填,选择目标机床/工位
├── 指派数量:输入本序计划生产数量
├── 计划开始时间:最早可开工时间
├── 计划完成时间:要求完成时间
├── 最晚开始时间:最迟必须开工时间
└── 派工特殊说明:备注(可选)
步骤4点击"保存"
```
> 💡 **自动拆分规则**:如果指派数量 < 计划数量,系统会自动将剩余数量拆分为新任务条目。
**4.1.3 批量排产**
```
步骤1在列表中勾选多条待排产任务
步骤2点击"批量排产"
步骤3确认执行
步骤4系统批量更新指派信息
```
### 4.2 报工确认
> **场景**: 核实操作工提交的报工数据,确认最终工时。
```
步骤1侧边栏 → "工时管理" → "报工记录"
步骤2选择报工日期
步骤3筛选条件可选工位/合同号/订单号/操作人
步骤4查看报工记录列表
步骤5核对"报工工时"与"确认工时"
步骤6如需调整点击"确认"按钮
步骤7输入确认工时和确认说明
步骤8点击"保存"
```
| 状态 | 含义 |
|:---:|------|
| 未确认 | 操作工已提交,待班组长确认 |
| 已确认 | 班组长已核实确认 |
### 4.3 工时查询
```
步骤1侧边栏 → "工时管理" → "工时汇总"
步骤2设置时间范围计划开工开始~结束)
步骤3点击"查询"
步骤4查看各任务/工序的工时汇总
```
### 4.4 二次派工
> **场景**: 一道工序需要多人协作完成。
```
步骤1在排产任务中找到目标工序
步骤2点击"二次派工"
步骤3选择/输入多名操作人员(逗号分隔)
步骤4保存
```
二次派工后,这些人员都可以看到该任务并进行操作。
---
## 5. 加班操作指南
### 5.1 工作日加班
> **场景**: 正常工作日,加工时间超出班次规定时间。
```
白班加班超过16:30
步骤1报工时勾选"是否加班" = 是
步骤2填写"加班人员"(多个人员用逗号分隔)
步骤3系统自动计算超出白班时间的加班工时
步骤4确认提交
夜班加班超过00:40
操作同上,系统自动识别夜班时间段
```
**班次时间参考**
| 班次 | 标准时间 | 超出后算加班 |
|------|------|------|
| 白班 | 07:45 - 16:30 | > 16:30 |
| 夜班 | 16:30 - 00:40(次日) | > 00:40 |
### 5.2 休息日加班
> **场景**: 周末或节假日安排生产。
```
步骤1报工时勾选"是否休息日" = 是
步骤2或勾选"是否法定休息日" = 是
步骤3勾选"是否加班" = 是
步骤4填写加班人员
步骤5系统按休息日加班标准计算工时
步骤6确认提交
```
> ⚠️ **休息日"不加班"选项**:如果休息日选择"不加班",则记录为普通工时,不按加班计算。
### 5.3 特殊加班人员处理
> **场景**: 部分人员非标准8小时工作制如4小时/6小时班制
```
步骤1在"特殊加班人员"框中填写这些人员姓名(逗号分隔)
步骤2在"班次标准工时"中填入其标准工时(小时)
步骤3系统对该人员按特殊工时标准计算
```
---
## 6. 其他常用功能
### 6.1 查看生产进度
> **场景**: 实时了解各工序生产完成情况。
```
步骤1侧边栏 → 看板/监控
步骤2查看"当前生产状态"看板
```
看板显示各工位正在加工的任务信息:
- 工位名称、操作人
- 零件编码/名称
- 工序名称、完成进度百分比
- 首检/序检状态OK/NG
### 6.2 图纸查看
> **场景**: 在生产过程中查看零件图纸或工艺图纸。
```
步骤1进入"图纸管理"
步骤2输入物料编号搜索
步骤3点击图纸名称在线预览支持PDF
步骤4可放大、缩小、旋转、翻页
```
### 6.3 外协业务
> **场景**: 管理外协工序(委托外部供应商加工)。
**外协工序操作流程**
```
步骤1排产时将工序指派对象设为"外协"
步骤2加工中心自动识别外协任务
步骤3外协完工后进行收检质检员操作
步骤4在"外协报表"中查看外协进度
```
外协报表包含:供应商名称、采购单价、发料数量、收检合格/不合格数。
### 6.4 装配工序操作
> **场景**: 装配产线的生产操作。
装配工序使用独立的人员工时记录方式:
```
开始装配:
步骤1在任务列表中点击"开始加工"
步骤2系统记录开始时间和人员
结束装配:
步骤1点击"结束"按钮
步骤2填写工序说明、异常说明可选
步骤3如需加班勾选并填写加班人员
步骤4点击"确认"
步骤5系统自动计算工时并保存
```
> 💡 装配工序的报工在"结束"时自动计算,无需单独报工。
---
## 7. 附录
### 7.1 名词解释
| 术语 | 解释 |
|------|------|
| **TaskAID** | 生产任务唯一标识号 |
| **排产** | 将订单任务分配到具体工位并设定计划时间 |
| **收料** | 确认接收上道工序移交的零件 |
| **报工** | 完成加工后汇报完成数量 |
| **首检** | 每批首个零件的质量检验 |
| **巡检** | 生产过程中的巡回抽检 |
| **序检** | 本工序完成后的检验 |
| **收检** | 接收上序零件时的检验(跨工序交接关键环节) |
| **终检** | 所有工序完成后的最终检验 |
| **让步放行** | 不合格品经审批后允许使用 |
| **二次派工** | 同一工序指派多名操作人员 |
| **齐套** | 物料配套齐全可开工 |
| **拣配** | 物料已从仓库拣选配齐 |
### 7.2 快捷键与操作提示
| 操作 | 方法 |
|------|------|
| 快速搜索下拉选项 | 在下拉框中直接输入文字筛选 |
| 清空搜索条件 | 点击搜索区"重置"按钮 |
| 日期快速选择 | 点击日历图标或直接输入 `2026-05-18` 格式 |
| 刷新当前页面 | 按 `F5` 键 |
| 关闭当前标签 | 点击标签上的 `×` |
| 批量勾选 | 点击表头的复选框全选/取消全选 |
### 7.3 常见错误提示与处理
| 错误提示 | 原因 | 处理方法 |
|------|------|------|
| "账号或密码错误" | 输入凭证不正确 | 检查工号和密码,确认大小写 |
| "指派数量大于剩余未分配数量" | 排产数量超过库存 | 减少本次指派数量 |
| "报工数量与完成数量之和已超出指派数量" | 累计报工超过计划数 | 减少本次报工数量,或检查前序不合格数 |
| "该用户已有未结束的开始记录" | 上一个任务未结束 | 先结束上一个加工任务 |
| "检验数量超过计划生产数" | 质检数量超出计划 | 核对检验数量 |
| "此账号登录失效,请重新登录" | 登录已过期 | 关闭弹窗,重新登录 |
---
> 📅 文档版本: v1.0
> 📝 生成日期: 2026-05-18
> 👤 适用岗位: 生产操作工 / 质检员 / 班组长 / 车间主管 / 生产调度员

View File

@@ -0,0 +1,713 @@
# MES 工业互联网平台 — 程序使用说明书
> **项目名称**: MacroinfManage_MES (MES_Manage_View_V20)
> **版本**: v1.1.0
> **适用对象**: 系统管理员、开发工程师、运维人员
> **日期**: 2026-05-18
---
## 目录
- [一、系统概述](#一系统概述)
- [二、环境要求与安装部署](#二环境要求与安装部署)
- [三、项目目录结构](#三项目目录结构)
- [四、配置文件说明](#四配置文件说明)
- [五、系统启动与运行](#五系统启动与运行)
- [六、功能模块操作指南](#六功能模块操作指南)
- [七、数据库维护](#七数据库维护)
- [八、常见问题与故障排除](#八常见问题与故障排除)
- [九、附录](#九附录)
---
## 一、系统概述
### 1.1 系统简介
MES工业互联网平台是一套面向制造企业的生产执行管理系统覆盖从ERP订单接收、生产排产、车间加工执行、质量检验、工时核算到设备监控的全流程管理。
### 1.2 技术架构一览
| 层级 | 技术 | 说明 |
|------|------|------|
| 前端框架 | Vue 2.7 + Element UI 2.15 | SPA单页应用 |
| 构建工具 | Webpack 5.89 | 模块打包/开发服务器 |
| 后端服务 | ASP.NET (IIS) | 通用处理程序 `MESCommonBase.ashx` |
| 数据库 | SQL Server 2019 | 数据库名 `YL_MESDB` |
| 外部集成 | SAP Business One | ERP数据同步 |
| 设备通信 | MQTT 4.3.7 | 设备实时数据采集 |
### 1.3 系统访问地址
| 环境 | 地址 | 端口 |
|------|------|:---:|
| 开发环境 | `https://127.0.0.1` | 1997 |
| 生产服务器 | `https://192.168.2.92` | 10101 |
---
## 二、环境要求与安装部署
### 2.1 硬件要求
| 组件 | 最低配置 | 推荐配置 |
|------|------|------|
| CPU | 4核心 | 8核心+ |
| 内存 | 8 GB | 16 GB+ |
| 磁盘 | 50 GB可用 | 200 GB SSD |
| 网络 | 千兆局域网 | 千兆局域网 |
### 2.2 软件依赖
| 软件 | 版本要求 | 用途 |
|------|------|------|
| **Node.js** | >= 20.0.0 | 前端开发运行环境 |
| **npm** | >= 9.0.0 | 包管理器 |
| **Git Bash** | 最新版 | Windows下命令行工具(必须安装) |
| **SQL Server** | 2019+ | 数据库服务器 |
| **IIS** | 7.0+ | Web服务器(部署后端) |
| **Chrome/Edge** | 最新版 | 推荐浏览器 |
### 2.3 安装步骤
#### 步骤1安装 Node.js
```bash
# 下载并安装 Node.js 20.x LTS
# https://nodejs.org/
# 验证安装
node --version # 应显示 v20.x.x
npm --version # 应显示 9.x.x 或更高
```
#### 步骤2安装 Git Bash (Windows)
```bash
# 下载 Git for Windows
# https://git-scm.com/download/win
# 安装时选择 "Git Bash Here" 组件
# 确保 C:\Program Files\Git\bin 已添加到系统 PATH
```
#### 步骤3安装项目依赖
```bash
# 进入项目目录
cd "c:\Users\meswork764\Desktop\元利\MacroinfManage_MES\MES_Manage_View_V20"
# 安装所有npm依赖
npm install
# 如果遇到网络问题,可先配置镜像源
npm config set registry https://registry.npmmirror.com
npm install
```
#### 步骤4初始化数据库
```sql
-- 1. 在SQL Server Management Studio中打开 script.sql
-- 2. 修改文件路径以匹配实际环境:
-- 数据文件路径: D:\sqlData\YL_MESDB.mdf
-- 日志文件路径: D:\sqlDataLog\YL_MESDB_log.ldf
-- 3. 执行脚本创建数据库和所有对象
-- 4. 验证数据库创建成功
USE [YL_MESDB];
SELECT COUNT(*) AS '表数量' FROM sys.tables;
SELECT COUNT(*) AS '存储过程数量' FROM sys.procedures;
```
#### 步骤5配置后端服务
1. 在IIS中创建应用程序池和站点
2. 指向后端发布目录
3. 确保 `MESCommonBase.ashx``MESUploadFile.ashx` 可访问
4. 配置数据库连接字符串
---
## 三、项目目录结构
```
MES_Manage_View_V20/
├── index.html # HTML入口 (加载config.js)
├── package.json # 项目配置与依赖声明
├── babel.config.js # Babel转译配置
├── .eslintrc.js # ESLint代码规范
├── static/ # 静态资源目录
│ ├── config.js # ⭐ 运行环境配置(服务器地址等)
│ └── jsQR.js # 二维码解析库
├── config/ # 构建配置
│ ├── index.js # ⭐ Webpack + 开发服务器配置
│ ├── dev.env.js # 开发环境变量
│ └── prod.env.js # 生产环境变量
├── build/ # Webpack构建脚本
│ ├── webpack.base.conf.js # 公共配置
│ ├── webpack.dev.conf.js # 开发环境配置
│ ├── webpack.prod.conf.js # 生产环境配置
│ ├── vue-loader.conf.js # Vue Loader配置
│ └── utils.js # 构建工具函数
├── src/ # 源代码目录
│ ├── main.js # ⭐ 应用入口
│ ├── App.vue # 根组件
│ ├── permission.js # ⭐ 路由守卫/权限控制
│ │
│ ├── api/ # API接口层
│ │ └── login.js # 登录相关API
│ │
│ ├── router/ # 路由配置
│ │ ├── index.js # 路由主配置
│ │ ├── getTreeData.js # 动态菜单树生成
│ │ └── menuComponentModule.js # 组件懒加载
│ │
│ ├── store/ # Vuex状态管理
│ │ ├── index.js # Store入口
│ │ └── modules/ # 状态模块
│ │ ├── app.js # 应用状态
│ │ ├── user.js # ⭐ 用户状态(登录/权限)
│ │ ├── login.js # 登录时间追踪
│ │ ├── permission.js # 权限路由
│ │ └── tagsView.js # 标签页
│ │
│ ├── views/ # ⭐ 业务页面组件
│ │ ├── layout/ # 布局(侧边栏/顶栏/标签页)
│ │ ├── login/ # 登录页
│ │ ├── dashboard/ # 首页看板
│ │ └── [业务模块]/ # 各MES业务模块页面
│ │
│ ├── components/ # 公用组件
│ ├── utils/ # 工具函数
│ │ ├── auth.js # Token/Cookie管理
│ │ ├── request.js # ⭐ Axios实例配置
│ │ └── curd.js # ⭐ 通用CRUD封装
│ │
│ ├── styles/ # 全局样式
│ ├── icons/ # SVG图标
│ ├── directive/ # 自定义指令
│ └── vendor/ # 第三方工具
├── script.sql # ⭐ 数据库完整脚本
├── dist/ # 构建输出目录 (npm run build 后生成)
└── *.md # 项目文档
```
---
## 四、配置文件说明
### 4.1 运行环境配置 `static/config.js`
这是最重要的配置文件,控制前端连接的后端服务器地址。部署时需要修改此文件:
```javascript
window.dt_Config = {
// ⭐ 后端API地址 (存储过程调用)
serverAddress: 'https://192.168.2.92:10101/submit/MESCommonBase.ashx',
// ⭐ 后端基础URL
baseURL: 'https://192.168.2.92:10101',
// SAP Business One Service Layer 地址
baseURLB1: 'https://192.168.2.92:9996/b1s',
// 其他API地址
baseURLtm: 'https://192.168.2.92:9996/openapi',
// 首页路由配置
constantRouter: {
path: '主页',
title: '主页',
meta: { title: '主页', icon: 'MaterialManagement' },
alwaysShow: true
}
}
```
**环境切换说明**:
```javascript
// 生产环境 (服务器)
serverAddress: 'https://192.168.2.92:10101/submit/MESCommonBase.ashx'
// 备用服务器
// serverAddress: 'https://192.168.2.228:10101/submit/MESCommonBase.ashx'
// 本地开发环境
// serverAddress: 'http://127.0.0.1:10101/submit/MESCommonBase.ashx'
```
### 4.2 开发服务器配置 `config/index.js`
```javascript
dev: {
host: '127.0.0.1', // 开发服务器地址
port: 1997, // ⭐ 开发服务器端口 (如被占用自动+1)
autoOpenBrowser: true, // 启动时自动打开浏览器
proxyTable: { // API代理配置
'/api/b1s': {
target: 'https://192.168.2.90:50000', // SAP B1 地址
changeOrigin: true,
secure: false
}
}
}
```
### 4.3 构建输出配置
```javascript
build: {
assetsRoot: 'dist', // 构建输出目录
assetsSubDirectory: 'static',
assetsPublicPath: '/', // ⭐ 部署路径 (如非根路径需修改)
productionSourceMap: false // 生产环境是否生成source map
}
```
---
## 五、系统启动与运行
### 5.1 开发模式启动
```bash
# 进入项目根目录
cd "c:\Users\meswork764\Desktop\元利\MacroinfManage_MES\MES_Manage_View_V20"
# 方式1npm脚本
npm run dev
# 方式2直接使用webpack
npm start
# 启动成功后控制台输出:
# Your application is running here: http://127.0.0.1:1997
```
### 5.2 生产构建
```bash
# 构建生产版本
npm run build
# 构建产物在 dist/ 目录下
# 将 dist/ 目录内容部署到IIS站点即可
# 可选:构建并分析包体积
npm run build --report
```
### 5.3 访问系统
1. 打开浏览器访问 `http://127.0.0.1:1997` (开发) 或生产地址
2. 输入工号和密码登录
3. 如有多个角色,选择登录角色
4. 进入系统首页看板
---
## 六、功能模块操作指南
### 6.1 用户登录
| 步骤 | 操作 | 说明 |
|:---:|------|------|
| 1 | 打开系统地址 | 进入登录页面 |
| 2 | 输入用户名/密码 | 单击"登录"按钮 |
| 3 | 选择角色 | 如有多角色,弹出角色选择框;单一角色直接进入 |
| 4 | 进入首页 | 显示有权限的功能模块入口 |
**记住密码**: 勾选"记住账号",下次自动填充用户名和密码(Cookie存储7天)。
**修改密码**: 点击"修改密码"→ 输入工号/原密码/新密码/确认密码 → 确定。
### 6.2 首页看板
进入系统后显示**九宫格功能入口**,按一级菜单分组展示有权限的功能模块。点击模块图标进入对应功能页面。
### 6.3 生产排产管理
**功能入口**: 首页 → 生产排产
#### 6.3.1 查询待排产任务
| 步骤 | 操作 |
|:---:|------|
| 1 | 进入"排产任务查询"页面 |
| 2 | 选择查询条件(订单号/合同号/物料/工序/时间范围/排产状态/工位) |
| 3 | 点击"查询"按钮 |
| 4 | 查看任务列表(含计划数量/指派对象/任务状态等) |
#### 6.3.2 单任务排产指派
| 步骤 | 操作 |
|:---:|------|
| 1 | 在任务列表中选中一条任务 |
| 2 | 点击"排产"或"指派" |
| 3 | 选择/输入工位、指派数量、计划开始/完成时间 |
| 4 | 填写派工特殊说明(可选) |
| 5 | 点击"保存" |
> ⚠️ **注意事项**: 指派数量**小于**计划数量时,系统自动拆分剩余数量为新任务;**大于**计划数量时会报错。
#### 6.3.3 批量排产确认
选中多条任务 → 点击"批量排产" → 确认执行。
### 6.4 加工中心(生产执行)
**功能入口**: 首页 → 加工中心
#### 6.4.1 查看任务列表
进入后显示分配给当前工位的任务列表:
- **待执行**(任务状态=0): 已排产但未收料
- **可执行**(任务状态=1): 已收料可开工
- **已开工**(任务状态=2): 正在生产中
- **已完成**(任务状态=4): 报工完成
#### 6.4.2 标准生产流程
```
收料 → 可执行 → 开始加工 → [暂停/恢复] → 报工 → 完成
```
| 步骤 | 按钮 | 说明 |
|:---:|------|------|
| 1 | **收料** | 输入收料数量 → 确认。任务变为"可执行" |
| 2 | **开始加工** | 点击后任务变为"已开工",开始计时 |
| 3 | **暂停** | 生产中断时点击,记录暂停开始时间 |
| 4 | **恢复(开始加工)** | 从暂停恢复,自动计算暂停时长 |
| 5 | **报工** | 输入本次完成数量 → 选择班次 → 确认 |
#### 6.4.3 报工界面说明
| 字段 | 说明 |
|------|------|
| 报工日期 | 自动取当前日期 |
| 报工班次 | 白班(07:45-16:30) / 夜班(16:30-00:40) |
| 报工数量 | 本次完成的合格品数量 |
| 报工说明 | 备注信息 |
| 是否加班 | 如报工时间超过班次时间需勾选 |
| 加班人员 | 逗号分隔多个加班人员姓名 |
| 特殊加班人员 | 非标准工时(如4小时班)的特殊人员 |
> ⚠️ **休息日注意事项**: 休息日/法定休息日选择"加班"会计算加班工时,选择"不加班"记为普通工时。
#### 6.4.4 辅助工序操作
辅助工序(上下料、清理等)使用独立流程:**辅助开始 → 辅助结束**。操作方式同上。
### 6.5 质量管理
**功能入口**: 首页 → 质量管理
#### 6.5.1 质检类型说明
| 类型 | 时机 | 操作人 |
|------|------|------|
| **首检** | 每道工序开始生产时首批零件 | 操作工自检/质检员 |
| **巡检** | 生产过程中定期抽检 | 质检员 |
| **序检** | 工序加工完成后 | 质检员 |
| **收检** | 跨工序交接时 | 接收工序操作工 |
| **终检** | 全部工序完成后最终检验 | 质检员 |
#### 6.5.2 执行收检操作
| 步骤 | 操作 |
|:---:|------|
| 1 | 进入质检任务列表,筛选"收检"类型 |
| 2 | 选中任务,点击"收检" |
| 3 | 输入检验数量、合格数、不合格数 |
| 4 | 填写检测说明 |
| 5 | 点击"保存" |
| 6 | 系统自动判断:合格数>0则下一工序变为"可执行" |
#### 6.5.3 终检操作
| 步骤 | 操作 |
|:---:|------|
| 1 | 进入质检任务列表 |
| 2 | 选中任务,点击"终检" |
| 3 | 输入检测数量、合格数、不合格数、放行数量 |
| 4 | 点击"保存" |
#### 6.5.4 不合格品处理流程
```
发现不合格品 → 发起处理流程 → 填写申请内容/让步放行数量
→ 选择接收人 → 提交
→ 审批人填写处理意见 → 完成节点
→ 结束处理流程
```
#### 6.5.5 检测数据录入(逐项检测)
| 步骤 | 操作 |
|:---:|------|
| 1 | 进入质检任务,点击"检测数据" |
| 2 | 选择检测零件编号 |
| 3 | 逐项录入实测值(系统自动对比上下限判定合格/不合格) |
| 4 | 完成所有检测项目后保存 |
| 5 | 系统自动聚合统计合格数/不合格数 |
### 6.6 工时管理与校验
**功能入口**: 首页 → 工时管理
| 功能 | 说明 |
|------|------|
| **报工记录查询** | 按日期/工位/人员/确认状态筛选报工记录 |
| **报工确认** | 管理员核对报工数据,填入确认工时和说明 |
| **工时汇总** | 按TaskAID/工序汇总生产工时 |
| **装配工时记录** | 管理装配人员的开始/结束时间记录 |
### 6.7 设备管理
**功能入口**: 首页 → 设备管理
| 功能 | 操作 |
|------|------|
| **设备台账** | 增删改查设备基本信息(编号/名称/型号/制造商/车间/责任人) |
| **维修记录** | 记录故障描述/故障时间/维修人员/完成时间 |
| **生产状态** | 查看当前和历史设备生产状态 |
| **设备点检** | 维护设备点检表(保养人员/监督人员/点检类型) |
### 6.8 工艺管理
**功能入口**: 首页 → 工艺管理
| 功能 | 操作 |
|------|------|
| **工序基础数据** | 维护工序名称和编号(增删改查) |
| **标准工艺绑定** | 将工序按顺序绑定到物料编号 |
| **工艺查询** | 按物料编号查看完整工艺路线 |
| **物料查询** | 从SAP查询物料编码和名称 |
### 6.9 图纸管理
**功能入口**: 首页 → 图纸管理
| 功能 | 操作 |
|------|------|
| **上传图纸** | 选择物料 → 上传PDF/图片文件 |
| **在线预览** | 点击图纸名称在线查看(PDF.js预览) |
| **删除图纸** | 删除图纸(记录到删除日志) |
### 6.10 数据字典
**功能入口**: 系统管理 → 数据字典
维护系统全局配置项:
| 数据类别 | 词条示例 |
|------|------|
| 生产操作 | 收料(1), 开始加工(4), 暂停(5), 报工(6), 首检(7) |
| 班次 | 白班, 夜班 |
| 报工确认 | 已确认, 未确认 |
| 质检类型 | 首检自检, 序检自检, 收检, 终检 |
### 6.11 实时监控看板
**功能入口**: 首页 → 生产监控
| 功能 | 说明 |
|------|------|
| **当前生产状态** | 显示机加和装配的当前加工中任务(含人员/工位/零件) |
| **设备变量看板** | 实时显示设备运行参数(电流/电压/功率等) |
| **报警记录** | 查看历史报警和当前活跃报警 |
---
## 七、数据库维护
### 7.1 数据库备份
```sql
-- 执行全量备份存储过程
EXEC [dbo].[___DB_BAK]
-- 备份文件位置C:\_MW\数据库\YL_MESDB_yyyy_MM_dd__HH_mm_ss_fff.bak
```
**建议**: 每日定时执行全量备份 + 每小时事务日志备份。
### 7.2 日志文件管理
```sql
-- 查看日志文件大小
EXEC sp_helpdb 'YL_MESDB'
-- 收缩日志文件(谨慎操作)
USE [YL_MESDB]
DBCC SHRINKFILE (N'YL_MESDB_log', 10240) -- 收缩到10GB
```
### 7.3 重置排产数据
```sql
-- 重置指定订单的排产数据(保留操作记录)
EXEC [dbo].[__Reset_ProductOrder] @=10001, @optType=0
-- ⚠️ 重置全部数据并清空操作记录(危险操作!)
EXEC [dbo].[__Reset_ProductOrder] @=-1, @optType=1
```
> ⚠️ **警告**: `@optType=1` 会 **TRUNCATE** 操作记录表和报工记录表,数据不可恢复!
### 7.4 数据库结构更新
修改 `script.sql` 后重新执行或使用增量脚本:
```sql
-- 逐步执行新增/修改部分(跳过已存在的对象)
-- 注意script.sql 中的 CREATE 语句需要改为 ALTER 或先 DROP 再 CREATE
```
---
## 八、常见问题与故障排除
### 8.1 安装与启动问题
| 问题 | 原因 | 解决方法 |
|------|------|------|
| `npm install` 失败 | 网络问题或node版本过低 | 1. 切换镜像源 `npm config set registry https://registry.npmmirror.com` 2. 确认 Node >= 20.0.0 |
| `npm run dev` 报错 | 依赖未安装或端口被占用 | 1. 重新执行 `npm install` 2. 修改 `config/index.js` 中端口 |
| 浏览器显示"无法访问" | dev server使用HTTPS但无证书 | Chrome地址栏输入 `thisisunsafe` 跳过警告,或修改 `webpack.dev.conf.js``https: false` |
| `module not found` 错误 | Webpack 5 fallback配置缺失 | 检查 `webpack.base.conf.js``resolve.fallback` 配置 |
### 8.2 登录问题
| 问题 | 原因 | 解决方法 |
|------|------|------|
| 登录提示"账号或密码错误" | 凭证错误或后端不可达 | 1. 检查用户名密码 2. 确认 `static/config.js` 中 serverAddress 正确 |
| 登录后页面空白 | Token过期或权限数据异常 | 清除浏览器Cookie后重新登录 |
| 忘记密码 | - | 联系管理员重置,当前版本不支持自助找回密码 |
### 8.3 功能操作问题
| 问题 | 原因 | 解决方法 |
|------|------|------|
| 点"开始加工"无反应 | 任务状态不是"可执行" | 先执行"收料"操作,使任务变为可执行状态 |
| 报工数量超过计划数 | 累计完成+不合格数超过指派数 | 减少本次报工数量,或先处理不合格品 |
| 质检合格后下序仍不可执行 | 拆分内码不匹配或任务状态未更新 | 检查 `MES_接口_生产计划_生产任务` 表数据 |
| 修改密码失败 | 验证器Bug(known issue) | 联系管理员在数据库中直接修改密码 |
### 8.4 数据库问题
| 问题 | 原因 | 解决方法 |
|------|------|------|
| 查询越来越慢 | 缺少索引或统计信息过期 | 更新统计信息: `EXEC sp_updatestats` |
| 日志文件过大 | FULL恢复模式无日志备份 | 1. 切换为SIMPLE模式 2. 或配置日志备份作业 |
| 外键约束错误 | 数据不一致 | 检查 `FK_MES_接口_生产计划_生产任务_MES_接口_生产计划` 等外键 |
### 8.5 浏览器兼容性
| 浏览器 | 支持情况 |
|------|:---:|
| Chrome 90+ | ✅ 推荐 |
| Edge 90+ | ✅ 推荐 |
| Firefox 90+ | ✅ 兼容 |
| Safari 14+ | ⚠️ 部分兼容 |
| IE 11 | ❌ 不支持 (browserslist 已排除) |
---
## 九、附录
### 9.1 状态码参考
**任务状态**:
| 状态码 | 含义 | 说明 |
|:---:|------|------|
| 0 | 待执行 | 已排产但未收料 |
| 1 | 可执行 | 已收料可开工 |
| 2 | 已开工 | 正在加工中 |
| 4 | 已完成 | 报工完成或终检完成 |
**加工状态**:
| 状态码 | 含义 |
|:---:|------|
| 2 | 辅助开始 |
| 3 | 辅助结束 |
| 4 | 开始加工 |
| 5 | 暂停 |
| 6 | 报工 |
**设备状态**:
| 状态码 | 含义 |
|:---:|------|
| -1 | 关机 |
| 0 | 待机 |
| 1 | 工作 |
| 2 | 报警 |
| 3 | 暂停 |
**质检结果**:
| 值 | 含义 |
|:---:|------|
| 1 | 合格 |
| 0 | 不合格 |
### 9.2 API通信协议
前端与后端通信采用统一的JSON格式
```javascript
// 请求格式
{
"type": "1", // 1=查询, 2=增删改, 7=批量JSON
"name": "存储过程名称",
"param": "[{\"name\":\"参数名\",\"value\":\"参数值\",\"type\":\"string\",\"output\":\"0\"}]",
"pageSize": 20, // 分页大小(可选)
"pageList": 1, // 页码(可选)
"UserID": "当前用户ID",
"UserName": "当前用户名",
"ModularID": "当前路由path"
}
// 响应格式
{
"data": [ ... ], // 查询结果数组
"total": 100, // 总记录数
"result": "1" // 1=成功, 0=失败
}
```
### 9.3 快捷键
| 快捷键 | 功能 |
|------|------|
| `Enter` | 登录页面提交登录 |
| `Ctrl + F5` | 强制刷新页面 |
### 9.4 日志查看
| 日志类型 | 位置 |
|------|------|
| 用户操作日志 | 数据库表 `_日志` |
| API请求日志 | 数据库表 `记录_日志_项目运行日志` |
| 浏览器控制台 | F12 → Console |
| 开发服务器日志 | 终端控制台输出 |
### 9.5 联系与支持
- **项目维护**: MESWORK
- **数据库文档**: 见 `script.sql` (完整DDL)
- **技术分析**: 见 `MES_技术分析报告.md`
- **功能映射**: 见 `MES_功能列表_页面_存储过程映射.md`
---
> 📅 文档生成日期: 2026-05-18
> 📝 版本: v1.0
> 🔄 最后更新: 2026-05-18

View File

@@ -0,0 +1,7 @@
{
"folders": [
{
"path": ".."
}
]
}

View File

@@ -0,0 +1,69 @@
USE [YL_MESDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[_加急任务查询]
AS
BEGIN
SET NOCOUNT ON;
SELECT
[]
,[]
,[]
,[]
,[]
,[]
,[]
,[]
,[]
,[]
,[]
,[]
, as
,
,
,
,REPLACE(STUFF((
SELECT
' -> ' + ISNULL(d2., '') + '(' + ISNULL(d2., '') + ')'
+ '|' + ISNULL(CAST(d2. AS VARCHAR(10)), '0')
+ '|' + ISNULL(CAST(CAST(ISNULL((
SELECT SUM()
FROM [dbo].[YL_质量检验_质检记录]
WHERE TaskAID = d2.TaskAID
), 0) AS INT) AS VARCHAR(10)), '0')
+ '|' + ISNULL(CONVERT(VARCHAR(2), MONTH(d2.)) + '' + CONVERT(VARCHAR(2), DAY(d2.)) + '', '')
+ '|' + ISNULL(CAST(d2. AS VARCHAR(10)), '')
+ '|' + ISNULL(CAST(d2. AS NVARCHAR(50)), '')
+ '|' + ISNULL(CAST(CAST(ISNULL((
SELECT SUM()
FROM [dbo].[YL_加工中心_操作记录表]
WHERE TaskAID = d2.TaskAID
AND = '收料'
), 0) AS INT) AS VARCHAR(10)), '0')
+ '|' + ISNULL(CAST(CAST(ISNULL((
SELECT SUM()
FROM [dbo].[YL_质量检验_质检记录]
WHERE TaskAID = d2.TaskAID
), 0) AS INT) AS VARCHAR(10)), '0')
FROM [dbo].[View_生产订单_MES] d2
WHERE d2. = v.
ORDER BY d2.
FOR XML PATH('')
), 1, 6, ''), '&gt;', '>') AS
,(SELECT COUNT(DISTINCT ) FROM [YL_MESDB].[dbo].[View_生产订单_MES] WHERE > 0 AND NOT LIKE '%装配%') AS []
FROM [YL_MESDB].[dbo].[View_生产订单_MES] v
WHERE > 0
AND NOT LIKE '%装配%'
AND = (
SELECT MIN()
FROM [YL_MESDB].[dbo].[View_生产订单_MES]
WHERE = v.
)
END

View File

@@ -0,0 +1,193 @@
-- ============================================================
-- 修复: [dbo].[生产管理_外协报表_查询]
-- 问题1: 供应商过滤在 HAVING 中SELECT 用 MAX(供应商名称)
-- → 搜索"大连金景义"可能显示"芯泰智能"
-- 问题2: GROUP BY 加了供应商名称后STUFF 子查询未限定供应商
-- → 两个供应商行拿到完全相同的工序列表,看似重复
-- 修复:
-- ① 供应商过滤移到 WHERE分组前过滤
-- ② GROUP BY 加入 供应商名称(每个供应商独立一行)
-- ③ STUFF 子查询加 d2.供应商名称 = d.供应商名称(各行只取自己的工序)
-- ④ ROW_NUMBER 加上 供应商名称(排序确定化)
-- 日期: 2026-05-21
-- ============================================================
USE [YL_MESDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[_外协报表_查询]
@ int = 0,
@ nvarchar(50) = '',
@ nvarchar(50) = '',
@ nvarchar(50) = '',
@ nvarchar(50) = '',
@ nvarchar(100) = '',
@ int = 0,
@PageCurrent int = 1,
@PageSize int = 20,
@PageCount int OUTPUT,
@ItemCount int OUTPUT
AS
BEGIN
SET NOCOUNT ON
IF OBJECT_ID('tempdb..#MergedResult') IS NOT NULL DROP TABLE #MergedResult
;WITH AS (
SELECT
,
,
,
MAX() AS ,
MAX() AS ,
MAX() AS ,
MAX() AS ,
MAX() AS ,
MAX() AS ,
MAX() AS ,
MAX() AS ,
MIN() AS ,
MIN() AS ,
MAX() AS ,
MAX() AS ,
MAX() AS ,
MAX() AS ,
MAX() AS ,
MAX(CASE WHEN ISNULL(, 0) > 0 THEN 1 ELSE 0 END) AS ,
MAX() AS ,
MAX(_报工) AS _报工,
MAX(CAST( AS NVARCHAR(MAX))) AS ,
MAX() AS ,
MAX() AS ,
MAX() AS ,
MAX() AS ,
MAX(CASE WHEN = 1 OR ISNULL(, 0) > 0 THEN 1 ELSE 0 END) AS ,
-- ============ 修复点③ ============
-- STUFF 子查询加上 供应商名称 关联:每个供应商行只聚合自己的工序
STUFF((
SELECT ',' + d2.
FROM View_外协报表视图 d2
WHERE d2. = d.
AND d2. = d.
AND ISNULL(d2., '') = ISNULL(d., '')
ORDER BY d2.
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)'), 1, 1, '') AS ,
STUFF((
SELECT ',' + CAST(d2.TaskAID AS VARCHAR(10))
FROM View_外协报表视图 d2
WHERE d2. = d.
AND d2. = d.
AND ISNULL(d2., '') = ISNULL(d., '')
ORDER BY d2.
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)'), 1, 1, '') AS TaskAID列表,
-- ============ 修复点④ ============
-- ROW_NUMBER 排序加上 供应商名称,确保分页结果稳定
ROW_NUMBER() OVER (ORDER BY , ) AS RowNum
FROM View_外协报表视图 d
WHERE 1=1
-- 排除供应商为空的"脏数据"无SAP采购单关联的行
AND ISNULL(d., '') <> ''
-- ============ 修复点① ============
-- 供应商过滤放在 WHERE分组前不会出现"搜A显示B"
AND (@ = '' OR d. LIKE '%' + @ + '%')
-- ====================================
AND (@ = 0 OR d. = @)
AND (@ = '' OR d. = @)
AND (@ = '' OR d. LIKE '%' + @ + '%')
AND (@ = '' OR d. LIKE '%' + @ + '%')
AND (@ = '' OR d. LIKE '%' + @ + '%')
-- ============ 修复点② ============
-- 按 订单号 + 拆分内码 + 供应商名称 分组,每个供应商独立一行
GROUP BY , ,
-- ====================================
HAVING
-- 状态过滤依赖聚合值,保留在 HAVING
(@ = 0 OR MAX(CASE WHEN ISNULL(_报工, 0) < ISNULL(, 0) THEN 1 ELSE 0 END) = 1)
)
SELECT
,
,
,
,
,
AS ,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
_报工,
,
,
,
TaskAID列表 AS TaskAID,
,
,
CASE WHEN = 1 THEN '可执行' ELSE '不可执行' END AS ,
,
,
RowNum
INTO #MergedResult
FROM
SELECT @ItemCount = COUNT(*) FROM #MergedResult
IF @ItemCount = 0
SET @PageCount = 0
ELSE
SET @PageCount = CEILING(CAST(@ItemCount AS FLOAT) / @PageSize)
SELECT
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
_报工,
,
,
,
TaskAID,
,
,
,
,
FROM #MergedResult
WHERE RowNum BETWEEN (@PageCurrent - 1) * @PageSize + 1 AND @PageCurrent * @PageSize
ORDER BY ,
DROP TABLE #MergedResult
END
GO

View File

@@ -0,0 +1,152 @@
-- ============================================================
-- 修复: [dbo].[质量管理_质量检验_入库质检任务_查询]
-- 错误1: CheckedQuantity CTE 末尾多余逗号 (语法错误)
-- 错误2: QualityData 中 检测类型编号 硬编码6 vs WHERE过滤5 (不一致)
-- 错误3: 检测说明 列缺少表前缀 (歧义)
-- 错误4: GROUP BY 含不必要的 cq.聚合字段
-- 日期: 2026-05-22
-- ============================================================
USE [YL_MESDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[_质量检验_入库质检任务_查询]
@ NVARCHAR(100) = '',
@ NVARCHAR(100) = '',
@ NVARCHAR(100) = '',
@_Start NVARCHAR(20) = '',
@_End NVARCHAR(20) = '',
@ NVARCHAR(10) = '',
@ NVARCHAR(50) = '',
@ NVARCHAR(10) = '',
@ NVARCHAR(50) = ''
AS
BEGIN
SET NOCOUNT ON;
DECLARE @SQL NVARCHAR(MAX)
DECLARE @WhereConditions NVARCHAR(MAX) = ''
DECLARE @TaskWhere NVARCHAR(MAX) = ''
DECLARE @OuterWhere NVARCHAR(MAX) = ''
-- 构建任务表筛选条件(用于内层)
SET @TaskWhere = @TaskWhere + ' AND (task.订单类型 = ''20'') '
IF @ <> ''
SET @TaskWhere = @TaskWhere + ' AND task.单据码 LIKE ''%' + @ + '%'''
IF @ <> ''
SET @TaskWhere = @TaskWhere + ' AND task.订单编号 LIKE ''%' + @ + '%'''
IF @ <> ''
SET @TaskWhere = @TaskWhere + ' AND task.物料编码 LIKE ''%' + @ + '%'''
IF @ <> ''
SET @TaskWhere = @TaskWhere + ' AND task.物料名称 LIKE ''%' + @ + '%'''
-- 构建外层筛选条件(用于计算结果)
IF @ <> ''
SET @OuterWhere = @OuterWhere + ' AND 检测结果 = ' + @
IF @ <> ''
SET @OuterWhere = @OuterWhere + ' AND 状态 = ''' + @ + ''''
IF @ <> ''
SET @OuterWhere = @OuterWhere + ' AND 检测人 LIKE ''%' + @ + '%'''
IF @_Start <> '' AND @_End <> ''
SET @OuterWhere = @OuterWhere + ' AND CAST(检验时间 AS DATE) BETWEEN ''' + @_Start + ''' AND ''' + @_End + ''''
-- 构建内层WHERE
DECLARE @InnerWhere NVARCHAR(MAX) = ''
IF LEN(@TaskWhere) > 0
SET @InnerWhere = ' WHERE ' + SUBSTRING(@TaskWhere, 5, LEN(@TaskWhere))
SET @SQL = '
WITH QualityData AS (
SELECT
计划号,
检验数量,
合格数,
不合格数,
检测人,
检测时间,
检测类型编号 -- ============ 修复点②:不要硬编码,取实际值 ============
FROM [dbo].[YL_质量检验_质检记录]
WHERE 检测类型编号 = 5 -- ← WHERE 和 SELECT 一致了
),
-- 统计已检验数量和合格数
CheckedQuantity AS (
SELECT
计划号,
行号,
订单类型 AS 质检订单类型,
SUM(检验数量) AS 已检验数量,
SUM(合格数) AS 累计合格数,
SUM(不合格数) AS 累计不合格数,
MAX(检测说明) AS 检测说明 -- ============ 修复点①:去掉末尾多余的逗号 ============
FROM [dbo].[YL_质量检验_质检记录]
WHERE 检测类型编号 = 5
GROUP BY 计划号, 行号, 订单类型
),
AggregatedData AS (
SELECT
task.订单编号 AS 计划号,
task.单据码,
task.订单类型,
task.物料编码,
task.物料名称,
task.到货数,
task.入库数量,
task.加急状态,
task.行号,
task.采购到货时间,
task.存放位置,
task.加急总数,
-- 使用累计数据
ISNULL(cq.已检验数量, 0) AS 检验数量,
ISNULL(cq.累计合格数, 0) AS 合格数,
ISNULL(cq.累计不合格数, 0) AS 不合格数,
ISNULL(cq.已检验数量, 0) AS 已检验数量,
cq.检测说明 AS 备注, -- ============ 修复点③:加上表前缀 cq. ============
task.入库数量 - ISNULL(cq.已检验数量, 0) AS 剩余待检数量,
-- 检测人(取最新的或合并多人)
CASE
WHEN COUNT(DISTINCT qd.检测人) = 1 THEN MAX(qd.检测人)
ELSE STUFF((
SELECT DISTINCT '', '' + 检测人
FROM QualityData qd2
WHERE qd2.计划号 = task.订单编号
AND ISNULL(qd2.检测人, '''') <> ''''
FOR XML PATH('''')), 1, 2, '''')
END AS 检测人,
MAX(qd.检测时间) AS 检验时间,
-- 检测结果(基于累计数据)
CASE
WHEN ISNULL(cq.累计不合格数, 0) > 0 THEN 2
WHEN ISNULL(cq.累计合格数, 0) > 0 THEN 1
ELSE 0
END AS 检测结果,
-- 检验状态
CASE
WHEN ISNULL(cq.已检验数量, 0) >= task.入库数量 AND task.入库数量 > 0 THEN ''1''
ELSE ''0''
END AS 状态
FROM [dbo].[质量检验_质检任务_SAP] task
LEFT JOIN QualityData qd ON task.订单编号 = qd.计划号
LEFT JOIN CheckedQuantity cq ON task.订单编号 = cq.计划号 AND task.行号 = cq.行号 AND task.订单类型 = cq.质检订单类型
' + @InnerWhere + '
GROUP BY
task.订单编号, task.单据码, task.订单类型,
task.物料编码, task.物料名称, task.到货数,
task.入库数量, task.加急状态, task.行号,
task.采购到货时间, task.存放位置, task.加急总数,
cq.已检验数量, cq.累计合格数, cq.累计不合格数,
cq.检测说明 -- ============ 修复点④GROUP BY 加入新增的检测说明列 ============
)
SELECT * FROM AggregatedData
WHERE 1=1' + @OuterWhere + '
ORDER BY 加急状态 DESC'
PRINT @SQL
EXEC sp_executesql @SQL
END
GO

16
doc_old/index.html Normal file
View File

@@ -0,0 +1,16 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title><%= htmlWebpackPlugin.options.title %></title>
<link rel="icon" href="favicon.ico">
</head>
<body style="background-color: #eeeeee">
<script src="./static/config.js"></script>
<script src="./static/jsQR.js"></script>
<div id="app"></div>
<script></script>
<!-- built files will be auto injected -->
</body>
</html>

View File

@@ -0,0 +1,81 @@
USE [YL_MESDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE OR ALTER PROCEDURE [dbo].[_装配及时送检_查询]
@ int = 0,
@ nvarchar(50) = N'',
@ nvarchar(50) = N'',
@ nvarchar(50) = N'',
@ nvarchar(50) = N'',
@ nvarchar(50) = N'不含'
AS
BEGIN
SET NOCOUNT ON;
;WITH AS (
SELECT
CASE WHEN v.[] LIKE N'%系统%' THEN N'系统类' ELSE N'阀类' END AS ,
v.[],
v.[] AS ,
v.[] AS ,
v.[] AS ,
TRIM('.' FROM TRIM('0' FROM CAST(v.[] AS varchar(30)))) AS ,
v.[],
v.[],
v.[],
v.[],
v.[],
v.[],
CASE
WHEN v.[] LIKE N'%系统%'
THEN ISNULL(v.[], DATEADD(DAY, 3, v.[]))
ELSE ISNULL(v.[], DATEADD(DAY, 3, v.[]))
END AS ,
CASE WHEN ISNULL(v.[], 0) = 1 THEN N'加急' ELSE N'' END AS
FROM [dbo].[View_生产订单_MES] v
WHERE v.[] = 'pit_Resource'
AND v.[] LIKE N'%装配%'
AND ISNULL(v.[], 0) < 4
AND (@ <= 0 OR v.[] = @)
AND (@ = N'' OR v.[] LIKE N'%' + @ + N'%')
AND (@ = N'' OR v.[] LIKE N'%' + @ + N'%')
AND (@ = N'' OR v.[] LIKE N'%' + @ + N'%')
AND (@ = N'' OR v.[] = @)
AND (
@ <> N'不含'
OR (
v.[] NOT LIKE N'%软管总成%'
AND v.[] NOT LIKE N'%发货部件%'
)
)
AND v.[] <> N''
)
SELECT
,
,
,
,
,
,
,
,
,
,
,
,
,
FROM
WHERE IS NOT NULL
AND CONVERT(date, ) <= CONVERT(date, GETDATE())
ORDER BY
CONVERT(date, ),
CASE WHEN = N'加急' THEN 0 ELSE 1 END,
;
END
GO

View File

@@ -0,0 +1,77 @@
# 今后开发计划与新增需求分析记录
生成日期2026-05-27
项目MES_Manage_View_V20
## 一、排期口径
- 按“最终调整”数字从小到大排序。
- 从 2026-05-28 开始排期。
- 按工作日递推,跳过周六、周日。
- 跳过端午节、中秋节、国庆节法定放假日期。
- 调休日按工作日处理。
- 暂按单开发线串行排期。
节假日口径:
- 端午节2026-06-19 至 2026-06-21。
- 中秋节2026-09-25 至 2026-09-27。
- 国庆节2026-10-01 至 2026-10-07。
- 调休上班日2026-09-20、2026-10-10。
## 二、开发计划排期
| 顺序 | 需求 | 预估 | 开始 | 结束 | 备注 |
|---:|---|---:|---|---|---|
| 1 | 及时开工报表 | 1天 | 5.28 | 5.29 | 增加正选/反选查询 |
| 2 | 机加件排产-表单 | 4天 | 5.29 | 6.04 | 日期筛选优化 + 历史工时查询SAP新增字段不算MES开发 |
| 3 | 装配已排产需求 | 12天 | 6.04 | 6.23 | 大需求,建议分阶段交付 |
| 4 | 生产日报-送检(机加/装配) | 3天 | 6.23 | 6.26 | 建议统一报表,部门做筛选维度 |
| 5 | 及时齐套跟踪结果报表 | 5天 | 6.26 | 7.03 | 依赖SAP缺件明细实时接口 |
| 6 | 生产计划跟踪 | 3天 | 7.03 | 7.08 | 工序状态、颜色、标准工时、订单状态 |
| 7 | 外协任务检验 | 3天 | 7.08 | 7.13 | 增加指派对象、供应商、SAP采购收货单号 |
| 8 | 异常管控 | 5天 | 7.13 | 7.20 | 报工页面直接报异常,多审批人可见一人处理 |
| 9 | 机加班次产量表 | 3天 | 7.20 | 7.23 | 新增报表 |
| 10 | 发货通知列表 | 1天 | 7.23 | 7.24 | SAP数据已提供可新增查询报表 |
| 11 | 质检任务早知道 | 1天 | 7.24 | 7.27 | 依赖“装配已排产需求”的装配完成时间 |
| 12 | 生产工艺 | 2天 | 7.27 | 7.29 | 无生产工艺时自动带出标准工艺 |
| 13 | 工时报表 + 备注类小改 | 2天 | 7.29 | 7.31 | 指派对象、机加领料备注、机加/装配退库备注、保存提示等合并处理 |
| 14 | 生产订单关闭 | 4天 | 7.31 | 8.06 | 批量更新SAP订单状态风险较高 |
| 15 | 及时检验报表 | 4天 | 8.06 | 8.12 | 报工超过2天未检验 |
| 16 | 工序流转卡 | 1天 | 8.12 | 8.13 | 增加打印原料编码 |
| 17 | 一楼质检大屏幕 | 4天 | 8.13 | 8.19 | 及时率、关键工序 |
| 18 | 机加现场大屏幕 | 3天 | 8.19 | 8.24 | 缺勤、关键工序 |
| 19 | 装配现场大屏幕 | 4天 | 8.24 | 8.28 | 缺勤、及时送检 |
| 20 | 编程任务清单 | 4天 | 8.28 | 9.03 | 按装配类似逻辑做编程报工 |
| 21 | 设备档案管理 | 2天 | 9.03 | 9.07 | 需先确认字段归属 |
| 22 | 设备数据采集 | 8天 | 9.07 | 9.17 | 采集接口、落库、状态汇总 |
| 23 | 设备指标/OEE | 6天 | 9.17 | 9.24 | 依赖设备采集和标准工时口径 |
| 24 | 工时查询-设备采集联动 | 2天 | 9.24 | 9.29 | 程序工时字段对接采集数据 |
| 25 | 手续确认报表 | 3天 | 9.29 | 10.09 | 装配/电气齐套列表 + 手续确认 |
| 26 | 产品合格率(工位) | 3天 | 10.09 | 10.13 | 需确认良品/总产量口径 |
| 27 | 让步接收记录 | 2天 | 10.13 | 10.15 | 新增查询页面 |
| 28 | 设计任务报工模块 | 6天 | 10.15 | 10.23 | MES自建设计任务、设计工时 |
| 29 | 工时异常报表 | 2天 | 10.23 | 10.27 | 依赖标准工时和实际单件工时 |
| 30 | 正在加工状态 | 1天 | 10.27 | 10.28 | 机加正在进行中状态 |
## 三、暂不直接排期 / 需等前置条件
| 需求 | 原因 |
|---|---|
| 及时拣配机加MES | 等SAP数据、条码规则、状态写回规则 |
| 及时拣配装配MES | 等SAP数据、条码规则、状态写回规则 |
| 及时送检报表 | 需确认发料齐套时间/SAP字段是否稳定若SAP数据已到可插入0.5天 |
| 工艺内容修改 | 已开工任务怎么处理未定 |
| 标牌打印操作 | 需求未确定 |
| 首检、巡检 | 需求内容为空,无法估时 |
| 外协采购订单收检结果 | 需求内容为空,无法估时 |
| 不合格品单据打印 | 需求内容为空,无法估时 |
## 四、排期结论
按以上单线工作日计划,已明确可做事项预计到 2026-10-28 完成。
实际执行建议先做 5.28 到 6.23 的前三项,因为它们优先级最高,且“装配已排产需求”会影响后面的质检早知道、日计划、及时送检等需求。
## 五、新增需求分析与开发记录原文

View File

@@ -0,0 +1,137 @@
今日工作汇报
日期2026年5月23日
一、今日已处理问题
1. 修复采购收货检备注问题
已处理采购收货检验相关备注字段异常,保证备注信息能够正常记录、查询和展示。
2. 查询序检因已入库导致质检失败的原因
已排查序检过程中因生产订单或物料已入库导致质检失败的问题,明确该类失败与当前入库状态校验逻辑有关,后续如需优化,需要结合入库状态、质检状态和业务允许范围进一步确认处理规则。
3. 修改生产任务看板未按期齐套任务数据
已调整生产任务看板中“未按期齐套任务”相关数据逻辑,修正看板展示数据与实际业务状态不一致的问题。
二、今日需求分析记录
1. 工艺内容修改
已分析该需求。由于涉及已开工任务,当前结论是不允许直接修改。后续如要支持,需要设计工艺版本、任务快照和已开工任务处理规则,目前暂不开发。
2. 机加件排产-表单
已分析计划开始时间、计划完成时间筛选逻辑,后续改为按单日期查询。
同时分析新增历史工时查询:在机加件已排产页面增加总工时字段,点击后弹窗查看明细,按设备、日期分组显示生产任务和工时合计,查询方式参考工时查询页面。
3. 工序流转卡
已确认打印内容需要增加原料编码开发周期约0.2天。
4. 生产计划跟踪
已分析当前序展示逻辑。后续需要在当前序中显示完整工艺路线,并根据任务状态判断哪道序正在加工、哪些序等待加工。
进度显示规则示例:当前工序加工中显示“打磨中”,当前工序完成后显示“打磨毕待喷漆”。
括号内容为指派对象,外协工序括号中也显示指派对象。
同时需要增加标准工时和订单状态字段。
5. 设计任务报工模块
已分析该模块为MES自建任务不依赖生产订单不上传SAP。
设计工时单独记录,后续用于报表和工时统计。
质量、装配、机加工时分别来自各自业务模块,后续可按系统角色权限区分。
6. 工时报表
已确认作业者工时新增指派对象字段开发周期约0.1天。
作业者工时一对多计算问题当前暂不修改,因为当前版本已不再按旧逻辑计算,需要后续重新确认规则。
7. 工时查询
程序工时字段需要结合设备数据采集计算,后续可能新增设备信息。目前等待设备采集数据,不进入开发。
8. 生产领料(补充)-机加
已确认领料单需要新增备注字段开发周期约0.2天。
9. 生产退库-机加
已确认按照装配退库方式增加备注字段开发周期约0.2天。
10. 生产退库-装配
已确认需要增加备注字段开发周期约0.1天。
11. 机加班次产量表
已分析为新增报表,按设备分组,设备下按日期、班次展示每天每班次干了哪些任务,支持时间和班次筛选。
12. 外协任务报表(采购)
已确认增加采购到货期说明字段开发周期约0.1天。
13. 外协任务检验 / 序检
已分析需要记录指派对象、供应商、SAP采购收货单号。
当前表中没有记录设备,只记录工序,所以后续如果要做设备合格率暂时无法实现;增加供应商后,可以支持外协供应商合格率相关统计。
14. 手续确认报表
已分析为新增页面。装配、电气发料齐套时间列表合并显示,展示内容参考装配中心。
新增“手续确认”字段,点击选择已完成后消失。
消失条件包括:手续确认已完成、生产订单取消/关闭、整单已入库。
15. 及时检验报表
已分析为新增报表。统计生产报工完成后超过2天未检验的任务。
数据依据为[YL_加工中心_操作记录表]条件包括操作类别为报工、操作数值大于0并以结束时间作为起算时间。
16. 及时齐套跟踪结果报表
已分析为新增报表。缺件明细为实时数据来源SAP通过生产订单号查询加急件明细。
缺料物料的生产订单号需要绑定主生产订单号,支持多个子订单包含关系。
页面需要支持展开查看缺件明细,并显示当前进度、排序、预计完成时间、预计可执行时间等信息。
17. 及时送检报表
已确认为新需求基于发料齐套时间SAP数据已到预计开发周期约0.5天。
18. 生产日报-送检(机加 / 装配)
已分析后续可能根据多个部门拆分多个报表,也可以先按部门筛选方式设计,避免重复开发。
19. 编程任务清单
已分析本质为编程报工,类似装配中心的任务列表算法。
后续需要按设备展示任务清单,并支持编程开始、结束、工时统计等功能。
20. 标牌打印操作
当前需求未确定,暂不排开发周期。
21. 发货通知列表
SAP已提供数据大屏已显示后续需要新增报表页面预计开发周期约0.5天。
22. 生产订单关闭
已分析需要新增批量更新SAP订单状态功能。
后续开发时需要支持批量选择、调用SAP、记录成功失败结果并防止重复关闭。
23. 制定标准工艺
已确认点击保存时增加提示信息开发周期约0.1天。
24. 生产工艺
已分析编辑时如果没有生产工艺,需要自动带出标准工艺。
带出内容作为编辑草稿,不应直接覆盖保存,避免误改生产工艺。
25. 异常管控
已分析报工页面需要支持选择任务后直接报异常,不再进入异常页面后重新选择任务。
审批人改为多选,一人处理即可,其他被选审批人也能看到任务。
审批人来源不固定,可能来自部门、角色、组织层级或任意人员,因此都需要支持。
26. 及时开工报表
已分析当前是指派对象反选查询,客户还需要正选查询页面。
后续需要支持指派对象正选和反选两种查询方式。
27. 让步接收记录
已分析为新增查询页面。数据来源为质检记录中让步接收字段不为空的数据。
28. 装配已排产需求
已完成重点分析。该需求需要新增装配已排产需求界面,增加系统/非系统筛选。
高压单元为系统,阀类为非系统,判断方式暂按物料名称关键字。
新增装配完成时间来源为发料齐套时间加3天可手动修改字段落库到生产计划表。
还需要显示SAP派工时间、合同交货期增加钣金预达、钣金到达、泵、当前对应人员、当前对应内容、累计工时、预计总工时、合同工时汇总、合同进度参考、预计剩余工时、生产异常等字段。
工时按装配、质量、设计分类,装配来自装配报工,质量来自质检报工,设计来自新设计任务报工模块。
同步需要做日计划报表,按装配完成时间分组,支持导出和打印。
29. 质检任务早知道
已分析为新增页面,基于装配已排产需求中的装配完成时间,去掉已完成任务后,按装配完成时间分组展示。
三、今日分析结论
今日除已处理的三个问题外主要完成了新增需求的逐项梳理明确了哪些可以直接开发、哪些依赖SAP、哪些依赖设备采集、哪些需求暂不明确、哪些当前无法修改。
其中可直接进入开发的小项包括:工序流转卡原料编码、工时报表指派对象、领料/退库备注、外协采购到货期说明、发货通知列表、标准工艺保存提示等。
需要重点设计后再开发的需求包括:装配已排产需求、生产计划跟踪、及时齐套跟踪结果报表、设计任务报工、异常管控、手续确认报表。
依赖外部数据的需求包括SAP派工时间、合同交货期、发料齐套时间、及时齐套缺件明细、设备数据采集工时。

View File

@@ -0,0 +1,151 @@
# 元利 MES 项目 — 今日工作汇报
日期2026-05-25
项目MES_Manage_View_V20
## 一、今日主要工作
### 1. 完成 `src/views` 页面与 SAP 交互分析整理
基于 `元利项目详细分析.md`,对主系统 `src/views` 中涉及 SAP 的页面调用进行了梳理,明确了 SAP 交互主要集中在以下业务链路:
| 业务链路 | 涉及页面 | SAP 交互内容 |
|---|---|---|
| 机加/装配排产 | `SelfMakePlan``SelfMakePlando``SelfMakePlandone``InstallMakePlan``InstallMakePlanDo` | 回写 SAP 生产订单计划日期、派工信息、优先级、未完成说明 |
| 生产订单关闭 | `PlannOrderClose` | 更新 SAP 生产订单关闭状态 |
| 工序基础数据 | `ProcedureManagement` | 新增、查询、修改 SAP RouteStages |
| 工位资源维护 | `WorkstationManagement` | 新增、修改 SAP Resources |
| 外协业务 | `OutsourceMange``SaleOutsourceMange`、装配排产相关页面 | 创建 SAP 采购申请 |
| 工时校验/投料 | `WorkHoursCheck` | 查询 SAP 生产订单、更新工序资源、提交 InventoryGenExits |
| 质检/收货 | `processReceive``materialReturn``QualityCenter` | 查询 SAP 订单、创建采购收货单、生成库存任务 |
分析结论:
- 当前系统不是单点 SAP 对接,而是计划、工艺、工位、生产、外协、质检、工时多个模块共同对接 SAP。
- SAP 写操作失败会造成 MES 与 SAP 状态不一致,需要在后续开发中保留失败原因、同步状态和重试依据。
- 生产订单关闭、工时校验、外协采购申请、采购收货是高风险操作,需要重点检查重复提交和半成功问题。
### 2. 生成元利项目详细流程图
已根据 `元利项目详细分析.md` 生成:
- `元利项目详细流程图.md`
内容包括:
- 系统总体架构流程
- 登录、菜单、权限流程
- 基础资料维护流程
- 标准工艺/生产工艺流程
- 机加排产与 SAP 回写流程
- 装配排产与采购申请流程
- 机加生产执行流程
- 装配中心执行流程
- 质检流程
- 外协流程
- 工时校验与 SAP 投料流程
- 异常管控流程
- 生产订单关闭与 SAP 状态同步流程
- 看板数据汇总流程
- 新增需求与维护入口判断流程
### 3. 生成新增需求界面原型设计
已根据 `新增需求分析与开发记录_2026-05-23.md` 生成:
- `新增需求界面原型设计_2026-05-25.md`
主要覆盖以下页面原型:
- 设计任务报工
- 机加班次产量表
- 手续确认报表
- 及时检验报表
- 及时齐套跟踪结果报表
- 生产日报-送检
- 编程任务清单/编程报工
- 让步接收记录
- 装配已排产需求
- 质检任务早知道
- 及时送检报表
- 发货通知列表
- 工时异常报表
同时补充了现有页面改造说明,包括机加已排产、生产计划跟踪、序检收检、生产订单关闭、生产工艺、异常管控、及时开工报表、工时报表、领料/退库/外协小字段等。
### 4. 生成元利项目详细用户使用说明书
已根据 `元利项目详细分析.md` 生成:
- `元利项目详细用户使用说明书.md`
内容覆盖:
- 登录与通用操作
- 基础资料维护
- 工艺与图纸管理
- 计划排产管理
- 生产执行管理
- 外协业务
- 质检管理
- 工时与报表
- 异常管控
- 设备管理与采集
- 看板使用
- 销售与交付查询
- 新增需求相关页面使用
- 系统维护
- 常见问题和名词解释
### 5. 修正新增需求分析口径
对前期新增需求分析进行了补充修正,重点明确不能只判断“是否新增页面”,还必须判断:
1. 数据来源是什么。
2. 字段在哪里维护。
3. 是否已有业务页面承载。
4. 是否需要新增维护页面。
5. 是否影响历史任务、报表和看板。
已补充的关键结论:
- 缺勤人员不能从“没有报工”反推,必须有应到人员和实到人员来源。
- 关键工序应在标准工艺和生产工艺中维护,任务下发时做快照。
- 看板只读取缺勤、关键工序、OEE、及时率等指标不作为主维护入口。
## 二、今日修改工作
### 1. 工时校验报工培训
今日进行了工时校验和报工相关培训,重点说明:
- 报工数据与工时校验之间的关系。
- MES 工时与 SAP 工时提交的关系。
- 工时校验页面中 SAP 订单、工序、资源、投料的核对方式。
- SAP 提交失败时需要查看失败原因,避免重复提交。
### 2. 质检历史数据修复
已处理质检历史数据修复工作,重点围绕历史质检记录、任务状态和相关查询口径进行校正,减少历史数据对当前质检查询和报表统计的影响。
### 3. 修改生产订单关闭判断条件
已修改生产订单关闭相关判断条件,调整关闭前校验逻辑,避免不符合条件的订单被错误关闭,同时减少已完成、已入库、已取消等状态判断不一致带来的问题。
### 4. 修复休息日加班和法定加班计算 Bug
已修复休息日加班和法定加班计算异常问题,调整加班类型对应的计算逻辑,避免休息日加班和法定加班工时统计错误。
## 三、今日产出文档
| 文档 | 说明 |
|---|---|
| `元利项目详细流程图.md` | 根据详细分析生成系统级和业务级流程图 |
| `新增需求界面原型设计_2026-05-25.md` | 根据新增需求生成界面原型和页面说明 |
| `元利项目详细用户使用说明书.md` | 根据详细分析生成面向用户的完整操作说明 |
| `新增需求分析与开发记录_2026-05-23.md` | 补充数据来源、维护入口、是否新建页面等分析 |
| `隐性需求综合分析_2026-05-25.md` | 补充维护入口和隐性需求判断规则 |
| `MES_Manage_View_V20_src_views_逐页面详细分析.md` | 补充页面归属、缺勤、关键工序、看板维护边界说明 |
## 四、当前结论
1. 元利 MES 与 SAP 的交互范围较广,后续所有涉及 SAP 写操作的功能都需要补同步状态、失败原因和重试机制。
2. 新增需求不能简单按“新增页面”评估,要同步判断维护入口、数据来源、历史数据和看板影响。
3. 工时、质检、订单关闭、加班计算属于当前重点稳定性工作,已完成培训和部分修复。
4. 后续开发建议优先处理低风险、小范围功能,再推进装配已排产需求、及时齐套、设计/编程报工、OEE 等跨模块功能。

View File

@@ -0,0 +1,143 @@
# 元利 MES 项目 — 今日工作汇报
日期2026-05-26
项目MES_Manage_View_V20
## 一、今日主要工作
### 1. 丰富并修改元利项目详细流程图
今日继续完善 `元利项目详细流程图.md`,在原有系统级流程基础上,进一步补充页面级、业务级流程说明。
重点补充内容:
- 登录、菜单权限、动态路由生成流程。
- 工艺、图纸、生产订单、排产、生产执行、质检、外协、工时校验、生产订单关闭等模块之间的衔接关系。
- 机加排产、装配排产、机加中心、装配中心、质量中心、工时校验等关键页面的详细业务流。
- SAP 回写、SAP 查询、WMS/库存任务、MES 存储过程之间的数据流转关系。
- 将流程图尽量调整为“框 + 箭头 + 文字”的形式,减少字母节点指引,便于培训和现场讲解。
本次调整后,流程图更适合用于:
- 给客户讲解整体 MES 业务闭环。
- 给实施人员定位页面与数据流关系。
- 给开发人员判断新增需求影响范围。
### 2. 工时校验数据对接梳理
今日继续梳理工时校验页面与 MES/SAP 数据之间的对接关系,重点围绕 `ProductionManagement/WorkHoursCheck`
已梳理内容:
- 对接数据时发现装配人员工时数据错误,经检查由于用户重复提交导致的问题
- 在排查过程中发现装配人员报工加班时,同时生成了正常报工的工时
### 3. 生产订单关闭培训与相关数据处理
今日进行了生产订单关闭相关培训和数据处理,重点说明生产订单关闭页面的使用边界。
培训内容:
- 生产订单关闭前需要先确认订单在 MES 中的任务完成情况。
- 关闭前需要核对生产订单状态、入库情况、报工情况和 SAP 状态。
- 批量关闭时要区分已成功关闭、关闭失败、不能关闭三类结果。
- SAP 关闭失败时不应重复点击,应先确认 SAP 返回原因。
数据处理内容:
- 协助检查生产订单关闭相关数据。
- 梳理关闭条件与当前订单状态之间的关系。
- 对异常数据进行核对,避免误关或重复关闭。
### 4. 沟通报工结果数据上传到 SAP 的影响
今日围绕报工结果上传 SAP 的影响进行了沟通和确认。
沟通重点:
- 超过班次工作时间部分的工时 如果不选择加班,系统自动记录这段工时
- 这段工时如果上次到SAP会导致其他生成订单工时不准确的问题,因为计算方法核算的是当日总报工时间记为8小时
- 这段时间如果上传,就会导致其他工时减少
- 休息日/法定时选择不加班工时记录的问题讨论结果是MES正常记录 但是不传输给SAP
### 5. 修改装配报工数据重复问题
今日处理装配报工数据重复问题。
处理重点:
- 排查装配报工过程中可能重复写入的数据链路。
- 核对装配任务、报工记录、质检/送检记录之间的关联关系。
- 调整重复数据产生场景,避免同一任务重复形成报工结果。
- 修改后重点关注装配中心报工、送检、任务完成状态的回显是否一致。
处理结果:
- 已针对装配报工重复问题进行修正。
- 后续需要继续观察现场报工数据,确认是否仍存在重复写入或重复统计。
### 6. 丰富并修改用户使用说明书
今日重点丰富 `元利项目详细用户使用说明书.md`
主要修改内容:
- 将第 21 章逐页说明整体扩展,不再只写笼统功能说明。
- 对 78 个页面按源码逐页补充:
- 页面用途
- 具体操作步骤
- 查询条件/输入项
- 结果表重点列
- 页面按钮/状态/页签
- 弹窗/表单重点项
- 后台处理/外部接口
- 操作注意事项
- 将第 21 章页面标题从英文页面名改为中文页面名,例如:
- `WorkHoursCheck` 改为 `工时校验`
- `SelfMakePlandone` 改为 `机加已排产`
- `MachiningCenter` 改为 `机加中心`
- `QualityCenter` 改为 `质量中心`
-`机加已排产` 章节进行了重点细化补充日程拖拽、指派数量、拆分派工、二次派工、原料状态、图纸、外协分组、最晚开始、红色加急排序、SAP 日期同步等操作。
说明书修改后更适合:
- 现场用户培训。
- 新员工快速熟悉页面。
- 实施人员按页面排查问题。
- 后续新增需求评审时对照现有功能。
### 7. 修改原料退库检,增加加急显示
今日处理原料退库检页面加急显示需求。
涉及页面:
- `QualityManagement/CheckTask/materialReturn.vue`
处理内容:
- 在原料退库检任务中增加加急状态/加急信息显示。
- 方便质检人员优先识别加急退库检任务。
- 便于后续按加急任务排序、提醒或优先处理。
业务影响:
- 质检人员在原料退库检页面可以更直观看到加急任务。
- 加急退库检任务可优先处理,减少对生产或后续流程的影响。
## 二、今日产出与修改文件
| 文件 | 今日处理内容 |
|---|---|
| `元利项目详细流程图.md` | 丰富业务流程图,补充多页面、多模块数据流 |
| `元利项目详细用户使用说明书.md` | 扩展第 21 章逐页操作说明,标题改为中文页面名 |
| `ProductionManagement/WorkHoursCheck` | 梳理工时校验与 SAP 上传关系 |
| `PlanManagement/PlannOrderClose` | 生产订单关闭培训与数据处理 |
| 装配报工相关页面/数据 | 修正装配报工重复数据问题 |
| `QualityManagement/CheckTask/materialReturn.vue` | 原料退库检增加加急显示 |
## 三、今日沟通事项
1. 与相关人员沟通工时校验数据上传 SAP 的影响明确报工结果、工时、SAP 工序资源之间的关系。
2. 对生产订单关闭进行培训,说明关闭前校验、关闭失败处理和数据风险。
3. 结合装配报工重复问题,沟通现场报工操作和后台数据写入逻辑。
4. 结合用户说明书和流程图,明确后续培训资料需要按页面逐步讲解,不能只写功能概述。
## 四、当前风险与注意事项
| 风险点 | 影响 | 处理建议 |
|---|---|---|
| 工时上传 SAP 重复提交 | 可能造成 SAP 工时或库存单据重复 | 上传失败时先查失败原因,不要连续重复提交 |
| 生产订单关闭条件不一致 | 可能误关订单或关闭失败 | 关闭前核对 MES 任务、入库、报工和 SAP 状态 |
| 装配报工重复 | 影响工时、任务进度、质检/送检统计 | 修复后继续观察现场数据 |
| 加急任务未突出显示 | 质检处理优先级不明确 | 原料退库检已增加加急显示,后续可扩展排序 |
| 用户手册仍需继续细化 | 培训时可能仍有页面操作细节不足 | 后续按重点业务页面继续逐页补强 |

View File

@@ -0,0 +1,142 @@
# 元利MES项目 — 今日工作汇报
> **日期**: 2026-05-22
> **汇报人**: MESWORK
> **状态**: 📋 工作记录与计划
---
## 一、今日已完成的修复
### Bug修复
| # | 问题 | 状态 | 文件 |
|:--:|------|:--:|------|
| 1 | 外协收料发料重复问题 | ✅ 已修复 | — |
| 2 | 序检数量错误 | ✅ 已修复 | — |
| 3 | SAP沟通更改错误数量 | ✅ 已完成 | — |
| 4 | 采购质检页面备注字段读取 | ✅ 已修复 | `fix_质量管理_入库质检任务_查询.sql` |
| 5 | 外协报表供应商搜索Bug | ✅ 已修复 | `fix_生产管理_外协报表_查询.sql` |
| 6 | 外协报表界面加载慢 | ✅ 已优化 | — |
| 7 | 原设备状态报表名称修改 | ✅ 已完成 | — |
### 基础设施
| # | 事项 | 状态 |
|:--:|------|:--:|
| 8 | 部署 Codex + GPT-5.5 | ✅ 已部署 |
| 9 | Codex+GPT分析元利项目整体技术路线和页面功能 | ✅ 已完成产出4份技术文档 |
---
## 二、甲方需求汇总(按模块分类)
### 2.1 工艺管理
| 编号 | 页面 | 需求 | 优先级 | 备注 |
|:--:|------|------|:--:|------|
| GM-01 | 工艺内容修改 | 需要修改工艺(尤其是已开工任务怎么处理) | 🟠 | **待讨论** |
| GM-02 | 制定标准工艺 | 点击保存提示信息 | 🟡 | UI优化 |
| GM-03 | 生产工艺 | 点击编辑时,若没有生产工艺则自动带出标准工艺 | 🟡 | 逻辑优化 |
### 2.2 生产排产
| 编号 | 页面 | 需求 | 优先级 | 备注 |
|:--:|------|------|:--:|------|
| PC-01 | 机加件排产-表单 | SAP需要增加字段信息 | 🟢 | 非MES需SAP配合 |
| PC-02 | 已排产表单 | 筛选日期需要优化 | 🟡 | |
### 2.3 生产计划跟踪
| 编号 | 页面 | 需求 | 优先级 | 备注 |
|:--:|------|------|:--:|------|
| JH-01 | 生产计划跟踪 | 工序文字根据状态变颜色(已开工→绿色) | 🟡 | |
| JH-02 | 生产计划跟踪 | 进度显示:未完成→"工作中(打磨中)",已完成→"打磨毕待淬火" | 🟡 | 状态文案定制 |
| JH-03 | 生产计划跟踪 | 增加标准工时字段 | 🟡 | |
| JH-04 | 生产计划跟踪 | 增加订单状态字段 | 🟡 | |
### 2.4 报工与工时
| 编号 | 页面 | 需求 | 优先级 | 备注 |
|:--:|------|------|:--:|------|
| BG-01 | 报工-技术-MES | **新建研发任务报工模块**(设计任务报工) | 🔴 | 新模块 |
| BG-02 | 报工-技术-MES | 报工方式:跟装配报工类似 | 🔴 | |
| BG-03 | 报工-技术-MES | 工时不需要上传SAP需要单独做报表 | 🟠 | 后续可能调用数据计算 |
| BG-04 | 报工-技术-MES | 是否需要根据SAP进行交互 | 🟡 | **待确认** |
| BG-05 | 工时报表 | 作业者工时新增"指派对象"字段 | 🟠 | |
| BG-06 | 工时报表 | 作业者工时一对多问题(报工结束后直接计算) | 🟠 | 上版本报工是计算的,后面改了 |
| BG-07 | 工时查询 | 程序工时字段需跟设备数据采集计算,可能新增其他设备信息 | 🟡 | 依赖设备数据 |
| BG-08 | 历史工时查询 | 按设备、日期分组显示生产任务+工时合计 → **工位任务汇总表** | 🔴 | 见需求分析文档 |
| BG-09 | 机加班次产量表 | 每天每个每班次干什么活(时间+班次筛选) | 🟠 | 新报表 |
### 2.5 外协管理
| 编号 | 页面 | 需求 | 优先级 | 备注 |
|:--:|------|------|:--:|------|
| WX-01 | 外协任务报表(采购) | 增加字段:采购到货期说明 | 🟠 | |
| WX-02 | 外协任务检验 | 记录"指派对象"、供应商、SAP采购收货单号 | 🔴 | 涉及存储过程改造 |
| WX-03 | 外协任务检验 | 后续报表需根据新增字段修改计算方式 | 🟡 | 依赖WX-02 |
### 2.6 生产领料/退库
| 编号 | 页面 | 需求 | 优先级 | 备注 |
|:--:|------|------|:--:|------|
| LL-01 | 生产领料-机加 | 领料单添加备注字段 | 🟡 | |
| LL-02 | 生产退库-机加 | 添加备注字段(按装配方式修改) | 🟡 | |
| LL-03 | 生产退库-装配 | 无备注字段,需添加 | 🟡 | |
### 2.7 报表类(新建)
| 编号 | 报表名称 | 需求说明 | 优先级 | 数据来源 |
|:--:|------|------|:--:|------|
| RP-01 | 手续确认报表 | 装配/电气发料齐套时间列表(同装配中心),增加"手续确认"字段(点击选择),已完成消失条件:已完成/订单取消关闭/已入库 | 🔴 | MES+SAP |
| RP-02 | 及时检验报表 | 报检任务超过2天未检验 | 🟠 | MES |
| RP-03 | 不合格品单据打印 | — | 🟡 | MES |
| RP-04 | 及时齐套跟踪结果报表 | 显示缺件明细(实时)数据来源SAP缺料物料的生产订单号绑定主生产订单号多包含 | 🔴 | SAP |
| RP-05 | 及时拣配机加MES | 新需求 | 🟡 | 等SAP数据 |
| RP-06 | 及时拣配装配MES | 新需求 | 🟡 | 等SAP数据 |
| RP-07 | 及时送检报表 | 发料齐套时间 | 🟡 | 等SAP数据 |
| RP-08 | 生产日报-送检(机加) | 可能按多部门出多个报表 | 🟡 | MES |
| RP-09 | 生产日报-送检(装配) | 可能按多部门出多个报表 | 🟡 | MES |
| RP-10 | 发货通知列表 | SAP已提供数据大屏已显示需新增报表 | 🟠 | SAP |
| RP-11 | 及时开工报表 | 目前反选查询,要求正选页面 | 🟡 | MES |
| RP-12 | 编程任务清单 | 某设备的任务列表,算法跟装配类似 | 🟡 | MES |
### 2.8 其他
| 编号 | 页面 | 需求 | 优先级 | 备注 |
|:--:|------|------|:--:|------|
| OT-01 | 工序流转卡 | 增加打印信息:原料编码 | 🟡 | |
| OT-02 | 异常管控 | 报工页面选择任务直接报异常;选择审批人都能看到任务(同级多人可选) | 🟠 | |
| OT-03 | 生产订单关闭 | 批量更新SAP订单状态 | 🟡 | |
| OT-04 | 标牌打印操作 | 需求未确定 | 🟢 | 待定 |
| OT-05 | 机加/装配/质量图纸查看 | — | 🟡 | 待补充 |
---
## 三、问题分类统计
| 类别 | 数量 | 占比 |
|------|:--:|:--:|
| 🔴 新模块/新报表 | 6 | 18% |
| 🟠 字段新增/逻辑改造 | 12 | 35% |
| 🟡 UI优化/文案修改 | 11 | 32% |
| 🟢 待SAP配合/待定 | 5 | 15% |
| **合计** | **34** | — |
---
## 四、关键风险与阻塞点
| 风险 | 影响范围 | 建议 |
|------|------|------|
| ⚠️ SAP数据未到位 | RP-04(及时齐套)、RP-05/06(及时拣配)、RP-07(及时送检) 共4个报表无法启动 | 催促SAP接口对接确定时间节点 |
| ⚠️ 已开工任务工艺修改 | GM-01 处理逻辑未定 | 尽快与甲方沟通确认方案 |
| ⚠️ 设计任务报工模块 | BG-01~04 全新模块,工作量较大 | 需要详细需求评审 |
| ⚠️ 外协检验字段改造 | WX-02 需要改存储过程+视图+前端 | 涉及数据迁移,需谨慎 |
---
> 📅 日期: 2026-05-22
> 📊 需求总数: 34项 | 已修复: 9项 | 待处理: 25项

View File

@@ -0,0 +1,22 @@
import * as XLSX from 'xlsx'
/deep/ 替换成 ::v-deep
css 中@import 替换成 @use
sidebar.scss
@use './variables.scss';
&:hover {
background-color: variables.$menuHover !important;
}
Layout.vue
@use "../../styles/mixin.scss";
.app-wrapper {
@include mixin.clearfix;

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,551 @@
# 元利 MES 项目详细流程图
生成日期2026-05-25
依据文档:`元利项目详细分析.md`
说明:
- 本文把 `元利项目详细分析.md` 中的页面、存储过程、SAP 调用、看板和新增隐性需求整理为可维护的 Mermaid 流程图。
- 图中页面路径以 `src/views/...` 为主,过程名称以文档分析到的 `CreateData(type, name, params)` 调用为主。
- `type=11` 通常表示查询/读取或通用执行,`type=12` 通常表示写入/业务动作,具体仍以后端实现为准。
## 1. 系统总体架构流程
```mermaid
flowchart TD
U[用户/班组/计划/质检/设备/管理层] --> FE[Vue 2.7 前端页面]
FE --> ROUTE[动态菜单/路由/权限]
ROUTE --> PAGE[src/views 业务页面]
PAGE --> CD[CreateData type + procedure + params]
CD --> ED[ExecDatabase 统一后端接口]
ED --> SP[SQL Server 存储过程]
SP --> DB[(YL_MESDB)]
PAGE --> B1[src/api/b1s.js]
B1 --> SAP[SAP B1 Service Layer]
SP --> SAPDB[(SAP.SBO_YL 跨库/同步表)]
PAGE --> TM[tm 仓储/条码任务接口]
TM --> WMS[库存/条码任务服务]
DB --> VIEW[业务视图/报表视图]
VIEW --> PAGE
VIEW --> DASH[生产/装配/质检/机加/综合看板]
SAPDB --> VIEW
SAP --> PAGE
WMS --> PAGE
```
关键链路:
- 前端页面不直接写 SQL而是通过 `CreateData` 组装过程名和参数。
- SAP 既有前端直接调用 B1 Service Layer也有 SQL 跨库或同步表读取。
- 看板主要读存储过程和视图,本身通常不维护业务数据。
## 2. 登录、菜单、权限与页面访问流程
```mermaid
flowchart TD
A[进入登录页 src/views/login] --> B[输入工号/密码]
B --> C[登录基础数据_人员信息_登陆检查密码]
C --> D{校验通过?}
D -- 否 --> E[提示登录失败]
D -- 是 --> F[写入 Token/用户信息]
F --> G[加载用户角色/菜单权限]
G --> H[登录基础数据_二级菜单/角色权限]
H --> I[生成动态路由]
I --> J[进入 Layout]
J --> K[侧边栏/标签页/AppMain]
K --> L[打开具体业务页面]
```
涉及页面:
- `src/views/login/index.vue`
- `src/views/layout/Layout.vue`
- `src/views/layout/components/Sidebar`
- `src/views/SystemMaintenance/MenuManagement`
- `src/views/SystemMaintenance/SystemRrolemaintenance`
## 3. 基础资料维护总流程
```mermaid
flowchart TD
A[系统基础资料] --> B[人员/组织/角色]
A --> C[工位/设备/SAP Resource]
A --> D[班次/人员绑定]
A --> E[工序/物料/图纸/产品结构]
B --> B1[PersonnelManagement/OrgManagement/SystemRole]
B1 --> B2[人员、岗位、班组、权限]
C --> C1[WorkstationManagement]
C1 --> C2[维护工位]
C2 --> C3{是否同步 SAP Resource?}
C3 -- 是 --> C4[POST/PATCH /Resources]
C3 -- 否 --> C5[仅 MES 保存]
C4 --> C6[记录同步状态/失败原因]
C5 --> C6
C --> C7[DeviceInformation]
C7 --> C8[设备名称/型号/类型/工位/点检/能力]
D --> D1[ShiftManagement/PersonnelBinding]
D1 --> D2[班次规则/人员工位绑定]
E --> E1[ProcedureManagement]
E1 --> E2[工序基础数据]
E2 --> E3{是否同步 SAP RouteStages?}
E3 -- 是 --> E4[POST/PATCH /RouteStages]
E3 -- 否 --> E5[MES 本地维护]
```
维护口径:
- 缺勤人员不能由看板维护,必须来自班次/排班、人员工位绑定和实到来源。
- 设备 OEE 基础数据应分散在设备档案、工位、工艺、采集配置中维护,不应只靠看板公式。
## 4. 工艺、图纸、标准工艺、生产工艺流程
```mermaid
flowchart TD
A[产品/物料/图纸基础] --> B[产品结构维护 CraftMaintain]
A --> C[零件图纸 PartDrawing]
A --> D[工艺图纸 ProcessDrawing]
A --> E[工序基础 ProcedureManagement]
B --> F[制定标准工艺 ProcessesDevelop]
C --> F
D --> F
E --> F
F --> G[标准工艺库]
G --> G1[工序顺序]
G --> G2[标准工时/准备工时]
G --> G3[是否关键工序]
G --> H[生产工艺 ProcessProduct]
H --> I{订单是否已有生产工艺?}
I -- 是 --> J[编辑订单级生产工艺]
I -- 否 --> K[按物料带出标准工艺草稿]
K --> L{用户保存?}
L -- 否 --> M[不写入生产工艺]
L -- 是 --> N[写入生产工艺库]
J --> O[启用/下发生产工艺]
N --> O
O --> P[生成任务可用工艺快照]
P --> Q[排产/报工/质检/看板读取]
```
关键结论:
- `关键工序` 应在标准工艺和生产工艺维护。
- 生产任务下发时应快照关键工序和标准工时,避免后续改标准工艺影响历史任务。
- 质检大屏、机加大屏只读取关键工序,不作为维护入口。
## 5. 生产订单、机加排产与 SAP 回写流程
```mermaid
flowchart TD
A[SAP/MES 生产订单同步] --> B[MES_接口_生产计划]
B --> C[待排产 SelfMakePlan]
C --> D[选择订单/工序/设备/工位/时间]
D --> E[排产保存]
E --> F[MES_接口_生产计划_生产任务]
F --> G[任务排产状态=已排产]
E --> H{是否回写 SAP 生产订单日期?}
H -- 是 --> I[PATCH /ProductionOrders]
I --> J{SAP 回写成功?}
J -- 是 --> K[记录同步成功]
J -- 否 --> L[记录失败原因/待重试]
H -- 否 --> M[仅 MES 排产]
G --> N[已排产 SelfMakePlando/SelfMakePlandone]
N --> O[生产计划跟踪/及时开工/机加中心]
```
涉及页面:
- `PlanManagement/SelfMakePlan`
- `PlanManagement/SelfMakePlando`
- `PlanManagement/SelfMakePlandone`
- `ProductionManagement/ProductionPlanTrack`
- `AnomalousManagement/PunctualWork`
风险点:
- MES 排产成功但 SAP 回写失败时,需要保留同步状态和失败原因。
- 已排产页面新增历史工时、总工时后,必须明确工时来源是生产报工、质检、异常还是设备采集。
## 6. 装配排产、外购申请与 SAP 流程
```mermaid
flowchart TD
A[装配/电气/系统相关订单] --> B[InstallMakePlan 待排产]
B --> C[选择装配任务/计划时间/优先级]
C --> D[保存装配排产]
D --> E[生成装配生产任务]
C --> F{需要采购申请?}
F -- 是 --> G[POST /PurchaseRequests]
G --> H{SAP 采购申请成功?}
H -- 是 --> I[记录 SAP 采购请求号]
H -- 否 --> J[记录失败/允许重试]
F -- 否 --> K[不生成采购申请]
D --> L{是否回写 SAP 生产订单?}
L -- 是 --> M[PATCH /ProductionOrders]
M --> N[同步派工/日期/说明]
L -- 否 --> O[仅 MES 保存]
E --> P[InstallMakePlanDo/装配中心/装配看板]
```
涉及页面:
- `PlanManagement/InstallMakePlan`
- `PlanManagement/InstallMakePlanDo`
- `ProductionManagement/AssemblyCenter`
- `装配任务看板`
新增需求影响:
- 发料齐套时间、装配完成时间、手续确认、送检状态会反向要求装配排产和装配中心补字段。
## 7. 机加生产执行流程
```mermaid
flowchart TD
A[已排产机加任务] --> B[MachiningCenter 机加中心]
B --> C{任务是否可开工?}
C -- 否 --> C1[显示不可操作原因: 未齐套/上序未合格/异常/编程未完成/设备占用]
C -- 是 --> D[开始加工/开工]
D --> E[操作记录表写入开始时间/人员/设备]
E --> F[加工过程]
F --> G{是否异常?}
G -- 是 --> H[直接报异常]
H --> I[AbnormalControl 异常管控]
I --> F
F --> J[结束报工]
J --> K[写入 YL_加工中心_操作记录表]
K --> L[更新完成数量/工时/任务状态]
L --> M{是否需要质检?}
M -- 是 --> N[进入质检任务/序检/首检/终检]
M -- 否 --> O[进入下序或完成]
O --> P{是否入库/转序/外协?}
P -- 转序 --> A
P -- 入库 --> Q[入库/库存任务]
P -- 外协 --> R[外协流程]
```
涉及对象:
- `YL_加工中心_操作记录表`
- `MES_接口_生产计划_生产任务`
- `View_生产订单_MES`
- `ProductionManagement/MachiningCenter`
新增需求影响:
- 编程任务完成状态可能成为开工前置条件。
- 设备采集工时、程序工时、人工报工工时需要区分。
- 条码拣配会影响齐套、发料、可开工状态。
## 8. 装配中心执行流程
```mermaid
flowchart TD
A[已排产装配任务] --> B[AssemblyCenter 装配中心]
B --> C[查询 SAP/MES 订单、物料、发料、齐套]
C --> D{发料/齐套是否满足?}
D -- 否 --> E[缺件/待发料/不可开工]
E --> F[缺件明细/预计可执行时间]
D -- 是 --> G[开始装配]
G --> H[装配报工/工时记录]
H --> I{是否产生异常?}
I -- 是 --> J[直接报异常 -> AbnormalControl]
I -- 否 --> K[继续装配]
K --> L[装配完成/更新任务状态]
L --> M{是否需要送检?}
M -- 是 --> N[送检/质检任务]
M -- 否 --> O[入库/发货/后续确认]
L --> P[手续确认报表]
P --> Q{手续确认完成?}
Q -- 否 --> R[待办保留]
Q -- 是 --> S[从待办消失]
O --> T[装配看板/生产任务看板]
```
关键新增字段:
- 发料齐套时间
- 装配完成时间
- 送检状态/送检时间
- 手续确认、确认人、确认时间
- 当前对应人员/当前对应内容
## 9. 质检业务流程
```mermaid
flowchart TD
A[质检任务来源] --> A1[机加报工后待检]
A --> A2[装配送检]
A --> A3[采购入库检]
A --> A4[序检收检/外协收检]
A --> A5[退库/销售退货/其他入库]
A1 --> B[QualityCenter/CheckTask]
A2 --> B
A3 --> B
A4 --> B
A5 --> B
B --> C[录入检验结果]
C --> D{合格?}
D -- 是 --> E[合格数量/质检完成]
D -- 否 --> F[不合格处理 Unqualified]
F --> G{处置方式}
G -- 返工 --> H[回生产/返修]
G -- 报废 --> I[报废记录]
G -- 让步接收 --> J[让步接收字段]
G -- 复检 --> K[生成复检/再次检验]
E --> L{是否 SAP 收货/库存动作?}
L -- 是 --> M[PurchaseDeliveryNotes 或库存任务]
L -- 否 --> N[MES 本地完成]
J --> O[让步接收记录查询页]
E --> P[质检看板/及时检验/生产日报]
```
涉及页面:
- `QualityManagement/QualityCenter`
- `QualityManagement/CheckTask/processReceive`
- `QualityManagement/CheckTask/purchaseIncoming`
- `QualityManagement/CheckTask/final`
- `QualityManagement/Unqualified`
- `QualityManagement/QualityDetails`
新增需求影响:
- 及时检验要以生产完成/报工完成时间为起点。
- 关键工序要从工艺/任务快照读取。
- 让步接收记录页只查询,不应成为维护入口。
## 10. 外协业务流程
```mermaid
flowchart TD
A[生产任务指派对象=外协] --> B[OutsourceMange 外协管理]
B --> C[生成外协任务/采购申请]
C --> D{是否提交 SAP 采购申请?}
D -- 是 --> E[POST /PurchaseRequests]
E --> F{SAP 成功?}
F -- 是 --> G[记录采购请求/单据关系]
F -- 否 --> H[记录失败/重试]
D -- 否 --> I[MES 本地外协任务]
G --> J[外协加工/供应商交付]
I --> J
J --> K[序检收检/外协收货]
K --> L[记录供应商/SAP采购收货单号/指派对象]
L --> M{质检合格?}
M -- 是 --> N[SAP PurchaseDeliveryNotes/入库]
M -- 否 --> O[不合格/返修/让步]
N --> P[外协报表/供应商质量统计]
O --> P
```
涉及页面:
- `ProductionManagement/OutsourceMange`
- `ProductionManagement/OutsourceSheet`
- `ProductionManagement/SaleOutsourceMange`
- `QualityManagement/CheckTask/processReceive`
关键修正:
- 供应商、SAP 采购收货单号、指派对象应在外协/序检收检链路维护,报表只消费这些字段。
## 11. 工时、SAP 工时校验与投料流程
```mermaid
flowchart TD
A[报工/设备采集/质检/装配] --> B[工时来源汇总]
B --> B1[人工报工工时]
B --> B2[设备运行工时]
B --> B3[程序工时]
B --> B4[质检/装配/设计/编程工时]
B1 --> C[Workhours/Timesheet/WorkHoursCheck]
B2 --> C
B3 --> C
B4 --> C
C --> D[工时校验]
D --> E{是否提交 SAP?}
E -- 否 --> F[MES 工时报表/绩效]
E -- 是 --> G[GET /ProductionOrders]
G --> H[匹配 SAP 工序/资源]
H --> I[POST /InventoryGenExits 投料]
H --> J[PATCH /ProductionOrders 更新工序资源/工时]
I --> K{SAP 成功?}
J --> K
K -- 是 --> L[记录提交成功]
K -- 否 --> M[记录失败原因/允许重试]
```
涉及页面:
- `ProductionManagement/WorkHoursCheck`
- `ProductionManagement/WorkhoursEdit`
- `ProductionManagement/Workhours`
- `ProductionManagement/Timesheet`
风险点:
- 程序工时、设备工时、人工工时不是同一口径。
- 上 SAP 的工时要明确是否包含设计、编程、质检、装配、异常。
## 12. 异常管控流程
```mermaid
flowchart TD
A[报工/质检/外协/装配/设计/编程页面] --> B[选择任务]
B --> C[点击报异常]
C --> D[带出任务/订单/工序/人员信息]
D --> E[填写异常类型/说明/附件]
E --> F[选择审批人 多选]
F --> G[保存异常]
G --> H[AbnormalControl 异常管控]
H --> I[审批人待办可见]
I --> J{任一审批人处理?}
J -- 否 --> K[异常未关闭]
J -- 是 --> L[记录实际处理人]
L --> M[异常进入下一状态/关闭]
K --> N[影响任务可操作性/及时开工/看板]
M --> O[任务恢复或结束]
```
关键规则:
- 多审批人不是会签,是多人可见、一人处理。
- 异常需要带业务域、任务、工序、责任部门,否则看板异常数会混淆。
## 13. 生产订单关闭与 SAP 状态同步流程
```mermaid
flowchart TD
A[生产订单关闭 PlannOrderClose] --> B[查询可关闭订单]
B --> C[选择单个或批量订单]
C --> D[二次确认]
D --> E[逐单 PATCH /ProductionOrders]
E --> F{单据关闭成功?}
F -- 是 --> G[记录成功/更新 MES 状态]
F -- 否 --> H[记录失败原因]
H --> I[失败项重试]
G --> J[刷新关闭页]
H --> J
J --> K[影响排产页/生产中心/手续确认/看板]
```
要求:
- 批量关闭不应“一条失败全批失败”,应逐单记录成功/失败。
- 关闭结果要被排产、生产中心、装配看板、手续确认报表识别。
## 14. 看板数据汇总流程
```mermaid
flowchart TD
A[主系统业务数据] --> B[统一视图/存储过程]
C[SAP 同步表/跨库表] --> B
D[设备采集缓存/历史] --> B
E[质检记录/报工记录] --> B
B --> P[生产任务看板]
B --> Q[装配任务看板]
B --> R[质检任务看板]
B --> S[机加设备生产运营看板]
B --> T[TableTV 工位监控]
B --> U[board_view 综合大屏]
P --> P1[齐套率/待排产/未及时开工/加急/未入库]
Q --> Q1[装配任务/发货状态/缺件/异常/缺勤]
R --> R1[未清/及时率/关键工序/当天完成]
S --> S1[设备状态/在制/关键工序/缺勤/OEE]
U --> U1[合同进度/工时/采购/库存/OEE]
```
看板治理规则:
- 看板只展示和钻取,不作为主维护入口。
- SAP 类指标必须有同步时间和同步状态。
- `GETDATE()` 型实时指标如要做日报/历史回看,应补统计日期或日快照。
- `board_view` 中 OEE、采购、库存等占位指标上线前必须接真实数据或隐藏。
## 15. 新增需求与维护入口判断流程
```mermaid
flowchart TD
A[收到新增需求/新增字段] --> B{字段性质是什么?}
B -- 主数据 --> C[找基础维护页: 人员/班次/工位/设备/工序/工艺]
B -- 订单过程数据 --> D[找业务页: 计划/排产/装配/机加/质检]
B -- SAP 同步数据 --> E[找 SAP 同步表/接口/同步时间]
B -- 设备采集数据 --> F[找采集原始表/设备状态历史/任务绑定]
B -- 人工确认 --> G[待办页维护并记录确认人时间]
B -- 计算指标 --> H[统一视图/过程/快照]
C --> I{现有页面能承载?}
D --> I
E --> I
F --> I
G --> I
H --> I
I -- 是 --> J[扩展现有页面/过程]
I -- 否 --> K[新增维护页或业务页]
J --> L[同步菜单/权限/日志/历史策略]
K --> L
L --> M[检查影响看板/报表/SAP/历史数据]
M --> N[开发排期]
```
典型判断:
- 缺勤人员:先确认排班/应到和实到来源;没有维护入口则新增或扩展排班/出勤维护。
- 关键工序:在标准工艺和生产工艺维护,任务下发快照,看板只读取。
- 让步接收:质检中心维护,记录页只查询。
- OEE设备采集、报工、质检、工艺标准工时共同计算不是人工维护字段。
## 16. 端到端生产业务主流程
```mermaid
flowchart TD
A[SAP/MES 生产订单] --> B[工艺准备]
B --> B1[标准工艺]
B1 --> B2[生产工艺]
B2 --> B3[任务工艺快照]
A --> C[计划排产]
C --> C1[机加排产]
C --> C2[装配排产]
C1 --> D[生产执行]
C2 --> E[装配执行]
D --> F[报工/工时/设备采集]
E --> G[装配报工/发料/齐套/送检]
F --> H[质检]
G --> H
H --> I{质量结果}
I -- 合格 --> J[入库/转序/交付]
I -- 不合格 --> K[返工/报废/让步接收/复检]
K --> D
J --> L[工时校验/SAP 投料/订单状态]
L --> M[订单关闭]
M --> N[报表/看板/日报]
D --> O[异常管控]
E --> O
H --> O
O --> N
N --> P[管理层 KPI/现场大屏/追溯查询]
```
这个主流程是后续所有新增需求的评估底图任何新增字段都要判断它落在工艺准备、计划排产、生产执行、质检、入库交付、SAP 回写、看板报表中的哪一环。

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,524 @@
# 新增需求界面原型设计
生成日期2026-05-25
依据文档:`新增需求分析与开发记录_2026-05-23.md`
说明:本文只描述界面原型、字段、按钮、弹窗和交互,不涉及代码修改。
## 一、界面设计总原则
1. 报表页只负责查询、展示、导出、钻取;不把基础字段维护塞进报表页。
2. 待办页可以承担确认动作,例如手续确认、异常处理。
3. 工艺、关键工序、标准工时仍在标准工艺/生产工艺页面维护。
4. 缺勤、班次、人员、工位类数据需要来源于班次/排班/人员工位绑定,不在大屏直接维护。
5. 所有新增页面保留系统现有风格:顶部查询区、右侧操作按钮、下方表格、必要时弹窗明细。
## 二、新增页面总览
| 页面名称 | 页面类型 | 菜单建议 | 是否新增页面 | 是否维护数据 |
|---|---|---|---|---|
| 设计任务报工 | 业务操作页 | 生产管理/报工管理 | 是 | 是 |
| 机加班次产量表 | 报表页 | 报表中心/生产报表 | 是 | 否 |
| 手续确认报表 | 待办确认页 | 报表中心/装配报表 | 是 | 是,确认状态 |
| 及时检验报表 | 催办报表页 | 报表中心/质检报表 | 是 | 否 |
| 及时齐套跟踪结果报表 | 查询 + 部分维护页 | 报表中心/齐套报表 | 是 | 可维护预计可执行时间 |
| 生产日报-送检 | 日报页 | 报表中心/生产日报 | 是或扩展 | 否 |
| 编程任务清单/编程报工 | 业务操作页 | 生产管理/报工管理 | 是 | 是 |
| 让步接收记录 | 查询追溯页 | 质量管理/质量报表 | 是 | 否 |
| 装配已排产需求 | 交付进度页 | 生产管理/装配管理 | 是 | 部分字段可维护 |
| 质检任务早知道 | 预告报表页 | 质量管理/质量报表 | 是 | 否 |
| 及时送检报表 | 催办报表页 | 报表中心/质检报表 | 是或扩展 | 否 |
| 发货通知列表 | SAP 查询页 | 销售/交付报表 | 是 | 否 |
| 工时异常报表 | 异常分析页 | 报表中心/工时报表 | 是或扩展 | 可增加异常确认 |
## 三、页面原型
### 1. 设计任务报工
定位MES 自建设计任务和设计工时,不关联生产订单,不上传 SAP。
```text
┌────────────────────────────────────────────────────────────────────┐
│ 设计任务报工 │
├────────────────────────────────────────────────────────────────────┤
│ 查询区 │
│ 任务名称 [________] 设计人员 [____] 状态 [全部▼] 日期 [____至____] │
│ [查询] [重置] [新增设计任务] │
├────────────────────────────────────────────────────────────────────┤
│ 任务列表 │
│ □ 任务编号 | 任务名称 | 设计人员 | 状态 | 开始时间 | 结束时间 | 工时 │
│ | 工作内容 | 结束说明 | 创建人 | 创建时间 | 操作 │
│ ------------------------------------------------------------------ │
│ 操作:[开始报工] [结束报工] [工时记录] [编辑] [删除] │
└────────────────────────────────────────────────────────────────────┘
```
弹窗:
| 弹窗 | 字段/按钮 |
|---|---|
| 新增设计任务 | 任务名称、设计人员、计划开始、计划完成、任务说明、保存、取消 |
| 开始报工 | 任务信息只读、开始时间默认当前、工作内容、确认开始 |
| 结束报工 | 任务信息只读、结束时间默认当前、结束说明、确认结束 |
| 工时记录 | 开始时间、结束时间、工时、工作内容、操作人 |
状态:
- 未开始
- 进行中
- 已完成
- 已取消
### 2. 机加班次产量表
定位:报表页,查看每天每台设备每班次干了什么活。
```text
┌────────────────────────────────────────────────────────────────────┐
│ 机加班次产量表 │
├────────────────────────────────────────────────────────────────────┤
│ 日期 [____至____] 班次 [全部▼] 设备 [全部▼] 操作人 [____] │
│ [查询] [重置] [导出] │
├────────────────────────────────────────────────────────────────────┤
│ 汇总卡:设备数 班次数 总数量 总工时 │
├────────────────────────────────────────────────────────────────────┤
│ 分组表 │
│ ▶ 设备CNC-01 合计数量 合计工时 │
│ ▶ 日期2026-05-25 班次:白班 小计数量 小计工时 │
│ 生产订单 | 物料编码 | 物料名称 | 工序 | 开始 | 结束 | 工时 | 数量 | 操作人 │
└────────────────────────────────────────────────────────────────────┘
```
字段:
- 设备名称
- 日期
- 班次
- 生产订单
- 物料编码
- 物料名称
- 工序名称
- 开始时间
- 结束时间
- 工时
- 数量
- 操作人
说明:
- 班次规则来自班次管理。
- 该页面不维护班次,只读取班次和报工记录。
### 3. 手续确认报表
定位:装配、电气发料齐套后的待办确认页。
```text
┌────────────────────────────────────────────────────────────────────┐
│ 手续确认报表 │
├────────────────────────────────────────────────────────────────────┤
│ 生产订单 [____] 合同号 [____] 物料 [____] 指派对象 [全部▼] │
│ 发料齐套日期 [____至____] 手续确认 [未完成▼] │
│ [查询] [重置] [导出] [批量确认完成] │
├────────────────────────────────────────────────────────────────────┤
│ □ 生产订单 | 合同号 | 物料编码 | 物料名称 | 指派对象 | 发料齐套时间 │
│ 装配完成时间 | 当前状态 | 手续确认 | 确认人 | 确认时间 | 操作 │
│ ------------------------------------------------------------------ │
│ 操作:[确认完成] [查看装配明细] [查看异常] │
└────────────────────────────────────────────────────────────────────┘
```
消失条件:
- 手续确认 = 已完成
- 生产订单取消
- 生产订单关闭
- 整单已入库
确认弹窗:
- 生产订单
- 物料名称
- 当前发料齐套时间
- 确认备注
- 确认完成
- 取消
### 4. 及时检验报表
定位:生产报工完成超过 2 天仍未检验的催办报表。
```text
┌────────────────────────────────────────────────────────────────────┐
│ 及时检验报表 │
├────────────────────────────────────────────────────────────────────┤
│ 生产订单 [____] 物料 [____] 工序 [全部▼] 指派对象 [全部▼] │
│ 报工结束日期 [____至____] 超期天数 [>= 2] │
│ [查询] [重置] [导出] │
├────────────────────────────────────────────────────────────────────┤
│ 生产订单 | 物料编码 | 物料名称 | 工序 | 指派对象 | 报工数量 │
│ 已检数量 | 未检数量 | 报工结束时间 | 超期天数 | 责任人 | 操作 │
│ ------------------------------------------------------------------ │
│ 操作:[查看报工] [查看质检记录] [生成催办] │
└────────────────────────────────────────────────────────────────────┘
```
字段:
- 生产订单
- 物料编码
- 物料名称
- 工序名称
- 指派对象
- 报工数量
- 已检数量
- 未检数量
- 报工结束时间
- 超期天数
### 5. 及时齐套跟踪结果报表
定位:主订单齐套跟踪,支持展开查看 SAP 缺件明细。
```text
┌────────────────────────────────────────────────────────────────────┐
│ 及时齐套跟踪结果报表 │
├────────────────────────────────────────────────────────────────────┤
│ 主生产订单 [____] 合同号 [____] 物料 [____] 齐套状态 [全部▼] │
│ 预计可执行时间 [____至____] SAP同步时间 [____至____] │
│ [查询] [重置] [导出] │
├────────────────────────────────────────────────────────────────────┤
│ ▶ 主生产订单 | 合同号 | 物料编码 | 物料名称 | 计划数量 | 齐套状态 │
│ 缺件数 | 当前进度 | 预计可执行时间 | SAP同步时间 | 操作 │
│ ------------------------------------------------------------------ │
│ 展开明细: │
│ 缺料物料 | 名称 | 缺件数量 | 属性 | 对应单据号 | 当前进度 │
│ 全序展示 | 单条预计完成时间 | 预计可执行时间 | 操作 │
└────────────────────────────────────────────────────────────────────┘
```
可维护字段:
- 预计可执行时间
- 预计可执行说明
- 主订单与缺料子订单人工绑定关系
弹窗:
- 编辑预计可执行时间
- 查看 SAP 缺件明细
- 主子订单关系维护
### 6. 生产日报-送检
定位:机加/装配送检日报,建议一个页面两个页签。
```text
┌────────────────────────────────────────────────────────────────────┐
│ 生产日报-送检 │
├────────────────────────────────────────────────────────────────────┤
│ 页签:[机加送检日报] [装配送检日报] │
├────────────────────────────────────────────────────────────────────┤
│ 日期 [____] 部门 [全部▼] 生产订单 [____] 物料 [____] │
│ [查询] [重置] [导出日报] │
├────────────────────────────────────────────────────────────────────┤
│ 日汇总:送检数量 已检数量 合格数量 不合格数量 未检数量 │
├────────────────────────────────────────────────────────────────────┤
│ 日期 | 部门 | 生产订单 | 物料编码 | 物料名称 | 工序 | 送检数量 │
│ 已检数量 | 合格数量 | 不合格数量 | 送检时间 | 检验时间 | 状态 │
└────────────────────────────────────────────────────────────────────┘
```
说明:
- 部门归属规则需确认。
- 该页面不维护送检和检验结果。
### 7. 编程任务清单 / 编程报工
定位:编程任务和编程工时管理。
```text
┌────────────────────────────────────────────────────────────────────┐
│ 编程任务清单 │
├────────────────────────────────────────────────────────────────────┤
│ 设备 [全部▼] 工位 [全部▼] 程序员 [____] 状态 [全部▼] │
│ 生产订单 [____] 日期 [____至____] │
│ [查询] [重置] [新增编程任务] [导出] │
├────────────────────────────────────────────────────────────────────┤
│ 任务编号 | 生产订单 | 物料编码 | 物料名称 | 工序 | 设备/工位 │
│ 程序号 | 编程人员 | 状态 | 开始时间 | 结束时间 | 工时 | 操作 │
│ ------------------------------------------------------------------ │
│ 操作:[开始编程] [结束编程] [编辑程序号] [工时记录] [报异常] │
└────────────────────────────────────────────────────────────────────┘
```
弹窗:
- 新增编程任务
- 开始编程
- 结束编程
- 工时记录
- 程序号维护
状态:
- 未开始
- 编程中
- 已完成
- 已取消
- 异常中
### 8. 让步接收记录
定位:查询质检记录中让步接收字段不为空的数据。
```text
┌────────────────────────────────────────────────────────────────────┐
│ 让步接收记录 │
├────────────────────────────────────────────────────────────────────┤
│ 生产订单 [____] 物料 [____] 检验人 [____] 检验日期 [____至____] │
│ 让步接收类型 [全部▼] │
│ [查询] [重置] [导出] │
├────────────────────────────────────────────────────────────────────┤
│ 生产订单 | 物料编码 | 物料名称 | 工序 | 检验数量 | 不合格数量 │
│ 让步接收 | 检验人 | 检验时间 | 处置说明 | 操作 │
│ ------------------------------------------------------------------ │
│ 操作:[查看质检记录] [查看不合格处置] │
└────────────────────────────────────────────────────────────────────┘
```
说明:
- 页面只查询,不维护让步接收。
- 让步接收仍在质检中心或不合格处置维护。
### 9. 装配已排产需求
定位:装配交付进度中心,整合 SAP 字段、MES 报工、工时、异常、齐套和日计划。
```text
┌────────────────────────────────────────────────────────────────────┐
│ 装配已排产需求 │
├────────────────────────────────────────────────────────────────────┤
│ 系统分类 [全部▼] 合同号 [____] 生产订单 [____] 物料 [____] │
│ 发料齐套时间 [____至____] 装配完成时间 [____至____] 状态 [全部▼] │
│ [查询] [重置] [导出] [批量维护] │
├────────────────────────────────────────────────────────────────────┤
│ 生产订单 | 合同号 | 物料编码 | 物料名称 | 系统/非系统 | 派工时间 │
│ 合同交货期 | 发料齐套时间 | 装配完成时间 | 当前人员 | 当前内容 │
│ 累计工时 | 异常数 | 钣金预达 | 钣金到达 | 泵预达 | 泵到达 | 备注 | 操作 │
│ ------------------------------------------------------------------ │
│ 操作:[查看工时] [查看异常] [查看缺件] [维护字段] [生成日计划] │
└────────────────────────────────────────────────────────────────────┘
```
字段分组:
- SAP 字段:派工时间、合同交货期
- MES 计算字段:装配完成时间、累计工时、异常数
- 手工维护字段:钣金预达、钣金到达、泵预达、泵到达、备注、当前对应内容
弹窗:
- 工时明细
- 异常明细
- 缺件明细
- 手工字段维护
- 日计划预览
### 10. 质检任务早知道
定位:根据装配已排产需求预测即将进入质检的任务。
```text
┌────────────────────────────────────────────────────────────────────┐
│ 质检任务早知道 │
├────────────────────────────────────────────────────────────────────┤
│ 装配完成时间 [____至____] 合同号 [____] 生产订单 [____] │
│ 物料 [____] 状态 [待质检▼] │
│ [查询] [重置] [导出] │
├────────────────────────────────────────────────────────────────────┤
│ 预计质检日期 | 生产订单 | 合同号 | 物料编码 | 物料名称 | 装配完成时间 │
│ 当前人员 | 当前内容 | 累计工时 | 异常状态 | 质检状态 | 操作 │
│ ------------------------------------------------------------------ │
│ 操作:[查看装配进度] [查看异常] [查看质检记录] │
└────────────────────────────────────────────────────────────────────┘
```
说明:
- 强依赖装配已排产需求。
- 不直接维护质检结果。
### 11. 及时送检报表
定位:发料齐套后超过规则时间未送检的任务催办。
```text
┌────────────────────────────────────────────────────────────────────┐
│ 及时送检报表 │
├────────────────────────────────────────────────────────────────────┤
│ 生产订单 [____] 合同号 [____] 物料 [____] 指派对象 [全部▼] │
│ 发料齐套时间 [____至____] 送检状态 [未送检▼] 超期天数 [>= 2] │
│ [查询] [重置] [导出] │
├────────────────────────────────────────────────────────────────────┤
│ 生产订单 | 合同号 | 物料编码 | 物料名称 | 指派对象 | 发料齐套时间 │
│ 是否送检 | 送检时间 | 超期天数 | 加急 | 当前状态 | 操作 │
│ ------------------------------------------------------------------ │
│ 操作:[查看装配任务] [查看质检任务] [生成催办] │
└────────────────────────────────────────────────────────────────────┘
```
### 12. 发货通知列表
定位SAP 已提供数据,大屏已展示,新增普通报表查询页。
```text
┌────────────────────────────────────────────────────────────────────┐
│ 发货通知列表 │
├────────────────────────────────────────────────────────────────────┤
│ 发货通知号 [____] 合同号 [____] 客户 [____] 状态 [全部▼] │
│ 要求发货日期 [____至____] SAP同步时间 [____至____] │
│ [查询] [重置] [导出] │
├────────────────────────────────────────────────────────────────────┤
│ 发货通知号 | 合同号 | 客户 | 物料编码 | 物料名称 | 数量 │
│ 要求发货日期 | 发货状态 | SAP同步时间 | 备注 | 操作 │
│ ------------------------------------------------------------------ │
│ 操作:[查看明细] [查看关联生产订单] │
└────────────────────────────────────────────────────────────────────┘
```
说明:
- 默认只读 SAP 或 SAP 同步表。
- 如需 MES 备注,建议单独建本地备注扩展字段。
### 13. 工时异常报表
定位:单件实际工时大于标准单件工时的异常分析。
```text
┌────────────────────────────────────────────────────────────────────┐
│ 工时异常报表 │
├────────────────────────────────────────────────────────────────────┤
│ 日期 [____至____] 设备 [全部▼] 工位 [全部▼] 操作人 [____] │
│ 物料 [____] 工序 [全部▼] 超出比例 [>=____%] 状态 [全部▼] │
│ [查询] [重置] [导出] │
├────────────────────────────────────────────────────────────────────┤
│ 设备/工位 | 生产订单 | 物料编码 | 物料名称 | 工序 | 操作人 │
│ 标准单件工时 | 实际单件工时 | 超出时长 | 超出比例 | 班次 | 状态 | 操作 │
│ ------------------------------------------------------------------ │
│ 操作:[查看工时明细] [确认异常] [填写原因] │
└────────────────────────────────────────────────────────────────────┘
```
异常确认弹窗:
- 异常原因
- 责任部门
- 处理说明
- 确认人
- 确认时间
## 四、现有页面改造界面说明
### 1. 机加件已排产页面
改造点:
- `计划开始时间` 改为单日期选择。
- `计划完成时间` 改为单日期选择。
- 表格增加 `总工时` 列。
- 点击总工时打开历史工时明细弹窗。
```text
查询区:计划开始日期 [____] 计划完成日期 [____]
表格列:... | 总工时 | 操作
总工时点击弹窗:设备 -> 日期 -> 任务明细
```
### 2. 生产计划跟踪
改造点:
- 当前序展示完整工艺路线。
- 工序按状态变色。
- 增加标准工时、订单状态。
```text
工艺路线:打磨(张三) -> 淬火(外协) -> 精磨(李四)
状态颜色:进行中高亮、已完成置灰、待加工普通色、异常红色
```
### 3. 序检收检/外协任务检验
改造点:
- 增加指派对象。
- 增加供应商。
- 增加 SAP 采购收货单号。
建议在检验记录表格和检验详情弹窗中同时展示。
### 4. 生产订单关闭
改造点:
- 表格增加多选。
- 增加 `批量关闭 SAP 订单` 按钮。
- 增加批量关闭结果弹窗。
结果弹窗字段:
- 生产订单
- SAP 单据号
- 执行结果
- 失败原因
- 是否可重试
### 5. 生产工艺
改造点:
- 点击编辑时,若无生产工艺,弹窗提示“未找到生产工艺,是否带出标准工艺作为草稿?”
- 带出后不自动保存。
- 保存后才写入生产工艺。
### 6. 异常管控 + 全部报工页面
改造点:
- 所有报工页面增加 `报异常` 按钮。
- 选中任务后打开统一异常弹窗。
- 异常弹窗支持多选审批人。
异常弹窗字段:
- 异常类型
- 异常说明
- 附件
- 审批人,多选
- 关联订单/任务/工序,只读
### 7. 及时开工报表
改造点:
- 指派对象查询增加模式选择。
```text
指派对象 [多选] 查询模式 [包含▼ / 排除▼]
```
### 8. 工时报表
改造点:
- 增加指派对象字段。
- 后续支持工时类型和来源模块。
### 9. 领料/退库/外协报表小字段
| 页面 | 界面改造 |
|---|---|
| 生产领料(机加) | 增加备注输入/备注列 |
| 生产退库(机加) | 增加备注输入/备注列 |
| 生产退库(装配) | 增加备注输入/备注列 |
| 外协任务报表(采购) | 增加采购到货期说明列 |
| 工序流转卡 | 打印模板增加原料编码 |
| 制定标准工艺 | 保存成功/失败提示明确化 |
## 五、优先原型顺序
| 优先级 | 页面 |
|---|---|
| P0 | 手续确认报表、及时检验报表、发货通知列表、生产订单关闭批量 SAP |
| P0 | 生产工艺自动带出标准工艺、异常管控直接报异常 |
| P1 | 装配已排产需求、及时齐套跟踪结果报表、质检任务早知道 |
| P1 | 设计任务报工、编程任务清单/编程报工 |
| P1 | 机加班次产量表、生产日报-送检、及时送检报表 |
| P2 | 工时异常报表、OEE/设备采集相关界面、现场大屏缺勤/关键工序 |
## 六、客户确认清单
1. 新增页面菜单位置是否按本文建议放置。
2. 手续确认、预计可执行时间、装配已排产需求中的手工字段是否允许页面维护。
3. 设计任务、编程任务是否需要审批或只做报工。
4. 缺勤人员是否已有排班/考勤来源。
5. 关键工序是否确认在标准工艺和生产工艺维护。
6. 及时检验、及时送检的超期天数是否统一为 2 天。
7. 发货通知列表是否只读 SAP 数据,是否需要 MES 备注。
8. 工时异常是否需要确认闭环,还是只做查询。

View File

@@ -0,0 +1,419 @@
# 问题修复方案与今日沟通规划
> **日期**: 2026-05-21
> **版本**: v1.0
> **目标**: 将23个问题转化为可执行的修复方案明确责任人、工期和沟通计划
---
## 一、问题优先级总览
```
🔴 Critical (今日必须启动): 5个 — 安全漏洞、数据泄露
🟠 High (本周内完成): 5个 — 功能Bug、权限失效
🟡 Medium (本月计划): 6个 — 可维护性、稳定性
🟢 Low (持续优化): 7个 — 代码质量、最佳实践
────────────────────────────────────────────
总计: 23个
```
---
## 二、🔴 Critical — 今日立即处理
### 问题 1SQL 注入漏洞60+ 存储过程)
| 项目 | 内容 |
|------|------|
| **风险等级** | 🔴 极高 — 攻击者可构造恶意输入窃取/篡改数据库 |
| **影响范围** | script.sql 中所有 `sp_executesql` + 字符串拼接的 SP |
| **核心原因** | 用户输入直接 `+` 拼接到 SQL未使用参数化 |
**受影响的存储过程(高频调用类)**:
| 存储过程 | 用途 | 调用频率 |
|------|------|:---:|
| `MES_OrderPlanned_Query` | 排产查询 | 高 |
| `MES_OrderPlanned_Queryzp` | 装配排产查询 | 高 |
| `MES_ProductCenter_GetTask` | 机加任务查询 | **极高** |
| `MES_ProductCenter_GetTask_zp` | 装配任务查询 | **极高** |
| `MES_ProductAdmin_Query` | 订单查询 | 高 |
| `MES_ProductAdmin_GetRptRecords` | 报工记录查询 | 高 |
| `MES_QulityInspection_GetTask` | 质检任务查询 | 高 |
| `MES_QulityInspection_CheckRecord_Query` | 质检记录查询 | 高 |
| `MES_QulityInspection_FirstCheckRecords` | 首检记录查询 | 中 |
| `MES_QulityInspection_MeasuringTool` | 量具查询 | 低 |
| `MES_ProductCenter_OptRecords` | 操作记录查询 | 中 |
**修复方案**
```sql
-- ❌ 修复前(字符串拼接)
if(@<>'') set @selectStrWhere = @selectStrWhere
+ ' and [合同号] like ''%' + @ + '%'''
EXEC sp_executesql @selectStr
-- ✅ 修复后(参数化查询)
if(@<>'') set @selectStrWhere = @selectStrWhere
+ ' and [合同号] like ''%'' + @合同号 + ''%'''
-- 传入参数定义
EXEC sp_executesql @selectStr,
N'@合同号 nvarchar(50), @订单号 int, ...',
@=@, @=@, ...
```
**执行计划**
| 步骤 | 内容 | 工时 |
|:---:|------|:---:|
| 1 | 按调用频率排序,先修复 **高频 SP**GetTask/Query 类) | 1天 |
| 2 | 修复中等频率 SPCheckRecord/FirstCheck 类) | 0.5天 |
| 3 | 修复低频率 SPMeasuringTool/OptRecords 类) | 0.5天 |
| 4 | 逐条测试验证 | 0.5天 |
| 5 | 上线部署 | 0.5天 |
> 📅 **建议**: 先创建一个统一的参数化模板,后续新增 SP 必须遵循。
---
### 问题 2明文密码存储于 Cookie
| 项目 | 内容 |
|------|------|
| **风险等级** | 🔴 高 — XSS 可窃取密码,同一密码可能用于其他系统 |
| **位置** | `src/views/login/index.vue` line 243-246 |
| **核心原因** | `Cookie.set('password', password, { expires: 7 })` 明文存7天 |
**修复方案**
```javascript
// ❌ 修复前
setCookie(username, password, checked) {
Cookie.set('username', username, { expires: 7 })
Cookie.set('password', password, { expires: 7 }) // 明文
Cookie.set('checked', checked, { expires: 7 })
}
// ✅ 修复后 — 方案A去掉密码存储只记住用户名
setCookie(username, password, checked) {
Cookie.set('username', username, { expires: 7 })
// 不再存储密码
Cookie.set('rememberUser', checked ? '1' : '0', { expires: 7 })
}
getCookie() {
this.loginForm.username = Cookie.get('username') || ''
this.loginForm.password = '' // 永不清空密码框
this.loginForm.checked = Cookie.get('rememberUser') === '1'
}
// ✅ 修复后 — 方案B如需自动登录存 Token 代替密码
// 登录成功后,后端返回 refreshToken 存入 httpOnly Cookie
```
| 步骤 | 内容 | 工时 |
|:---:|------|:---:|
| 1 | 修改 `setCookie()` 去掉密码存储 | 15分钟 |
| 2 | 修改 `getCookie()` 只回填用户名 | 10分钟 |
| 3 | 修改 `clearCookie()` 同步更新 | 5分钟 |
| 4 | 测试登录流程 | 10分钟 |
---
### 问题 3Axios 已知 CVE
| 项目 | 内容 |
|------|------|
| **风险等级** | 🔴 中 — CVE-2021-3749 ReDoS |
| **位置** | `package.json``"axios": "^0.21.4"` |
| **目标版本** | `"axios": "^1.7.2"` (最新稳定版) |
**修复方案**
```bash
# 升级 axios
npm install axios@^1.7.2
# 注意axios 1.x 有 Breaking Changes
# 1. 取消请求 API 从 CancelToken 改为 AbortController
# 2. headers 配置格式略有变化
# 3. 需要检查项目中的 axios 用法是否兼容
```
| 步骤 | 内容 | 工时 |
|:---:|------|:---:|
| 1 | 执行 `npm install axios@^1.7.2` | 5分钟 |
| 2 | 检查 `src/utils/request.js` 兼容性 | 15分钟 |
| 3 | 检查所有 API 调用是否正常 | 15分钟 |
| 4 | 回归测试 | 15分钟 |
---
### 问题 4开发代理 HTTPS 证书绕过 + 死代码
| 项目 | 内容 |
|------|------|
| **风险等级** | 🔴 低(仅开发环境) |
| **位置** | `config/index.js` line 18-38 |
**修复方案**
```javascript
// ❌ 修复前
proxyTable: {
'/api/b1s': {
target: 'https://192.168.2.90:50000',
secure: false, // 跳过证书验证
},
'/openapi/v1': { // ← 死代码路径
pathRewrite: { '^/api/tm': '/openapi/v1' } // ← 永远不匹配
}
}
// ✅ 修复后
proxyTable: {
'/api/b1s': {
target: 'https://192.168.2.90:50000',
secure: true, // 启用证书验证(生产环境必须)
// 如为自签名证书,配置 ca 字段
// ca: fs.readFileSync('path/to/cert.pem')
},
'/api/tm': { // ← 修正路由
target: 'http://192.168.2.90:8082',
changeOrigin: true,
pathRewrite: { '^/api/tm': '/openapi/v1' } // ← 正确匹配
}
}
```
| 步骤 | 内容 | 工时 |
|:---:|------|:---:|
| 1 | 修正 `/api/tm` 代理路径 | 5分钟 |
| 2 | SAP B1 证书处理联系IT获取证书 | 视情况 |
| 3 | 测试代理是否正常 | 10分钟 |
---
### 问题 5登录密码拼在 URL 参数中
| 项目 | 内容 |
|------|------|
| **位置** | `src/api/login.js` line 13 |
**修复方案**
```javascript
// ❌ 修复前
param: `用户名=${username}&密码=${password}`
// ✅ 修复后 — 将密码放入 JSON body 而非 URL param
data: {
UserID: state.state.user.id,
ModularID: router.currentRoute.path,
type: '1',
name: '菜单模块系统_用户名密码_查询数据',
param: JSON.stringify([
{ name: '用户名', value: username, type: 'string', output: '0' },
{ name: '密码', value: password, type: 'string', output: '0' }
])
}
```
> 💡 注意:这需要后端 `MESCommonBase.ashx` 也支持从 body 中解析参数。如果短期无法改后端,至少对密码做 **Base64 混淆**(非加密但比明文好)。
---
## 三、🟠 High — 本周必须完成
### 问题 6修改密码验证器 Bug复制粘贴错误
**位置**: `src/views/login/index.vue` line 119-130
```javascript
// ❌ 三个 typeof 都检查同一个字段
if (typeof(this.form.againPassword) === 'string' ||
typeof(this.form.againPassword) === 'string' ||
typeof(this.form.againPassword) === 'string')
// ✅ 修复后:移除无意义的验证器
// 这个 validator 逻辑本身就是错误的,应该删除并简化:
rules: {
againPassword: [
{ required: true, message: '请输入确认密码', trigger: 'blur' },
{ validator: (rule, value, callback) => {
if (value !== this.form.newPassword) {
callback(new Error('两次输入密码不一致'))
} else {
callback()
}
}, trigger: 'blur' }
],
Account: [{ required: true, message: '请输入工号', trigger: 'blur' }],
beforPassword: [{ required: true, message: '请输入原密码', trigger: 'blur' }],
newPassword: [{ required: true, message: '请输入新密码', trigger: 'blur' }]
}
```
**工时**: 20分钟
---
### 问题 7Vuex Action 中 `this.$router` undefined
**位置**: `src/store/modules/user.js` line 44-45
```javascript
// ❌ 修复前
this.$router.push({ path: '/login' })
// ✅ 修复后
import router from '@/router'
// ...
router.push({ path: '/login' })
```
**工时**: 5分钟
---
### 问题 8GetInfo 硬编码 admin 角色
**位置**: `src/store/modules/user.js` line 83
```javascript
// ❌ 修复前
commit('SET_ROLES', 'admin')
// ✅ 修复后(使用后端返回的真实角色)
getInfo(state.token).then(response => {
const data = response.data
if (data && data.length > 0) {
commit('SET_ROLES', data[0].Roles_Function || [])
}
resolve(response)
})
```
**工时**: 15分钟
---
### 问题 9登录错误静默吞掉
**位置**: `src/views/login/index.vue` line 198-200
```javascript
// ❌ 修复前
}).catch(() => {
this.loading = false
})
// ✅ 修复后
}).catch((error) => {
this.loading = false
this.$message.error('登录失败:' + (error.message || '网络异常,请联系管理员'))
})
```
**工时**: 5分钟
---
### 问题 10DevServer 强制 HTTPS 无证书
**位置**: `build/webpack.dev.conf.js` line 31
```javascript
// 方案A本地开发关闭 HTTPS
devServer: {
https: false, // 本地开发无需HTTPS
}
// 方案B配置自签名证书如需测试HTTPS
devServer: {
https: {
cert: fs.readFileSync('path/to/localhost.crt'),
key: fs.readFileSync('path/to/localhost.key')
}
}
```
**工时**: 10分钟
---
## 四、今日沟通规划
### 4.1 上午 (9:00 - 12:00) — 问题确认与方案评审
| 时间 | 主题 | 参与人 | 目标 |
|------|------|------|------|
| 9:00-9:30 | **安全漏洞通报**SQL注入/明文密码/Axios CVE | 技术负责人 + DBA | 确认修复优先级,授权立即启动 |
| 9:30-10:00 | **SQL注入修复方案评审** | DBA + 后端开发 | 确定参数化模板,分工修复 |
| 10:00-10:30 | **前端安全问题修复方案**Cookie密码/密码URL传参/GetInfo admin | 前端开发 | 分配任务,确定代码改动范围 |
| 10:30-11:00 | **生产环境配置审查**HTTPS证书/SourceMap/代理) | 运维 + 开发 | 审查 config/index.js 和 build 配置 |
| 11:00-12:00 | **开始修复 Critical 问题** | 开发团队 | 实际编码 |
### 4.2 下午 (13:30 - 17:30) — 修复执行与验证
| 时间 | 主题 | 参与人 | 目标 |
|------|------|------|------|
| 13:30-15:00 | **SQL注入修复第1批高频SP** | DBA | 完成 GetTask/Query 类 SP 改造 |
| 13:30-14:30 | **前端安全问题修复** | 前端开发 | 完成问题2/3/5/7/8/9 |
| 14:30-15:00 | **Webpack/构建配置修复** | 前端开发 | 完成问题4/10 |
| 15:00-16:00 | **集成测试** | 全体 | 验证修复后功能正常 |
| 16:00-16:30 | **修复 verifyValue 验证器 Bug** | 前端开发 | 完成问题6 |
| 16:30-17:00 | **代码 Review + 提交** | 技术负责人 | 审查所有改动,提交 Git |
| 17:00-17:30 | **今日总结 + 明日计划** | 全体 | 回顾进展,规划明天 Medium 问题 |
### 4.3 沟通要点
| 议题 | 需要确认 | 决策人 |
|------|------|:---:|
| SQL注入修复范围 | 是否全部SP都要改还是先改高频 | 技术负责人 |
| Axios 升级风险 | 1.x Breaking Changes 是否影响现有功能? | 前端开发 |
| Cookie 密码 | 去掉后用户每次都要输入密码,接受吗? | 项目负责人 |
| 后端支持 JSON body | `MESCommonBase.ashx` 能否改造成接收JSON | 后端开发 |
| 数据库日志263GB | 是否可以切 SIMPLE 恢复模式? | DBA |
---
## 五、修复进度跟踪表
| # | 问题 | 优先级 | 状态 | 负责人 | 预计工时 |
|:--:|------|:--:|:--:|------|:--:|
| 1 | SQL注入 (高频SP) | 🔴 | ⬜ 待开始 | DBA | 3天 |
| 2 | 明文密码Cookie | 🔴 | ⬜ 待开始 | 前端 | 0.5h |
| 3 | Axios CVE升级 | 🔴 | ⬜ 待开始 | 前端 | 1h |
| 4 | 代理配置修正 | 🔴 | ⬜ 待开始 | 前端 | 0.5h |
| 5 | 密码URL传参 | 🔴 | ⬜ 待开始 | 前端+后端 | 2h |
| 6 | validateValue Bug | 🟠 | ⬜ 待开始 | 前端 | 0.5h |
| 7 | this.$router undefined | 🟠 | ⬜ 待开始 | 前端 | 0.2h |
| 8 | GetInfo admin硬编码 | 🟠 | ⬜ 待开始 | 前端 | 0.3h |
| 9 | 登录错误静默 | 🟠 | ⬜ 待开始 | 前端 | 0.2h |
| 10 | DevServer HTTPS | 🟠 | ⬜ 待开始 | 前端 | 0.2h |
| 11 | 外协报表供应商Bug | 🟠 | ✅ 已完成 | DBA | 已修复 |
| 12 | SourceMap泄露 | 🟡 | ⬜ 待开始 | 前端 | 0.2h |
| 13 | TRUNCATE风险 | 🟡 | ⬜ 待开始 | DBA | 1h |
| 14 | 日志263GB | 🟡 | ⬜ 待开始 | DBA | 2h |
| 15 | 无用依赖install | 🟡 | ⬜ 待开始 | 前端 | 0.2h |
| 16 | ESLint规则 | 🟡 | ⬜ 待开始 | 前端 | 1h |
| 17 | Vue 2 EOL | 🟢 | ⬜ 规划中 | 架构 | 长期 |
| 18-23 | 其他低优先级 | 🟢 | ⬜ 待排期 | 团队 | 碎片时间 |
---
## 六、今日预计产出
| 产出物 | 形式 | 说明 |
|------|------|------|
| ✅ SQL注入修复高频SP | `fix_sql_injection_batch1.sql` | 10个高频 SP 参数化改造 |
| ✅ 前端安全修复 | Git commit | 问题2/7/8/9 代码修改 |
| ✅ 构建配置修正 | Git commit | 问题4/10 配置修改 |
| ✅ Axios 升级 | `package.json` | 升级到 1.7.x |
| ✅ Git 提交记录 | Git log | 所有修改的提交历史 |
| 📋 明日计划 | 本文档更新 | Medium 问题修复安排 |
---
> 📅 文档日期: 2026-05-21
> 🔄 更新频率: 每日更新进度状态

View File

@@ -0,0 +1,860 @@
# MES_Manage_View_V20 新增需求后的整体影响与隐性需求综合分析
生成日期2026-05-25
分析依据:
- `新增需求分析与开发记录_2026-05-23.md`
- `今日工作汇报_2026-05-23.txt`
- `需求分析_自制件与工位汇总表.md`
- `MES_Manage_View_V20_src_views_逐页面详细分析.md`
## 一、分析视角调整
本文不单纯从“客户后续可能要什么”出发,而是从系统整体出发,分析这些新增需求如果逐步落地,会对现有 MES 产生什么连锁影响:
1. 会新增哪些业务数据。
2. 会改变哪些原有统计口径。
3. 会冲击哪些已完成页面、报表、看板。
4. 会让哪些现有字段含义变得不够用。
5. 会产生哪些必须补做的隐性能力。
6. 客户基于新数据和新功能,后续还可能继续提出什么。
核心判断:
这些需求不是孤立新增页面。它们会把系统从“生产任务执行系统”推向“生产进度、质量、工时、齐套、异常、SAP 状态一体化追踪系统”。一旦新增字段、报表、SAP 回写、设计/编程报工、装配已排产需求进入系统,很多已完成页面也要重新解释和调整。
## 二、总体连锁影响
| 新增能力 | 直接新增数据 | 产生的问题 | 隐性需求 | 已完成页面/报表是否需要改 |
|---|---|---|---|---|
| 设计任务报工 | 设计任务、设计工时、工作内容、开始/结束时间 | 原有工时只覆盖生产/质检/装配,合同总工时会漏设计 | 工时分类、合同工时汇总、设计任务权限、设计工时报表 | 装配已排产需求、工时报表、合同进度、日报需要纳入设计工时 |
| 编程任务清单/编程报工 | 编程任务、编程工时、设备/工位、人员、说明 | 编程是否影响生产任务可开工不明确 | 编程完成状态、编程工时独立统计、任务前置条件 | 机加中心、生产计划跟踪、工时报表、及时开工可能需要增加编程状态 |
| 装配已排产需求 | 发料齐套时间、装配完成时间、SAP 派工时间、合同交货期、钣金/泵、当前人员、累计工时、异常 | 原装配排产页只管排产,新页面会变成交付进度中心 | 装配进度模型、日计划、合同进度、异常汇总、手工字段维护历史 | `InstallMakePlan``AssemblyCenter`、生产任务看板、质检任务早知道、日报都要联动 |
| 历史工时查询 | 任务总工时、设备/日期分组明细 | 原列表只显示任务状态,新总工时会引出明细追溯 | 汇总到明细钻取、工时来源标识、重复报工处理 | `SelfMakePlandone`、工时查询、班次产量表、合同工时汇总要统一口径 |
| 机加班次产量表 | 班次、设备、日期、任务、数量、工时 | 原工时和产量按任务查,现在要按班次归属 | 班次日历、跨天班次规则、设备日合计、人员归属 | 设备看板、工位汇总表、工时报表、生产日报需要统一班次口径 |
| 外协检验字段增强 | 指派对象、供应商、SAP 采购收货单号 | 原质检记录只到工序,供应商/单据链不完整 | 供应商合格率、SAP 单据追溯、外协质检报表 | 外协报表、质检记录、供应商统计、序检收检页面需要补字段 |
| 手续确认报表 | 手续确认状态、确认人、确认时间 | 原任务消失规则依赖已入库/关闭,现在又增加人工确认维度 | 待办清单、确认日志、取消/关闭/入库同步规则 | 装配中心、发料齐套列表、生产任务看板、订单关闭后状态需要同步 |
| 及时检验报表 | 报工完成时间、未检数量、超期天数 | 原质检任务是业务操作,新报表要求按时间催办 | 质检责任人、催办、超期规则、已检数量核算 | 质检中心、生产日报、异常提醒、看板需要展示未检/超期 |
| 及时齐套跟踪结果报表 | 主订单与缺料子订单关系、SAP 缺件明细、预计可执行时间 | SAP 实时数据和 MES 落库数据会不一致 | SAP 缓存、展开加载、主子订单关系维护 | 生产任务看板、装配已排产、及时开工、发料齐套报表需要统一缺件状态 |
| 生产日报-送检 | 送检、已检、合格、不合格、部门 | 原质检记录按任务查,现在要按部门/日报统计 | 部门归属规则、日报快照、合计口径 | 质检报表、工位汇总、日报、看板需要改统计维度 |
| 生产订单批量关闭 SAP | SAP 关闭结果、失败原因、操作日志 | MES/SAP 状态可能部分成功、重复关闭 | 批量结果表、重试机制、二次确认、权限 | 订单关闭页、排产页、生产中心、手续确认报表都要识别 SAP 关闭 |
| 异常管控入口统一 | 异常关联任务、审批人多选、附件、处理状态 | 原异常页面独立,新增入口后所有报工页都要联动 | 异常状态流转、待办、任务暂停规则、异常统计 | 机加/装配/质检/外协/设计/编程报工页面都要加入口和状态 |
| 生产工艺自动带出标准工艺 | 标准工艺草稿、生产工艺映射 | 原工艺一旦生成就被任务使用,修改会影响历史 | 工艺版本、任务快照、字段映射 | 生产计划跟踪、排产、流转卡、工时报表都要按任务快照而非最新工艺 |
| 发货通知列表 | SAP 发货通知数据、状态、单据号 | 原大屏展示变为报表查询后要支持筛选和追溯 | SAP 数据同步/实时查询、导出、状态解释 | 大屏、销售/生产交付类报表可能要统一发货状态 |
## 三、最主要的问题不是新增页面,而是口径被改变
### 1. 工时口径会被重构
新增需求之前,系统主要工时来源集中在生产执行和质检相关记录,典型对象包括:
- `YL_加工中心_操作记录表`
- `生产管理_工时校验_校验工时表`
- 装配报工记录
- 质检记录或质检报工
新增需求之后,工时会被拆成更多类别:
- 机加工时
- 装配工时
- 质检工时
- 设计工时
- 编程工时
- 设备运行工时
- 程序工时
- 人员工时
- 合同工时
- 预计总工时
- 剩余工时
会产生的问题:
1. 原来“总工时”字段含义不够用了。
- `SelfMakePlandone` 要加总工时。
- 装配已排产需求要显示生产订单累计工时、合同工时汇总。
- 班次产量表要按设备、日期、班次汇总工时。
- 工时报表要加指派对象。
- 如果都叫“总工时”,但来源不一致,页面数字会对不上。
2. 合同进度会和生产任务工时产生冲突。
- 装配已排产需求提出“合同进度 = 累计工时 / 预计总工时”。
- 但累计工时是否包含设计、质检、编程、装配、返工、异常工时,需要明确。
- 如果不明确,合同进度会成为争议字段。
3. 已完成报表需要增加工时分类。
- 原工时报表只要显示工时即可。
- 新增设计/编程后,必须能区分工时类型。
- 否则设计工时可能被误算进生产工时,或者合同总工时漏算。
需要跟着调整的已完成页面/报表:
| 页面/报表 | 需要调整原因 | 建议调整 |
|---|---|---|
| `ProductionManagement/Timesheet` | 作业者工时新增指派对象,后续还会受到设计/编程工时影响 | 增加工时类型、来源模块、指派对象 |
| `ProductionManagement/WorkHoursCheck` | SAP 工时/投料校验与 MES 工时会产生差异 | 显示本次提交、历史提交、SAP 返回结果 |
| `PlanManagement/SelfMakePlandone` | 新增总工时和明细弹窗 | 总工时必须注明来源,仅统计生产报工还是包含质检/异常 |
| `ProductionManagement/AssemblyCenter` | 装配工时要进入装配已排产需求和合同进度 | 输出可复用的装配工时汇总字段 |
| 工位汇总表 | 新增班次、设备、人员、程序工时后口径变化 | 增加班次维度,区分设备工时/人工工时 |
| 自制件汇总表 | 合同工时和订单工时可能要求纳入新工时类型 | 增加工时类型过滤和明细钻取 |
产生的隐性需求:
- 统一工时事实视图或工时汇总表。
- 工时来源字段:生产、装配、质检、设计、编程、设备采集。
- 工时单位统一:秒、分钟、小时。
- 工时快照:报表发布后是否允许历史数据随新规则变化。
- 工时差异解释人工工时、设备工时、SAP 工时不一致时显示差异原因。
客户可能继续要:
- 合同维度工时明细。
- 人员维度工时排名。
- 设备维度利用率。
- 设计/装配/质检工时占比。
- 超预算工时预警。
### 2. 状态口径会被重新拉通
现有系统中已经出现很多状态:
- 排产状态
- 派工状态
- 任务状态
- 加工状态
- 收料状态
- 发料状态
- 质检状态
- 入库状态
- 加急状态
- 外协通知
- SAP 订单状态
- 手续确认状态
- 异常状态
- 编程完成状态
- 设计任务状态
会产生的问题:
1. 一个任务在不同页面可能显示成不同状态。
- 排产页面看 `排产状态``派工状态`
- 生产中心看 `任务状态``加工状态`
- 质检页面看检验记录。
- 手续确认报表看手续确认、入库、关闭。
- SAP 订单关闭后MES 任务可能仍显示未完成。
2. 新增状态会影响原来的“消失条件”。
- 手续确认报表中,已完成、取消、关闭、整单已入库都要消失。
- 质检任务早知道也要排除已入库、关闭、取消任务。
- 及时检验报表要排除已检足数量的任务。
- 如果状态判断不统一,会出现同一任务在 A 页面消失,在 B 页面仍提醒。
3. 异常状态会打断原流程。
- 报异常后是否允许继续报工?
- 异常未关闭时是否允许质检?
- 异常是否影响及时开工/及时检验/齐套报表?
- 这些都不是当前页面能单独决定的。
需要跟着调整的已完成页面/报表:
| 页面/报表 | 受影响点 | 建议调整 |
|---|---|---|
| `AnomalousManagement/PunctualWork` | 及时开工按任务状态筛选,新增异常/编程/齐套后可能影响可执行判断 | 增加异常、编程、齐套条件说明 |
| `PlanManagement/InstallMakePlan` | 排产完成后还要看 SAP 订单状态、发料齐套、装配完成时间 | 查询结果补 SAP/齐套相关状态 |
| `PlanManagement/PlannOrderClose` | 批量关闭 SAP 后MES 页面必须识别关闭结果 | 增加 SAP 关闭状态、失败原因、重试入口 |
| `ProductionManagement/MachiningCenter` | 异常入口、编程完成、设备占用都会影响可开工 | 增加任务不可操作原因 |
| `ProductionManagement/AssemblyCenter` | 装配完成时间、手续确认、异常都会影响任务显示 | 增加装配进度状态 |
| `QualityManagement/QualityCenter` | 已入库/关闭/异常/让步接收会影响质检操作 | 增加质检可操作性判断 |
| 生产任务看板 | 新增齐套、及时检验、手续确认、异常后看板指标会变化 | 重算指标口径 |
产生的隐性需求:
- 生产任务状态总表。
- 页面状态与数据库状态映射表。
- 状态优先级规则:关闭 > 入库 > 异常 > 未检 > 未开工 等。
- “不可操作原因”统一返回,而不是前端各页面自己判断。
- 批量状态校验接口。
客户可能继续要:
- 任务状态流转图。
- 状态变更历史。
- 状态异常看板。
- 一键修复状态不一致。
- 已关闭/已入库任务仍可查询但不可操作。
### 3. SAP 与 MES 数据一致性问题会放大
今天逐页面分析中SAP 相关调用已经覆盖多个核心流程:
- 排产确认:`PATCH /ProductionOrders(...)`
- 订单关闭:`PATCH /ProductionOrders(...)`
- 工时校验/发料:`GET /ProductionOrders``POST /InventoryGenExits``PATCH ProductionOrders(...)`
- 外协采购申请:`POST /PurchaseRequests`
- 外协采购收货:`POST /PurchaseDeliveryNotes`
- 工位资源:`POST /Resources``PATCH /Resources(...)`
- 工序:`POST /RouteStages``PATCH /RouteStages(...)`
新增需求后SAP 相关数据还会增加:
- SAP 派工时间
- 合同交货期
- 发料齐套时间
- 缺件明细
- 发货通知
- 采购收货单号
- SAP 订单取消/关闭状态
会产生的问题:
1. 实时查 SAP 和 MES 落库字段会不一致。
- 及时齐套缺件明细要求 SAP 实时查询。
- 装配已排产需求要求 SAP 派工时间、合同交货期。
- 发货通知列表来源 SAP。
- 如果某些页面读 SAP 实时,某些页面读 MES 同步表,数字和状态可能不同。
2. SAP 写操作失败会产生半成功数据。
- MES 排产已完成,但 SAP 生产订单未更新。
- MES 工时校验已保存,但 `InventoryGenExits` 失败。
- 批量关闭 SAP 订单时,部分成功部分失败。
- 外协采购请求成功,但 MES 未记录单号。
3. 新增报表会追问 SAP 数据更新时间。
- 合同交货期什么时候同步?
- 发料齐套时间是否最新?
- 缺件明细是否实时?
- 发货通知状态是否已更新?
需要跟着调整的已完成页面/报表:
| 页面/报表 | 受影响点 | 建议调整 |
|---|---|---|
| `PlanManagement/SelfMakePlan/SelfMakePlando/SelfMakePlandone` | 排产同步 SAP 后缺少同步结果留痕 | 增加 SAP 同步状态、失败提示、重试依据 |
| `PlanManagement/InstallMakePlan/InstallMakePlanDo` | 装配新增 SAP 派工时间、合同交货期、发料齐套时间 | 查询和导出补 SAP 字段来源 |
| `ProductionManagement/WorkHoursCheck` | 已有 SAP 工序、资源、发料操作 | 增加 SAP 请求/返回日志和失败重试 |
| `QualityManagement/CheckTask/processReceive` | SAP 采购收货单号成为后续统计字段 | 保存 SAP 单号、行号、供应商 |
| `ProductionManagement/OutsourceMange` | 外协采购请求后要追踪 SAP 单据 | 记录采购请求号/采购订单关系 |
| `SystemMaintenance/WorkstationManagement` | 工位资源同步 SAP 后要防重复 | 增加 SAP 资源编码校验 |
| 发货通知大屏/新增报表 | 大屏已有数据,新增报表要求查询/导出 | 明确实时或同步数据源 |
产生的隐性需求:
- SAP 调用日志表。
- SAP 同步状态字段。
- SAP 失败重试页面。
- SAP 单据关系表MES 任务 -> SAP 生产订单/采购请求/收货单/发货通知。
- 数据更新时间展示。
- 批量操作结果明细。
客户可能继续要:
- SAP 同步失败列表。
- 手工重推 SAP。
- SAP 与 MES 差异对账。
- 每张 SAP 单据反查 MES 来源任务。
- 批量关闭/批量回写的成功失败导出。
### 4. 报表会从结果展示变成数据追溯
新增需求中报表很多:
- 机加班次产量表
- 手续确认报表
- 及时检验报表
- 及时齐套跟踪结果报表
- 生产日报-送检
- 让步接收记录
- 及时送检报表
- 发货通知列表
- 质检任务早知道
- 设计工时报表
- 自制件汇总表
- 工位汇总表
会产生的问题:
1. 报表之间会互相引用同一批数据。
- 及时检验依赖报工记录和质检记录。
- 生产日报-送检依赖送检和质检记录。
- 质检任务早知道依赖装配完成时间。
- 装配已排产需求依赖工时、异常、齐套、SAP 字段。
- 如果每个报表各写一套 SQL口径会分裂。
2. 报表新增字段会要求历史数据补齐。
- 外协检验新增供应商后,历史质检记录没有供应商。
- 发料齐套时间新增后,历史生产计划没有该字段。
- 手续确认新增后,历史任务默认是否“未确认”需要确定。
- 设计/编程工时新增后,历史合同进度是否重算需要确定。
3. 报表会反向要求修改业务页面。
- 报表要统计供应商合格率,就要求质检页面必须保存供应商。
- 报表要统计及时检验,就要求报工结束时间必须准确。
- 报表要统计手续确认,就要求业务页面维护确认状态。
- 报表要统计合同进度,就要求所有工时都有合同号。
需要跟着调整的已完成页面/报表:
| 已完成页面/报表 | 因新增需求需要调整什么 |
|---|---|
| 生产任务看板 | 增加及时齐套、及时检验、手续确认、装配完成时间等新指标或修正原指标 |
| 机加设备/生产运营看板 | 班次产量、设备工时、程序工时进入后,需要重算设备利用和产量口径 |
| 装配任务看板 | 装配完成时间、发料齐套、合同交货期、质检任务早知道会影响待办和逾期 |
| 质检任务看板 | 新增及时检验、质检任务早知道、让步接收后,待检数量口径要改 |
| 自制件汇总表 | 新增历史工时、设计/编程/质检工时后,总工时口径要扩展 |
| 工位汇总表 | 班次和设备采集数据进入后,按工位+日期的统计需要支持班次和设备维度 |
| 外协任务报表 | 增加供应商、采购到货期说明、SAP 收货单号后,导出和统计都要改 |
| 工时报表 | 指派对象、工时分类、设计/编程工时进入后,需要新增字段和筛选 |
产生的隐性需求:
- 报表数据口径说明。
- 报表明细钻取。
- 报表导出字段配置。
- 报表历史快照。
- 历史数据补录/默认值策略。
- 跨报表公共视图。
客户可能继续要:
- 每个报表点击数字看明细。
- 报表导出与页面一致。
- 报表按部门、班组、班次、人员、设备切换。
- 报表定时推送。
- 历史报表锁定,不随后续数据变化。
## 四、已完成页面/报表需要关注的改造清单
### 1. 计划排产相关页面
| 页面 | 需要关注的新增影响 | 是否需要修改 |
|---|---|---|
| `PlanManagement/SelfMakePlan` | SAP 回写状态、排产字段、计划时间口径、总工时 | 需要,至少补同步状态和字段口径 |
| `PlanManagement/SelfMakePlando` | 待排产转已排产后,装配/机加新字段是否继承 | 需要,确认新增字段默认值 |
| `PlanManagement/SelfMakePlandone` | 单日期筛选、总工时、历史明细、SAP 状态 | 已明确需要改 |
| `PlanManagement/InstallMakePlan` | 装配已排产需求会复用其数据,新增 SAP 派工时间、合同交货期、发料齐套 | 需要,至少 SQL 返回字段要扩展 |
| `PlanManagement/InstallMakePlanDo` | 同上,且涉及采购请求/SAP 回写 | 需要,补 SAP 单据和失败处理 |
| `PlanManagement/PlannOrderClose` | 批量关闭 SAP 后影响所有任务显示 | 需要,增加批量结果、失败原因、日志 |
### 2. 生产执行相关页面
| 页面 | 需要关注的新增影响 | 是否需要修改 |
|---|---|---|
| `ProductionManagement/MachiningCenter` | 编程状态、异常入口、设备工时、程序工时、及时检验起算 | 需要,新增入口和不可操作原因 |
| `ProductionManagement/AssemblyCenter` | 装配完成时间、手续确认、装配工时、异常、发料任务状态 | 需要,作为装配已排产需求的数据来源 |
| `ProductionManagement/ProductionTaskManage` | 生产任务状态增加异常/齐套/质检/关闭维度 | 需要,查询字段和状态说明要扩展 |
| `ProductionManagement/AssembleTaskManage` | 装配任务将进入日计划和质检任务早知道 | 需要,补装配完成时间和任务排除规则 |
| `ProductionManagement/WorkHoursCheck` | SAP 工时校验、发料、订单工序资源更新风险扩大 | 需要,补 SAP 日志、重试、差异说明 |
| `ProductionManagement/Timesheet` | 指派对象、设计/编程工时、工时分类 | 需要,补字段和筛选 |
### 3. 质检相关页面
| 页面 | 需要关注的新增影响 | 是否需要修改 |
|---|---|---|
| `QualityManagement/QualityCenter` | 及时检验、让步接收、外协供应商、已入库限制 | 需要,补状态和字段 |
| `QualityManagement/CheckTask/processReceive` | SAP 采购收货单号、供应商、外协指派对象 | 需要,新增保存和查询字段 |
| `QualityManagement/CheckTask/purchaseIncoming` | 采购检验备注、供应商统计、到货期说明 | 需要,至少补导出字段 |
| `QualityManagement/CheckTask/materialReturn` | 退库备注、库存任务状态 | 可能需要,跟退库备注和库存任务联动 |
| `QualityManagement/Unqualified` | 供应商合格率、让步接收、不合格统计口径 | 需要,补供应商/让步接收字段 |
| 质检任务看板 | 质检任务早知道和及时检验会改变待检数量 | 需要,重算待检/超期口径 |
### 4. 外协相关页面
| 页面 | 需要关注的新增影响 | 是否需要修改 |
|---|---|---|
| `ProductionManagement/OutsourceMange` | 外协采购请求、供应商、发料/收料/质检闭环 | 需要,补 SAP 单据关系 |
| `ProductionManagement/OutsourceSheet` | 采购到货期说明、供应商、SAP 收货单号、外协质检 | 需要,查询和导出都要补 |
| `ProductionManagement/SaleOutsourceMange` | 销售外协同样受采购请求和供应商统计影响 | 需要,保持与外协管理一致 |
### 5. 工艺和基础数据页面
| 页面 | 需要关注的新增影响 | 是否需要修改 |
|---|---|---|
| `ProcessManagement/ProcessProduct` | 自动带出标准工艺后,生产任务快照问题变明显 | 需要,避免覆盖已开工任务 |
| `CraftManagement/CraftMaintain` | 工艺版本、标准工艺字段映射 | 需要,补版本/草稿概念 |
| `ProcessManagement/ProcedureManagement` | SAP `RouteStages` 同步后要防止 MES/SAP 工序不一致 | 需要,补同步状态 |
| `SystemMaintenance/WorkstationManagement` | SAP `Resources` 新增/修改后要防重复和同步失败 | 需要,补资源同步状态 |
### 6. 已完成看板和报表
| 看板/报表 | 新增功能导致的新数据 | 需要调整 |
|---|---|---|
| 生产任务看板 | 发料齐套、及时齐套、装配完成时间、及时检验、异常 | 指标口径需要重算 |
| 装配任务看板 | 装配完成时间、合同交货期、质检预告、手续确认 | 新增逾期和待办指标 |
| 质检任务看板 | 及时检验、质检任务早知道、让步接收 | 待检、超期、预告分开 |
| 机加设备生产运营看板 | 班次产量、程序工时、设备采集 | 设备利用率和产量来源需要统一 |
| 自制件汇总表 | 总工时、设计/编程/质检分类 | 工时口径要扩展 |
| 工位汇总表 | 班次、设备、人员、程序工时 | 增加班次/设备维度或说明不支持 |
## 五、新增数据会带来的数据治理问题
### 1. 新字段放哪里
容易新增到生产计划/任务表的字段:
- 发料齐套时间
- 装配完成时间
- 手续确认
- 当前对应人员
- 当前对应内容
- 钣金预达
- 钣金到达
-
- 生产异常标记
问题:
- 这些字段有些是 SAP 来的,有些是手工维护,有些是计算结果。
- 全部塞进 `MES_接口_生产计划``MES_接口_生产计划_生产任务` 会让主表越来越混乱。
- 手工维护字段还需要修改历史,否则无法解释是谁改了装配完成时间。
建议:
- SAP 同步字段、手工维护字段、计算字段分开存。
- 手工维护字段建议用扩展表。
- 计算字段优先用视图或报表过程生成。
### 2. 历史数据怎么处理
新增字段会导致历史数据为空:
- 历史外协质检没有供应商。
- 历史质检没有 SAP 收货单号。
- 历史生产计划没有发料齐套时间。
- 历史任务没有手续确认。
- 历史任务没有设计/编程工时。
问题:
- 报表默认查全部时,历史数据会被算成未完成、未确认、未齐套。
- 用户可能认为系统数据异常。
建议:
- 每个新增字段定义历史默认规则。
- 报表上区分“无数据”和“未完成”。
- 对考核类报表增加启用日期。
### 3. 新增数据是否参与已完成报表
例如:
- 设计工时是否参与合同进度?
- 编程工时是否参与生产订单累计工时?
- 让步接收是否算合格?
- 外协供应商合格率是否包含历史无供应商数据?
- 已入库补检是否进入及时检验统计?
这些会直接影响已完成报表。
建议:
- 新增需求上线前,同步输出“影响报表清单”。
- 每个报表明确是否纳入新数据。
- 如果纳入,是否重算历史。
## 六、系统级隐性需求清单
这些不是客户一开始直接说的需求,但只要新增功能落地,基本会被迫出现。
| 隐性需求 | 触发原因 | 不做的后果 |
|---|---|---|
| 字段来源字典 | 新字段来自 MES、SAP、手工、设备采集 | 联调时无法解释字段来源,报表口径反复变 |
| 状态总字典 | 状态分散在排产、生产、质检、入库、SAP | 同一任务不同页面显示不同状态 |
| SAP 调用日志 | 多页面写 SAP且可能失败 | 无法排查 MES/SAP 不一致 |
| SAP 失败重试 | 批量关闭、工时校验、外协采购都可能部分失败 | 人工只能改库或重复操作 |
| 工时统一视图 | 新增设计、编程、设备、合同工时 | 各报表总工时对不上 |
| 报表明细钻取 | 汇总类报表越来越多 | 客户无法核对数字,只能反复查 SQL |
| 报表历史快照 | 报表用于日报/周报/考核 | 历史报表随数据变化,无法对账 |
| 手工字段维护历史 | 装配完成时间、钣金、泵、手续确认等可人工维护 | 无法追溯谁改了关键交期字段 |
| 批量操作结果表 | 批量关闭 SAP、批量排产、批量确认 | 部分成功/失败无法恢复 |
| 异常统一入口组件 | 所有报工页都要报异常 | 每页重复开发,状态不一致 |
| 任务追溯详情页 | 报表要解释数字来源 | 每个报表都要临时加明细 |
| 菜单/权限自动配置规范 | 新增页面很多 | 页面上线后权限、菜单容易漏 |
| 数据启用日期配置 | 新字段历史为空 | 历史数据被误算为异常 |
| 不可操作原因接口 | 关闭、入库、异常、未齐套都影响操作 | 前端提示不一致,用户不知道为什么不能点 |
## 七、客户可能继续提出的需求
保留从客户使用角度推导出的后续需求,但这些需求都是由前面的整体影响引出来的。
### 1. 围绕工时
- 合同总工时明细。
- 设计/编程/装配/质检/机加工时占比。
- 按人员、设备、班次统计工时。
- 工时超预算预警。
- 工时与 SAP 上传差异对比。
- 一键查看某订单所有工时来源。
### 2. 围绕状态和进度
- 生产任务全流程状态图。
- 每个状态变更历史。
- 为什么任务不可开工/不可质检/不可关闭的原因说明。
- 已关闭/已入库任务仍可查询但禁止操作。
- 任务异常状态看板。
### 3. 围绕 SAP
- SAP 同步失败清单。
- 手工重推 SAP。
- SAP 与 MES 状态对账。
- SAP 单据号反查 MES 任务。
- 批量 SAP 操作结果导出。
- SAP 数据最后同步时间展示。
### 4. 围绕质检
- 供应商合格率。
- 设备合格率。
- 让步接收审批。
- 质检超期催办。
- 已入库补检。
- 质检记录按订单、供应商、人员、工序多维分析。
### 5. 围绕报表
- 所有汇总数字可点开明细。
- 报表导出字段自定义。
- 报表按部门/班组/班次拆分。
- 报表定时推送。
- 日报/周报历史锁定。
### 6. 围绕异常
- 所有报工页面直接报异常。
- 异常审批待办。
- 异常处理超期提醒。
- 异常关闭后自动恢复任务。
- 异常原因统计。
## 八、建议的开发控制策略
### 1. 每个新增需求都必须补“四张表”
不是数据库表,而是分析表:
1. 字段影响表:新增字段来自哪里,写到哪里,哪些页面显示。
2. 状态影响表:是否改变排产/派工/任务/质检/入库/SAP 状态。
3. 报表影响表:哪些已完成报表要纳入新数据。
4. SAP 影响表:是否读 SAP、写 SAP、是否需要日志和重试。
### 2. 不建议继续只按页面单点开发
原因:
- 新增页面会越来越多,但数据源高度重叠。
- 如果每个页面单独写 SQL口径很快分裂。
- 新增字段一旦被报表引用,历史数据和导出口径都会受影响。
建议:
- 工时类先建统一视图。
- 状态类先建统一解释。
- SAP 类先建日志。
- 报表类先建公共明细查询。
### 3. 新增字段优先走扩展表
适合放扩展表的字段:
- 手工维护字段。
- SAP 同步字段。
- 报表补充字段。
- 后续可能继续变动的字段。
不建议直接塞入主任务表的字段:
- 钣金预达、钣金到达、泵、当前对应内容。
- 手续确认说明。
- SAP 同步状态明细。
- 合同级汇总字段。
### 4. 报表先定口径,再开发页面
尤其是:
- 及时检验。
- 及时送检。
- 生产日报-送检。
- 机加班次产量。
- 装配已排产需求。
- 合同工时汇总。
这些报表一旦上线,后续就是管理依据,不能边用边改口径。
## 九、结论
新增需求真正带来的影响不是“多几个页面”,而是会改变现有系统的数据结构和统计口径。
最需要提前处理的是:
1. 工时统一,否则总工时、合同进度、班次产量、日报都会互相对不上。
2. 状态统一,否则排产、生产、质检、入库、关闭、异常在不同页面显示不一致。
3. SAP 日志和重试,否则批量关闭、工时校验、外协采购、质检收货都会出现无法排查的半成功状态。
4. 报表影响清单,否则新增字段上线后已完成报表会漏算或错算。
5. 历史数据策略,否则新增字段为空会被误判为未完成、未确认、未齐套。
因此后续评估新增需求时应先问一个问题这个需求新增的数据会不会改变现有页面、报表、看板、SAP 状态和历史统计。如果会,就必须同步改受影响页面,而不是只开发新页面。
## 十、同级项目数据看板带来的额外连锁影响
这次补充分析的同级看板包括:`生产任务看板``装配任务看板``质检任务看板``机加设备生产运营看板``机加设备生产运营看板二``TableTV``board_view``新建文件夹`。这些项目不是普通查询页,而是管理层和车间现场会持续观看的大屏。它们把 MES、SAP、设备采集、质检和工时数据压缩成几个关键数字因此新增需求影响到看板时问题会比普通页面更明显不是某个按钮不可用而是管理层看到的 KPI 可能直接变错。
### 1. 新增功能会让现有看板指标失真的位置
| 看板指标 | 当前主要来源 | 新增需求/功能变化 | 可能失真结果 | 必须同步改造 |
|---|---|---|---|---|
| 生产任务看板“按期齐套率” | `生产任务综合看板_按期齐套率`,按 `View_生产订单_MES.齐套` 汇总 | 及时齐套跟踪、SAP 缺件明细、部分齐套、预计齐套时间 | 只有“齐套/未齐套”会掩盖部分齐套和预计可执行状态 | 增加齐套状态字典、缺件明细、预计齐套日期、SAP 同步时间 |
| 生产任务看板“未及时开工” | `计划开始时间、开工时间、加工状态、合格数` | 设计/编程前置、异常暂停、二次派工、手续确认 | 被设计/编程/异常卡住的任务仍被算作生产未及时开工 | 增加未开工原因维度,区分“计划原因、前置原因、异常原因、人员/设备原因” |
| 生产任务看板“加急件” | SAP `ubt_OPKL_UrgentMaterials_ALL` + MES 计划 | 加急从订单级变为物料/工序/质检级 | 加急总数与页面明细、装配缺件、质检加急互相对不上 | 建统一加急来源视图,明确订单级/工序级/物料级 |
| 装配看板“发货状态” | `View_生产订单_MES.发货状态` + SAP `UBT_ODRF_ODLNMES` | 发货通知列表、仓库出库、SAP 发货回写 | 页面显示“发货状态”但可能混合通知、待出库、已出库、已交货 | 增加发货状态分层通知、备货、出库、交货、SAP 回写 |
| 装配看板“在制缺件” | SAP 缺件表 + MES 装配计划 | 及时齐套跟踪、替代料、部分到货 | 只能看到缺件,无法知道是否已经采购、何时可恢复 | 增加缺件原因、预计到货、替代料、主子订单关系 |
| 装配看板“异常未关闭” | `流程表.完成人 is null` | 异常管控入口统一,机加/质检/外协都能发异常 | 未限定装配范围时,装配看板可能统计到其他部门异常 | 异常流程必须带业务域、任务、工序、责任部门 |
| 质检看板“未清任务” | `质量任务看板_未完成统计/明细` | 及时检验、复检、返工、让步接收、免检 | 未清数量会把复检/返工/免检混为同一类待检 | 增加质检状态流转、复检批次、处置结果、免检标识 |
| 质检看板“当天完成” | `View_质量检验_质检记录` 当天检测时间 | 生产日报-送检、部门日报、班次统计 | 当天完成按自然日统计,日报/班次按业务日统计会不一致 | 增加班次/日报快照口径 |
| 机加看板“设备运行状态” | `CaChe_Var` 当前缓存 | 机加班次产量、真实 OEE、设备运行工时 | 设备运行与任务报工可能不同步OEE 无法解释 | 统一设备状态、任务状态、报工状态的时间轴 |
| 机加看板“当天完成/合格率” | 复用质检完成汇总 | 生产完成、质检完成、入库完成都被要求展示 | “完成”可能被理解成生产完成,但实际是质检完成 | 页面标题和过程改名,或新增生产完成口径 |
| `TableTV` 当前工位任务 | `设备管理_设备状态_查询` | 班次维护、人员绑定、二次派工 | 班次阈值写死后,人员归属与班次管理不一致 | 过程改读班次表,不再硬编码 7.5/16.5 |
| `board_view` 合同/项目进度 | `看板_*`,采购/库存/OEE 多处为 0 或样例 | 发货通知、采购到货、合同工时、真实 OEE | 综合大屏展示为“项目全貌”但采购、库存、OEE 仍不真实 | 优先补真实数据源,否则不要作为经营口径 |
### 2. 已完成页面、报表、看板必须同步修改的清单
| 变更来源 | 必须同步修改的看板/报表 | 原因 |
|---|---|---|
| 设计任务报工、编程任务报工 | `board_view` 工时消耗、未完工工时;工时报表;合同进度类报表 | 当前大屏工时主要来自生产工时,新增设计/编程后合同总工时会漏算 |
| 装配已排产需求 | `生产任务看板``装配任务看板``board_view` 装配进度 | 装配计划、齐套、发货、异常、累计工时都会进入交付进度 |
| 及时检验报表 | `质检任务看板``机加设备生产运营看板`、生产日报-送检 | 质检及时率必须从静态/占位指标变成真实过程 |
| 及时齐套跟踪 | `生产任务看板` 齐套率/未齐套任务、`装配任务看板` 缺件、`board_view` 合同进度 | 缺件从单一状态变成主子订单、SAP 缺料、预计可执行时间 |
| 发货通知列表 | `装配任务看板` 发货状态、`board_view` 合同/交付区域 | 发货状态需要区分 SAP 通知、仓库出库、MES 任务完成 |
| 机加班次产量表 | `TableTV`、机加运营看板、设备工时报表 | 班次、设备、人员、产量、工时必须按同一业务日归属 |
| 异常管控入口统一 | 装配看板异常数、机加看板未及时开工、生产任务看板风险数 | 异常暂停不应被误算为未及时开工或未完成 |
| SAP 生产订单批量关闭 | 生产任务看板、装配看板、计划关闭页、手续确认报表 | SAP 部分成功/失败会造成 MES 任务仍显示在看板上 |
| 外协检验字段增强 | 质检看板、外协报表、供应商质量统计 | 质检任务要按供应商、采购收货单、指派对象追溯 |
### 3. 看板暴露出的系统级隐性需求
1. **统一指标口径层**
现在不同看板各自写存储过程:`生产任务综合看板_*``装配中心任务看板_*``质量任务看板_*``机加设备生产运营看板_*``看板_*`。这些过程大量重复读取 `View_生产订单_MES``YL_质量检验_质检记录``YL_加工中心_操作记录表`。后续应建立统一口径视图,例如:
- `View_MES_任务状态统一口径`
- `View_MES_齐套缺件统一口径`
- `View_MES_质检待办统一口径`
- `View_MES_工时统一口径`
- `View_MES_设备任务运行统一口径`
2. **统一状态字典**
当前看板内同时出现 `任务状态``加工状态``排产状态``齐套``发料状态``拣配状态``发货状态``加急状态``质检状态``设备状态`。这些状态来自不同表,且有的前端再次转换。必须补一张状态解释表或统一视图,避免同一个 `0/1/2/4` 在不同页面含义不同。
3. **SAP 同步状态与时间戳**
看板不是实时调用 B1 Service Layer而是通过 SQL 读取 SAP 跨库表或 SAP 同步落地表,例如 `ubt_OPKL_UrgentMaterials_ALL``UBT_ODRF_ODLNMES``质量检验_质检任务_SAP`。因此大屏上所有 SAP 相关指标都应该显示或记录同步时间、同步结果、失败原因。否则用户看到缺件、发货、加急时无法判断是 SAP 最新状态还是 MES 缓存状态。
4. **指标钻取能力**
`board_view` 已经有中央订单点击钻取明细,其他看板多数只有汇总和滚动表。新增需求上线后,客户很可能要求点击“未及时开工、未清质检、缺件、异常、加急、未齐套”直接看到来源明细。不能只返回总数,过程应统一支持“汇总 + 明细 + 字段来源”。
5. **历史快照**
大屏是实时结果,但日报、周报、月报需要历史定版。当前很多过程使用 `GETDATE()` 实时计算,例如当天完成、近 3 天装配合格率、当月计划执行率。新增管理报表后,必须保存日快照或允许传入统计日期,否则第二天无法复现昨天看板上的数字。
6. **占位指标清理**
`board_view` 中 OEE、环境、水电气、采购部进度、库存/在购字段存在样例或占位;生产任务看板中采购未及时到货、质检及时率、未及时入库也有静态值或未完整接入。上线前必须清理占位指标:要么接真实过程,要么隐藏,不要和真实指标混放。
### 4. 统一改造建议
| 优先级 | 改造项 | 解决的问题 |
|---|---|---|
| P0 | 给所有看板指标补“口径说明 + 来源过程 + 来源字段” | 防止管理层把不同含义的“完成、齐套、加急、在制”混用 |
| P0 | 把 `GETDATE()` 型过程改造为可传统计日期,实时看板默认当天 | 让日报/历史回看能复现 |
| P0 | 为 SAP 相关看板补同步时间和同步状态 | 判断数据新旧,排查 SAP/MES 不一致 |
| P1 | 统一质检待办过程,覆盖未清、及时率、关键工序、当天完成 | 避免 `质量任务看板_*``Visualization_QcTask_*` 两套接口并行 |
| P1 | 统一机加任务/设备状态过程,区分任务在制、设备运行、报工完成 | 防止设备状态与任务状态互相替代 |
| P1 | 统一装配发货/缺件过程,串起 SAP 发货通知、缺件、齐套、仓库出库 | 让装配看板真正反映交付风险 |
| P2 | 将 `board_view` 的占位采购、库存、OEE 接入真实数据或移除 | 避免综合大屏成为混合真实/样例数据的经营看板 |
### 5. 客户可能继续提出的看板类需求
这些不是主分析角度,但从现有看板形态看,客户后续很可能继续要求:
- 点击任意 KPI 下钻明细,例如未齐套、加急、未及时开工、未清质检、装配缺件。
- 看板按项目、合同、车间、班组、设备筛选。
- 看板显示 SAP 同步时间和异常提示。
- 看板支持历史日期回看,而不是只能看当前实时数据。
- 质检看板增加及时率趋势和超期责任人。
- 装配看板增加预计发货、预计齐套、缺件到货日期。
- 机加看板增加真实 OEE、设备利用率、程序运行时长、班次产量。
- 生产任务综合看板增加“设计/编程是否完成”作为开工前置条件。
- 大屏数据定时快照,日报/周报自动引用同一口径。
## 十一、设备数据采集与现场大屏专项影响分析
本次新增的设备档案、设备数据采集、OEE、工时异常、条码拣配和一楼/机加/装配现场大屏需求,会把系统从“任务报工驱动”进一步推向“设备实时数据 + MES 任务 + 质检结果 + 现场人员 + SAP 物料状态”的综合分析系统。它的影响不只在新增几个看板,而是会改变工时、产量、合格率、齐套、送检、缺勤、设备状态的基础口径。
### 1. 总体影响链路
```mermaid
flowchart TD
A[设备档案/主要设备/标准工时] --> B[设备数据采集]
B --> C[设备状态时长]
B --> D[程序工时/单件工时]
C --> E[设备利用率]
D --> F[性能开动率]
G[MES 报工/计划产量] --> H[产能利用率]
I[质检记录/良品不良品] --> J[产品合格率]
E --> K[OEE]
F --> K
J --> K
D --> L[工时异常报表]
M[条码拣配] --> N[齐套/发料/拣配状态]
N --> O[生产/装配看板]
P[关键工序标识] --> Q[质检/机加关键任务大屏]
R[班次/岗位/工位/考勤] --> S[缺勤人员大屏]
```
### 2. 对现有数据模型的冲击
| 新需求 | 新增或必须明确的数据 | 冲击对象 | 主要问题 |
|---|---|---|---|
| 设备档案管理 | 主要设备、参与 OEE、设备/工位关系、标准工时来源 | 设备档案、工位管理、工艺维护 | 标准工时放设备、工艺还是设备+工序能力表必须明确 |
| 设备数据采集 | 程序工时、单件工时、设备状态时长、程序号、采集时间 | `CaChe_Var`、历史设备数据、设备状态记录、工时报表 | 当前多为当前缓存或历史状态,缺少可直接算单件工时的任务绑定 |
| OEE 指标 | 计划产量、实际产量、设备工时、标准工时、标准单件工时、实际单件工时、良品数 | 机加看板、`board_view`、设备报表 | OEE 三个组成指标必须同设备、同日期、同班次,否则乘出来没有管理意义 |
| 工时异常报表 | 实际单件工时、标准单件工时、超出比例、异常原因 | 工时查询、工时校验、异常管控 | 设备采集工时与人工报工工时不一致时,谁作为异常依据需要确定 |
| 条码拣配 | 条码、物料、批次、任务、拣配人、拣配时间、状态写回 | 机加中心、装配中心、齐套看板 | 条码扫描会改变 `拣配状态/齐套/发料状态`,看板和生产任务必须同步 |
| 质检及时率 | 最后一次生产完成时间、报检时间、检验完成时间、超期天数 | 质检看板、生产日报-送检 | 以生产完成时间作为起算点,会改变现有“未清任务”定义 |
| 关键工序 | 工艺关键标识、任务快照、关键工序应检/未检/在制 | 工艺维护、生产任务、质检/机加大屏 | 关键工序如果只存在工艺库,会影响历史任务重算 |
| 缺勤人员 | 岗位、工位、人员、应到、实到、班次 | 班次管理、人员绑定、机加/装配大屏 | 不能从“没有报工”直接判断缺勤,必须有排班和考勤/上岗数据 |
| 装配及时送检 | 发料齐套时间、送检状态、送检时间、超期天数 | 装配中心、装配看板、质检任务 | 发料齐套后 2 天未送检会新增一种介于“可开工/待检”之间的风险状态 |
### 3. OEE 不是一个单独公式,而是一组口径治理
当前讨论公式为:
- 产能利用率(单台)= 实际产量 / 计划产量 * 100%
- 设备利用率(单台)= 设备工时 / 标准工时
- 设备性能开动率(单台)= 标准单件工时 / 实际单件工时
- 产品合格率(工位)= 良品数 / 总产量
- OEE = 设备利用率 * 开动率 * 合格率
这些公式看起来简单,但真正的隐性需求是统一统计边界:
1. **设备边界**:只算主要设备,还是所有设备都算。辅助设备、测试设备、维修设备是否排除。
2. **时间边界**:自然日、班次日、订单周期、计划周期不能混用。
3. **产量边界**:实际产量来自 MES 报工、设备计数还是质检数量。三者时间上可能不一致。
4. **合格率边界**:良品数来自报工良品还是质检合格数。若质检晚于生产,日合格率会滞后。
5. **标准工时边界**:标准工时可能来自工艺标准工时、设备能力标准、班次可用工时。三个字段不能都叫标准工时。
6. **实际单件工时边界**:设备采集循环时间、设备运行时间/产量、人工报工工时/产量是不同口径。
因此 OEE 不能只在大屏上增加几个公式。必须先建立设备指标明细层,至少包含设备、工位、日期、班次、任务、物料、工序、计划产量、实际产量、良品、不良、标准工时、设备运行工时、标准单件工时、实际单件工时和采集质量标识。
### 4. 对已完成页面和看板的必要改造
| 页面/看板 | 必须新增或调整 | 原因 |
|---|---|---|
| `DeviceManagement/DeviceInformation` | 主要设备、是否参与 OEE、采集点位、标准工时来源 | 设备档案是设备采集和 OEE 的基础 |
| `SystemMaintenance/WorkstationManagement` | 工位与设备、人员、岗位的一对多关系 | 缺勤人员要显示岗位、工位、姓名,多工位需合并 |
| `ProcessManagement/ProcessProduct` / 工艺维护 | 是否关键工序、标准单件工时 | 质检和机加大屏需要关键工序汇总和明细 |
| `PlanManagement/SelfMakePlan/SelfMakePlandone` | 任务设备绑定、计划产量、标准工时字段确认 | 单台设备产能利用率需要按任务落到设备 |
| `ProductionManagement/MachiningCenter` | 条码拣配入口、拣配状态写回、设备采集任务绑定 | 机加及时拣配和设备采集都要关联生产任务 |
| `ProductionManagement/AssemblyCenter` | 条码拣配入口、发料齐套时间、送检状态 | 装配及时拣配和及时送检都要从这里进入 |
| `ProductionManagement/WorkHoursCheck` | 程序工时、设备工时、人工工时差异、异常确认 | 工时异常报表会反向要求工时校验解释差异 |
| `QualityManagement/QualityCenter` | 最后生产完成时间、报检时间、超期天数、关键工序 | 质检及时率和关键工序任务必须有来源 |
| `质检任务看板` | 质检及时率真实过程、超 2 天未检明细、关键工序汇总/明细 | 当前看板未完整实现及时率真实口径 |
| `机加设备生产运营看板` | OEE、设备利用率、开动率、合格率、关键工序任务、缺勤人员 | 现有设备状态和 OEE 仍不足以支撑新指标 |
| `装配任务看板` | 缺勤人员、及时送检任务颜色/排序、发料齐套后 2 天未送检 | 新需求直接改变装配现场大屏列表逻辑 |
| `TableTV` | 设备采集状态、单件工时、异常颜色 | 现场卡片应展示设备真实状态和工时风险 |
| `board_view` | 真实 OEE 替换样例、设备/产能/质量指标统一 | 综合大屏不能继续使用固定 OEE 样例 |
### 5. 工时异常报表会反向推动工时体系重构
工时异常条件是“单件工时 > 标准工时”。这会带来三个隐性问题:
1. **异常来源不只设备**
单件工时超标可能来自设备状态异常、程序问题、刀具/工装、人员操作、物料质量、等待质检、等待发料。报表如果只列超标,不记录原因,会变成无法闭环的告警列表。
2. **需要区分程序工时和人工工时**
程序工时用于判断设备加工效率;人工工时用于人工绩效和 SAP 工时上传。两者差异本身就是一个分析点,不能用程序工时直接覆盖人工报工。
3. **需要异常确认流程**
如果报表用于管理考核,就必须支持确认:是否真实异常、原因分类、责任部门、处理说明、确认人、确认时间。否则数据会被质疑。
### 6. 条码拣配会改变齐套和开工状态
及时拣配(机加/装配)表面是扫码需求,实际会改动任务状态链:
```mermaid
flowchart LR
A[条码扫描] --> B[识别物料/任务]
B --> C[更新拣配记录]
C --> D[更新拣配状态]
D --> E[计算齐套]
E --> F[影响发料状态]
F --> G[影响是否可开工]
G --> H[影响生产/装配看板]
```
如果扫码只记录日志,不写回 `拣配状态/齐套/发料状态`,看板仍然显示未齐套;如果扫码直接写回状态,但没有 SAP 库存校验,又可能造成 MES 显示已齐套、SAP 库存不足。因此需要明确 MES 与 SAP 谁作为库存和发料主口径。
### 7. 三类大屏的新增字段影响
| 大屏 | 新增指标 | 需要的新增字段/过程 |
|---|---|---|
| 一楼质检大屏 | 质检及时率、超 2 天未检、关键工序检验汇总/明细 | 最后生产完成时间、报检时间、检验完成时间、是否关键工序、超期天数 |
| 机加现场大屏 | 缺勤人员、关键工序任务汇总/明细、设备 OEE | 岗位、工位、姓名、应到/实到、是否关键工序、设备运行工时、单件工时 |
| 装配现场大屏 | 缺勤人员、及时送检任务列表、加急后排序、颜色区分 | 岗位、工位、姓名、发料齐套时间、送检状态、送检时间、超期天数 |
### 8. 需要优先确认的问题
1. 设备采集数据由谁写入 MES接口频率是多少。
2. 设备采集如何绑定到 MES 任务,是靠设备+时间段、程序号、条码,还是人工绑定。
3. 标准单件工时来自生产工艺,还是设备能力表。
4. 实际产量以 MES 报工、设备计数、质检数量中的哪一个为准。
5. 良品数以报工良品还是质检合格数为准。
6. 质检及时率的“最后一次生产完成时间”取操作记录的报工、辅助结束,还是任务完成时间。
7. 关键工序标识是否影响历史任务,建议只影响新下发任务或做任务快照。
8. 缺勤人员的“应到”来源是班次绑定、排班表还是岗位配置。
9. 装配“发料齐套后 2 天未送检”的发料齐套时间来自哪个表。
10. 条码拣配是否需要 SAP 库存校验和失败重试。
## 十二、补充修正:新增需求必须同时判断“维护入口”
前面的分析已经覆盖了工时、状态、SAP、报表、看板的连锁影响但还需要补一个更基础的判断客户提出一个报表或看板字段时不等于只新增一个展示页面。必须同时判断这个字段从哪里来、由谁维护、在哪个页面维护。
如果不先确认维护入口,会出现三类问题:
1. 报表页面有字段,但没有地方录入,最终只能写死、手工改库或长期为空。
2. 看板显示了 KPI但基础字段散落在多个页面用户不知道该去哪里修正。
3. 同一个字段在标准数据、订单数据、任务快照、SAP 同步表中重复维护,导致历史统计和当前查询对不上。
### 1. 判断框架
| 判断项 | 需要回答的问题 | 典型结论 |
|---|---|---|
| 字段性质 | 是主数据、订单过程数据、任务执行数据、外部同步数据、计算结果,还是人工确认结果 | 主数据进基础维护页;过程数据进业务页;计算结果进视图/报表 |
| 数据来源 | MES、SAP、设备采集、考勤/排班、人工维护,还是多来源融合 | 多来源字段必须记录来源和更新时间 |
| 维护责任人 | 工艺、计划、生产、质检、仓库、设备、班组长、系统管理员谁维护 | 决定页面权限和菜单归属 |
| 维护入口 | 现有页面能否承载,还是必须新建页面 | 优先扩展现有业务页面,缺口大时才新建维护页 |
| 历史影响 | 修改后是否影响已下发任务和历史报表 | 影响历史的字段要做任务快照或维护历史 |
| 看板影响 | 是否会改变已有 KPI 口径 | 看板过程必须同步改,不只改主系统页面 |
### 2. 按字段类型划分维护位置
| 字段/能力类型 | 应优先维护的位置 | 不建议的做法 |
|---|---|---|
| 人员、岗位、班次、排班、出勤 | 人员管理、班次管理、工位人员绑定,必要时新增排班/出勤维护页 | 在机加/装配大屏里直接维护缺勤 |
| 工序、关键工序、标准工时、准备工时 | 标准工艺、生产工艺、工序基础数据 | 单独做一个脱离工艺的关键工序表但不和任务快照同步 |
| 设备、工位、采集点位、是否参与 OEE | 设备档案、工位管理、设备采集配置 | 把设备标准工时简单塞进设备档案并用于所有零件 |
| 生产订单过程字段 | 生产计划、排产、装配已排产需求、生产工艺 | 只在报表页维护,不写回业务主链路 |
| 质检处置字段 | 质检中心、不合格处置、序检收检 | 让步接收记录页反向维护质检结果 |
| SAP 同步字段 | SAP 同步表或 MES 扩展表,只读展示同步时间和状态 | 前端手工覆盖 SAP 字段但不留来源 |
| 人工确认字段 | 待办类页面维护,例如手续确认报表,同时记录确认人和时间 | 把确认状态隐藏在 SQL 过滤里,没有操作日志 |
| 统计/看板指标 | 统一视图、存储过程、日报快照 | 每个看板各写一套 SQL 重新定义口径 |
### 3. 典型字段修正结论
| 需求点 | 修正结论 |
|---|---|
| 缺勤人员 | 必须先有“应到人员”和“实到人员”来源。应到来自班次/排班/岗位工位人员绑定,实到来自考勤/上岗/登录/报工。若现有系统没有排班入口,需要新增或扩展排班/出勤维护页;看板只查询缺勤结果。 |
| 关键工序 | 属于工艺属性,应在标准工艺和生产工艺维护。生产任务下发时快照 `是否关键工序`,质检和机加大屏读取快照。不能只在大屏或质检报表里临时标记。 |
| 标准单件工时 | 优先来自标准工艺/生产工艺,必要时增加设备+工序能力表。设备档案只维护设备能力参数和 OEE 参与属性。 |
| 发料齐套时间 | 如果来自 SAP必须同步到 MES 并记录同步时间;如果允许人工修正,应放在生产计划/装配排产业务链路或装配已排产需求页,并保留维护历史。 |
| 装配完成时间 | 规则计算字段可以在装配已排产需求中显示;人工调整时要作为订单过程字段保存,不应只存在前端。 |
| 预计可执行时间 | 依赖 SAP 缺件、主子订单关系和人工判断。可以在及时齐套跟踪页维护,但要记录维护人、维护时间和依据。 |
| 让步接收 | 质检结果字段应在质检中心或不合格处置维护;让步接收记录页只做查询、导出和追溯。 |
| 外协供应商/SAP 收货单号 | 应在外协任务、序检收检或外协收货链路补字段;供应商质量报表只消费这些字段。 |
| OEE | OEE 是计算结果不是人工维护字段。基础数据分别来自设备采集、MES 报工、质检记录、工艺标准工时和班次规则。 |
### 4. 对已完成页面的新增影响
| 现有页面 | 新增维护责任 |
|---|---|
| `ProcessManagement/ProcessProduct` 生产工艺 | 维护订单级关键工序、标准工时、标准工艺带出后的生产工艺草稿;保存时形成任务可用快照 |
| `ProcessManagement/ProcessesDevelop` 制定标准工艺 | 维护标准关键工序、标准单件工时、准备工时,作为生产工艺默认来源 |
| `SystemMaintenance/WorkstationManagement` | 补工位与设备、岗位、人员关系,支持缺勤和 OEE 维度 |
| `BasicData/ShiftManagement` 或现有班次管理 | 支持班次时间、跨天规则、应到人员或排班规则 |
| `BasicData/PersonnelManagement`、人员角色绑定 | 支持人员岗位、班组、工位范围,为缺勤和权限提供来源 |
| `ProductionManagement/AssemblyCenter` | 维护/展示装配执行、发料、送检、异常、手续确认相关过程字段 |
| `ProductionManagement/MachiningCenter` | 维护/展示机加扫码、设备绑定、报工、异常、关键工序执行状态 |
| `QualityManagement/QualityCenter` | 维护质检结果、让步接收、送检/已检数量、关键工序质检状态 |
| `DeviceManagement/DeviceInformation` | 维护主要设备、采集点位、OEE 参与标识,不独立承担所有标准工时 |
### 5. 后续评估新增需求的强制问题
后续每个新需求都要在开发前回答:
1. 这个字段是展示、维护、确认,还是计算。
2. 如果要维护,是否已有页面可以维护。
3. 如果新增页面,它是查询页、待办页,还是主数据维护页。
4. 数据是否需要修改历史;如果需要,是否留维护日志。
5. 是否需要任务快照,避免标准数据变化影响历史任务。
6. 是否影响生产任务看板、装配看板、质检看板、机加看板或 `board_view`
只有这六个问题明确后,才能判断是“新增页面”、 “扩展现有页面”、 “新增维护页”,还是“只改 SQL/视图/看板口径”。

View File

@@ -0,0 +1,254 @@
# 需求分析:自制件汇总表 & 工位汇总表
> **日期**: 2026-05-21
> **状态**: 🔍 需求讨论阶段(不动代码)
> **目标**: 理清数据来源、字段映射、缺口和实现方案,产出后续工作计划
---
## 一、需求确认清单
| # | 需求项 | 确认结果 |
|:--:|------|------|
| 1 | **自制件汇总表** — 汇总维度 | 按 **订单+工序** 汇总工时 |
| 2 | **自制件汇总表** — 时间范围 | **自定义起止日期**(用户选择) |
| 3 | **工位汇总表** — 汇总维度 | 按 **工位+日期** 汇总 |
| 4 | **工位汇总表** — 展示字段 | **产量统计** + **工时统计** |
| 5 | **使用场景** | **生产日报/周报**(报表导出) |
---
## 二、自制件汇总表(按订单+工序汇总工时)
### 2.1 需求理解
> 每行 = 一个订单的一道自制件工序,展示该工序的 **计划工时 vs 实际工时** 及差异。
### 2.2 数据源分析
```
┌─────────────────────────────────────────────────────────┐
│ 自制件汇总表 数据流向 │
│ │
│ MES_接口_生产计划 (订单主表) │
│ ├── 订单编号, 合同号, 物料编号, 物料描述, 自制件属性 │
│ │ 过滤: 自制件属性 = '机加件', 单据状态 IS NULL │
│ │ │
│ └──→ MES_接口_生产计划_生产任务 (工序明细) │
│ ├── 订单行号, 工序名称, 顺序编号 │
│ ├── 指派对象(工位), 指派数量, 完成数量 │
│ │ │
│ ├──→ 车间生产管理工艺_零件生产工艺_工艺库 (标准工时) │
│ │ └── 标准工时, 准备工时, 工时合计 │
│ │ JOIN: 工艺库.订单编号 = 生产任务.订单编号 │
│ │ AND 工艺库.工艺顺序 = 生产任务.订单行号 │
│ │ │
│ └──→ YL_加工中心_操作记录表 (实际工时) │
│ └── SUM(实际工时) WHERE 操作类别='报工' │
│ GROUP BY TaskAID │
└─────────────────────────────────────────────────────────┘
```
### 2.3 目标字段清单
| 序号 | 字段名 | 数据来源 | 说明 |
|:--:|------|------|------|
| 1 | 订单号 | `MES_接口_生产计划.订单编号` | |
| 2 | 合同号 | `MES_接口_生产计划.合同号` | |
| 3 | 物料编号 | `MES_接口_生产计划.物料编号` | |
| 4 | 物料描述 | `MES_接口_生产计划.物料描述` | |
| 5 | 订单行号 | `MES_接口_生产计划_生产任务.订单行号` | 工序序号 |
| 6 | 工序名称 | `MES_接口_生产计划_生产任务.工序名称` | |
| 7 | 指派工位 | `MES_接口_生产计划_生产任务.指派对象` | |
| 8 | **计划工时** | `车间生产管理工艺_零件生产工艺_工艺库.标准工时` | 分钟单位 |
| 9 | **准备工时** | `车间生产管理工艺_零件生产工艺_工艺库.准备工时` | 分钟单位 |
| 10 | **工时合计(计划)** | `工艺库.工时合计` = 标准工时 + 准备工时 | |
| 11 | **实际工时** | `SUM(YL_加工中心_操作记录表.实际工时)` | 秒→分钟转换 |
| 12 | **总时长** | `SUM(YL_加工中心_操作记录表.总时长)` | 含暂停的总耗时 |
| 13 | **工时差异** | 实际工时 计划工时合计 | 正=超时,负=提前 |
| 14 | 操作人 | STRING_AGG 或取主要操作人 | 多操作人用逗号分隔 |
| 15 | 报工日期 | MAX(报工日期) | 取最后报工日期 |
### 2.4 现有可复用的数据
| 来源 | 可用字段 | 缺口 |
|------|------|------|
| `View_生产工时视图` | 加工工时, 总时长, 报工日期, 订单号, 工序名称 | ✅ 基本够用 |
| `View_生产订单_MES` | 订单号, 合同号, 物料, 工序, 指派对象 | ✅ |
| `车间生产管理工艺_零件生产工艺_工艺库` | 标准工时, 准备工时, 工时合计 | ⚠️ 需确认有哪些订单已录入 |
### 2.5 待确认问题
| # | 问题 | 建议 |
|:--:|------|------|
| Q1 | 工艺库中标准工时数据覆盖率?很多订单可能没有录入标准工时 | 需 DBA 查一下 `SELECT COUNT(*) FROM 工艺库 WHERE 标准工时 > 0` |
| Q2 | 同一工序多次报工,取 SUM 还是最后一次? | 建议 **SUM**(累计工时) |
| Q3 | 工时单位展示用分钟还是小时? | 建议 **分钟**(与工艺库标准工时单位一致) |
| Q4 | 是否区分已校验/未校验工时? | 建议加一列:`已校验工时` vs `未校验工时` |
| Q5 | 是否只查"已完成"的?还是包含进行中? | 建议默认查 **全部**,加筛选条件 |
---
## 三、工位汇总表(按工位+日期汇总)
### 3.1 需求理解
> 每行 = 一个工位在某一天的生产汇总。展示两个维度:**产量统计** + **工时统计**。
### 3.2 数据源分析
```
┌─────────────────────────────────────────────────────────┐
│ 工位汇总表 数据流向 │
│ │
│ MES_资源主数据 (工位基础数据) │
│ ├── VisCode(工位编号), Name(工位名称), Type │
│ │ 过滤: Type='rtMachine', Active='tYES' │
│ │ │
│ ├──→ 当日产量统计 │
│ │ ├── 计划数量: SUM(生产任务.指派数量) │
│ │ │ WHERE 指派对象编号=X AND 计划开始时间=@日期 │
│ │ ├── 完成数量: SUM(操作记录.操作数值) │
│ │ │ WHERE 工位编号=X AND 操作类别='报工' │
│ │ │ AND CAST(开始时间 AS DATE)=@日期 │
│ │ ├── 合格数: SUM(质检记录.合格数) │
│ │ │ WHERE 工位关联 AND CAST(检测时间 AS DATE)=@日期 │
│ │ └── 不合格数: SUM(质检记录.不合格数) │
│ │ │
│ └──→ 当日工时统计 │
│ ├── 设备运行工时: SUM(操作记录.实际工时) │
│ ├── 人员工时: SUM(操作记录.总时长) 或 SUM(报工.工时) │
│ └── 闲置时间: 24h - 运行时间(分钟) │
│ 数据源: 历史_工位设备状态每分钟记录 │
│ WHERE 工位号=X AND CAST(创建时间 AS DATE)=@日期 │
│ SUM(CASE WHEN 设备状态 IN(-1,0,3) THEN 1 END) │
│ → 每分钟一条,直接计数即为分钟数 │
└─────────────────────────────────────────────────────────┘
```
### 3.3 目标字段清单
| 序号 | 字段名 | 数据来源 | 说明 |
|:--:|------|------|------|
| 1 | 工位编号 | `MES_资源主数据.VisCode` | |
| 2 | 工位名称 | `MES_资源主数据.Name` | |
| 3 | 统计日期 | 用户选择的日期 | DATE 类型 |
| 4 | **计划数量** | SUM(生产任务.指派数量) | 当天计划开工的任务指派数 |
| 5 | **完成数量** | SUM(操作记录.操作数值) | 当天报工的完成数 |
| 6 | **合格数** | SUM(质检记录.合格数) | 当天收检的合格数 |
| 7 | **不合格数** | SUM(质检记录.不合格数) | 当天收检的不合格数 |
| 8 | **设备运行工时** | SUM(操作记录.实际工时) / 60 | 转换为分钟 |
| 9 | **人员工时** | SUM(操作记录.总时长) / 60 | 含暂停的总耗时 |
| 10 | **闲置时间** | COUNT(状态记录 WHERE 状态 IN(-1,0,3)) | 每分钟一条=分钟数 |
| 11 | **设备利用率** | 运行工时 / (运行+闲置) × 100% | 可选指标 |
### 3.4 现有可复用的数据
| 来源 | 可用字段 | 缺口 |
|------|------|------|
| `View_生产工时视图` | 工位编号, 工位名称, 开始时间, 加工工时, 总时长 | ✅ |
| `View_生产订单_MES` | 指派对象编号, 指派数量 | ✅ |
| `历史_工位设备状态每分钟记录` | 工位号, 设备状态, 创建时间 | ⚠️ 需确认数据采集是否覆盖所有工位 |
### 3.5 待确认问题
| # | 问题 | 建议 |
|:--:|------|------|
| Q1 | "日期"以哪个时间为准?报工日期还是操作日期? | 建议用 **报工日期** (CAST(操作记录.开始时间 AS DATE)) |
| Q2 | 闲置时间——所有工位都有设备状态记录吗? | 需DBA确认 `历史_工位设备状态每分钟记录` 的覆盖率 |
| Q3 | 如果没有状态记录表数据,闲置时间怎么算? | 备选方案:`24×60 SUM(实际工时÷60)` 粗略估算 |
| Q4 | 跨天任务怎么算比如夜班从22:00做到次日02:00 | 建议按 **开始时间归属日期**22:00→当天 |
| Q5 | 是否需要展示班次维度(白班/夜班分开)? | 当前需求未要求,可后期迭代 |
---
## 四、实现方案对比
| 方案 | 方式 | 优点 | 缺点 |
|------|------|------|------|
| **A. 新建视图** | 创建 `View_自制件工时汇总``View_工位日汇总` 两个VIEW | 性能好、前端直接查 | 不够灵活 |
| **B. 新建存储过程** | 创建带参数的 SP 如 `报表_自制件工时汇总(@开始日期,@结束日期)` | 灵活、支持参数筛选和分页 | 需前后端联调 |
| **C. 改造已有SP** | 在 `View_生产工时视图` 基础上增加聚合查询 SP | 复用现有逻辑 | 可能影响现有功能 |
| ✅ **推荐方案** | **方案B**新建2个存储过程 + 前端新建2个报表页面 | 最佳实践 | — |
---
## 五、后续工作计划
### 第一阶段数据验证1天
| 步骤 | 内容 | 执行人 |
|:---:|------|:---:|
| 1 | 查询工艺库标准工时覆盖率 | DBA |
| 2 | 查询设备状态每分钟记录覆盖率(按工位) | DBA |
| 3 | 抽样验证取1个订单手动计算工时对比 SP 结果 | DBA |
| 4 | 确认工时单位统一(秒→分钟 or 小时) | 全体 |
### 第二阶段存储过程开发2天
| 步骤 | 内容 | 执行人 |
|:---:|------|:---:|
| 1 | 创建 `报表_自制件工时汇总` SP | DBA |
| 2 | 创建 `报表_工位日汇总` SP | DBA |
| 3 | 编写测试SQL验证结果准确性 | DBA |
| 4 | Review 两个 SP | 技术负责人 |
### 第三阶段前端报表页面2天
| 步骤 | 内容 | 执行人 |
|:---:|------|:---:|
| 1 | 新建"自制件工时汇总"页面(搜索条件+表格+导出) | 前端 |
| 2 | 新建"工位日汇总"页面(搜索条件+表格+导出) | 前端 |
| 3 | 在菜单表中配置页面路由 | 前端/DBA |
| 4 | 联调测试 | 全体 |
### 第四阶段上线验证0.5天)
| 步骤 | 内容 | 执行人 |
|:---:|------|:---:|
| 1 | 用真实数据跑一次日报 | 用户 |
| 2 | 与人工统计对比验证 | 用户 |
| 3 | 修复问题、调整格式 | 开发 |
---
## 六、需要DBA协助验证的SQL
```sql
-- 1. 工艺库标准工时覆盖率
SELECT
COUNT(*) AS ,
SUM(CASE WHEN ISNULL(,0) > 0 THEN 1 ELSE 0 END) AS ,
SUM(CASE WHEN ISNULL(,0) = 0 THEN 1 ELSE 0 END) AS
FROM _零件生产工艺_工艺库
WHERE = 1
-- 2. 设备状态记录覆盖率最近7天按工位
SELECT
,
COUNT(*) AS ,
MIN() AS ,
MAX() AS
FROM _工位设备状态每分钟记录
WHERE >= DATEADD(DAY, -7, GETDATE())
GROUP BY
ORDER BY DESC
-- 3. 抽查一个订单的实际工时
SELECT
TaskAID,
,
,
SUM(ISNULL(,0)) AS _秒,
SUM(ISNULL(,0)) AS _秒,
COUNT(*) AS
FROM YL_加工中心_操作记录表
WHERE = '10001' -- 替换为实际订单号
AND = '报工'
GROUP BY TaskAID, ,
```
---
> 📅 文档日期: 2026-05-21
> 🔍 状态: 需求讨论阶段待DBA数据验证后进入开发

View File

@@ -0,0 +1,942 @@
# MES 主系统与看板项目综合分析报告
生成日期2026-05-22
分析范围:
- 主系统:`MES_Manage_View_V20`
- 同级看板项目:`board_view``TableTV``机加设备生产运营看板``机加设备生产运营看板二``生产任务看板``装配任务看板``质检任务看板`
- 数据库脚本:更新后的 `MES_Manage_View_V20/script.sql`,最后修改时间为 2026-05-22 13:23:04
排除范围:
- 所有 `.7z``.zip` 压缩包和备份包
- `dist/``node_modules/` 构建产物和依赖目录
- 同级旧版主系统副本 `MacroinfManage_MES``test``新建文件夹` 未纳入本轮业务分析
## 1. 总体结论
当前目录不是单一前端项目,而是一组围绕同一 MES 数据库和 `.ashx` 网关运行的前端应用:
- `MES_Manage_View_V20` 是主业务系统,覆盖计划、工艺、生产、质量、设备、外协、工时、系统权限等完整 MES 功能。
- 上一层目录中的多个项目是看板端,用于大屏展示生产、机加设备、装配、质检、设备状态等实时指标。
- 主系统和新版看板共用同一个后端入口:`https://192.168.2.92:10101/submit/MESCommonBase.ashx`
- 主系统和看板项目都采用“前端传入存储过程名 + 参数,后端 `.ashx` 执行 SQL Server 存储过程”的协议。
- 更新后的 `script.sql` 已包含看板端依赖的关键存储过程,尤其是 `机加设备生产运营看板_*``生产任务综合看板_*``装配中心任务看板_*``质量任务看板_*` 等。
- 但主系统页面仍有 16 个前端调用过程未在当前 `script.sql` 中找到,主要集中在产品结构、摄像头/设备查看权限、点检类型、设备重复校验等非看板功能。
数据库对象统计以更新后的 `script.sql` 为准:
| 对象类型 | 数量 |
| --- | ---: |
| 表 | 50 |
| 视图 | 26 |
| 存储过程 | 345 |
| 函数 | 至少 1 个:`计算班次重叠秒数` |
## 2. 项目组成
### 2.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
- ECharts、FullCalendar、TinyMCE、xlsx、pdfjs、mqtt 等
定位:
主系统是管理端和业务操作端,面向计划员、工艺人员、生产现场、质检人员、设备管理人员、系统管理员。
核心目录:
| 路径 | 说明 |
| --- | --- |
| `src/views` | 业务页面,共 76 个 `.vue`,业务页面约 67 个 |
| `src/utils/request.js` | 主 Axios 实例,读取 `window.dt_Config.serverAddress` |
| `src/utils/curd.js` | `CreateData``ExecDatabase`、表单/表格通用方法、设备 API |
| `src/router` | 固定路由、动态路由、数据库菜单组件映射 |
| `src/store` | 登录、角色、路由、标签页等状态 |
| `static/config.js` | 运行时服务地址配置 |
| `script.sql` | SQL Server 表、视图、存储过程 |
主系统接口地址:
```js
window.dt_Config = {
serverAddress: 'https://192.168.2.92:10101/submit/MESCommonBase.ashx',
baseURL: 'https://192.168.2.92:10101',
baseURLB1: 'https://192.168.2.92:9996/b1s',
baseURLtm: 'https://192.168.2.92:9996/openapi'
}
```
### 2.2 旧版综合看板 `board_view`
技术栈:
- Vue 2.5
- Webpack 3
- `@jiaminghi/data-view`
- ECharts 5
- `vue-seamless-scroll`
- Axios
- `speak-tts`
定位:
旧版综合生产监控大屏,页面主体为 `src/views/left.vue`。它展示订单看板、装配看板、未完成工序、环境/水电气、OEE、质量等综合信息。
配置:
```js
window.ConnectConfig = {
url2: 'https://192.168.2.92:10101',
requestConfig: '/submit/MESCommonBase.ashx',
zonePageInterval: 10000,
iframeUrl: 'http://192.168.2.92:10008'
}
```
注意:`request.js` 里仍保留 `window.ConnectConfig.url` 的实例,但当前配置只启用了 `url2`,实际可用的是 `instance2`
主要调用过程:
- `看板_主页六个关键数据_查询`
- `看板_左上订单看板_表格_查询`
- `看板_左中装配看板_表格_查询`
- `看板_左下未完成看板_表格_查询`
- `看板_右上合同看板_表格_查询`
- `看板_右下质量看板_表格_查询`
- `看板_右下质量看板_饼图_查询`
- `看板_中间主体订单_表格_查询`
- `看板_中间主体订单详情_表格_查询`
- `看板_中间实时OEE数据展示_查询`
- `看板_左上计划执行情况_曲线_查询`
- `Event_CaChe_Var_看板查询`
- `设备管理_设备状态_查询`
### 2.3 通用表格看板 `TableTV`
技术栈:
- Vue 3.5
- Vite 5
- Element Plus
- TDesign Vue Next
- Pinia
- Axios
定位:
通用工位/任务卡片式滚动看板。`public/config.js` 中配置了标题和目标 SQL
```js
window.g = {
API_WEB_URL: 'https://192.168.2.92:10101',
TV_TITLE: '元利流体 · 生产计划看板',
TV_SQL: 'TV_视图看板_查询'
}
```
实际代码观察:
- `src/views/index.vue` 当前直接调用 `设备管理_设备状态_查询`
- `TV_SQL` 当前未在页面取数逻辑中使用。
- 页面每 5 秒刷新一次数据。
这是一个配置与实现不一致的点:如果设计目标是可配置 SQL 看板,应把 `window.g.TV_SQL` 接入 `fetchData`
### 2.4 机加设备生产运营看板一
路径:`../机加设备生产运营看板`
技术栈:
- Vue 3.5
- Vite 5
- Element Plus
- TDesign Vue Next
- `@kjgl77/datav-vue3`
- ECharts 6
- Axios
- Pinia
定位:
机加设备生产运营看板一,展示设备运行状态、计划执行率、未及时开工、不良品、当天完成、设备任务与明细。
配置:
```js
window.g = {
API_WEB_URL: 'https://192.168.2.92:10101'
}
```
主要调用过程:
- `机加设备生产运营看板_设备任务查询`
- `机加设备生产运营看板_不良品查询`
- `质量任务看板_当天已完成汇总`
- `机加设备生产运营看板_当天已完成明细`
- `机加设备生产运营看板_设备运行状态查询`
- `机加设备生产运营看板_未及时开工查询`
- `机加设备生产运营看板_计划执行率`
### 2.5 机加设备生产运营看板二
路径:`../机加设备生产运营看板二`
技术栈与看板一基本一致。
定位:
机加设备生产运营看板二,侧重加急任务、机加在制任务及机加在制扩展视图。
主要调用过程:
- `机加设备生产运营看板_加急任务查询`
- `机加设备生产运营看板_机加在制查询`
- `机加设备生产运营看板_机加在制查询2`
### 2.6 生产任务看板
路径:`../生产任务看板`
技术栈:
- Vue 3.5
- Vite 5
- Element Plus
- TDesign Vue Next
- ECharts 6
- Axios
定位:
生产任务综合看板,关注齐套、无工艺未排产、加急任务、未及时开工、未按期齐套等生产计划执行风险。
主要调用过程:
- `生产任务综合看板_按期齐套率`
- `生产任务综合看板_未排产无工艺查询`
- `生产任务综合看板_加急任务查询`
- `生产任务综合看板_未及时开工查询`
- `生产任务综合看板_未按期齐套任务`
### 2.7 装配任务看板
路径:`../装配任务看板`
技术栈:
- Vue 3.5
- Vite 5
- Element Plus
- TDesign Vue Next
- `datav-vue3`
- ECharts 6
定位:
装配中心任务大屏,展示异常未关闭、发货状态、在制品缺件、加急任务、装配任务、装配合格率、已完成任务等。
主要调用过程:
- `装配中心任务看板_异常未关闭总数`
- `装配中心任务看板_发货状态查询`
- `装配中心任务看板_在制品缺件查询`
- `装配中心任务看板_加急任务总数查询`
- `装配中心任务看板_装配任务查询`
- `装配中心任务看板_装配合格率`
- `装配中心任务看板_已完成任务`
补充:
该项目内还有 `ProductionTaskDashboard.vue`,复用了生产任务综合看板的 5 个过程,说明装配看板项目中包含生产任务综合看板的备用或切换页面。
### 2.8 质检任务看板
路径:`../质检任务看板`
技术栈:
- Vue 3.5
- Vite 5
- Element Plus
- TDesign Vue Next
- ECharts 6
定位:
质量任务看板,关注未完成质检任务、不同类型任务统计、未完成明细、当天已完成汇总与明细。
主要调用过程:
- `质量任务看板_未完成统计`
- `质量任务看板_未完成明细查询`
- `质量任务看板_当天已完成汇总`
- `质量任务看板_当天已完成明细`
## 3. 统一接口协议
### 3.1 主系统 Vue2 协议
主系统通过 `src/utils/curd.js` 提供全局方法:
```text
业务页面
-> this.CreateData(type, procedureName, params, pageSize, pageList)
-> this.ExecDatabase(data)
-> axios POST window.dt_Config.serverAddress
-> MESCommonBase.ashx
-> SQL Server 存储过程
```
请求对象主要字段:
| 字段 | 说明 |
| --- | --- |
| `type` | 操作类型。常见为 `11` 查询、`12` 写入/更新、`2001` 导出。准确语义由后端 `.ashx` 定义。 |
| `name` | 存储过程名 |
| `param` | 参数 JSON 字符串,数组项包含 `name/value/type/output` |
| `pageSize` | 分页大小 |
| `pageList` | 页码或分页参数 |
| `UserID` | 当前用户 ID |
| `UserName` | 当前用户姓名 |
| `ModularID` | 当前路由路径 |
### 3.2 新版 Vue3 看板协议
Vite/Vue3 看板项目通过 `src/utils/curdVue3.js``src/utils/curd.js` 注入:
- `CreateData`
- `ExecDatabase`
- `ExecDatabaseByParam`
接口地址统一为:
```js
window.g.API_WEB_URL + '/submit/MESCommonBase.ashx'
```
大多数新版看板请求超时时间为 5 秒,明显短于主系统的 25 分钟超时,更适合大屏定时刷新,但也要求看板查询过程必须足够快。
### 3.3 旧版 `board_view` 协议
旧版看板使用 `window.ConnectConfig.url2 + requestConfig` 访问同一 `.ashx` 网关,通过自定义 `CreateData1` 调用 `看板_*` 过程。
## 4. 主系统业务功能
### 4.1 系统维护
页面:
- 人员管理
- 角色维护
- 菜单管理
- 工位管理
- 组织管理
- 操作日志
核心数据:
- `登录基础数据_人员信息`
- `登录基础数据_角色信息`
- `登录基础数据_人员权限角色`
- `登录基础数据_二级菜单`
- `登录基础数据_部门`
- `工位人员绑定表`
- `MES_资源主数据`
- `_日志`
功能:
- 登录、人员、角色、菜单、权限配置。
- 数据库菜单驱动动态路由。
- 工位基础信息和工位人员绑定。
- 操作日志查询。
### 4.2 计划排产
页面:
- 自制件计划
- 自制件排产
- 自制件已排产
- 装配计划
- 装配执行计划
- 优先级排产
- 计划外壳
- 生产订单关闭
核心数据:
- `MES_接口_生产计划`
- `MES_接口_生产计划_生产任务`
- `计划任务视图`
- `View_生产订单_MES`
- `View_生产订单全部包括已关闭`
功能:
- 查询生产订单和任务。
- 按自制件属性区分机加、装配。
- 派工、二次派工、单任务派工。
- 计划时间调整、说明维护、优先级管理。
- 订单关闭与 SAP B1 状态协同。
### 4.3 工艺管理
页面:
- 工序管理
- 标准工艺维护
- 生产工艺维护
- 工艺查询
- 生产订单工艺下发
- 零件图纸、工艺图纸、采购图纸查看/上传/删除
核心数据:
- `基础表_工序`
- `车间生产管理工艺_零件工序_工艺库`
- `车间生产管理工艺_零件生产工艺_工艺库`
- `物料基础数据_零件图纸`
- `物料基础数据_工艺图纸`
- `物料基础数据_零件图纸删除记录`
- `View_标准工艺视图`
- `View_生产工艺视图`
- `View_图纸视图`
功能:
- 标准工艺制定和复制。
- 生产工艺按订单生成、调整、排序、启用。
- 图纸上传下载与删除记录。
- 生产任务下发前的工艺准备。
### 4.4 生产管理
核心页面:
- 加工中心
- 装配中心
- 生产任务管理
- 装配任务管理
- 生产任务汇总
- 装配任务汇总
- 生产计划跟踪
- 外协管理
- 外协报表
- 工时查询
- 工时统计
- 工时校验
- 工时编辑
- 加急件
- 拣配任务
- 班次管理
- 过程异常管控
核心数据:
- `MES_接口_生产计划`
- `MES_接口_生产计划_生产任务`
- `YL_加工中心_操作记录表`
- `YL_加工中心_报工记录`
- `生产管理_工时校验_校验工时表`
- `班次表`
- `班次人员绑定表`
- `设备信息缓存表`
- `View_生产工时视图`
- `View_校验后的生产工时`
- `View_外协报表视图`
功能:
- 现场开工、暂停、继续、报工、送检、完工。
- 工位/人员/任务绑定。
- 外协发料、收料、打印、备注、历史和质检记录。
- 工时校验、批量校验、异常工时录入。
- 加急、拣配、任务跟踪和汇总。
### 4.5 质量管理
页面:
- 质量中心
- 质检明细
- 检验标准
- 不合格品处置
- 来料检验
- 序检收检
- 终检
- 销售退货检
- 其他入库检验
- 原材料退库检验
核心数据:
- `YL_质量检验_质检记录`
- `YL_质量检验_检测标准`
- `YL_质量检验_量具信息`
- `YL_质量检验_质检记录_检测零件`
- `YL_质量检验_质检记录_检测数据`
- `YL_质量检验_不合格品处理`
- `质量检验_质检任务_SAP`
- `View_质检明细`
- `View_质量检验_质检记录`
- `View_终检状态`
功能:
- 质检任务查询和处理。
- 检测标准维护。
- 多零件、多项目检测数据记录。
- 合格、不合格、让步放行、报废统计。
- 不合格品处理流程。
- 与 SAP B1/TM 接口协同。
### 4.6 设备管理
页面:
- 设备信息
- 设备实时数据
- 设备历史数据
- 设备状态
核心数据:
- `YL_设备管理_设备台账`
- `YL_设备管理_维修记录`
- `YL_设备管理_工时记录`
- `历史_工位设备状态每分钟记录`
- `历史_设备数据_定时`
- `CaChe_Var`
- `报警_记录_历史`
- `报警_记录_历史_缓存`
功能:
- 设备台账维护。
- 设备运行状态和历史采集数据查询。
- 报警、缓存变量、OEE/状态看板支撑。
## 5. 数据库结构
### 5.1 表清单
更新后的 `script.sql` 包含 50 张表:
- `_日志`
- `Attachments`
- `BOM数据`
- `CaChe_Var`
- `MES_接口_工艺路线主数据`
- `MES_接口_生产计划`
- `MES_接口_生产计划_生产任务`
- `MES_资源主数据`
- `YL_基础表_数据字典`
- `YL_加工中心_报工记录`
- `YL_加工中心_操作记录表`
- `YL_设备管理_工时记录`
- `YL_设备管理_设备台账`
- `YL_设备管理_维修记录`
- `YL_质量检验_不合格品处理`
- `YL_质量检验_不合格品处理_处理节点`
- `YL_质量检验_检测标准`
- `YL_质量检验_量具信息`
- `YL_质量检验_质检记录`
- `YL_质量检验_质检记录_检测零件`
- `YL_质量检验_质检记录_检测数据`
- `班次表`
- `班次人员绑定表`
- `报警_记录_历史`
- `报警_记录_历史_缓存`
- `车间生产管理工艺_零件工序_工艺库`
- `车间生产管理工艺_零件生产工艺_工艺库`
- `登录基础数据_部门`
- `登录基础数据_二级菜单`
- `登录基础数据_角色信息`
- `登录基础数据_人员权限角色`
- `登录基础数据_人员信息`
- `工位人员绑定表`
- `基础表_工序`
- `基础数据_设备工位点检表`
- `记录_日志_项目运行日志`
- `历史_工位设备状态每分钟记录`
- `历史_设备数据_定时`
- `流程表`
- `流程节点表`
- `流程完成记录表`
- `流程转办表`
- `设备信息缓存表`
- `审批记录表`
- `生产管理_工时校验_校验工时表`
- `物料基础数据_工艺图纸`
- `物料基础数据_零件图纸`
- `物料基础数据_零件图纸删除记录`
- `物料数据`
- `质量检验_质检任务_SAP`
### 5.2 视图清单
更新后的 `script.sql` 包含 26 个视图:
- `v_CurrentProductionStatus`
- `View_报工人员`
- `View_标准工艺视图`
- `View_工位人员绑定数`
- `View_基础数据_工位`
- `View_设备工位人员`
- `View_生产订单_MES`
- `View_生产订单Temp_ERP`
- `View_生产订单全部包括已关闭`
- `View_生产订单完工`
- `View_生产工时视图`
- `View_生产工艺视图`
- `View_生产计划零件图纸视图`
- `View_图纸视图`
- `View_外协报表视图`
- `View_外协质检`
- `View_校验后的生产工时`
- `View_账号权限信息`
- `View_质检明细`
- `View_质量检验_不合格品处理`
- `View_质量检验_质检记录`
- `View_质量检验_质检记录_外协收检`
- `View_终检状态`
- `View_装配信息`
- `登录基础数据_管理人员权限视图`
- `计划任务视图`
### 5.3 存储过程分布
| 前缀/业务域 | 数量 |
| --- | ---: |
| `MES_` | 70 |
| `生产管理_` | 39 |
| `工艺管理_` | 38 |
| `质量管理_` | 21 |
| `工时...` | 20 |
| `计划排产_` | 17 |
| `sp_` 审批/流程/分页类 | 13 |
| `看板_` 旧版综合看板 | 11 |
| `设备管理_` | 10 |
| `Event_` 采集/报警/日志事件 | 10 |
| `机加设备生产运营看板_` | 9 |
| `菜单...` | 9 |
| `人员管理_` | 7 |
| `usp_` 工时计算/校验辅助 | 7 |
| `装配中心任务看板_` | 7 |
| `生产任务综合看板_` | 6 |
| `质量任务看板_` | 4 |
| `TV_` | 3 |
| `WEB_` | 2 |
| 其他 | 42 |
### 5.4 看板过程清单
旧版综合看板:
- `看板_主页六个关键数据_查询`
- `看板_左上订单看板_表格_查询`
- `看板_左上计划执行情况_曲线_查询`
- `看板_左中装配看板_表格_查询`
- `看板_左下未完成看板_表格_查询`
- `看板_右上合同看板_表格_查询`
- `看板_右下质量看板_表格_查询`
- `看板_右下质量看板_饼图_查询`
- `看板_中间主体订单_表格_查询`
- `看板_中间主体订单详情_表格_查询`
- `看板_中间实时OEE数据展示_查询`
机加设备生产运营看板:
- `机加设备生产运营看板_设备任务查询`
- `机加设备生产运营看板_不良品查询`
- `机加设备生产运营看板_当天已完成明细`
- `机加设备生产运营看板_设备运行状态查询`
- `机加设备生产运营看板_未及时开工查询`
- `机加设备生产运营看板_计划执行率`
- `机加设备生产运营看板_加急任务查询`
- `机加设备生产运营看板_机加在制查询`
- `机加设备生产运营看板_机加在制查询2`
生产任务综合看板:
- `生产任务综合看板_按期齐套率`
- `生产任务综合看板_未排产无工艺查询`
- `生产任务综合看板_加急任务查询`
- `生产任务综合看板_未及时开工查询`
- `生产任务综合看板_未及时开工查询_Count`
- `生产任务综合看板_未按期齐套任务`
装配中心任务看板:
- `装配中心任务看板_异常未关闭总数`
- `装配中心任务看板_发货状态查询`
- `装配中心任务看板_在制品缺件查询`
- `装配中心任务看板_加急任务总数查询`
- `装配中心任务看板_装配任务查询`
- `装配中心任务看板_装配合格率`
- `装配中心任务看板_已完成任务`
质量任务看板:
- `质量任务看板_未完成统计`
- `质量任务看板_未完成明细查询`
- `质量任务看板_当天已完成汇总`
- `质量任务看板_当天已完成明细`
TV/设备看板:
- `TV_视图看板_查询`
- `TV_视图看板2楼_查询`
- `TV_视图看板仓库_查询`
- `设备管理_设备状态_查询`
- `Event_CaChe_Var_看板查询`
本轮核对结果:看板端 36 个关键调用过程在更新后的 `script.sql` 中全部存在。
## 6. 核心业务数据流
### 6.1 计划到执行
```text
SAP/ERP 生产计划
-> MES_接口_生产计划
-> MES_接口_生产计划_生产任务
-> 工艺维护/生产工艺下发
-> 计划排产/派工
-> 加工中心/装配中心执行
-> 报工/质检/入库/订单关闭
```
关键字段:
- `订单编号`
- `合同号`
- `计划号`
- `TaskAID`
- `阶段标识`
- `工序名称`
- `指派对象`
- `计划开始时间`
- `计划完成时间`
- `任务状态`
- `完成数量`
- `合格数量`
- `不合格数量`
### 6.2 工艺到任务
```text
基础表_工序
-> 标准工艺库
-> 生产工艺库
-> 生产订单工艺任务下发
-> MES_接口_生产计划_生产任务
```
关键表:
- `基础表_工序`
- `车间生产管理工艺_零件工序_工艺库`
- `车间生产管理工艺_零件生产工艺_工艺库`
### 6.3 生产工时
```text
现场开工/暂停/继续/报工
-> YL_加工中心_操作记录表
-> YL_加工中心_报工记录
-> 工时校验
-> 生产管理_工时校验_校验工时表
-> 工时统计/导出/上传
```
关键过程:
- `usp_ValidateWorkTime`
- `usp_BatchValidateWorkTime`
- `usp_CalculateShiftTime`
- `usp_CalculateUploadMinutes`
- `工时统计_任务工时_查询`
- `工时统计_设备工时_查询`
- `工时统计_项目工时_查询`
- `工时统计_作业者工时_查询`
### 6.4 质量检验
```text
生产任务/质检任务
-> YL_质量检验_质检记录
-> YL_质量检验_质检记录_检测零件
-> YL_质量检验_质检记录_检测数据
-> 合格/不合格/让步/报废
-> 不合格品处置或 SAP/TM 回写
```
关键表:
- `YL_质量检验_检测标准`
- `YL_质量检验_质检记录`
- `YL_质量检验_质检记录_检测零件`
- `YL_质量检验_质检记录_检测数据`
- `质量检验_质检任务_SAP`
### 6.5 看板数据流
```text
MES 主业务表/视图
-> 看板专用存储过程
-> MESCommonBase.ashx
-> Vue2/Vue3 看板定时刷新
-> 大屏指标、滚动表格、图表
```
看板常用数据来源:
- `View_生产订单_MES`
- `View_生产工时视图`
- `View_生产工艺视图`
- `View_质检明细`
- `v_CurrentProductionStatus`
- `MES_接口_生产计划`
- `MES_接口_生产计划_生产任务`
- `YL_加工中心_操作记录表`
- `YL_质量检验_质检记录`
- `历史_设备数据_定时`
- `CaChe_Var`
## 7. 主系统与看板关系
| 维度 | 主系统 | 看板端 |
| --- | --- | --- |
| 主要使用者 | 计划、工艺、生产、质检、设备、管理员 | 车间、管理层、现场展示屏 |
| 操作方式 | 表单、表格、弹窗、日历、文件上传下载 | 只读大屏、自动刷新、滚动列表、图表 |
| 技术栈 | Vue2 + Webpack + Element UI | Vue2/Webpack/DataV 或 Vue3/Vite/Element Plus/TDesign |
| 接口 | `window.dt_Config.serverAddress` | `window.g.API_WEB_URL``window.ConnectConfig.url2` |
| 数据协议 | `CreateData + ExecDatabase` | 同协议或简化封装 |
| 主要过程 | 计划/生产/质量/设备/系统管理过程 | `看板_*``*_任务看板_*``机加设备生产运营看板_*` |
| 数据权限 | 登录、角色、动态菜单 | 多数看板不走完整登录权限,直接读接口 |
## 8. 当前风险与问题
1. 主系统仍有 16 个前端调用过程未包含在当前 `script.sql`
缺失清单:
- `Prog_MES_SingleTaskPlanned`
- `WEB_报警查询_未读报警记录_查询`
- `WEB_报警查询_未读报警记录_未读条数查询`
- `WEB_基本表_产品结构_查询`
- `WEB_基本表_产品结构_删除`
- `WEB_基本表_产品结构_新增`
- `WEB_基本表_产品结构_修改`
- `WEB_人员设备查看权限_查询`
- `WEB_人员设备查看权限_权限切换`
- `WEB_人员摄像头查看权限_权限切换`
- `WEB_摄像头查看权限_查询`
- `产品关系_变更节点排序`
- `登录基础数据_人员信息_切换是否用户`
- `点检类型_查询`
- `工艺名称_查询`
- `设备管理_设备信息_验证工位号是否重复`
2. 看板 SQL 已补齐,但刷新压力要评估
新版看板多数 5 秒刷新一次。如果多个大屏同时打开,`MESCommonBase.ashx` 和 SQL Server 会承受周期性查询压力。看板过程应避免重 JOIN、避免全表扫描必要时用缓存表或汇总表。
3. `TableTV` 配置与实现不一致
`public/config.js` 配置了 `TV_SQL: 'TV_视图看板_查询'`,但当前页面直接调用 `设备管理_设备状态_查询`。如果希望“一套 TableTV 通过配置切换不同 SQL”需要修正实现。
4. 编码问题仍然存在
主系统和旧版 `board_view` 中大量中文在默认 PowerShell 输出为乱码。用 `-Encoding UTF8` 可正常读取部分文件,但历史文件可能混有不同编码。维护过程名和中文字段时要格外谨慎。
5. 认证与权限边界薄弱
主系统 Cookie 中的 `Admin-Token` 更像角色编号新版看板多数直接读接口不走完整登录权限。如果看板部署在内网之外需要后端加白名单、token 或网关控制。
6. 多项目重复代码明显
多个 Vite 看板项目复制了相同的:
- `src/utils/request.js`
- `src/utils/curd.js`
- `src/utils/curdVue3.js`
- `src/router`
- `src/store`
- 静态资源和配置结构
后续维护时容易出现一个看板修了协议,其他看板未同步的问题。
7. 主系统超时时间过长,看板超时时间偏短
- 主系统1500000ms约 25 分钟。
- 新版看板5000ms约 5 秒。
建议对接口分层配置:普通业务、导出、看板查询分别设置合理超时。
## 9. 建议技术路线
### 9.1 短期
- 以更新后的 `script.sql` 为基础,补齐主系统缺失的 16 个过程。
- 为看板过程建立清单和刷新频率表,确认每个过程的平均耗时。
- 修正 `TableTV``TV_SQL` 未生效问题,或者删除无效配置避免误导。
- 保留当前 `.ashx + 存储过程` 架构,先稳定生产。
- 将看板项目部署说明补全:端口、访问路径、`public/config.js`、构建命令、后端地址。
### 9.2 中期
- 抽取 Vue3 看板公共模板,统一 `request/curdVue3/router/store`
- 对看板 SQL 建立缓存或中间汇总表,降低实时查询压力。
- 主系统建立“页面-过程-表/视图”映射文档,优先覆盖加工中心、质量中心、外协、工时校验、排产。
-`.ashx` 返回结构、错误码、超时、登录失效做统一拦截。
- 清理乱码和历史备份文件,确认源码统一 UTF-8。
### 9.3 长期
- 后端从“前端直接传过程名”逐步演进为明确业务 API。
- 建立数据库版本管理机制,按版本维护增量 SQL 和回滚脚本。
- 看板数据进入独立只读 API 或缓存服务,避免大屏直接冲击业务库。
- SAP B1、TM、设备/PLC 接口统一收敛到后端服务层。
- 建立权限模型:主系统、看板、设备接口分层授权。
## 10. 接手排查路径
主系统页面问题:
1. 找页面:`MES_Manage_View_V20/src/views/<模块>/<页面>/index.vue`
2. 搜索 `CreateData(`,确认存储过程名。
3.`script.sql` 搜索该过程。
4. 检查过程返回列名是否与前端表格字段一致。
5. 检查 `static/config.js` 服务地址。
看板页面问题:
1. 找同级看板目录。
2. 查看 `public/config.js``static/config.js`
3. 搜索 `queryDashboardData(``CreateData(``ExecDatabaseByParam(`
4.`script.sql` 中定位对应看板过程。
5. 检查过程耗时、返回字段、刷新频率。
6. 若是 `TableTV`,注意当前代码没有使用 `TV_SQL`
数据库问题:
1. 先确认 `script.sql` 版本。
2. 看过程是否存在。
3. 看过程依赖的视图和表是否存在。
4. 看字段名是否与前端一致。
5. 看看板过程是否有全表扫描或复杂排序。