Files
contract-manager/docs/task/server模块service缓存调整为Vo对象/TASK_server模块service缓存调整为Vo对象.md
songqq c4eec0a9dd refactor(model): 重构模型类包结构并优化序列化处理
重构模型类包结构,将模型类按功能模块划分到不同的子包中。优化序列化处理,为VO类添加serialVersionUID并实现Serializable接口。移除部分冗余的serialVersionUID字段,简化模型类代码。同时修复UITools中空值处理的问题,并更新pom版本至0.0.100-SNAPSHOT。

- 将模型类按功能模块划分到ds子包中
- 为VO类添加序列化支持
- 移除冗余的serialVersionUID字段
- 修复UITools空值处理问题
- 更新项目版本号
2025-10-09 18:27:48 +08:00

12 KiB
Raw Blame History

6A工作流 - TASK阶段文档

任务名称Server模块Service缓存调整为Vo对象

1. 任务完成状态概述

总体状态: 进行中

任务ID 任务名称 状态 负责人 备注
T1 分析Service类结构 已完成 - 已确定需要修改的Service类和接口
T2 设计数据转换机制 已完成 - 已设计实体类与Vo类的转换方案
T3 设计缓存策略 已完成 - 已确定缓存Vo对象的策略
T4 修改CompanyFileTypeService类 已完成 - 已完成泛型调整和方法实现
T5 批量修改其他Service类 进行中 - 需要按照CompanyFileTypeService模式修改其他Service类
T6 处理WebSocket服务组件 未开始 - 需要分析并修改WebSocketServerHandler等类
T7 清理Redis缓存 未开始 - 需要开发清理工具/脚本
T8 编写测试用例 未开始 - 需要编写单元测试和集成测试
T9 更新相关文档 进行中 - 正在按照6A工作流更新文档
T10 分析并修改WebSocket服务组件 未开始 - 需分析WebSocketServerHandler等类的类型处理逻辑

2. 任务拆分列表

T1: 分析Service类结构

输入契约:

  • server模块源代码目录结构
  • Service类文件

输出契约:

  • 需要修改的Service类列表
  • 每个Service类对应的实体类和Vo类
  • 每个Service类实现的接口列表

实现约束:

  • 仅分析注解了@CacheConfig的Service类
  • 分析范围限定在server模块

依赖关系:

  • 无前置依赖
  • 后置任务: T2、T3

详细描述:

  1. 查找server模块中所有注解了@CacheConfig的Service类
  2. 分析每个Service类实现的接口及其泛型参数
  3. 确定每个Service类对应的实体类和Vo类
  4. 创建需要修改的Service类列表

T2: 设计数据转换机制

输入契约:

  • T1的分析结果
  • 实体类和Vo类的定义
  • 现有Voable接口和VoableService接口的定义

输出契约:

  • 实体类实现Voable接口的方案
  • Service类中实现数据转换的方法

实现约束:

  • 遵循现有的代码规范和模式
  • 确保转换过程不丢失数据

依赖关系:

  • 前置任务: T1
  • 后置任务: T3、T4

详细描述:

  1. 设计实体类实现Voable接口的方案包括toVo方法的实现
  2. 设计Service类中findById、findAll等方法的实现确保正确进行数据转换
  3. 设计VoableService接口中updateByVo和createByVo方法的实现

T3: 设计缓存策略

输入契约:

  • T1的分析结果
  • 现有缓存配置和注解
  • 数据转换机制设计

输出契约:

  • 缓存Vo对象的策略文档
  • 缓存键表达式的调整方案
  • 缓存注解的优化建议

实现约束:

  • 确保缓存的是Vo对象而非实体类对象
  • 保持缓存键表达式的有效性
  • 避免缓存穿透、缓存雪崩等问题

依赖关系:

  • 前置任务: T1、T2
  • 后置任务: T4、T5

详细描述:

  1. 分析现有缓存配置和注解
  2. 设计缓存Vo对象的策略包括缓存注解的使用方式
  3. 评估缓存键表达式是否需要调整
  4. 提供缓存优化建议

T4: 修改CompanyFileTypeService类

输入契约:

  • T1、T2、T3的输出结果
  • CompanyFileTypeService类源码
  • CompanyFileType和CompanyFileTypeVo类源码
  • CompanyFileTypeRepository接口

输出契约:

  • 修改后的CompanyFileTypeService类源码
  • 验证测试结果

实现约束:

  • 按照设计文档修改接口泛型参数
  • 实现所有必要的方法
  • 确保缓存注解正确使用
  • 遵循代码规范

依赖关系:

  • 前置任务: T1、T2、T3
  • 后置任务: T5、T9

