Commit Graph

1168 Commits

Author SHA1 Message Date
caoqianming 5881c32c38 perf:mlog/handover/mlogb列表消除N+1,select_related精简改prefetch,修Handover.handoverb属性绕过prefetch的bug
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-16 14:41:46 +08:00
caoqianming 4050d41370 车间库存列表补齐关联字段select_related,消除剩余N+1
WMaterialViewSet 列表序列化查询数从随行数线性增长降为常数1条:
- 补 mgroup/material_ofrom/material_origin/defect 的 select_related
- material_ofrom/material_origin 用 StringRelatedField(__str__ 取 process.name),
  故用 __process 嵌套路径带上工序表, 避免每行回查 mtm_process

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-16 12:03:47 +08:00
caoqianming 1e94027e17 perf:销售发货批次隐藏可发数量为0的批次,并用子查询消除在途量N+1
- inm:MaterialBatchFilter 新增 count_canmio__gt 过滤,销售发货(sale_out)只展示可发>0的批次
- inm/wpm:count_mioing/count_working/count_handovering 改用关联子查询单次注解,
  消除列表逐行属性的N+1(纯访问101→1),并保留decimal精度(修正原IntegerField截断
  导致可发/可用量偏大的隐患)
- 新增 apps/utils/orm.py:inflight_sum(多聚合用子查询避免JOIN翻倍) + restql_wants
  (?query未取这些字段时跳过子查询)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-16 11:57:21 +08:00
caoqianming 5c9bb530c7 feat:合格B类字段前端文案改为"记为合格"更准确表达
clear_defect 在工序/日志上的实际语义是合格B类当合格品不记缺陷入库,原不拆批/合批清除缺陷描述机制且工序上名不副实,统一改为记为合格。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-16 10:19:50 +08:00
caoqianming d68ca98f2c perf:大批计算提速与回刷脚本增强
- 分子聚合改values_list按JSON键取值, 不再拉子批整份data
- 子批发现改按层批量查询(每层2次), 替代逐节点循环查询
- cal_zt_big加use_white_cache参数, fresh回刷不再额外读写大批data
- 脚本内关闭DEBUG(避免SQL日志内存累积拖慢长任务)
- 新增--skip-resolve跳过归属解析直接算大批; 默认起始2026-06-01

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 11:34:08 +08:00
caoqianming d0c38b98f2 fix:归属解析支持多级拆批爬链与未拆批直检大批
- 孙批沿拆批链爬到顶层大批, 修复中间子批被错锁为大批
- 复检批合批来源统一按爬链顶层判定, 修复"来源大批不一致"误报
- 来源均为炉料链且批号为大批格式时自身即大批(未拆批直接检验);
  不良集中池等非大批格式不归属
- correct脚本--fresh忽略旧锁重新解析, 并清理错误的大批标记与直通键

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 10:54:47 +08:00
caoqianming a90351bb93 feat:correct_zt_gxerp逐批打印计算结果
cal_zt_big返回计算摘要, 回刷脚本每个大批实时输出良率/白料/口径

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 10:34:56 +08:00
caoqianming cd3faa0ad7 docs:同步ZT_MAX_VISITS=300
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 10:26:51 +08:00
caoqianming ae235a768b fix:白料回溯访问上限降为300
实测正常批1~10次访问, 最重合法案例77次, 300已留4倍余量;
病态谱系最多浪费约20秒即放弃并负缓存

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 10:26:11 +08:00
caoqianming d1c7ffb598 fix:白料回溯记忆化+访问上限, 入库兜底汇总原料性入库
- 回溯按批次号记忆化, 修复遗留无损批网状谱系导致的指数爆炸卡死
- 单次回溯超3000节点放弃并记口径"回溯规模超限"
- 入库兜底改为汇总pur_in/other_in全部入库明细, 修复多次入库低估
- save(update_fields)补update_time使auto_now生效

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 10:21:54 +08:00
caoqianming 3be0b09cd9 feat:batchst接口支持with_zt_big附带直通大批数据及zt_batch过滤
小批查询时?with_zt_big=yes每行附zt_big=所属大批完整BatchSt(含直通_*);
zt_batch加入过滤字段, 可按大批号反查全部子批

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-13 22:43:30 +08:00
caoqianming c4e0fdd265 feat:拆批/报工改号提交时纯继承zt_batch归属
仅来源料子集式流转(拆批交接/报工改号)继承, 合批不继承以免
不良集中批等共享池被错误归属; 冲突不覆盖记日志

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-13 22:30:15 +08:00
caoqianming 8d5a34cf15 feat:新增直通良率专用回刷脚本correct_zt_gxerp
只解析zt_batch归属并重算大批直通_*字段,每个大批仅算一次,
不重建批次其他统计;--fresh可强制重新回溯白料数

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-13 22:20:38 +08:00
caoqianming 8f2d9ba241 feat:批次统计新增大批直通良率(gxerp)
- BatchSt新增zt_batch字段锁定检验小批归属的大批
- batch_gxerp统计完成后自动解析归属并重算大批:
  直通_白料数/直通_总合格数/直通_良率/直通_口径
