Skip to content

批次拆分配置

批次拆分配置用来决定:哪些板件不要继续留在主批次里,而是要被系统单独拆成一个特殊批次去生产

它不是排产页面,也不是手工拆批页面。它更像一组“自动分拣规则”:当系统初始化生产批次时,会按你配置好的条件去筛板件,把命中的板件拆到独立批次。

菜单路径

系统管理批次拆分配置

页面定位

如果说订单下单后,系统需要把一整单板件整理成后续可生产的批次,那么批次拆分配置处理的就是其中一个特殊问题:

  • 哪些板件应继续留在主批次里
  • 哪些板件因为工艺特殊,需要拆成专门批次

它更适合这些场景:

  • 某类特殊工艺板件总要单独安排生产
  • 某类板件不能和普通板件混在一个批次里流转
  • 希望系统自动按规则拆批,而不是每次人工干预
  • 想通过公式,把“哪些板件单独成批”固化成长期规则

不适合替代这些页面:

  • 工厂配置:负责工厂级总开关和业务规则,不负责逐条定义拆批公式
  • 生产计划:负责批次排期,不负责决定板件先被拆成哪些批次
  • 订单详情 / 生产流程页面:负责查看结果,不负责维护拆批规则本身

这张图想帮你看懂:批次拆分配置并不是所有场景都会生效。若系统命中了租户专用拆批脚本,可能会优先走那套专用逻辑。

这页到底在配什么

当前页面本质上维护的是一张拆批规则表。每条规则只有 3 个核心字段:

  1. 名称
    • 这条拆批规则叫什么
  2. 公式
    • 板件满足什么条件,就会被拆进这个批次
  3. 排序
    • 多条规则并存时,谁先执行
  • 后端对象字段:`智工厂后台管理系统/

页面整体结构

当前页面结构比较简单,由三部分组成:

  1. 查询区
    • 按名称、公式、排序筛选
  2. 规则列表
    • 查看现有拆批规则,并执行编辑、删除
  3. 新增/编辑抽屉
    • 维护名称、公式、排序

查询区可以筛什么

当前查询区支持 3 个条件:

  • 名称
  • 公式
  • 排序

这意味着:

  • 想找某条特殊工艺规则,可以按名称筛
  • 想回头定位某段老公式,可以按公式内容搜索
  • 想排查规则执行先后顺序,可以按排序筛

列表里实际显示什么

当前列表列包括:

  • 勾选列
  • 序号
  • 名称
  • 公式
  • 排序
  • 操作列

这里有两个值得注意的点:

  1. 公式列不是简单纯文本展示,前端会用专门的公式展示组件渲染。
  2. 页面支持批量删除导出,不是只能逐条维护。

常用操作

新增拆分规则

点击右上角 新增,会打开新增抽屉。

当前抽屉内可维护字段只有:

  • 名称
  • 公式
  • 排序

前后端当前都要求这 3 个字段必填:

  • 名称不能为空

  • 公式不能为空

  • 排序不能为空

  • 后端校验:`智工厂后台管理系统/

公式字段要怎么理解

这页最关键的不是名称,而是公式

当前前端公式输入组件已经明确提示:

  • 返回值必须是 布尔值 (是/否) 类型

这句话可以直接理解成:

  • 公式最终只能回答“是 / 否”
  • 这块板件要么命中这条规则,要么不命中
  • 不能返回数量、文本、对象之类的结果

而且当前公式模板是围绕板件对象来写的:

这意味着公式判断的核心对象是板件本身,不是整张订单、不是整批生产单。

编辑规则

点击列表行内的 编辑,可以修改已有规则。

编辑时会把当前规则的名称、公式、排序带入抽屉,再提交给后端更新。

删除规则

当前页面支持两种删除方式:

  • 行内删除单条规则

  • 勾选后批量删除多条规则

  • 后端删除接口:`智工厂后台管理系统/

但这里有一个很重要的现实情况:

  • 当前后端还没有补上完整的删除前业务校验

  • 删除校验 待完善:`智工厂后台管理系统/

这意味着目前系统代码里:

  • 没有明确做“已被引用则禁止删除”的限制
  • 也没有“系统内置规则不能删”的保护

从用户操作角度,建议你把删除理解为:

  • 这条规则后续不再参与新批次拆分
  • 但它并不是一个带强保护的“停用”动作

导出规则

如果你想盘点当前工厂到底配了哪些拆批规则,可以直接使用导出功能。

当前导出会按当前筛选条件导出,而不是无条件导出全部。

  • 后端导出接口:`智工厂后台管理系统/

批次到底是怎么被拆出来的

这一页最重要的不是“怎么填表”,而是“系统到底按什么顺序执行这些规则”。

当前后端真实逻辑是:

  1. 先按排序升序加载全部拆分规则
  2. 依次拿每条规则去匹配当前待处理板件
  3. 某块板件一旦命中某条规则,就会从待处理列表里移除
  4. 这块板件不会再继续参与后面的规则匹配
  5. 所有剩余未命中的板件,最后进入主批次
  • 规则加载与循环:`智工厂后台管理系统/
  • 命中后移出待处理列表:`智工厂后台管理系统/
  • 剩余板件进入主批次:`智工厂后台管理系统/

