Weather data management system -- a multi-module Maven project with a Spring Boot backend and Vue 3 frontend for managing meteorological monitoring data from weather stations.
- **No emoji**: Avoid using emoji in code (including variable names, comments, commit messages) and in response messages. Use plain text instead.
- **Keep CLAUDE.md files current**: Any operation that adds, deletes, or modifies files affecting project structure (new modules, new packages, renamed components, dependency changes, config changes, schema changes, etc.) must update the relevant CLAUDE.md file(s) -- top-level for cross-cutting changes, module-level for module-specific changes.
Each module has its own `CLAUDE.md` with module-specific architecture and conventions. When working in a module, read that module's CLAUDE.md for context.
Main entry: `system-admin/src/main/java/com/weather/AdminApplication.java`. Default account: `admin` / `admin`.
Backend is served at `http://localhost:8080/system-admin`. API docs at `http://localhost:8080/system-admin/doc.html`. Druid monitoring at `http://localhost:8080/system-admin/druid/`.
The Vite dev server proxies `/system-admin` requests to the backend. Edit `weather-data-ui/.env.development` and set `VITE_APP_API` to change the backend URL.
- **Dev profile** (`application-dev.yml`): local MySQL (weather_data_system), Redis 127.0.0.1:6379
- **Test profile** (`application-test.yml`): test server MySQL (192.168.2.186), Redis 192.168.2.186:6379
- **Prod profile** (`application-prod.yml`): production configuration with external DB/Redis
- **project-options.redis.open**: toggles Redis caching globally (set via sys_params table)
- **Tests are skipped by default**: `maven-surefire-plugin` has `<skipTests>true</skipTests>`. Tests use JUnit 4 with `SpringRunner` (`@SpringBootTest`). Override with `-DskipTests=false` or run individual tests via `-Dtest=`.
- **JDBC URL** uses `rewriteBatchedStatements=true` for MySQL batch INSERT optimization.