明道云外挂排产平台,为明道云 HAP 提供智能生产排程能力。
作为明道云 HAP 的外挂插件,解决离散制造行业的生产排程问题:
从明道云读取 MPS(主生产计划)、工序配置、资源日历等基础数据
内置 9 种排程策略(含 GA 遗传算法)生成排产方案
支持离散事件仿真验证方案鲁棒性
排产结果写回明道云,指导日常生产
提供数据看板:项目交付、进度甘特图、产线日清、产能利用率
后续规划(V2.0+): 明道云仅作为数据底座,需求录入、报工等功能逐步迁移到本平台。
flowchart TB
subgraph 前端["🌐 前端界面"]
UI[主页面<br/>排程 / 参数 / 结果]
DASHBOARD[看板页面<br/>交付 / 甘特图 / 日清 / 产能]
SETTINGS[设置页面<br/>HAP 凭证配置]
end
subgraph 服务端["⚙️ Express 服务端"]
ROUTES[API 路由层]
ENGINE[排程引擎核心]
DB[(SQLite<br/>本地数据库)]
end
subgraph 引擎["🧠 排程引擎"]
S9[9 种策略<br/>正向 / 逆向 / 瓶颈 /<br/>优先级 / 最小换线 /<br/>产能均衡 / 交付优先 /<br/>综合 / GA 遗传算法]
CORE[schedulCore<br/>排产核心]
SIM[discrete-sim<br/>离散事件仿真]
COMP[comparer<br/>策略对比评分]
GA[geneticStrategy<br/>GA 遗传优化]
end
subgraph 明道云["☁️ 明道云 HAP"]
MPS[(MPS 主计划)]
CAL[(资源日历)]
PROC[(工序 / BOM)]
REPORT[(报工数据)]
RESULT[(排产结果)]
end
UI --> ROUTES
DASHBOARD --> ROUTES
SETTINGS --> ROUTES
ROUTES --> ENGINE
ROUTES --> DB
ENGINE --> S9
S9 --> CORE
CORE --> COMP
CORE --> SIM
S9 --> GA
GA --> CORE
ENGINE -.->|hapClient<br/>读取基础数据| MPS
ENGINE -.->|hapClient<br/>读取基础数据| CAL
ENGINE -.->|hapClient<br/>读取基础数据| PROC
ENGINE -.->|hapClient<br/>读取报工完成量| REPORT
RESULT -.->|hapClient<br/>排产结果写回| ENGINE
DB --> ENGINE
Loading
流程说明:
用户在前端 选择排程策略和参数,发起排程请求
服务端 通过 hapClient 从明道云 HAP 读取 MPS、资源日历、工序配置等数据
排程引擎 按选中策略执行排产(支持串行工序,工序间隔 1 天)
可选执行离散事件仿真 验证方案鲁棒性,或 GA 遗传算法 搜索最优排序
策略对比 模块对所有结果评分排序,推荐最优方案
用户确认方案后,排产结果写回明道云 HAP 的排产明细表
所有任务记录和同步状态持久化到本地 SQLite 数据库
模块
状态
排程引擎(9 策略)
✅ 完成
离散事件仿真
✅ 完成
GA 遗传算法
✅ 完成
策略对比排序
✅ 完成
明道云数据同步
✅ 完成
排产结果上传 HAP
✅ 完成
资源日历自动生成
✅ 完成
工单报工(回写 HAP)
✅ 完成
数据看板
✅ 完成
前端界面(中文化)
✅ 完成
侧边栏折叠
✅ 完成
Toast / 焦点 / 响应式
✅ 完成
层
技术
运行时
Node.js 18+
后端框架
Express 4
数据库
SQLite(sql.js,无外部依赖)
排程引擎
自研(src/engine/)
遗传算法
genetic-search
离散仿真
discrete-sim
前端
原生 HTML + CSS + JS
图表
Chart.js 4
数据源
明道云 HAP API V2
aps-engine/
├── src/
│ ├── app.js # 服务入口
│ ├── engine/ # 排程引擎
│ │ ├── scheduler.js # 9 种排程策略 + 排产核心
│ │ ├── simulator.js # 离散事件仿真
│ │ ├── geneticStrategy.js # GA 遗传算法
│ │ ├── comparer.js # 策略对比排序
│ │ ├── hapClient.js # 明道云 API 客户端
│ │ ├── hapReader.js # 明道云数据读取
│ │ ├── db.js # SQLite 本地数据库
│ │ └── sync.js # 数据同步状态跟踪
│ ├── routes/ # API 路由
│ ├── data/ # 数据模型
│ └── utils/ # 工具函数
├── public/ # 前端页面(中文化)
│ ├── index.html # 主页面(排程操作)
│ ├── dashboard.html # 数据看板
│ ├── settings.html # 明道云连接设置
│ ├── style.css # 全局样式
│ ├── app.js # 主页面逻辑
│ ├── dashboard.js # 看板逻辑
│ └── dashboard.css # 看板样式
├── .env # 环境配置
├── hap_config.json # 明道云凭证
└── package.json
# 1. 安装依赖(自动安装 sql.js 等所有包,无需额外安装数据库)
npm install
# 2. 确认 .env 文件存在(项目已自带,修改 HAP 凭证和端口即可)
# .env 中 DB_PATH=./data/aps.db,数据库文件首次启动自动创建
# 3. 启动服务
npm start
# 启动后自动发生:
# - SQLite 数据库初始化(data/aps.db 自动创建)
# - 监听端口(默认 3006)
# - 静态文件服务就绪
# 4. 访问
# http://localhost:3006
# 开发模式(热重载)
npm run dev
明道云 HAP 工作区已配置 高级生产计划 应用
需在明道云「开放平台」获取 AppKey 和 Sign
明道云中需已维护:MPS 计划、产线、工序、BOM、资源日历
依赖
说明
Node.js 18+
唯一必须安装的运行时
SQLite
无需安装。通过 npm 包 sql.js 内嵌,首次启动自动创建 data/aps.db
外部数据库
无需 MySQL / PostgreSQL / SQL Server — 整个项目只有一个 .db 文件
Redis / MQ
无需 — 无中间件依赖
明道云 HAP
可选 (启动不需要,排程功能需要) — 离线可启动,无法读取 MPS 数据
端口:.env 中 PORT(默认 3006)
明道云凭证:.env 中 HAP_APP_KEY / HAP_SIGN / HAP_HOST
支持在页面「设置」中动态修改 HAP 凭证,无需重启
优点
说明
零外部依赖
SQLite 本地数据库,无需额外部署数据库服务
部署简单
单 Node.js 进程,npm start 即可运行
策略丰富
9 种排程策略覆盖常见排产需求
GA 优化
内置遗传算法搜索最优 MPS 排序组合
仿真验证
离散事件仿真可验证方案在产能波动下的鲁棒性
轻量前端
原生 HTML/CSS/JS,不依赖 React/Vue 等框架
中文化界面
全中文界面,降低使用门槛
侧边栏可折叠
支持折叠为仅图标模式,节省屏幕空间
限制
说明
仅支持串行工序
不支持并行工序、汇合工序、分支工序等复杂工艺拓扑。所有工序按顺序串行执行
默认工序流转时间 1 天
工序间默认间隔为 1 天(当天完成 → 次道工序次日开始)。不支持自定义工序间等待/运输时间
产能替代节拍
使用产线每日产能(件/天)进行排程,而非工序节拍时间(分钟/件)
无项目节拍差异化
同一产线同一工序对所有 MPS 项目使用相同的产能配置,不支持按产品类型设置不同的加工节拍
明道云强依赖
现阶段 MPS 录入、报工、基础数据维护仍需在明道云上完成
单机部署
不支持多节点集群部署
无用户认证
当前版本无登录/权限系统
内存数据库
使用 sql.js(SQLite WASM),数据全部加载到内存
支持工序节拍差异化,按产品类型设定独立加工时间
明道云仅作数据底座,需求录入、报工等功能迁移到本平台
支持并行工序与分支工序拓扑
支持自定义工序间流转时间
用户认证与权限管理
数据看板增强(实时推送、导出)
排程单位:天 — 所有排产计划按天粒度生成,最小时间单位为 1 天
工序流转规则: 串行工序必须按顺序执行,前道工序在某天的产出,后道工序最早在第二天才能消耗
日历机制: 支持工作日/休息日配置,排产时自动跳过非工作日
产能机制: 使用每日产能(件/天)而非节拍时间。排程时会检查资源日历的可用产能总量,避免超负荷
策略对比: 自动按完成率、换线次数、交期达成等指标对所有选中策略排序,推荐最优方案
拖拽修改: 排产结果中可直接拖拽修改每日数量,修改后的方案可上传到明道云