# 信息维护年收入字段后端实施计划

## 目标
- 员工信息维护新增 `annual_income`
- 员工亲属关系维护新增 `annual_income`
- 覆盖数据库、实体、DTO/VO、Mapper、导入导出、失败记录、服务层校验

## 实施内容
1. 数据库变更
- 在 `ccdi_base_staff` 新增 `annual_income DECIMAL(15,2) NULL`
- 在 `ccdi_staff_fmy_relation` 新增 `annual_income DECIMAL(15,2) NULL`
- 增量脚本落库到 `sql/migration/2026-03-17-add-annual-income-to-info-maintenance.sql`

2. 员工信息链路
- 扩展 `CcdiBaseStaff`、`CcdiBaseStaffAddDTO`、`CcdiBaseStaffEditDTO`、`CcdiBaseStaffVO`
- 扩展 `CcdiBaseStaffExcel` 与 `ImportFailureVO`
- 更新 `CcdiBaseStaffMapper.xml` 的分页查询、批量插入、批量更新 SQL
- 在 `CcdiBaseStaffServiceImpl` 与 `CcdiBaseStaffImportServiceImpl` 增加非负且最多两位小数校验

3. 员工亲属关系链路
- 扩展 `CcdiStaffFmyRelation`、`CcdiStaffFmyRelationAddDTO`、`CcdiStaffFmyRelationEditDTO`、`CcdiStaffFmyRelationVO`
- 扩展 `CcdiStaffFmyRelationExcel` 与 `StaffFmyRelationImportFailureVO`
- 更新 `CcdiStaffFmyRelationMapper.xml` 的列表、详情、导出、批量插入 SQL
- 在 `CcdiStaffFmyRelationServiceImpl` 与 `CcdiStaffFmyRelationImportServiceImpl` 增加非负且最多两位小数校验

## 测试
- `CcdiBaseStaffServiceImplTest`
- `CcdiStaffFmyRelationServiceImplTest`
- `CcdiBaseStaffImportServiceImplTest`
- `CcdiStaffFmyRelationImportServiceImplTest`
- `CcdiBaseStaffMapperTest`
- `CcdiStaffFmyRelationMapperTest`

## 验收标准
- 列表、详情、导出和导入都能透传 `annualIncome`
- 服务层可拦截负数与超过两位小数
- 失败记录可返回原始年收入值
