先从原始需求出发,不默认用户已经完全想清楚目标、约束和实现路径。
只有当需求存在关键歧义,且不同理解会导致明显不同方案或较高错误成本时,才先停下来澄清;否则基于最合理解释继续,并明确说明假设。
当需要在本仓库内给出修改、排查或重构方案时,遵循以下规则。
这是一个 Spring Boot 3.5 + Java 17 + MyBatis-Plus + WAR 的 WCS 项目,前端不是独立 Node 工程,而是 src/main/webapp 下的页面与静态脚本直出。
src/main/java/com/zy/Boot.javacom.zy:wcs:1.0.0warwcs9090/wcs(由 server.servlet.context-path: /@pom.build.finalName@ 解析而来)src/main/java/com/zy/asrscontroller、service、mapper、entity、domain、task、planner、ws。src/main/java/com/zy/core
dispatch、network、thread、task、move、plugin、trace、properties。src/main/java/com/zy/system
src/main/java/com/zy/ai
/ai/** 页面或接口、Spring AI、MCP Server 时优先看这里。src/main/java/com/zy/common
src/main/java/com/core
src/main/webapp/views/**src/main/webapp/static/js/**src/main/webapp/components/**src/main/webapp/static/css/**src/main/resources/mapper/*.xmlsrc/main/resources/sql/*.sqlsrc/main/resources/i18n/**src/main/resources/templates/**src/main/resources/map/**前端结构以“页面目录”和“同名脚本目录”配对为主,例如:
views/basStation/** 对应 static/js/basStation/**views/watch/** 对应 static/js/watch/**views/ai/** 对应 AI 相关页面但监控与可视化页面还会额外依赖:
src/main/webapp/components/MapCanvas.jssrc/main/webapp/components/WatchCrnCard.jssrc/main/webapp/components/WatchDualCrnCard.jssrc/main/webapp/components/WatchRgvCard.js优先按这条链路检查:
Controller -> Service -> ServiceImpl -> Mapper.java -> mapper/*.xml -> 实体/DTO/Param
注意:
views/** 与 static/js/**。优先检查:
src/main/resources/sql/*.sqlsrc/main/java/com/zy/system/**src/main/java/com/zy/asrs/**src/main/java/com/zy/ai/**规则:
优先检查:
src/main/java/com/zy/core/thread/**src/main/java/com/zy/core/dispatch/**src/main/java/com/zy/core/task/**src/main/java/com/zy/core/network/**src/main/java/com/zy/asrs/task/**src/main/java/com/zy/core/plugin/**规则:
mainProcessPlugin 配置及相关插件实现。优先检查:
src/main/webapp/views/watch/**src/main/webapp/views/locMap/locMap.htmlsrc/main/webapp/components/MapCanvas.jssrc/main/java/com/zy/asrs/ws/**规则:
/wcs。console.html、console_pixijs.html、locMap.html 和组件文件。优先检查:
src/main/java/com/zy/ai/controller/**src/main/java/com/zy/ai/service/**src/main/java/com/zy/ai/config/**src/main/java/com/zy/ai/mcp/**src/main/webapp/views/ai/**src/main/resources/sql/*ai*.sql规则:
application.yml。Vue 2 风格脚本直写 的方式,不额外引入前端构建体系。Agent 生成的代码必须易于人类阅读和维护,禁止以下写法:
i/j 除外)、无意义缩写(mgr、hdl、proc 除非是项目既有约定)。a.getB().getC().getD().do()),应拆成中间变量并命名。// 获取用户名称 放在 getUserName() 上方)。e.printStackTrace() 或吞掉异常后继续跑。开始实现前至少确认以下几点:
asrs、core、system、ai、common、com/core如果这些问题里有任何一项答案是“是”,实现时必须把相关链路一并纳入。
优先用快速定位,不做无边界扫读:
rg -n "关键字" src/main/java src/main/resources src/main/webapp
rg --files src/main/java/com/zy | rg "Controller|Service|Mapper|Task|Thread"
rg -n "接口路径|字段名|配置项名" src/main/java src/main/webapp src/main/resources
排查问题时优先找:
按成本从低到高执行,无法执行时要明确说明原因。
mvn -q -DskipTests compile
若改动附近已有测试,优先跑定向测试,例如:
mvn -q -Dtest=NavigateUtilsTest test
mvn -q -Dtest=WrkAnalysisServiceImplTest test
mvn test
mvn -q -DskipTests spring-boot:run
重点确认:
9090/wcs如果改了页面、脚本或 WebSocket,至少说明验证了哪些页面,例如:
/wcs/views/index.html/wcs/views/watch/console.html/wcs/views/locMap/locMap.html/wcs/views/ai/*.html/wcs。完成任务后,结果说明应尽量包含:
如果是排查类任务,优先说明根因、证据和修复点;如果尚未完成,明确阻塞位置,不要把推测当结论。