# 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 ``` ## 常用开发命令 ### 构建和打包 ```bash # 编译整个项目 mvn clean compile # 打包所有模块 mvn clean package # 跳过测试打包 mvn clean package -DskipTests # 安装到本地仓库 mvn clean install ``` ### 运行应用 ```bash # 运行主入口应用 (端口18092) cd entrance mvn spring-boot:run # 运行事件智能模块 (独立应用) cd event_smart mvn spring-boot:run ``` ### 测试 ```bash # 运行所有测试 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) ```java // 主要检测接口 @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客户端插件