61 lines
2.2 KiB
JSON
61 lines
2.2 KiB
JSON
{
|
||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||
"$id": "aps://shared/scheduling_problem",
|
||
"title": "SchedulingProblem",
|
||
"description": "中性排产问题 DTO:外部算法 skill 入参,不含内部 flex*/world 表结构。",
|
||
"type": "object",
|
||
"required": ["problemId", "startTime", "orders", "routings", "resources"],
|
||
"properties": {
|
||
"schemaVersion": { "type": "string", "default": "1.1", "description": "契约版本(M-D 契约版本化)" },
|
||
"problemId": { "type": "string" },
|
||
"track": { "type": "string", "enum": ["flex", "fixed"], "default": "flex" },
|
||
"startTime": { "type": "string", "description": "排产起点 YYYY-MM-DD HH:MM" },
|
||
"horizonHours": { "type": "number", "default": 168 },
|
||
"orders": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "object",
|
||
"required": ["orderId", "productCode"],
|
||
"properties": {
|
||
"orderId": { "type": "string" },
|
||
"productCode": { "type": "string" },
|
||
"quantity": { "type": "number", "default": 1 },
|
||
"dueDate": { "type": ["string", "null"] },
|
||
"priority": { "type": "integer", "default": 5 }
|
||
}
|
||
}
|
||
},
|
||
"routings": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "object",
|
||
"required": ["productCode", "seq", "operationCode"],
|
||
"properties": {
|
||
"productCode": { "type": "string" },
|
||
"seq": { "type": "integer" },
|
||
"operationCode": { "type": "string" },
|
||
"operationName": { "type": "string" },
|
||
"stdTimePerUnit": { "type": "number", "default": 1 },
|
||
"requireMold": { "type": "boolean", "default": false }
|
||
}
|
||
}
|
||
},
|
||
"resources": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "object",
|
||
"required": ["code"],
|
||
"properties": {
|
||
"code": { "type": "string" },
|
||
"name": { "type": "string" },
|
||
"capabilities": { "type": "array", "items": { "type": "string" } },
|
||
"zone": { "type": ["string", "null"] }
|
||
}
|
||
}
|
||
},
|
||
"objectives": { "type": "object", "additionalProperties": { "type": "number" } },
|
||
"constraints": { "type": "object", "additionalProperties": { "type": "boolean" } },
|
||
"meta": { "type": "object" }
|
||
}
|
||
}
|