Files
zkxw/docs/superpowers/plans/2026-06-29-dual-sample-reception.md
T
2026-06-30 09:19:06 +08:00

46 lines
1.6 KiB
Markdown

# 双部门样本接收拆分 Implementation Plan
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task.
**Goal:** 将样本接收拆分为质检域(`biz_sample_reception`)与生产域(`biz_sample_production_reception`),两侧互读互斥写;质检去掉体积/净重。
**Architecture:** 新表 1:1 关联质检接收;生产 API `/production-sample-receptions`;前端双区块只读组件 + 生产工单专用填写弹窗。
**Tech Stack:** FastAPI + SQLAlchemy + Vue 3 + Element Plus
**Spec:** `docs/superpowers/specs/2026-06-29-dual-sample-reception-design.md`
---
## Task 1: 数据库与 Model ✅
- `docs/sql/migrate_sample_production_reception.sql`
- `backend/app/models/models.py` → `BizSampleProductionReception`
## Task 2: 生产接收 CRUD/API ✅
- `backend/app/crud/sample_production_reception.py`
- `backend/app/api/sample_production_reception.py`
- 注册 `main.py` / `api/__init__.py`
## Task 3: 质检 API 瘦身 + 聚合读 ✅
- `_reception_to_dict` 移除 volumeMl/netWeightG
- `productionReception` 挂载至详情/列表/协议样本
## Task 4: 前端生产弹窗 + 质检页 ✅
- `SampleReceptionDialog.vue` 重写
- `sample-reception/index.vue` 去体积净重 + 生产只读
## Task 5: 只读展示 ✅
- `sample-reception-dual-readonly-panel`
- 协议/捐赠查看、工单/任务/放行查看弹窗
## 部署前
1. 执行 `docs/sql/migrate_sample_production_reception.sql`
2. 重启 backend
3. 验证:质检接收 → 生产工单填写 → 双方只读互见