# 柔性排产 · 数据采集模板 > **用途**:填这张模板即可让「能力池 + 虚拟产线」排产跑起来。 > **口径**:字段能对上即可(Excel/CSV 皆可),编码自定但**全表一致**。 > **当前**:仓库已按本模板合成一版高压线束/PDU 演示数据(`server/state/seed.py` 的 `flex*` 键);你用真实数据替换同名字段即可切换。 > **权威来源(2026-09-14 起)**:导入物理表与列名以工作簿配置 `server/importers/profiles/workbooks/default-planning.json` 为准,本文的角色说明仅作业务解释。可直接下载与配置逐字一致的采集模板:`GET /api/import/template`(主数据页「下载采集模板」),模板第一张表 `数据采集说明` 会列出角色、工作表、字段顺序、必填、类型、允许取值与映射摘要。排产导出模板可直接下载表头骨架:`GET /api/reports/schedule-template`(柔性工作台「排产模板」);工作表/表头/行号合同见 [主数据配置与数据来源约定](masterdata-configuration.md) 的「采集模板与排产导出模板」。 --- ## 0. 填写顺序与最小集 优先级 P0 的 5 张表不填就排不了;P1 决定质量;P2 可先用默认。 | 顺序 | 表 | 优先级 | 不填的后果 | | --- | --- | --- | --- | | 1 | 区域/布局 | P0 | 无法算设备移动耗时 | | 2 | 设备(能力+移动+适配模具) | P0 | 无资源可选,排不了 | | 3 | 工序(含瓶颈标记) | P0 | 无法归池/算瓶颈 | | 4 | 工装/模具 | P0 | 压接类工序无法占用 | | 5 | 产品工艺路线 | P0 | 订单无法展开工序 | | 6 | BOM | P1 | 无齐套/缺料判断 | | 7 | 物料 | P1 | 同上 | | 8 | 班组/人力 | P1 | 无人力约束(先按设备排) | | 9 | 班次日历 | P1 | 用默认双班 | | 10 | 订单 | P1 | 用演示订单 | | 11 | 排产参数 | P2 | 用默认 | --- ## 1. 区域/布局 zones | 字段 | 说明 | 示例 | | --- | --- | --- | | code | 区域编码 | ZONE-A | | name | 名称 | 线束区 | 移动耗时:MVP 先用**每台设备一个 `moveTimeMin`**(见设备表),不必给两两矩阵;若有精确矩阵可另附「fromZone,toZone,minutes」。 --- ## 2. 设备 flexEquipment(核心表) | 字段 | 说明 | 示例 | | --- | --- | --- | | code | 设备编码 | PRESS-001 | | name | 名称 | 气动压接机#1 | | capabilities | **可执行工序编码(多值,逗号)** | OP-CRIMP | | opStdTime | 各工序单件工时(分钟),`工序:分钟` 多值 | OP-CRIMP:1 | | movable | 是否可移动 | 是/否 | | moveTimeMin | 单次移动耗时(分钟) | 30 | | zone | 当前区域编码 | ZONE-A | | adaptableMolds | 可适配模具编码(多值,逗号;无则空) | MOLD-HV-01,MOLD-HV-02 | | availabilityRate | 可动率 0~1 | 0.95 | | status | RUNNING/MAINTENANCE | RUNNING | > 一台设备可挂多道工序(能力集);这是「产能池」的来源——**池 = 拥有某工序能力的设备集合**,无需单独维护池表。 > > 康尼现场可直接用 `设备能力映射模板.xlsx`(设备编号/能力工序/单件工时/可动率/可移动/适配模具)填写,导入时优先读取;缺表回退合成共享装配工位。 --- ## 3. 工序 flexOperations | 字段 | 说明 | 示例 | | --- | --- | --- | | code | 工序编码 | OP-CRIMP | | name | 名称 | 压接端子 | | isBottleneck | 是否瓶颈工序(瓶颈锚排/产能法用) | 是/否 | | changeoverMin | 标准换型时间(分钟) | 20 | --- ## 4. 工装/模具 flexMolds | 字段 | 说明 | 示例 | | --- | --- | --- | | code | 模具编码 | MOLD-HV-01 | | name | 名称 | 高压端子模具 | | operationCode | 适用工序 | OP-CRIMP | | adaptableEquipment | 可装到哪些设备(多值,逗号) | PRESS-001,PRESS-002 | | lifeTotal | 寿命上限(次/件) | 50000 | | lifeUsed | 已用 | 12000 | | zone | 当前区域 | ZONE-A | | changeoverMin | 换该模具耗时(分钟) | 20 | | status | AVAILABLE/LOCKED | AVAILABLE | > 康尼现场可用 `模具适配映射模板.xlsx`(模具编号/适用工序/适配设备/寿命/换型耗时)填写,对应工序自动 `requireMold=true` 并占用模具槽;缺表时不占模具槽。 --- ## 5. 产品工艺路线 flexRoutings 一个产品多行,按 `seq` 排序。 | 字段 | 说明 | 示例 | | --- | --- | --- | | productCode | 产品编码 | HV-HARNESS | | productName | 产品名 | 高压线束总成 | | seq | 工序序号 | 30 | | operationCode | 工序编码 | OP-CRIMP | | requireMold | 该工序是否必须模具(是→从模具表按工序取适配) | 是/否 | | stdTimePerUnit | 单件工时(分钟)(覆盖设备默认,可空) | 1 | --- ## 6. BOM flexBom | 字段 | 说明 | 示例 | | --- | --- | --- | | productCode | 成品编码 | HV-HARNESS | | materialCode | 物料编码 | WIRE-HV | | quantity | 单件用量 | 2 | | consumeOp | 消耗工序编码 | OP-CUT | | isKey | 是否关键料 | 是/否 | --- ## 7. 物料 flexMaterials | 字段 | 说明 | 示例 | | --- | --- | --- | | code / name / unit | 编码/名称/单位 | WIRE-HV / 高压线 / 米 | | type | FINISHED_PRODUCT / RAW_MATERIAL | RAW_MATERIAL | | stock / inTransit / safetyStock | 库存/在途/安全库存 | 5000 / 0 / 1000 | | procurementLeadTime | 采购前置期(天) | 7 | --- ## 8. 班组/人力 flexTeams | 字段 | 说明 | 示例 | | --- | --- | --- | | code / name | 班组编码/名称 | T-CRIMP / 压接班组 | | memberCount | 人数 | 6 | | supportOps | 可支持工序(多值) | OP-CRIMP,OP-ASSY | | skillLevel | 技能等级 | L3 | --- ## 9. 班次日历 flexCalendar | 字段 | 说明 | 示例 | | --- | --- | --- | | shiftCode | 班次 | D | | startTime / endTime | 起止 | 08:00 / 17:00 | | breaks | 休息段 `start-end` 多值 | 12:00-13:00 | | workdays | 工作日(1-7 或“除周末”) | 1,2,3,4,5 | --- ## 10. 订单 flexOrders | 字段 | 说明 | 示例 | | --- | --- | --- | | orderNo | 订单号 | WO-20260716-010 | | productCode | 产品编码 | HV-HARNESS | | quantity | 数量 | 100 | | dueDate | 交期 YYYY-MM-DD | +7 天 | | priority | 优先级(小=高) | 1 | | wbs | WBS 分组(同组协同,可空) | WBS-A | | productionController | 生产控制者(同组隔离,可空) | 张三 | | status | CREATED/RELEASED | RELEASED | --- ## 11. 排产参数 flexParams(可用默认) | 参数 | 默认 | 说明 | | --- | --- | --- | | sortMode | BOTTLENECK | ASC 正排 / DESC 倒排 / BOTTLENECK 瓶颈锚 | | beforeDays / afterDays | 0 / 30 | 时间窗扩展 | | rollingWindows | 周=7d / 中期=2d / 短期=2h | 滚动时域分层 | | mrpControllerDays | 3 | 同 WBS 末端约束天数 | | weights | 交期0.4/成本0.3/利用0.2/均衡0.1 | 目标权重 | --- ## 附:合成演示数据映射(当前仓库) 已按本模板在 `seed_world()` 追加 `flex*` 键:区域(线束区/PDU区/公共)、可移动压接机×4、下线机/激光焊接/测试台/检漏仪等、高压端子模具族、产品 `HV-HARNESS`/`PDU-UNIT` 及其路线与订单。真实数据到位后**逐表替换**即可,引擎与视图不用改。 --- ## 附:现场「完整生产路线」导入(康尼样例) > **目的**:用现场真实订单表替换演示 `flex*`,跑通 PoolEngine。 > **不要**把厂名写进默认种子或意图正则的产品绑定;用显式导入动作。 | 项 | 说明 | | --- | --- | | 入口脚本 | `python scripts/load_kangni.py`(可加 `--route` / `--data-dir` / `--no-siblings`) | | 领域模块 | `server/aps_domain/kangni_intake.py` | | API | `POST /api/flex/site/load`(默认 P2 确认卡;`applyNow=true` 联调直写) | | 口令 | 「加载现场订单路线」「导入完整生产路线」「替换柔性演示」 | | 主文件 | `订单XXXX_完整生产路线.xlsx`(订单头 + 10 道工序 + BOM) | | 同源补强 | `康尼/数据/` 下订单 / 工艺路线 / BOM(自动识别;设备台账无能力字段暂不直连) | **已知现场缺口(源表自述「不可做有限产能排产」)→ 导入时显式推断并写入 `flexParams.siteInferences`:** | 缺口 | 推断策略 | | --- | --- | | 标准工时=待维护 | 优先读 `工时.xlsx` 对应订单 sheet 的 `标准工时/分钟` 真实值回填;无值时才按部装 45 分/件、装配 30 分/件推断 | | 设备/工位=待维护 | 有 `设备能力映射模板.xlsx` 时按真实设备/能力/工时排产;缺表才合成 N 台共享装配工位(默认 4),能力=全部工序 | | 模具未匹配 | 有 `模具适配映射模板.xlsx` 时按模具寿命/适配设备占用模具槽;缺表才 `requireMold=false` | | 备料已完成 | 原料库存按需求放大,避免齐套假冲突 | 有真实工时/工位表后,改 Excel 再跑导入即可覆盖推断;`工时.xlsx` 已自动识别并优先回填,来源写入 `stdTimeSource=工时表`。 变更登记见 [`../CHANGELOG.md`](../CHANGELOG.md)。