wwh il y a 23 heures
Parent
commit
3102711fe6

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

@@ -128,7 +128,7 @@ public class HomeScreenController extends BaseController
128 128
 
129 129
     /**
130 130
      * 合作社发展数据明细(分页);按年、月倒序。
131
-     * <p>查询条件:所属年份(可选,默认当前年)、所属月份(可选,默认当前月)、所属乡镇、所属村。
131
+     * <p>查询条件:所属年份(可选,默认当前年)、所属月份(可选,未传不过滤)、所属乡镇、所属村。
132 132
      * 数据源 {@code biz_cooperative_development}。</p>
133 133
      */
134 134
     @GetMapping("/cooperativeDevelopments")
@@ -146,7 +146,7 @@ public class HomeScreenController extends BaseController
146 146
 
147 147
     /**
148 148
      * 家庭牧场数据明细(分页);按年、月倒序。
149
-     * <p>查询条件:所属年份(可选,默认当前年)、所属月份(可选,默认当前月)、所属乡镇、所属村。
149
+     * <p>查询条件:所属年份(可选,默认当前年)、所属月份(可选,未传不过滤)、所属乡镇、所属村。
150 150
      * 数据源 {@code biz_family_ranch}。</p>
151 151
      */
152 152
     @GetMapping("/familyRanches")
@@ -164,7 +164,7 @@ public class HomeScreenController extends BaseController
164 164
 
165 165
     /**
166 166
      * 养殖大户数据明细(分页);按年、月倒序。
167
-     * <p>查询条件:所属年份(可选,默认当前年)、所属月份(可选,默认当前月)、所属乡镇、所属村。
167
+     * <p>查询条件:所属年份(可选,默认当前年)、所属月份(可选,未传不过滤)、所属乡镇、所属村。
168 168
      * 数据源 {@code biz_large_livestock_farmer}。</p>
169 169
      */
170 170
     @GetMapping("/largeLivestockFarmers")
@@ -182,7 +182,8 @@ public class HomeScreenController extends BaseController
182 182
 
183 183
     /**
184 184
      * 牦牛出栏数据明细(分页);按年、月倒序。对应牲畜出栏/自食情况明细。
185
-     * <p>数据源 {@code biz_yak_outbound_report}。</p>
185
+     * <p>查询条件:所属年份(可选,默认当前年)、所属月份(可选,未传不过滤)、所属乡镇、所属村。
186
+     * 数据源 {@code biz_yak_outbound_report}。</p>
186 187
      */
187 188
     @GetMapping("/yakOutboundReports")
