承接前文关于如何运用 AI 工具生成时序图的内容【1】,今天我们继续探讨 AI 驱动的 PlantUML:高效创建专业的 UML 类图与用例图。
【1】: https://juejin.cn/post/7407637717206728755
【2】: 案例参照开源项目ruoyi-cloud:https://gitee.com/y_project/RuoYi-Cloud
AI驱动分析类间关系并通过PlantUML生成类图
一、在Fitten Code中输入如下内容
@workspace 分析下com.ruoyi.system下岗位管理这功能各类之间的关系
        得到的结果如下:
为了分析 com.ruoyi.system 下岗位管理功能各类之间的关系,我们需要查看相关的类和它们的方法。以下是基于提供的参考信息进行的分析:
1. 主要类和接口
1.1. SysPost 类
- 
描述: 岗位实体类,包含岗位的基本信息。
 - 
属性:
postId: 岗位IDpostCode: 岗位编码postName: 岗位名称postSort: 显示顺序status: 状态createBy: 创建者createTime: 创建时间updateBy: 更新者updateTime: 更新时间remark: 备注
 
1.2. SysPostMapper 接口
- 
描述: MyBatis Mapper 接口,用于操作岗位数据。
 - 
方法:
selectPostList: 查询岗位列表selectPostAll: 查询所有岗位selectPostById: 根据ID查询岗位selectPostListByUserId: 根据用户ID查询岗位列表selectPostsByUserName: 根据用户名查询岗位checkPostNameUnique: 检查岗位名称是否唯一checkPostCodeUnique: 检查岗位编码是否唯一updatePost: 更新岗位信息insertPost: 插入岗位信息deletePostById: 根据ID删除岗位deletePostByIds: 批量删除岗位
 
1.3. SysPostService 接口
- 
描述: 岗位服务接口,定义岗位管理的相关业务逻辑。
 - 
方法:
selectPostList: 查询岗位列表selectPostAll: 查询所有岗位selectPostById: 根据ID查询岗位selectPostListByUserId: 根据用户ID查询岗位列表selectPostsByUserName: 根据用户名查询岗位checkPostNameUnique: 检查岗位名称是否唯一checkPostCodeUnique: 检查岗位编码是否唯一insertPost: 插入岗位信息updatePost: 更新岗位信息deletePostByIds: 批量删除岗位export: 导出岗位信息
 
1.4. SysPostServiceImpl 类
- 
描述 :
SysPostService接口的实现类,实现具体的业务逻辑。 - 
方法:
- 实现 
SysPostService接口的所有方法 
 - 实现 
 
1.5. SysPostController 类
- 
描述: 岗位管理控制器,处理HTTP请求。
 - 
方法:
list: 查询岗位列表export: 导出岗位信息getInfo: 根据ID查询岗位详细信息add: 新增岗位edit: 修改岗位remove: 删除岗位
 
2. 类之间的关系
2.1. SysPost 和 SysPostMapper
SysPost是岗位实体类,SysPostMapper是操作SysPost数据的 MyBatis Mapper 接口。SysPostMapper通过 MyBatis 映射文件 (SysPostMapper.xml) 定义了与数据库交互的 SQL 语句。
2.2. SysPostMapper 和 SysPostService
SysPostService接口定义了岗位管理的业务逻辑,SysPostServiceImpl是其实现类。SysPostServiceImpl通过依赖注入SysPostMapper来访问数据库,实现业务逻辑。
2.3. SysPostService 和 SysPostController
SysPostController是控制器类,处理HTTP请求,调用SysPostService的方法来完成业务逻辑。SysPostController通过依赖注入SysPostService来访问业务逻辑。
3. 总结
岗位管理功能涉及的主要类和它们之间的关系如下:
SysPost是岗位实体类。SysPostMapper是操作SysPost数据的 MyBatis Mapper 接口。SysPostService是岗位服务接口,定义岗位管理的业务逻辑。SysPostServiceImpl是SysPostService的实现类,通过SysPostMapper访问数据库。SysPostController是控制器类,处理HTTP请求,调用SysPostService的方法来完成业务逻辑。
这些类和接口通过依赖注入和方法调用,共同实现了岗位管理功能。
二、在Fitten Code中继续输入如下内容
接着上再用plantuml把岗位管理功能相关的类形成类图
        分析出的结果如下:
