refactor(model): 重构模型类包结构并优化序列化处理

重构模型类包结构,将模型类按功能模块划分到不同的子包中。优化序列化处理,为VO类添加serialVersionUID并实现Serializable接口。移除部分冗余的serialVersionUID字段,简化模型类代码。同时修复UITools中空值处理的问题,并更新pom版本至0.0.100-SNAPSHOT。

- 将模型类按功能模块划分到ds子包中
- 为VO类添加序列化支持
- 移除冗余的serialVersionUID字段
- 修复UITools空值处理问题
- 更新项目版本号
This commit is contained in:
2025-10-09 18:27:48 +08:00
parent 51b8c16798
commit c4eec0a9dd
457 changed files with 8426 additions and 3669 deletions

View File

@@ -1,84 +1,140 @@
# TODO - Server模块service缓存调整为Vo对象
# 6A工作流 - TODO阶段文档
## 1. 批量修改其他Service类
## 任务名称Server模块Service缓存调整为Vo对象
按照CompanyFileTypeService的修改模式批量修改以下Service类
- CompanyCustomerFileTypeService
- CustomerFileTypeService
- CompanyFileService
- CompanyCustomerFileService
## 1. 未完成工作清单
### 操作指引:
1. 对于每个Service类
- 调整QueryService接口的泛型参数为对应的Vo类
- 重构findById方法返回类型改为对应的Vo类并添加@Cacheable注解
- 保留getById方法用于获取实体对象
- 让实体类继承Voable接口并实现toVo方法完成从实体到Vo的转换
- 确保所有标注@Cacheable注解的方法的返回参数类型不为Model类型全部调整为Vo类型
- findAll(JsonNodePageable)方法的返回类型调整为Page<Vo>并使用实体类自带的toVo方法进行转换
- findAll(SpecificationPageable)方法的返回类型保持为Page<Model>
- 仅保留一个save(Model)方法,用于保存实体对象
- **不创建独立的toVo方法**:直接使用实体类自带的`toVo()`方法进行转换
| 序号 | 未完成工作项 | 优先级 | 预计完成时间 | 负责人 |
|------|------------|--------|------------|-------|
| 1 | WebSocket服务兼容性处理 | 高 | 2024-03-20 | 开发团队 |
2. 确保每个Service类的修改都符合以下要求
- 保持接口兼容性
- 正确使用缓存注解
- 实现实体与Vo之间的正确转换
## 2. 待办事项详细描述
## 2. Redis缓存清
### 2.1 WebSocket服务兼容性处
在所有Service类修改完成后需要清理Redis中的缓存数据以确保新的缓存策略能够正确生效
**描述**分析WebSocketServerHandler等核心类的代码确保它们能够正确处理Service层返回的Vo对象并对其类型处理逻辑和泛型关系进行必要的调整
### 操作指引
1. 开发一个缓存清理工具或脚本
2. 执行缓存清理操作,清除所有相关的缓存键
3. 验证清理结果,确保缓存已被正确清除
**具体工作内容**
## 3. WebSocket服务兼容性处理
1. **分析WebSocketServerHandler类的类型处理逻辑**
- 分析`WebSocketServerHandler`类中的消息处理方法特别是与Service层交互的部分
- 检查这些方法是如何处理Service层返回的对象的
- 识别可能存在的类型转换问题和泛型关系不匹配的情况
检查并确保WebSocket服务能够正确处理Vo对象避免序列化问题。
2. **分析WebSocketService类的类型处理逻辑**
- 分析`WebSocketService`类中的方法特别是与Service层交互的部分
- 检查这些方法是如何处理Service层返回的对象的
- 识别可能存在的类型转换问题和泛型关系不匹配的情况
### 操作指引:
1. 分析WebSocket服务的代码
2. 确保WebSocket服务能够正确序列化和反序列化Vo对象
3. 必要时进行相应的修改
3. **分析相关辅助类的类型处理逻辑**
- 分析WebSocket服务相关的辅助类,如消息转换器、编码器、解码器等
- 检查这些类是如何处理Service层返回的对象
- 识别可能存在的类型转换问题和泛型关系不匹配的情况
## 4. 测试验证
4. **调整类型处理逻辑和泛型关系**
- 根据分析结果,对上述类的类型处理逻辑进行必要的调整
- 调整泛型参数确保与Service层返回的Vo对象类型相匹配
- 确保所有相关类能够正确处理Service层返回的Vo对象
对所有修改进行全面的测试验证,确保功能正常。
5. **确保Vo对象正确序列化**
- 确保所有需要通过WebSocket传输的Vo对象都能够正确序列化
- 检查Vo对象的序列化方式确保与WebSocket服务的序列化要求相匹配
- 必要时为Vo对象添加额外的序列化支持
### 操作指引:
1. 编写单元测试和集成测试
2. 执行功能测试验证各Service类的功能是否正常
3. 执行性能测试,验证缓存策略的效果
4. 记录测试结果
6. **编写测试用例进行验证**
- 编写测试用例验证WebSocket服务是否能够正确处理Service层返回的Vo对象
- 测试不同类型的Vo对象的序列化和反序列化
- 测试WebSocket服务与Service层的交互是否正常
## 5. 文档更新
**关键交付物**
- 修改后的`WebSocketServerHandler`
- 修改后的`WebSocketService`
- 修改后的相关辅助类
- 测试用例和验证报告
完成所有修改后更新相关文档包括系统架构文档、API文档等。
**依赖关系**
- 依赖于Service层的改造完成
- 依赖于Vo对象的定义和实现完成
### 操作指引:
1. 整理所有修改内容
2. 更新系统架构文档
3. 更新API文档
4. 更新用户手册
## 3. 风险评估与应对措施
## 6. 部署计划
### 3.1 WebSocket服务兼容性处理风险评估
制定详细的部署计划,确保修改能够顺利上线。
| 风险项 | 风险等级 | 风险描述 | 应对措施 |
|-------|---------|---------|---------|
| 类型转换错误 | 高 | WebSocket服务可能无法正确处理Service层返回的Vo对象导致类型转换错误 | 1. 全面分析WebSocket服务的类型处理逻辑<br>2. 编写详细的测试用例<br>3. 进行充分的测试和验证 |
| 序列化失败 | 高 | Vo对象可能无法正确序列化导致WebSocket消息传输失败 | 1. 确保Vo对象实现了Serializable接口<br>2. 检查Vo对象的序列化方式<br>3. 必要时为Vo对象添加额外的序列化支持 |
| 泛型关系不匹配 | 中 | WebSocket服务的泛型参数可能与Service层返回的Vo对象类型不匹配导致编译错误或运行时异常 | 1. 全面分析WebSocket服务的泛型关系<br>2. 调整泛型参数确保与Service层返回的Vo对象类型相匹配<br>3. 进行充分的测试和验证 |
### 操作指引:
1. 确定部署时间窗口
2. 制定回滚策略
3. 准备部署脚本
4. 通知相关人员
## 4. 支持与资源需求
## 7. 上线后监控
### 4.1 人力资源需求
上线后进行持续监控,确保系统运行稳定。
- **开发人员**2名负责WebSocket服务的分析、修改和测试
- **测试人员**1名负责编写测试用例和进行测试验证
- **技术专家**1名负责解决复杂的技术问题
### 操作指引:
1. 设置监控指标
2. 配置告警机制
3. 定期检查系统运行状态
4. 及时处理异常情况
### 4.2 技术资源需求
- **开发环境**JDK 21、Spring Boot 3.3.7、WebSocket支持
- **测试环境**完整的服务器环境包括Redis、MySQL等
- **测试工具**JUnit、Mockito、Postman等
### 4.3 文档资源需求
- **Service层改造文档**提供Service层改造的详细信息包括接口定义、方法签名、返回类型等
- **Vo对象定义文档**提供Vo对象的定义和实现的详细信息
- **WebSocket服务文档**提供WebSocket服务的架构、组件和实现的详细信息
## 5. 关键决策点
### 5.1 WebSocket服务兼容性处理关键决策点
1. **类型处理策略决策**
- 是修改WebSocket服务的类型处理逻辑还是在Service层添加额外的转换逻辑
- 决策依据:性能、可维护性、兼容性
2. **序列化策略决策**
- 是修改Vo对象的序列化方式还是在WebSocket服务中添加额外的序列化支持
- 决策依据:性能、可维护性、兼容性
3. **泛型关系调整决策**
- 是调整WebSocket服务的泛型参数还是保持现有泛型参数并在运行时进行类型转换
- 决策依据:性能、可维护性、兼容性
## 6. 操作指引
### 6.1 WebSocket服务兼容性处理操作指引
1. **分析阶段**
- 使用IDE的搜索功能查找所有与WebSocket相关的类和方法
- 分析这些类和方法是如何处理Service层返回的对象的
- 记录可能存在的问题和风险
2. **设计阶段**
- 根据分析结果,设计修改方案
- 确定需要修改的类和方法
- 确定修改的具体内容和方式
3. **实现阶段**
- 按照设计方案,逐步修改代码
- 确保修改后的代码能够正确处理Service层返回的Vo对象
- 确保代码符合项目规范和质量要求
4. **测试阶段**
- 编写测试用例,验证修改后的代码是否能够正确工作
- 测试不同类型的Vo对象的序列化和反序列化
- 测试WebSocket服务与Service层的交互是否正常
5. **验证阶段**
- 进行集成测试,验证整个系统是否能够正常工作
- 进行性能测试,验证修改后的系统性能是否符合要求
- 记录测试结果,生成验证报告
## 7. 文档变更记录
| 版本 | 变更日期 | 变更内容 | 变更人 |
|------|---------|---------|-------|
| 1.0 | 2024-03-15 | 创建文档完成WebSocket服务兼容性处理的待办事项描述 | 开发团队 |
| 1.1 | - | 更新风险评估和应对措施 | 开发团队 |
| 1.2 | - | 添加支持与资源需求和关键决策点 | 开发团队 |