# 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 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. 任务依赖图 ```mermaid 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, QueryService, VoableService` 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缓存清理工具/脚本 | 用于清理旧缓存数据的工具或脚本 | - | - | | 测试用例集 | 单元测试和集成测试用例 | - | - | | 测试执行报告 | 测试结果和问题记录 | - | - | | 更新后的项目文档 | 反映修改后的项目文档 | - | - | | 最终验收报告 | 项目完成情况的总结报告 | - | - |