外观
维修费用表
约 1841 字大约 6 分钟
2026-07-28
功能概述
维修费用表用于归集车间实际发生的维修费用明细,包括设备维修费用、备件采购费用、维修人工费用、外协维修费用等。维修费用表支持按车间、按设备、按费用类型进行明细展示,是车间设备管理和维护成本控制的重要报表工具。
业务对象
| 业务对象 | 说明 |
|---|---|
| 维修费用归集 | 按车间归集维修费用的核心业务对象 |
| 维修费用明细 | 单笔维修费用的明细对象 |
业务场景描述: 每月末,系统从维修工单、备件领用、外协维修合同等数据源汇总各车间的维修费用,按费用类型分类展示,并统计设备维修频率和单台设备维修成本,为设备维护决策提供数据支持。
实体设计
维修费用表实体 (RP_MaintenanceCostLine)
| 字段名称 | 字段编码 | 数据类型 | 必填 | 是否隐藏 | 说明 |
|---|---|---|---|---|---|
| 主键ID | id | 整数 | 自动 | 系统自带 | |
| 会计期间 | period | 文本 | 是 | 否 | 会计月份 |
| 车间ID | workshopId | 参照/外键 | 是 | 是 | 关联车间档案ID |
| 设备编码 | equipmentCode | 文本 | 是 | 否 | 设备编码 |
| 设备名称 | equipmentName | 文本 | 是 | 否 | 设备名称 |
| 维修单号 | maintenanceNo | 文本 | 是 | 否 | 维修工单编号 |
| 维修类型 | maintenanceType | 文本 | 是 | 否 | 日常保养/故障维修/大修/技改 |
| 备件费用 | sparePartsCost | 数值 | 是 | 否 | 备件采购费用(元)(2位小数) |
| 人工费用 | laborCost | 数值 | 是 | 否 | 维修人工费用(元)(2位小数) |
| 外协费用 | outsourcingCost | 数值 | 是 | 否 | 外协维修费用(元)(2位小数) |
| 其他费用 | otherCost | 数值 | 是 | 否 | 其他维修费用(元)(2位小数) |
| 维修费用合计 | totalCost | 数值 | 是 | 否 | 本次维修费用合计(2位小数) |
| 维修日期 | maintenanceDate | 日期 | 是 | 否 | 维修完成日期 |
| 维修人ID | maintenancePersonId | 参照/外键 | 是 | 是 | 维修负责人ID |
| 设备台数 | equipmentCount | 整数 | 是 | 否 | 涉及设备台数 |
| 单台维修成本 | unitCost | 数值 | 是 | 否 | 单台设备维修成本(2位小数) |
| 计算状态 | calcStatus | 枚举 | 是 | 否 | 0-未计算/1-已计算 |
| 备注 | remark | 文本 | 否 | 否 | 备注说明 |
| 创建人 | createBy | 文本 | 自动 | 是 | 创建人 |
| 创建时间 | createTime | 日期时间 | 自动 | 是 | 创建时间 |
| 更新人 | updateBy | 文本 | 自动 | 是 | 更新人 |
| 更新时间 | updateTime | 日期时间 | 自动 | 是 | 更新时间 |
| 组织ID | orgId | 参照/外键 | 是 | 是 | 所属组织ID |
页面设计
页面布局
维修费用表页面采用设备维护视角的报表布局,由筛选区、维修明细区和设备统计区构成。
顶部筛选区:
- 会计期间选择器
- 车间多选下拉框
- 维修类型筛选
- 设备编码模糊搜索
- "执行归集"按钮
- 设备维修统计按钮
中间维修明细区:
- 按车间分组展示维修费用明细
- 同一车间内按维修日期排序
- 维修类型用不同颜色标识(日常保养绿色、故障维修橙色、大修红色、技改蓝色)
- 维修费用合计列高亮显示
- 显示维修单号可追溯
设备统计区:
- 各车间维修费用合计
- 设备维修频率排名
- 单台维修成本排名
- 维修类型分布饼图
核心组件
- 报表设计器: 配置多级分组、条件格式和汇总规则
- 智能分析: 基于语义模型自动识别高维修频率设备,预测维护需求
- 设备维修分析: 集成设备管理数据,提供设备健康度分析
- 追溯查询: 支持点击维修单号查看原始维修工单
交互规则
- 页面加载时自动加载当前期间的维修费用数据
- 点击"执行归集"按钮从各数据源汇总维修费用
- 点击"设备维修统计"按钮查看设备维度的维修分析
- 点击维修单号可追溯查看原始维修工单详情
- 高维修频率设备自动高亮预警
前端脚本
// 执行维修费用归集
async function onClickCollect() {
const period = getFilterValue('period');
showLoading('正在归集维修费用...');
try {
const result = await collectMaintenanceCost(period);
renderTable(result.data);
renderEquipmentStats(result.stats);
showToast('维修费用归集完成');
} catch (e) {
showError('归集失败:' + e.message);
} finally {
hideLoading();
}
}
// 查看设备维修统计
async function onEquipmentStats() {
const period = getFilterValue('period');
const workshop = getFilterValue('workshop');
const data = await queryEquipmentStats(period, workshop);
setChartData('frequencyBar', data.frequency);
setChartData('typePie', data.typeDistribution);
showStatsPanel();
}
// 追溯维修工单
async function onTraceMaintenance(row) {
const maintenanceNo = row.getData('MaintenanceNo');
const doc = await queryMaintenanceOrder(maintenanceNo);
showDocumentViewer(doc);
}
// 高亮高维修频率设备
function highlightHighFrequency(data) {
const threshold = getFrequencyThreshold();
data.forEach(row => {
if (row.getData('MaintenanceCount') > threshold) {
row.setBackColor('yellow');
}
});
}计算触发时机:
- 页面加载时自动加载已有归集数据
- 用户点击"执行归集"手动触发
- 支持设备维度实时分析和预警
后端脚本
YonQL 查询
-- 查询维修工单费用
SELECT
Workshop,
EquipmentCode,
MaintenanceNo,
MaintenanceType,
SparePartsCost,
LaborCost,
MaintenanceDate,
MaintenancePerson
FROM MaintenanceOrder
WHERE Period = #{period}
AND Status = '已完成'
-- 查询备件领用费用
SELECT
Workshop,
EquipmentCode,
SUM(Amount) AS SparePartsTotal
FROM SparePartsUse
WHERE Period = #{period}
GROUP BY Workshop, EquipmentCode
-- 查询外协维修费用
SELECT
Workshop,
EquipmentCode,
Amount AS OutsourcingCost
FROM OutsourcingMaintenance
WHERE Period = #{period}报表计算逻辑
async function collectMaintenanceCost(period) {
// 1. 获取维修工单数据
const orders = await queryMaintenanceOrders(period);
// 2. 获取备件领用数据
const spareParts = await querySparePartsUsage(period);
// 3. 获取外协维修数据
const outsourcing = await queryOutsourcingCost(period);
// 4. 汇总计算各维修工单的总费用
for (const order of orders) {
const partsCost = getSparePartsCost(spareParts, order.EquipmentCode);
const outCost = getOutsourcingCost(outsourcing, order.EquipmentCode);
const totalCost = order.SparePartsCost + order.LaborCost + partsCost + outCost;
await saveMaintenanceCost({
Period: period,
Workshop: order.Workshop,
EquipmentCode: order.EquipmentCode,
MaintenanceNo: order.MaintenanceNo,
MaintenanceType: order.MaintenanceType,
SparePartsCost: order.SparePartsCost,
LaborCost: order.LaborCost,
OutsourcingCost: outCost,
SparePartsCost: partsCost,
TotalCost: totalCost,
MaintenanceDate: order.MaintenanceDate,
CalcStatus: '已计算'
});
}
// 5. 统计设备维修频率
await summarizeEquipmentFrequency(period);
}数据汇总
维修费用表按车间和设备汇总维修费用,统计设备维修频率和单台维修成本。汇总数据传递给设备管理模块和车间综合考核模块,用于设备维护计划制定和维修成本控制。
报表配置
报表数据源配置
| 配置项 | 说明 |
|---|---|
| 主数据源 | 维修费用表实体 (RP_MaintenanceCostLine) |
| 关联数据源 | 维修工单、备件领用单、外协维修合同、设备档案 |
| 数据类型 | 费用归集与分析类报表 |
| 语义模型 | 基于"车间-设备-费用类型"三维维修费用语义模型 |
过滤条件
- 会计期间:必选
- 车间:可选,多选
- 维修类型:可选
- 设备编码:可选
分组统计
- 一级分组: 车间
- 二级分组: 设备
- 汇总指标: 各项维修费用合计、维修费用合计、单台维修成本
数据权限
功能权限
| 角色 | 查看 | 归集 | 设备分析 | 导出 |
|---|---|---|---|---|
| 车间主任 | ✅ | ✅ | ✅ | ✅ |
| 设备管理员 | ✅ | ✅ | ✅ | ✅ |
| 财务人员 | ✅ | ❌ | ❌ | ✅ |
| 系统管理员 | ✅ | ✅ | ✅ | ✅ |
数据权限规则
- 车间主任可查看本车间维修费用并执行归集
- 设备管理员可查看全公司设备维修数据
- 财务人员可查看所有维修费用数据但不可执行归集
- 系统管理员拥有全部权限
- 所有归集操作需记录操作日志
更新日志
2026/8/19 10:57
查看所有更新日志
74d2f-chore(dev): 清理不再使用的模块文档并统一字段表格式于b745d-规范开发文档 修改基础资料部分的开发文档于800c8-重新整理目录结构 修改主题为plume 适配主题plume 增加部署功能于4c42c-first Commit于