- 新增 CLAUDE.md 项目架构和开发指导文档 - 添加 Gitea本地协作开发服务器配置指南 - 完善检测模块架构分析文档 - 增加报告生成和Word文档处理工具指南 - 添加动态表格和结果服务测试用例 - 更新应用配置和VS Code开发环境设置 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
6.9 KiB
6.9 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
项目概述
CN_Gather是灿能公司的融合工具项目体,专门用于电能质量设备检测的企业级应用系统。采用Spring Boot多模块Maven架构,以detection模块为核心的检测业务系统。
项目架构
核心模块结构
- entrance: 应用入口模块,端口18092,整合所有其他模块
- detection: 核心检测业务模块,电能质量设备检测的完整业务流程
- storage: 数据存储模块,处理检测数据存储和谐波数据处理
- system: 基础系统模块,提供字典管理、日志管理、配置管理等基础功能
- user: 用户管理模块,处理认证授权和权限控制
模块依赖关系
entrance (启动入口)
├── system (基础服务层)
├── user (认证授权层)
├── detection (核心业务层) → 依赖 system, storage
└── storage (数据存储层) → 依赖 system
常用开发命令
构建和打包
# 编译整个项目
mvn clean compile
# 打包所有模块
mvn clean package
# 跳过测试打包
mvn clean package -DskipTests
# 安装到本地仓库
mvn clean install
运行应用
# 运行主入口应用 (端口18092)
cd entrance
mvn spring-boot:run
# 运行事件智能模块 (独立应用)
cd event_smart
mvn spring-boot:run
测试
# 运行所有测试
mvn test
# 运行特定模块测试
cd detection
mvn test
技术栈
核心框架
- Spring Boot: 2.3.12.RELEASE
- MyBatis Plus: 数据持久层框架
- Maven: 项目构建管理
- Java: 1.8
数据库
- MySQL: 主数据库 (192.168.1.24:13306/pqs9100)
- Oracle: event_smart模块使用
- Druid: 数据库连接池
通信技术
- Netty: Socket通信 (端口61000设备, 62000源)
- WebSocket: 实时数据推送 (端口7777)
- RestTemplate: HTTP客户端通信
其他关键技术
- Apache POI + docx4j: Word文档报告生成
- FastJSON: JSON数据处理
- Spring Security + JWT: 安全认证 (event_smart模块)
- Redis: 缓存服务 (event_smart模块)
关键配置
数据库配置
- 数据库URL:
jdbc:mysql://192.168.1.24:13306/pqs9100 - MyBatis映射文件位置:
classpath*:com/njcn/**/mapping/*.xml - 主键生成策略:
assign_uuid
Socket通信配置
- 源设备Socket: 127.0.0.1:62000
- 被检设备Socket: 127.0.0.1:61000
- WebSocket端口: 7777
文件路径配置
- 日志目录:
D:\logs - 报告模板目录:
D:\template - 报告输出目录:
D:\report - Word模板位置:
entrance/src/main/resources/model/
detection模块核心架构
子模块功能划分
- device: 设备管理 - PqDev(被检设备)、PqStandardDev(标准设备)、PqDevSub(设备子表)
- plan: 检测计划管理 - AdPlan(检测计划)、AdPlanSource(计划源)、AdPlanStandardDev(计划标准设备)
- script: 检测脚本管理 - PqScript(检测脚本)、PqScriptDtls(脚本详情)、PqScriptCheckData(检测数据)
- source: 程控源管理 - PqSource(程控源设备)
- err: 误差体系管理 - PqErrSys(误差体系)、PqErrSysDtls(误差详情)
- report: 报告生成管理 - PqReport(报告模板),支持Word模板处理
- monitor: 监测管理 - PqMonitor(监测点管理)
- icd: ICD路径管理 - PqIcdPath(通信配置)
- result: 结果管理 - 检测结果查询和数据展示
- type: 设备类型管理 - DevType(设备类型字典)
核心检测流程 (PreDetectionController)
// 主要检测接口
@PostMapping("/startPreTest") // 检测通用入口
@PostMapping("/ytxCheckSimulate") // 源通讯校验
@PostMapping("/startSimulateTest") // 启动程控源检测
@PostMapping("/coefficientCheck") // 系数校验
@PostMapping("/startContrastTest") // 比对检测
@PostMapping("/devPhaseSequence") // 设备相序检测
Socket通信架构
- SocketManager: Socket会话管理,存储userId与Channel映射
- WebServiceManager: WebSocket服务管理,实时数据推送
- 通信处理器:
- SocketSourceResponseService: 程控源响应处理
- SocketDevResponseService: 设备响应处理
- SocketContrastResponseService: 比对检测响应处理
- 通信工具:
- CnSocketUtil: Socket连接工具
- FormalTestManager: 正式检测管理
- XiNumberManager: 系数管理
暂态检测参数
- 暂态前时间: 2秒
- 写入时间: 0.001秒
- 写出时间: 0.001秒
- 暂态后时间: 3秒
闪变参数
- 波形类型: CPM/SQU
- 占空比: 50%
开发注意事项
detection模块包结构
detection/
├── controller/ # 控制层 - PreDetectionController
├── handler/ # Socket响应处理器
├── service/ # 业务逻辑层
│ └── impl/ # 服务实现
├── util/ # 工具类层
│ ├── business/ # 业务工具 - DetectionCommunicateUtil
│ └── socket/ # Socket通信工具
├── pojo/ # 数据模型层
│ ├── constant/ # 常量 - DetectionCommunicateConstant
│ ├── dto/ # 数据传输对象
│ ├── enums/ # 枚举 - DetectionCodeEnum等
│ ├── param/ # 请求参数
│ ├── po/ # 持久化对象
│ └── vo/ # 视图对象 - DetectionData等
└── [子模块]/ # device、plan、script等子模块
├── controller/ # 子模块控制器
├── service/ # 子模块服务
├── mapper/ # 数据访问层
│ └── mapping/ # MyBatis映射文件
└── pojo/ # 子模块数据对象
检测数据处理机制
- 任意值: 取第一个满足条件的数据
- 部分值: 去除最大最小值后取值
- 所有值: 要求所有数据都合格
- CP95值: 取95%分位数
- 平均值: 取算术平均值
检测项目类型
- 频率: FREQ
- 电压: V_RELATIVE(相对值)/V_ABSOLUTELY(绝对值)
- 电流: I_RELATIVE/I_ABSOLUTELY
- 谐波: HV/HI (2-50次谐波)
- 间谐波: HSV/HSI
- 不平衡度: IMBV/IMBA (三相不平衡)
- 闪变: F (PST)
- 暂态: VOLTAGE_MAG/VOLTAGE_DUR
检测模式
- 数字式检测: 数字接口通信
- 模拟式检测: 模拟信号输出
- 比对式检测: 多台设备比对
报告生成机制
- 模板处理: 使用POI和docx4j处理Word文档
- 模板位置:
entrance/src/main/resources/model/ - 支持模板: NPQS-580、PQV-700、njcn_882系列等
- 功能: 书签替换、表格填充、文档合并
- 云端上传: 支持FTP批量上传报告
依赖组件
项目使用灿能公司自研组件:
njcn-common: 通用工具包mybatis-plus: MyBatis增强包spingboot2.3.12: Spring Boot定制包RestTemplate-plugin: HTTP客户端插件