wwh 1 день назад
Родитель
Сommit
228aaa518e

+ 1 - 1
baqing-admin/src/main/java/com/ruoyi/web/modules/screen/controller/HomeScreenController.java

@@ -110,7 +110,7 @@ public class HomeScreenController extends BaseController
110
 
110
 
111
     /**
111
     /**
112
      * 农牧户数据明细(分页);按年、月倒序。草场面积数据明细复用本接口。
112
      * 农牧户数据明细(分页);按年、月倒序。草场面积数据明细复用本接口。
113
-     * <p>查询条件:所属年份(可选,默认当前年)、所属月份(可选,默认当前月)、所属乡镇、所属村。
113
+     * <p>查询条件:所属年份(可选,默认当前年)、所属月份(可选,未传不过滤)、所属乡镇、所属村。
114
      * 数据源 {@code biz_farmer_household},返回全部业务字段(含 {@code pastureContractArea} 等)。</p>
114
      * 数据源 {@code biz_farmer_household},返回全部业务字段(含 {@code pastureContractArea} 等)。</p>
115
      */
115
      */
116
     @GetMapping("/farmerHouseholds")
116
     @GetMapping("/farmerHouseholds")

+ 1 - 1
baqing-admin/src/main/java/com/ruoyi/web/modules/screen/service/IHomeScreenService.java

@@ -70,7 +70,7 @@ public interface IHomeScreenService
70
      * 草场面积数据明细复用本方法,不另开接口。
70
      * 草场面积数据明细复用本方法,不另开接口。
71
      *
71
      *
72
      * @param statYear      所属年份,可选;未传默认当前自然年
72
      * @param statYear      所属年份,可选;未传默认当前自然年
73
-     * @param statMonth     所属月份,可选;未传默认当前自然月
73
+     * @param statMonth     所属月份,可选;未传不过滤月份(该年全年,按月倒序)
74
      * @param townDeptId    所属乡镇,可选
74
      * @param townDeptId    所属乡镇,可选
75
      * @param villageDeptId 所属村,可选
75
      * @param villageDeptId 所属村,可选
76
      */
76
      */

+ 1 - 1
baqing-admin/src/main/java/com/ruoyi/web/modules/screen/service/impl/HomeScreenServiceImpl.java

@@ -383,7 +383,7 @@ public class HomeScreenServiceImpl implements IHomeScreenService
383
         YearMonth now = HomeScreenSupport.currentYearMonth();
383
         YearMonth now = HomeScreenSupport.currentYearMonth();
384
         BizFarmerHousehold query = new BizFarmerHousehold();
384
         BizFarmerHousehold query = new BizFarmerHousehold();
385
         query.setStatYear(statYear != null ? statYear : now.getYear());
385
         query.setStatYear(statYear != null ? statYear : now.getYear());
386
-        query.setStatMonth(statMonth != null ? statMonth : now.getMonthValue());
386
+        query.setStatMonth(statMonth);
387
         query.setTownDeptId(townDeptId);
387
         query.setTownDeptId(townDeptId);
388
         query.setVillageDeptId(villageDeptId);
388
         query.setVillageDeptId(villageDeptId);
389
         // 大屏全县口径,清空 dataScope,避免走填报部门权限
389
         // 大屏全县口径,清空 dataScope,避免走填报部门权限

+ 3 - 3
baqing-admin/src/test/java/com/ruoyi/web/modules/screen/service/impl/HomeScreenServiceImplTest.java

@@ -252,15 +252,15 @@ class HomeScreenServiceImplTest
252
     }
252
     }
253
 
253
 
254
     @Test
254
     @Test
