215 lines
6.9 KiB
Markdown
215 lines
6.9 KiB
Markdown
|
|
# 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客户端插件
|