更新记录
1.0.0(2026-11-06)
首个版本:日历周期与运行小时周期双触发排期,两条线各算一个到期日取先到的一个,并注明触发方式;按「还差多少小时 ÷ 日均运行小时」把小时周期折算成日期;五档状态(已超期/即将到期/本月内/正常/未设周期)计数之和等于设备总数;优先级 = 等级权重 × 2 − 剩余天数,超期排最前但不会把明天到期的 B 级压到十五天后的 A 级下面;未来八周工时负荷,超出每周可用工时的那一周标出超出小时数;八类台账体检(日期非法、日期在未来、读数录反、缺日均小时、日均超 24、缺工时、未设周期、缺编号)逐条列出且单台出错不影响整批;文本台账解析支持逗号/制表符/分号/竖线,表头与注释行自动跳过;明细与周负荷两份 CSV 带 BOM 导出。UTS→Kotlin 编译通过(index.kt 1219 行、classes.dex 53304 字节),139 项回归测试全部通过;真机未执行(测试机锁屏,adb 报 deviceLocked=1),市场截图为 H5 渲染并标注示例数据。
平台兼容性
uni-app
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| × | √ | × | × | √ | × | √ | × | × |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| × | × | × | × | × | × | × | × | × | × | × | × |
设备保养到期计划
车间设备什么时候该保养、哪台已经超期、这周排不排得过来 —— 三个问题用一份清单答完。
按「日历周期」和「运行小时周期」两条线各算一个到期日,取先到的那条;给出剩余天数、超期天数、 按等级折算的优先级,再把未来八周要花的工时摊开看哪一周会挤爆。
纯本地计算,不联网、不上传、不需要任何权限。仅支持 Android。
购买前必读
- 本插件只算排期,不做设备台账、不做保养记录归档、不做备件库存。设备清单与读数由你的业务系统传进来, 插件算完就返回,不落库。
- 两条周期可以只设一条:只按日历就走日历,只按运行小时就走小时;两条都设则取先到的一个。 小时周期要换算成日期,必须提供日均运行小时,否则这一条不参与计算并在体检里提示。
- 日均运行小时是估算值(比如两班 16 小时、三班 22 小时),它只影响「还有几天到期」的换算精度, 不影响「还差多少小时」这个硬指标。
- 单次工时(分钟)用于周负荷。填 0 时该设备不计入工时,只计台数,体检会提示补填。
- 插件不判断「这个周期定得对不对」。周期是你工艺与设备手册给的,插件只负责按它排。
解决什么问题
设备保养最常见的失败不是「忘了做」,而是三件事:
- 两套周期打架:设备手册写「每 500 小时或每季度」,实际执行时只看了日历,跑得满的机台早就该保养了;
- 超期没人认领:月底一看清单,七八台都超了,先做哪台全凭谁嗓门大;
- 计划撞车:这个月排了 20 台,实际只有一个维修工,排了也做不完,最后变成集体补记录。
插件的做法:
- 两条触发各算一个日期,取先到,并把「按日历先到 / 按运行小时先到」写清楚,方便复盘时确认是哪种机制触发的;
- 优先级 = 等级权重 × 2 − 剩余天数。A 级折算 2 天优先,超期永远排最前, 但不会把「明天到期」的 B 级压到「十五天后到期」的 A 级下面 —— 这是车间真实节奏,不是理论排序;
- 八周工时按周汇总,超过每周可用工时的那一周标红并给出超出小时数,让「排不下」在排之前就暴露。
与同类的边界
| 场景 | 本插件 | 常见替代 |
|---|---|---|
| 日历 + 运行小时双触发 | 是,取先到并注明触发方式 | Excel 表通常只做日历 |
| 超期与优先级排序 | 是,等级折算天数 | 靠人工看颜色 |
| 八周工时负荷与超载周 | 是 | 纸质排班表 |
| 台账数据体检 | 是(日期、读数、缺字段) | 无 |
| 设备台账 / 保养记录归档 | 否 | 需要时用 CMMS 或自建表 |
| 备件库存与采购 | 否 | — |
| OEE 与停机损失归因 | 否,见 szhzy-oee-loss |
— |
如果要做「这台机今天损失在哪」,用 szhzy-oee-loss;本插件管的是「它什么时候该停下来保养」。
两者数据可以互相参考,但算法与用途不重叠。
快速上手
1. 准备设备清单
const devices = [
{
code: 'ZS-01', // 设备编号
name: '注塑机 180T', // 名称
grade: 'A', // A / B / C,缺省按 B
lastDate: '2026-10-02', // 上次保养日期
lastHours: 8420, // 上次保养时的累计运行小时
cycleDays: 30, // 日历周期(天),0 表示不按日历
cycleHours: 500, // 运行小时周期(小时),0 表示不按小时
currentHours: 8850, // 当前累计运行小时
dailyHours: 18, // 日均运行小时
estMinutes: 180 // 单次保养工时(分钟)
}
]
2. 算一次
import { pmPlan } from '@/uni_modules/szhzy-pm-plan'
const out = pmPlan({
devices,
baseDate: '2026-11-06', // 不传则取设备当天日期
leadDays: 7, // 提前提醒窗口,默认 7 天
capacityMinutes: 480 // 每周可用保养工时,默认 2400(40 小时)
})
if (out.ok) {
console.log(out.overdueCount) // 已超期台数
console.log(out.hint) // 一句话结论
console.log(out.devices[0]) // 排在最前的那台,含 nextDate / remainDays / trigger / action
console.log(out.weeks) // 八周负荷,含 count / hours / over
console.log(out.issues) // 台账体检结果
}
3. 从文本台账导入
import { pmParseText } from '@/uni_modules/szhzy-pm-plan'
const parsed = pmParseText(`
编号,名称,上次日期,上次小时,日周期,时周期,当前小时,日均小时,单次工时,等级
ZS-01,注塑机 180T,2026-10-02,8420,30,500,8850,18,180,A
KY-01,螺杆空压机,2026-09-18,12400,0,2000,14380,20,120,A
`)
分隔符认逗号、制表符、分号、竖线;表头行与 # 开头的注释行会自动跳过;
一条设备至少要有编号、名称、上次保养日期三个字段,后面对应的周期与读数缺省按 0 处理。
4. 导出
import { pmExport } from '@/uni_modules/szhzy-pm-plan'
const out = pmExport({ devices, baseDate: '2026-11-06', fileName: '设备保养计划' })
// out.detailPath → 设备保养计划-明细.csv(16 列)
// out.weekPath → 设备保养计划-周负荷.csv(8 周)
默认写到应用外部私有目录,不需要存储权限;CSV 带 UTF-8 BOM,Excel 双击不乱码。
返回字段
| 字段 | 含义 |
|---|---|
overdueCount / urgentCount / watchCount / normalCount / noPlanCount |
五档台数,之和等于设备总数 |
weekCount / weekMinutes |
第一周(今天起 7 天)的台数与工时 |
overloadWeeks |
八周里超出可用工时的周数 |
devices[].nextDate |
下次保养日(两条触发里先到的那个) |
devices[].trigger |
按日历 / 按运行小时 / 按日历先到 / 按运行小时先到 |
devices[].remainDays |
距下次保养的天数,负数即超期 |
devices[].status |
overdue / urgent / watch / normal / noplan |
devices[].action |
一句话动作建议,可直接显示在待办里 |
issues[].level |
error 必须修(影响计算)/ warn 建议修(影响精度) |
错误码
| code | 场景 |
|---|---|
BAD_BASE_DATE |
基准日期不是合法的 YYYY-MM-DD |
NO_DEVICE |
设备清单为空 |
NO_OUTPUT_DIR |
拿不到可写目录(导出时) |
单台设备的数据问题不会让整批失败:坏日期、读数录反、缺日均小时都会被记进 issues 并跳过该设备的排期,
其余设备照常算完。这一点是刻意的 —— 车间台账永远有几行是错的,不能因为一行错就整张表用不了。
验证状态
- UTS → Kotlin 编译通过:
Project demo-pm-plan compiled successfully,产物index.kt1219 行、classes.dex53304 字节; - 纯逻辑回归测试 139 项全部通过:日期往返(1600 组)、双触发取先到、五档状态边界、 周负荷分桶与超载、八类数据体检、文本解析与 CSV 结构;
- 真机未验证:本轮测试机(HUAWEI CET-AL60 / Android 12)处于锁屏状态(
deviceLocked=1), 无法安装并操作界面,因此页面交互与真机文件读写均未实测; - 市场截图为 H5 构建产物在浏览器中的真实渲染,页面标注「示例数据」;
- iOS / 鸿蒙 / 小程序 / Web 均未实现,平台声明一律为不支持。

收藏人数:
购买源码授权版(
试用
赞赏(0)
下载 13
赞赏 0
下载 12746309
赞赏 1959
赞赏
京公网安备:11010802035340号