# c-h-i-m-o/dna architecture

> Architecture diagram of the GitHub repository c-h-i-m-o/dna, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/c-h-i-m-o/dna
- Repository: https://github.com/c-h-i-m-o/dna

## Overview

DNA 案件管理系统是 Vue 前端与 Spring 后端组成的样本业务应用。主要流程是工作人员录入或导入样本、检索与更新记录，并获取服务端统计；管理员还维护字典、编号规则、用户与日志，或管理备份恢复。图中按 README 能力补入未提供后端源码路径的样本处理节点；具体调用关系仅在源码摘录或 README 明确时连线，因此若干未采样功能只展示其入口与已知边界。

Main entry points: [`DNA-system/src/main/java/dna/dnasystem/auth/service/AuthenticationService.java`](https://github.com/c-h-i-m-o/dna/blob/master/DNA-system/src/main/java/dna/dnasystem/auth/service/AuthenticationService.java) (认证服务), [`DNA-business/src/main/java/dna/dnabusiness/backup/service/DatabaseRestoreService.java`](https://github.com/c-h-i-m-o/dna/blob/master/DNA-business/src/main/java/dna/dnabusiness/backup/service/DatabaseRestoreService.java) (数据库恢复), [`DNA-business/src/main/java/dna/dnabusiness/backup/service/BackupService.java`](https://github.com/c-h-i-m-o/dna/blob/master/DNA-business/src/main/java/dna/dnabusiness/backup/service/BackupService.java) (备份与计划), [`DNA-web/src/main/java/dna/dnaweb/backup/controller/BackupController.java`](https://github.com/c-h-i-m-o/dna/blob/master/DNA-web/src/main/java/dna/dnaweb/backup/controller/BackupController.java) (备份接口)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["用户界面"]
  node_sampleui["样本录入查询"]
  node_sampleapi["样本 API"]
  node_statsui["统计页面"]
  node_statsapi["统计 API<br/>[statistics.ts]"]
  node_loginui["登录界面<br/>[index.vue]"]
  node_authapi["认证 API<br/>[auth.ts]"]
  node_userui["用户管理页<br/>[index.vue]"]
  node_dictionaryui["字典维护"]
  node_numberui["编号规则页面<br/>[index.vue]"]
  node_backupui["备份恢复页面"]
  node_backupapi["备份 API<br/>[backup.ts]"]
end

subgraph group_web["HTTP 接口"]
  node_samplehttp["样本接口"]
  node_statscontroller["统计接口"]
  node_authcontroller["认证接口"]
  node_casecontroller["案件类别接口"]
  node_numbercontroller["编号规则接口"]
  node_backupcontroller["备份接口"]
end

subgraph group_identity["身份与管理"]
  node_authservice["认证服务"]
  node_jwt["JWT 令牌"]
  node_users["用户管理<br/>[UserService.java]"]
  node_logservice["操作日志"]
  node_supportservice["管理员消息"]
end

subgraph group_samples["样本与分析"]
  node_samplelogic["样本处理"]
  node_statsservice["统计聚合"]
  node_statsmapper["统计查询"]
end

subgraph group_reference["规则字典"]
  node_casetype["案件类别服务"]
  node_officeunit["办案单位服务"]
  node_refdata["参考数据快照"]
  node_numberservice["编号规则服务"]
end

subgraph group_recovery["数据库运维"]
  node_restore["数据库恢复"]
  node_backups["备份与计划<br/>[BackupService.java]"]
  node_archive["备份归档"]
end

node_staff(("工作人员/管理员"))
node_mysql[("MySQL 数据库")]

node_staff -->|"录入查询"| node_sampleui
node_sampleui -->|"请求"| node_sampleapi
node_sampleapi -->|"调用"| node_samplehttp
node_samplehttp -->|"处理"| node_samplelogic
node_samplelogic -->|"读写"| node_mysql
node_staff -->|"查看统计"| node_statsui
node_statsui -->|"筛选请求"| node_statsapi
node_statsapi -->|"调用"| node_statscontroller
node_statscontroller -->|"调用"| node_statsservice
node_statsservice -->|"聚合查询"| node_statsmapper
node_statsmapper -->|"读取"| node_mysql
node_staff -->|"登录"| node_loginui
node_loginui -->|"认证请求"| node_authapi
node_authapi -->|"调用"| node_authcontroller
node_authcontroller -->|"调用"| node_authservice
node_authservice -->|"签发校验"| node_jwt
node_authservice -->|"读取用户"| node_users
node_authservice -->|"刷新会话"| node_mysql
node_staff -->|"管理用户"| node_userui
node_userui -->|"用户操作"| node_users
node_users -->|"读写"| node_mysql
node_logservice -->|"写入查询"| node_mysql
node_supportservice -->|"消息与用户数据"| node_mysql
node_staff -->|"维护字典"| node_dictionaryui
node_dictionaryui -->|"请求"| node_casecontroller
node_casecontroller -->|"调用"| node_casetype
node_casetype -->|"读写"| node_mysql
node_officeunit -->|"读写并检查引用"| node_mysql
node_refdata -->|"读取字典"| node_mysql
node_staff -->|"管理编号规则"| node_numberui
node_numberui -->|"请求"| node_numbercontroller
node_numbercontroller -->|"调用"| node_numberservice
node_numberservice -->|"规则与序列数据"| node_mysql
node_staff -->|"管理备份"| node_backupui
node_backupui -->|"请求"| node_backupapi
node_backupapi -->|"调用"| node_backupcontroller
node_backupcontroller -->|"恢复请求"| node_restore
node_backupcontroller -->|"备份计划"| node_backups
node_restore -->|"安全备份"| node_backups
node_restore -->|"读取归档"| node_archive
node_restore -->|"恢复数据"| node_mysql
node_backups -->|"生成归档"| node_archive
node_backups -->|"任务记录"| node_mysql

click node_sampleui "https://github.com/c-h-i-m-o/dna/tree/master/DNA-ui/src/views/sampleManagement"
click node_sampleapi "https://github.com/c-h-i-m-o/dna/blob/master/DNA-ui/src/api/sampleManagement.ts"
click node_statsui "https://github.com/c-h-i-m-o/dna/tree/master/DNA-ui/src/views/statistics"
click node_statsapi "https://github.com/c-h-i-m-o/dna/blob/master/DNA-ui/src/api/statistics.ts"
click node_statsservice "https://github.com/c-h-i-m-o/dna/blob/master/DNA-business/src/main/java/dna/dnabusiness/statistics/service/SampleStatisticsService.java"
click node_statsmapper "https://github.com/c-h-i-m-o/dna/blob/master/DNA-business/src/main/java/dna/dnabusiness/statistics/mapper/SampleStatisticsMapper.java"
click node_loginui "https://github.com/c-h-i-m-o/dna/blob/master/DNA-ui/src/views/auth/login/index.vue"
click node_authapi "https://github.com/c-h-i-m-o/dna/blob/master/DNA-ui/src/api/auth.ts"
click node_authcontroller "https://github.com/c-h-i-m-o/dna/blob/master/DNA-web/src/main/java/dna/dnaweb/auth/controller/AuthController.java"
click node_authservice "https://github.com/c-h-i-m-o/dna/blob/master/DNA-system/src/main/java/dna/dnasystem/auth/service/AuthenticationService.java"
click node_jwt "https://github.com/c-h-i-m-o/dna/blob/master/DNA-system/src/main/java/dna/dnasystem/auth/security/JwtTokenService.java"
click node_users "https://github.com/c-h-i-m-o/dna/blob/master/DNA-system/src/main/java/dna/dnasystem/user/service/UserService.java"
click node_userui "https://github.com/c-h-i-m-o/dna/blob/master/DNA-ui/src/views/system/user/index.vue"
click node_logservice "https://github.com/c-h-i-m-o/dna/blob/master/DNA-system/src/main/java/dna/dnasystem/log/service/OperationLogService.java"
click node_supportservice "https://github.com/c-h-i-m-o/dna/blob/master/DNA-system/src/main/java/dna/dnasystem/support/service/SupportMessageService.java"
click node_dictionaryui "https://github.com/c-h-i-m-o/dna/tree/master/DNA-ui/src/views/system/rule"
click node_casecontroller "https://github.com/c-h-i-m-o/dna/blob/master/DNA-web/src/main/java/dna/dnaweb/caseType/controller/CaseTypeController.java"
click node_casetype "https://github.com/c-h-i-m-o/dna/blob/master/DNA-business/src/main/java/dna/dnabusiness/caseType/service/CaseTypeService.java"
click node_officeunit "https://github.com/c-h-i-m-o/dna/blob/master/DNA-business/src/main/java/dna/dnabusiness/officeUnit/service/OfficeUnitService.java"
click node_refdata "https://github.com/c-h-i-m-o/dna/blob/master/DNA-business/src/main/java/dna/dnabusiness/reference/service/ReferenceDataService.java"
click node_numberui "https://github.com/c-h-i-m-o/dna/blob/master/DNA-ui/src/views/system/rule/numberGenerator/index.vue"
click node_numbercontroller "https://github.com/c-h-i-m-o/dna/tree/master/DNA-web/src/main/java/dna/dnaweb/number"
click node_numberservice "https://github.com/c-h-i-m-o/dna/blob/master/DNA-business/src/main/java/dna/dnabusiness/number/service/DnaNumberRuleService.java"
click node_backupui "https://github.com/c-h-i-m-o/dna/tree/master/DNA-ui/src/views/system/database"
click node_backupapi "https://github.com/c-h-i-m-o/dna/blob/master/DNA-ui/src/api/backup.ts"
click node_backupcontroller "https://github.com/c-h-i-m-o/dna/blob/master/DNA-web/src/main/java/dna/dnaweb/backup/controller/BackupController.java"
click node_restore "https://github.com/c-h-i-m-o/dna/blob/master/DNA-business/src/main/java/dna/dnabusiness/backup/service/DatabaseRestoreService.java"
click node_backups "https://github.com/c-h-i-m-o/dna/blob/master/DNA-business/src/main/java/dna/dnabusiness/backup/service/BackupService.java"
click node_archive "https://github.com/c-h-i-m-o/dna/blob/master/DNA-business/src/main/java/dna/dnabusiness/backup/service/BackupArchiveService.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_sampleui,node_sampleapi,node_statsui,node_statsapi,node_loginui,node_authapi,node_userui,node_dictionaryui,node_numberui,node_backupui,node_backupapi toneBlue
class node_samplehttp,node_statscontroller,node_authcontroller,node_casecontroller,node_numbercontroller,node_backupcontroller,node_mysql toneAmber
class node_authservice,node_jwt,node_users,node_logservice,node_supportservice toneMint
class node_samplelogic,node_statsservice,node_statsmapper toneRose
class node_casetype,node_officeunit,node_refdata,node_numberservice,node_staff toneIndigo
class node_restore,node_backups,node_archive toneTeal
```

## Components

### 用户界面

- [样本录入查询](https://github.com/c-h-i-m-o/dna/tree/master/DNA-ui/src/views/sampleManagement): `DNA-ui/src/views/sampleManagement`
- [样本 API](https://github.com/c-h-i-m-o/dna/blob/master/DNA-ui/src/api/sampleManagement.ts): `DNA-ui/src/api/sampleManagement.ts`
- [统计页面](https://github.com/c-h-i-m-o/dna/tree/master/DNA-ui/src/views/statistics): `DNA-ui/src/views/statistics`
- [统计 API](https://github.com/c-h-i-m-o/dna/blob/master/DNA-ui/src/api/statistics.ts): `DNA-ui/src/api/statistics.ts`
- [登录界面](https://github.com/c-h-i-m-o/dna/blob/master/DNA-ui/src/views/auth/login/index.vue): `DNA-ui/src/views/auth/login/index.vue`
- [认证 API](https://github.com/c-h-i-m-o/dna/blob/master/DNA-ui/src/api/auth.ts): `DNA-ui/src/api/auth.ts`
- [用户管理页](https://github.com/c-h-i-m-o/dna/blob/master/DNA-ui/src/views/system/user/index.vue): `DNA-ui/src/views/system/user/index.vue`
- [字典维护](https://github.com/c-h-i-m-o/dna/tree/master/DNA-ui/src/views/system/rule): `DNA-ui/src/views/system/rule`
- [编号规则页面](https://github.com/c-h-i-m-o/dna/blob/master/DNA-ui/src/views/system/rule/numberGenerator/index.vue): `DNA-ui/src/views/system/rule/numberGenerator/index.vue`
- [备份恢复页面](https://github.com/c-h-i-m-o/dna/tree/master/DNA-ui/src/views/system/database): `DNA-ui/src/views/system/database`
- [备份 API](https://github.com/c-h-i-m-o/dna/blob/master/DNA-ui/src/api/backup.ts): `DNA-ui/src/api/backup.ts`

### HTTP 接口

- **样本接口**
- **统计接口**
- [认证接口](https://github.com/c-h-i-m-o/dna/blob/master/DNA-web/src/main/java/dna/dnaweb/auth/controller/AuthController.java): `DNA-web/src/main/java/dna/dnaweb/auth/controller/AuthController.java`
- [案件类别接口](https://github.com/c-h-i-m-o/dna/blob/master/DNA-web/src/main/java/dna/dnaweb/caseType/controller/CaseTypeController.java): `DNA-web/src/main/java/dna/dnaweb/caseType/controller/CaseTypeController.java`
- [编号规则接口](https://github.com/c-h-i-m-o/dna/tree/master/DNA-web/src/main/java/dna/dnaweb/number): `DNA-web/src/main/java/dna/dnaweb/number`
- [备份接口](https://github.com/c-h-i-m-o/dna/blob/master/DNA-web/src/main/java/dna/dnaweb/backup/controller/BackupController.java): `DNA-web/src/main/java/dna/dnaweb/backup/controller/BackupController.java`

### 身份与管理

- [认证服务](https://github.com/c-h-i-m-o/dna/blob/master/DNA-system/src/main/java/dna/dnasystem/auth/service/AuthenticationService.java): `DNA-system/src/main/java/dna/dnasystem/auth/service/AuthenticationService.java`
- [JWT 令牌](https://github.com/c-h-i-m-o/dna/blob/master/DNA-system/src/main/java/dna/dnasystem/auth/security/JwtTokenService.java): `DNA-system/src/main/java/dna/dnasystem/auth/security/JwtTokenService.java`
- [用户管理](https://github.com/c-h-i-m-o/dna/blob/master/DNA-system/src/main/java/dna/dnasystem/user/service/UserService.java): `DNA-system/src/main/java/dna/dnasystem/user/service/UserService.java`
- [操作日志](https://github.com/c-h-i-m-o/dna/blob/master/DNA-system/src/main/java/dna/dnasystem/log/service/OperationLogService.java): `DNA-system/src/main/java/dna/dnasystem/log/service/OperationLogService.java`
- [管理员消息](https://github.com/c-h-i-m-o/dna/blob/master/DNA-system/src/main/java/dna/dnasystem/support/service/SupportMessageService.java): `DNA-system/src/main/java/dna/dnasystem/support/service/SupportMessageService.java`

### 样本与分析

- **样本处理**
- [统计聚合](https://github.com/c-h-i-m-o/dna/blob/master/DNA-business/src/main/java/dna/dnabusiness/statistics/service/SampleStatisticsService.java): `DNA-business/src/main/java/dna/dnabusiness/statistics/service/SampleStatisticsService.java`
- [统计查询](https://github.com/c-h-i-m-o/dna/blob/master/DNA-business/src/main/java/dna/dnabusiness/statistics/mapper/SampleStatisticsMapper.java): `DNA-business/src/main/java/dna/dnabusiness/statistics/mapper/SampleStatisticsMapper.java`

### 规则字典

- [案件类别服务](https://github.com/c-h-i-m-o/dna/blob/master/DNA-business/src/main/java/dna/dnabusiness/caseType/service/CaseTypeService.java): `DNA-business/src/main/java/dna/dnabusiness/caseType/service/CaseTypeService.java`
- [办案单位服务](https://github.com/c-h-i-m-o/dna/blob/master/DNA-business/src/main/java/dna/dnabusiness/officeUnit/service/OfficeUnitService.java): `DNA-business/src/main/java/dna/dnabusiness/officeUnit/service/OfficeUnitService.java`
- [参考数据快照](https://github.com/c-h-i-m-o/dna/blob/master/DNA-business/src/main/java/dna/dnabusiness/reference/service/ReferenceDataService.java): `DNA-business/src/main/java/dna/dnabusiness/reference/service/ReferenceDataService.java`
- [编号规则服务](https://github.com/c-h-i-m-o/dna/blob/master/DNA-business/src/main/java/dna/dnabusiness/number/service/DnaNumberRuleService.java): `DNA-business/src/main/java/dna/dnabusiness/number/service/DnaNumberRuleService.java`

### 数据库运维

- [数据库恢复](https://github.com/c-h-i-m-o/dna/blob/master/DNA-business/src/main/java/dna/dnabusiness/backup/service/DatabaseRestoreService.java): `DNA-business/src/main/java/dna/dnabusiness/backup/service/DatabaseRestoreService.java`
- [备份与计划](https://github.com/c-h-i-m-o/dna/blob/master/DNA-business/src/main/java/dna/dnabusiness/backup/service/BackupService.java): `DNA-business/src/main/java/dna/dnabusiness/backup/service/BackupService.java`
- [备份归档](https://github.com/c-h-i-m-o/dna/blob/master/DNA-business/src/main/java/dna/dnabusiness/backup/service/BackupArchiveService.java): `DNA-business/src/main/java/dna/dnabusiness/backup/service/BackupArchiveService.java`

### Other components

- **工作人员/管理员**
- **MySQL 数据库**

## Connections

- 工作人员/管理员 → 样本录入查询: 录入查询
- 样本录入查询 → 样本 API: 请求
- 样本 API → 样本接口: 调用
- 样本接口 → 样本处理: 处理
- 样本处理 → MySQL 数据库: 读写
- 工作人员/管理员 → 统计页面: 查看统计
- 统计页面 → 统计 API: 筛选请求
- 统计 API → 统计接口: 调用
- 统计接口 → 统计聚合: 调用
- 统计聚合 → 统计查询: 聚合查询
- 统计查询 → MySQL 数据库: 读取
- 工作人员/管理员 → 登录界面: 登录
- 登录界面 → 认证 API: 认证请求
- 认证 API → 认证接口: 调用
- 认证接口 → 认证服务: 调用
- 认证服务 → JWT 令牌: 签发校验
- 认证服务 → 用户管理: 读取用户
- 认证服务 → MySQL 数据库: 刷新会话
- 工作人员/管理员 → 用户管理页: 管理用户
- 用户管理页 → 用户管理: 用户操作
- 用户管理 → MySQL 数据库: 读写
- 操作日志 → MySQL 数据库: 写入查询
- 管理员消息 → MySQL 数据库: 消息与用户数据
- 工作人员/管理员 → 字典维护: 维护字典
- 字典维护 → 案件类别接口: 请求
- 案件类别接口 → 案件类别服务: 调用
- 案件类别服务 → MySQL 数据库: 读写
- 办案单位服务 → MySQL 数据库: 读写并检查引用
- 参考数据快照 → MySQL 数据库: 读取字典
- 工作人员/管理员 → 编号规则页面: 管理编号规则
- 编号规则页面 → 编号规则接口: 请求
- 编号规则接口 → 编号规则服务: 调用
- 编号规则服务 → MySQL 数据库: 规则与序列数据
- 工作人员/管理员 → 备份恢复页面: 管理备份
- 备份恢复页面 → 备份 API: 请求
- 备份 API → 备份接口: 调用
- 备份接口 → 数据库恢复: 恢复请求
- 备份接口 → 备份与计划: 备份计划
- 数据库恢复 → 备份与计划: 安全备份
- 数据库恢复 → 备份归档: 读取归档
- 数据库恢复 → MySQL 数据库: 恢复数据
- 备份与计划 → 备份归档: 生成归档
- 备份与计划 → MySQL 数据库: 任务记录