- 白料数沿BatchLog回溯至黑化锚点取进炉领用数,多去向按生产
  主线数量占比分摊(不良集中批旁路不占份额),外购兜底入库数量,
  老批次沿BatchSt创建来源续接;白料结果缓存,分子超分母隔离

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-13 22:16:08 +08:00
shijing 68b70476ba feat:wpr/cquery返回子工序的使用设备 2026-06-24 16:03:02 +08:00
shijing 39ae839692 fix: 移除mlogbw pre_info 2026-05-28 11:22:28 +08:00
shijing 95605be52f fix: pre_info可为空 2026-05-28 11:20:43 +08:00
shijing 8de4d1197b fix:工装调整 2026-05-27 10:18:07 +08:00
shijing b108b48714 feat:wpm/mloguser返回设备名称 2026-05-22 09:42:03 +08:00
shijing 7d91682e8a fix:禅道413 2026-05-21 16:18:01 +08:00
shijing 1299bddc6a fix:工序添加clear_defect 2026-05-15 13:39:22 +08:00
caoqianming 2c1b0f7b83 feat: mlog 提交支持 clear_defect,合格 B 类与合格品合并入库
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 09:22:40 +08:00
caoqianming 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>
2026-05-12 18:03:36 +08:00
caoqianming 1d4af9e52f fix: mlog 撤回后回退 utask 已提交状态避免无法删除
update_mtask 原本只单向把 utask 推进到已提交,mlog_revert 把 mtask
退回已下达后未反向校正 utask,导致 utask 卡在已提交且无法删除。
两处 fill_way 分支均补充反向回退逻辑,按 count_ok 退回生产中或已下达。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 15:32:46 +08:00
caoqianming 7e9b559723 feat: mlog/mlogb 列表返回 wm_in 状态及缺陷标识
MlogbDetailSerializer 增加 wm_in_state;MlogListSerializer 与 MlogSerializer 增加 wm_in_defect / wm_in_defect_name / wm_in_state;MlogViewSet 在 select_related 中追加 wm_in__defect。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-30 14:03:53 +08:00
caoqianming 40ebf720f7 perf: mlogb 列表预取 mlogbdefect 与 defect 消除 N+1
将 Mlogb.mlogbdefect 改为反向管理器 self.mlogbdefect_set.all() 以便 prefetch_related 命中缓存;MlogbViewSet 增加对 mlogbdefect_set + defect 的预取。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-30 13:47:25 +08:00
caoqianming 46c9eba306 feat: mlogb 列表返回 wm_in 缺陷标识
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-30 13:41:41 +08:00
caoqianming 1f7e17b6c1 fix: 撤回 is_fix 日志时兜底清理误带入的继承缺陷
- sync_inherited_defect 早返回路径删除继承记录后补算 mlogb 数量
- mlog_revert 末尾针对 is_fix 已残留继承缺陷的产出 mlogb 触发 sync 并刷新 mlog 汇总

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-30 11:44:29 +08:00
caoqianming d2581d8500 fix: is_fix 日志不再继承输入物料的缺陷标识
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-30 09:09:30 +08:00
caoqianming 13c9d8a258 fix: 批次统计修复小/大日期反向并增强除零兜底
- 三个 batch_*erp 脚本将 小日期=min、大日期=max,与中文语义一致
- get_f_l_date 改为先解析为 date 再比较,移除对字符串字典序的依赖
- 合格率/直通率兜底 except 同时捕获 decimal.InvalidOperation 与 ZeroDivisionError
- 新增 batch_gxerp.md 整理计算规则与字段

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-29 12:14:07 +08:00
caoqianming 4d2a88ab1e feat: handover移除search包含id 2026-04-29 10:42:17 +08:00
caoqianming e2b1f266aa fix: mlogdefect 空列表时仍同步继承缺陷
前端传 mlogdefect: [] 时,原 is not None 判断会走进 need_mdfect 分支,
既不创建真实缺陷也跳过 sync_inherited_defect,导致 mlogb 无任何缺陷标识。
改为无论哪个分支都兜底调用 sync_inherited_defect,由其内部判断互斥。
2026-04-24 15:45:58 +08:00
caoqianming b6b79da3b1 Inherit batch output defect markers 2026-04-23 16:32:40 +08:00
caoqianming 3c931040cf feat: batch_bxerp添加子工序操作人 2026-04-14 14:16:17 +08:00
caoqianming 68191dc305 fix: WMaterialCreateSerializer 所有字段设为必填
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 10:10:18 +08:00
caoqianming 320822019a feat: WMaterialViewSet 添加手动来料创建和删除接口
- 新增 WMaterialCreateSerializer,validate 中自动推导 belong_dept
- ViewSet 使用 create_serializer_class,perform_create 设置 is_manual=True
- 删除校验逻辑移至模型 delete 方法,校验 is_manual 及关联记录(mlogb/handoverb/ftestwork/mioitem)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 10:08:42 +08:00
caoqianming 3e1a087258 feat: WMaterialViewSet 添加手动创建和删除接口
- WMaterial 新增 is_manual 字段标记手动创建的库存
- WMaterialViewSet 添加 create 接口,创建时自动设置 is_manual=True
- WMaterialViewSet 添加 destroy 接口,仅允许删除手动创建的记录

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 22:07:42 +08:00
caoqianming bf5cfbe7e6 feat: fmlog返回route_material_in 2026-02-10 10:27:43 +08:00
caoqianming cffea3e1ea feat: 加工前不良当合格品处理 2026-02-04 15:45:12 +08:00
caoqianming a534bde086 feat: wmaterial根据current_merged查询3 2026-01-22 16:12:35 +08:00
caoqianming 63002f27c8 feat: wmaterial根据current_merged查询2 2026-01-22 16:00:59 +08:00
caoqianming 4bbae8b7df feat: wmaterial根据current_merged查询 2026-01-21 11:09:53 +08:00
caoqianming dc26c7cc46 feat: handoverb添加oinfo_json字段 2026-01-16 15:29:58 +08:00
caoqianming 80f832aa85 feat: 光子添加工段数据统计 2026-01-16 14:01:13 +08:00
caoqianming 70e49eb27e fix: batchst支持返回source_near修复 2026-01-16 14:00:52 +08:00
caoqianming 146e842642 feat: with_source_near筛选体现在swagger里 2026-01-15 16:47:15 +08:00
caoqianming feb8bd6770 feat: wpr_bxerp优化 2026-01-13 10:29:41 +08:00
caoqianming 43f5f11ca8 feat: 未有ftest的也触发单个统计 2026-01-13 09:05:19 +08:00
caoqianming d5ea72a021 feat: 交接记录子项需保证工段/车间一致2 2026-01-12 15:44:48 +08:00
caoqianming cf6633592a feat: 交接记录子项需保证工段/车间一致 2026-01-12 13:44:08 +08:00