feat: 合批支持 clear_defect,合格品多 defect 合批后置空 #5

Merged
caoqianming merged 1 commits from dev_cqm into master 2026-05-13 08:09:01 +08:00
Owner

Summary

  • Handover 新增 clear_defect 字段(默认 false),合批时若源批次 state 均为 WM_OK 且 defect 不一致,可由前端显式勾选开启,落库后目标 defect 置 None
  • 校验层:clear_defect=true 时强制源 state 全为合格、目标 new_wm 不能带 defect;默认仍保持原 defect 严格一致校验
  • 服务层:handover_submit 预计算 merge_target_defect,OK 多 defect 合批落库为 None
  • 数据库迁移 0130_handover_clear_defect

Test plan

  • 执行 python manage.py migrate wpm
  • 合批合格品同 defect → 与原行为一致
  • 合批合格品不同 defect 且未勾选 clear_defect → 报错『合并的物料缺陷不一致』
  • 合批合格品不同 defect 且勾选 clear_defect → 成功,目标 wm.defect 为 None
  • 合批不合格品不同 defect 且勾选 clear_defect → 报错『清除缺陷合批仅支持合格品』
  • 合批目标 new_wm 带 defect 且勾选 clear_defect → 报错『清除缺陷合批的目标批次不能带缺陷』
## Summary - Handover 新增 clear_defect 字段(默认 false),合批时若源批次 state 均为 WM_OK 且 defect 不一致,可由前端显式勾选开启,落库后目标 defect 置 None - 校验层:clear_defect=true 时强制源 state 全为合格、目标 new_wm 不能带 defect;默认仍保持原 defect 严格一致校验 - 服务层:handover_submit 预计算 merge_target_defect,OK 多 defect 合批落库为 None - 数据库迁移 0130_handover_clear_defect ## Test plan - [ ] 执行 python manage.py migrate wpm - [ ] 合批合格品同 defect → 与原行为一致 - [ ] 合批合格品不同 defect 且未勾选 clear_defect → 报错『合并的物料缺陷不一致』 - [ ] 合批合格品不同 defect 且勾选 clear_defect → 成功,目标 wm.defect 为 None - [ ] 合批不合格品不同 defect 且勾选 clear_defect → 报错『清除缺陷合批仅支持合格品』 - [ ] 合批目标 new_wm 带 defect 且勾选 clear_defect → 报错『清除缺陷合批的目标批次不能带缺陷』
caoqianming added 1 commit 2026-05-12 18:07:24 +08:00
651366257c feat: 合批支持 clear_defect,合格品多 defect 合批后置空
新增 Handover.clear_defect 字段:合批时若源批次 state 均为 WM_OK 且
defect 不一致,可由前端显式勾选开启,落库后目标 defect 为 None;默认
false 保持原有严格校验。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
caoqianming merged commit b03b42ad23 into master 2026-05-13 08:09:01 +08:00
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: zcdsj/factory#5
No description provided.