文档更新
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# Weather Data Management System
|
||||
|
||||
A full-stack meteorological data management and analysis platform built with Spring Boot 3.5 and Vue 3.
|
||||
A full-stack meteorological data management and analysis platform built with Spring Boot 3.5 and Vue 3. Supports multi-datasource environments with real-time file monitoring, statistical analysis, and role-based access control.
|
||||
|
||||
> Developer documentation: [CLAUDE.md](CLAUDE.md) | Module docs: [system-admin](system-admin/CLAUDE.md) | [system-common](system-common/CLAUDE.md) | [system-dynamic-datasource](system-dynamic-datasource/CLAUDE.md) | [weather-data-ui](weather-data-ui/CLAUDE.md)
|
||||
>
|
||||
@@ -33,18 +33,18 @@ weather-data-ui <-- independent frontend, communicates with system-admin
|
||||
|
||||
| Domain | Package | Description |
|
||||
|--------|---------|-------------|
|
||||
| Weather daily data | `modules/weather/dailydata/` | Excel batch import, CRUD, statistical summaries with Redis caching |
|
||||
| Weather daily data | `modules/weather/dailydata/` | Excel batch import with async two-pass processing, CRUD, statistical summaries with Redis caching |
|
||||
| Weather stations | `modules/weather/station/` | Station registry, dept association for data scoping |
|
||||
| File scanning | `modules/weather/filescan/` | WatchService-based directory monitoring, auto-import of meteorological files |
|
||||
| Region management | `modules/region/` | Geographic region tree (province/city/county) |
|
||||
| File scanning | `modules/weather/filescan/` | WatchService-based directory monitoring, parallel file scanning with MD5 deduplication, auto-import of meteorological files |
|
||||
| Region management | `modules/region/` | Geographic region tree (province/city/county), CSV data loading |
|
||||
| System management | `modules/sys/` | Users, roles, menus, departments, dictionaries, parameters |
|
||||
| Alerts / notifications | `modules/sys/alert/` | SSE real-time push, Spring event-driven broadcast |
|
||||
| Security | `modules/security/` | Shiro + token-based auth, OAuth2 filter, password hashing |
|
||||
| Job scheduling | `modules/job/` | Quartz dynamic job management, online start/stop |
|
||||
| Alerts / notifications | `modules/sys/alert/` | SSE real-time push, Spring event-driven broadcast, polling-based external alert collection |
|
||||
| Security | `modules/security/` | Shiro + token-based auth, OAuth2 filter, BCrypt password hashing, session persistence |
|
||||
| Job scheduling | `modules/job/` | Quartz dynamic job management, online start/stop/configure |
|
||||
| Audit logs | `modules/log/` | Operation log, login log, error log |
|
||||
| Cloud storage | `modules/oss/` | Alibaba Cloud / Qiniu / Tencent Cloud file storage |
|
||||
|
||||
`weather-data-ui` is a Vue 3 SPA that communicates with `system-admin` via REST API. It features dynamic routing (routes loaded from server menus on login), tab-based navigation, ECharts visualization, and real-time SSE alert streaming.
|
||||
`weather-data-ui` is a Vue 3 SPA that communicates with `system-admin` via REST API. It features dynamic routing (routes loaded from server menus on login), tab-based navigation, ECharts visualization, SSE real-time alert streaming, and client-side Excel/PDF export.
|
||||
|
||||
## Tech Stack
|
||||
|
||||
@@ -68,6 +68,7 @@ weather-data-ui <-- independent frontend, communicates with system-admin
|
||||
```bash
|
||||
mysql -u root -p -e "CREATE DATABASE IF NOT EXISTS weather_data_system DEFAULT CHARSET utf8mb4"
|
||||
mysql -u root -p weather_data_system < system-admin/db/weather_data_system.sql
|
||||
mysql -u root -p weather_data_system < system-admin/db/init_system_params.sql
|
||||
```
|
||||
|
||||
### 2. Configure Datasource
|
||||
@@ -123,17 +124,13 @@ Edit `weather-data-ui/.env.development` and set `VITE_APP_API` to your backend U
|
||||
4. Configure `application-prod.yml` with production DB/Redis settings
|
||||
5. Start backend: `java -jar system-admin.jar --spring.profiles.active=prod`
|
||||
|
||||
### Windows Server
|
||||
|
||||
See `deploy/` directory for one-click deployment scripts (`deploy.bat` / `deploy.ps1`). Requires Windows 10 1803+ or Windows Server 2019+, JDK 17+ pre-installed. Run as Administrator.
|
||||
|
||||
## Key Features
|
||||
|
||||
- **Weather data import**: Excel batch import with async two-pass processing, progress tracking, multi-row INSERT optimization
|
||||
- **Statistical analysis**: Same-date-across-years summarization with Redis caching, multi-dimensional queries
|
||||
- **File monitoring**: Automatic directory watching (WatchService), MD5 deduplication, file lifecycle management (receive -> display -> archive)
|
||||
- **Real-time notifications**: SSE-based alert streaming, Spring event-driven broadcast
|
||||
- **Data scoping**: Dept-level row-level security via MyBatis-Plus interceptor with `@DataFilter` annotation
|
||||
- **Dynamic datasource**: Runtime datasource switching via `@DataSource` annotation with ThreadLocal context
|
||||
- **Job scheduling**: Quartz-based dynamic job management with online start/stop/configure
|
||||
- **Cloud storage**: Alibaba Cloud OSS, Qiniu, Tencent Cloud COS integration
|
||||
- **Weather data import**: Excel batch import with async two-pass processing, real-time progress tracking, multi-row INSERT optimization, automatic station-to-department mapping
|
||||
- **Statistical analysis**: Same-date-across-years summarization with Redis caching, automatic cache-to-database fallback, multi-dimensional queries
|
||||
- **File monitoring**: WatchService-based automatic directory watching, parallel file scanning on startup, MD5 deduplication, file lifecycle management (receive -> display -> archive)
|
||||
- **Real-time notifications**: SSE-based alert streaming to frontend marquee, Spring event-driven broadcast with create/withdraw/delete lifecycle, polling-based external alert source collection
|
||||
- **Data scoping**: Department-level row-level security via MyBatis-Plus interceptor with `@DataFilter` annotation, SQL WHERE clause injection
|
||||
- **Dynamic datasource**: Runtime datasource switching via `@DataSource` annotation with ThreadLocal context propagation
|
||||
- **Job scheduling**: Quartz-based dynamic job management with online create/start/stop/pause, Cron expression editing, execution history
|
||||
- **Cloud storage**: Alibaba Cloud OSS, Qiniu, Tencent Cloud COS integration with unified upload interface
|
||||
|
||||
Reference in New Issue
Block a user