255
-    @DisplayName("DP-SY-UT-032b 农牧户明细未传年默认当前年月")
256
-    void ut032b_farmerHouseholdsDefaultCurrentYearMonth()
255
+    @DisplayName("DP-SY-UT-032b 农牧户明细未传年默认当前年,未传不过滤")
256
+    void ut032b_farmerHouseholdsDefaultCurrentYearNoMonth()
257
     {
257
     {
258
         java.time.YearMonth now = com.ruoyi.web.modules.screen.support.HomeScreenSupport.currentYearMonth();
258
         java.time.YearMonth now = com.ruoyi.web.modules.screen.support.HomeScreenSupport.currentYearMonth();
259
         when(bizFarmerHouseholdMapper.selectBizFarmerHouseholdList(any(BizFarmerHousehold.class)))
259
         when(bizFarmerHouseholdMapper.selectBizFarmerHouseholdList(any(BizFarmerHousehold.class)))
260
                 .thenAnswer(invocation -> {
260
                 .thenAnswer(invocation -> {
261
                     BizFarmerHousehold q = invocation.getArgument(0);
261
                     BizFarmerHousehold q = invocation.getArgument(0);
262
                     assertEquals(now.getYear(), q.getStatYear().intValue());
262
                     assertEquals(now.getYear(), q.getStatYear().intValue());
263
-                    assertEquals(now.getMonthValue(), q.getStatMonth().intValue());
263
+                    assertNull(q.getStatMonth());
264
                     return Collections.emptyList();
264
                     return Collections.emptyList();
265
                 });
265
                 });
266
 
266
 

+ 2 - 1
doc/大屏/首页/大屏首页功能需求.md

@@ -90,7 +90,7 @@
90
 | **农牧户分类** | 所选年 **Y** 内 `biz_farmer_household` 最大填报月各分类标记为「是」的村级记录数(纯牧户/无畜户/绝户/超载牧户/需要封顶/需要保底);柱状图;单位**个**;字段 **`farmerHouseholdClassification`** |
90
 | **农牧户分类** | 所选年 **Y** 内 `biz_farmer_household` 最大填报月各分类标记为「是」的村级记录数(纯牧户/无畜户/绝户/超载牧户/需要封顶/需要保底);柱状图;单位**个**;字段 **`farmerHouseholdClassification`** |
91
 | **人均收入** | `biz_disposable_income` 以库中**最大所属年**为终点向前共 5 年双折线:农村居民人均可支配收入、脱贫人口人均纯收入;缺年补 0;无数据则空;单位**元**;**不随所选年 Y 切换**;字段 **`perCapitaIncomeTrend`** |
91
 | **人均收入** | `biz_disposable_income` 以库中**最大所属年**为终点向前共 5 年双折线:农村居民人均可支配收入、脱贫人口人均纯收入;缺年补 0;无数据则空;单位**元**;**不随所选年 Y 切换**;字段 **`perCapitaIncomeTrend`** |
92
 | **人均收入明细** | 独立接口分页查询 `biz_disposable_income`;条件:所属年份(可选,**默认当前年**);按**所属年份倒序**;返回年份、农村居民人均可支配收入、增幅、增速、脱贫人口人均纯收入 |
92
 | **人均收入明细** | 独立接口分页查询 `biz_disposable_income`;条件:所属年份(可选,**默认当前年**);按**所属年份倒序**;返回年份、农村居民人均可支配收入、增幅、增速、脱贫人口人均纯收入 |
93
-| **农牧户数据明细** | 独立接口分页查询 `biz_farmer_household`;条件:年(可选,**默认当前年**)、月(可选,**默认当前月**)、乡镇、村;按**年、月倒序**;返回全部业务列表字段 |
93
+| **农牧户数据明细** | 独立接口分页查询 `biz_farmer_household`;条件:年(可选,**默认当前年**)、月(可选,**未传不过滤**)、乡镇、村;按**年、月倒序**;返回全部业务列表字段 |
94
 | **草场面积数据明细** | **复用**农牧户数据明细接口(同表同条件;面积字段含 `pasture_contract_area` 等);**不另开**独立接口 |
94
 | **草场面积数据明细** | **复用**农牧户数据明细接口(同表同条件;面积字段含 `pasture_contract_area` 等);**不另开**独立接口 |
95
 | **合作社数据明细** | 独立接口分页查询 `biz_cooperative_development`;条件同农牧户明细;按**年、月倒序**;返回全部业务列表字段 |
95
 | **合作社数据明细** | 独立接口分页查询 `biz_cooperative_development`;条件同农牧户明细;按**年、月倒序**;返回全部业务列表字段 |
96
 | **家庭牧场数据明细** | 独立接口分页查询 `biz_family_ranch`;条件同农牧户明细;按**年、月倒序**;返回全部业务列表字段 |
96
 | **家庭牧场数据明细** | 独立接口分页查询 `biz_family_ranch`;条件同农牧户明细;按**年、月倒序**;返回全部业务列表字段 |
@@ -503,6 +503,7 @@ flowchart TB
503
 
503
 
504
 | 版本 | 日期 | 说明 |
504
 | 版本 | 日期 | 说明 |
505
 | --- | --- | --- |
505
 | --- | --- | --- |
506
+| 1.20 | 2026-08-18 | 农牧户明细:月份未传不过滤(该年全年);年份未传仍默认当前年 |
506
 | 1.19 | 2026-07-24 | 人均收入趋势改为以库中最大所属年为终点的最近 5 年 |
507
 | 1.19 | 2026-07-24 | 人均收入趋势改为以库中最大所属年为终点的最近 5 年 |
507
 | 1.18 | 2026-07-24 | 牦牛月度出栏趋势改为按填报最大月 N 输出 1~N 月(区间缺月补 0) |
508
 | 1.18 | 2026-07-24 | 牦牛月度出栏趋势改为按填报最大月 N 输出 1~N 月(区间缺月补 0) |
508
 | 1.17 | 2026-07-23 | 公母牛月度存栏趋势改为按填报最大月 N 输出 1~N 月(区间缺月补 0) |
509
 | 1.17 | 2026-07-23 | 公母牛月度存栏趋势改为按填报最大月 N 输出 1~N 月(区间缺月补 0) |

+ 2 - 2
doc/大屏/首页/大屏首页技术方案.md

@@ -516,7 +516,7 @@
516
 | 参数 | 类型 | 必填 | 说明 |
516
 | 参数 | 类型 | 必填 | 说明 |
517
 | --- | --- | --- | --- |
517
 | --- | --- | --- | --- |
518
 | `statYear` | int | N | 所属年份;**未传默认当前自然年** |
518
 | `statYear` | int | N | 所属年份;**未传默认当前自然年** |
519
-| `statMonth` | int | N | 所属月份;**未传默认当前自然月** |
519
+| `statMonth` | int | N | 所属月份;**未传不过滤(该年全年按月倒序)** |
520
 | `townDeptId` | long | N | 所属乡镇 |
520
 | `townDeptId` | long | N | 所属乡镇 |
521
 | `villageDeptId` | long | N | 所属村 |
521
 | `villageDeptId` | long | N | 所属村 |
522
 | `pageNum` / `pageSize` | int | N | 分页(PageHelper) |
522
 | `pageNum` / `pageSize` | int | N | 分页(PageHelper) |
@@ -665,7 +665,7 @@ SQL 示例:`sql/big_screen_home_perm.sql`(挂载「大屏」父菜单下)
665
 
665
 
666
 | 版本 | 日期 | 说明 |
666
 | 版本 | 日期 | 说明 |
667
 | --- | --- | --- |
667
 | --- | --- | --- |
668
-| 1.22 | 2026-07-24 | 产业总览屏蔽:`supplierCount`/`distributorCount`/`tradeMarketCount`/`grasslandCount` |
668
+| 1.23 | 2026-08-18 | `/farmerHouseholds`:月份未传不过滤(该年全年按月倒序);年份未传仍默认当前年 |
669
 | 1.21 | 2026-07-24 | 看板屏蔽:`subsidy`、`grassland`、`outboundMonthly`、`inventoryChange` |
669
 | 1.21 | 2026-07-24 | 看板屏蔽:`subsidy`、`grassland`、`outboundMonthly`、`inventoryChange` |
670
 | 1.20 | 2026-07-24 | 人均收入 `perCapitaIncomeTrend`:以库中最大所属年为终点向前 5 年 |
670
 | 1.20 | 2026-07-24 | 人均收入 `perCapitaIncomeTrend`:以库中最大所属年为终点向前 5 年 |
671
 | 1.19 | 2026-07-24 | 出栏 `outboundMonthly`:按填报最大月 N 输出 1~N |
671
 | 1.19 | 2026-07-24 | 出栏 `outboundMonthly`:按填报最大月 N 输出 1~N |

+ 1 - 1
doc/大屏/首页/大屏首页测试用例.md

@@ -84,7 +84,7 @@
84
 | DP-SY-UT-029 | 产业总览 | 合作社等计数 | 单元测试 | JUnit5 | §5.2 | Mock 三表所选年最大月 | `loadDashboard(Y)` | `cooperativeCount`/`familyRanchCount`/`largeLivestockFarmerCount` 为该年月记录条数 |
84
 | DP-SY-UT-029 | 产业总览 | 合作社等计数 | 单元测试 | JUnit5 | §5.2 | Mock 三表所选年最大月 | `loadDashboard(Y)` | `cooperativeCount`/`familyRanchCount`/`largeLivestockFarmerCount` 为该年月记录条数 |
85
 | DP-SY-UT-030 | 产业总览 | 有畜户/草场面积 | 单元测试 | JUnit5 | §5.2 | Mock 有无畜户与农牧户面积 | `loadDashboard(Y)` | `withLivestockHouseholdCount`/`grasslandAreaMu` 取所选年最大月合计 |
85
 | DP-SY-UT-030 | 产业总览 | 有畜户/草场面积 | 单元测试 | JUnit5 | §5.2 | Mock 有无畜户与农牧户面积 | `loadDashboard(Y)` | `withLivestockHouseholdCount`/`grasslandAreaMu` 取所选年最大月合计 |
86
 | DP-SY-UT-031 | 人均收入明细 | 字段映射与默认年 | 单元测试 | JUnit5 | §2.5 | Mock `biz_disposable_income` | `listPerCapitaIncomes(2025)` / `null` | 字段完整;未传年默认当前年 |
86
 | DP-SY-UT-031 | 人均收入明细 | 字段映射与默认年 | 单元测试 | JUnit5 | §2.5 | Mock `biz_disposable_income` | `listPerCapitaIncomes(2025)` / `null` | 字段完整;未传年默认当前年 |
87
-| DP-SY-UT-032 | 农牧户明细 | 条件过滤与默认年 | 单元测试 | JUnit5 | §2.5 | Mock `biz_farmer_household` | `listFarmerHouseholds(...)` / `null,null` | 字段完整;未传年默认当前年月 |
87
+| DP-SY-UT-032 | 农牧户明细 | 条件过滤与默认年 | 单元测试 | JUnit5 | §2.5 | Mock `biz_farmer_household` | `listFarmerHouseholds(...)` / `null,null` | 字段完整;未传年默认当前年;未传不过滤 |
88
 | DP-SY-UT-033 | 合作社明细 | 条件过滤与默认年月 | 单元测试 | JUnit5 | §2.5 | Mock `biz_cooperative_development` | `listCooperativeDevelopments(...)` | 字段完整;未传年月默认当前年月 |
88
 | DP-SY-UT-033 | 合作社明细 | 条件过滤与默认年月 | 单元测试 | JUnit5 | §2.5 | Mock `biz_cooperative_development` | `listCooperativeDevelopments(...)` | 字段完整;未传年月默认当前年月 |
89
 | DP-SY-UT-034 | 家庭牧场明细 | 条件过滤与默认年月 | 单元测试 | JUnit5 | §2.5 | Mock `biz_family_ranch` | `listFamilyRanches(...)` | 字段完整;未传年月默认当前年月 |
89
 | DP-SY-UT-034 | 家庭牧场明细 | 条件过滤与默认年月 | 单元测试 | JUnit5 | §2.5 | Mock `biz_family_ranch` | `listFamilyRanches(...)` | 字段完整;未传年月默认当前年月 |
90
 | DP-SY-UT-035 | 养殖大户明细 | 条件过滤与默认年月 | 单元测试 | JUnit5 | §2.5 | Mock `biz_large_livestock_farmer` | `listLargeLivestockFarmers(...)` | 字段完整;未传年月默认当前年月 |
90
 | DP-SY-UT-035 | 养殖大户明细 | 条件过滤与默认年月 | 单元测试 | JUnit5 | §2.5 | Mock `biz_large_livestock_farmer` | `listLargeLivestockFarmers(...)` | 字段完整;未传年月默认当前年月 |