# cq-panda/vue.netcore architecture

> Architecture diagram of the GitHub repository cq-panda/vue.netcore, 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/cq-panda/vue.netcore
- Repository: https://github.com/cq-panda/vue.netcore

## Overview

This repository is the SQLSugar-backed .NET API layer of VOL, a Vue/.NET rapid-development framework. The principal backend path is an API request through the shared controller to application services, which provide generated-style CRUD, paging, import/export, and search behavior over domain data. Other major capabilities include configurable approval workflows, dictionary-backed form data, and MES business entities; metadata services support table configuration. Workflow and dictionary details are based on sampled excerpts, while broader capabilities such as code generation and frontend binding are documented in the README but their full implementations are not present in the supplied tree.

Main entry points: [`vol.api.sqlsugar/VOL.Core/DbContext/DbContext.cs`](https://github.com/cq-panda/vue.netcore/blob/master/vol.api.sqlsugar/VOL.Core/DbContext/DbContext.cs) (SQLSugar context), [`vol.api.sqlsugar/VOL.Core/BaseProvider/ApplicationServiceBase.cs`](https://github.com/cq-panda/vue.netcore/blob/master/vol.api.sqlsugar/VOL.Core/BaseProvider/ApplicationServiceBase.cs) (Application services), [`vol.api.sqlsugar/VOL.Core/WorkFlow/WorkFlowManager.cs`](https://github.com/cq-panda/vue.netcore/blob/master/vol.api.sqlsugar/VOL.Core/WorkFlow/WorkFlowManager.cs) (Workflow manager), [`vol.api.sqlsugar/VOL.Core/Infrastructure/DictionaryManager.cs`](https://github.com/cq-panda/vue.netcore/blob/master/vol.api.sqlsugar/VOL.Core/Infrastructure/DictionaryManager.cs) (Dictionary manager)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["API and services"]
  node_api_controller["Base API controller"]
  node_app_service["Application services"]
  node_search["Dynamic search"]
  node_table_service["Table metadata service"]
  node_table_repo["Table metadata repository"]
end

subgraph group_data["Persistence and domain"]
  node_entities["Application entities<br/>[DomainModels]"]
  node_mes_entities["MES entities<br/>[mes]"]
  node_db_provider["Database provider"]
  node_db_context["SQLSugar context<br/>[DbContext.cs]"]
  node_database[("Configured database")]
end

subgraph group_workflow["Approval workflows"]
  node_workflow_controller["Workflow API"]
  node_workflow_manager["Workflow manager<br/>[WorkFlowManager.cs]"]
  node_workflow_entities["Workflow records<br/>[flow]"]
end

subgraph group_support["Shared capabilities"]
  node_dictionary["Dictionary manager"]
  node_cache["Cache service<br/>[ICacheService.cs]"]
  node_redis["Redis cache"]
  node_validator["Request validation"]
end

node_client(("API client"))

node_client -->|"sends request"| node_api_controller
node_api_controller -->|"invokes service"| node_app_service
node_app_service -->|"uses search"| node_search
node_app_service -->|"accesses data"| node_db_context
node_db_provider -->|"provides context"| node_db_context
node_db_context -->|"queries and saves"| node_database
node_table_service -->|"uses repository"| node_table_repo
node_table_repo -->|"accesses data"| node_db_context
node_workflow_controller -.->|"requests workflow data"| node_workflow_manager
node_workflow_manager -->|"uses database provider"| node_db_provider
node_workflow_manager -->|"manages records"| node_workflow_entities
node_workflow_controller -->|"loads audit values"| node_dictionary
node_dictionary -->|"loads dictionary data"| node_db_provider
node_dictionary -->|"checks version"| node_cache
node_cache -.->|"implemented by"| node_redis
node_validator -.->|"validates requests"| node_api_controller

click node_api_controller "https://github.com/cq-panda/vue.netcore/blob/master/vol.api.sqlsugar/VOL.Core/Controllers/Basic/ApiBaseController.cs"
click node_app_service "https://github.com/cq-panda/vue.netcore/blob/master/vol.api.sqlsugar/VOL.Core/BaseProvider/ApplicationServiceBase.cs"
click node_search "https://github.com/cq-panda/vue.netcore/blob/master/vol.api.sqlsugar/VOL.Core/BaseProvider/ApplicationServiceBaseSearchExtensions.cs"
click node_entities "https://github.com/cq-panda/vue.netcore/tree/master/vol.api.sqlsugar/VOL.Entity/DomainModels"
click node_mes_entities "https://github.com/cq-panda/vue.netcore/tree/master/vol.api.sqlsugar/VOL.Entity/DomainModels/mes"
click node_db_provider "https://github.com/cq-panda/vue.netcore/blob/master/vol.api.sqlsugar/VOL.Core/DBManager/DBServerProvider.cs"
click node_db_context "https://github.com/cq-panda/vue.netcore/blob/master/vol.api.sqlsugar/VOL.Core/DbContext/DbContext.cs"
click node_workflow_controller "https://github.com/cq-panda/vue.netcore/blob/master/vol.api/VOL.WebApi/Controllers/Sys/Partial/Sys_WorkFlowController.cs"
click node_workflow_manager "https://github.com/cq-panda/vue.netcore/blob/master/vol.api.sqlsugar/VOL.Core/WorkFlow/WorkFlowManager.cs"
click node_workflow_entities "https://github.com/cq-panda/vue.netcore/tree/master/vol.api.sqlsugar/VOL.Entity/DomainModels/flow"
click node_dictionary "https://github.com/cq-panda/vue.netcore/blob/master/vol.api.sqlsugar/VOL.Core/Infrastructure/DictionaryManager.cs"
click node_cache "https://github.com/cq-panda/vue.netcore/blob/master/vol.api.sqlsugar/VOL.Core/CacheManager/IService/ICacheService.cs"
click node_redis "https://github.com/cq-panda/vue.netcore/blob/master/vol.api.sqlsugar/VOL.Core/CacheManager/Service/RedisCacheService.cs"
click node_validator "https://github.com/cq-panda/vue.netcore/blob/master/vol.api.sqlsugar/VOL.Core/ObjectActionValidator/Filters/ObjectModelValidatorFilter.cs"

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_api_controller,node_app_service,node_search,node_table_service,node_table_repo,node_client toneBlue
class node_entities,node_mes_entities,node_db_provider,node_db_context,node_database toneAmber
class node_workflow_controller,node_workflow_manager,node_workflow_entities toneMint
class node_dictionary,node_cache,node_redis,node_validator toneRose
```

## Components

### API and services

- [Base API controller](https://github.com/cq-panda/vue.netcore/blob/master/vol.api.sqlsugar/VOL.Core/Controllers/Basic/ApiBaseController.cs): `vol.api.sqlsugar/VOL.Core/Controllers/Basic/ApiBaseController.cs`
- [Application services](https://github.com/cq-panda/vue.netcore/blob/master/vol.api.sqlsugar/VOL.Core/BaseProvider/ApplicationServiceBase.cs): `vol.api.sqlsugar/VOL.Core/BaseProvider/ApplicationServiceBase.cs`
- [Dynamic search](https://github.com/cq-panda/vue.netcore/blob/master/vol.api.sqlsugar/VOL.Core/BaseProvider/ApplicationServiceBaseSearchExtensions.cs): `vol.api.sqlsugar/VOL.Core/BaseProvider/ApplicationServiceBaseSearchExtensions.cs`
- **Table metadata service**
- **Table metadata repository**

### Persistence and domain

- [Application entities](https://github.com/cq-panda/vue.netcore/tree/master/vol.api.sqlsugar/VOL.Entity/DomainModels): `vol.api.sqlsugar/VOL.Entity/DomainModels`
- [MES entities](https://github.com/cq-panda/vue.netcore/tree/master/vol.api.sqlsugar/VOL.Entity/DomainModels/mes): `vol.api.sqlsugar/VOL.Entity/DomainModels/mes`
- [Database provider](https://github.com/cq-panda/vue.netcore/blob/master/vol.api.sqlsugar/VOL.Core/DBManager/DBServerProvider.cs): `vol.api.sqlsugar/VOL.Core/DBManager/DBServerProvider.cs`
- [SQLSugar context](https://github.com/cq-panda/vue.netcore/blob/master/vol.api.sqlsugar/VOL.Core/DbContext/DbContext.cs): `vol.api.sqlsugar/VOL.Core/DbContext/DbContext.cs`
- **Configured database**

### Approval workflows

- [Workflow API](https://github.com/cq-panda/vue.netcore/blob/master/vol.api/VOL.WebApi/Controllers/Sys/Partial/Sys_WorkFlowController.cs): `vol.api/VOL.WebApi/Controllers/Sys/Partial/Sys_WorkFlowController.cs`
- [Workflow manager](https://github.com/cq-panda/vue.netcore/blob/master/vol.api.sqlsugar/VOL.Core/WorkFlow/WorkFlowManager.cs): `vol.api.sqlsugar/VOL.Core/WorkFlow/WorkFlowManager.cs`
- [Workflow records](https://github.com/cq-panda/vue.netcore/tree/master/vol.api.sqlsugar/VOL.Entity/DomainModels/flow): `vol.api.sqlsugar/VOL.Entity/DomainModels/flow`

### Shared capabilities

- [Dictionary manager](https://github.com/cq-panda/vue.netcore/blob/master/vol.api.sqlsugar/VOL.Core/Infrastructure/DictionaryManager.cs): `vol.api.sqlsugar/VOL.Core/Infrastructure/DictionaryManager.cs`
- [Cache service](https://github.com/cq-panda/vue.netcore/blob/master/vol.api.sqlsugar/VOL.Core/CacheManager/IService/ICacheService.cs): `vol.api.sqlsugar/VOL.Core/CacheManager/IService/ICacheService.cs`
- [Redis cache](https://github.com/cq-panda/vue.netcore/blob/master/vol.api.sqlsugar/VOL.Core/CacheManager/Service/RedisCacheService.cs): `vol.api.sqlsugar/VOL.Core/CacheManager/Service/RedisCacheService.cs`
- [Request validation](https://github.com/cq-panda/vue.netcore/blob/master/vol.api.sqlsugar/VOL.Core/ObjectActionValidator/Filters/ObjectModelValidatorFilter.cs): `vol.api.sqlsugar/VOL.Core/ObjectActionValidator/Filters/ObjectModelValidatorFilter.cs`

### Other components

- **API client**

## Connections

- API client → Base API controller: sends request
- Base API controller → Application services: invokes service
- Application services → Dynamic search: uses search
- Application services → SQLSugar context: accesses data
- Database provider → SQLSugar context: provides context
- SQLSugar context → Configured database: queries and saves
- Table metadata service → Table metadata repository: uses repository
- Table metadata repository → SQLSugar context: accesses data
- Workflow API → Workflow manager: requests workflow data
- Workflow manager → Database provider: uses database provider
- Workflow manager → Workflow records: manages records
- Workflow API → Dictionary manager: loads audit values
- Dictionary manager → Database provider: loads dictionary data
- Dictionary manager → Cache service: checks version
- Cache service → Redis cache: implemented by
- Request validation → Base API controller: validates requests
