diff --git a/CLAUDE.md b/CLAUDE.md deleted file mode 100644 index d73a58bb..00000000 --- a/CLAUDE.md +++ /dev/null @@ -1,215 +0,0 @@ -# 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客户端插件 \ No newline at end of file diff --git a/Gitea本地协作开发服务器配置指南.md b/Gitea本地协作开发服务器配置指南.md deleted file mode 100644 index f9116499..00000000 --- a/Gitea本地协作开发服务器配置指南.md +++ /dev/null @@ -1,238 +0,0 @@ -# Gitea本地协作开发服务器配置指南 - -## 概述 - -本文档说明如何将本地安装的Gitea配置为团队协作开发服务器,替代原有的物理服务器环境。 - -## 1. 网络配置 - -### 1.1 确认本机IP地址 -```bash -# Windows系统 -ipconfig -# 查找本机局域网IP地址,通常形如 192.168.x.x 或 10.x.x.x -``` - -### 1.2 配置Gitea服务地址 -编辑Gitea配置文件 `app.ini`: - -```ini -[server] -# 将localhost改为本机IP地址,确保同事可以访问 -HTTP_ADDR = 0.0.0.0 -HTTP_PORT = 3000 -# 外部访问URL,替换为你的实际IP -ROOT_URL = http://192.168.x.x:3000/ -``` - -### 1.3 防火墙配置 -确保Windows防火墙允许Gitea端口通信: - -```bash -# 打开Windows防火墙入站规则 -# 添加端口3000的TCP入站规则 -``` - -或在Windows防火墙中: -- 控制面板 → 系统和安全 → Windows Defender防火墙 → 高级设置 -- 入站规则 → 新建规则 → 端口 → TCP → 特定本地端口: 3000 - -## 2. Gitea服务配置 - -### 2.1 启动Gitea服务 -```bash -# 进入Gitea安装目录 -cd C:\gitea # 或你的安装路径 -gitea.exe web -``` - -### 2.2 配置为Windows服务(推荐) -创建Windows服务确保开机自启: - -1. 下载NSSM (Non-Sucking Service Manager) -2. 以管理员身份运行命令提示符: -```bash -nssm install Gitea -# 在弹出界面中配置: -# Path: C:\gitea\gitea.exe -# Arguments: web -# Working directory: C:\gitea -``` - -3. 启动服务: -```bash -net start Gitea -``` - -### 2.3 数据库配置优化 -如果使用SQLite(默认),确保数据文件路径正确: -```ini -[database] -DB_TYPE = sqlite3 -PATH = data/gitea.db -``` - -如果需要更好性能,考虑配置MySQL: -```ini -[database] -DB_TYPE = mysql -HOST = 127.0.0.1:3306 -NAME = gitea -USER = gitea -PASSWD = your_password -``` - -## 3. 同事访问配置 - -### 3.1 提供访问地址 -向同事提供访问地址: -``` -http://你的IP地址:3000 -例如: http://192.168.1.100:3000 -``` - -### 3.2 用户账号管理 -1. 访问管理界面创建用户账号 -2. 或开启用户自注册: -```ini -[service] -DISABLE_REGISTRATION = false -REQUIRE_SIGNIN_VIEW = false -``` - -### 3.3 权限配置 -为协作项目设置适当权限: -- 项目所有者:完全控制权限 -- 协作者:推送/拉取权限 -- 读者:仅读取权限 - -## 4. 代码仓库迁移 - -### 4.1 从原服务器迁移仓库 -如果原服务器数据可恢复: -```bash -# 在原服务器或备份中找到Git裸仓库 -# 复制到新Gitea的repositories目录 -# 通常位于 gitea-repositories/用户名/仓库名.git -``` - -### 4.2 重新创建仓库 -如果需要重新创建: -1. 在Gitea界面创建新仓库 -2. 本地添加新的远程地址: -```bash -git remote remove origin -git remote add origin http://你的IP:3000/用户名/仓库名.git -git push -u origin master -``` - -## 5. 开发工作流配置 - -### 5.1 分支保护规则 -为主要分支设置保护规则: -- 设置 → 分支 → 分支保护规则 -- 保护master分支,要求代码审查 - -### 5.2 Webhook配置 -如果需要CI/CD集成: -``` -设置 → Webhooks → 添加Webhook -配置自动构建触发器 -``` - -## 6. 备份策略 - -### 6.1 定期备份 -```bash -# 备份Gitea数据目录 -# 包括:repositories/, data/, log/, custom/ -robocopy "C:\gitea" "D:\backup\gitea" /MIR /Z /R:3 /W:10 -``` - -### 6.2 自动备份脚本 -创建批处理文件实现定期备份: -```batch -@echo off -set BACKUP_DIR=D:\backup\gitea_%date:~0,4%%date:~5,2%%date:~8,2% -robocopy "C:\gitea" "%BACKUP_DIR%" /MIR /Z /R:3 /W:10 -echo Backup completed to %BACKUP_DIR% -``` - -## 7. 常见问题排查 - -### 7.1 访问问题 -- 检查防火墙设置 -- 确认IP地址和端口正确 -- 验证Gitea服务是否正常运行 - -### 7.2 权限问题 -- 检查用户账号状态 -- 确认仓库权限设置 -- 验证SSH密钥配置(如使用SSH) - -### 7.3 性能优化 -```ini -[server] -# 调整并发连接数 -HTTP_ADDR = 0.0.0.0 -HTTP_PORT = 3000 - -[database] -# 数据库连接池配置 -MAX_IDLE_CONNS = 30 -MAX_OPEN_CONNS = 300 -``` - -## 8. 安全建议 - -1. **网络安全**: - - 仅在受信任的局域网环境中开放 - - 考虑使用VPN访问 - - 定期更新Gitea版本 - -2. **访问控制**: - - 禁用不必要的公开注册 - - 使用强密码策略 - - 启用双因子认证 - -3. **数据安全**: - - 定期备份重要数据 - - 监控异常访问 - - 记录操作日志 - -## 9. 同事操作指南 - -### 9.1 首次设置 -```bash -# 克隆仓库 -git clone http://你的IP:3000/用户名/CN_Gather.git - -# 配置用户信息 -git config user.name "姓名" -git config user.email "邮箱" -``` - -### 9.2 日常协作 -```bash -# 拉取最新代码 -git pull origin master - -# 创建功能分支 -git checkout -b feature/新功能 - -# 提交更改 -git add . -git commit -m "描述信息" -git push origin feature/新功能 - -# 在Gitea界面创建Pull Request -``` - ---- - -**联系信息**: -- Gitea服务地址:http://你的IP:3000 -- 管理员:[你的联系方式] -- 紧急联系:[备用联系方式] - -**注意**:请确保定期备份重要代码,避免数据丢失。 \ No newline at end of file