35 lines
2.7 KiB
Markdown
35 lines
2.7 KiB
Markdown
## Why
|
||
|
||
中科兴皖 V0.3「基础信息管理」下 2.2.1~2.2.5 为后续采集协议单、样本等业务的主数据入口;当前仓库仅有 SQL 模型定义,缺少租户内一致的 REST API 与 Web 管理端 CRUD,无法支撑业务录入与引用。
|
||
|
||
## What Changes
|
||
|
||
- 在 `backend` 为五类主数据提供租户隔离的列表/详情/新增/修改/软删接口,字段与校验对齐 `docs/sql/zkxw.sql` 与 `docs/中科兴皖需求V0.3.md` 2.2.1~2.2.5。
|
||
- 在 `web-admin` 增加五个列表+弹窗表单页(或等价结构),遵循 Fresh Mint 规范与既有 Demo 模板页(如 `unit`、`dict` 类页面)的布局与交互。
|
||
- 客户:同一租户下身份证号非空且重复时拒绝创建并提示;姓名不强制唯一。
|
||
- 细胞样本类型:`type_code` 租户内唯一(与表 `uk_sample_type` 一致)。
|
||
- 采集地区与医院:地区 CRUD;医院为子表(`biz_collection_hospital`),通过「地区医院配置」弹窗维护,**不**采用需求文中「医院名称逗号分隔」的冗余存储(以当前 schema 1:N 为准)。
|
||
- 采集协议号池、样本编码池:`protocol_no` / `sample_code` 租户内唯一;维护 `issued`(是否下发)。
|
||
- 提供初始化菜单/SQL 片段(若项目惯例为 `docs/sql/`),便于挂到 Web 侧栏。
|
||
|
||
## Capabilities
|
||
|
||
### New Capabilities
|
||
|
||
- `customer-management`:客户 `biz_customer` 的展示、增删改、身份证重复校验、标签逗号分隔编辑。
|
||
- `cell-sample-type-management`:细胞样本类型 `biz_cell_sample_type` 的展示与增删改、编码唯一性。
|
||
- `collection-region-hospital-management`:采集地区 `biz_collection_region` 与下属医院 `biz_collection_hospital` 的维护及子表弹窗配置。
|
||
- `collection-protocol-no-management`:采集协议号池 `biz_collection_protocol_no` 的维护与下发标记。
|
||
- `sample-code-management`:样本编码池 `biz_sample_code` 的维护与下发标记。
|
||
|
||
### Modified Capabilities
|
||
|
||
- (无)不修改 `openspec/changes/zkxw-engineering-standards` 中既有 SHALL 语义;本变更在其实现约束下新增业务能力。
|
||
|
||
## Impact
|
||
|
||
- **后端**:新增路由模块(建议 `app/api/` 下业务域路由)、对应 `schemas/`、`crud/`、`services/`(如需);在 `app/api/__init__.py` 与 `app/main.py` 注册;SQLAlchemy 模型若尚未覆盖上述表则补充。
|
||
- **前端**:`src/api/`、`src/router/`、`src/views/`(建议 `views/business/` 或按项目惯例)、菜单静态或后端菜单数据。
|
||
- **数据库**:以现有 `docs/sql/zkxw.sql` 全库导出基线为准;本变更可附带种子数据(如三种预设样本类型)的 **可选** 增量 SQL(置于 `docs/sql/`)。
|
||
- **权限**:菜单与按钮权限与现有 `sys_menu` / 角色授权模式对齐。
|