--- name: zy-wcs-dev description: 维护和开发 WCS(Spring Boot + MyBatis-Plus + Layui/Vue)项目的执行型技能。处理后端接口/服务/Mapper 与 XML 联动修改、设备线程与调度逻辑排查、前端页面与静态 JS 改动、以及本地构建与回归验证。用户提到 WCS、`com/zy` 包结构、`application.yml`、`mapper/*.xml`、`src/main/webapp/views`、设备控制线程(Crn/Rgv/Station/DualCrn)或要求“按当前项目方式改代码/排查问题”时使用。 --- # zy-wcs-dev ## Overview 在该仓库内执行改动时,优先最小变更、快速验证、明确影响范围。始终把 Java 代码、MyBatis XML、前端页面与对应静态脚本视为一个联动单元。 ## Project Quick Map - 后端入口:`src/main/java/com/zy/Boot.java` - 核心分层: - `core`:设备编排、连接驱动、线程与协议 - `asrs`:业务域、任务调度、接口控制器 - `system`:用户权限、日志、系统配置 - `common`:公共 web 与工具类 - 持久层: - Java Mapper:`src/main/java/com/zy/**/mapper/*Mapper.java` - SQL XML:`src/main/resources/mapper/*.xml` - 前端: - 页面:`src/main/webapp/views/**` - 脚本:`src/main/webapp/static/js/**` - 样式:`src/main/webapp/static/css/**` - 配置:`src/main/resources/application.yml` - 构建产物:`target/wcs.war` ## Workflow ### 1. Confirm Scope - 明确改动属于哪一层:后端接口、业务服务、设备线程、数据库映射、前端页面。 - 明确是否涉及联动文件:`Controller -> Service -> Mapper.java -> Mapper.xml -> view/js`。 - 明确是否需要兼容现有上下文路径:`/@pom.build.finalName@`(实际为 `/wcs`)。 ### 2. Locate Code Precisely - 用 `rg` 快速定位,避免盲目全量阅读: ```bash rg -n "关键字" src/main/java src/main/resources src/main/webapp rg --files src/main/java/com/zy | rg "Controller|Service|Mapper" ``` - 优先读取与改动直接相关的最小文件集,再扩展上下游依赖。 ### 3. Implement Minimal Safe Change #### 后端改动 - 控制器仅做参数与响应组织,核心逻辑放在 `Service`/`ServiceImpl`。 - 修改实体/字段时同步检查: - 实体类 - Mapper 接口 - 对应 XML(`resultMap`、`select/insert/update`) - 设备相关逻辑改动时,优先检查: - `core/thread/**` - `core/network/**` - `core/task/**` - `asrs/task/**` #### 前端改动 - 页面通常在 `views//`,其逻辑通常在 `static/js//`。 - 改动页面字段时同步检查后端接口字段名与 JSON 结构。 - 保持当前 Layui/Vue 代码风格,不引入重型新框架。 ### 4. Validate Locally 按成本从低到高执行: 1. 编译校验: ```bash mvn -q -DskipTests compile ``` 2. 单测(若有): ```bash mvn test ``` 3. 打包: ```bash mvn clean package -DskipTests ``` 4. 本地启动验证: ```bash mvn spring-boot:run ``` 启动后重点检查: - 端口是否为 `9090` - 上下文路径是否为 `/wcs` - 日志目录是否可写:`./stock/out/wcs/logs` ### 5. High-Risk Checklist - 不提交真实密钥/密码。`application.yml` 出现敏感值时,输出中使用脱敏占位。 - 修改 Mapper XML 后,确认 SQL 字段与实体字段映射一致,避免运行时空字段或类型错误。 - 修改调度器或线程逻辑时,确认不存在明显阻塞、死循环或共享状态竞争。 - 修改 API 时,确认前端调用路径包含上下文路径前缀(`/wcs`)。 ## Response Template 执行任务后,按以下结构给出结果: 1. 先给结论:完成了什么、影响哪些模块。 2. 列出修改文件清单。 3. 说明验证命令与结果(成功/失败及原因)。 4. 若有未完成项,明确阻塞点和下一步。 ## Do and Don't - Do:优先最小改动、可回滚、可验证。 - Do:新增逻辑时保持命名和包结构一致(Controller/Service/Mapper)。 - Don't:未经要求不改动无关文件或进行大规模重构。 - Don't:未经确认不删除或替换现有设备编排主流程。