更新记录
1.0.0(2026-11-12)
首个版本:当前余盘先用,不足下一整板才在板间接料;输出逐料号净需求、每板供料、理论需求与理论盘数、全部接料板号、计划盘数、已有盘数、缺盘、计划末盘实际可用余量和当前供给缺口。YIELD与ALLOWANCE分别计算,作业准备损耗优先扣当前盘并只结转一次,装盘损耗逐只新盘扣减。Node 22实跑236项断言全部通过,通用preflight的10个发布文件全部通过。HBuilderX launch --compile true真编译通过,index.kt 595行并含planOf/reelCsv/YIELD/ALLOWANCE;Android真机未执行(ADB无设备);H5真实渲染截图4张已生成并逐图检查。
平台兼容性
uni-app
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| × | √ | × | × | √ | × | √ | × | × |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| × | × | × | × | × | × | × | × | × | × | × | × |
SMT余盘与接料计划
给 SMT 操作员、物料员与生产计划人员 的离线计算插件:按多料号当前余盘、整盘毛容量、每板用量与明确损耗,提前定位所有板间接料节点,算清计划盘数、缺盘和末盘实际可用余量。
计算链路是「当前余盘先用 → 不足下一整板才接料 → 新整盘逐盘扣损耗 → 缺盘单独列出」。理论总量与整板计划分开,不用总需求简单除毛盘量代替节点推演。
能算什么
- 多料号完整计划:一次输入整批板数和多个料号,重复料号直接拒绝。
- 两种损耗口径:YIELD 按抛料数/总取料数计算;ALLOWANCE 按净用量上的管理宽放计算。
- 理论需求与理论盘数:批量需求只在总量处向上取整一次,不逐板重复向上取整。
- 全部接料板号:当前余盘先用,不足下一整板才在板间接料;首块前需要新盘也会列出,最后一块后不多接。
- 固定损耗边界:
jobSetupLoss每料号每批只一次;reelLoadLoss每只新整盘各一次;当前余盘不重复扣装盘损耗。 - 盘数与缺口:分别给计划盘数、计划新整盘、已有盘数、缺盘、当前供给可完成板数与缺口。缺盘不会截断完整计划。
- 末盘实际余量:按实际供给减实际损耗和计划供料逐段计算;库存不足时该字段按补足后的计划口径返回。
- 审计 CSV:导出汇总、逐料号和逐节点的单 BOM CSV,UTF-8 单 BOM,默认写 Android 应用外部私有目录。
计算口径
设每板净用量为 q=perBoard,损耗比例为 p=lossPct:
YIELD: 每板供料 = q ÷ (1 − p),0 ≤ p < 1
ALLOWANCE: 每板供料 = q × (1 + p),0 ≤ p ≤ 1
理论需求 = ceil(boards × 每板供料 + jobSetupLoss)
新整盘实际可用 = fullReelQty − reelLoadLoss
currentRemaining 是当前盘已经扣完既往损耗后的可用余量。准备损耗优先从当前盘扣;当前盘不足时,只有第一只新整盘承担结转部分,后续新盘不重复承担准备损耗。
计划按完整板逐盘推演:当前盘或本只新盘足以完成下一块就继续,不足才在下一块板号前接料。plannedReels 含参与本批的当前盘,plannedNewReels 只含新整盘,shortageReels=max(0, plannedNewReels−spareReels)。
理论盘数按理论总量、当前可用余量与新盘实际可用量估算;计划盘数按完整板节点推演,两者保留独立字段。
快速接入
import { reelPlan, reelExport, reelVersion } from '@/uni_modules/szhzy-reel-plan'
const input = {
boards: 240,
items: [{
materialCode: 'R-0402-10K',
perBoard: 8,
lossMode: 'YIELD',
lossPct: 0.02,
jobSetupLoss: 12,
reelLoadLoss: 6,
currentRemaining: 96,
fullReelQty: 500,
spareReels: 1
}]
}
const result = reelPlan(input)
// result.items[0].firstChangeBoard = 11
// result.items[0].nodes = 第 11 / 71 / 131 / 191 板前
// result.items[0].plannedReels = 5,plannedNewReels = 4
// result.items[0].shortageReels = 3
// result.items[0].plannedLastReelRemaining = 85.836735
const exported = reelExport(input)
const version = reelVersion()
Android 真机需使用包含本插件的自定义基座,标准基座不含三方 UTS 插件。
API
| 函数 | 返回 |
|---|---|
reelPlan(options) |
多料号余盘、全部接料节点、盘数、缺盘与末盘余量 |
reelExport(options) |
计算并导出「SMT余盘与接料计划.csv」,返回路径与字节数 |
reelVersion() |
版本字符串,当前为 1.0.0 |
计算与导出统一返回 { ok, code, message, ... },失败时 ok=false,不向业务层抛计算异常。reelVersion() 只返回版本字符串。
输入字段
| 字段 | 单位与约束 | 缺省 |
|---|---|---|
boards |
板,整数 [1,100000] | 必填 |
items |
料号数组,1 到 100 项,料号不可重复 | 必填 |
materialCode |
1 到 64 个字符,首尾空白会去除 | 必填 |
perBoard |
颗/板,整数 [1,1000000] | 必填 |
lossMode |
只能为 YIELD 或 ALLOWANCE |
必填 |
lossPct |
小数比例;YIELD 为 [0,1),ALLOWANCE 为 [0,1] | 必填 |
jobSetupLoss |
颗/料号/批,整数 [0,1000000000] | 0 |
reelLoadLoss |
颗/新整盘,整数,且小于整盘毛容量 | 0 |
currentRemaining |
当前盘可用颗数,整数 [0,1000000000];0 表示未上余盘 | 0 |
fullReelQty |
新整盘毛容量,整数 [1,1000000000] | 必填 |
spareReels |
已有新整盘库存,整数 [0,1000000] | 0 |
dir |
仅 reelExport 使用的输出目录 |
应用外部私有目录 |
关键计算拒绝 NaN、Infinity、非法小数和超上限输入。ALLOWANCE 的 1 表示 100% 管理宽放,不是 1%。
主要输出字段
| 分组 | 字段 |
|---|---|
| 需求 | netDemand、boardSupply、theoreticalDemand、theoreticalReels |
| 当前盘 | currentRemaining、currentFullBoards |
| 节点 | firstChangeBoard、nodes[{changeIndex,boardNumber}] |
| 盘数 | plannedReels、plannedNewReels、reelChanges、availableReels、shortageReels |
| 余量与缺口 | plannedLastReelRemaining、currentSupplyBoards、currentSupplyGapBoards |
| 汇总 | summary.earliestMaterialCode、summary.earliestChangeBoard、summary.totalShortageReels、summary.hint |
无接料时 firstChangeBoard=0、nodes=[]。currentFullBoards 是当前盘自身的完整板能力,可能大于本批板数;currentSupplyBoards 则不超过本批板数,并且只使用当前盘与已有新整盘。
工程与隐私
core.uts是纯逻辑层:无平台 import、无异常语句、无正则、无可选链,不读时钟、文件或网络。- Android 公开层只负责 UTSJSONObject 转换;文件层只负责 CSV 落盘。
- 无三方依赖,不申请系统权限,不采集、上传或记录业务数据。
- 演示工程 Android 走真实插件;H5 仅展示由同一核心层实际计算的内存结果,并标注「示例数据」,不代表插件支持 Web。
验证状态
- Node 22 核心回归:236 项通过,0 项失败;覆盖两种损耗、批量一次取整、准备损耗结转、逐新盘装盘损耗、完整节点、缺盘、末盘余量、非法输入与 CSV。
- 通用发布前校验:10 个发布文件全部通过,包括清单、价格、UTF-8 无 BOM、LF、零依赖、权限与敏感信息检查。
- H5 预览:构建成功,4 张真实浏览器页面截图已生成并逐张检查;不代表插件支持 Web。
- UTS→Kotlin 真编译:已执行;目标项目先导入,再由
cli launch app-android --compile true编译成功,index.kt595 行,含planOf、reelCsv、YIELD、ALLOWANCE。 - Android 真机与设备端 CSV:未执行(ADB 无在线设备),不声称设备端通过。
- 插件市场发布:本版本在门禁通过后提交,最终状态以公开页与交付发布清单为准。
购买前必读
仅支持 Android,最低 Android 6.0(minSdkVersion 23)。iOS、鸿蒙、小程序和 Web 均未实现。计算结果是生产计划估算,实际以现场盘点与工艺规范为准。请在自己的项目中完成验收后再用于生产。

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