From 51de04806729a4366fef8f4655347c42569747bf Mon Sep 17 00:00:00 2001 From: "zangch@mesnac.com" Date: Mon, 19 Jan 2026 14:39:56 +0800 Subject: [PATCH] =?UTF-8?q?docs(andon):=20=E6=9B=B4=E6=96=B0=E5=AE=89?= =?UTF-8?q?=E7=81=AF=E7=AE=A1=E7=90=86=E7=B3=BB=E7=BB=9F=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将标题从"Andon 系统文档"改为"安灯管理系统文档" - 添加生产监控功能描述,包括设备状态、任务完成、OEE、利用率、品质等指标 - 新增安灯生产监控看板(AndonDashboard)模块说明 - 扩展安灯看板展示(AndonBoard)功能介绍 - 更新安灯规则配置,支持一个工位多条规则 - 补充呼叫类型、派工状态、操作类型等字典说明 - 优化字段说明,包括callTypeCode、priorityDefault等 - 添加配置示例表格说明 - 更新后端代码逻辑概览,补充规则匹配算法 - 扩展前后端调用链说明,包括安灯生产监控看板调用链 - 更新操作手册,将原"安灯设置"分为安灯设置、汇报设置、生产进度等章节 - 添加详细的安灯规则配置操作步骤和注意事项 - 优化文档结构,增加分隔线和格式调整 --- aucma-production/andon.md | 1548 ++++++++++++++++++++++++++++--------- 1 file changed, 1175 insertions(+), 373 deletions(-) diff --git a/aucma-production/andon.md b/aucma-production/andon.md index b3ae278..6a05827 100644 --- a/aucma-production/andon.md +++ b/aucma-production/andon.md @@ -1,4 +1,4 @@ -# Andon 系统文档 +# 安灯管理系统文档 > 本文档针对 aucma-mes 项目中的安灯系统(Andon),从**项目文档**与**操作手册**两个维度进行说明,既帮助理解整体业务设计,也指导一线用户具体使用。 @@ -8,13 +8,14 @@ ### 1.1 系统整体概述 -安灯系统用于对生产现场的异常、需求等进行**呼叫、响应、处理和追踪**,构建从“发现问题”到“解决问题”的完整闭环。核心目标: +安灯系统用于对生产现场的异常、需求等进行**呼叫、响应、处理和追踪**,构建从"发现问题"到"解决问题"的完整闭环。核心目标: - **快速呼叫**:现场在工位/设备/系统中发起安灯呼叫; - **规则驱动**:依据预先配置的安灯规则自动匹配处理要求; - **自动派工/通知**:将事件自动派发给责任人或责任角色; - **全过程留痕**:记录确认、开始处理、完成、取消等里程碑时间; -- **可视化看板**:通过安灯看板统一展示当前安灯状态和历史数据。 +- **可视化看板**:通过安灯看板统一展示当前安灯状态和历史数据; +- **生产监控**:实时监控机器状态、任务完成情况、OEE数据、利用率、品质等关键指标。 从实现上,安灯系统围绕以下几个核心领域模型展开: @@ -22,7 +23,8 @@ - **AndonEvent(安灯事件)**:每一次安灯呼叫形成的一条事件记录,是业务闭环的中心实体; - **AndonEventAssignment(安灯派工记录)**:围绕事件派发给具体人员或角色的待办/任务; - **AndonEventLog(安灯事件日志)**:记录与事件相关的所有关键操作,形成审计追踪; -- **AndonBoardConfig(安灯看板配置)**:配置各类安灯看板的产线/工位范围、展示字段及刷新策略。 +- **AndonBoardConfig(安灯看板配置)**:配置各类安灯看板的产线/工位范围、展示字段及刷新策略; +- **AndonDashboard(安灯看板数据)**:汇总展示设备状态、任务完成、OEE、利用率、品质等生产监控数据。 上述模型在后端分别由对应的 Service 与 Mapper 实现,在前端对应以下页面: @@ -30,7 +32,8 @@ - `views/production/andonEvent/index.vue`:安灯事件管理; - `views/production/andonEventAssignment/index.vue`:安灯派工记录管理; - `views/production/andonEventLog/index.vue`:安灯事件日志查询; -- `views/production/andonBoardConfig/index.vue`:安灯看板配置。 +- `views/production/andonBoardConfig/index.vue`:安灯看板配置; +- `views/production/andonDashboard/index.vue`:安灯生产监控看板。 --- @@ -44,22 +47,32 @@ - 设置确认时限(ACK Timeout)和解决时限(Resolve Timeout); - 定义默认优先级(Priority); - 定义通知对象(具体用户列表、角色列表); -- 通过字段 `isFlag` 控制规则是否生效。 +- 通过字段 `isFlag` 控制规则是否生效; +- **一个工位可以配置多条规则**,每条规则对应不同的呼叫类型。 **典型字段(来自 AndonRule / AndonRuleMapper.xml):** +- `ruleId`:规则主键; - `ruleName`:规则名称; -- `callTypeCode`:呼叫类型编码; +- `callTypeCode`:呼叫类型编码(EQUIPMENT/QUALITY/MATERIAL等); - `productLineCode` / `stationCode` / `teamCode`:适用产线、工位、班组; - `sourceType`:限定触发源类型(如工位、设备、报警、手动等); - `ackTimeoutMin`:确认时限(分钟); - `resolveTimeoutMin`:解决时限(分钟); -- `priorityDefault`:默认优先级; +- `priorityDefault`:默认优先级(1最高,5最低); - `notifyUsers`:通知用户 ID 列表(逗号分隔); - `notifyRoles`:通知角色 Key 列表(逗号分隔,当前主要作为兜底); - `remark`:扩展配置 JSON(如派工模式、是否取消其他派工、解决时限锚点等); - `isFlag`:是否有效。 +**呼叫类型字典(andon_call_type):** + +| 字典值 | 字典标签 | +|---------|-----------| +| EQUIPMENT | 设备故障 | +| QUALITY | 质量问题 | +| MATERIAL | 物料短缺 | + #### 1.2.2 安灯事件(AndonEvent) **职责**: @@ -120,6 +133,16 @@ - `isFlag`:是否有效; - `remark`:备注。 +**派工状态字典(andon_status):** + +| 状态值 | 状态标签 | 说明 | +|--------|-----------|------| +| ASSIGNED | 已派工 | 初始状态,等待接单 | +| ACCEPTED | 已接单 | 责任人已接受任务 | +| DONE | 已完成 | 任务已完成 | +| CANCELLED | 已取消 | 派工已取消 | +| REJECTED | 已拒绝 | 责任人已拒绝 | + 在 Service 层(`AndonEventAssignmentServiceImpl`)中,`updateAndonEventAssignment` 会根据派工状态自动: - 补充自身接单/完成时间; @@ -144,6 +167,21 @@ - `operationTime`:操作时间; - `remark`:备注。 +**操作类型字典(andon_operation):** + +| 操作值 | 操作标签 | 说明 | +|--------|-----------|------| +| CREATE | 创建 | 事件创建 | +| ASSIGN | 派工 | 自动派工 | +| ACK | 确认 | 事件确认 | +| ACCEPT | 接单 | 派工被接受 | +| RESOLVE | 解决 | 事件/派工完成 | +| CANCEL | 取消 | 事件取消 | +| CANCEL_ASSIGNMENT | 取消派工 | 派工被取消 | +| CANCEL_OTHERS | 取消其他派工 | 策略取消其他派工 | +| REJECT | 拒绝 | 派工被拒绝 | +| EDIT | 编辑 | 事件编辑 | + 事件日志通常由后端 Service 自动写入: - 事件创建/编辑/取消; @@ -156,12 +194,14 @@ **职责**: - 为车间现场的安灯看板(大屏)提供配置; -- 指定看板关联产线/工位、展示字段、刷新周期等。 +- 指定看板关联工位/工序、展示字段、刷新周期等。 **典型字段:** +- `boardId`:看板主键; - `boardCode` / `boardName`:看板编码与名称; -- `productLineCode` / `stationCode`:关联产线与工位/工序; +- `stationCode`:关联工位/工序(主要绑定字段); +- `productLineCode`:关联产线(辅助字段,当前页面中未使用); - `displayFields`:看板展示字段配置(JSON 或约定字符串); - `refreshIntervalSec`:刷新间隔(秒); - `isFlag`:是否有效; @@ -181,7 +221,7 @@ { "field": "eventStatus", "label": "状态", "align": "center" } ] -3) JSON 对象区分“进行中”和“已关闭”列 +3) JSON 对象区分"进行中"和"已关闭"列 { "activeFields": [ "callCode", @@ -208,23 +248,285 @@ 前端看板程序可根据 `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. 管理人员在“安灯规则配置”页面维护规则: +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) -安灯事件可以由前端页面手工新增,也可以由外部系统/设备通过接口推送,后端统一通过 `AndonEventServiceImpl.insertAndonEvent` 处理: +安灯事件可以由前端页面手工新增,也可以由手持PDA通过接口推送,后端统一通过 `AndonEventServiceImpl.insertAndonEvent` 处理: 1. 写入事件的 `createTime`; 2. 调用 `applyRuleAndCompute(e, true)`: @@ -286,7 +588,7 @@ - 记录 `responseStartTime`; - 事件状态置为 PROCESSING; - 调用 `applyRuleAndCompute` 重新计算解决截止时间(以开始处理时间为锚点); - - 写入“开始处理”编辑日志; + - 写入"开始处理"编辑日志; 3. `completeEvent`(完成事件): - 记录 `responseEndTime` 与 `resolution`; - 事件状态置为 RESOLVED; @@ -300,7 +602,8 @@ #### 1.3.6 日志与看板 - 日志(AndonEventLog):由各类 Service 方法在关键节点自动写入; -- 看板(AndonBoardConfig):前端根据配置定时拉取 AndonEvent 数据,在大屏展示当前安灯分布和状态。 +- 看板(AndonBoardConfig):前端根据配置定时轮询拉取 AndonEvent 数据,在大屏展示当前安灯分布和状态; +- 生产监控(AndonDashboard):前端定时调用 `getDashboardData` 接口,获取设备状态、任务完成、OEE、利用率、品质等实时数据。 --- @@ -331,9 +634,11 @@ - `ack`:从确认时间起算,若为空则退回创建时间; - `create`:直接从创建时间起算。 +--- + ### 1.5 前后端代码逻辑概览 -本节从“前端页面 → 前端 api → 后端 Controller → Service → Mapper/数据库”的角度,梳理各模块的主要调用链,方便开发、联调与排查问题。 +本节从"前端页面 → 前端 api → 后端 Controller → Service → Mapper/数据库"的角度,梳理各模块的主要调用链,方便开发、联调与排查问题。 #### 1.5.1 安灯事件(AndonEvent)调用链 @@ -367,55 +672,14 @@ - `updateAndonEvent`:根据最新时间重算截止时间;如状态为取消则调用 `cascadeCancelAssignments` 级联取消派工,并写取消日志; - `acknowledgeEvent` / `startProcessEvent` / `completeEvent` / `cancelEvent`:维护确认/开始处理/完成/取消相关字段与状态,调用 `AndonEventMapper.updateAndonEvent` 落库,并通过 `logEvent` 写入相应操作日志。 -**调用链时序图示例(新增安灯事件):** +**规则匹配算法(pickBestRule)** +规则选择在事件侧与派工侧保持同一算法,防止不同模块命中不同规则: +1. 先按呼叫类型(`callTypeCode`)与有效标记筛出候选规则。 +2. 对每条候选规则计算"匹配分":产线/工位/班组/触发源类型,每命中一项 +1。 +3. 得分最高的规则被选中;并列时按列表顺序先到先得。 +4. 事件侧用于计算时限/优先级并创建派工;派工侧用于读取 `remark.cancelOthers` 等策略,确保一致性。 -```mermaid -sequenceDiagram - participant U as 用户 - participant V as AndonEvent 页面
index.vue - participant A as andonEvent.js - participant C as AndonEventController - participant S as AndonEventServiceImpl - participant RM as AndonRuleMapper - participant EM as AndonEventMapper - participant AM as AndonEventAssignmentMapper - participant LM as AndonEventLogMapper - - U->>V: 点击“新增”并提交安灯表单 - V->>A: addAndonEvent(data) - A->>C: POST /production/andonEvent - C->>S: insertAndonEvent(andonEvent) - S->>RM: selectAndonRuleList(...) - RM-->>S: 返回候选规则 - S->>S: applyRuleAndCompute(匹配规则并计算截止时间) - S->>EM: insertAndonEvent(写入 andon_event) - S->>AM: insertAndonEventAssignment(根据规则创建派工) - S->>LM: insertAndonEventLog(记录创建日志) - S-->>C: 返回插入结果 - C-->>A: AjaxResult - A-->>V: 响应成功,刷新事件列表 -``` - -#### 1.5.2 安灯规则(AndonRule)调用链 - -**前端页面与 api:** - -- 页面:`views/production/andonRule/index.vue` -- api:`api/production/andonRule.js` - - `listAndonRule(query)` → `GET /production/andonRule/list` - - `getAndonRule(ruleId)` → `GET /production/andonRule/{ruleId}` - - `addAndonRule(data)` → `POST /production/andonRule` - - `updateAndonRule(data)` → `PUT /production/andonRule` - - `delAndonRule(ruleId)` → `DELETE /production/andonRule/{ruleId}` - - `getAndonRuleList(query)` → `GET /production/andonRule/getAndonRuleList`(安灯事件新增时用于加载规则下拉) - -**后端 Service 与 Mapper:** - -- `IAndonRuleService` / `AndonRuleServiceImpl`:提供规则的增删改查能力; -- `AndonRuleMapper`(`AndonRuleMapper.xml`):与 `andon_rule` 表交互; -- 规则查询 `selectAndonRuleList` 被 `AndonEventServiceImpl.applyRuleAndCompute` 与 `autoCreateAssignments` 调用,用于为事件匹配最佳规则及派工策略。 - -#### 1.5.3 安灯派工记录(AndonEventAssignment)调用链 +#### 1.5.2 安灯派工记录(AndonEventAssignment)调用链 **前端页面与 api:** @@ -426,427 +690,965 @@ sequenceDiagram - `addAndonEventAssignment(data)` → `POST /production/andonEventAssignment` - `updateAndonEventAssignment(data)` → `PUT /production/andonEventAssignment` - `delAndonEventAssignment(assignmentId)` → `DELETE /production/andonEventAssignment/{assignmentId}` - - `getAndonEventAssignmentList(query)` → `GET /production/andonEventAssignment/getAndonEventAssignmentList` -**后端 Service 与 Mapper:** +**后端 Controller:** `AndonEventAssignmentController`(`/production/andonEventAssignment`) -- `IAndonEventAssignmentService` / `AndonEventAssignmentServiceImpl`: - - `insertAndonEventAssignment` 在自动派工或手工新增派工时调用,写入 `createTime` 后通过 `AndonEventAssignmentMapper.insertAndonEventAssignment` 持久化; - - `updateAndonEventAssignment` 根据派工状态自动补 `acceptTime` / `finishTime`,并通过 `AndonEventMapper` 联动更新事件的状态与时间里程碑,同时调用 `AndonEventLogMapper.insertAndonEventLog` 写日志; -- `AndonEventAssignmentMapper`:与 `andon_event_assignment` 表交互。 +- `list(AndonEventAssignment andonEventAssignment)`:查询派工列表,调用 `IAndonEventAssignmentService.selectAndonEventAssignmentList`; +- `add(AndonEventAssignment andonEventAssignment)`:新增派工,补全 `createBy`/`createTime` 后调用 `insertAndonEventAssignment`; +- `edit(AndonEventAssignment andonEventAssignment)`:修改派工,补全 `updateBy`/`updateTime` 后调用 `updateAndonEventAssignment`,触发状态联动逻辑; +- `remove(assignmentId)`:删除派工,调用 `deleteAndonEventAssignment`。 -#### 1.5.4 安灯事件日志(AndonEventLog)调用链 +**Service 关键逻辑:** `AndonEventAssignmentServiceImpl` + +- `updateAndonEventAssignment`:核心方法,处理派工状态变更 + - 补充接单/完成时间; + - 联动更新事件状态与里程碑时间; + - 写入事件日志; + - 根据策略自动取消其他派工。 + +#### 1.5.3 安灯生产监控看板(AndonDashboard)调用链 **前端页面与 api:** -- 页面:`views/production/andonEventLog/index.vue` -- api:`api/production/andonEventLog.js` - - `listAndonEventLog(query)` → `GET /production/andonEventLog/list` - - `getAndonEventLog(logId)` → `GET /production/andonEventLog/{logId}` - - `addAndonEventLog(data)` → `POST /production/andonEventLog` - - `updateAndonEventLog(data)` → `PUT /production/andonEventLog` - - `delAndonEventLog(logId)` → `DELETE /production/andonEventLog/{logId}` - - `getAndonEventLogList(query)` → `GET /production/andonEventLog/getAndonEventLogList` +- 页面:`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` -**后端 Service 与 Mapper:** +**后端 Controller:** `AndonDashboardController`(`/production/andonDashboard`) -- `IAndonEventLogService` / `AndonEventLogServiceImpl`:提供日志的增删改查; -- `AndonEventLogMapper`:与 `andon_event_log` 表交互; -- 实际业务中,大多由 `AndonEventServiceImpl`、`AndonEventAssignmentServiceImpl` 内部调用 `AndonEventLogMapper.insertAndonEventLog` 自动写入,不建议前端直接新增/修改。 +- `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)`。 -#### 1.5.5 安灯看板配置(AndonBoardConfig)调用链 +**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/production/andonBoardConfig/index.vue` -- api:`api/production/andonBoardConfig.js` - - `listAndonBoardConfig(query)` → `GET /production/andonBoardConfig/list` - - `getAndonBoardConfig(boardId)` → `GET /production/andonBoardConfig/{boardId}` - - `addAndonBoardConfig(data)` → `POST /production/andonBoardConfig` - - `updateAndonBoardConfig(data)` → `PUT /production/andonBoardConfig` - - `delAndonBoardConfig(boardId)` → `DELETE /production/andonBoardConfig/{boardId}` - - `getAndonBoardConfigList(query)` → `GET /production/andonBoardConfig/getAndonBoardConfigList` +- 页面:`views/board/andonBoard/index.vue` +- api:`api/production/andonBoard.js` + - `viewAndonBoard(boardCode)` → `GET /production/andonBoard/view` -**后端 Service 与 Mapper:** +**后端 Controller:** `AndonBoardController`(`/production/andonBoard`) -- `IAndonBoardConfigService` / `AndonBoardConfigServiceImpl`:看板配置的增删改查; -- `AndonBoardConfigMapper`:与 `andon_board_config` 表交互; -- 前端看板展示页可基于 `boardCode` 拉取对应配置,再结合 `AndonEvent` 列表做可视化展示。 +- `view(String boardCode)`:根据看板编码获取看板数据 + - 参数校验:boardCode 必填 + - 查询配置:调用 `IAndonBoardConfigService.selectAndonBoardConfigList` 查询启用的看板配置,同一编码取最新的一条 + - 过滤事件:根据配置的产线/工位范围调用 `IAndonEventService.selectAndonEventList` 查询安灯事件 + - 统计分组:统计各状态数量,拆分进行中/已关闭事件 + - 排序限制:进行中事件按优先级排序,已关闭事件限制20条 + - 返回数据:组装配置、统计、事件列表、服务器时间 + +**Service 关键逻辑:** `AndonBoardController` + +- `selectActiveBoardConfig(String boardCode)`:查询指定看板编码下启用的配置记录 + - 按更新时间优先、否则按创建时间,倒序排序,取第一条(最新配置) + +- `selectEventsByConfig(AndonBoardConfig config)`:根据看板配置的作用域查询事件列表 + - 仅当配置字段非空时才作为过滤条件;为空表示不按该维度过滤 + - 产线范围过滤:`productLineCode` + - 工位/工序范围过滤:`stationCode` + +- `buildStats(List events)`:构建看板统计数据 + - 返回字段:pending / processing / resolved / cancelled / active / total + +- `filterByStatus(List events, boolean active)`:按状态将事件分为"进行中"和"已关闭"两组 + - active=true:待处理/处理中 + - active=false:已解决/已取消(以及其他未知状态) + +- `sortActiveEvents(List events)`:进行中事件排序 + - 1) 状态(待处理优先于处理中) + - 2) 优先级(数值越小越紧急;空值排最后) + - 3) 创建时间(越早越靠前;空值排最后) + +- `sortClosedEvents(List 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 用户角色与使用边界(概览) +#### 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 汇报设置 -对应前端:`views/production/andonRule/index.vue` +#### 2.2.1 功能说明 -#### 2.2.1 页面结构 +根据不同的安灯异常类别,设置不同的汇报层级。通过配置安灯规则的优先级、通知对象和时限,实现分级汇报机制。 -- **查询区域**: - - 可按“规则名称”进行模糊查询; - - 其它高级条件(产线/工位/班组等)可按需要扩展使用; -- **列表区域**: - - 展示规则名称、呼叫类型、适用范围、时限、默认优先级、通知对象等; - - 支持列显隐配置; -- **操作按钮**: - - 新增:添加新的安灯规则; - - 修改:编辑选中规则; - - 删除:逻辑层面删除不再需要的规则(建议谨慎使用,优先通过 `isFlag` 失效)。 +#### 2.2.2 配置说明 -#### 2.2.2 新增/编辑规则 +**优先级设置:** +- 优先级范围:1-5(1最高,5最低) +- 高优先级事件会优先处理和展示 +- 不同呼叫类型可以设置不同的默认优先级 -在弹出的规则表单中: +**汇报层级实现:** -- 填写“规则名称”“呼叫类型编码”; -- 选择适用产线、工位/工序、班组(可选); -- 设置确认时限与解决时限(分钟); -- 设置默认优先级(1–5); -- 在“通知用户”中多选需要被通知的人员; -- 必要时在“备注”中约定高级策略(如取消其它派工、解决时限锚点等); -- 提交后,系统在新增时会自动设置默认值(优先级 3、确认 5 分钟、解决 30 分钟、`isFlag=1` 等)。 +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 生产进度 -对应前端:`views/production/andonEvent/index.vue` +#### 2.3.1 功能说明 -#### 2.3.1 查看与筛选安灯事件 +机器状态监控、机台任务完成情况、OEE 数据、利用率、品质等基本信息汇总与展示,帮助管理人员实时掌握生产进度和效率。 -- 在顶部查询区域,可按“安灯呼叫单号”等条件查询; -- 列表中可看到事件的呼叫类型、触发源类型、产线/工位/班组、工单号、设备、优先级、状态、各类时间节点等; -- 可通过右上角列配置按钮开启/关闭不关心的列,简化视图。 +#### 2.3.2 数据展示 -#### 2.3.2 新增安灯事件(手工发起呼叫) +**1. 设备状态监控** +- 设备总数 +- 运行中设备数 +- 停机设备数 +- 故障设备数 +- 维护设备数 +- 设备状态分布图 -点击“新增”,在弹窗中: +**2. 机台任务完成情况** +- 计划任务总数 +- 已完成任务数 +- 任务完成率 +- 任务进度条 -- 系统会自动给出一条默认的呼叫单号(如 `AD + 时间戳`),可直接使用; -- 选择“呼叫类型编码”: - - 下拉选项来自安灯规则列表(仅取有效规则); - - 推荐按实际业务场景选择对应类型; -- 选择“触发源类型”与“触发源引用”: - - 若是工位安灯:选择触发源类型为工位,并从下拉中选择具体工位; - - 若是设备安灯:选择触发源类型为设备,并选择设备台账中的设备; - - 报警/手动等类型可直接输入引用 ID; -- 选择产线、工位/工序、班组(均为下拉框); -- 如有需要,可录入工单号、设备编码等辅助信息; -- 在“呼叫描述”中尽量详细描述问题现象和影响范围; -- 提交后: - - 系统将自动匹配规则并计算确认/解决截止时间与优先级; - - 自动生成相关派工记录; - - 写入事件创建日志。 +**3. OEE 数据** +- 可用率(Availability):设备实际运行时间 / 计划运行时间 +- 表现率(Performance):实际产量 / 理论产量 +- 质量指数(Quality Index):良品数 / 总产量 +- 综合效率(OEE):可用率 × 表现率 × 质量指数 -#### 2.3.3 事件确认、完成与取消 +**4. 利用率** +- 设备利用率:设备运行时间 / 可用时间 +- 产线利用率:产线运行时间 / 可用时间 -在事件列表的“操作”列中,根据事件状态会显示不同按钮: +**5. 品质数据** +- 今日总产量 +- 良品数 +- 不良品数 +- 良品率(%) -- **确认**(仅待处理状态显示): - - 点击后,系统记录当前用户为确认人,并写入确认时间; - - 事件状态变为“处理中”; - - 写入确认日志; -- **完成**(处理中状态显示): - - 点击后,在弹窗或表单中填写解决措施; - - 系统记录处理完成时间,将事件状态置为“已解决”; - - 写入解决日志; -- **取消**(待处理/处理中状态显示): - - 输入取消原因后提交; - - 事件状态变为“已取消”; - - 系统自动将该事件下所有派工记录状态改为“已取消”; - - 写入取消日志。 +**6. 安灯事件统计** +- 今日事件总数 +- 待处理事件数 +- 处理中事件数 +- 已解决事件数 +- 已取消事件数 -> 注意:安灯事件用于统计分析和追溯,**不建议删除事件**,如需终止处理,请使用“取消”功能。 +#### 2.3.3 操作步骤 + +1. **进入安灯生产监控看板** + - 菜单路径:生产管理 → 安灯管理 → 安灯生产监控 + - 页面位置:`views/production/andonDashboard/index.vue` + +2. **查看生产进度数据** + - 页面自动刷新(默认刷新间隔) + - 查看设备状态、任务完成、OEE、利用率、品质等数据 + - 数据按产线分组展示 + +3. **按产线筛选** + - 在产线下拉框中选择要查看的产线 + - 页面自动刷新该产线的生产数据 + +4. **查看详细数据** + - 点击各模块的"查看详情"按钮 + - 查看该模块的详细数据列表 + +#### 2.3.4 注意事项 + +- 看板数据实时更新,建议保持页面打开以获取最新数据 +- OEE数据需要设备台账、设备参数、生产计划等基础数据支持 +- 品质数据来源于质检记录,需要及时录入质检信息 +- 可以通过"安灯看板配置"页面调整看板的刷新间隔和展示字段 --- -### 2.4 安灯派工记录页面使用说明 +### 2.4 效率监控 -对应前端:`views/production/andonEventAssignment/index.vue` +#### 2.4.1 功能说明 -#### 2.4.1 查看派工记录 +机器状态监控、OEE 数据、利用率、品质等基本信息汇总与展示,帮助管理人员分析生产效率,发现瓶颈和改进机会。 -- 在查询区域可按“派工状态”等条件进行筛选; -- 列表中展示:被分配用户/角色/班组、派工时间、接单时间、完成时间、派工状态、是否有效等信息; -- 通过列控制可隐藏技术性较强的字段(如主键 ID 等),方便业务人员使用。 +#### 2.4.2 关键指标说明 -#### 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 安灯事件管理 -对应前端:`views/production/andonEventLog/index.vue` +#### 2.5.1 功能说明 -#### 2.5.1 查看日志 +管理安灯事件的全生命周期,包括事件创建、确认、开始处理、完成、取消等操作。 -- 在查询区域可按“操作类型”筛选(如只看创建、派工、取消等); -- 列表中展示:事件 ID、操作类型、操作内容、操作人、操作时间等; -- 可按时间排序,便于从时间轴维度审查某一事件的完整处理过程。 +#### 2.5.2 操作步骤 -#### 2.5.2 使用建议 +1. **进入安灯事件管理页面** + - 菜单路径:生产管理 → 安灯管理 → 安灯事件管理 + - 页面位置:`views/production/andonEvent/index.vue` -- 日志主要由系统后台自动记录,**通常无需人工新增或修改**; -- 管理人员可在以下场景使用: - - 复盘重大停线/质量事故的处理过程; - - 检查某一次安灯是否按规定时限响应和完成; - - 分析不同班组/人员对安灯的响应习惯和效率。 +2. **新增安灯事件** + - 点击"新增"按钮 + - 填写事件信息: + - **呼叫单号**:系统自动生成 + - **呼叫类型**:选择呼叫类型 + - **触发源类型**:选择触发源类型 + - **产线编码**:选择产线 + - **工位/工序编码**:选择工位 + - **班组编码**:选择班组 + - **工单号**:输入工单号 + - **物料编码**:选择物料 + - **设备编码**:选择设备 + - **优先级**:选择优先级 + - **呼叫描述**:输入描述 + - 点击"确定"保存 + +3. **确认事件** + - 在列表中选中要确认的事件 + - 点击"确认"按钮 + - 系统自动记录确认人和确认时间 + +4. **开始处理** + - 在列表中选中要处理的事件 + - 点击"开始处理"按钮 + - 系统自动记录开始处理时间 + +5. **完成事件** + - 在列表中选中要完成的事件 + - 点击"完成"按钮 + - 输入解决措施 + - 点击"确定" + - 系统自动记录完成时间和解决措施 + +6. **取消事件** + - 在列表中选中要取消的事件 + - 点击"取消"按钮 + - 输入取消原因 + - 点击"确定" + - 系统自动取消事件及相关派工 + +7. **查询事件** + - 在搜索框中输入查询条件 + - 点击"搜索"按钮 + - 点击"重置"按钮清空查询条件 + +#### 2.5.3 注意事项 + +- 事件创建后系统会自动匹配规则并创建派工 +- 事件状态会随操作自动更新 +- 取消事件会级联取消相关派工 +- 所有操作都会记录在事件日志中 --- -### 2.6 安灯看板配置页面使用说明 +### 2.6 安灯派工管理 -对应前端:`views/production/andonBoardConfig/index.vue` +#### 2.6.1 功能说明 -#### 2.6.1 查看与维护看板配置 +管理安灯派工记录,查看派工状态,接单、完成派工任务。 -- 列表中展示:看板编码、看板名称、产线、工位/工序、展示字段配置、刷新间隔、是否有效等; -- 可按看板编码或名称搜索特定看板配置。 +#### 2.6.2 操作步骤 -#### 2.6.2 新增/编辑看板配置 +1. **进入安灯派工管理页面** + - 菜单路径:生产管理 → 安灯管理 → 安灯派工管理 + - 页面位置:`views/production/andonEventAssignment/index.vue` -在新增或编辑对话框中: +2. **查看派工列表** + - 默认显示当前用户的派工记录("只看我的"开关默认开启) + - 可以关闭"只看我的"查看所有派工 + - 待接单的记录会高亮显示(红色背景) + - 处理中的记录会显示蓝色背景 -- 填写“看板编码”“看板名称”; -- 选择关联的产线和工位/工序; -- 设置“刷新间隔”(秒): - - 决定大屏从后端拉取数据的频率; - - 建议根据现场网络与数据量情况合理设置; -- 根据需求配置“展示字段配置”(如展示哪些时间、状态、优先级等); -- 设置“是否有效”为启用状态; -- 提交后,大屏应用即可根据新的配置进行展示。 +3. **接单** + - 在列表中选中要接单的派工 + - 点击"修改状态"按钮 + - 将状态改为"已接单" + - 点击"确定" + - 系统自动记录接单时间 + +4. **完成派工** + - 在列表中选中要完成的派工 + - 点击"修改状态"按钮 + - 将状态改为"已完成" + - 点击"确定" + - 系统自动记录完成时间 + +5. **查询派工** + - 在搜索框中输入查询条件 + - 点击"搜索"按钮 + - 点击"重置"按钮清空查询条件 + +#### 2.6.3 注意事项 + +- 派工记录由系统自动创建,不允许手动新增 +- 派工状态变更会联动更新事件状态 +- 完成派工后,根据规则配置可能自动取消同一事件的其他派工 +- 所有操作都会记录在事件日志中 --- -### 2.7 典型业务使用场景小结 +### 2.7 安灯事件日志 -#### 场景一:上线前配置规则 +#### 2.7.1 功能说明 -- 由工艺/设备/质量/IT 等角色共同在“安灯规则配置”页面定义: - - 规则名称与呼叫类型; - - 适用产线/工位/班组; - - 确认与解决时限; - - 通知用户列表; - - 是否自动取消其他派工等策略。 +查询安灯事件的操作日志,追溯事件处理过程,用于审计和问题分析。 -#### 场景二:现场发起安灯 +#### 2.7.2 操作步骤 -- 一线操作工或班组长根据现场情况,在“安灯事件”页面点击“新增”; -- 选择合适的呼叫类型与触发源,填写产线/工位/班组与问题描述; -- 提交后系统自动匹配规则和派工,不需要人工额外操作。 +1. **进入安灯事件日志页面** + - 菜单路径:生产管理 → 安灯管理 → 安灯事件日志 + - 页面位置:`views/production/andonEventLog/index.vue` -#### 场景三:责任人接单并处理 +2. **查询日志** + - 在搜索框中输入查询条件: + - **操作类型**:选择操作类型(创建、派工、确认、接单、解决、取消等) + - 点击"搜索"按钮 + - 点击"重置"按钮清空查询条件 -- 维修、质量等责任人员在“安灯派工记录”或“安灯事件”页面: - - 将派工状态改为“已接单”,开始实际处理; - - 在完成后改为“已完成”,并填写解决措施; -- 系统自动维护相关时间节点并更新事件状态。 +3. **查看日志详情** + - 日志列表显示所有操作记录 + - 每条记录包含:事件ID、操作类型、操作内容、操作人、操作时间 -#### 场景四:管理层监控与复盘 +#### 2.7.3 注意事项 -- 通过“安灯事件”页面查看当前和历史事件分布; -- 通过“安灯派工记录”分析不同责任人/班组的响应与处理情况; -- 通过“安灯事件日志”还原重要事件的全过程; -- 通过“安灯看板配置”与现场大屏,实时监控车间安灯整体健康状况。 +- 事件日志由系统自动记录,不允许手动修改 +- 日志按时间倒序排列,最新操作显示在最前面 +- 可以通过事件ID关联查看完整的事件处理过程 --- -### 2.8 参考案例:1号产线设备故障安灯全流程 +### 2.8 安灯看板配置 -以下以“1号产线设备 A 停机故障”为例,从操作顺序和后台逻辑两个角度,串起完整安灯闭环: +#### 2.8.1 功能说明 -#### 2.8.1 前置配置(由规则到页面) +配置安灯看板的展示内容,包括绑定工位、展示字段、刷新间隔等。 -1. 管理人员在“安灯规则配置”页面新增规则: - - `ruleName`:1号产线-设备故障; - - `callTypeCode`:DEVICE_FAULT; - - `productLineCode`:PL001(1号产线); - - `stationCode`:对应工位; - - `ackTimeoutMin`:5 分钟,`resolveTimeoutMin`:30 分钟; - - `priorityDefault`:1(最高优先级); - - `notifyUsers`:选择维修工程师账号; - - `remark` 中可配置 `{"mode":"single","cancelOthers":true,"resAnchor":"start"}`; -2. 前端保存规则时调用 `addAndonRule` → `POST /production/andonRule`; -3. 后端 `AndonRuleServiceImpl.insertAndonRule` 将规则写入 `andon_rule` 表,后续事件创建时会按 `callTypeCode` + 产线/工位/班组匹配到该规则。 +#### 2.8.2 操作步骤 -#### 2.8.2 现场发起安灯事件 +1. **进入安灯看板配置页面** + - 菜单路径:生产管理 → 安灯管理 → 安灯看板配置 + - 页面位置:`views/production/andonBoardConfig/index.vue` -1. 一线操作工在 1 号产线操作台发现设备 A 停机: - - 打开“安灯事件”页面,点击“新增”; - - 选择“呼叫类型编码:DEVICE_FAULT”; - - 触发源类型选“设备”,触发源引用选择设备 A; - - 产线选择 PL001,工位选择当前工位,班组选择当前班组; - - 在“呼叫描述”中填写“设备 A 突然停机,无法启动”; - - 提交表单。 -2. 前端调用 `addAndonEvent` → `POST /production/andonEvent`,将表单数据作为 `AndonEvent` 传入后端; -3. 后端 `AndonEventController.add`: - - 补全 `createBy = 当前登录用户`、`createTime = 当前时间`; - - 调用 `AndonEventServiceImpl.insertAndonEvent`; -4. `insertAndonEvent` 内部: - - 调用 `applyRuleAndCompute(andonEvent, true)`: - - 根据 `callTypeCode=DEVICE_FAULT`、产线/工位/班组在 `andon_rule` 中筛选出候选规则; - - 通过 `pickBestRule` 按匹配度选择前面配置的“1号产线-设备故障”规则; - - 计算 `ackDeadline = createTime + 5 分钟`; - - 计算 `resolveDeadline = (后续 start 时间 或 createTime)+ 30 分钟`; - - 若未手动设置优先级,则赋值为 `priorityDefault=1`; - - 通过 `AndonEventMapper.insertAndonEvent` 写入 `andon_event` 表; - - 调用 `autoCreateAssignments(andonEvent)`: - - 读取规则中的 `notifyUsers`,为维修工程师创建一条派工记录(状态 ASSIGNED,`assignedTime` 为当前时间); - - 通过 `AndonEventAssignmentMapper.insertAndonEventAssignment` 写入 `andon_event_assignment` 表; - - 调用 `logEvent` 向 `andon_event_log` 记录一条“事件创建并完成规则计算与派工初始化”的日志。 +2. **新增看板配置** + - 点击"新增"按钮 + - 填写配置信息: + - **看板编码**:输入看板编码,如"BOARD001" + - **看板名称**:输入看板名称,如"装配工位安灯看板" + - **绑定工位**:选择绑定的工位(必填) + - **展示字段配置**:输入展示字段配置(JSON格式) + - **刷新间隔**:输入刷新间隔(秒) + - **是否有效**:选择是否启用该看板 + - **备注**:输入备注信息 + - 点击"确定"保存 -#### 2.8.3 责任人接单与处理 +3. **修改看板配置** + - 在列表中选中要修改的配置 + - 点击"修改"按钮 + - 修改配置信息 + - 点击"确定"保存 -1. 维修工程师在系统中查看“安灯派工记录”页面: - - 筛选派工状态为“已派工”; - - 看到自己被分配到的“设备 A 故障”记录; -2. 维修工程师点击“修改”/“修改状态”,将派工状态改为“已接单”: - - 前端调用 `updateAndonEventAssignment` → `PUT /production/andonEventAssignment`; - - 后端 `AndonEventAssignmentServiceImpl.updateAndonEventAssignment`: - - 补全 `acceptTime = 当前时间`; - - 根据 `eventId` 读取对应 `AndonEvent`,若 `responseStartTime` 为空则补为当前时间; - - 将事件状态置为 PROCESSING; - - 更新 `andon_event` 与 `andon_event_assignment`,并写入一条“派工已接受,事件进入处理中”的日志; -3. 维修工程师处理完成后,再次修改派工状态为“已完成”: - - 前端仍然调用 `updateAndonEventAssignment`; - - `updateAndonEventAssignment`: - - 补全 `finishTime = 当前时间`; - - 若事件 `responseEndTime` 为空则补为当前时间,将事件状态置为 RESOLVED; - - 按规则中 `cancelOthers=true`,自动取消同一事件下其他未完成派工(如有); - - 写入“派工已完成,事件标记已解决”以及“策略要求取消该事件的其他并行派工”的日志。 +4. **删除看板配置** + - 在列表中选中要删除的配置(支持多选) + - 点击"删除"按钮 + - 确认删除 -> 也可以由班组长在“安灯事件”页面直接对该事件点击“完成”,前端调用 `completeEvent` 接口,后端 `AndonEventServiceImpl.completeEvent` 会记录 `responseEndTime`、`resolution` 并将事件状态置为 RESOLVED,同样写入解决日志。 +5. **查看配置说明** + - 在新增/修改对话框中,点击"操作说明"按钮 + - 查看展示字段配置的详细说明和示例 -#### 2.8.4 管理层查看与复盘 +#### 2.8.3 展示字段配置说明 -1. 生产管理在“安灯事件”页面按时间、产线、呼叫类型筛选,可看到该次设备故障安灯的: - - 呼叫单号、产线/工位、设备、班组; - - 优先级、当前状态; - - 确认时间、开始处理时间、完成时间; - - 确认/解决截止时间是否被超时等; -2. 在“安灯事件日志”页面按事件 ID 查询,可看到完整的日志链: - - 事件创建; - - 自动派工; - - 派工被接受; - - 派工完成及自动取消其他派工(若有); -3. 在现场安灯看板上,对应 1 号产线的大屏会按配置展示: - - 当前正在处理或已超时的安灯事件; - - 该设备故障事件在处理期间会以高优先级标记,以便管理者快速关注。 +**配置格式:** -通过上述案例,可以看到: +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 安灯看板展示 -本节通过一张整体流程图,展示安灯从**规则配置 → 现场呼叫 → 系统匹配规则与派工 → 接单处理 → 完成/取消 → 日志与看板**的闭环过程。若使用支持 Mermaid 的 Markdown 查看器(如 VSCode 对应扩展、部分 Git 平台),下方代码块会直接渲染为流程图。 +#### 2.9.1 功能说明 -```mermaid -flowchart LR - subgraph PRE[规则与基础配置] - RCFG[安灯规则配置
AndonRule] -->|保存规则| RDB[(andon_rule)] - BCFG[安灯看板配置
AndonBoardConfig] --> BDB[(andon_board_config)] - end +安灯看板展示是用于车间现场大屏展示的安灯事件实时监控页面,通过看板配置自动过滤和展示安灯事件,支持动态配置展示字段和刷新间隔。 - subgraph CALL[现场呼叫] - OP[一线操作工/班组长] -->|点击“新增安灯”或外部系统触发| FEV[前端安灯事件页面
andonEvent/index.vue] - FEV -->|addAndonEvent| API[/api/production/andonEvent.js/] - API --> CTRL[AndonEventController] - end +#### 2.9.2 页面特点 - CTRL -->|insertAndonEvent| SVC[AndonEventServiceImpl] +- **深色主题设计**:适合大屏展示,减少视觉疲劳 +- **自动刷新**:根据配置的刷新间隔自动更新数据 +- **双面板布局**:左侧展示进行中事件,右侧展示已关闭事件 +- **实时统计**:顶部统计卡片展示待处理、处理中、已解决、已取消、总数 +- **免登录访问**:支持免登录访问,方便大屏展示和外部系统集成 - subgraph RULE[规则匹配与时限计算] - SVC -->|selectAndonRuleList| RDB - RDB --> SVC - SVC -->|applyRuleAndCompute
计算确认/解决时限、优先级| SVC - end +#### 2.9.3 操作步骤 - subgraph EVENTDB[事件与派工落库] - SVC -->|insertAndonEvent| EDB[(andon_event)] - SVC -->|autoCreateAssignments| ADB[(andon_event_assignment)] - SVC -->|logEvent(CREATE/ASSIGN)| LDB[(andon_event_log)] - end +1. **进入安灯看板展示页面** + - 访问路径:`/andonBoard?boardCode=BOARD001` + - 页面位置:`views/board/andonBoard/index.vue` + - 必须在URL中传入 `boardCode` 参数 - subgraph EXEC[接单与处理] - RSP[维修/质量/设备人员] -->|在派工页面查看并“接单/完成”| FAS[前端派工页面
andonEventAssignment/index.vue] - FAS -->|updateAndonEventAssignment| AAPI[/api/production/andonEventAssignment.js/] - AAPI --> ASVC[AndonEventAssignmentServiceImpl] - ASVC --> ADB - ASVC --> EDB - ASVC -->|logEvent(ACCEPT/RESOLVE/CANCEL_OTHERS)| LDB - end +2. **查看看板数据** + - 页面顶部显示看板标题、boardCode、刷新间隔、最近更新时间 + - 统计卡片展示各状态事件数量 + - 左侧面板展示待处理/处理中事件 + - 右侧面板展示已解决/已取消事件 - subgraph LIFECYCLE[事件生命周期操作] - MGR[班组长/管理人员] -->|确认/开始处理/完成/取消| FEV2[安灯事件页面操作按钮] - FEV2 -->|acknowledgeEvent/startProcessEvent/completeEvent/cancelEvent| API2[/api/production/andonEvent.js/] - API2 --> CTRL2[AndonEventController] - CTRL2 --> SVC2[AndonEventServiceImpl] - SVC2 --> EDB - SVC2 -->|logEvent(ACK/RESOLVE/CANCEL)| LDB - end +3. **理解事件状态颜色** + - 待处理:红色(#ff5f5f) + - 处理中:橙色(#ffb020) + - 已解决:青色(#16ceb9) + - 已取消:灰色(#9aa3ad) - subgraph VIEW[查看与复盘] - MGR2[管理层/分析人员] --> EVLIST[安灯事件列表页] - MGR2 --> ASSLIST[派工记录页] - MGR2 --> LOGPAGE[事件日志页] - MGR2 --> BOARD[现场安灯看板] +4. **查看事件详情** + - 查看各列展示的事件信息 + - 时间字段格式化为:yyyy-MM-dd HH:mm:ss + - 状态字段显示中文文本和颜色标识 - EVLIST -->|查询/统计| EDB - ASSLIST --> ADB - LOGPAGE --> LDB - BOARD -->|读看板配置| BDB - BOARD -->|拉取安灯事件数据| EDB - end +5. **切换看板** + - 修改URL中的 `boardCode` 参数 + - 页面自动加载新看板的配置和数据 - PRE --> CALL - EVENTDB --> EXEC - EVENTDB --> LIFECYCLE - EXEC --> VIEW - LIFECYCLE --> VIEW -``` +#### 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 | 重构文档,增加生产进度和效率监控模块 |