这张图想帮你看懂:一块板件通常只会被第一条命中的规则拆走,不会被多条规则重复拆分。

排序为什么这么重要

很多人会把排序理解成“展示顺序”,但在这页里它更重要的是执行优先级

因为系统是按排序从小到大执行的,所以:

  • 排序越小,越先匹配

  • 排序越靠前,越容易先把板件拆走

  • 如果一块板件同时满足两条规则,它通常会进入排在前面的那一条

  • 规则按优先级加载:`智工厂后台管理系统/

另外,当前后端在新增、编辑、删除后还会自动做一次重新排序

  • 新增后重排:`智工厂后台管理系统/
  • 编辑后重排:`智工厂后台管理系统/
  • 重排算法:`智工厂后台管理系统/

这意味着:

  • 排序不只是显示用数字
  • 它会直接影响实际拆批结果
  • 新增或调整规则后,最好用真实订单验证一次命中顺序

命中后批次名称会怎么生成

如果某条规则命中了板件,系统会新建一个特殊批次,名称规则是:

  • 原文件名 + 【规则名称】

  • `智工厂后台管理系统/

这意味着如果你把规则名称写得太模糊,后续在生产列表里看到的批次名也会不够直观。

所以规则名称最好写成业务上能一眼看懂的名称,比如:

  • 斜边批次
  • 骨骼门批次
  • 圆弧工艺批次

当前系统的几个关键规则

1)没有单独的启用 / 停用开关

当前配置里没有状态字段。

也就是说:

  • 规则一旦保存,就默认参与后续拆批

  • 如果不想让它继续生效,当前更接近的做法是删除它

  • 后端实体无状态字段:`智工厂后台管理系统/

2)当前后端只有基础必填校验,没有完善的业务校验

目前系统已经做了:

  • 名称不能为空
  • 公式不能为空
  • 排序不能为空

但当前服务层还留着明显 待完善:

  • 唯一性校验未补齐

  • 删除前业务校验未补齐

  • 保存前校验 待完善:`智工厂后台管理系统/

  • 删除前校验 待完善:`智工厂后台管理系统/

所以当前更准确的正式口径应该是:

  • 系统支持维护拆批规则
  • 但当前对规则正确性的约束,主要还是依赖配置人自己把关

3)未命中的板件会回到主批次

系统不是“必须每块板都命中某条规则”。

如果板件没有命中任何拆批规则,它会继续留在主批次里。

  • `智工厂后台管理系统/

4)租户专用拆批脚本可能会优先覆盖这套配置

这是当前实现里一个非常关键、也最容易被旧文档忽略的事实。

后端在走通用拆批规则之前,会先尝试执行租户专用拆批脚本;如果脚本返回了拆批结果,就会直接使用那套结果。

  • 先尝试租户脚本:`智工厂后台管理系统/
  • 租户脚本命中后直接返回:`智工厂后台管理系统/
  • 租户脚本入口:`智工厂后台管理系统/

因此如果你发现:

  • 页面里明明配置了规则
  • 但实际拆批结果和页面规则对不上

就要额外考虑:是不是当前租户走了专用拆批逻辑。

推荐配置顺序

如果你第一次给工厂配置这页,建议按这个顺序处理:

这张图想帮你看懂:这页最怕的不是“少配一条”,而是公式写得不稳、优先级排错,导致板件被拆进了错误批次。

使用建议

使用建议

  1. 规则名称尽量写成车间能看懂的业务名称,因为命中后会直接体现在批次名里。
  2. 排序先按“最特殊、最容易误拆”的规则靠前,不要只按想到的先后顺序填写。
  3. 新增规则后一定用真实订单做验证,不要只看保存成功就默认规则正确。
  4. 如果一个板件可能同时满足多条规则,优先检查排序,而不是先怀疑系统没执行。
  5. 发现页面规则与实际拆批结果不一致时,除了检查公式本身,也要排查是否命中了租户专用拆批脚本。
  6. 当前系统对唯一性、引用删除等业务校验还不完整,正式调整前建议先和生产同事确认影响范围。

常见问题

为什么我配了两条规则,但板件只进了其中一个批次?

因为当前系统是按排序依次执行的,一块板件通常只会被第一条命中的规则拆走。命中后,它就不会再继续参与后续规则。

为什么有些板件没有进入任何特殊批次?

说明它没有命中任何拆批公式。当前这类板件会继续留在主批次中。

为什么我找不到“停用规则”按钮?

因为当前页面没有启用 / 停用状态字段。规则保存后就会参与拆批;如果不想继续生效,目前更接近的方式是删除规则。

为什么我明明配了规则,实际拆批结果还是不对?

先依次排查:

  1. 公式是否真的返回布尔结果并能命中目标板件
  2. 排序是否被更高优先级规则抢先命中
  3. 当前租户是否走了专用拆批脚本,导致绕过通用页面配置

相关页面

智掌每一单,稳控每一环