依据:同目录
共同富裕成果功能需求.md。本模块为月度成果台账 CRUD,无发布/下架;本文给出库表与 HTTP 接口约定。
| 项 | 说明 |
|---|---|
| 后端 | RuoYi v3.9.2(springboot2 分支):JDK 8、Spring Boot 2.x、Spring MVC、MyBatis、Druid |
| 数据库 | MySQL 5.7.39,InnoDB,utf8mb4 |
| 前端 | 若依 Vue2;统计范围用 月份选择器,提交 YYYY-MM |
| 代码包 | com.ruoyi.web.modules.commonprosperity(建议,与「共同富裕项目」同包) |
分层:Controller(校验、权限、AjaxResult / TableDataInfo)→ Service(字段校验、统计范围唯一性)→ Mapper/XML → domain。
业务特征(摘要)
stat_period 倒序,其次 create_time 倒序。stat_period(YYYY-MM) 在适用范围(如租户)内唯一;新增/修改冲突时业务失败。biz_common_prosperity_achievement(共同富裕成果)| 字段 | 类型 | 非空 | 默认值 | 说明 |
|---|---|---|---|---|
id |
bigint(20) |
Y | 自增 | 主键 |
stat_period |
char(7) |
Y | — | 统计范围,YYYY-MM |
collective_economy_income |
decimal(14,2) |
Y | — | 集体经济收入(万元,≥0) |
employment_driven_count |
int(11) |
Y | 0 |
带动就业人数(人,≥0 整数) |
new_job_positions |
int(11) |
Y | 0 |
新增就业岗位(个,≥0 整数) |
env_project_count |
int(11) |
Y | 0 |
环境治理项目数(个) |
new_green_area |
decimal(12,2) |
Y | — | 新增绿化面积(亩,≥0) |
cultural_heritage_count |
int(11) |
Y | 0 |
文化传承人数(人) |
ethnic_integration_project_count |
int(11) |
Y | 0 |
民族融合项目数(个) |
ethnic_unity_activity_count |
int(11) |
Y | 0 |
民族团结活动数(个) |
digital_platform_usage_rate |
decimal(8,4) |
Y | — | 数字平台使用率(0~1) |
regional_public_brand_count |
int(11) |
Y | 0 |
区域公共品牌数(个) |
brand_premium_rate |
decimal(8,4) |
Y | — | 品牌产品溢价率(0~1) |
create_by / create_time / update_by / update_time |
若依惯例 | — | — | 审计 |
remark |
varchar(500) |
N | NULL | 备注 |
索引:PRIMARY KEY (id);UNIQUE KEY uk_stat_period (stat_period);KEY idx_stat_period (stat_period)(列表排序/按年筛选)。
若后续多租户:将唯一约束改为
UNIQUE (tenant_id, stat_period),并增加tenant_id字段。
CREATE TABLE `biz_common_prosperity_achievement` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`stat_period` char(7) NOT NULL COMMENT '统计范围YYYY-MM',
`collective_economy_income` decimal(14,2) NOT NULL COMMENT '集体经济收入(万元)',
`employment_driven_count` int(11) NOT NULL DEFAULT '0' COMMENT '带动就业人数',
`new_job_positions` int(11) NOT NULL DEFAULT '0' COMMENT '新增就业岗位',
`env_project_count` int(11) NOT NULL DEFAULT '0' COMMENT '环境治理项目数',
`new_green_area` decimal(12,2) NOT NULL COMMENT '新增绿化面积(亩)',
`cultural_heritage_count` int(11) NOT NULL DEFAULT '0' COMMENT '文化传承人数',
`ethnic_integration_project_count` int(11) NOT NULL DEFAULT '0' COMMENT '民族融合项目数',
`ethnic_unity_activity_count` int(11) NOT NULL DEFAULT '0' COMMENT '民族团结活动数',
`digital_platform_usage_rate` decimal(8,4) NOT NULL COMMENT '数字平台使用率0-1',
`regional_public_brand_count` int(11) NOT NULL DEFAULT '0' COMMENT '区域公共品牌数',
`brand_premium_rate` decimal(8,4) NOT NULL COMMENT '品牌产品溢价率0-1',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_stat_period` (`stat_period`),
KEY `idx_stat_period` (`stat_period`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='共同富裕成果';
| 需求名称 | 库字段 | API 驼峰 |
|---|---|---|
| 统计范围 | stat_period |
statPeriod |
| 集体经济收入 | collective_economy_income |
collectiveEconomyIncome |
| 带动就业人数 | employment_driven_count |
employmentDrivenCount |
| 新增就业岗位 | new_job_positions |
newJobPositions |
| 环境治理项目数 | env_project_count |
envProjectCount |
| 新增绿化面积 | new_green_area |
newGreenArea |
| 文化传承人数 | cultural_heritage_count |
culturalHeritageCount |
| 民族融合项目数 | ethnic_integration_project_count |
ethnicIntegrationProjectCount |
| 民族团结活动数 | ethnic_unity_activity_count |
ethnicUnityActivityCount |
| 数字平台使用率 | digital_platform_usage_rate |
digitalPlatformUsageRate |
| 区域公共品牌数 | regional_public_brand_count |
regionalPublicBrandCount |
| 品牌产品溢价率 | brand_premium_rate |
brandPremiumRate |
统一响应:AjaxResult(code / msg / data)或分页 TableDataInfo(rows、total)。
权限标识(示例):commonProsperity:achievement:list|query|add|edit|remove|export
Base Path(示例):/commonProsperity/achievement
| # | 说明 | Method | URI | 权限 | 要点 |
|---|---|---|---|---|---|
| 3.1 | 分页列表 | GET | /commonProsperity/achievement/list |
commonProsperity:achievement:list |
Query 3.1.1;排序 stat_period DESC, create_time DESC, id DESC |
| 3.2 | 详情 | GET | /commonProsperity/achievement/{id} |
commonProsperity:achievement:query |
全字段 |
| 3.3 | 新增 | POST | /commonProsperity/achievement |
commonProsperity:achievement:add |
Body 3.3.1;校验 stat_period 唯一 |
| 3.4 | 修改 | PUT | /commonProsperity/achievement |
commonProsperity:achievement:edit |
Body 含 id;改 statPeriod 时排除自身后查重 |
| 3.5 | 删除 | DELETE | /commonProsperity/achievement/{ids} |
commonProsperity:achievement:remove |
支持逗号分隔批量 id |
| 3.6 | 导出(可选) | POST | /commonProsperity/achievement/export |
commonProsperity:achievement:export |
与列表同筛选条件 |
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
pageNum / pageSize |
int | N | 默认 1 / 20 |
statYear |
int / string | N | 统计年份,如 2026;匹配 stat_period 以该年开头(2026-01~2026-12);空则不过滤 |
按年筛选(SQL 示例):stat_period LIKE CONCAT(#{statYear}, '-%') 或 LEFT(stat_period, 4) = #{statYear}。
| 字段 | 必填 | 说明 |
|---|---|---|
id |
修改 Y | 主键 |
statPeriod |
Y | YYYY-MM,正则 `^\d{4}-(0[1-9] |
collectiveEconomyIncome |
Y | ≥0,最多 2 位小数 |
employmentDrivenCount |
Y | ≥0 整数 |
newJobPositions |
Y | ≥0 整数 |
envProjectCount |
Y | ≥0 整数 |
newGreenArea |
Y | ≥0,最多 2 位小数 |
culturalHeritageCount |
Y | ≥0 整数 |
ethnicIntegrationProjectCount |
Y | ≥0 整数 |
ethnicUnityActivityCount |
Y | ≥0 整数 |
digitalPlatformUsageRate |
Y | ≥0 且 ≤1 |
regionalPublicBrandCount |
Y | ≥0 整数 |
brandPremiumRate |
Y | ≥0 且 ≤1 |
remark |
N | 备注 |
列表行字段(示例):id、statPeriod、collectiveEconomyIncome、employmentDrivenCount、newJobPositions、envProjectCount、newGreenArea、digitalPlatformUsageRate、regionalPublicBrandCount、createTime。
| 项 | 规则 |
|---|---|
statPeriod |
非空;格式 YYYY-MM;唯一(新增 / 修改排除当前 id) |
| 金额、面积 | ≥0;小数位与库表一致 |
| 整数项 | ≥0;无小数部分 |
| 比率项 | digitalPlatformUsageRate、brandPremiumRate ∈ [0, 1] |
| 删除 | 无状态限制;物理删或逻辑删按项目惯例 |
| 类型 | 名称 | 权限标识 |
|---|---|---|
| 目录 | 共同富裕 | — |
| 菜单 | 共同富裕成果 | commonProsperity:achievement:list |
| 按钮 | 查询 | commonProsperity:achievement:query |
| 按钮 | 新增 | commonProsperity:achievement:add |
| 按钮 | 修改 | commonProsperity:achievement:edit |
| 按钮 | 删除 | commonProsperity:achievement:remove |
| 按钮 | 导出 | commonProsperity:achievement:export |
组件路径建议:commonProsperity/achievement/index;API 文件 ruoyi-ui/src/api/commonProsperity/achievement.js。
biz_common_prosperity_achievement DDL、菜单权限 SQL(sql/biz_common_prosperity_achievement.sql)BizCommonProsperityAchievement Domain / Mapper / Service / ControllerstatYear 筛选、月份选择 statPeriod、比率 0~1 校验| 版本 | 说明 |
|---|---|
| 1.0 | 初稿:对齐功能需求;单表台账;stat_period 唯一;Base Path /commonProsperity/achievement |