可支配收入数据填报 — 技术方案
1. 接口
| 方法 |
路径 |
权限 |
| GET |
/dataModel/disposableIncome/list |
list |
| GET |
/dataModel/disposableIncome/{id} |
query |
| POST |
/dataModel/disposableIncome |
add |
| PUT |
/dataModel/disposableIncome |
edit |
| DELETE |
/dataModel/disposableIncome/{ids} |
remove |
| GET |
/dataModel/disposableIncome/yearOptions |
list |
年份选项:与存栏等模块一致,当前年起向前 5 年共 6 个(YakHerdInventoryYearSupport)。
2. 表结构
表名:biz_disposable_income(见 sql/biz_disposable_income.sql)
| 字段 |
说明 |
| stat_year |
所属年份,唯一 |
| rural_disposable_income |
农村居民人均可支配收入(元) |
| income_increase |
增幅(元),可选可空 |
| income_growth_rate |
增速(小数),可选可空 |
| poverty_net_income |
脱贫人口人均纯收入(元) |
| remark |
备注 |
3. 增幅 / 增速计算
实现:DisposableIncomeGrowthSupport、BizDisposableIncomeServiceImpl.applyGrowthForSave
| 场景 |
行为 |
| 新增,增幅/增速未填 |
fillMissingGrowth:有上年则补齐 |
| 修改,年份与可支配收入未变 |
fillMissingGrowth:仅补齐未填项,保留手工值 |
| 修改,年份或可支配收入变更 |
recalculateGrowth:清空后按公式强制重算 |
| 无上年 / 上年可支配收入为 0 |
增幅可算则写入;增速在除零场景保持 null |
公式:
- 增幅 = 本年
rural_disposable_income − 上年同字段
- 增速 = 增幅 ÷ 上年
rural_disposable_income(保留 6 位小数)
4. 后端要点
| 项 |
路径 |
| Domain |
BizDisposableIncome |
| Mapper |
BizDisposableIncomeMapper / XML |
| Service |
IBizDisposableIncomeService / BizDisposableIncomeServiceImpl |
| Controller |
BizDisposableIncomeController → /dataModel/disposableIncome |
| 校验 |
DisposableIncomeValidation |
| 单元测试 |
DisposableIncomeGrowthSupportTest、DisposableIncomeValidationTest |
5. 前端
| 项 |
说明 |
| 页面 |
ruoyi-ui/src/views/dataModel/disposableIncome/index.vue |
| API |
ruoyi-ui/src/api/dataModel/disposableIncome.js |
| i18n |
ruoyi-ui/src/lang/zh/dataModel.js、bo/dataModel.js → disposableIncome |
| 菜单组件路径 |
dataModel/disposableIncome/index |
| 增幅/增速表单 |
普通输入框(支持空值);提交空 → null,避免 el-input-number 把 null 显示/提交成 0 |
| 改年份或可支配收入 |
前端清空增幅/增速,后端强制重算 |
| 列表 / 详情展示 |
formatIncrease / formatGrowthRate:库中 null 显示为 0.00 / 0.00% |