Commit Graph

4234 Commits

Author SHA1 Message Date
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 95605be52f fix: pre_info可为空 2026-05-28 11:20:43 +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
caoqianming f8b6f084d4 feat: 重写喷码通讯为伟迪捷1880 ASCII协议, 配置改由前端传入
- 原 CoderClient 用的是 Domino 1000 系列 STX/ETX 二进制帧, 不适用于 1880
- 改为 ASCII '|' 分隔 + <CR> 结尾, 实现 SLA/JDA/CQI/JDI/SST/GST 等指令
- send_to_coder 把多条 commands 合并成单帧 JDA 一次下发
- 配合模型字段移除, IP/端口/用户区由请求 body 提供, 不再走模板回退

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 13:48:52 +08:00
caoqianming 43b2a4c7f7 fix: 移除LabelTemplate不必要的字段 2026-05-18 10:49:49 +08:00
caoqianming 96f5133152 Merge branch 'master' of http://gitea.xxhhcty.xyz:8080/zcdsj/factory 2026-05-18 09:16:28 +08:00
caoqianming 2b77a469dd feat: 简化打码器 2026-05-18 09:16:16 +08:00
TianyangZhang d480595415 feat: 修改光芯bug 2026-05-15 17:07:58 +08:00
caoqianming dadfd9669a feat: 标签模板增加打码器用户区配置, 支持同一信息内切换码型
LabelTemplate 新增 coder_field 字段(默认"1"), 喷码机一条信息里插入多个不同
码型的用户区时, 不同模板填不同用户区名即可打不同码型(条码/二维码/文本),
无需走 T 指令。coder.py 通讯编码放宽到 latin-1 并校验帧内控制字符。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 15:08:54 +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 bb64c89d76 feat: mioitem 返回 defect/defect_name/okcate 并优化 mio 详情 items 序列化
- MIOItemSerializer 新增 defect/defect_name/okcate,取数优先级 wm.defect>mb.defect,
  与 services.py 中 do_out/do_in 的取数逻辑保持一致
- MIOItemViewSet.select_related_fields 加 wm__defect/mb__defect 消除 N+1
- MIODetailSerializer.items 改用 MIOItemForMioDetailSerializer 轻量序列化器
  (仅含前端实际消费的 id/mio/material/material_/batch/count/pack_index),
  避开 MIOItemSerializer 中 assemb/mioitemw 的 N+1
- MIOViewSet.retrieve 时挂 Prefetch('item_mio') 进一步减少查询

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 09:23:22 +08:00
caoqianming 70f2d0d2dd feat: inm 生产领料/入库支持带 defect 物料并按 okcate 推导 state
去除 do_out 对 defect 非空的硬拦截,do_out/do_in 中查询与创建
MaterialBatch、WMaterial 时按 defect.okcate==DEFECT_NOTOK 推导
state=WM_NOTOK,与 update_mb_item 保持一致,撤销路径同步打通。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 08:57:38 +08:00
shijing 2c35390430 fix:分支提交测试 2026-05-11 15:18: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 85cfb8f680 fix: LabelTemplate 序列化器允许 coder_ip 为空字符串/null
Why: DRF IPAddressField 默认拒绝空串, 前端清空 IP 保存时报 400

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 13:45:34 +08:00
caoqianming 9c220dbc1d feat: cm 新增 1000 系列喷码机网口下发接口
- LabelTemplate 增加 coder_ip/coder_port 字段, 模板即指定目标喷头
- 新增 CoderClient 封装 STX/ETX 帧, 支持更新用户区/选择信息/查状态
- LabelTemplateViewSet 新增 send_to_coder action, 复用 gen_commands 拼内容下发, 用户区名默认 1, 可在 body 临时覆盖

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 11:24:00 +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 3129cc0e54 feat: mio 列表接口新增 total_price 返回明细金额合计
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-29 11:19:44 +08:00
caoqianming 4d2a88ab1e feat: handover移除search包含id 2026-04-29 10:42:17 +08:00
caoqianming 32b0313349 feat: shift 视图改为完整 CRUD 以支持班次管理页
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-29 10:37:06 +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
TianyangZhang c2ee88d2bf Merge branch 'master' of http://gitea.xxhhcty.xyz:8080/zcdsj/factory 2026-04-24 15:00:48 +08:00
TianyangZhang 7577a46900 feat: enm 修改重跑能源计算 不用从mplogx 开始计算 2026-04-24 15:00:47 +08:00
caoqianming f6d934bbb1 fix: 重建wpr 2026-04-24 14:52:01 +08:00
caoqianming b6b79da3b1 Inherit batch output defect markers 2026-04-23 16:32:40 +08:00
TianyangZhang 48305ed6fb Merge branch 'master' of http://gitea.xxhhcty.xyz:8080/zcdsj/factory 2026-04-21 16:05:08 +08:00
TianyangZhang 949620809a feat:光芯科技 主要修改采购功能 2026-04-21 16:05:07 +08:00
caoqianming cafecd4d4a feat: add contract settlement workflows 2026-04-20 16:56:11 +08:00
caoqianming a111f493e1 Merge branch 'master' of http://gitea.xxhhcty.xyz:8080/zcdsj/factory 2026-04-14 14:16:18 +08:00
caoqianming 3c931040cf feat: batch_bxerp添加子工序操作人 2026-04-14 14:16:17 +08:00
TianyangZhang 159b644126 feat: 修改 hrm & rpm 代码 2026-04-07 13:42:30 +08:00
TianyangZhang a82405e451 feat:修改光芯人员导入功能 2026-03-31 11:08:12 +08:00
caoqianming b3d0b34719 perf: 优化 Material 可用物料过滤,改为 DB 子查询
- 新增 filter_process_todo 过滤器替代原 todo tag 逻辑
- 避免将 ID 列表加载到 Python 内存,改用两个子查询 OR 合并

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 14:40:07 +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 61f70d4907 feat: Ptest添加中温粘度规格和结论字段
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 08:58:33 +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
TianyangZhang 6d43b412b7 feat: 修改光芯OA审批的BUG与新增导出功能 2026-03-23 09:50:20 +08:00
TianyangZhang c5e545f5e5 Merge branch 'master' of http://gitea.xxhhcty.xyz:8080/zcdsj/factory 2026-03-13 16:59:13 +08:00
TianyangZhang e3dcb492d7 feat:恢复ichat 功能和 defaut 下的文件 2026-03-13 16:59:12 +08:00
caoqianming 409972ba88 Merge branch 'master' of http://gitea.xxhhcty.xyz:8080/zcdsj/factory 2026-03-13 16:35:48 +08:00
caoqianming 4acd80718d fix: avoid duplicate rows in complex reverse queries
Add an optional distinct flag to complex query payload and deduplicate by primary key before annotate/order flow, so reverse-join filtering does not return repeated records.

