Deterministic multi-level material requirements planning with auditable pegging
git clone https://github.com/sun-zhao12/moon-mrp
Set-Location moon-mrp
moon check --deny-warn --target all
moon build --target all
moon test --deny-warn --target all
moon run examples/demo --target wasm --deny-warn
moon run examples/replenishment --target wasm --deny-warn
moon fmt --check
moon infolet request : @mrp.Request = {
horizon: 4,
items: [{ sku: "PART", on_hand: 2L, safety_stock: 0L, lead_time: 1, lot: LotForLot }],
bom: [],
demands: [{ id: "repair", item: "PART", bucket: 3, quantity: 8L }],
receipts: [],
}
let result = @mrp.plan(request).unwrap()
// quantity=6, receipt_bucket=3, release_bucket=2
println(result.to_json().stringify())moon login # 用 sun-zhao12 登录 Mooncakes
moon whoami # 应输出 sun-zhao12
moon publish --dry-run # 本地打包 + 对压缩包再跑一遍 check
moon publishpub(all) enum PlanningError {
InvalidHorizon
SizeLimit
InvalidItem(String)
DuplicateItem(String)
UnknownItem(String)
InvalidComponent(String, String)
DuplicateComponent(String, String)
InvalidMovement(String)
DuplicateMovement(String)
Cycle(Array[String])
QuantityLimit(String)
BeforeHorizon(String, Int, Int)
} derive(Eq, Debug)Install
Download zipDeterministic multi-level material requirements planning with auditable pegging