详细描述:

  1. 修改CompanyFileTypeService类实现的接口添加QueryService和VoableService<CompanyFileType, CompanyFileTypeVo>
  2. 实现findById、findAll等QueryService接口方法确保返回Vo对象
  3. 确保findById方法标注@Cacheable注解
  4. 实现VoableService接口的updateByVo和createByVo方法
  5. 编写验证测试,确保修改后的方法正常工作

T5: 批量修改其他Service类

输入契约:

  • T1的分析结果
  • T4的修改方案和验证结果
  • 其他Service类源码
  • 对应的实体类和Vo类源码

输出契约:

  • 所有修改后的Service类源码
  • 批量修改的执行报告
  • 验证测试结果

实现约束:

  • 按照CompanyFileTypeService的模式修改其他Service类
  • 确保所有方法实现正确
  • 遵循代码规范
  • 逐个验证修改结果

依赖关系:

  • 前置任务: T1、T4
  • 后置任务: T7、T8、T9

详细描述:

  1. 按照CompanyFileTypeService的模式批量修改其他Service类
  2. 每个Service类修改完成后进行验证测试
  3. 记录批量修改过程中的问题和解决方案
  4. 生成批量修改执行报告

待修改的Service类:

  • CompanyCustomerFileTypeService
  • CompanyExtendInfoService
  • CompanyFileTypeLocalService
  • CompanyVendorFileTypeService
  • CustomerInfoService
  • CustomerTypeService
  • EmployeeService
  • ProjectCostService
  • ProjectFileTypeService
  • ProjectQuotationService
  • ...其他注解了@CacheConfig的Service类

T6: 处理WebSocket服务组件

输入契约:

  • WebSocketServerCallbackManager类源码
  • WebSocketServerHandler类源码
  • WebSocketServerTaskManager类源码
  • 其他WebSocket相关组件

输出契约:

  • 修改后的WebSocket组件源码
  • 验证测试结果

实现约束:

  • 确保WebSocket服务能够适配新的接口定义
  • 保持现有WebSocket功能正常
  • 遵循代码规范

依赖关系:

  • 前置任务: T5
  • 后置任务: T8、T9

详细描述:

  1. 分析WebSocketServerCallbackManager类中的类型处理逻辑
  2. 分析createNewEntity、findEntityTypeInInterfaces等方法的实现
  3. 修改相关方法确保能够正确处理Service类的新泛型参数
  4. 验证修改后的WebSocket服务功能正常

T7: 清理Redis缓存

输入契约:

  • Redis缓存配置信息
  • 现有缓存数据结构

输出契约:

  • Redis缓存清理工具/脚本
  • 缓存清理执行报告
  • 验证结果

实现约束:

  • 确保清理所有旧的实体类缓存数据
  • 避免影响系统正常运行
  • 记录清理过程和结果

依赖关系:

  • 前置任务: T5
  • 后置任务: T8、T9

详细描述:

  1. 开发Redis缓存清理工具或脚本
  2. 执行缓存清理操作,清除所有旧的实体类缓存数据
  3. 验证缓存清理结果
  4. 生成缓存清理执行报告

T8: 编写测试用例

输入契约:

  • 所有修改后的Service类源码
  • WebSocket组件源码
  • 设计文档

输出契约:

  • 单元测试用例
  • 集成测试用例
  • 测试执行报告

实现约束:

  • 覆盖所有修改的功能点
  • 包含边界条件和异常情况测试
  • 确保测试通过率达到100%

依赖关系:

  • 前置任务: T5、T6、T7
  • 后置任务: T9

详细描述:

  1. 为每个修改后的Service类编写单元测试用例
  2. 编写集成测试用例,验证不同组件之间的交互
  3. 包含边界条件和异常情况的测试
  4. 执行测试并生成测试执行报告

T9: 更新相关文档

输入契约:

  • 所有修改的代码
  • 设计文档
  • 测试报告
  • 项目文档规范

输出契约:

  • 更新后的项目文档
  • 设计文档
  • 用户手册(如需)

实现约束:

  • 确保文档与代码的一致性
  • 遵循项目文档规范
  • 保持文档的清晰和准确性

依赖关系:

  • 前置任务: T4、T5、T6、T7、T8
  • 后置任务: T10

详细描述:

  1. 更新项目架构文档反映Service类的修改
  2. 更新接口文档,确保与实际实现一致
  3. 更新用户手册(如需)
  4. 确保所有文档的格式和内容符合项目规范

T10: 分析并修改WebSocket服务组件

输入契约:

  • WebSocketServerHandler类源码
  • WebSocketServerTaskManager类源码
  • 其他WebSocket相关组件
  • Service类的修改方案