Made-with: Cursor
2026-03-13 16:35:12 +08:00
TianyangZhang d657c9fd26 feat: 删除-ichat 2026-03-13 10:01:05 +08:00
TianyangZhang 8541905a5c feat:mpr-物资管理模块(申购单、入库单、物料库存、领用记录)
- 新增 mpr app,包含物资申购单、仓库入库单、物料库存、物资领用单四个业务模型
- 物资申购单/入库单支持 TicketMixin 审批工作流,明细随主表一次性提交
- 入库单审批通过后自动生成物料库存记录
- 物料库存增加状态字段(闲置/领用中/已领用/已领完),数量为0时显示已领完
- 物资领用单提交时自动扣减库存并标记领用中,审批通过改为已领用,拒绝时恢复库存
- 包含 models、serializers、views、filters、urls 完整后端代码

Made-with: Cursor
2026-03-12 16:56:12 +08:00
TianyangZhang 7e052b7b71 feat:hrm-人员合同变更 2026-03-12 08:48:52 +08:00
TianyangZhang 416aa50a67 feat:hrm-migration 修改迁移文件 2026-03-06 11:14:16 +08:00
caoqianming c99e74eee8 Merge branch 'master' of http://gitea.xxhhcty.xyz:8080/zcdsj/factory 2026-03-06 11:05:03 +08:00
caoqianming 8b22084c0a feat: qctmat create update 校验唯一 2026-03-06 11:05:03 +08:00
TianyangZhang 0c66931154 feat:gx-hrm-employee 人员导入功能 2026-03-04 15:39:46 +08:00
TianyangZhang c3605ff1db feat: hrm-views 修改employee 人员导入 2026-03-04 13:56:00 +08:00
TianyangZhang 743c724d79 feat:hrm-employee 增加人员导入功能 2026-03-03 14:45:53 +08:00
caoqianming bf5cfbe7e6 feat: fmlog返回route_material_in 2026-02-10 10:27:43 +08:00
caoqianming 80a3dbd72b Merge branch 'master' of http://gitea.xxhhcty.xyz:8080/zcdsj/factory 2026-02-04 15:45:13 +08:00
caoqianming cffea3e1ea feat: 加工前不良当合格品处理 2026-02-04 15:45:12 +08:00
TianyangZhang 4690a78ac6 feat: hrm - 修改 人员调岗后更新部门和岗位 2026-01-29 10:43:52 +08:00
TianyangZhang beef2b3e54 feat:人员调岗申请 修改 2026-01-28 09:57:13 +08:00
TianyangZhang 987a53005c Merge branch 'master' of http://gitea.xxhhcty.xyz:8080/zcdsj/factory 2026-01-26 11:00:21 +08:00
TianyangZhang c9089eeb27 feat: hrm-新增人员岗位调动 2026-01-26 11:00:19 +08:00
caoqianming d29fcce935 fix: base user_exist完善 2026-01-23 16:18:17 +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 0d80e182cd feat: base user增加has_perm筛选条件 2026-01-16 14:48:08 +08:00
caoqianming 2759114ede feat: base 升级后同步数据库 2026-01-16 14:42:42 +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 e99b2ecbbc fix: base complexquerymixin支持add_info_for_list 2026-01-16 14:00:11 +08:00
caoqianming 146e842642 feat: with_source_near筛选体现在swagger里 2026-01-15 16:47:15 +08:00
caoqianming 1ffbe0cc44 feat: wpr 返回wpr_from_ 2026-01-13 15:02:52 +08:00