1
0
forked from erp-dev/erp

feat: added mdy stagging upload to tiia, and change outgoing_date to datetime type

This commit is contained in:
2026-01-22 17:06:23 +08:00
parent 49ac17cf37
commit 7fd44c64aa
18 changed files with 661 additions and 11 deletions

View File

@@ -0,0 +1,37 @@
### 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`
- `PrintingOrder`
- create 由 `PrintingOrderCreateUpdateSerializer.create()` 调用 `PrintingOrderService.create_printing_order(...)`
- service 内部会在创建前注入 `merchant`(来自 `request.user.employee.merchant`)与 `created_by`
- 若当前用户不存在 `employee``employee.merchant` 为空,则会写入 `merchant=NULL`
建议(无需改代码即可执行的运维/数据侧约束):
- 确认所有会创建 `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` 的整天包含语义),全绿