输出契约:

  • 修改后的WebSocket组件源码
  • 验证测试结果

实现约束:

  • 确保WebSocket服务能够正确处理Vo对象
  • 保持现有WebSocket功能正常
  • 遵循代码规范

依赖关系:

  • 前置任务: T9
  • 后置任务: 无

详细描述:

  1. 分析WebSocketServerHandler类中的类型处理逻辑
  2. 分析WebSocketServerHandler类与IEntityService接口的泛型关系
  3. 修改相关方法确保能够正确处理Vo对象的序列化和反序列化
  4. 验证修改后的WebSocket服务功能正常

3. 任务依赖图

graph TD
    T1[分析Service类结构] --> T2[设计数据转换机制]
    T1 --> T3[设计缓存策略]
    T2 --> T4[修改CompanyFileTypeService类]
    T3 --> T4
    T4 --> T5[批量修改其他Service类]
    T5 --> T6[处理WebSocket服务组件]
    T5 --> T7[清理Redis缓存]
    T6 --> T8[编写测试用例]
    T7 --> T8
    T4 --> T9[更新相关文档]
    T5 --> T9
    T6 --> T9
    T7 --> T9
    T8 --> T9
    T9 --> T10[分析并修改WebSocket服务组件]

4. 详细执行步骤

T1: 分析Service类结构

  1. 搜索server模块中所有注解了@CacheConfig的Service类
  2. 对每个Service类分析其实现的接口和泛型参数
  3. 确定每个Service类对应的实体类和Vo类
  4. 创建需要修改的Service类列表

T2: 设计数据转换机制

  1. 设计实体类实现Voable接口的方案
  2. 设计Service类中findById、findAll等方法的实现
  3. 设计VoableService接口中updateByVo和createByVo方法的实现

T3: 设计缓存策略

  1. 分析现有缓存配置和注解
  2. 设计缓存Vo对象的策略
  3. 评估缓存键表达式是否需要调整
  4. 提供缓存优化建议

T4: 修改CompanyFileTypeService类

  1. 修改接口实现声明:implements IEntityService<CompanyFileType>, QueryService<CompanyFileTypeVo>, VoableService<CompanyFileType, CompanyFileTypeVo>
  2. 实现QueryService接口方法findById确保返回Vo对象并添加@Cacheable注解
  3. 实现QueryService接口方法findAll确保返回Vo对象的Page
  4. 实现VoableService接口的updateByVo和createByVo方法
  5. 编写验证测试

T5: 批量修改其他Service类

  1. 按照CompanyFileTypeService的模式批量修改其他Service类
  2. 每个Service类修改完成后进行验证测试
  3. 记录批量修改过程中的问题和解决方案
  4. 生成批量修改执行报告

T6: 处理WebSocket服务组件

  1. 分析WebSocketServerCallbackManager类中的类型处理逻辑
  2. 分析createNewEntity、findEntityTypeInInterfaces等方法的实现
  3. 修改相关方法确保能够正确处理Service类的新泛型参数
  4. 验证修改后的WebSocket服务功能正常

T7: 清理Redis缓存

  1. 开发Redis缓存清理工具或脚本
  2. 执行缓存清理操作
  3. 验证缓存清理结果
  4. 生成缓存清理执行报告

T8: 编写测试用例

  1. 为每个修改后的Service类编写单元测试用例
  2. 编写集成测试用例
  3. 包含边界条件和异常情况的测试
  4. 执行测试并生成测试执行报告

T9: 更新相关文档

  1. 更新项目架构文档
  2. 更新接口文档
  3. 更新用户手册(如需)
  4. 确保所有文档的格式和内容符合项目规范

T10: 分析并修改WebSocket服务组件

  1. 分析WebSocketServerHandler类中的类型处理逻辑
  2. 分析WebSocketServerHandler类与IEntityService接口的泛型关系
  3. 修改相关方法确保能够正确处理Vo对象的序列化和反序列化
  4. 验证修改后的WebSocket服务功能正常

5. 关键交付物

交付物名称 描述 负责人 完成日期
Service类修改列表 需要修改的Service类清单 - -
数据转换方案文档 实体类与Vo类的转换方案 - -
缓存策略文档 缓存Vo对象的策略和配置 - -
修改后的Service类源码 所有修改完成的Service类 - -
WebSocket组件修改 修改后的WebSocket相关组件 - -
Redis缓存清理工具/脚本 用于清理旧缓存数据的工具或脚本 - -
测试用例集 单元测试和集成测试用例 - -
测试执行报告 测试结果和问题记录 - -
更新后的项目文档 反映修改后的项目文档 - -
最终验收报告 项目完成情况的总结报告 - -