forked from erp-dev/erp
2.9 KiB
2.9 KiB
2026-01-22 工作记录
1) 核查 PlateOrder / PrintingOrder 创建接口是否会写入 merchant_id(防止再次产生 merchant=NULL)
背景:
- 之前查询接口无数据的根因已确认是历史数据
merchant_id为空;生产已手动回填修复。 - 为避免“新增数据再次写空”,需要确认 create API 是否会自动写入
merchant_id。
核查结论(仅检查代码逻辑,未修改任何代码):
PlateOrder:- create 时在
PlateOrderViewSet.perform_create()内部注入merchant(来自request.user.employee.merchant),并与created_by一起写入。 - 若当前用户不存在
employee或employee.merchant为空,则会写入merchant=NULL。
- create 时在
PrintingOrder:- create 由
PrintingOrderCreateUpdateSerializer.create()调用PrintingOrderService.create_printing_order(...)。 - service 内部会在创建前注入
merchant(来自request.user.employee.merchant)与created_by。 - 若当前用户不存在
employee或employee.merchant为空,则会写入merchant=NULL。
- create 由
建议(无需改代码即可执行的运维/数据侧约束):
- 确认所有会创建
PlateOrder/PrintingOrder的账号类型都已正确绑定employee且employee.merchant非空(否则仍可能产生新 “merchant=NULL” 数据)。
2) 新增:MDY 开版暂存(MDYPlateOrderStaging)“开版图”上传到腾讯云 TIIA 图库(增量定时任务)
- 数据源:
api_v1.models.MDYPlateOrderStaging.raw["62d52f4b8d2972284492dd27"](开版图 Attachment) - URL 选择策略:
original_file_full_path优先,DownloadUrl候补(不再使用带 token 的preview_url) - 新增 service:
api_v1/mdy_plate_order_staging_tiia_upload.py - 新增任务:
api_v1.tasks.upload_mdy_plate_order_staging_images_to_tencent_tiia- 游标:
api_v1.models.DataSync(table_name=mdy_plate_order_staging_tiia_upload,last_rowid存 staging 自增 id) - 失败落库:
api_v1.models.MDYPlateOrderStagingTiiaUploadFailure(Django Admin 可查)
- 游标:
- 新增 Beat:
flower/settings.py中daily_mdy_plate_order_staging_tiia_image_upload(默认 03:20)
3) PrintingOrder.outgoing_date 升级为日期时间(DateTime),并保持入参兼容
- 模型字段:
printing.models.PrintingOrder.outgoing_date从DateField升级为DateTimeField(迁移:printing/migrations/0032_alter_printingorder_outgoing_date.py) - API 入参兼容:仍可传
YYYY-MM-DD,会自动视为当天00:00:00 - API 返回值:统一返回日期时间字符串(包含时间部分,即使为
00:00:00) - 列表筛选:
outgoing_date_from/outgoing_date_to支持传日期或日期时间;其中outgoing_date_to传日期时按“包含整天”处理(< 次日 00:00:00) - 测试:严格执行
api_v1.views.printing.test_api(新增用例覆盖outgoing_date_to的整天包含语义),全绿