1
0
forked from erp-dev/erp
Files
erpnew/docs/2026-01-22_summary.md

2.9 KiB
Raw Blame History

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 一起写入。
    • 若当前用户不存在 employeeemployee.merchant 为空,则会写入 merchant=NULL
  • PrintingOrder
    • create 由 PrintingOrderCreateUpdateSerializer.create() 调用 PrintingOrderService.create_printing_order(...)
    • service 内部会在创建前注入 merchant(来自 request.user.employee.merchant)与 created_by
    • 若当前用户不存在 employeeemployee.merchant 为空,则会写入 merchant=NULL

建议(无需改代码即可执行的运维/数据侧约束):

  • 确认所有会创建 PlateOrder/PrintingOrder 的账号类型都已正确绑定 employeeemployee.merchant 非空(否则仍可能产生新 “merchant=NULL” 数据)。

2) 新增MDY 开版暂存MDYPlateOrderStaging“开版图”上传到腾讯云 TIIA 图库(增量定时任务)

  • 数据源:api_v1.models.MDYPlateOrderStaging.raw["62d52f4b8d2972284492dd27"](开版图 Attachment
  • URL 选择策略:original_file_full_path 优先,DownloadUrl 候补(不再使用带 token 的 preview_url
  • 新增 serviceapi_v1/mdy_plate_order_staging_tiia_upload.py
  • 新增任务:api_v1.tasks.upload_mdy_plate_order_staging_images_to_tencent_tiia
    • 游标:api_v1.models.DataSynctable_name=mdy_plate_order_staging_tiia_uploadlast_rowid 存 staging 自增 id
    • 失败落库:api_v1.models.MDYPlateOrderStagingTiiaUploadFailureDjango Admin 可查)
  • 新增 Beatflower/settings.pydaily_mdy_plate_order_staging_tiia_image_upload(默认 03:20

3) PrintingOrder.outgoing_date 升级为日期时间DateTime并保持入参兼容

  • 模型字段:printing.models.PrintingOrder.outgoing_dateDateField 升级为 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 的整天包含语义),全绿