caoqianming
ea0fe7c312
feat:物料新增入库检验方式test_mode_in(免检/必检,默认必检),生产领料检验卡点支持物料级免检,明细过滤器支持material__test_mode_in
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-22 16:20:18 +08:00
caoqianming
b0263bae32
docs:新增优化算法切入点分析(排产/补货/合批/装箱等可优化环节盘点)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-17 11:05:11 +08:00
caoqianming
ce35998315
release: 3.1.2026071614
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-16 14:48:09 +08:00
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
45c61efdc6
fix:发货编号获取接口number_out_last兼容无横杠格式避免明细重复编号
...
number_out_last原按"前缀-数字"(带横杠)查询,LIKE prefix-%对无横杠
编号(如FS01/FS00025)命中0行返回null,前端遂每次从头重编导致同一
草稿明细出现重复对外编号。改为:
- LIKE去横杠(prefix%),用substring(...)~^[0-9]+$约束前缀后紧跟纯数字,
既命中FS00025又排除FSM00027等更长前缀
- 按尾部数字数值排序取最大,避免补零位数不一致时取错
- lstrip(prefix)改为re.sub取尾部数字,与前端提取逻辑一致
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-16 13:25:12 +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
4ab043056e
release: 3.1.2026071608
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-16 08:05:16 +08:00
caoqianming
c93eb83ddd
fix:销售发货获取编号number_out_last参数绑定错误导致500
...
number_out_last重写为LIKE+translate双%s后,params仍以[params]传入,
2个占位符只收到1个参数,psycopg2抛IndexError。改为直接传params元组。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-15 16:31:10 +08:00
caoqianming
b541b46d3d
feat:物料新增set_safe接口设置安全库存上下限
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-15 08:18:23 +08:00
caoqianming
3c0088d18f
feat:新增物料安全库存上限字段并支持仓库数量汇总报表
...
- mtm_material 新增 count_safe_upper(安全库存上限), count_safe 语义明确为下限
- 迁移 0065
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-14 15:19:27 +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
dacb6470ab
perf:correct_zt_gxerp两阶段改为线程池并发, 默认8线程
...
数据库IO密集, 各批/各大批独立无写冲突; --workers=N可调
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 11:11:32 +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
fb5f1d072d
feat:出入库明细创建/导入时未传单价自动取物料主数据单价
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 09:56:15 +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
ad420eced1
fix:20260702光子科技开发测新修改,api/qm/ptest中testitem_name获取test_user.name
2026-07-03 15:17:43 +08:00
shijing
68b70476ba
feat:wpr/cquery返回子工序的使用设备
2026-06-24 16:03:02 +08:00
shijing
e5bf9d58c0
fix: 处理PG 连接泄漏隐患
2026-06-18 10:22:21 +08:00
shijing
e77c1ac820
fix:库存出入库记录mioitems创建时可以多选批次
2026-06-17 16:06:27 +08:00
caoqianming
652555ef01
feat(cm): 新增大族激光打标机(Hanslaser)单件打标接口
...
新增 HanslaserClient(STX/ETX 帧, gbk 编码, 每条命令校验回包)与
send_to_hanslaser action, 走 $Initialize_/$Data_/$MarkStart_ 单件流程。
该协议无队列能力, 与 1880 喷码机协议独立, 各用各的 serializer 与接口。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 10:43:30 +08:00
zty
301e886a9e
fix(hrm): 导入部门改为仅新增必填,修复更新被拦截
...
之前“所属部门必填”会拦掉部门列为空的更新行,导致已有员工无法被覆盖。
改为:填了才校验是否存在;为空时——更新保留原部门、新增才报错。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-03 14:45:01 +08:00
zty
b395db7a28
feat(hrm): 完善员工导入导出
...
导出(export_excel):
- 去掉 1000 条上限,导出筛选后的全部记录
- 由 7 列扩展为全部业务字段;select_related 避免 N+1
导入(import_excel):
- 改为按姓名 upsert:姓名唯一直接更新(身份证号可空);
重名必须用身份证号区分,否则报错
- 已存在记录用 Excel 非空列覆盖,空单元格保持原值
- 所属部门改为必填:为空或系统不存在均报错
- 修复新增分支重复关键字参数导致的报错
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-03 14:18:47 +08:00
shijing
1e920296e0
fix:get_tyy_data返回数据
2026-06-03 13:34:24 +08:00
shijing
b21c48b90c
fix: get_tyy_data方法调整
2026-06-03 10:50:57 +08:00
shijing
beddfe98ba
feat: get_tyy_data单独处理
2026-06-03 09:22:32 +08:00
caoqianming
2f8beec37f
feat(cd): get_tyy_data 支持并行获取维视智造SVS识别字符
...
新增 get_svs_char/_parse_vtfp_line,通过 VTFP 文本协议触发拍照并解析
识别字符。get_tyy_data 增加可选 svs_host/svs_port/svs_flow,采集器与
SVS 并行触发后合并为一个 dict 返回,任一失败整体抛错。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 10:13:46 +08:00
shijing
804746fde8
fix:喷码时偶尔出现不属于队列项的调整
2026-05-29 09:32:47 +08:00
shijing
39ae839692
fix: 移除mlogbw pre_info
2026-05-28 11:22:28 +08:00
shijing
c7515052cf
Merge branch 'master' of http://gitea.xxhhcty.xyz:8080/zcdsj/factory
2026-05-28 11:20:45 +08:00
shijing
95605be52f
fix: pre_info可为空
2026-05-28 11:20:43 +08:00
caoqianming
7ef9763a50
feat(cd): out_service/cd.py 支持任意 host:port, 去掉 IP 白名单
...
socket 槽位和 per-host 锁改为首次访问时懒注册, 用 double-checked locking
保证热路径无竞争。不再硬编码 4 个采集器地址。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 14:14:12 +08:00
caoqianming
86a8110a5e
perf(cd): out_service/cd.py 改 ThreadingHTTPServer + per-host 锁, drain 改非阻塞
...
- HTTPServer -> ThreadingHTTPServer, HTTP 层放开并发
- 全局 sc_lock 拆为 per-host 锁, 不同采集器互不阻塞
- drain 改 setblocking(False), 缓冲区为空时立即返回, 省掉 0.5s 阻塞等待
- recv 改读满 4+length 字节, 避免分包时误判"数据不完整"
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 13:47:44 +08:00
shijing
8de4d1197b
fix:工装调整
2026-05-27 10:18:07 +08:00
shijing
53f6082071
fix:wpr更新添加pre_info字段
2026-05-26 09:27:45 +08:00
caoqianming
dab1da0b05
feat: send_to_coder 支持传入 coder_jobname 切换喷码机信息模板
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-25 14:30:22 +08:00
shijing
0dd78f09b9
fix:锁定 MIO 行,防止多人同时撤销不同明细时并发漏删 MIO,若该出入库记录已无明细,自动删除
2026-05-22 09:43:43 +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
caoqianming
99e2909514
feat: send_to_coder 统一走 CQI+JDI 队列, 单/批共用 tdata_list
...
- 入参只接 tdata_list (列表, 至少一条), 单条就是长度=1
- 每次先 CQI 清队列, 再按顺序 JDI 入 N 条
- 一次光电触发消费一条, 与"一行=一个产品"的业务语义对齐
- 不再保留单条 tdata, 开发期清理掉
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 15:57:21 +08:00
caoqianming
2b3aaf8879
feat: 写指令也短读0.3s捕获机器的ERR回包
...
之前 expect_reply=False 直接关 socket, 机器若回 ERR 完全感知不到,
表现就是"接口200但实际没动作"。改为写完后短读最多一行, 拿到
ERR/'!' 开头直接报错; 超时则照旧视为成功放行。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 15:16:27 +08:00
caoqianming
3304371560
fix: 1880 无参查询指令(GST/GFT/GJD)去掉多余的 '|'
...
PDF 标题里的 'GST|<CR>' 是排版分隔, 实际帧是 'GST<CR>'。
之前多发了一个 '|' 导致机器回 'ERR\r'。
CQI 之前已是正确写法, 有参指令(JDA/SLA/JDI/SST)不变。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 15:15:04 +08:00