@startuml
class SysPost {
    +Long postId
    +String postCode
    +String postName
    +Integer postSort
    +String status
    +String createBy
    +Date createTime
    +String updateBy
    +Date updateTime
    +String remark
}
interface SysPostMapper {
    +List<SysPost> selectPostList(SysPost post)
    +List<SysPost> selectPostAll()
    +SysPost selectPostById(Long postId)
    +List<Long> selectPostListByUserId(Long userId)
    +List<SysPost> selectPostsByUserName(String userName)
    +SysPost checkPostNameUnique(String postName)
    +SysPost checkPostCodeUnique(String postCode)
    +int updatePost(SysPost post)
    +int insertPost(SysPost post)
    +int deletePostById(Long postId)
    +int deletePostByIds(Long[] postIds)
}
interface SysPostService {
    +List<SysPost> selectPostList(SysPost post)
    +List<SysPost> selectPostAll()
    +SysPost selectPostById(Long postId)
    +List<Long> selectPostListByUserId(Long userId)
    +List<SysPost> selectPostsByUserName(String userName)
    +SysPost checkPostNameUnique(String postName)
    +SysPost checkPostCodeUnique(String postCode)
    +int insertPost(SysPost post)
    +int updatePost(SysPost post)
    +int deletePostByIds(Long[] postIds)
    +void export(SysPost post)
}
class SysPostServiceImpl {
    -SysPostMapper sysPostMapper
    +List<SysPost> selectPostList(SysPost post)
    +List<SysPost> selectPostAll()
    +SysPost selectPostById(Long postId)
    +List<Long> selectPostListByUserId(Long userId)
    +List<SysPost> selectPostsByUserName(String userName)
    +SysPost checkPostNameUnique(String postName)
    +SysPost checkPostCodeUnique(String postCode)
    +int insertPost(SysPost post)
    +int updatePost(SysPost post)
    +int deletePostByIds(Long[] postIds)
    +void export(SysPost post)
}
class SysPostController {
    -SysPostService sysPostService
    +ResponseEntity<TableDataInfo> list(SysPost post)
    +ResponseEntity<AjaxResult> export(SysPost post)
    +ResponseEntity<AjaxResult> getInfo(Long postId)
    +ResponseEntity<AjaxResult> add(SysPost post)
    +ResponseEntity<AjaxResult> edit(SysPost post)
    +ResponseEntity<AjaxResult> remove(Long[] postIds)
}
SysPostMapper <|-- SysPostServiceImpl : 依赖
SysPostService <|-- SysPostServiceImpl : 实现
SysPostService <|-- SysPostController : 依赖
@enduml
        三、新建plantUml文件并复制如上内容

类图说明
SysPost类表示岗位实体,包含岗位的基本信息。SysPostMapper接口定义了操作岗位数据的 MyBatis Mapper 方法。SysPostService接口定义了岗位管理的业务逻辑。SysPostServiceImpl类实现了SysPostService接口,并通过依赖注入SysPostMapper来访问数据库。SysPostController类是控制器,处理HTTP请求,调用SysPostService的方法来完成业务逻辑。
通过这个类图,可以清晰地看到岗位管理功能中各个类之间的关系和依赖。
最终效果如下,可以导成图片文件。

四、在Fitten Code中继续输入如下内容
例如岗位管理主要划分为岗位新增、修改、删除和查询功能。通过plantuml生成用例图
        与上同样新建一个plantUML,岗位用例图文件,复制生成的内容,岗位管理用例图就生成了,是不是很简单。
