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" }
|
|||
|
|
}
|
|||
|
|
}
|