|
|
# 安灯管理系统文档
|
|
|
|
|
|
> 本文档针对 aucma-mes 项目中的安灯系统(Andon),从**项目文档**与**操作手册**两个维度进行说明,既帮助理解整体业务设计,也指导一线用户具体使用。
|
|
|
|
|
|
---
|
|
|
|
|
|
## 一、项目文档(业务与设计说明)
|
|
|
|
|
|
### 1.1 系统整体概述
|
|
|
|
|
|
安灯系统用于对生产现场的异常、需求等进行**呼叫、响应、处理和追踪**,构建从"发现问题"到"解决问题"的完整闭环。核心目标:
|
|
|
|
|
|
- **快速呼叫**:现场在工位/设备/系统中发起安灯呼叫;
|
|
|
- **规则驱动**:依据预先配置的安灯规则自动匹配处理要求;
|
|
|
- **自动派工/通知**:将事件自动派发给责任人或责任角色;
|
|
|
- **全过程留痕**:记录确认、开始处理、完成、取消等里程碑时间;
|
|
|
- **可视化看板**:通过安灯看板统一展示当前安灯状态和历史数据;
|
|
|
- **生产监控**:实时监控机器状态、任务完成情况、OEE数据、利用率、品质等关键指标。
|
|
|
|
|
|
从实现上,安灯系统围绕以下几个核心领域模型展开:
|
|
|
|
|
|
- **AndonRule(安灯规则配置)**:定义不同呼叫类型在不同产线/工位/班组上的处理策略、时限和通知对象;
|
|
|
- **AndonEvent(安灯事件)**:每一次安灯呼叫形成的一条事件记录,是业务闭环的中心实体;
|
|
|
- **AndonEventAssignment(安灯派工记录)**:围绕事件派发给具体人员或角色的待办/任务;
|
|
|
- **AndonEventLog(安灯事件日志)**:记录与事件相关的所有关键操作,形成审计追踪;
|
|
|
- **AndonBoardConfig(安灯看板配置)**:配置各类安灯看板的产线/工位范围、展示字段及刷新策略;
|
|
|
- **AndonDashboard(安灯看板数据)**:汇总展示设备状态、任务完成、OEE、利用率、品质等生产监控数据。
|
|
|
|
|
|
上述模型在后端分别由对应的 Service 与 Mapper 实现,在前端对应以下页面:
|
|
|
|
|
|
- `views/production/andonRule/index.vue`:安灯规则配置;
|
|
|
- `views/production/andonEvent/index.vue`:安灯事件管理;
|
|
|
- `views/production/andonEventAssignment/index.vue`:安灯派工记录管理;
|
|
|
- `views/production/andonEventLog/index.vue`:安灯事件日志查询;
|
|
|
- `views/production/andonBoardConfig/index.vue`:安灯看板配置;
|
|
|
- `views/production/andonDashboard/index.vue`:安灯生产监控看板。
|
|
|
|
|
|
---
|
|
|
|
|
|
### 1.2 模块职责概览
|
|
|
|
|
|
#### 1.2.1 安灯规则配置(AndonRule)
|
|
|
|
|
|
**职责**:
|
|
|
|
|
|
- 定义安灯呼叫类型及其适用范围(产线、工位/工序、班组、触发源类型等);
|
|
|
- 设置确认时限(ACK Timeout)和解决时限(Resolve Timeout);
|
|
|
- 定义默认优先级(Priority);
|
|
|
- 定义通知对象(具体用户列表、角色列表);
|
|
|
- 通过字段 `isFlag` 控制规则是否生效;
|
|
|
- **一个工位可以配置多条规则**,每条规则对应不同的呼叫类型。
|
|
|
|
|
|
**典型字段(来自 AndonRule / AndonRuleMapper.xml):**
|
|
|
|
|
|
- `ruleId`:规则主键;
|
|
|
- `ruleName`:规则名称;
|
|
|
- `callTypeCode`:呼叫类型编码(EQUIPMENT/QUALITY/MATERIAL等);
|
|
|
- `productLineCode` / `stationCode` / `teamCode`:适用产线、工位、班组;
|
|
|
- `sourceType`:限定触发源类型(如工位、设备、报警、手动等);
|
|
|
- `ackTimeoutMin`:确认时限(分钟);
|
|
|
- `resolveTimeoutMin`:解决时限(分钟);
|
|
|
- `priorityDefault`:默认优先级(1最高,5最低);
|
|
|
- `notifyUsers`:通知用户 ID 列表(逗号分隔);
|
|
|
- `notifyRoles`:通知角色 Key 列表(逗号分隔,当前主要作为兜底);
|
|
|
- `remark`:扩展配置 JSON(如派工模式、是否取消其他派工、解决时限锚点等);
|
|
|
- `isFlag`:是否有效。
|
|
|
|
|
|
**呼叫类型字典(andon_call_type):**
|
|
|
|
|
|
| 字典值 | 字典标签 |
|
|
|
|---------|-----------|
|
|
|
| EQUIPMENT | 设备故障 |
|
|
|
| QUALITY | 质量问题 |
|
|
|
| MATERIAL | 物料短缺 |
|
|
|
|
|
|
#### 1.2.2 安灯事件(AndonEvent)
|
|
|
|
|
|
**职责**:
|
|
|
|
|
|
- 表示一条实际发生的安灯呼叫记录;
|
|
|
- 保存安灯发生环境(产线/工位/班组/工单/物料/设备等);
|
|
|
- 保存业务里程碑信息(确认时间、开始处理时间、完成时间等);
|
|
|
- 保存规则计算得到的截止时间和优先级;
|
|
|
- 通过状态字段反映事件生命周期(待处理、处理中、已解决、已取消等)。
|
|
|
|
|
|
**典型字段(来自 AndonEvent / AndonEventMapper.xml):**
|
|
|
|
|
|
- 标识与基础信息:
|
|
|
- `eventId`:事件主键;
|
|
|
- `callCode`:安灯呼叫单号;
|
|
|
- `callTypeCode`:呼叫类型编码,对应规则的 `callTypeCode`;
|
|
|
- 触发源与位置:
|
|
|
- `sourceType` / `sourceRefId`:触发源类型及引用 ID(工位编码、设备编码、报警号等);
|
|
|
- `productLineCode` / `stationCode` / `teamCode`:产线、工位、班组;
|
|
|
- `orderCode` / `materialCode` / `deviceId` / `deviceCode`:关联工单、物料、设备;
|
|
|
- 状态与优先级:
|
|
|
- `priority`:事件优先级,未设置时从规则 `priorityDefault` 继承;
|
|
|
- `eventStatus`:事件状态(PENDING/PROCESSING/RESOLVED/CANCELLED,对应字典 `andon_event_status`);
|
|
|
- 时间与里程碑:
|
|
|
- `ackBy` / `ackTime`:确认人及确认时间;
|
|
|
- `responseStartTime`:开始处理时间;
|
|
|
- `responseEndTime`:处理完成/解决时间;
|
|
|
- `ackDeadline`:系统计算的确认截止时间;
|
|
|
- `resolveDeadline`:系统计算的解决截止时间;
|
|
|
- `escalateLevel` / `escalateTime`:升级级别与时间(预留扩展);
|
|
|
- 其他:
|
|
|
- `description`:呼叫描述;
|
|
|
- `resolution`:解决/处理措施;
|
|
|
- `cancelReason`:取消原因;
|
|
|
- `isFlag` / `remark`:有效标记与备注。
|
|
|
|
|
|
在 Service 层(`AndonEventServiceImpl`)中,对新增/修改事件进行了规则匹配、时限计算以及状态变更的封装。
|
|
|
|
|
|
#### 1.2.3 安灯派工记录(AndonEventAssignment)
|
|
|
|
|
|
**职责**:
|
|
|
|
|
|
- 表示围绕某个安灯事件创建的派工/待办记录;
|
|
|
- 记录任务被派给了谁(用户/角色/班组)、何时派工、接单与完成时间;
|
|
|
- 维护派工的状态(已派工、已接单、已完成、已取消、已拒绝等);
|
|
|
- 与事件状态联动,构成完整处理闭环。
|
|
|
|
|
|
**典型字段(来自 AndonEventAssignment / Mapper):**
|
|
|
|
|
|
- `assignmentId`:派工记录主键;
|
|
|
- `eventId`:所属安灯事件;
|
|
|
- `assigneeUserId` / `assigneeUserName`:被分配用户信息;
|
|
|
- `assigneeRoleKey` / `assigneeTeamCode`:被分配角色与班组;
|
|
|
- `assignedTime`:派工时间;
|
|
|
- `acceptTime`:接单时间(在 Service 中根据状态自动补充);
|
|
|
- `finishTime`:完成时间(在 Service 中根据状态自动补充);
|
|
|
- `status`:派工状态(字典 `andon_status`);
|
|
|
- `isFlag`:是否有效;
|
|
|
- `remark`:备注。
|
|
|
|
|
|
**派工状态字典(andon_status):**
|
|
|
|
|
|
| 状态值 | 状态标签 | 说明 |
|
|
|
|--------|-----------|------|
|
|
|
| ASSIGNED | 已派工 | 初始状态,等待接单 |
|
|
|
| ACCEPTED | 已接单 | 责任人已接受任务 |
|
|
|
| DONE | 已完成 | 任务已完成 |
|
|
|
| CANCELLED | 已取消 | 派工已取消 |
|
|
|
| REJECTED | 已拒绝 | 责任人已拒绝 |
|
|
|
|
|
|
在 Service 层(`AndonEventAssignmentServiceImpl`)中,`updateAndonEventAssignment` 会根据派工状态自动:
|
|
|
|
|
|
- 补充自身接单/完成时间;
|
|
|
- 联动更新事件的开始处理时间、完成时间及状态;
|
|
|
- 写入对应的事件日志;
|
|
|
- 在配置允许时,自动取消同一事件下的其他并行派工。
|
|
|
|
|
|
#### 1.2.4 安灯事件日志(AndonEventLog)
|
|
|
|
|
|
**职责**:
|
|
|
|
|
|
- 记录所有与安灯事件相关的关键操作,形成审计轨迹;
|
|
|
- 为事后追溯、责任划分和优化分析提供依据。
|
|
|
|
|
|
**典型字段:**
|
|
|
|
|
|
- `logId`:日志主键;
|
|
|
- `eventId`:关联事件;
|
|
|
- `operation`:操作类型(字典 `andon_operation`,如 CREATE、ASSIGN、ACK、RESOLVE、CANCEL 等);
|
|
|
- `content`:操作内容描述;
|
|
|
- `operatorUserId` / `operatorUserName`:操作人;
|
|
|
- `operationTime`:操作时间;
|
|
|
- `remark`:备注。
|
|
|
|
|
|
**操作类型字典(andon_operation):**
|
|
|
|
|
|
| 操作值 | 操作标签 | 说明 |
|
|
|
|--------|-----------|------|
|
|
|
| CREATE | 创建 | 事件创建 |
|
|
|
| ASSIGN | 派工 | 自动派工 |
|
|
|
| ACK | 确认 | 事件确认 |
|
|
|
| ACCEPT | 接单 | 派工被接受 |
|
|
|
| RESOLVE | 解决 | 事件/派工完成 |
|
|
|
| CANCEL | 取消 | 事件取消 |
|
|
|
| CANCEL_ASSIGNMENT | 取消派工 | 派工被取消 |
|
|
|
| CANCEL_OTHERS | 取消其他派工 | 策略取消其他派工 |
|
|
|
| REJECT | 拒绝 | 派工被拒绝 |
|
|
|
| EDIT | 编辑 | 事件编辑 |
|
|
|
|
|
|
事件日志通常由后端 Service 自动写入:
|
|
|
|
|
|
- 事件创建/编辑/取消;
|
|
|
- 自动派工创建;
|
|
|
- 派工接单/完成/取消/拒绝;
|
|
|
- 自动取消其他派工等。
|
|
|
|
|
|
#### 1.2.5 安灯看板配置(AndonBoardConfig)
|
|
|
|
|
|
**职责**:
|
|
|
|
|
|
- 为车间现场的安灯看板(大屏)提供配置;
|
|
|
- 指定看板关联工位/工序、展示字段、刷新周期等。
|
|
|
|
|
|
**典型字段:**
|
|
|
|
|
|
- `boardId`:看板主键;
|
|
|
- `boardCode` / `boardName`:看板编码与名称;
|
|
|
- `stationCode`:关联工位/工序(主要绑定字段);
|
|
|
- `productLineCode`:关联产线(辅助字段,当前页面中未使用);
|
|
|
- `displayFields`:看板展示字段配置(JSON 或约定字符串);
|
|
|
- `refreshIntervalSec`:刷新间隔(秒);
|
|
|
- `isFlag`:是否有效;
|
|
|
- `remark`:备注。
|
|
|
|
|
|
**展示字段配置(displayFields)写法示例**
|
|
|
用于前端大屏动态决定列显示,可用字符串、JSON 数组或对象:
|
|
|
|
|
|
```text
|
|
|
1) 逗号分隔字符串(两张表共用同列)
|
|
|
"callCode,stationCode,eventStatus,priority,createTime"
|
|
|
|
|
|
2) JSON 数组(两张表共用同列,可设置宽度/对齐)
|
|
|
[
|
|
|
"callCode",
|
|
|
"stationCode",
|
|
|
{ "field": "eventStatus", "label": "状态", "align": "center" }
|
|
|
]
|
|
|
|
|
|
3) JSON 对象区分"进行中"和"已关闭"列
|
|
|
{
|
|
|
"activeFields": [
|
|
|
"callCode",
|
|
|
"stationCode",
|
|
|
{ "field": "eventStatus", "label": "状态", "align": "center" },
|
|
|
"priority",
|
|
|
"createTime"
|
|
|
],
|
|
|
"closedFields": [
|
|
|
"callCode",
|
|
|
"stationCode",
|
|
|
"eventStatus",
|
|
|
{ "field": "responseEndTime", "label": "完成时间" },
|
|
|
{ "field": "resolution", "label": "解决措施" }
|
|
|
]
|
|
|
}
|
|
|
```
|
|
|
|
|
|
解析逻辑(前端 `views/board/andonBoard/index.vue`):
|
|
|
- 为空或解析失败时,回退默认列(进行中:callCode/callTypeCode/stationCode/deviceCode/eventStatus/priority/createTime/description;已关闭:callCode/callTypeCode/stationCode/deviceCode/eventStatus/responseEndTime/resolution/cancelReason)。
|
|
|
- 纯字符串或数组:进行中与已关闭共用同一列集合。
|
|
|
- 对象:优先读取 `activeFields` / `closedFields`(或 `active` / `closed`),否则回退到 `fields` 或整对象键值。
|
|
|
- 每列可附加 `label`、`width`、`align`;缺省时按字段名映射默认中文标题。
|
|
|
|
|
|
前端看板程序可根据 `boardCode` 读取配置,再按产线/工位范围实时拉取 AndonEvent 数据进行可视化展示。
|
|
|
|
|
|
#### 1.2.6 安灯生产监控看板(AndonDashboard)
|
|
|
|
|
|
**职责**:
|
|
|
|
|
|
- 汇总展示生产现场的实时监控数据;
|
|
|
- 提供设备状态、任务完成、OEE、利用率、品质等关键指标;
|
|
|
- 支持按产线筛选查看不同产线的生产状况。
|
|
|
|
|
|
**数据来源(来自 AndonDashboardServiceImpl):**
|
|
|
|
|
|
1. **设备状态摘要(getDeviceStatusSummary)**
|
|
|
- 统计设备总数、运行中、停机、故障、维护等状态分布
|
|
|
- 数据来源:`base_device_ledger` 表
|
|
|
|
|
|
2. **任务完成摘要(getTaskCompletionSummary)**
|
|
|
- 统计计划任务数、已完成任务数、任务完成率
|
|
|
- 数据来源:`product_plan_info` 表
|
|
|
|
|
|
3. **OEE摘要(getOeeSummary)**
|
|
|
- 计算设备综合效率(OEE = 可用率 × 表现率 × 质量指数)
|
|
|
- 数据来源:设备台账、设备参数、生产计划
|
|
|
|
|
|
4. **利用率摘要(getUtilizationSummary)**
|
|
|
- 统计设备利用率、产线利用率
|
|
|
- 数据来源:设备台账、生产计划
|
|
|
|
|
|
5. **品质摘要(getQualitySummary)**
|
|
|
- 统计今日产量、良品数、不良品数、良品率
|
|
|
- 数据来源:`report_quality_inspection` 表(质检记录)
|
|
|
- 良品率计算:良品率 = 良品数 / (良品数 + 不良品数) × 100%
|
|
|
|
|
|
6. **安灯事件摘要(getAndonEventSummary)**
|
|
|
- 统计今日安灯事件总数、待处理、处理中、已解决、已取消
|
|
|
- 数据来源:`andon_event` 表
|
|
|
|
|
|
**典型字段(来自 AndonDashboardDTO):**
|
|
|
|
|
|
- 设备状态相关:
|
|
|
- `totalDevices`:设备总数
|
|
|
- `runningDevices`:运行中设备数
|
|
|
- `stoppedDevices`:停机设备数
|
|
|
- `faultDevices`:故障设备数
|
|
|
- `maintenanceDevices`:维护设备数
|
|
|
- `deviceDetails`:设备状态详情列表
|
|
|
|
|
|
- 任务完成相关:
|
|
|
- `todayPlanAmount`:今日计划数量
|
|
|
- `todayCompleteAmount`:今日完成数量
|
|
|
- `todayCompletionRate`:今日完成率(%)
|
|
|
- `monthPlanAmount`:本月计划数量
|
|
|
- `monthCompleteAmount`:本月完成数量
|
|
|
- `monthCompletionRate`:本月完成率(%)
|
|
|
- `lineCompletions`:产线任务完成情况列表
|
|
|
|
|
|
- OEE相关:
|
|
|
- `overallOee`:综合OEE(%)
|
|
|
- `availability`:可用率(%)
|
|
|
- `performance`:表现率(%)
|
|
|
- `quality`:质量指数(%)
|
|
|
- `plannedTimeMinutes`:计划时间(分钟)
|
|
|
- `downtimeMinutes`:停机时间(分钟)
|
|
|
- `deviceOeeDetails`:设备OEE详情列表
|
|
|
|
|
|
- 利用率相关:
|
|
|
- `overallUtilization`:整体利用率(%)
|
|
|
- `lineUtilizations`:产线利用率列表
|
|
|
|
|
|
- 品质相关:
|
|
|
- `todayOutput`:今日总产量
|
|
|
- `todayGoodCount`:今日良品数
|
|
|
- `todayDefectCount`:今日不良品数
|
|
|
- `todayYieldRate`:今日良品率(%)
|
|
|
- `monthYieldRate`:本月良品率(%)
|
|
|
- `lineQualities`:产线品质数据列表
|
|
|
|
|
|
- 安灯事件相关:
|
|
|
- `todayTotal`:今日事件总数
|
|
|
- `pendingCount`:待处理事件数
|
|
|
- `processingCount`:处理中事件数
|
|
|
- `resolvedCount`:已解决事件数
|
|
|
- `cancelledCount`:已取消事件数
|
|
|
- `avgResponseMinutes`:平均响应时间(分钟)
|
|
|
- `avgResolveMinutes`:平均解决时间(分钟)
|
|
|
- `eventTypeStats`:安灯事件类型统计列表
|
|
|
|
|
|
#### 1.2.7 安灯看板展示(AndonBoard)
|
|
|
|
|
|
**职责**:
|
|
|
|
|
|
- 为车间现场的安灯看板(大屏)提供实时数据展示;
|
|
|
- 根据看板配置自动过滤和展示安灯事件;
|
|
|
- 支持动态配置展示字段和刷新间隔;
|
|
|
- 提供免登录访问接口,方便大屏展示。
|
|
|
|
|
|
**核心功能:**
|
|
|
|
|
|
1. **看板配置管理**
|
|
|
- 通过 `AndonBoardConfig` 配置看板的展示范围(产线/工位)
|
|
|
- 支持配置展示字段和刷新间隔
|
|
|
- 同一编码可存在多条配置,取最新启用的配置
|
|
|
|
|
|
2. **事件数据过滤**
|
|
|
- 根据看板配置的产线/工位范围过滤安灯事件
|
|
|
- 自动拆分为进行中事件(待处理/处理中)和已关闭事件(已解决/已取消)
|
|
|
- 进行中事件按状态/优先级/创建时间排序
|
|
|
- 已关闭事件按完成时间/更新时间倒序排序,限制最多显示20条
|
|
|
|
|
|
3. **统计数据汇总**
|
|
|
- 实时统计待处理、处理中、已解决、已取消、总数
|
|
|
- 提供服务器时间供前端同步
|
|
|
|
|
|
4. **免登录访问**
|
|
|
- 接口使用 `@Anonymous` 标记,支持免登录访问
|
|
|
- 适合大屏展示和外部系统集成
|
|
|
|
|
|
**后端实现(AndonBoardController):**
|
|
|
|
|
|
- **接口路径**:`GET /production/andonBoard/view`
|
|
|
- **请求参数**:`boardCode`(看板编码,必填)
|
|
|
- **返回数据**:
|
|
|
```json
|
|
|
{
|
|
|
"config": {
|
|
|
"boardId": 1,
|
|
|
"boardCode": "BOARD001",
|
|
|
"boardName": "装配工位安灯看板",
|
|
|
"stationCode": "ST001",
|
|
|
"displayFields": "...",
|
|
|
"refreshIntervalSec": 10
|
|
|
},
|
|
|
"stats": {
|
|
|
"pending": 5,
|
|
|
"processing": 3,
|
|
|
"resolved": 20,
|
|
|
"cancelled": 2,
|
|
|
"active": 8,
|
|
|
"total": 30
|
|
|
},
|
|
|
"activeEvents": [...],
|
|
|
"closedEvents": [...],
|
|
|
"serverTime": "2025-12-31 10:30:00"
|
|
|
}
|
|
|
```
|
|
|
|
|
|
**核心逻辑:**
|
|
|
|
|
|
1. **参数校验**:boardCode 必填
|
|
|
2. **查询配置**:查询启用的看板配置,同一编码取最新的一条
|
|
|
3. **过滤事件**:根据配置的产线/工位范围查询安灯事件
|
|
|
4. **统计分组**:统计各状态数量,拆分进行中/已关闭事件
|
|
|
5. **排序限制**:进行中事件按优先级排序,已关闭事件限制20条
|
|
|
6. **返回数据**:组装配置、统计、事件列表、服务器时间
|
|
|
|
|
|
**前端实现(views/board/andonBoard/index.vue):**
|
|
|
|
|
|
- **页面功能**:
|
|
|
- 深色主题设计,适合大屏展示
|
|
|
- 顶部显示看板标题、boardCode、刷新间隔、最近更新时间
|
|
|
- 统计卡片展示待处理、处理中、已解决、已取消、总数
|
|
|
- 双面板布局:左侧展示进行中事件,右侧展示已关闭事件
|
|
|
- 支持自动刷新,刷新间隔从配置读取
|
|
|
|
|
|
- **数据获取**:
|
|
|
- 通过 `viewAndonBoard(boardCode)` 接口获取数据
|
|
|
- 从 URL 参数中读取 boardCode(支持 query 和 params)
|
|
|
- 使用定时器自动刷新数据
|
|
|
|
|
|
- **字段配置解析**:
|
|
|
- 支持字符串、JSON数组、JSON对象三种格式
|
|
|
- 可区分进行中和已关闭的展示字段
|
|
|
- 支持设置列宽和对齐方式
|
|
|
- 解析失败时使用默认字段
|
|
|
|
|
|
- **展示字段配置示例**:
|
|
|
|
|
|
1. **逗号分隔字符串**(简单配置)
|
|
|
```
|
|
|
callCode,stationCode,eventStatus,priority,createTime
|
|
|
```
|
|
|
|
|
|
2. **JSON数组**(可设置列宽、对齐)
|
|
|
```json
|
|
|
[
|
|
|
"callCode",
|
|
|
"stationCode",
|
|
|
{ "field": "eventStatus", "label": "状态", "align": "center" }
|
|
|
]
|
|
|
```
|
|
|
|
|
|
3. **JSON对象**(区分进行中/已关闭)
|
|
|
```json
|
|
|
{
|
|
|
"activeFields": [
|
|
|
"callCode",
|
|
|
"stationCode",
|
|
|
{ "field": "eventStatus", "label": "状态", "align": "center" },
|
|
|
"priority",
|
|
|
"createTime"
|
|
|
],
|
|
|
"closedFields": [
|
|
|
"callCode",
|
|
|
"stationCode",
|
|
|
"eventStatus",
|
|
|
{ "field": "responseEndTime", "label": "完成时间" },
|
|
|
{ "field": "resolution", "label": "解决措施" }
|
|
|
]
|
|
|
}
|
|
|
```
|
|
|
|
|
|
- **可用字段列表**:
|
|
|
|
|
|
| 字段名 | 说明 |
|
|
|
|--------|------|
|
|
|
| index | 序号(前端行号) |
|
|
|
| eventId | 事件ID |
|
|
|
| callCode | 呼叫单号 |
|
|
|
| callTypeCode | 呼叫类型 |
|
|
|
| sourceType | 触发源类型 |
|
|
|
| sourceRefId | 触发源编码 |
|
|
|
| productLineCode | 产线编码 |
|
|
|
| stationCode | 工位/工序编码 |
|
|
|
| teamCode | 班组编码 |
|
|
|
| orderCode | 工单号 |
|
|
|
| materialCode | 物料编码 |
|
|
|
| deviceCode | 设备编码 |
|
|
|
| priority | 优先级 |
|
|
|
| eventStatus | 状态 |
|
|
|
| description | 呼叫描述 |
|
|
|
| ackBy | 确认人 |
|
|
|
| ackTime | 确认时间 |
|
|
|
| responseStartTime | 开始处理时间 |
|
|
|
| responseEndTime | 完成时间 |
|
|
|
| resolution | 解决措施 |
|
|
|
| cancelReason | 取消原因 |
|
|
|
| escalateLevel | 升级级别 |
|
|
|
| escalateTime | 升级时间 |
|
|
|
| ackDeadline | 确认截止时间 |
|
|
|
| resolveDeadline | 解决截止时间 |
|
|
|
| createTime | 创建时间 |
|
|
|
| updateTime | 更新时间 |
|
|
|
|
|
|
- **状态显示**:
|
|
|
- 待处理:红色(#ff5f5f)
|
|
|
- 处理中:橙色(#ffb020)
|
|
|
- 已解决:青色(#16ceb9)
|
|
|
- 已取消:灰色(#9aa3ad)
|
|
|
|
|
|
- **触发源类型**:
|
|
|
- 0:工位
|
|
|
- 1:设备
|
|
|
- 2:报警
|
|
|
- 3:手动
|
|
|
|
|
|
---
|
|
|
|
|
|
### 1.3 业务流程说明(从呼叫到关闭的闭环)
|
|
|
|
|
|
#### 1.3.1 前置:配置安灯规则
|
|
|
|
|
|
1. 管理人员在"安灯规则配置"页面维护规则:
|
|
|
- 定义规则名称与呼叫类型编码;
|
|
|
- 选择适用的产线/工位/班组与触发源类型;
|
|
|
- 设置确认时限、解决时限与默认优先级;
|
|
|
- 选择通知用户(以及可选的通知角色);
|
|
|
- 启用(`isFlag = 1`)。
|
|
|
- **一个工位可以配置多条规则**,每条规则对应不同的呼叫类型。
|
|
|
2. 后端通过 `AndonRuleMapper.selectAndonRuleList` 根据条件查询有效规则,为后续事件创建与派工提供基础。
|
|
|
|
|
|
**配置示例(装配工位 ST001):**
|
|
|
|
|
|
| 规则名称 | 绑定工位 | 呼叫类型 | 通知用户 | 确认时限 | 解决时限 |
|
|
|
|---------|----------|----------|----------|---------|---------|
|
|
|
| ST001-设备故障 | ST001 | EQUIPMENT | 设备维修员 | 5分钟 | 30分钟 |
|
|
|
| ST001-质量问题 | ST001 | QUALITY | 质检员 | 5分钟 | 20分钟 |
|
|
|
| ST001-物料短缺 | ST001 | MATERIAL | 物料配送员 | 3分钟 | 15分钟 |
|
|
|
|
|
|
#### 1.3.2 创建安灯事件(AndonEvent)
|
|
|
|
|
|
安灯事件可以由前端页面手工新增,也可以由手持PDA通过接口推送,后端统一通过 `AndonEventServiceImpl.insertAndonEvent` 处理:
|
|
|
|
|
|
1. 写入事件的 `createTime`;
|
|
|
2. 调用 `applyRuleAndCompute(e, true)`:
|
|
|
- 按 `callTypeCode + isFlag` 从规则表拉取候选规则;
|
|
|
- 通过 `pickBestRule` 根据产线/工位/班组/触发源类型的匹配度选择最优规则;
|
|
|
- 若命中规则:
|
|
|
- 若事件未设置 `priority`,使用规则的 `priorityDefault`;
|
|
|
- 根据规则的 `ackTimeoutMin` 计算确认截止时间 `ackDeadline`;
|
|
|
- 根据规则的 `resolveTimeoutMin` 及 `remark.resAnchor` 计算解决截止时间 `resolveDeadline`;
|
|
|
3. 调用 `andonEventMapper.insertAndonEvent` 入库;
|
|
|
4. 调用 `autoCreateAssignments(e)` 基于规则自动创建派工记录;
|
|
|
5. 写入一条 `CREATE` 类型的事件日志。
|
|
|
|
|
|
#### 1.3.3 自动派工(AndonEventAssignment)
|
|
|
|
|
|
`autoCreateAssignments` 的主要逻辑:
|
|
|
|
|
|
1. 再次根据事件信息匹配最佳规则;
|
|
|
2. 从规则的 `remark` 中解析派工模式与兜底策略:
|
|
|
- `mode`:`single`(单人)或 `multi`(多人),默认 `single`;
|
|
|
- `fallback`:`role` 或 `none`,决定在没有用户或单人模式未创建成功时是否按角色兜底;
|
|
|
3. 优先依据 `notifyUsers` 创建派工:
|
|
|
- 对每个用户 ID 创建 `AndonEventAssignment`,状态初始为 ASSIGNED;
|
|
|
- 单人模式下创建第一条后即停止;
|
|
|
4. 如未成功创建,且 `fallback = role`,则依据 `notifyRoles` 按角色创建派工;
|
|
|
5. 若成功创建至少一条派工,则写入一条 `ASSIGN` 类型的事件日志。
|
|
|
|
|
|
#### 1.3.4 派工状态与事件状态联动
|
|
|
|
|
|
当派工记录状态被修改(`AndonEventAssignmentServiceImpl.updateAndonEventAssignment`)时:
|
|
|
|
|
|
1. 派工自身里程碑时间维护:
|
|
|
- 若状态变更为 ACCEPTED 且 `acceptTime` 为空,则写入当前时间;
|
|
|
- 若状态变更为 DONE 且 `finishTime` 为空,则写入当前时间;
|
|
|
2. 事件联动:
|
|
|
- 若派工状态为 ACCEPTED:
|
|
|
- 若事件 `responseStartTime` 为空,则写入当前时间;
|
|
|
- 事件状态设置为 PROCESSING;
|
|
|
- 写入 `ACCEPT` 操作日志;
|
|
|
- 若派工状态为 DONE:
|
|
|
- 若事件 `responseEndTime` 为空,则写入当前时间;
|
|
|
- 事件状态设置为 RESOLVED;
|
|
|
- 写入 `RESOLVE` 操作日志;
|
|
|
- 根据规则策略 `cancelOthers` 可自动取消同一事件下其他未完成派工(状态置为 CANCELLED,并写 `CANCEL_OTHERS` 日志);
|
|
|
- 若派工状态为 CANCELLED:
|
|
|
- 写入 `CANCEL_ASSIGNMENT` 操作日志;
|
|
|
- 若派工状态为 REJECTED:
|
|
|
- 写入 `REJECT` 操作日志。
|
|
|
|
|
|
#### 1.3.5 事件生命周期操作(确认/开始处理/完成/取消)
|
|
|
|
|
|
在 `AndonEventServiceImpl` 中提供了对事件基础生命周期的操作方法(同时前端也通过专用按钮调用):
|
|
|
|
|
|
1. `acknowledgeEvent`(确认事件):
|
|
|
- 记录确认人 `ackBy` 与确认时间 `ackTime`;
|
|
|
- 将事件状态设置为 PROCESSING;
|
|
|
- 写入 `ACK` 日志;
|
|
|
2. `startProcessEvent`(开始处理):
|
|
|
- 记录 `responseStartTime`;
|
|
|
- 事件状态置为 PROCESSING;
|
|
|
- 调用 `applyRuleAndCompute` 重新计算解决截止时间(以开始处理时间为锚点);
|
|
|
- 写入"开始处理"编辑日志;
|
|
|
3. `completeEvent`(完成事件):
|
|
|
- 记录 `responseEndTime` 与 `resolution`;
|
|
|
- 事件状态置为 RESOLVED;
|
|
|
- 写入 `RESOLVE` 日志;
|
|
|
4. `cancelEvent`(取消事件):
|
|
|
- 记录 `cancelReason`;
|
|
|
- 事件状态置为 CANCELLED;
|
|
|
- 级联调用 `cascadeCancelAssignments` 将该事件下所有派工置为 CANCELLED;
|
|
|
- 写入 `CANCEL` 日志。
|
|
|
|
|
|
#### 1.3.6 日志与看板
|
|
|
|
|
|
- 日志(AndonEventLog):由各类 Service 方法在关键节点自动写入;
|
|
|
- 看板(AndonBoardConfig):前端根据配置定时轮询拉取 AndonEvent 数据,在大屏展示当前安灯分布和状态;
|
|
|
- 生产监控(AndonDashboard):前端定时调用 `getDashboardData` 接口,获取设备状态、任务完成、OEE、利用率、品质等实时数据。
|
|
|
|
|
|
---
|
|
|
|
|
|
### 1.4 关键扩展配置(remark JSON)
|
|
|
|
|
|
部分高级策略通过 `remark` 字段以 JSON 形式保存,例如:
|
|
|
|
|
|
```json
|
|
|
{
|
|
|
"mode": "single|multi",
|
|
|
"fallback": "role|none",
|
|
|
"cancelOthers": true,
|
|
|
"resAnchor": "start|ack|create"
|
|
|
}
|
|
|
```
|
|
|
|
|
|
含义说明:
|
|
|
|
|
|
- `mode`:派工模式
|
|
|
- `single`:单人模式,只创建一条派工记录;
|
|
|
- `multi`:多人模式,按照用户列表全部创建;
|
|
|
- `fallback`:兜底策略
|
|
|
- `role`:当 `notifyUsers` 为空或未成功创建时,退回按 `notifyRoles` 创建派工;
|
|
|
- `none`:不进行角色兜底;
|
|
|
- `cancelOthers`:是否在某条派工完成后自动取消同一事件下其他并行派工,默认 `true`;
|
|
|
- `resAnchor`:解决时限起算锚点
|
|
|
- `start`:优先从 `responseStartTime` 起算,若为空则退回确认时间,再退回创建时间;
|
|
|
- `ack`:从确认时间起算,若为空则退回创建时间;
|
|
|
- `create`:直接从创建时间起算。
|
|
|
|
|
|
---
|
|
|
|
|
|
### 1.5 前后端代码逻辑概览
|
|
|
|
|
|
本节从"前端页面 → 前端 api → 后端 Controller → Service → Mapper/数据库"的角度,梳理各模块的主要调用链,方便开发、联调与排查问题。
|
|
|
|
|
|
#### 1.5.1 安灯事件(AndonEvent)调用链
|
|
|
|
|
|
**前端页面与 api:**
|
|
|
|
|
|
- 页面:`views/production/andonEvent/index.vue`
|
|
|
- api:`api/production/andonEvent.js`
|
|
|
- `listAndonEvent(query)` → `GET /production/andonEvent/list`
|
|
|
- `getAndonEvent(eventId)` → `GET /production/andonEvent/{eventId}`
|
|
|
- `addAndonEvent(data)` → `POST /production/andonEvent`
|
|
|
- `updateAndonEvent(data)` → `PUT /production/andonEvent`
|
|
|
- `delAndonEvent(eventId)` → `DELETE /production/andonEvent/{eventId}`
|
|
|
- `acknowledgeEvent(eventId)` → `POST /production/andonEvent/acknowledge/{eventId}`
|
|
|
- `startProcessEvent(eventId)` → `POST /production/andonEvent/startProcess/{eventId}`
|
|
|
- `completeEvent(eventId, resolution)` → `POST /production/andonEvent/complete/{eventId}`,`resolution` 通过查询参数传递;
|
|
|
- `cancelEvent(eventId, cancelReason)` → `POST /production/andonEvent/cancel/{eventId}`,`cancelReason` 通过查询参数传递。
|
|
|
|
|
|
**后端 Controller:** `AndonEventController`(`/production/andonEvent`)
|
|
|
|
|
|
- `list(AndonEvent andonEvent)`:查询事件列表,调用 `IAndonEventService.selectAndonEventList`,由 `AndonEventMapper.selectAndonEventList` 查询 `andon_event` 表;
|
|
|
- `add(AndonEvent andonEvent)`:新增事件,补全 `createBy`/`createTime` 后调用 `insertAndonEvent`;
|
|
|
- `edit(AndonEvent andonEvent)`:修改事件,补全 `updateBy`/`updateTime` 后调用 `updateAndonEvent`;
|
|
|
- `acknowledge(Long eventId)`:确认事件,调用 `acknowledgeEvent(eventId, getUsername())`;
|
|
|
- `startProcess(Long eventId)`:开始处理,调用 `startProcessEvent(eventId, getUsername())`;
|
|
|
- `complete(Long eventId, String resolution)`:完成事件,调用 `completeEvent(eventId, resolution, getUsername())`;
|
|
|
- `cancel(Long eventId, String cancelReason)`:取消事件,调用 `cancelEvent(eventId, cancelReason, getUsername())`。
|
|
|
|
|
|
**Service 关键逻辑:** `AndonEventServiceImpl`
|
|
|
|
|
|
- `insertAndonEvent`:执行规则匹配与时限计算(`applyRuleAndCompute`)→ 写入事件(`insertAndonEvent` Mapper)→ 自动创建派工(`autoCreateAssignments`)→ 写入创建日志(`logEvent`);
|
|
|
- `updateAndonEvent`:根据最新时间重算截止时间;如状态为取消则调用 `cascadeCancelAssignments` 级联取消派工,并写取消日志;
|
|
|
- `acknowledgeEvent` / `startProcessEvent` / `completeEvent` / `cancelEvent`:维护确认/开始处理/完成/取消相关字段与状态,调用 `AndonEventMapper.updateAndonEvent` 落库,并通过 `logEvent` 写入相应操作日志。
|
|
|
|
|
|
**规则匹配算法(pickBestRule)**
|
|
|
规则选择在事件侧与派工侧保持同一算法,防止不同模块命中不同规则:
|
|
|
1. 先按呼叫类型(`callTypeCode`)与有效标记筛出候选规则。
|
|
|
2. 对每条候选规则计算"匹配分":产线/工位/班组/触发源类型,每命中一项 +1。
|
|
|
3. 得分最高的规则被选中;并列时按列表顺序先到先得。
|
|
|
4. 事件侧用于计算时限/优先级并创建派工;派工侧用于读取 `remark.cancelOthers` 等策略,确保一致性。
|
|
|
|
|
|
#### 1.5.2 安灯派工记录(AndonEventAssignment)调用链
|
|
|
|
|
|
**前端页面与 api:**
|
|
|
|
|
|
- 页面:`views/production/andonEventAssignment/index.vue`
|
|
|
- api:`api/production/andonEventAssignment.js`
|
|
|
- `listAndonEventAssignment(query)` → `GET /production/andonEventAssignment/list`
|
|
|
- `getAndonEventAssignment(assignmentId)` → `GET /production/andonEventAssignment/{assignmentId}`
|
|
|
- `addAndonEventAssignment(data)` → `POST /production/andonEventAssignment`
|
|
|
- `updateAndonEventAssignment(data)` → `PUT /production/andonEventAssignment`
|
|
|
- `delAndonEventAssignment(assignmentId)` → `DELETE /production/andonEventAssignment/{assignmentId}`
|
|
|
|
|
|
**后端 Controller:** `AndonEventAssignmentController`(`/production/andonEventAssignment`)
|
|
|
|
|
|
- `list(AndonEventAssignment andonEventAssignment)`:查询派工列表,调用 `IAndonEventAssignmentService.selectAndonEventAssignmentList`;
|
|
|
- `add(AndonEventAssignment andonEventAssignment)`:新增派工,补全 `createBy`/`createTime` 后调用 `insertAndonEventAssignment`;
|
|
|
- `edit(AndonEventAssignment andonEventAssignment)`:修改派工,补全 `updateBy`/`updateTime` 后调用 `updateAndonEventAssignment`,触发状态联动逻辑;
|
|
|
- `remove(assignmentId)`:删除派工,调用 `deleteAndonEventAssignment`。
|
|
|
|
|
|
**Service 关键逻辑:** `AndonEventAssignmentServiceImpl`
|
|
|
|
|
|
- `updateAndonEventAssignment`:核心方法,处理派工状态变更
|
|
|
- 补充接单/完成时间;
|
|
|
- 联动更新事件状态与里程碑时间;
|
|
|
- 写入事件日志;
|
|
|
- 根据策略自动取消其他派工。
|
|
|
|
|
|
#### 1.5.3 安灯生产监控看板(AndonDashboard)调用链
|
|
|
|
|
|
**前端页面与 api:**
|
|
|
|
|
|
- 页面:`views/production/andonDashboard/index.vue`
|
|
|
- api:`api/production/andonDashboard.js`
|
|
|
- `getDashboardData(productLineCode)` → `GET /production/andonDashboard/all`
|
|
|
- `getDeviceStatusSummary(productLineCode)` → `GET /production/andonDashboard/device-status`
|
|
|
- `getTaskCompletionSummary(productLineCode)` → `GET /production/andonDashboard/task-completion`
|
|
|
- `getOeeSummary(productLineCode)` → `GET /production/andonDashboard/oee`
|
|
|
- `getUtilizationSummary(productLineCode)` → `GET /production/andonDashboard/utilization`
|
|
|
- `getQualitySummary(productLineCode)` → `GET /production/andonDashboard/quality`
|
|
|
- `getAndonEventSummary(productLineCode)` → `GET /production/andonDashboard/andon-events`
|
|
|
|
|
|
**后端 Controller:** `AndonDashboardController`(`/production/andonDashboard`)
|
|
|
|
|
|
- `getDashboardData(String productLineCode)`:获取完整看板数据,调用 `IAndonDashboardService.getDashboardData(productLineCode)`;
|
|
|
- `getDeviceStatusSummary(String productLineCode)`:获取设备状态统计,调用 `IAndonDashboardService.getDeviceStatusSummary(productLineCode)`;
|
|
|
- `getTaskCompletionSummary(String productLineCode)`:获取任务完成统计,调用 `IAndonDashboardService.getTaskCompletionSummary(productLineCode)`;
|
|
|
- `getOeeSummary(String productLineCode)`:获取OEE数据,调用 `IAndonDashboardService.getOeeSummary(productLineCode)`;
|
|
|
- `getUtilizationSummary(String productLineCode)`:获取利用率统计,调用 `IAndonDashboardService.getUtilizationSummary(productLineCode)`;
|
|
|
- `getQualitySummary(String productLineCode)`:获取品质数据,调用 `IAndonDashboardService.getQualitySummary(productLineCode)`;
|
|
|
- `getAndonEventSummary(String productLineCode)`:获取安灯事件统计,调用 `IAndonDashboardService.getAndonEventSummary(productLineCode)`。
|
|
|
|
|
|
**Service 关键逻辑:** `AndonDashboardServiceImpl`
|
|
|
|
|
|
- `getDashboardData(productLineCode)`:汇总获取各类监控数据
|
|
|
- `getDeviceStatusSummary(productLineCode)`:设备状态统计
|
|
|
- `getTaskCompletionSummary(productLineCode)`:任务完成统计
|
|
|
- `getOeeSummary(productLineCode)`:OEE数据计算
|
|
|
- `getUtilizationSummary(productLineCode)`:利用率统计
|
|
|
- `getQualitySummary(productLineCode)`:品质数据统计
|
|
|
- `getAndonEventSummary(productLineCode)`:安灯事件统计
|
|
|
|
|
|
**品质数据计算逻辑:**
|
|
|
|
|
|
- 从 `report_quality_inspection` 表查询今日质检记录
|
|
|
- 按 `treatmentMeasure` 字段判断良品/不良品:
|
|
|
- `treatmentMeasure = '3'`:合格(良品)
|
|
|
- `treatmentMeasure = '1'`:返修(不良品)
|
|
|
- 按产线分组统计良品数和不良品数
|
|
|
- 计算良品率:`yieldRate = goodProducts / (goodProducts + defectProducts) * 100`
|
|
|
|
|
|
#### 1.5.4 安灯看板展示(AndonBoard)调用链
|
|
|
|
|
|
**前端页面与 api:**
|
|
|
|
|
|
- 页面:`views/board/andonBoard/index.vue`
|
|
|
- api:`api/production/andonBoard.js`
|
|
|
- `viewAndonBoard(boardCode)` → `GET /production/andonBoard/view`
|
|
|
|
|
|
**后端 Controller:** `AndonBoardController`(`/production/andonBoard`)
|
|
|
|
|
|
- `view(String boardCode)`:根据看板编码获取看板数据
|
|
|
- 参数校验:boardCode 必填
|
|
|
- 查询配置:调用 `IAndonBoardConfigService.selectAndonBoardConfigList` 查询启用的看板配置,同一编码取最新的一条
|
|
|
- 过滤事件:根据配置的产线/工位范围调用 `IAndonEventService.selectAndonEventList` 查询安灯事件
|
|
|
- 统计分组:统计各状态数量,拆分进行中/已关闭事件
|
|
|
- 排序限制:进行中事件按优先级排序,已关闭事件限制20条
|
|
|
- 返回数据:组装配置、统计、事件列表、服务器时间
|
|
|
|
|
|
**Service 关键逻辑:** `AndonBoardController`
|
|
|
|
|
|
- `selectActiveBoardConfig(String boardCode)`:查询指定看板编码下启用的配置记录
|
|
|
- 按更新时间优先、否则按创建时间,倒序排序,取第一条(最新配置)
|
|
|
|
|
|
- `selectEventsByConfig(AndonBoardConfig config)`:根据看板配置的作用域查询事件列表
|
|
|
- 仅当配置字段非空时才作为过滤条件;为空表示不按该维度过滤
|
|
|
- 产线范围过滤:`productLineCode`
|
|
|
- 工位/工序范围过滤:`stationCode`
|
|
|
|
|
|
- `buildStats(List<AndonEvent> events)`:构建看板统计数据
|
|
|
- 返回字段:pending / processing / resolved / cancelled / active / total
|
|
|
|
|
|
- `filterByStatus(List<AndonEvent> events, boolean active)`:按状态将事件分为"进行中"和"已关闭"两组
|
|
|
- active=true:待处理/处理中
|
|
|
- active=false:已解决/已取消(以及其他未知状态)
|
|
|
|
|
|
- `sortActiveEvents(List<AndonEvent> events)`:进行中事件排序
|
|
|
- 1) 状态(待处理优先于处理中)
|
|
|
- 2) 优先级(数值越小越紧急;空值排最后)
|
|
|
- 3) 创建时间(越早越靠前;空值排最后)
|
|
|
|
|
|
- `sortClosedEvents(List<AndonEvent> events)`:已关闭事件排序
|
|
|
- 1) 解决/结束时间 responseEndTime 倒序(最近关闭的在前;空值排最后)
|
|
|
- 2) 更新时间 updateTime 倒序(空值排最后)
|
|
|
|
|
|
**前端关键逻辑:** `views/board/andonBoard/index.vue`
|
|
|
|
|
|
- **数据获取**:
|
|
|
- 从 URL 参数中读取 boardCode(支持 query 和 params)
|
|
|
- 通过 `viewAndonBoard(boardCode)` 接口获取数据
|
|
|
- 使用定时器自动刷新数据,刷新间隔从配置读取
|
|
|
|
|
|
- **字段配置解析**:
|
|
|
- `parseDisplayFields(raw)`:解析展示字段配置
|
|
|
- 支持字符串、JSON数组、JSON对象三种格式
|
|
|
- 可区分进行中和已关闭的展示字段
|
|
|
- 支持设置列宽和对齐方式
|
|
|
- 解析失败时使用默认字段
|
|
|
|
|
|
- **列配置归一化**:
|
|
|
- `normalizeColumns(input)`:将不同格式的配置转换为统一的列配置
|
|
|
- 字符串:转换为 {field, label}
|
|
|
- 对象:保留 field, label, width, align
|
|
|
- 数组:递归处理每个元素
|
|
|
|
|
|
- **字段标签映射**:
|
|
|
- `fieldLabel(field)`:将字段名映射为中文标签
|
|
|
- 支持常用字段的中文标签映射
|
|
|
- 未知字段返回原字段名
|
|
|
|
|
|
- **数据格式化**:
|
|
|
- `formatValue(row, field, rowIndex)`:格式化单元格值
|
|
|
- 序号字段:返回行号
|
|
|
- 状态字段:返回状态文本
|
|
|
- 触发源类型字段:返回类型文本
|
|
|
- 时间字段:格式化为 yyyy-MM-dd HH:mm:ss
|
|
|
- 其他字段:转换为字符串
|
|
|
|
|
|
- **状态文本映射**:
|
|
|
- `statusText(status)`:将状态码转换为中文文本
|
|
|
- '0':待处理
|
|
|
- '1':处理中
|
|
|
- '2':已解决
|
|
|
- '3':已取消
|
|
|
|
|
|
- **状态样式映射**:
|
|
|
- `statusClass(status)`:返回状态对应的CSS类名
|
|
|
- '0':pending(红色)
|
|
|
- '1':processing(橙色)
|
|
|
- '2':resolved(青色)
|
|
|
- '3':cancelled(灰色)
|
|
|
|
|
|
- **触发源类型映射**:
|
|
|
- `sourceTypeText(v)`:将触发源类型码转换为中文文本
|
|
|
- '0':工位
|
|
|
- '1':设备
|
|
|
- '2':报警
|
|
|
- '3':手动
|
|
|
|
|
|
- **网格样式计算**:
|
|
|
- `gridStyle(cols)`:计算网格布局的列模板
|
|
|
- 根据列配置的 width 属性生成 grid-template-columns
|
|
|
- 未设置 width 的列使用 1fr
|
|
|
|
|
|
- **单元格样式计算**:
|
|
|
- `cellStyle(col)`:计算单元格样式
|
|
|
- 根据 align 属性设置文本对齐方式
|
|
|
|
|
|
- **自动刷新管理**:
|
|
|
- `resetRefreshTimer()`:重置刷新定时器
|
|
|
- 根据配置的刷新间隔设置定时器
|
|
|
- 定时器到期后调用 `fetchBoardData()` 重新获取数据
|
|
|
- `clearRefreshTimer()`:清除刷新定时器
|
|
|
- 在组件销毁或重新加载时清除定时器
|
|
|
|
|
|
---
|
|
|
|
|
|
## 二、操作手册(用户使用指南)
|
|
|
|
|
|
### 2.1 安灯设置
|
|
|
|
|
|
#### 2.1.1 功能说明
|
|
|
|
|
|
根据需求自定义安灯呼叫异常类别,支持配置不同呼叫类型在不同产线、工位、班组上的处理策略、时限和通知对象。
|
|
|
|
|
|
#### 2.1.2 操作步骤
|
|
|
|
|
|
1. **进入安灯规则配置页面**
|
|
|
- 菜单路径:生产管理 → 安灯管理 → 安灯规则配置
|
|
|
- 页面位置:`views/production/andonRule/index.vue`
|
|
|
|
|
|
2. **新增安灯规则**
|
|
|
- 点击"新增"按钮
|
|
|
- 填写规则信息:
|
|
|
- **规则名称**:输入规则名称,如"装配工位-设备故障"
|
|
|
- **呼叫类型**:选择呼叫类型(设备故障/质量问题/物料短缺)
|
|
|
- **产线编码**:选择适用的产线(可选)
|
|
|
- **工位/工序编码**:选择适用的工位(可选)
|
|
|
- **班组编码**:选择适用的班组(可选)
|
|
|
- **触发源类型**:选择触发源类型(可选)
|
|
|
- **确认时限(分钟)**:输入确认时限,如5
|
|
|
- **解决时限(分钟)**:输入解决时限,如30
|
|
|
- **默认优先级**:选择默认优先级(1-5,1最高)
|
|
|
- **通知用户**:选择通知的用户(支持多选)
|
|
|
- **通知角色**:选择通知的角色(可选,作为兜底)
|
|
|
- **是否有效**:选择是否启用该规则
|
|
|
- **备注**:输入备注信息
|
|
|
- 点击"确定"保存
|
|
|
|
|
|
3. **修改安灯规则**
|
|
|
- 在列表中选中要修改的规则
|
|
|
- 点击"修改"按钮
|
|
|
- 修改规则信息
|
|
|
- 点击"确定"保存
|
|
|
|
|
|
4. **删除安灯规则**
|
|
|
- 在列表中选中要删除的规则(支持多选)
|
|
|
- 点击"删除"按钮
|
|
|
- 确认删除
|
|
|
|
|
|
5. **查询安灯规则**
|
|
|
- 在搜索框中输入查询条件(规则名称、呼叫类型、产线、工位等)
|
|
|
- 点击"搜索"按钮
|
|
|
- 点击"重置"按钮清空查询条件
|
|
|
|
|
|
#### 2.1.3 注意事项
|
|
|
|
|
|
- 一个工位可以配置多条规则,每条规则对应不同的呼叫类型
|
|
|
- 呼叫类型必须选择,其他条件(产线、工位、班组、触发源)为可选
|
|
|
- 确认时限和解决时限建议根据实际情况合理设置
|
|
|
- 通知用户和通知角色至少配置一个
|
|
|
- 规则必须设置为"有效"状态才会生效
|
|
|
|
|
|
---
|
|
|
|
|
|
### 2.2 汇报设置
|
|
|
|
|
|
#### 2.2.1 功能说明
|
|
|
|
|
|
根据不同的安灯异常类别,设置不同的汇报层级。通过配置安灯规则的优先级、通知对象和时限,实现分级汇报机制。
|
|
|
|
|
|
#### 2.2.2 配置说明
|
|
|
|
|
|
**优先级设置:**
|
|
|
- 优先级范围:1-5(1最高,5最低)
|
|
|
- 高优先级事件会优先处理和展示
|
|
|
- 不同呼叫类型可以设置不同的默认优先级
|
|
|
|
|
|
**汇报层级实现:**
|
|
|
|
|
|
1. **按优先级汇报**
|
|
|
- 高优先级事件(1-2):立即通知,短时限
|
|
|
- 中优先级事件(3):正常通知,标准时限
|
|
|
- 低优先级事件(4-5):延迟通知,长时限
|
|
|
|
|
|
2. **按通知对象汇报**
|
|
|
- 通知用户:直接通知具体责任人
|
|
|
- 通知角色:通知角色下的所有用户
|
|
|
- 支持同时配置用户和角色
|
|
|
|
|
|
3. **按时限汇报**
|
|
|
- 确认时限:事件需要在多长时间内被确认
|
|
|
- 解决时限:事件需要在多长时间内被解决
|
|
|
- 超时事件会在看板中高亮显示
|
|
|
|
|
|
**配置示例(不同汇报层级):**
|
|
|
|
|
|
| 呼叫类型 | 优先级 | 确认时限 | 解决时限 | 通知对象 | 汇报层级 |
|
|
|
|---------|-------|---------|---------|---------|---------|
|
|
|
| 设备故障(关键设备) | 1 | 3分钟 | 15分钟 | 设备主管、维修组长 | 一级汇报 |
|
|
|
| 设备故障(普通设备) | 3 | 5分钟 | 30分钟 | 设备维修员 | 二级汇报 |
|
|
|
| 质量问题(严重) | 1 | 5分钟 | 20分钟 | 质量主管、质检组长 | 一级汇报 |
|
|
|
| 质量问题(一般) | 3 | 5分钟 | 30分钟 | 质检员 | 二级汇报 |
|
|
|
| 物料短缺 | 2 | 3分钟 | 15分钟 | 物料主管、配送组长 | 一级汇报 |
|
|
|
|
|
|
#### 2.2.3 操作步骤
|
|
|
|
|
|
汇报设置通过"安灯规则配置"页面实现,操作步骤同2.1.2节。
|
|
|
|
|
|
---
|
|
|
|
|
|
### 2.3 生产进度
|
|
|
|
|
|
#### 2.3.1 功能说明
|
|
|
|
|
|
机器状态监控、机台任务完成情况、OEE 数据、利用率、品质等基本信息汇总与展示,帮助管理人员实时掌握生产进度和效率。
|
|
|
|
|
|
#### 2.3.2 数据展示
|
|
|
|
|
|
**1. 设备状态监控**
|
|
|
- 设备总数
|
|
|
- 运行中设备数
|
|
|
- 停机设备数
|
|
|
- 故障设备数
|
|
|
- 维护设备数
|
|
|
- 设备状态分布图
|
|
|
|
|
|
**2. 机台任务完成情况**
|
|
|
- 计划任务总数
|
|
|
- 已完成任务数
|
|
|
- 任务完成率
|
|
|
- 任务进度条
|
|
|
|
|
|
**3. OEE 数据**
|
|
|
- 可用率(Availability):设备实际运行时间 / 计划运行时间
|
|
|
- 表现率(Performance):实际产量 / 理论产量
|
|
|
- 质量指数(Quality Index):良品数 / 总产量
|
|
|
- 综合效率(OEE):可用率 × 表现率 × 质量指数
|
|
|
|
|
|
**4. 利用率**
|
|
|
- 设备利用率:设备运行时间 / 可用时间
|
|
|
- 产线利用率:产线运行时间 / 可用时间
|
|
|
|
|
|
**5. 品质数据**
|
|
|
- 今日总产量
|
|
|
- 良品数
|
|
|
- 不良品数
|
|
|
- 良品率(%)
|
|
|
|
|
|
**6. 安灯事件统计**
|
|
|
- 今日事件总数
|
|
|
- 待处理事件数
|
|
|
- 处理中事件数
|
|
|
- 已解决事件数
|
|
|
- 已取消事件数
|
|
|
|
|
|
#### 2.3.3 操作步骤
|
|
|
|
|
|
1. **进入安灯生产监控看板**
|
|
|
- 菜单路径:生产管理 → 安灯管理 → 安灯生产监控
|
|
|
- 页面位置:`views/production/andonDashboard/index.vue`
|
|
|
|
|
|
2. **查看生产进度数据**
|
|
|
- 页面自动刷新(默认刷新间隔)
|
|
|
- 查看设备状态、任务完成、OEE、利用率、品质等数据
|
|
|
- 数据按产线分组展示
|
|
|
|
|
|
3. **按产线筛选**
|
|
|
- 在产线下拉框中选择要查看的产线
|
|
|
- 页面自动刷新该产线的生产数据
|
|
|
|
|
|
4. **查看详细数据**
|
|
|
- 点击各模块的"查看详情"按钮
|
|
|
- 查看该模块的详细数据列表
|
|
|
|
|
|
#### 2.3.4 注意事项
|
|
|
|
|
|
- 看板数据实时更新,建议保持页面打开以获取最新数据
|
|
|
- OEE数据需要设备台账、设备参数、生产计划等基础数据支持
|
|
|
- 品质数据来源于质检记录,需要及时录入质检信息
|
|
|
- 可以通过"安灯看板配置"页面调整看板的刷新间隔和展示字段
|
|
|
|
|
|
---
|
|
|
|
|
|
### 2.4 效率监控
|
|
|
|
|
|
#### 2.4.1 功能说明
|
|
|
|
|
|
机器状态监控、OEE 数据、利用率、品质等基本信息汇总与展示,帮助管理人员分析生产效率,发现瓶颈和改进机会。
|
|
|
|
|
|
#### 2.4.2 关键指标说明
|
|
|
|
|
|
**1. 设备状态监控**
|
|
|
- **运行中**:设备正在生产
|
|
|
- **停机**:设备正常停机(如换班、休息)
|
|
|
- **故障**:设备发生故障
|
|
|
- **维护**:设备进行计划维护
|
|
|
|
|
|
**2. OEE(设备综合效率)**
|
|
|
|
|
|
OEE是衡量生产效率的核心指标,由三个部分组成:
|
|
|
|
|
|
- **可用率(Availability)**
|
|
|
- 公式:可用率 = 实际运行时间 / 计划运行时间 × 100%
|
|
|
- 说明:衡量设备是否按计划运行
|
|
|
- 目标值:≥ 90%
|
|
|
|
|
|
- **表现率(Performance)**
|
|
|
- 公式:表现率 = 实际产量 / 理论产量 × 100%
|
|
|
- 说明:衡量设备运行速度是否达标
|
|
|
- 目标值:≥ 95%
|
|
|
|
|
|
- **质量指数(Quality Index)**
|
|
|
- 公式:质量指数 = 良品数 / 总产量 × 100%
|
|
|
- 说明:衡量产品质量水平
|
|
|
- 目标值:≥ 98%
|
|
|
|
|
|
- **综合效率(OEE)**
|
|
|
- 公式:OEE = 可用率 × 表现率 × 质量指数
|
|
|
- 说明:综合衡量设备整体效率
|
|
|
- 世界级标准:≥ 85%
|
|
|
|
|
|
**3. 利用率**
|
|
|
|
|
|
- **设备利用率**
|
|
|
- 公式:设备利用率 = 设备运行时间 / 可用时间 × 100%
|
|
|
- 说明:衡量设备时间利用程度
|
|
|
|
|
|
- **产线利用率**
|
|
|
- 公式:产线利用率 = 产线运行时间 / 可用时间 × 100%
|
|
|
- 说明:衡量产线时间利用程度
|
|
|
|
|
|
**4. 品质指标**
|
|
|
|
|
|
- **良品率**
|
|
|
- 公式:良品率 = 良品数 / (良品数 + 不良品数) × 100%
|
|
|
- 说明:衡量产品合格率
|
|
|
- 目标值:≥ 98%
|
|
|
|
|
|
#### 2.4.3 操作步骤
|
|
|
|
|
|
效率监控通过"安灯生产监控看板"页面实现,操作步骤同2.3.3节。
|
|
|
|
|
|
#### 2.4.4 效率分析建议
|
|
|
|
|
|
**1. OEE分析**
|
|
|
- OEE < 60%:效率低下,需要全面改进
|
|
|
- OEE 60-75%:效率一般,有较大提升空间
|
|
|
- OEE 75-85%:效率良好,持续优化
|
|
|
- OEE ≥ 85%:世界级水平,保持优势
|
|
|
|
|
|
**2. 可用率低**
|
|
|
- 检查设备故障率,加强预防性维护
|
|
|
- 优化换班、休息等计划停机时间
|
|
|
- 减少非计划停机
|
|
|
|
|
|
**3. 表现率低**
|
|
|
- 检查设备运行速度是否达标
|
|
|
- 优化工艺参数,提高生产节拍
|
|
|
- 减少设备空转、等待时间
|
|
|
|
|
|
**4. 质量指数低**
|
|
|
- 分析不良品原因,改进工艺
|
|
|
- 加强过程质量控制
|
|
|
- 提高员工操作技能
|
|
|
|
|
|
**5. 利用率低**
|
|
|
- 优化生产计划,减少设备闲置
|
|
|
- 提高设备开机率
|
|
|
- 合理安排生产任务
|
|
|
|
|
|
---
|
|
|
|
|
|
### 2.5 安灯事件管理
|
|
|
|
|
|
#### 2.5.1 功能说明
|
|
|
|
|
|
管理安灯事件的全生命周期,包括事件创建、确认、开始处理、完成、取消等操作。
|
|
|
|
|
|
#### 2.5.2 操作步骤
|
|
|
|
|
|
1. **进入安灯事件管理页面**
|
|
|
- 菜单路径:生产管理 → 安灯管理 → 安灯事件管理
|
|
|
- 页面位置:`views/production/andonEvent/index.vue`
|
|
|
|
|
|
2. **新增安灯事件**
|
|
|
- 点击"新增"按钮
|
|
|
- 填写事件信息:
|
|
|
- **呼叫单号**:系统自动生成
|
|
|
- **呼叫类型**:选择呼叫类型
|
|
|
- **触发源类型**:选择触发源类型
|
|
|
- **产线编码**:选择产线
|
|
|
- **工位/工序编码**:选择工位
|
|
|
- **班组编码**:选择班组
|
|
|
- **工单号**:输入工单号
|
|
|
- **物料编码**:选择物料
|
|
|
- **设备编码**:选择设备
|
|
|
- **优先级**:选择优先级
|
|
|
- **呼叫描述**:输入描述
|
|
|
- 点击"确定"保存
|
|
|
|
|
|
3. **确认事件**
|
|
|
- 在列表中选中要确认的事件
|
|
|
- 点击"确认"按钮
|
|
|
- 系统自动记录确认人和确认时间
|
|
|
|
|
|
4. **开始处理**
|
|
|
- 在列表中选中要处理的事件
|
|
|
- 点击"开始处理"按钮
|
|
|
- 系统自动记录开始处理时间
|
|
|
|
|
|
5. **完成事件**
|
|
|
- 在列表中选中要完成的事件
|
|
|
- 点击"完成"按钮
|
|
|
- 输入解决措施
|
|
|
- 点击"确定"
|
|
|
- 系统自动记录完成时间和解决措施
|
|
|
|
|
|
6. **取消事件**
|
|
|
- 在列表中选中要取消的事件
|
|
|
- 点击"取消"按钮
|
|
|
- 输入取消原因
|
|
|
- 点击"确定"
|
|
|
- 系统自动取消事件及相关派工
|
|
|
|
|
|
7. **查询事件**
|
|
|
- 在搜索框中输入查询条件
|
|
|
- 点击"搜索"按钮
|
|
|
- 点击"重置"按钮清空查询条件
|
|
|
|
|
|
#### 2.5.3 注意事项
|
|
|
|
|
|
- 事件创建后系统会自动匹配规则并创建派工
|
|
|
- 事件状态会随操作自动更新
|
|
|
- 取消事件会级联取消相关派工
|
|
|
- 所有操作都会记录在事件日志中
|
|
|
|
|
|
---
|
|
|
|
|
|
### 2.6 安灯派工管理
|
|
|
|
|
|
#### 2.6.1 功能说明
|
|
|
|
|
|
管理安灯派工记录,查看派工状态,接单、完成派工任务。
|
|
|
|
|
|
#### 2.6.2 操作步骤
|
|
|
|
|
|
1. **进入安灯派工管理页面**
|
|
|
- 菜单路径:生产管理 → 安灯管理 → 安灯派工管理
|
|
|
- 页面位置:`views/production/andonEventAssignment/index.vue`
|
|
|
|
|
|
2. **查看派工列表**
|
|
|
- 默认显示当前用户的派工记录("只看我的"开关默认开启)
|
|
|
- 可以关闭"只看我的"查看所有派工
|
|
|
- 待接单的记录会高亮显示(红色背景)
|
|
|
- 处理中的记录会显示蓝色背景
|
|
|
|
|
|
3. **接单**
|
|
|
- 在列表中选中要接单的派工
|
|
|
- 点击"修改状态"按钮
|
|
|
- 将状态改为"已接单"
|
|
|
- 点击"确定"
|
|
|
- 系统自动记录接单时间
|
|
|
|
|
|
4. **完成派工**
|
|
|
- 在列表中选中要完成的派工
|
|
|
- 点击"修改状态"按钮
|
|
|
- 将状态改为"已完成"
|
|
|
- 点击"确定"
|
|
|
- 系统自动记录完成时间
|
|
|
|
|
|
5. **查询派工**
|
|
|
- 在搜索框中输入查询条件
|
|
|
- 点击"搜索"按钮
|
|
|
- 点击"重置"按钮清空查询条件
|
|
|
|
|
|
#### 2.6.3 注意事项
|
|
|
|
|
|
- 派工记录由系统自动创建,不允许手动新增
|
|
|
- 派工状态变更会联动更新事件状态
|
|
|
- 完成派工后,根据规则配置可能自动取消同一事件的其他派工
|
|
|
- 所有操作都会记录在事件日志中
|
|
|
|
|
|
---
|
|
|
|
|
|
### 2.7 安灯事件日志
|
|
|
|
|
|
#### 2.7.1 功能说明
|
|
|
|
|
|
查询安灯事件的操作日志,追溯事件处理过程,用于审计和问题分析。
|
|
|
|
|
|
#### 2.7.2 操作步骤
|
|
|
|
|
|
1. **进入安灯事件日志页面**
|
|
|
- 菜单路径:生产管理 → 安灯管理 → 安灯事件日志
|
|
|
- 页面位置:`views/production/andonEventLog/index.vue`
|
|
|
|
|
|
2. **查询日志**
|
|
|
- 在搜索框中输入查询条件:
|
|
|
- **操作类型**:选择操作类型(创建、派工、确认、接单、解决、取消等)
|
|
|
- 点击"搜索"按钮
|
|
|
- 点击"重置"按钮清空查询条件
|
|
|
|
|
|
3. **查看日志详情**
|
|
|
- 日志列表显示所有操作记录
|
|
|
- 每条记录包含:事件ID、操作类型、操作内容、操作人、操作时间
|
|
|
|
|
|
#### 2.7.3 注意事项
|
|
|
|
|
|
- 事件日志由系统自动记录,不允许手动修改
|
|
|
- 日志按时间倒序排列,最新操作显示在最前面
|
|
|
- 可以通过事件ID关联查看完整的事件处理过程
|
|
|
|
|
|
---
|
|
|
|
|
|
### 2.8 安灯看板配置
|
|
|
|
|
|
#### 2.8.1 功能说明
|
|
|
|
|
|
配置安灯看板的展示内容,包括绑定工位、展示字段、刷新间隔等。
|
|
|
|
|
|
#### 2.8.2 操作步骤
|
|
|
|
|
|
1. **进入安灯看板配置页面**
|
|
|
- 菜单路径:生产管理 → 安灯管理 → 安灯看板配置
|
|
|
- 页面位置:`views/production/andonBoardConfig/index.vue`
|
|
|
|
|
|
2. **新增看板配置**
|
|
|
- 点击"新增"按钮
|
|
|
- 填写配置信息:
|
|
|
- **看板编码**:输入看板编码,如"BOARD001"
|
|
|
- **看板名称**:输入看板名称,如"装配工位安灯看板"
|
|
|
- **绑定工位**:选择绑定的工位(必填)
|
|
|
- **展示字段配置**:输入展示字段配置(JSON格式)
|
|
|
- **刷新间隔**:输入刷新间隔(秒)
|
|
|
- **是否有效**:选择是否启用该看板
|
|
|
- **备注**:输入备注信息
|
|
|
- 点击"确定"保存
|
|
|
|
|
|
3. **修改看板配置**
|
|
|
- 在列表中选中要修改的配置
|
|
|
- 点击"修改"按钮
|
|
|
- 修改配置信息
|
|
|
- 点击"确定"保存
|
|
|
|
|
|
4. **删除看板配置**
|
|
|
- 在列表中选中要删除的配置(支持多选)
|
|
|
- 点击"删除"按钮
|
|
|
- 确认删除
|
|
|
|
|
|
5. **查看配置说明**
|
|
|
- 在新增/修改对话框中,点击"操作说明"按钮
|
|
|
- 查看展示字段配置的详细说明和示例
|
|
|
|
|
|
#### 2.8.3 展示字段配置说明
|
|
|
|
|
|
**配置格式:**
|
|
|
|
|
|
1. **逗号分隔字符串**(简单配置)
|
|
|
```
|
|
|
callCode,stationCode,eventStatus,priority,createTime
|
|
|
```
|
|
|
|
|
|
2. **JSON数组**(可设置列宽、对齐)
|
|
|
```json
|
|
|
[
|
|
|
"callCode",
|
|
|
"stationCode",
|
|
|
{ "field": "eventStatus", "label": "状态", "align": "center" }
|
|
|
]
|
|
|
```
|
|
|
|
|
|
3. **JSON对象**(区分进行中/已关闭)
|
|
|
```json
|
|
|
{
|
|
|
"activeFields": [
|
|
|
"callCode",
|
|
|
"stationCode",
|
|
|
{ "field": "eventStatus", "label": "状态", "align": "center" },
|
|
|
"priority",
|
|
|
"createTime"
|
|
|
],
|
|
|
"closedFields": [
|
|
|
"callCode",
|
|
|
"stationCode",
|
|
|
"eventStatus",
|
|
|
{ "field": "responseEndTime", "label": "完成时间" },
|
|
|
{ "field": "resolution", "label": "解决措施" }
|
|
|
]
|
|
|
}
|
|
|
```
|
|
|
|
|
|
**可用字段列表:**
|
|
|
|
|
|
| 字段名 | 说明 |
|
|
|
|--------|------|
|
|
|
| index | 序号(前端行号) |
|
|
|
| eventId | 事件ID |
|
|
|
| callCode | 呼叫单号 |
|
|
|
| callTypeCode | 呼叫类型 |
|
|
|
| sourceType | 触发源类型 |
|
|
|
| sourceRefId | 触发源编码 |
|
|
|
| productLineCode | 产线编码 |
|
|
|
| stationCode | 工位/工序编码 |
|
|
|
| teamCode | 班组编码 |
|
|
|
| orderCode | 工单号 |
|
|
|
| materialCode | 物料编码 |
|
|
|
| deviceCode | 设备编码 |
|
|
|
| priority | 优先级 |
|
|
|
| eventStatus | 状态 |
|
|
|
| description | 呼叫描述 |
|
|
|
| ackBy | 确认人 |
|
|
|
| ackTime | 确认时间 |
|
|
|
| responseStartTime | 开始处理时间 |
|
|
|
| responseEndTime | 完成时间 |
|
|
|
| resolution | 解决措施 |
|
|
|
| cancelReason | 取消原因 |
|
|
|
| escalateLevel | 升级级别 |
|
|
|
| escalateTime | 升级时间 |
|
|
|
| ackDeadline | 确认截止时间 |
|
|
|
| resolveDeadline | 解决截止时间 |
|
|
|
| createTime | 创建时间 |
|
|
|
| updateTime | 更新时间 |
|
|
|
|
|
|
#### 2.8.4 注意事项
|
|
|
|
|
|
- 看板必须绑定工位才能正常显示数据
|
|
|
- 展示字段配置为空或格式错误时会使用默认列
|
|
|
- 刷新间隔建议设置为30-60秒,避免频繁刷新
|
|
|
- 看板配置必须设置为"有效"状态才会生效
|
|
|
|
|
|
---
|
|
|
|
|
|
### 2.9 安灯看板展示
|
|
|
|
|
|
#### 2.9.1 功能说明
|
|
|
|
|
|
安灯看板展示是用于车间现场大屏展示的安灯事件实时监控页面,通过看板配置自动过滤和展示安灯事件,支持动态配置展示字段和刷新间隔。
|
|
|
|
|
|
#### 2.9.2 页面特点
|
|
|
|
|
|
- **深色主题设计**:适合大屏展示,减少视觉疲劳
|
|
|
- **自动刷新**:根据配置的刷新间隔自动更新数据
|
|
|
- **双面板布局**:左侧展示进行中事件,右侧展示已关闭事件
|
|
|
- **实时统计**:顶部统计卡片展示待处理、处理中、已解决、已取消、总数
|
|
|
- **免登录访问**:支持免登录访问,方便大屏展示和外部系统集成
|
|
|
|
|
|
#### 2.9.3 操作步骤
|
|
|
|
|
|
1. **进入安灯看板展示页面**
|
|
|
- 访问路径:`/andonBoard?boardCode=BOARD001`
|
|
|
- 页面位置:`views/board/andonBoard/index.vue`
|
|
|
- 必须在URL中传入 `boardCode` 参数
|
|
|
|
|
|
2. **查看看板数据**
|
|
|
- 页面顶部显示看板标题、boardCode、刷新间隔、最近更新时间
|
|
|
- 统计卡片展示各状态事件数量
|
|
|
- 左侧面板展示待处理/处理中事件
|
|
|
- 右侧面板展示已解决/已取消事件
|
|
|
|
|
|
3. **理解事件状态颜色**
|
|
|
- 待处理:红色(#ff5f5f)
|
|
|
- 处理中:橙色(#ffb020)
|
|
|
- 已解决:青色(#16ceb9)
|
|
|
- 已取消:灰色(#9aa3ad)
|
|
|
|
|
|
4. **查看事件详情**
|
|
|
- 查看各列展示的事件信息
|
|
|
- 时间字段格式化为:yyyy-MM-dd HH:mm:ss
|
|
|
- 状态字段显示中文文本和颜色标识
|
|
|
|
|
|
5. **切换看板**
|
|
|
- 修改URL中的 `boardCode` 参数
|
|
|
- 页面自动加载新看板的配置和数据
|
|
|
|
|
|
#### 2.9.4 数据刷新
|
|
|
|
|
|
- **自动刷新**:页面根据配置的刷新间隔自动刷新数据
|
|
|
- **刷新间隔**:从看板配置中读取,默认10秒
|
|
|
- **最近更新时间**:页面顶部显示最近一次数据更新时间
|
|
|
- **手动刷新**:刷新浏览器页面可手动刷新数据
|
|
|
|
|
|
#### 2.9.5 事件排序规则
|
|
|
|
|
|
**进行中事件排序:**
|
|
|
1. 状态优先:待处理优先于处理中
|
|
|
2. 优先级:数值越小越紧急(1最高,5最低)
|
|
|
3. 创建时间:越早越靠前
|
|
|
|
|
|
**已关闭事件排序:**
|
|
|
1. 完成时间:最近关闭的在前
|
|
|
2. 更新时间:最近更新的在前
|
|
|
3. 最多显示20条历史记录
|
|
|
|
|
|
#### 2.9.6 注意事项
|
|
|
|
|
|
- 必须在URL中传入有效的 `boardCode` 参数
|
|
|
- 看板配置必须存在且设置为"有效"状态
|
|
|
- 看板配置必须绑定工位才能显示数据
|
|
|
- 展示字段配置为空或格式错误时会使用默认列
|
|
|
- 刷新间隔建议设置为30-60秒,避免频繁刷新
|
|
|
- 页面支持免登录访问,适合大屏展示
|
|
|
|
|
|
#### 2.9.7 常见问题
|
|
|
|
|
|
**Q: 看板显示"缺少 boardCode"?**
|
|
|
A: 请在URL中传入 `boardCode` 参数,例如:`/andonBoard?boardCode=BOARD001`
|
|
|
|
|
|
**Q: 看板显示"看板配置不存在或未启用"?**
|
|
|
A: 请检查看板配置是否存在且设置为"有效"状态
|
|
|
|
|
|
**Q: 看板显示"暂无数据"?**
|
|
|
A: 请检查看板配置是否绑定了工位,以及该工位是否有安灯事件
|
|
|
|
|
|
**Q: 看板显示的列不是我想要的?**
|
|
|
A: 请在"安灯看板配置"页面修改展示字段配置
|
|
|
|
|
|
**Q: 看板刷新太慢或太快?**
|
|
|
A: 请在"安灯看板配置"页面调整刷新间隔
|
|
|
|
|
|
---
|
|
|
|
|
|
## 三、附录
|
|
|
|
|
|
### 3.1 字典表
|
|
|
|
|
|
#### 3.1.1 呼叫类型字典(andon_call_type)
|
|
|
|
|
|
| 字典值 | 字典标签 |
|
|
|
|---------|-----------|
|
|
|
| EQUIPMENT | 设备故障 |
|
|
|
| QUALITY | 质量问题 |
|
|
|
| MATERIAL | 物料短缺 |
|
|
|
|
|
|
#### 3.1.2 事件状态字典(andon_event_status)
|
|
|
|
|
|
| 字典值 | 字典标签 |
|
|
|
|---------|-----------|
|
|
|
| PENDING | 待处理 |
|
|
|
| PROCESSING | 处理中 |
|
|
|
| RESOLVED | 已解决 |
|
|
|
| CANCELLED | 已取消 |
|
|
|
|
|
|
#### 3.1.3 派工状态字典(andon_status)
|
|
|
|
|
|
| 字典值 | 字典标签 |
|
|
|
|---------|-----------|
|
|
|
| ASSIGNED | 已派工 |
|
|
|
| ACCEPTED | 已接单 |
|
|
|
| DONE | 已完成 |
|
|
|
| CANCELLED | 已取消 |
|
|
|
| REJECTED | 已拒绝 |
|
|
|
|
|
|
#### 3.1.4 操作类型字典(andon_operation)
|
|
|
|
|
|
| 操作值 | 操作标签 | 说明 |
|
|
|
|--------|-----------|------|
|
|
|
| CREATE | 创建 | 事件创建 |
|
|
|
| ASSIGN | 派工 | 自动派工 |
|
|
|
| ACK | 确认 | 事件确认 |
|
|
|
| ACCEPT | 接单 | 派工被接受 |
|
|
|
| RESOLVE | 解决 | 事件/派工完成 |
|
|
|
| CANCEL | 取消 | 事件取消 |
|
|
|
| CANCEL_ASSIGNMENT | 取消派工 | 派工被取消 |
|
|
|
| CANCEL_OTHERS | 取消其他派工 | 策略取消其他派工 |
|
|
|
| REJECT | 拒绝 | 派工被拒绝 |
|
|
|
| EDIT | 编辑 | 事件编辑 |
|
|
|
|
|
|
### 3.2 数据库表结构
|
|
|
|
|
|
#### 3.2.1 安灯规则表(andon_rule)
|
|
|
|
|
|
| 字段名 | 类型 | 说明 |
|
|
|
|--------|------|------|
|
|
|
| rule_id | NUMBER | 规则主键 |
|
|
|
| rule_name | VARCHAR2 | 规则名称 |
|
|
|
| call_type_code | VARCHAR2 | 呼叫类型编码 |
|
|
|
| product_line_code | VARCHAR2 | 产线编码 |
|
|
|
| station_code | VARCHAR2 | 工位/工序编码 |
|
|
|
| team_code | VARCHAR2 | 班组编码 |
|
|
|
| source_type | VARCHAR2 | 触发源类型 |
|
|
|
| ack_timeout_min | NUMBER | 确认时限(分钟) |
|
|
|
| resolve_timeout_min | NUMBER | 解决时限(分钟) |
|
|
|
| priority_default | NUMBER | 默认优先级 |
|
|
|
| notify_roles | VARCHAR2 | 通知角色 |
|
|
|
| notify_users | VARCHAR2 | 通知用户 |
|
|
|
| escalate_levels | VARCHAR2 | 升级级别 |
|
|
|
| effective_begin_time | DATE | 生效开始时间 |
|
|
|
| effective_end_time | DATE | 生效结束时间 |
|
|
|
| is_flag | VARCHAR2 | 是否有效 |
|
|
|
| remark | VARCHAR2 | 备注 |
|
|
|
| create_by | VARCHAR2 | 创建人 |
|
|
|
| create_time | DATE | 创建时间 |
|
|
|
| update_by | VARCHAR2 | 更新人 |
|
|
|
| update_time | DATE | 更新时间 |
|
|
|
|
|
|
#### 3.2.2 安灯事件表(andon_event)
|
|
|
|
|
|
| 字段名 | 类型 | 说明 |
|
|
|
|--------|------|------|
|
|
|
| event_id | NUMBER | 事件主键 |
|
|
|
| call_code | VARCHAR2 | 呼叫单号 |
|
|
|
| call_type_code | VARCHAR2 | 呼叫类型编码 |
|
|
|
| source_type | VARCHAR2 | 触发源类型 |
|
|
|
| source_ref_id | VARCHAR2 | 触发源引用ID |
|
|
|
| product_line_code | VARCHAR2 | 产线编码 |
|
|
|
| station_code | VARCHAR2 | 工位/工序编码 |
|
|
|
| team_code | VARCHAR2 | 班组编码 |
|
|
|
| order_code | VARCHAR2 | 工单号 |
|
|
|
| material_code | VARCHAR2 | 物料编码 |
|
|
|
| device_id | NUMBER | 设备ID |
|
|
|
| device_code | VARCHAR2 | 设备编码 |
|
|
|
| priority | NUMBER | 优先级 |
|
|
|
| event_status | VARCHAR2 | 事件状态 |
|
|
|
| description | VARCHAR2 | 呼叫描述 |
|
|
|
| ack_by | VARCHAR2 | 确认人 |
|
|
|
| ack_time | DATE | 确认时间 |
|
|
|
| response_start_time | DATE | 开始处理时间 |
|
|
|
| response_end_time | DATE | 处理完成时间 |
|
|
|
| resolution | VARCHAR2 | 解决措施 |
|
|
|
| cancel_reason | VARCHAR2 | 取消原因 |
|
|
|
| escalate_level | NUMBER | 升级级别 |
|
|
|
| escalate_time | DATE | 升级时间 |
|
|
|
| ack_deadline | DATE | 确认截止时间 |
|
|
|
| resolve_deadline | DATE | 解决截止时间 |
|
|
|
| is_flag | VARCHAR2 | 是否有效 |
|
|
|
| remark | VARCHAR2 | 备注 |
|
|
|
| create_by | VARCHAR2 | 创建人 |
|
|
|
| create_time | DATE | 创建时间 |
|
|
|
| update_by | VARCHAR2 | 更新人 |
|
|
|
| update_time | DATE | 更新时间 |
|
|
|
|
|
|
#### 3.2.3 安灯派工记录表(andon_event_assignment)
|
|
|
|
|
|
| 字段名 | 类型 | 说明 |
|
|
|
|--------|------|------|
|
|
|
| assignment_id | NUMBER | 派工记录主键 |
|
|
|
| event_id | NUMBER | 所属安灯事件 |
|
|
|
| assignee_user_id | NUMBER | 被分配用户ID |
|
|
|
| assignee_user_name | VARCHAR2 | 被分配用户姓名 |
|
|
|
| assignee_role_key | VARCHAR2 | 被分配角色编码 |
|
|
|
| assignee_team_code | VARCHAR2 | 被分配班组编码 |
|
|
|
| assigned_time | DATE | 派工时间 |
|
|
|
| accept_time | DATE | 接单时间 |
|
|
|
| finish_time | DATE | 完成时间 |
|
|
|
| status | VARCHAR2 | 派工状态 |
|
|
|
| is_flag | VARCHAR2 | 是否有效 |
|
|
|
| remark | VARCHAR2 | 备注 |
|
|
|
| create_by | VARCHAR2 | 创建人 |
|
|
|
| create_time | DATE | 创建时间 |
|
|
|
| update_by | VARCHAR2 | 更新人 |
|
|
|
| update_time | DATE | 更新时间 |
|
|
|
|
|
|
#### 3.2.4 安灯事件日志表(andon_event_log)
|
|
|
|
|
|
| 字段名 | 类型 | 说明 |
|
|
|
|--------|------|------|
|
|
|
| log_id | NUMBER | 日志主键 |
|
|
|
| event_id | NUMBER | 关联事件 |
|
|
|
| operation | VARCHAR2 | 操作类型 |
|
|
|
| content | VARCHAR2 | 操作内容 |
|
|
|
| operator_user_id | NUMBER | 操作人ID |
|
|
|
| operator_user_name | VARCHAR2 | 操作人姓名 |
|
|
|
| operation_time | DATE | 操作时间 |
|
|
|
| remark | VARCHAR2 | 备注 |
|
|
|
| create_by | VARCHAR2 | 创建人 |
|
|
|
| create_time | DATE | 创建时间 |
|
|
|
| update_by | VARCHAR2 | 更新人 |
|
|
|
| update_time | DATE | 更新时间 |
|
|
|
|
|
|
#### 3.2.5 安灯看板配置表(andon_board_config)
|
|
|
|
|
|
| 字段名 | 类型 | 说明 |
|
|
|
|--------|------|------|
|
|
|
| board_id | NUMBER | 看板主键 |
|
|
|
| board_code | VARCHAR2 | 看板编码 |
|
|
|
| board_name | VARCHAR2 | 看板名称 |
|
|
|
| product_line_code | VARCHAR2 | 产线编码 |
|
|
|
| station_code | VARCHAR2 | 工位/工序编码 |
|
|
|
| display_fields | VARCHAR2 | 展示字段配置 |
|
|
|
| refresh_interval_sec | NUMBER | 刷新间隔(秒) |
|
|
|
| is_flag | VARCHAR2 | 是否有效 |
|
|
|
| remark | VARCHAR2 | 备注 |
|
|
|
| create_by | VARCHAR2 | 创建人 |
|
|
|
| create_time | DATE | 创建时间 |
|
|
|
| update_by | VARCHAR2 | 更新人 |
|
|
|
| update_time | DATE | 更新时间 |
|
|
|
|
|
|
### 3.3 版本历史
|
|
|
|
|
|
| 版本号 | 日期 | 说明 |
|
|
|
|--------|------|------|
|
|
|
| v1.0 | 2025-12-29 | 初始版本,支持手持PDA安灯呼叫 |
|
|
|
| v2.0 | 2025-12-31 | 重构文档,增加生产进度和效率监控模块 |
|