Files
yl/机加设备生产运营看板/机加设备生产运营.md
2026-05-23 14:07:11 +08:00

456 lines
24 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 机加设备生产运营看板 — 实施文档
> 日期2026-05-19
> 涉及页面:看板一 `index.vue`(路由 `/`)、看板二 `machiningOperationTwo.vue`(路由 `/machiningOperationTwo`
---
## 一、技术方案
### 1.1 技术栈
| 层面 | 技术 |
|------|------|
| 前端框架 | Vue 3.5Composition API + `<script setup>` |
| 路由 | Vue Router 4Hash 模式) |
| 状态管理 | Pinia 2 + reactive / ref |
| 大屏组件 | `@kjgl77/datav-vue3`dv-scroll-board 滚动表格) |
| 图表 | ECharts 6环形图、柱状图 |
| UI 组件 | Element Plus + TDesign Vue Next |
| 数据通信 | Axios → `CreateData` + `ExecDatabase`(调用后端存储过程) |
| 构建工具 | Vite 5 |
### 1.2 架构分层
```
┌──────────────────────────────────────────────┐
│ 浏览器大屏展示 │
│ index.vue (看板一) │ machiningOperation- │
│ │ Two.vue (看板二) │
├──────────────────────────────────────────────┤
│ curdVue3.js (CreateData / ExecDatabase) │
│ → axios → /submit/MESCommonBase.ashx │
├──────────────────────────────────────────────┤
│ 后端存储过程 (SQL Server) │
│ 看板一 × 6 个存储过程 │
│ 看板二 × 3 个存储过程 │
│ 新增:运行报工设备数据读取 × 1 │
└──────────────────────────────────────────────┘
```
### 1.3 数据流向
```
存储过程 → ExecDatabase( CreateData('11', 过程名, []) )
→ response.data / response.data.result
→ applyXxxData(rows) 映射字段
→ reactive / ref → computed → 模板渲染
```
---
## 二、技术路线
```
Phase 1 数据连通 ──→ Phase 2 布局调整 ──→ Phase 3 新增模块
───────────────────────────────────────────────────────────────
确认存储过程 调整面板尺寸/位置 运行报工设备数据
字段映射正确 交换不良品/合格率位置 读取存储过程
API 返回验证 6 列状态卡片对齐 新增看板面板
% 号显示修复 字段映射 + 渲染
```
---
## 三、模块清单
### 看板一index.vue— 路由 `/`
| 序号 | 模块 | 功能 | 状态 |
|------|------|------|------|
| 1 | 设备运行状态 | 6 卡片:设备总数 / 运行 / 待机 / 报警 / 关机 | ✅ 已完成 |
| 2 | 计划执行率 | 环形图百分比 | ✅ |
| 3 | 未及时开工 | 数字指标 | ✅ |
| 4 | 不良品汇总 | 数字指标 | ✅ |
| 5 | 已完工作务 / 合格率 | 已完工数 + 合格率 | ✅ |
| 6 | 设备运行状态明细 | dv-scroll-board 滚动表格 | ✅ |
| 7 | 未及时开工明细 | dv-scroll-board 表格 | ✅ |
| 8 | 不良品明细 | dv-scroll-board 表格 | ✅ |
| 9 | 未及时开工指派汇总 | 按指派对象分组计数卡片 | ✅ 新增 |
### 看板二machiningOperationTwo.vue— 路由 `/machiningOperationTwo`
| 序号 | 模块 | 功能 | 状态 |
|------|------|------|------|
| 1 | 在制任务汇总 | 数字卡片 | ✅ |
| 2 | 加急任务汇总 | 数字卡片 | ✅ |
| 3 | 关键工序任务 | 数字卡片 | ❌ 无功能,不介入 |
| 4 | 缺勤人员 | 名单卡片 | ❌ 无功能,不介入 |
| 5 | 在制任务明细 | dv-scroll-board 表格 + 进度条 | ✅ |
| 6 | 加急任务列表 | dv-scroll-board 表格 | ✅ |
| 7 | 关键工序任务明细 | dv-scroll-board 表格 | ❌ 无功能 |
| 8 | 正在开工任务 | dv-scroll-board 表格 | ✅ |
| 9 | 运行报工设备数据 | 新增面板 | 🔨 今日新增 |
---
## 四、涉及的表和存储过程
### 看板一6 个存储过程)
| 存储过程名 | 用途 | 回调函数 |
|-----------|------|----------|
| `机加设备生产运营看板_设备运行状态查询` | 设备总数 / 运行 / 待机 / 报警 / 关机 | `applyDashboardData` |
| `机加设备生产运营看板_计划执行率` | 计划执行率百分比 | `applyPlanExecuteData` |
| `机加设备生产运营看板_未及时开工查询` | 未及时开工明细列表 | `applyNotStartData` |
| `质量任务看板_当天已完成汇总` | 已完工总数 + 合格率 | `applyTodayDoneSummaryData` |
| `机加设备生产运营看板_当天已完成明细` | 已完工明细列表 | `applyTodayDoneDetailData` |
| `机加设备生产运营看板_不良品查询` | 不良品明细列表 | `applyunqualifiedData` |
### 看板二3 个存储过程 + 1 新增)
| 存储过程名 | 用途 | 回调函数 |
|-----------|------|----------|
| `机加设备生产运营看板_机加在制查询` | 正在开工任务 | `applyInProcessData` |
| `机加设备生产运营看板_机加在制查询2` | 在制任务总数 + 明细 | `applyInProcessData2` |
| `机加设备生产运营看板_加急任务查询` | 加急任务汇总 + 列表 | `applyUrgentData` |
| `机加设备生产运营看板_运行报工设备` | **新增** 运行报工设备数据 | `applyReportEquipData` |
---
## 五、功能流程图
### 5.1 看板一 数据加载流程
```
onMounted()
├─ refreshClock() ← 时钟每秒更新
├─ setScale() ← 1920×1080 自适应缩放
└─ searchDashboardData()
├─ searchDeviceStatusData() → 存储过程_设备运行状态查询
│ └─ applyDashboardData() → summary.equipmentTotal / running / standby / alarm / shutdown
├─ searchNotStartedData() → 存储过程_未及时开工查询
│ └─ applyNotStartData() → summary.lateStart + lateStartRows
│ └─ computed: lateStartGroupedByAssignee指派分组计数
├─ searchTodayDoneSummaryData() → 存储过程_当天已完成汇总
│ └─ applyTodayDoneSummaryData() → summary.finishedTask / passRate
├─ searchTodayDoneDetailData() → 存储过程_当天已完成明细
│ └─ applyTodayDoneDetailData() → completedRows
├─ searchunqualifiedData() → 存储过程_不良品查询
│ └─ applyunqualifiedData() → summary.defectTotal + defectRows
└─ searchPlanExecuteData() → 存储过程_计划执行率
└─ applyPlanExecuteData() → summary.planRate
└─ renderPlanRateChart() → 环形图
```
### 5.2 看板二 数据加载流程(当前 + 新增)
```
onMounted()
├─ refreshClock()
├─ setScale()
└─ searchDashboardData()
├─ searchUrgentData() → 存储过程_加急任务查询
│ └─ applyUrgentData() → summaryCards[1].value + urgentRows
├─ searchInProcessData() → 存储过程_机加在制查询
│ └─ applyInProcessData() → startedRows正在开工任务
├─ searchInProcessData2() → 存储过程_机加在制查询2
│ └─ applyInProcessData2() → summaryCards[0].value + inProcessRows在制明细
└─ searchReportEquipData() ← 🆕 存储过程_运行报工设备
└─ applyReportEquipData() → reportEquipRows新增面板数据
```
### 5.3 未及时开工指派汇总(看板一新增模块)
```
lateStartRows (API 返回)
└─ computed: lateStartGroupedByAssignee
├─ forEach row → groupMap[row.assignee].totalQty += 1
└─ return Object.values(groupMap)
└─ 模板 v-for 渲染 assignee-card
┌──────────────┐
│ 指派对象 │
│ 记录条数 │
└──────────────┘
```
---
## 六、字段映射对照表
### 6.1 看板一 字段映射
#### applyDashboardData设备运行状态查询
| 存储过程字段 | 前端变量 | 说明 |
|-------------|---------|------|
| 总数 | `summary.equipmentTotal` | 设备总数(当前写死 18 |
| 运行数量 | `summary.running` | 运行中设备数 |
| 待机数量 | `summary.standby` | 待机设备数 |
| 报警数量 | `summary.alarm` | 报警设备数 |
| 关机数量 | `summary.shutdown` | 关机设备数 |
#### applyNotStartData未及时开工查询
| 存储过程字段 | 前端变量 | 说明 |
|-------------|---------|------|
| 总记录数 | `summary.lateStart` | 未及时开工总数 |
| 订单号 | `row.productionOrder` | — |
| 合同号 | `row.salesOrder` | — |
| 零件名称 | `row.materialName` | — |
| 零件编码 | `row.materialCode` | — |
| 工序名称 | `row.processName` | — |
| 分配数 | `row.assignQty` | 默认 0 |
| 上序合格数 | `row.prevPassQty` | 默认 0 |
| 加急数量 | `row.urgentQty` | 默认 0 |
| 指派对象 | `row.assignee` | 分组汇总 key |
#### applyTodayDoneSummaryData当天已完成汇总
| 存储过程字段 | 前端变量 | 说明 |
|-------------|---------|------|
| totalCount | `summary.finishedTask` | 已完工总数 |
| passCount | 计算分子 | 合格数 |
| failCount | 计算分母 | 不合格数 |
| — | `summary.passRate` | `(passCount/(passCount+failCount))*100 → toFixed(2) + '%'` |
#### applyTodayDoneDetailData当天已完成明细
| 存储过程字段 | 前端变量 | 说明 |
|-------------|---------|------|
| orderNo | `row.productionOrder` | — |
| materialName | `row.materialName` | — |
| materialCode | `row.materialCode` | — |
| processName | `row.processName` | — |
| passQty | 计算分子 | — |
| failQty | 计算分母 | — |
| — | `row.passRate` | `(passQty/(passQty+failQty))*100 → toFixed(2)` |
#### applyunqualifiedData不良品查询
| 存储过程字段 | 前端变量 | 说明 |
|-------------|---------|------|
| 总记录数 | `summary.defectTotal` | 不良品汇总数 |
| 计划号 | `row.productionOrder` | — |
| 内部合同号 | `row.salesOrder` | — |
| 零件名称 | `row.materialName` | — |
| 零件编码 | `row.materialCode` | — |
| 工序名称 | `row.processName` | — |
| 不合格数 | `row.defectQty` | — |
| 指派对象 | `row.assignee` | 默认 '' |
#### applyPlanExecuteData计划执行率
| 存储过程字段 | 前端变量 | 说明 |
|-------------|---------|------|
| 计划执行率_百分数 | `summary.planRate` | 计划执行率 |
### 6.2 看板二 字段映射
#### applyUrgentData加急任务查询
| 存储过程字段 | 前端变量 | 说明 |
|-------------|---------|------|
| 加急订单总数 | `summaryCards[1].value` | 加急汇总数 |
| 订单编号 | `row.productionOrder` | — |
| 合同号 | `row.salesOrder` | — |
| 物料描述 | `row.materialName` | — |
| 物料编号 | `row.materialCode` | — |
| 计划数量 | `row.assignQty` | — |
| 加急数量 | `row.urgentQty` | — |
| 工序名称 | `row.processName` | — |
| 指派对象 | `row.assignee` | — |
#### applyInProcessData机加在制查询 — 正在开工)
| 存储过程字段 | 前端变量 | 说明 |
|-------------|---------|------|
| 订单号 | `row.productionOrder` | — |
| 合同号 | `row.salesOrder` | — |
| 零件名称 | `row.materialName` | — |
| 零件编码 | `row.materialCode` | — |
| 分配数 | `row.assignQty` | — |
| 工序名称 | `row.processName` | — |
| 指派对象 | `row.assignee` | — |
#### applyInProcessData2机加在制查询2 — 在制明细)
| 存储过程字段 | 前端变量 | 说明 |
|-------------|---------|------|
| 总数 | `summaryCards[0].value` | 在制汇总数 |
| 订单号 | `row.productionOrder` | — |
| 合同号 | `row.salesOrder` | — |
| 零件名称 | `row.materialName` | — |
| 零件编码 | `row.materialCode` | — |
| 分配数 | `row.assignQty` | — |
| 工序名称 | `row.processName` | — |
| 指派对象 | `row.assignee` | — |
| 完成数量 | `row.finishQty` | — |
| — | `row.progress` | `(完成数量/分配数)*100 → toFixed(2)` |
### 6.3 新增:运行报工设备(待确认)
| 存储过程字段(待确认) | 前端变量 | 说明 |
|---------------------|---------|------|
| 待确认 | `row.xxx` | — |
---
## 七、今日详细工作步骤
### 步骤 1沟通确认上午
| 事项 | 内容 |
|------|------|
| **看板一数据** | 与后端确认 6 个存储过程的返回字段是否与前端字段映射一致 |
| **看板二数据** | 确认 3 个存储过程字段,`关键工序任务``缺勤人员` 本期不实现 |
| **新增存储过程** | 沟通 `机加设备生产运营看板_运行报工设备` 的返回字段结构 |
| **样式布局** | 确认两个页面布局调整需求面板位置交换、宽度调整、6 列状态卡片 |
### 步骤 2看板一 样式/布局修改(下午·编码)
| 编号 | 任务 | 涉及文件 | 状态 |
|------|------|---------|------|
| 2.1 | 设备运行状态面板 6 列 grid + 面板加宽至 900px | `index.vue` CSS | ✅ 已完成 |
| 2.2 | 已完工作务与不良品汇总交换位置,宽度调整 | `index.vue` CSS | ✅ 已完成 |
| 2.3 | 合格率 % 号显示修复(数据拼 % + 去掉 small 标签) | `index.vue` script + template | ✅ 已完成 |
| 2.4 | 未及时开工指派汇总:按指派对象分组计数卡片面板 | `index.vue` template + script + CSS | ✅ 已完成 |
### 步骤 3看板二 Bug 修复(下午·编码)
| 编号 | 任务 | 涉及文件 | 状态 |
|------|------|---------|------|
| 3.1 | `extendRows` 空数组死循环修复 | `machiningOperationTwo.vue` | ✅ 已完成 |
| 3.2 | `makeTaskBoard` columnWidth 9→8 修复 | `machiningOperationTwo.vue` | ✅ 已完成 |
| 3.3 | 路由 path 修正为 `/machiningOperationTwo` | `router/index.js` | ✅ 已完成 |
### 步骤 4新增运行报工设备模块下午·编码
| 编号 | 任务 | 涉及文件 | 状态 |
|------|------|---------|------|
| 4.1 | 新增 `searchReportEquipData` 调用存储过程 | `machiningOperationTwo.vue` | 🔲 待字段确认 |
| 4.2 | 编写 `applyReportEquipData` 回调,映射字段 | `machiningOperationTwo.vue` | 🔲 待字段确认 |
| 4.3 | 模板新增 `report-equip-panel` + `dv-scroll-board` | `machiningOperationTwo.vue` | 🔲 待字段确认 |
| 4.4 | CSS 定位、尺寸样式 | `machiningOperationTwo.vue` | 🔲 待字段确认 |
### 步骤 5联调验证下午
| 编号 | 任务 | 状态 |
|------|------|------|
| 5.1 | 看板一全部面板数据加载正常 | 🔲 |
| 5.2 | 看板二全部面板数据加载正常 | 🔲 |
| 5.3 | 新增运行报工设备面板数据正常 | 🔲 |
| 5.4 | 1920×1080 缩放无溢出/遮挡 | 🔲 |
| 5.5 | 两个页面切换正常 | 🔲 |
---
## 八、看板一 面板布局总览
```
┌──────────────────────────────────────────────────────────────────────────────┐
│ header (1920×86) 品牌Logo + 机加设备生产运营看板(一) + 时钟 │
├──────────────────────────────────────────────────────────────────────────────┤
│ ┌──────────────┐ ┌────┐ ┌──────┐ ┌──────┐ ┌──────────────┐ │
│ │ 设备运行状态 │ │计划 │ │未及时 │ │不良品 │ │ 已完工作务 │ ← 顶部行 │
│ │ 900×172 │ │执行率│ │开工 │ │汇总 │ │ / 合格率 │ 172px高 │
│ │ 6卡片: 总数 │ │210 │ │216 │ │178 │ │ 340 │ │
│ │ 运行 待机 │ │ │ │ │ │ │ │ │ │
│ │ 报警 关机 │ │ │ │ │ │ │ │ │ │
│ └──────────────┘ └────┘ └──────┘ └──────┘ └──────────────┘ │
├──────────────────────────────────────────────────────────────────────────────┤
│ ┌──────────────────────┐ ┌──────────────────────────────────────┐ │
│ │ 设备运行状态明细 │ │ 未及时开工明细 │ ← 中部行 │
│ │ 756×374 │ │ 1126×374 │ 374px高 │
│ │ 滚动表格 │ │ 滚动表格 │ │
│ └──────────────────────┘ └──────────────────────────────────────┘ │
├──────────────────────────────────────────────────────────────────────────────┤
│ ┌────────────────────┐ ┌─────────────────────────────────────────┐ │
│ │ 不良品明细 │ │ 未及时开工指派汇总 │ ← 底部行 │
│ │ 720×356 │ │ 1160×356 │ 356px高 │
│ │ 滚动表格 │ │ 按指派对象分组卡片 │ │
│ └────────────────────┘ └─────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────────────────┘
1920×1080
```
---
## 九、看板二 面板布局总览
```
┌──────────────────────────────────────────────────────────────────────────────┐
│ header (1920×76) 品牌Logo + 机加设备生产运营看板(二) + 时钟 │
├──────────────────────────────────────────────────────────────────────────────┤
│ ┌───────────────┐ ┌──────────────┐ ┌──────────────┐ ┌─────────────────────┐ │
│ │在制任务汇总 │ │加急任务汇总 │ │关键工序任务 │ │缺勤人员 │ │
│ │466×128 │ │424×128 │ │404×128 │ │554×128 │ │
│ └───────────────┘ └──────────────┘ └──────────────┘ └─────────────────────┘ │
├─────────────────────────────────────────┬────────────────────────────────────┤
│ │ ┌────────────────────────────────┐ │
│ │ │ 加急任务列表 │ │
│ │ │ 938×270 │ │
│ 在制任务明细 │ │ 滚动表格 │ │
│ 938×818 │ └────────────────────────────────┘ │
│ 滚动表格 + 进度条 │ ┌────────────────────────────────┐ │
│ │ │ 关键工序任务明细 │ │
│ │ │ 938×270 │ │
│ │ │ 滚动表格 │ │
│ │ └────────────────────────────────┘ │
│ │ ┌────────────────────────────────┐ │
│ │ │ 正在开工任务 │ │
│ │ │ 938×254 │ │
│ │ │ 滚动表格 │ │
│ │ └────────────────────────────────┘ │
│ │ ┌────────────────────────────────┐ │
│ │ │ 🆕 运行报工设备数据 │ │
│ │ │ 待定 │ │
│ │ └────────────────────────────────┘ │
└─────────────────────────────────────────┴────────────────────────────────────┘
1920×1080
```
---
## 十、不介入范围
| 模块 | 原因 |
|------|------|
| 关键工序任务(看板二) | 无存储过程,无数据来源 |
| 缺勤人员(看板二) | 无存储过程,无数据来源 |
| 设备 OEE TOP10看板一 | 已注释,暂不实现 |
| 计划执行率 TOP10看板一 | 已替换为指派汇总,不恢复 |
| 已完工作务明细(看板一) | 已替换为指派汇总,不恢复 |
---
## 十一、文件清单
| 文件路径 | 说明 |
|---------|------|
| `src/views/index.vue` | 看板一(主页面) |
| `src/views/machiningOperationTwo.vue` | 看板二 |
| `src/router/index.js` | 路由配置 |
| `src/main.js` | 入口,全局 provide |
| `src/utils/curdVue3.js` | CreateData / ExecDatabase 封装 |
| `src/utils/request.js` | Axios 实例 |
| `src/store/app.js` | Pinia 全局状态 |
| `src/App.vue` | 根组件 |
| `vite.config.js` | Vite 构建配置 |
| `index.html` | HTML 入口 |