更新记录
1.0.0(2026-11-03)
首个版本:交期倒排与正排。按工作日历(周末 / 节假日 / 调休 / 五天制六天制)逐道工序推最晚开工与完工;良率从后往前放大投产数,正排倒排共用同一份入量;每日产能 = 工时 × 效率 × 并行工位数;汇总给出最早开工、需用工期、合计工时、交期余量、瓶颈工序与工时占比;体检覆盖来不及、余量不足、交期非工作日、良率偏低、工时缺失;导出工序计划 CSV(带 BOM)。日期用 Howard Hinnant 日序号算法,时区无关。UTS→Kotlin 编译通过(index.kt 与 classes.dex 已生成),126 项回归测试全部通过;真机未执行(adb devices 为空),市场截图为 H5 渲染并标注示例数据。
平台兼容性
uni-app
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| × | √ | × | × | √ | × | √ | × | × |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| × | × | × | × | × | × | × | × | × | × | × | × |
工序交期倒排与瓶颈识别
给做生产计划、车间排产、业务跟单的人用:给一张工艺路线和一个交期,算出每道工序最晚哪天必须开工。
一张路线进去,四样东西出来:工序倒排表(每道工序的投产数、工时、占用天数、最晚开工与完工日)、瓶颈工序、交期余量(还剩几个工作日,或已经晚了几天)、工序计划 CSV。
购买前必读
- 只支持 Android(
minSdkVersion 23,Android 6.0 起)。iOS 与鸿蒙本版本未实现,市场平台声明里已标不支持。 - 按「天」排,不按「小时」排。同一道工序一天干不完就占多天,但不会给你排出「上午十点开工」这种精度。要做班次内的分钟级排产,这是另一类系统。
- 不做有限产能平衡。本插件算的是「这道工序需要几天」,不检查同一台设备上两张订单抢不抢产能。多单抢产能要自己做资源分配。
- 工序默认串行:上一道在前一个工作日完工,下一道第二天开工。要交叉作业(同日衔接)把
gapDays设成 0。 - 日历按企业自己的排:
workWeekdays默认周一至周六,节假日与调休要显式传。日历配错,算出来的开工日就是错的——这是最常见的使用事故。
解决什么问题
计划员每天要答三个问题,手工算都会错:
- 「这张单最晚什么时候必须开工?」 从交期往前一道一道减,碰上周日、碰上国庆就得多退一天,手算容易漏;
- 「良率 98%,到底要投多少?」 要交 1000 支,末道 99%、前道 98%,投产数不是 1000 而是 1032——差 32 支的工时就是半天;
- 「按今天算还来得及吗?」 最晚开工日已经过去了才被发现,是最常见的交期事故。
与同类的边界
| 你可能已有的 | 它做什么 | 本插件做什么 |
|---|---|---|
多级 BOM 展开(本店 szhzy-bom-explode) |
一台成品要备多少料 | 一道工序要几天、哪天开工 |
报价核算(本店 szhzy-quote-cost) |
单件成本与报价(工时也折成钱) | 工时折成日期,不折成钱 |
装箱分箱(本店 szhzy-carton-pack) |
出货要打多少箱 | 生产什么时候能做完 |
| ERP 的 MRP / APS | 全厂产能平衡、多单抢设备 | 单张订单的工序倒推,离线、可嵌入自己的 App |
APS 类产品公开报价从一次性 2.5 万美元起(EDGEBIC)到 5 万美元以上/月(大型平台),实施周期以月计;本插件只做「一张单一套工艺」这一段,装进你自己的 App 里,不需要实施。
快速上手
import { schedulePlan, exportSchedule } from '@/uni_modules/szhzy-process-schedule'
const r = schedulePlan({
csv: `序号,工序,工作中心,单件工时,准备工时,良率,并行
10,贴片,SMT-1,0.5,30,98,2
20,组装,装配线,1.2,20,99,4
30,老化,老化房,0.3,0,100,1
40,包装,包装线,0.4,10,100,2`,
qty: 1000,
dueDate: '2026-11-20',
today: '2026-11-16',
hoursPerDay: 8,
efficiency: 0.9,
workWeekdays: '1,2,3,4,5,6',
gapDays: 1,
bufferDays: 2,
direction: 'backward'
})
r.summary.startDate // '2026-11-17'
r.summary.totalDays // 4
r.summary.bottleneck // '组装'
r.summary.slackDays // 0
r.plans[0].startDate // 首道工序最晚开工日
r.warnings // TIGHT / LATE / DUE_OFFDAY / LOW_YIELD…
r.csv // 工序计划 CSV
正排(回客户用):
const f = schedulePlan({ csv, qty: 1000, startDate: '2026-11-17', dueDate: '2026-11-20', direction: 'forward' })
f.summary.finishDate // 预计完工
f.summary.late // true 表示赶不上交期
导出:
exportSchedule({ csv, qty: 1000, dueDate: '2026-11-20', fileName: 'SO-2026-1108-工序计划.csv' })
工艺路线列
| 列 | 说明 |
|---|---|
| 序号 | 工序顺序,按 CSV 行序排;填了也不排序 |
| 工序 | 工序名称 |
| 工作中心 | 设备 / 产线 / 车间,仅用于展示与对账 |
| 单件工时 | 每件加工分钟数 |
| 准备工时 | 每批一次的换线 / 调机分钟数 |
| 良率 | 98 / 98% / 0.98 都按 98% 处理;缺省 100% |
| 并行 | 并行工位或设备台数,缺省 1;小于 1 按 1 处理 |
列名别名:工序名 = 工序名称 = 名称,工时 = 单件工时,换线工时 = 准备工时,工位数 = 台数 = 并行数。分隔符逗号与制表符都认。
排程口径
每日产能 = hoursPerDay × 60 × efficiency × 并行。
工序占用天数 = ceil((准备工时 + 单件工时 × 投产数) / 每日产能),最少 1 天。
投产数从成品数量反推:末道投产 = 订单数量,每往前一道除以该道良率并向上取整。要交 1000 支、组装良率 99% → 组装投 1011 支;贴片良率 98% → 贴片投 1032 支。
倒排:末道最晚完工 = 交期(交期是休息日则前移到最近工作日),逐道往前推,上一道最晚完工 = 本道最晚开工的前 gapDays 个工作日。
API
| 方法 | 用途 |
|---|---|
schedulePlan(options) |
一次算完:工序表、汇总、提示、纯文本、CSV |
stepList(options) |
只要工序表与汇总(列表页刷新用) |
exportSchedule(options) |
导出工序计划 CSV 到应用私有目录 |
workdayInfo({date,workWeekdays,holidays}) |
某个日期是不是工作日,前后最近的工作日 |
scheduleDefaults() |
默认参数与输出目录 |
全部返回统一信封 { ok, code, message, ... }。ok=false 时看 code:EMPTY 路线为空、NO_STEP 没有工序行、TOO_LARGE 工序超 200 道、BAD_DATE 交期无法识别、BAD_QTY 数量为 0、READ_FAILED 读文件失败。
提示(warnings)
| kind | 含义 | 处理建议 |
|---|---|---|
LATE |
最晚开工日已经早于今天 | 加班、加人、或与客户改期 |
TIGHT |
交期前余量低于 bufferDays |
提前投料,或缩短准备工时 |
DUE_OFFDAY |
交期落在休息日,倒排已前移 | 确认客户认可新交期 |
LOW_YIELD |
良率低于 80%,前道要多投很多 | 核实际良率,别用标准值 |
ZERO_HOURS |
单件与准备工时都为 0 | 补工时,否则按 1 天占位 |
BAD_NUM |
工序行无法识别 | 该行已跳过 |
能力边界与已知限制
- 工序数上限 200 道,路线文件上限 12 MB;
- 只按天排,不支持一天内多班次细排;
- 不做产能冲突检测(同设备多单抢产能请自行分配);
- 不读 ERP/BOM,物料齐套要先用
szhzy-bom-explode算; - 良率按「每道独立损失」处理,不建模返工回流。
验证状态
- 纯逻辑回归测试:126 项全部通过(
dev-tools-uts/verify/process-schedule/run-tests.mjs),覆盖公历日序号往返、星期推算(以 2024-01-01 周一、2026-11-20 周五为独立锚点核对)、日期文本解析、工作日历(周末 / 节假日 / 调休 / 五天制与六天制)、倒排与正排、良率放大、余量与超期、瓶颈识别、CSV 输出; - Kotlin 编译:
cli launch app-android --compile true输出「编译成功」,产物index.kt与classes.dex已生成(过了 Kotlin 类型检查,不是只做转写); - 真机:未执行。开发机
adb devices为空,平台层文件读写未在真机上跑过。市场截图来自 H5 渲染,页面标注「示例数据」,不是真机截图。 - iOS / 鸿蒙:未实现。
授权
普通授权与源码授权两档,源码版含 utssdk/ 全部实现与演示工程。商用请遵守 license.md。

收藏人数:
购买源码授权版(
试用
使用 HBuilderX 导入示例项目
赞赏(0)
下载 13
赞赏 0
下载 12737139
赞赏 1959
赞赏
京公网安备:11010802035340号