- 新增员工信息CRUD功能 - 添加员工关联人员管理 - 配置MyBatis Plus审计字段 - 添加OpenSpec规范文档 - 新增测试脚本和数据 Co-Authored-By: Claude <noreply@anthropic.com>
527 lines
19 KiB
Markdown
527 lines
19 KiB
Markdown
# Spec: 员工信息管理
|
||
|
||
## ADDED Requirements
|
||
|
||
### Requirement: 系统SHALL支持查询员工信息列表
|
||
|
||
系统MUST提供查询功能,允许用户查询系统中已维护的员工信息列表,支持分页、模糊搜索和多条件筛选。
|
||
|
||
#### Scenario: 分页查询员工列表
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:list` 权限
|
||
**When** 用户访问员工信息管理页面
|
||
**Then** 系统应显示员工列表,支持分页展示
|
||
|
||
#### Scenario: 按姓名模糊搜索员工
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:list` 权限
|
||
**And** 系统中存在姓名为"张三"的员工
|
||
**When** 用户在搜索框输入"张"并点击搜索
|
||
**Then** 系统应返回所有姓名中包含"张"的员工记录
|
||
|
||
#### Scenario: 按柜员号精确搜索员工
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:list` 权限
|
||
**And** 系统中存在柜员号为"001"的员工
|
||
**When** 用户在搜索框输入"001"并点击搜索
|
||
**Then** 系统应返回该柜员号对应的员工记录
|
||
|
||
#### Scenario: 按所属机构号筛选员工
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:list` 权限
|
||
**And** 系统中存在所属机构号为"1001"的员工
|
||
**When** 用户选择所属机构号为"1001"并点击搜索
|
||
**Then** 系统应返回该机构下的所有员工记录
|
||
|
||
#### Scenario: 按身份证号精确搜索员工
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:list` 权限
|
||
**And** 系统中存在身份证号为"110101199001011234"的员工
|
||
**When** 用户在搜索框输入"110101199001011234"并点击搜索
|
||
**Then** 系统应返回该身份证号对应的员工记录
|
||
|
||
#### Scenario: 组合条件查询员工
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:list` 权限
|
||
**When** 用户同时输入姓名"张"、柜员号"001"、所属机构号"1001"并点击搜索
|
||
**Then** 系统应返回同时满足所有条件的记录
|
||
|
||
#### Scenario: 按状态筛选员工
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:list` 权限
|
||
**And** 系统中存在在职和离职两种状态的员工记录
|
||
**When** 用户选择状态为"在职"并点击搜索
|
||
**Then** 系统应仅返回状态为"在职"的记录
|
||
|
||
---
|
||
|
||
### Requirement: 系统SHALL支持新增员工信息
|
||
|
||
系统MUST提供新增功能,允许用户添加员工信息,并可同时维护员工亲属信息。
|
||
|
||
#### Scenario: 新增员工基本信息
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:add` 权限
|
||
**When** 用户点击"新增"按钮
|
||
**And** 填写姓名为"张三"
|
||
**And** 填写柜员号为"001"
|
||
**And** 填写所属机构号为"1001"
|
||
**And** 填写身份证号为"110101199001011234"
|
||
**And** 填写电话为"13800138000"
|
||
**And** 填写入职时间为"2020-01-01"
|
||
**And** 选择状态为"在职"
|
||
**And** 点击"确定"按钮
|
||
**Then** 系统应保存员工信息并提示"操作成功"
|
||
**And** 列表中应显示新增的记录
|
||
|
||
#### Scenario: 新增员工时同时添加亲属信息
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:add` 权限
|
||
**When** 用户点击"新增"按钮
|
||
**And** 填写员工基本信息
|
||
**And** 在亲属区域添加亲属:姓名"李四"、身份证"110101199001011235"、电话"13800138001"、关系"配偶"
|
||
**And** 点击"确定"按钮
|
||
**Then** 系统应保存员工信息及亲属信息
|
||
**And** 查询该员工详情时应显示关联的亲属信息
|
||
|
||
#### Scenario: 新增员工时同时添加多个亲属
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:add` 权限
|
||
**When** 用户点击"新增"按钮
|
||
**And** 填写员工基本信息
|
||
**And** 添加3个亲属信息
|
||
**And** 点击"确定"按钮
|
||
**Then** 系统应保存员工信息及所有亲属信息
|
||
**And** 查询该员工详情时应显示3个亲属
|
||
|
||
#### Scenario: 新增时姓名为空应校验失败
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:add` 权限
|
||
**When** 用户点击"新增"按钮
|
||
**And** 不填写姓名
|
||
**And** 点击"确定"按钮
|
||
**Then** 系统应提示"姓名不能为空"
|
||
**And** 不保存数据
|
||
|
||
#### Scenario: 新增时柜员号为空应校验失败
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:add` 权限
|
||
**When** 用户点击"新增"按钮
|
||
**And** 不填写柜员号
|
||
**And** 点击"确定"按钮
|
||
**Then** 系统应提示"柜员号不能为空"
|
||
**And** 不保存数据
|
||
|
||
#### Scenario: 新增时身份证号格式校验
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:add` 权限
|
||
**When** 用户点击"新增"按钮
|
||
**And** 填写身份证号为"123"(不符合身份证格式)
|
||
**And** 点击"确定"按钮
|
||
**Then** 系统应提示"身份证号格式不正确"
|
||
**And** 不保存数据
|
||
|
||
#### Scenario: 新增时电话格式校验
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:add` 权限
|
||
**When** 用户点击"新增"按钮
|
||
**And** 填写电话为"abc"(不符合手机号格式)
|
||
**And** 点击"确定"按钮
|
||
**Then** 系统应提示"电话格式不正确"
|
||
**And** 不保存数据
|
||
|
||
#### Scenario: 新增时柜员号重复应校验失败
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:add` 权限
|
||
**And** 系统中已存在柜员号为"001"的员工
|
||
**When** 用户点击"新增"按钮
|
||
**And** 填写柜员号为"001"
|
||
**And** 点击"确定"按钮
|
||
**Then** 系统应提示"该柜员号已存在"
|
||
**And** 不保存数据
|
||
|
||
#### Scenario: 新增时身份证号重复应校验失败
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:add` 权限
|
||
**And** 系统中已存在身份证号为"110101199001011234"的员工
|
||
**When** 用户点击"新增"按钮
|
||
**And** 填写身份证号为"110101199001011234"
|
||
**And** 点击"确定"按钮
|
||
**Then** 系统应提示"该身份证号已存在"
|
||
**And** 不保存数据
|
||
|
||
---
|
||
|
||
### Requirement: 系统SHALL支持编辑员工信息
|
||
|
||
系统MUST提供编辑功能,允许用户修改已存在的员工信息及其亲属信息。
|
||
|
||
#### Scenario: 编辑员工基本信息
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:edit` 权限
|
||
**And** 系统中存在一条员工记录
|
||
**When** 用户点击该记录的"编辑"按钮
|
||
**And** 修改姓名为"李四"
|
||
**And** 点击"确定"按钮
|
||
**Then** 系统应更新员工信息并提示"操作成功"
|
||
**And** 列表中应显示更新后的姓名
|
||
|
||
#### Scenario: 编辑员工时新增亲属
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:edit` 权限
|
||
**And** 系统中存在一条员工记录,该员工有1个亲属
|
||
**When** 用户点击该记录的"编辑"按钮
|
||
**And** 在亲属区域添加新的亲属信息
|
||
**And** 点击"确定"按钮
|
||
**Then** 系统应保存新的亲属信息
|
||
**And** 查询该员工详情时应显示2个亲属
|
||
|
||
#### Scenario: 编辑员工时修改亲属信息
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:edit` 权限
|
||
**And** 系统中存在一条员工记录,该员工有亲属"李四"
|
||
**When** 用户点击该记录的"编辑"按钮
|
||
**And** 修改亲属姓名为"王五"
|
||
**And** 点击"确定"按钮
|
||
**Then** 系统应更新亲属信息
|
||
**And** 查询该员工详情时应显示更新后的亲属姓名
|
||
|
||
#### Scenario: 编辑员工时删除亲属
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:edit` 权限
|
||
**And** 系统中存在一条员工记录,该员工有2个亲属
|
||
**When** 用户点击该记录的"编辑"按钮
|
||
**And** 删除其中一个亲属
|
||
**And** 点击"确定"按钮
|
||
**Then** 系统应删除该亲属信息
|
||
**And** 查询该员工详情时应仅显示1个亲属
|
||
|
||
#### Scenario: 编辑时清除所有亲属
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:edit` 权限
|
||
**And** 系统中存在一条员工记录,该员工有亲属信息
|
||
**When** 用户点击该记录的"编辑"按钮
|
||
**And** 删除所有亲属
|
||
**And** 点击"确定"按钮
|
||
**Then** 系统应删除所有亲属信息
|
||
**And** 查询该员工详情时亲属列表应为空
|
||
|
||
#### Scenario: 编辑时姓名为空应校验失败
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:edit` 权限
|
||
**And** 系统中存在一条员工记录
|
||
**When** 用户点击该记录的"编辑"按钮
|
||
**And** 清空姓名字段
|
||
**And** 点击"确定"按钮
|
||
**Then** 系统应提示"姓名不能为空"
|
||
**And** 不更新数据
|
||
|
||
#### Scenario: 编辑时亲属信息校验
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:edit` 权限
|
||
**And** 系统中存在一条员工记录
|
||
**When** 用户点击该记录的"编辑"按钮
|
||
**And** 添加亲属信息但不填写亲属姓名
|
||
**And** 点击"确定"按钮
|
||
**Then** 系统应提示"亲属姓名不能为空"
|
||
**And** 不更新数据
|
||
|
||
---
|
||
|
||
### Requirement: 系统SHALL支持删除员工信息
|
||
|
||
系统MUST提供删除功能,允许用户删除不再需要的员工记录,删除员工时应级联删除其亲属信息。
|
||
|
||
#### Scenario: 删除单条员工记录
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:remove` 权限
|
||
**And** 系统中存在一条员工记录
|
||
**When** 用户点击该记录的"删除"按钮
|
||
**And** 确认删除操作
|
||
**Then** 系统应删除该员工记录
|
||
**And** 系统应同时删除该员工的所有亲属信息
|
||
**And** 列表中不再显示该记录
|
||
|
||
#### Scenario: 批量删除员工记录
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:remove` 权限
|
||
**And** 系统中存在多条员工记录
|
||
**When** 用户勾选3条记录
|
||
**And** 点击"删除"按钮
|
||
**And** 确认删除操作
|
||
**Then** 系统应删除选中的3条员工记录
|
||
**And** 系统应同时删除这3个员工的所有亲属信息
|
||
**And** 列表中不再显示这3条记录
|
||
|
||
---
|
||
|
||
### Requirement: 系统SHALL支持查看员工详情
|
||
|
||
系统MUST提供详情查看功能,允许用户查看员工的完整信息及亲属列表。
|
||
|
||
#### Scenario: 查看员工基本信息
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:query` 权限
|
||
**And** 系统中存在一条员工记录
|
||
**When** 用户点击该记录的"查看"按钮
|
||
**Then** 系统应显示员工的完整基本信息
|
||
**And** 信息应包括:姓名、柜员号、所属机构号、身份证号、电话、入职时间
|
||
|
||
#### Scenario: 查看员工亲属信息
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:query` 权限
|
||
**And** 系统中存在一条员工记录,该员工有2个亲属
|
||
**When** 用户点击该记录的"查看"按钮
|
||
**Then** 系统应显示员工的基本信息
|
||
**And** 系统应显示该员工的亲属列表
|
||
**And** 亲属信息应包括:亲属姓名、亲属身份证号、亲属手机号、与员工关系
|
||
|
||
#### Scenario: 查看无亲属的员工
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:query` 权限
|
||
**And** 系统中存在一条员工记录,该员工无亲属信息
|
||
**When** 用户点击该记录的"查看"按钮
|
||
**Then** 系统应显示员工的基本信息
|
||
**And** 亲属列表应显示为空或提示"暂无亲属信息"
|
||
|
||
---
|
||
|
||
### Requirement: 系统SHALL支持导出员工信息
|
||
|
||
系统MUST提供导出功能,允许用户将查询结果导出为 Excel 文件。
|
||
|
||
#### Scenario: 导出所有员工数据
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:export` 权限
|
||
**And** 系统中存在100条员工记录
|
||
**When** 用户点击"导出"按钮
|
||
**And** 不设置任何筛选条件
|
||
**Then** 系统应生成包含100条记录的 Excel 文件并下载
|
||
|
||
#### Scenario: 导出筛选后的员工数据
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:export` 权限
|
||
**And** 系统中存在多个机构的员工记录
|
||
**When** 用户筛选所属机构号为"1001"
|
||
**And** 点击"导出"按钮
|
||
**Then** 系统应生成仅包含该机构员工记录的 Excel 文件并下载
|
||
|
||
#### Scenario: 导出的 Excel 文件格式正确
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:export` 权限
|
||
**When** 用户点击"导出"按钮
|
||
**Then** Excel 文件应包含以下列:姓名、柜员号、所属机构号、身份证号、电话、入职时间
|
||
**And** 表头应使用中文显示
|
||
**And** 数据应正确显示
|
||
|
||
---
|
||
|
||
### Requirement: 系统SHALL支持下载 Excel 导入模板
|
||
|
||
系统MUST提供模板下载功能,允许用户下载标准的 Excel 导入模板。
|
||
|
||
#### Scenario: 下载员工信息导入模板
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:import` 权限
|
||
**When** 用户点击"下载模板"按钮
|
||
**Then** 系统应生成 Excel 模板文件并下载
|
||
**And** 模板应包含"员工信息" Sheet
|
||
**And** 模板应包含"亲属信息" Sheet(可选)
|
||
**And** 员工信息 Sheet 应包含以下列:姓名、柜员号、所属机构号、身份证号、电话、入职时间
|
||
**And** 亲属信息 Sheet 应包含以下列:员工身份证号、亲属姓名、亲属身份证号、亲属手机号、与员工关系
|
||
|
||
#### Scenario: 模板中的示例数据正确
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:import` 权限
|
||
**When** 用户下载导入模板
|
||
**Then** 模板应包含至少一行示例数据
|
||
**And** 示例数据应展示正确的填写格式
|
||
|
||
---
|
||
|
||
### Requirement: 系统SHALL支持通过 Excel 批量导入员工信息
|
||
|
||
系统MUST提供批量导入功能,允许用户通过 Excel 文件批量导入员工信息,支持同时导入员工和亲属数据。
|
||
|
||
#### Scenario: 导入包含有效员工数据的 Excel 文件
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:import` 权限
|
||
**And** 用户已准备好包含10条有效员工数据的 Excel 文件
|
||
**When** 用户点击"导入"按钮
|
||
**And** 选择准备好的 Excel 文件
|
||
**And** 点击"确定"
|
||
**Then** 系统应导入10条记录并提示"成功导入10条数据"
|
||
**And** 列表中应显示这10条新增记录
|
||
|
||
#### Scenario: 导入时同时导入员工和亲属信息
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:import` 权限
|
||
**And** 用户准备的 Excel 文件包含5条员工数据
|
||
**And** 亲属信息 Sheet 包含这5个员工的亲属信息
|
||
**When** 用户点击"导入"按钮
|
||
**And** 选择 Excel 文件
|
||
**And** 点击"确定"
|
||
**Then** 系统应导入5条员工记录及其关联的亲属信息
|
||
**And** 提示导入成功
|
||
|
||
#### Scenario: 导入时部分数据格式错误
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:import` 权限
|
||
**And** 用户准备的 Excel 文件包含10条数据
|
||
**And** 其中2条数据的姓名字段为空
|
||
**When** 用户点击"导入"按钮
|
||
**And** 选择 Excel 文件
|
||
**And** 点击"确定"
|
||
**Then** 系统应仅导入8条有效数据
|
||
**And** 提示"成功导入8条数据,失败2条数据"
|
||
**And** 显示失败行的错误详情
|
||
|
||
#### Scenario: 导入时柜员号重复
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:import` 权限
|
||
**And** 系统中已存在柜员号为"001"的员工
|
||
**And** 用户准备的 Excel 文件包含柜员号为"001"的记录
|
||
**When** 用户点击"导入"按钮
|
||
**And** 选择 Excel 文件
|
||
**And** 不勾选"更新已存在数据"
|
||
**And** 点击"确定"
|
||
**Then** 系统应提示该行数据"柜员号已存在"
|
||
**And** 该行数据不被导入
|
||
|
||
#### Scenario: 导入时选择更新支持模式
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:import` 权限
|
||
**And** 系统中已存在柜员号为"001"的员工
|
||
**And** 用户准备的 Excel 文件包含相同柜员号的记录但姓名不同
|
||
**When** 用户点击"导入"按钮
|
||
**And** 选择 Excel 文件
|
||
**And** 勾选"更新已存在数据"选项
|
||
**And** 点击"确定"
|
||
**Then** 系统应更新该柜员号对应的记录
|
||
**And** 提示包含更新成功的消息
|
||
|
||
#### Scenario: 导入时亲属信息关联失败
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:import` 权限
|
||
**And** 用户准备的 Excel 文件包含亲属信息
|
||
**And** 亲属信息 Sheet 中某条记录的员工身份证号在员工信息 Sheet 中不存在
|
||
**When** 用户点击"导入"按钮
|
||
**And** 选择 Excel 文件
|
||
**And** 点击"确定"
|
||
**Then** 系统应提示该亲属记录"员工身份证号不存在"
|
||
**And** 该亲属记录不被导入
|
||
|
||
#### Scenario: 导入时身份证号格式校验
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:import` 权限
|
||
**And** 用户准备的 Excel 文件中某条记录的身份证号格式不正确
|
||
**When** 用户点击"导入"按钮
|
||
**And** 选择 Excel 文件
|
||
**And** 点击"确定"
|
||
**Then** 系统应提示该行数据"身份证号格式不正确"
|
||
**And** 该行数据不被导入
|
||
|
||
#### Scenario: 导入时电话格式校验
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:import` 权限
|
||
**And** 用户准备的 Excel 文件中某条记录的电话格式不正确
|
||
**When** 用户点击"导入"按钮
|
||
**And** 选择 Excel 文件
|
||
**And** 点击"确定"
|
||
**Then** 系统应提示该行数据"电话格式不正确"
|
||
**And** 该行数据不被导入
|
||
|
||
#### Scenario: 导入时仅导入员工信息(无亲属 Sheet)
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:import` 权限
|
||
**And** 用户准备的 Excel 文件仅包含员工信息 Sheet
|
||
**And** 不包含亲属信息 Sheet
|
||
**When** 用户点击"导入"按钮
|
||
**And** 选择 Excel 文件
|
||
**And** 点击"确定"
|
||
**Then** 系统应正常导入员工信息
|
||
**And** 提示导入成功
|
||
|
||
---
|
||
|
||
### Requirement: 系统SHALL验证用户权限
|
||
|
||
系统MUST根据用户的角色和权限控制其对员工信息功能的访问。
|
||
|
||
#### Scenario: 无权限用户访问列表应被拒绝
|
||
|
||
**Given** 用户已登录系统
|
||
**And** 该用户不具有 `dpc:employee:list` 权限
|
||
**When** 用户尝试访问员工信息管理页面
|
||
**Then** 系统应提示"您没有权限执行此操作"
|
||
**And** 不显示列表数据
|
||
|
||
#### Scenario: 无权限用户尝试新增应被拒绝
|
||
|
||
**Given** 用户已登录系统
|
||
**And** 该用户不具有 `dpc:employee:add` 权限
|
||
**When** 用户尝试点击"新增"按钮
|
||
**Then** 系统应隐藏或禁用"新增"按钮
|
||
|
||
#### Scenario: 无权限用户尝试编辑应被拒绝
|
||
|
||
**Given** 用户已登录系统
|
||
**And** 该用户不具有 `dpc:employee:edit` 权限
|
||
**When** 用户尝试点击"编辑"按钮
|
||
**Then** 系统应隐藏或禁用"编辑"按钮
|
||
|
||
#### Scenario: 无权限用户尝试删除应被拒绝
|
||
|
||
**Given** 用户已登录系统
|
||
**And** 该用户不具有 `dpc:employee:remove` 权限
|
||
**When** 用户尝试点击"删除"按钮
|
||
**Then** 系统应隐藏或禁用"删除"按钮
|
||
|
||
#### Scenario: 无权限用户尝试导出应被拒绝
|
||
|
||
**Given** 用户已登录系统
|
||
**And** 该用户不具有 `dpc:employee:export` 权限
|
||
**When** 用户尝试点击"导出"按钮
|
||
**Then** 系统应隐藏或禁用"导出"按钮
|
||
|
||
#### Scenario: 无权限用户尝试导入应被拒绝
|
||
|
||
**Given** 用户已登录系统
|
||
**And** 该用户不具有 `dpc:employee:import` 权限
|
||
**When** 用户尝试点击"导入"按钮
|
||
**Then** 系统应隐藏或禁用"导入"按钮
|
||
|
||
---
|
||
|
||
### Requirement: 系统SHALL记录操作日志
|
||
|
||
系统MUST记录用户对员工信息的关键操作,包括新增、修改、删除、导入等操作。
|
||
|
||
#### Scenario: 新增操作应记录日志
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:add` 权限
|
||
**When** 用户成功新增一条员工记录
|
||
**Then** 系统应在操作日志中记录
|
||
**And** 日志应包含:操作人、操作时间、操作类型、操作内容
|
||
|
||
#### Scenario: 修改操作应记录日志
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:edit` 权限
|
||
**When** 用户成功修改一条员工记录
|
||
**Then** 系统应在操作日志中记录
|
||
**And** 日志应包含:操作人、操作时间、操作类型、修改内容
|
||
|
||
#### Scenario: 删除操作应记录日志
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:remove` 权限
|
||
**When** 用户成功删除一条员工记录
|
||
**Then** 系统应在操作日志中记录
|
||
**And** 日志应包含:操作人、操作时间、操作类型、删除的记录ID
|
||
|
||
#### Scenario: 导入操作应记录日志
|
||
|
||
**Given** 用户已登录系统且具有 `dpc:employee:import` 权限
|
||
**When** 用户成功导入员工数据
|
||
**Then** 系统应在操作日志中记录
|
||
**And** 日志应包含:操作人、操作时间、操作类型、导入数量
|