188 189
     public TableDataInfo yakOutboundReports(
@@ -199,7 +200,8 @@ public class HomeScreenController extends BaseController
199 200
 
200 201
     /**
201 202
      * 牦牛存栏数据明细(分页);按年、月倒序。对应畜群存栏/牦牛存栏结构明细。
202
-     * <p>数据源 {@code biz_yak_herd_inventory}。</p>
203
+     * <p>查询条件:所属年份(可选,默认当前年)、所属月份(可选,未传不过滤)、所属乡镇、所属村。
204
+     * 数据源 {@code biz_yak_herd_inventory}。</p>
203 205
      */
204 206
     @GetMapping("/yakHerdInventories")
205 207
     public TableDataInfo yakHerdInventories(
@@ -216,7 +218,8 @@ public class HomeScreenController extends BaseController
216 218
 
217 219
     /**
218 220
      * 有无畜户数据明细(分页);按年、月倒序。
219
-     * <p>数据源 {@code biz_livestock_ownership_household}。</p>
221
+     * <p>查询条件:所属年份(可选,默认当前年)、所属月份(可选,未传不过滤)、所属乡镇、所属村。
222
+     * 数据源 {@code biz_livestock_ownership_household}。</p>
220 223
      */
221 224
     @GetMapping("/livestockOwnershipHouseholds")
222 225
     public TableDataInfo livestockOwnershipHouseholds(

+ 2 - 2
baqing-admin/src/main/java/com/ruoyi/web/modules/screen/controller/LivestockResourceScreenController.java

@@ -74,7 +74,7 @@ public class LivestockResourceScreenController extends BaseController
74 74
      * <p>数据源 {@code biz_livestock_product_output};大屏全县口径。</p>
75 75
      *
76 76
      * @param statYear      所属年份;未传默认当前自然年
77
-     * @param statMonth     所属月份;未传默认当前自然月
77
+     * @param statMonth     所属月份;未传不过滤(该年全年,按月倒序)
78 78
      * @param townDeptId    所属乡镇,可选
79 79
      * @param villageDeptId 所属村,可选
80 80
      */
@@ -96,7 +96,7 @@ public class LivestockResourceScreenController extends BaseController
96 96
      * <p>数据源 {@code biz_vaccination_data};大屏全县口径;免疫率优先用落库值。</p>
97 97
      *
98 98
      * @param statYear      所属年份;未传默认当前自然年
99
-     * @param statMonth     所属月份;未传默认当前自然月
99
+     * @param statMonth     所属月份;未传不过滤(该年全年,按月倒序)
100 100
      * @param townDeptId    所属乡镇,可选
101 101
      * @param villageDeptId 所属村,可选
102 102
      */

+ 2 - 2
baqing-admin/src/main/java/com/ruoyi/web/modules/screen/service/ILivestockResourceScreenService.java

@@ -37,7 +37,7 @@ public interface ILivestockResourceScreenService
37 37
      * 畜牧产品产量数据明细(配合分页;按所属年月倒序)。
38 38
      *
39 39
      * @param statYear      所属年份,null 则当前自然年
40
-     * @param statMonth     所属月份,null 则当前自然月
40
+     * @param statMonth     所属月份,null 则不过滤月份
41 41
      * @param townDeptId    乡镇,可选
42 42
      * @param villageDeptId 村,可选
43 43
      */
@@ -48,7 +48,7 @@ public interface ILivestockResourceScreenService
48 48
      * 疫苗接种情况明细(配合分页;按所属年月倒序)。
49 49
      *
50 50
      * @param statYear      所属年份,null 则当前自然年
51
-     * @param statMonth     所属月份,null 则当前自然月
51
+     * @param statMonth     所属月份,null 则不过滤月份
52 52
      * @param townDeptId    乡镇,可选
53 53
      * @param villageDeptId 村,可选
54 54
      */

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

@@ -399,7 +399,7 @@ public class HomeScreenServiceImpl implements IHomeScreenService
399 399
         YearMonth now = HomeScreenSupport.currentYearMonth();
400 400
         BizCooperativeDevelopment query = new BizCooperativeDevelopment();
401 401
         query.setStatYear(statYear != null ? statYear : now.getYear());
402
-        query.setStatMonth(statMonth != null ? statMonth : now.getMonthValue());
402
+        query.setStatMonth(statMonth);
403 403
         query.setTownDeptId(townDeptId);
404 404
         query.setVillageDeptId(villageDeptId);
405 405
         query.getParams().put("dataScope", "");
@@ -415,7 +415,7 @@ public class HomeScreenServiceImpl implements IHomeScreenService
415 415
         YearMonth now = HomeScreenSupport.currentYearMonth();
416 416
         BizFamilyRanch query = new BizFamilyRanch();
417 417
         query.setStatYear(statYear != null ? statYear : now.getYear());
418
-        query.setStatMonth(statMonth != null ? statMonth : now.getMonthValue());
418
+        query.setStatMonth(statMonth);
419 419
         query.setTownDeptId(townDeptId);
420 420
         query.setVillageDeptId(villageDeptId);
421 421
         query.getParams().put("dataScope", "");
@@ -430,7 +430,7 @@ public class HomeScreenServiceImpl implements IHomeScreenService
430 430
         YearMonth now = HomeScreenSupport.currentYearMonth();
431 431
         BizLargeLivestockFarmer query = new BizLargeLivestockFarmer();
432 432
         query.setStatYear(statYear != null ? statYear : now.getYear());
433
-        query.setStatMonth(statMonth != null ? statMonth : now.getMonthValue());
433
+        query.setStatMonth(statMonth);
434 434
         query.setTownDeptId(townDeptId);
435 435
         query.setVillageDeptId(villageDeptId);
436 436
         query.getParams().put("dataScope", "");
@@ -446,7 +446,7 @@ public class HomeScreenServiceImpl implements IHomeScreenService
446 446
         YearMonth now = HomeScreenSupport.currentYearMonth();
447 447
         BizYakOutboundReport query = new BizYakOutboundReport();
448 448
         query.setStatYear(statYear != null ? statYear : now.getYear());
449
-        query.setStatMonth(statMonth != null ? statMonth : now.getMonthValue());
449
+        query.setStatMonth(statMonth);
450 450
         query.setTownDeptId(townDeptId);
451 451
         query.setVillageDeptId(villageDeptId);
452 452
         query.getParams().put("dataScope", "");
@@ -461,7 +461,7 @@ public class HomeScreenServiceImpl implements IHomeScreenService
461 461
         YearMonth now = HomeScreenSupport.currentYearMonth();
462 462
         BizYakHerdInventory query = new BizYakHerdInventory();
463 463
         query.setStatYear(statYear != null ? statYear : now.getYear());
464
-        query.setStatMonth(statMonth != null ? statMonth : now.getMonthValue());
464
+        query.setStatMonth(statMonth);
465 465
         query.setTownDeptId(townDeptId);
466 466
         query.setVillageDeptId(villageDeptId);
467 467
         query.getParams().put("dataScope", "");
@@ -476,7 +476,7 @@ public class HomeScreenServiceImpl implements IHomeScreenService
476 476
         YearMonth now = HomeScreenSupport.currentYearMonth();
477 477
         BizLivestockOwnershipHousehold query = new BizLivestockOwnershipHousehold();
478 478
         query.setStatYear(statYear != null ? statYear : now.getYear());
479
-        query.setStatMonth(statMonth != null ? statMonth : now.getMonthValue());
479
+        query.setStatMonth(statMonth);
480 480
         query.setTownDeptId(townDeptId);
481 481
         query.setVillageDeptId(villageDeptId);
482 482
         query.getParams().put("dataScope", "");

+ 4 - 10
baqing-admin/src/main/java/com/ruoyi/web/modules/screen/service/impl/LivestockResourceScreenServiceImpl.java

@@ -142,12 +142,9 @@ public class LivestockResourceScreenServiceImpl implements ILivestockResourceScr
142 142
             Integer statYear, Integer statMonth, Long townDeptId, Long villageDeptId)
143 143
     {
144 144
         YearMonth current = HomeScreenSupport.currentYearMonth();
145
-        int year = statYear != null ? statYear : current.getYear();
146
-        int month = statMonth != null ? statMonth : current.getMonthValue();
147
-
148 145
         BizLivestockProductOutput query = new BizLivestockProductOutput();
149
-        query.setStatYear(year);
150
-        query.setStatMonth(month);
146
+        query.setStatYear(statYear != null ? statYear : current.getYear());
147
+        query.setStatMonth(statMonth);
151 148
         query.setTownDeptId(townDeptId);
152 149
         query.setVillageDeptId(villageDeptId);
153 150
         // 大屏全县口径,清空 dataScope
@@ -162,12 +159,9 @@ public class LivestockResourceScreenServiceImpl implements ILivestockResourceScr
162 159
             Integer statYear, Integer statMonth, Long townDeptId, Long villageDeptId)
163 160
     {
164 161
         YearMonth current = HomeScreenSupport.currentYearMonth();
165
-        int year = statYear != null ? statYear : current.getYear();
166
-        int month = statMonth != null ? statMonth : current.getMonthValue();
167
-
168 162
         BizVaccinationData query = new BizVaccinationData();
169
-        query.setStatYear(year);
170
-        query.setStatMonth(month);
163
+        query.setStatYear(statYear != null ? statYear : current.getYear());
164
+        query.setStatMonth(statMonth);
171 165
         query.setTownDeptId(townDeptId);
172 166
         query.setVillageDeptId(villageDeptId);
173 167
         // 大屏全县口径,清空 dataScope

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

@@ -295,15 +295,15 @@ class HomeScreenServiceImplTest
295 295
     }
296 296
 
297 297
     @Test
298
-    @DisplayName("DP-SY-UT-033b 合作社明细未传年默认当前年月")
299
-    void ut033b_cooperativeDevelopmentsDefaultCurrentYearMonth()
298
+    @DisplayName("DP-SY-UT-033b 合作社明细未传年默认当前年,未传不过滤")
299
+    void ut033b_cooperativeDevelopmentsDefaultCurrentYearNoMonth()
300 300
     {
301 301
         java.time.YearMonth now = com.ruoyi.web.modules.screen.support.HomeScreenSupport.currentYearMonth();
302 302
         when(bizCooperativeDevelopmentMapper.selectBizCooperativeDevelopmentList(any(BizCooperativeDevelopment.class)))
303 303
                 .thenAnswer(invocation -> {
304 304
                     BizCooperativeDevelopment q = invocation.getArgument(0);
305 305
                     assertEquals(now.getYear(), q.getStatYear().intValue());
306
-                    assertEquals(now.getMonthValue(), q.getStatMonth().intValue());
306
+                    assertNull(q.getStatMonth());
307 307
                     return Collections.emptyList();
308 308
                 });
309 309
         assertEquals(0, service.listCooperativeDevelopments(null, null, null, null).size());
@@ -333,15 +333,15 @@ class HomeScreenServiceImplTest
333 333
     }
334 334
 
335 335
     @Test
336
-    @DisplayName("DP-SY-UT-034b 家庭牧场明细未传年默认当前年月")
337
-    void ut034b_familyRanchesDefaultCurrentYearMonth()
336
+    @DisplayName("DP-SY-UT-034b 家庭牧场明细未传年默认当前年,未传不过滤")
337
+    void ut034b_familyRanchesDefaultCurrentYearNoMonth()
338 338
     {
339 339
         java.time.YearMonth now = com.ruoyi.web.modules.screen.support.HomeScreenSupport.currentYearMonth();
340 340
         when(bizFamilyRanchMapper.selectBizFamilyRanchList(any(BizFamilyRanch.class)))
341 341
                 .thenAnswer(invocation -> {
342 342
                     BizFamilyRanch q = invocation.getArgument(0);
343 343
                     assertEquals(now.getYear(), q.getStatYear().intValue());
344
-                    assertEquals(now.getMonthValue(), q.getStatMonth().intValue());
344
+                    assertNull(q.getStatMonth());
345 345
                     return Collections.emptyList();
346 346
                 });
347 347
         assertEquals(0, service.listFamilyRanches(null, null, null, null).size());
@@ -372,15 +372,15 @@ class HomeScreenServiceImplTest
372 372
     }
373 373
 
374 374
     @Test
375
-    @DisplayName("DP-SY-UT-035b 养殖大户明细未传年默认当前年月")
376
-    void ut035b_largeLivestockFarmersDefaultCurrentYearMonth()
375
+    @DisplayName("DP-SY-UT-035b 养殖大户明细未传年默认当前年,未传不过滤")
376
+    void ut035b_largeLivestockFarmersDefaultCurrentYearNoMonth()
377 377
     {
378 378
         java.time.YearMonth now = com.ruoyi.web.modules.screen.support.HomeScreenSupport.currentYearMonth();
379 379
         when(bizLargeLivestockFarmerMapper.selectBizLargeLivestockFarmerList(any(BizLargeLivestockFarmer.class)))
380 380
                 .thenAnswer(invocation -> {
381 381
                     BizLargeLivestockFarmer q = invocation.getArgument(0);
382 382
                     assertEquals(now.getYear(), q.getStatYear().intValue());
383
-                    assertEquals(now.getMonthValue(), q.getStatMonth().intValue());
383
+                    assertNull(q.getStatMonth());
384 384
                     return Collections.emptyList();
385 385
                 });
386 386
         assertEquals(0, service.listLargeLivestockFarmers(null, null, null, null).size());
@@ -412,15 +412,15 @@ class HomeScreenServiceImplTest
412 412
     }
413 413
 
414 414
     @Test
415
-    @DisplayName("DP-SY-UT-036b 牦牛出栏明细未传年默认当前年月")
416
-    void ut036b_yakOutboundReportsDefaultCurrentYearMonth()
415
+    @DisplayName("DP-SY-UT-036b 牦牛出栏明细未传年默认当前年,未传不过滤")
416
+    void ut036b_yakOutboundReportsDefaultCurrentYearNoMonth()
417 417
     {
418 418
         java.time.YearMonth now = com.ruoyi.web.modules.screen.support.HomeScreenSupport.currentYearMonth();
419 419
         when(bizYakOutboundReportMapper.selectBizYakOutboundReportList(any(BizYakOutboundReport.class)))
420 420
                 .thenAnswer(invocation -> {
421 421
                     BizYakOutboundReport q = invocation.getArgument(0);
422 422
                     assertEquals(now.getYear(), q.getStatYear().intValue());
423
-                    assertEquals(now.getMonthValue(), q.getStatMonth().intValue());
423
+                    assertNull(q.getStatMonth());
424 424
                     return Collections.emptyList();
425 425
                 });
426 426
         assertEquals(0, service.listYakOutboundReports(null, null, null, null).size());
@@ -451,15 +451,15 @@ class HomeScreenServiceImplTest
451 451
     }
452 452
 
453 453
     @Test
454
-    @DisplayName("DP-SY-UT-037b 牦牛存栏明细未传年默认当前年月")
455
-    void ut037b_yakHerdInventoriesDefaultCurrentYearMonth()
454
+    @DisplayName("DP-SY-UT-037b 牦牛存栏明细未传年默认当前年,未传不过滤")
455
+    void ut037b_yakHerdInventoriesDefaultCurrentYearNoMonth()
456 456
     {
457 457
         java.time.YearMonth now = com.ruoyi.web.modules.screen.support.HomeScreenSupport.currentYearMonth();
458 458
         when(bizYakHerdInventoryMapper.selectBizYakHerdInventoryList(any(BizYakHerdInventory.class)))
459 459
                 .thenAnswer(invocation -> {
460 460
                     BizYakHerdInventory q = invocation.getArgument(0);
461 461
                     assertEquals(now.getYear(), q.getStatYear().intValue());
462
-                    assertEquals(now.getMonthValue(), q.getStatMonth().intValue());
462
+                    assertNull(q.getStatMonth());
463 463
                     return Collections.emptyList();
464 464
                 });
465 465
         assertEquals(0, service.listYakHerdInventories(null, null, null, null).size());
@@ -491,8 +491,8 @@ class HomeScreenServiceImplTest
491 491
     }
492 492
 
493 493
     @Test
494
-    @DisplayName("DP-SY-UT-038b 有无畜户明细未传年默认当前年月")
495
-    void ut038b_livestockOwnershipHouseholdsDefaultCurrentYearMonth()
494
+    @DisplayName("DP-SY-UT-038b 有无畜户明细未传年默认当前年,未传不过滤")
495
+    void ut038b_livestockOwnershipHouseholdsDefaultCurrentYearNoMonth()
496 496
     {
497 497
         java.time.YearMonth now = com.ruoyi.web.modules.screen.support.HomeScreenSupport.currentYearMonth();
498 498
         when(bizLivestockOwnershipHouseholdMapper.selectBizLivestockOwnershipHouseholdList(
@@ -500,7 +500,7 @@ class HomeScreenServiceImplTest
500 500
                 .thenAnswer(invocation -> {
501 501
                     BizLivestockOwnershipHousehold q = invocation.getArgument(0);
502 502
                     assertEquals(now.getYear(), q.getStatYear().intValue());
503
-                    assertEquals(now.getMonthValue(), q.getStatMonth().intValue());
503
+                    assertNull(q.getStatMonth());
504 504
                     return Collections.emptyList();
505 505
                 });
506 506
         assertEquals(0, service.listLivestockOwnershipHouseholds(null, null, null, null).size());

+ 3 - 3
doc/大屏/畜牧资源/大屏畜牧资源技术方案.md

@@ -468,7 +468,7 @@ XML:`mapper/screen/LivestockResourceScreenMapper.xml`。
468 468
 | 参数 | 类型 | 必填 | 说明 |
469 469
 | --- | --- | --- | --- |
470 470
 | `statYear` | int | N | 所属年份;未传默认**当前自然年** |
471
-| `statMonth` | int | N | 所属月份;未传默认**当前自然月** |
471
+| `statMonth` | int | N | 所属月份;未传不过滤(该年全年,按月倒序) |
472 472
 | `townDeptId` | long | N | 所属乡镇 |
473 473
 | `villageDeptId` | long | N | 所属村 |
474 474
 | `pageNum` / `pageSize` | int | N | 分页 |
@@ -499,7 +499,7 @@ XML:`mapper/screen/LivestockResourceScreenMapper.xml`。
499 499
 | 参数 | 类型 | 必填 | 说明 |
500 500
 | --- | --- | --- | --- |
501 501
 | `statYear` | int | N | 所属年份;未传默认**当前自然年** |
502
-| `statMonth` | int | N | 所属月份;未传默认**当前自然月** |
502
+| `statMonth` | int | N | 所属月份;未传不过滤(该年全年,按月倒序) |
503 503
 | `townDeptId` | long | N | 所属乡镇 |
504 504
 | `villageDeptId` | long | N | 所属村 |
505 505
 | `pageNum` / `pageSize` | int | N | 分页 |
@@ -570,8 +570,8 @@ SQL 示例:`sql/big_screen_livestock_resource_perm.sql`(挂载「大屏」
570 570
 
571 571
 | 版本 | 日期 | 说明 |
572 572
 | --- | --- | --- |
573
+| 1.16 | 2026-08-18 | `/productOutputs`、`/vaccinationData`:月份未传不过滤(该年全年);年份未传仍默认当前年 |
573 574
 | 1.15 | 2026-07-24 | 新增兽医数量明细分页接口 `/vetCounts`(按乡镇汇总) |
574
-| 1.14 | 2026-07-24 | 新增疫苗接种情况明细分页接口 `/vaccinationData` |
575 575
 | 1.13 | 2026-07-24 | 新增畜牧产品产量数据明细分页接口 `/productOutputs` |
576 576
 | 1.12 | 2026-07-24 | 新增三资具体问题上报明细分页接口 `/threeAssetsProblemReports` |
577 577
 | 1.11 | 2026-07-24 | 看板屏蔽 AI 问诊九区块:活跃度/用户结构/分类/模型调用/分时/会话分布/状态/热门/关键词 |

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

@@ -503,7 +503,7 @@ flowchart TB
503 503
 
504 504
 | 版本 | 日期 | 说明 |
505 505
 | --- | --- | --- |
506
-| 1.20 | 2026-08-18 | 农牧户明细:月份未传不过滤(该年全年);年份未传仍默认当前年 |
506
+| 1.21 | 2026-08-18 | 大屏明细分页:月份未传一律不过滤(该年全年);年份未传仍默认当前年。含合作社/家庭牧场/养殖大户/出栏/存栏/有无畜户 |
507 507
 | 1.19 | 2026-07-24 | 人均收入趋势改为以库中最大所属年为终点的最近 5 年 |
508 508
 | 1.18 | 2026-07-24 | 牦牛月度出栏趋势改为按填报最大月 N 输出 1~N 月(区间缺月补 0) |
509 509
 | 1.17 | 2026-07-23 | 公母牛月度存栏趋势改为按填报最大月 N 输出 1~N 月(区间缺月补 0) |

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

@@ -538,7 +538,7 @@
538 538
 | 参数 | 类型 | 必填 | 说明 |
539 539
 | --- | --- | --- | --- |
540 540
 | `statYear` | int | N | 所属年份;**未传默认当前自然年** |
541
-| `statMonth` | int | N | 所属月份;**未传默认当前自然月** |
541
+| `statMonth` | int | N | 所属月份;**未传不过滤(该年全年按月倒序)** |
542 542
 | `townDeptId` | long | N | 所属乡镇 |
543 543
 | `villageDeptId` | long | N | 所属村 |
544 544
 | `pageNum` / `pageSize` | int | N | 分页(PageHelper) |
@@ -554,7 +554,7 @@
554 554
 | 3.11 | `/yakHerdInventories` | `biz_yak_herd_inventory` | 全部业务字段(含公母牛/奶牛/羊/保险等) |
555 555
 | 3.12 | `/livestockOwnershipHouseholds` | `biz_livestock_ownership_household` | 全部业务字段(有畜/无畜户数人数劳动力等) |
556 556
 
557
-查询条件与 3.7~3.9 相同:年/月默认当前年月,乡镇/村可选;按年、月倒序;全县口径清空 dataScope。
557
+查询条件与 3.6 相同:年未传默认当前年,月未传不过滤,乡镇/村可选;按年、月倒序;全县口径清空 dataScope。
558 558
 
559 559
 ### 3.13 牦牛存出栏情况明细
560 560
 
@@ -665,6 +665,7 @@ SQL 示例:`sql/big_screen_home_perm.sql`(挂载「大屏」父菜单下)
665 665
 
666 666
 | 版本 | 日期 | 说明 |
667 667
 | --- | --- | --- |
668
+| 1.24 | 2026-08-18 | 首页明细分页:月份未传一律不过滤;含合作社/家庭牧场/养殖大户/出栏/存栏/有无畜户(农牧户已在 1.23) |
668 669
 | 1.23 | 2026-08-18 | `/farmerHouseholds`:月份未传不过滤(该年全年按月倒序);年份未传仍默认当前年 |
669 670
 | 1.21 | 2026-07-24 | 看板屏蔽:`subsidy`、`grassland`、`outboundMonthly`、`inventoryChange` |
670 671
 | 1.20 | 2026-07-24 | 人均收入 `perCapitaIncomeTrend`:以库中最大所属年为终点向前 5 年 |

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

@@ -85,12 +85,12 @@
85 85
 | DP-SY-UT-030 | 产业总览 | 有畜户/草场面积 | 单元测试 | JUnit5 | §5.2 | Mock 有无畜户与农牧户面积 | `loadDashboard(Y)` | `withLivestockHouseholdCount`/`grasslandAreaMu` 取所选年最大月合计 |
86 86
 | DP-SY-UT-031 | 人均收入明细 | 字段映射与默认年 | 单元测试 | JUnit5 | §2.5 | Mock `biz_disposable_income` | `listPerCapitaIncomes(2025)` / `null` | 字段完整;未传年默认当前年 |
87 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(...)` | 字段完整;未传年默认当前年月 |
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(...)` | 字段完整;未传年默认当前年月 |
91
-| DP-SY-UT-036 | 牦牛出栏明细 | 条件过滤与默认年 | 单元测试 | JUnit5 | §2.5 | Mock `biz_yak_outbound_report` | `listYakOutboundReports(...)` | 字段完整;未传年默认当前年月 |
92
-| DP-SY-UT-037 | 牦牛存栏明细 | 条件过滤与默认年 | 单元测试 | JUnit5 | §2.5 | Mock `biz_yak_herd_inventory` | `listYakHerdInventories(...)` | 字段完整;未传年默认当前年月 |
93
-| DP-SY-UT-038 | 有无畜户明细 | 条件过滤与默认年 | 单元测试 | JUnit5 | §2.5 | Mock `biz_livestock_ownership_household` | `listLivestockOwnershipHouseholds(...)` | 字段完整;未传年默认当前年月 |
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(...)` | 字段完整;未传年默认当前年;未传不过滤 |
90
+| DP-SY-UT-035 | 养殖大户明细 | 条件过滤与默认年 | 单元测试 | JUnit5 | §2.5 | Mock `biz_large_livestock_farmer` | `listLargeLivestockFarmers(...)` | 字段完整;未传年默认当前年;未传不过滤 |
91
+| DP-SY-UT-036 | 牦牛出栏明细 | 条件过滤与默认年 | 单元测试 | JUnit5 | §2.5 | Mock `biz_yak_outbound_report` | `listYakOutboundReports(...)` | 字段完整;未传年默认当前年;未传不过滤 |
92
+| DP-SY-UT-037 | 牦牛存栏明细 | 条件过滤与默认年 | 单元测试 | JUnit5 | §2.5 | Mock `biz_yak_herd_inventory` | `listYakHerdInventories(...)` | 字段完整;未传年默认当前年;未传不过滤 |
93
+| DP-SY-UT-038 | 有无畜户明细 | 条件过滤与默认年 | 单元测试 | JUnit5 | §2.5 | Mock `biz_livestock_ownership_household` | `listLivestockOwnershipHouseholds(...)` | 字段完整;未传年默认当前年;未传不过滤 |
94 94
 | DP-SY-UT-039 | 存出栏情况明细 | 关联与跨年全量 | 单元测试 | JUnit5 | §2.5 | Mock `selectYakInventoryOutboundList` | `listYakInventoryOutbounds(...)` | 返回存栏/出栏;未传年月不过滤(传 null) |
95 95
 | DP-SY-UT-040 | 养殖主体数量明细 | 关联计数与跨年全量 | 单元测试 | JUnit5 | §2.5 | Mock `selectBreedingEntityQuantityList` | `listBreedingEntityQuantities(...)` | 返回四类数量;未传年月不过滤 |
96 96
 | DP-SY-UT-041 | 乡镇列表 | 全县口径 | 单元测试 | JUnit5 | §2.5 | Mock `toAllOptionList` | `listTownOptions()` | 返回乡镇选项 |