Files
zkxw/openspec/changes/basic-info-management/proposal.md
T
2026-05-17 08:36:37 +08:00

35 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 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` / 角色授权模式对齐。