主题
批次拆分配置
批次拆分配置用来决定:哪些板件不要继续留在主批次里,而是要被系统单独拆成一个特殊批次去生产。
它不是排产页面,也不是手工拆批页面。它更像一组“自动分拣规则”:当系统初始化生产批次时,会按你配置好的条件去筛板件,把命中的板件拆到独立批次。
菜单路径
系统管理 → 批次拆分配置
页面定位
如果说订单下单后,系统需要把一整单板件整理成后续可生产的批次,那么批次拆分配置处理的就是其中一个特殊问题:
- 哪些板件应继续留在主批次里
- 哪些板件因为工艺特殊,需要拆成专门批次
它更适合这些场景:
- 某类特殊工艺板件总要单独安排生产
- 某类板件不能和普通板件混在一个批次里流转
- 希望系统自动按规则拆批,而不是每次人工干预
- 想通过公式,把“哪些板件单独成批”固化成长期规则
它不适合替代这些页面:
- 工厂配置:负责工厂级总开关和业务规则,不负责逐条定义拆批公式
- 生产计划:负责批次排期,不负责决定板件先被拆成哪些批次
- 订单详情 / 生产流程页面:负责查看结果,不负责维护拆批规则本身
这张图想帮你看懂:批次拆分配置并不是所有场景都会生效。若系统命中了租户专用拆批脚本,可能会优先走那套专用逻辑。
这页到底在配什么
当前页面本质上维护的是一张拆批规则表。每条规则只有 3 个核心字段:
- 名称
- 这条拆批规则叫什么
- 公式
- 板件满足什么条件,就会被拆进这个批次
- 排序
- 多条规则并存时,谁先执行
- 后端对象字段:`智工厂后台管理系统/
页面整体结构
当前页面结构比较简单,由三部分组成:
- 查询区
- 按名称、公式、排序筛选
- 规则列表
- 查看现有拆批规则,并执行编辑、删除
- 新增/编辑抽屉
- 维护名称、公式、排序
查询区可以筛什么
当前查询区支持 3 个条件:
- 名称
- 公式
- 排序
这意味着:
- 想找某条特殊工艺规则,可以按名称筛
- 想回头定位某段老公式,可以按公式内容搜索
- 想排查规则执行先后顺序,可以按排序筛
列表里实际显示什么
当前列表列包括:
- 勾选列
- 序号
- 名称
- 公式
- 排序
- 操作列
这里有两个值得注意的点:
- 公式列不是简单纯文本展示,前端会用专门的公式展示组件渲染。
- 页面支持批量删除与导出,不是只能逐条维护。
常用操作
新增拆分规则
点击右上角 新增,会打开新增抽屉。
当前抽屉内可维护字段只有:
- 名称
- 公式
- 排序
前后端当前都要求这 3 个字段必填:
名称不能为空
公式不能为空
排序不能为空
后端校验:`智工厂后台管理系统/
公式字段要怎么理解
这页最关键的不是名称,而是公式。
当前前端公式输入组件已经明确提示:
- 返回值必须是 布尔值 (是/否) 类型
这句话可以直接理解成:
- 公式最终只能回答“是 / 否”
- 这块板件要么命中这条规则,要么不命中
- 不能返回数量、文本、对象之类的结果
而且当前公式模板是围绕板件对象来写的:
这意味着公式判断的核心对象是板件本身,不是整张订单、不是整批生产单。
编辑规则
点击列表行内的 编辑,可以修改已有规则。
编辑时会把当前规则的名称、公式、排序带入抽屉,再提交给后端更新。
删除规则
当前页面支持两种删除方式:
行内删除单条规则
勾选后批量删除多条规则
后端删除接口:`智工厂后台管理系统/
但这里有一个很重要的现实情况:
当前后端还没有补上完整的删除前业务校验
删除校验 待完善:`智工厂后台管理系统/
这意味着目前系统代码里:
- 没有明确做“已被引用则禁止删除”的限制
- 也没有“系统内置规则不能删”的保护
从用户操作角度,建议你把删除理解为:
- 这条规则后续不再参与新批次拆分
- 但它并不是一个带强保护的“停用”动作
导出规则
如果你想盘点当前工厂到底配了哪些拆批规则,可以直接使用导出功能。
当前导出会按当前筛选条件导出,而不是无条件导出全部。
- 后端导出接口:`智工厂后台管理系统/
批次到底是怎么被拆出来的
这一页最重要的不是“怎么填表”,而是“系统到底按什么顺序执行这些规则”。
当前后端真实逻辑是:
- 先按排序升序加载全部拆分规则
- 依次拿每条规则去匹配当前待处理板件
- 某块板件一旦命中某条规则,就会从待处理列表里移除
- 这块板件不会再继续参与后面的规则匹配
- 所有剩余未命中的板件,最后进入主批次
- 规则加载与循环:`智工厂后台管理系统/
- 命中后移出待处理列表:`智工厂后台管理系统/
- 剩余板件进入主批次:`智工厂后台管理系统/
这张图想帮你看懂:一块板件通常只会被第一条命中的规则拆走,不会被多条规则重复拆分。
排序为什么这么重要
很多人会把排序理解成“展示顺序”,但在这页里它更重要的是执行优先级。
因为系统是按排序从小到大执行的,所以:
排序越小,越先匹配
排序越靠前,越容易先把板件拆走
如果一块板件同时满足两条规则,它通常会进入排在前面的那一条
规则按优先级加载:`智工厂后台管理系统/
另外,当前后端在新增、编辑、删除后还会自动做一次重新排序。
- 新增后重排:`智工厂后台管理系统/
- 编辑后重排:`智工厂后台管理系统/
- 重排算法:`智工厂后台管理系统/
这意味着:
- 排序不只是显示用数字
- 它会直接影响实际拆批结果
- 新增或调整规则后,最好用真实订单验证一次命中顺序
命中后批次名称会怎么生成
如果某条规则命中了板件,系统会新建一个特殊批次,名称规则是:
原文件名 +
【规则名称】`智工厂后台管理系统/
这意味着如果你把规则名称写得太模糊,后续在生产列表里看到的批次名也会不够直观。
所以规则名称最好写成业务上能一眼看懂的名称,比如:
- 斜边批次
- 骨骼门批次
- 圆弧工艺批次
当前系统的几个关键规则
1)没有单独的启用 / 停用开关
当前配置里没有状态字段。
也就是说:
规则一旦保存,就默认参与后续拆批
如果不想让它继续生效,当前更接近的做法是删除它
后端实体无状态字段:`智工厂后台管理系统/
2)当前后端只有基础必填校验,没有完善的业务校验
目前系统已经做了:
- 名称不能为空
- 公式不能为空
- 排序不能为空
但当前服务层还留着明显 待完善:
唯一性校验未补齐
删除前业务校验未补齐
保存前校验 待完善:`智工厂后台管理系统/
删除前校验 待完善:`智工厂后台管理系统/
所以当前更准确的正式口径应该是:
- 系统支持维护拆批规则
- 但当前对规则正确性的约束,主要还是依赖配置人自己把关
3)未命中的板件会回到主批次
系统不是“必须每块板都命中某条规则”。
如果板件没有命中任何拆批规则,它会继续留在主批次里。
- `智工厂后台管理系统/
4)租户专用拆批脚本可能会优先覆盖这套配置
这是当前实现里一个非常关键、也最容易被旧文档忽略的事实。
后端在走通用拆批规则之前,会先尝试执行租户专用拆批脚本;如果脚本返回了拆批结果,就会直接使用那套结果。
- 先尝试租户脚本:`智工厂后台管理系统/
- 租户脚本命中后直接返回:`智工厂后台管理系统/
- 租户脚本入口:`智工厂后台管理系统/
因此如果你发现:
- 页面里明明配置了规则
- 但实际拆批结果和页面规则对不上
就要额外考虑:是不是当前租户走了专用拆批逻辑。
推荐配置顺序
如果你第一次给工厂配置这页,建议按这个顺序处理:
这张图想帮你看懂:这页最怕的不是“少配一条”,而是公式写得不稳、优先级排错,导致板件被拆进了错误批次。
使用建议
使用建议
- 规则名称尽量写成车间能看懂的业务名称,因为命中后会直接体现在批次名里。
- 排序先按“最特殊、最容易误拆”的规则靠前,不要只按想到的先后顺序填写。
- 新增规则后一定用真实订单做验证,不要只看保存成功就默认规则正确。
- 如果一个板件可能同时满足多条规则,优先检查排序,而不是先怀疑系统没执行。
- 发现页面规则与实际拆批结果不一致时,除了检查公式本身,也要排查是否命中了租户专用拆批脚本。
- 当前系统对唯一性、引用删除等业务校验还不完整,正式调整前建议先和生产同事确认影响范围。
常见问题
为什么我配了两条规则,但板件只进了其中一个批次?
因为当前系统是按排序依次执行的,一块板件通常只会被第一条命中的规则拆走。命中后,它就不会再继续参与后续规则。
为什么有些板件没有进入任何特殊批次?
说明它没有命中任何拆批公式。当前这类板件会继续留在主批次中。
为什么我找不到“停用规则”按钮?
因为当前页面没有启用 / 停用状态字段。规则保存后就会参与拆批;如果不想继续生效,目前更接近的方式是删除规则。
为什么我明明配了规则,实际拆批结果还是不对?
先依次排查:
- 公式是否真的返回布尔结果并能命中目标板件
- 排序是否被更高优先级规则抢先命中
- 当前租户是否走了专用拆批脚本,导致绕过通用页面配置