Repository Guidelines
Project Structure & Module Organization
- Java backend lives in
src/main/java/com/zy: core drives device orchestration, asrs holds domain logic/tasks/websockets, system manages auth/permissions/logging, and common hosts shared web/utils.
- Resources in
src/main/resources: application.yml, MyBatis-Plus XML mappers in mapper/, and SQL helpers in sql/.
- UI assets sit in
src/main/webapp with static JS/CSS/Layui/Vue and feature views grouped under views/ (e.g., views/locMast, views/user).
- Build output lands in
target/ as wcs.war; runtime logs default to stock/out/wcs/logs.
Build, Test, and Development Commands
mvn clean package -DskipTests — compile and build the WAR in target/.
mvn spring-boot:run — start the app using src/main/resources/application.yml.
mvn test — execute the test suite (add tests under src/test/java).
- Adjust DB/Redis endpoints in
application.yml or via env overrides before running locally.
Coding Style & Naming Conventions
- Java 8 with 4-space indentation; Lombok annotations already used in entities/services.
- Controllers end with
Controller, services with Service/ServiceImpl, and MyBatis mappers with Mapper plus XML in mapper/.
- Use
camelCase for fields/methods, UPPER_SNAKE_CASE for constants, and package by feature (core/asrs/system/common).
- Keep REST endpoints descriptive and consistent with the
/@pom.build.finalName@ context path.
Testing Guidelines
- Add JUnit/Spring Boot tests in
src/test/java mirroring package structure; name classes *Test.
- For data access, prefer
@SpringBootTest with test containers or stubbed beans; isolate mapper XML where possible.
- Target coverage on controller/service logic and device orchestration flows; document required external services.
Commit & Pull Request Guidelines
- Use imperative, scoped commit messages (e.g.,
core: stabilize rgv reconnect) and keep commits focused.
- PRs should describe the change, related ticket/issue, how to reproduce/verify, and note config or schema impacts.
- Include screenshots for UI updates under
src/main/webapp and list commands/tests executed (build, test, spring-boot:run).
- Avoid committing secrets; sanitize
application.yml or provide sample overrides instead.
Security & Configuration Tips
- Update database and Redis credentials in
application.yml before running; never commit real credentials.
- Logging path defaults to
./stock/out/wcs/logs; ensure the directory is writable in your environment.
- Swagger is disabled by default (
swagger.enable: false); enable only in trusted environments.