소스 검색

大屏查询

wwh 1 일 전
부모
커밋
e9dfa19f11
22개의 변경된 파일128개의 추가작업 그리고 121개의 파일을 삭제
  1. 2 2
      baqing-admin/src/main/java/com/ruoyi/web/modules/prosperity/mapper/BizCommonProsperityProjectMapper.java
  2. 1 1
      baqing-admin/src/main/java/com/ruoyi/web/modules/screen/controller/CommonProsperityScreenController.java
  3. 8 8
      baqing-admin/src/main/java/com/ruoyi/web/modules/screen/controller/HomeScreenController.java
  4. 5 5
      baqing-admin/src/main/java/com/ruoyi/web/modules/screen/controller/LivestockResourceScreenController.java
  5. 1 1
      baqing-admin/src/main/java/com/ruoyi/web/modules/screen/service/ICommonProsperityScreenService.java
  6. 3 3
      baqing-admin/src/main/java/com/ruoyi/web/modules/screen/service/IHomeScreenService.java
  7. 3 3
      baqing-admin/src/main/java/com/ruoyi/web/modules/screen/service/ILivestockResourceScreenService.java
  8. 2 4
      baqing-admin/src/main/java/com/ruoyi/web/modules/screen/service/impl/CommonProsperityScreenServiceImpl.java
  9. 8 16
      baqing-admin/src/main/java/com/ruoyi/web/modules/screen/service/impl/HomeScreenServiceImpl.java
  10. 9 11
      baqing-admin/src/main/java/com/ruoyi/web/modules/screen/service/impl/LivestockResourceScreenServiceImpl.java
  11. 2 0
      baqing-admin/src/main/resources/mapper/prosperity/BizCommonProsperityProjectMapper.xml
  12. 2 2
      baqing-admin/src/test/java/com/ruoyi/web/modules/screen/controller/CommonProsperityScreenControllerApiTest.java
  13. 4 6
      baqing-admin/src/test/java/com/ruoyi/web/modules/screen/service/impl/CommonProsperityScreenServiceImplTest.java
  14. 24 32
      baqing-admin/src/test/java/com/ruoyi/web/modules/screen/service/impl/HomeScreenServiceImplTest.java
  15. 22 2
      baqing-admin/src/test/java/com/ruoyi/web/modules/screen/service/impl/LivestockResourceScreenServiceImplTest.java
  16. 3 2
      doc/大屏/共同富裕/大屏共同富裕功能需求.md
  17. 2 1
      doc/大屏/共同富裕/大屏共同富裕技术方案.md
  18. 2 1
      doc/大屏/共同富裕/大屏共同富裕测试用例.md
  19. 6 5
      doc/大屏/畜牧资源/大屏畜牧资源技术方案.md
  20. 3 2
      doc/大屏/首页/大屏首页功能需求.md
  21. 7 6
      doc/大屏/首页/大屏首页技术方案.md
  22. 9 8
      doc/大屏/首页/大屏首页测试用例.md

+ 2 - 2
baqing-admin/src/main/java/com/ruoyi/web/modules/prosperity/mapper/BizCommonProsperityProjectMapper.java

@@ -33,8 +33,8 @@ public interface BizCommonProsperityProjectMapper
33
     /**
33
     /**
34
      * 大屏:共富项目分类情况明细(按实施年限聚合类型数量;年份倒序)。
34
      * 大屏:共富项目分类情况明细(按实施年限聚合类型数量;年份倒序)。
35
      *
35
      *
36
-     * @param statYear 所属年份(实施年限),必填
36
+     * @param statYear 所属年份(实施年限),可选;未传不过滤
37
      */
37
      */
38
     List<CommonProsperityProjectTypeDetailVo> selectPublishedTypeDetailsByYear(
38
     List<CommonProsperityProjectTypeDetailVo> selectPublishedTypeDetailsByYear(
39
-            @Param("statYear") int statYear);
39
+            @Param("statYear") Integer statYear);
40
 }
40
 }

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

@@ -73,7 +73,7 @@ public class CommonProsperityScreenController extends BaseController
73
      * {@code publish_status=1},按 {@code impl_year}、{@code project_type} 聚合。
73
      * {@code publish_status=1},按 {@code impl_year}、{@code project_type} 聚合。
74
      * </p>
74
      * </p>
75
      *
75
      *
76
-     * @param statYear 所属年份;未传默认当前自然年
76
+     * @param statYear 所属年份;未传不过滤
77
      */
77
      */
78
     @GetMapping("/projectTypeDetails")
78
     @GetMapping("/projectTypeDetails")
79
     public TableDataInfo projectTypeDetails(
79
     public TableDataInfo projectTypeDetails(

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

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

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

@@ -53,7 +53,7 @@ public class LivestockResourceScreenController extends BaseController
53
      * 乡镇/村下拉可复用首页 {@code /bigScreen/home/townOptions}、{@code /villageTree}。
53
      * 乡镇/村下拉可复用首页 {@code /bigScreen/home/townOptions}、{@code /villageTree}。
54
      * </p>
54
      * </p>
55
      *
55
      *
56
-     * @param statYear      所属年份;未传默认当前自然年;按上报时间落在该年 1-1~12-31
56
+     * @param statYear      所属年份;未传不过滤(不按上报时间窗限制)
57
      * @param townDeptId    所属乡镇部门 ID,可选
57
      * @param townDeptId    所属乡镇部门 ID,可选
58
      * @param villageDeptId 所属村部门 ID,可选
58
      * @param villageDeptId 所属村部门 ID,可选
59
      */
59
      */
@@ -73,8 +73,8 @@ public class LivestockResourceScreenController extends BaseController
73
      * 畜牧产品产量数据明细(分页);按 {@code stat_year}、{@code stat_month} 倒序。
73
      * 畜牧产品产量数据明细(分页);按 {@code stat_year}、{@code stat_month} 倒序。
74
      * <p>数据源 {@code biz_livestock_product_output};大屏全县口径。</p>
74
      * <p>数据源 {@code biz_livestock_product_output};大屏全县口径。</p>
75
      *
75
      *
76
-     * @param statYear      所属年份;未传默认当前自然年
77
-     * @param statMonth     所属月份;未传不过滤(该年全年,按月倒序)
76
+     * @param statYear      所属年份;未传不过滤
77
+     * @param statMonth     所属月份;未传不过滤
78
      * @param townDeptId    所属乡镇,可选
78
      * @param townDeptId    所属乡镇,可选
79
      * @param villageDeptId 所属村,可选
79
      * @param villageDeptId 所属村,可选
80
      */
80
      */
@@ -95,8 +95,8 @@ public class LivestockResourceScreenController extends BaseController
95
      * 疫苗接种情况明细(分页);按 {@code stat_year}、{@code stat_month} 倒序。
95
      * 疫苗接种情况明细(分页);按 {@code stat_year}、{@code stat_month} 倒序。
96
      * <p>数据源 {@code biz_vaccination_data};大屏全县口径;免疫率优先用落库值。</p>
96
      * <p>数据源 {@code biz_vaccination_data};大屏全县口径;免疫率优先用落库值。</p>
97
      *
97
      *
98
-     * @param statYear      所属年份;未传默认当前自然年
99
-     * @param statMonth     所属月份;未传不过滤(该年全年,按月倒序)
98
+     * @param statYear      所属年份;未传不过滤
99
+     * @param statMonth     所属月份;未传不过滤
100
      * @param townDeptId    所属乡镇,可选
100
      * @param townDeptId    所属乡镇,可选
101
      * @param villageDeptId 所属村,可选
101
      * @param villageDeptId 所属村,可选
102
      */
102
      */

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

@@ -31,7 +31,7 @@ public interface ICommonProsperityScreenService
31
     /**
31
     /**
32
      * 共富项目分类情况明细(按实施年限聚合各类型数量;分页由 Controller 启 PageHelper)。
32
      * 共富项目分类情况明细(按实施年限聚合各类型数量;分页由 Controller 启 PageHelper)。
33
      *
33
      *
34
-     * @param statYear 所属年份;{@code null} 时默认当前自然年
34
+     * @param statYear 所属年份;{@code null} 时不过滤(跨年按实施年限倒序)
35
      */
35
      */
36
     List<CommonProsperityProjectTypeDetailVo> listProjectTypeDetails(Integer statYear);
36
     List<CommonProsperityProjectTypeDetailVo> listProjectTypeDetails(Integer statYear);
37
 }
37
 }

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

@@ -61,7 +61,7 @@ public interface IHomeScreenService
61
     /**
61
     /**
62
      * 人均收入情况明细(分页由 Controller {@code startPage} 控制;按所属年份倒序)。
62
      * 人均收入情况明细(分页由 Controller {@code startPage} 控制;按所属年份倒序)。
63
      *
63
      *
64
-     * @param statYear 所属年份,可选;未传时默认当前自然年
64
+     * @param statYear 所属年份,可选;未传不过滤(跨年按年倒序)
65
      */
65
      */
66
     List<HomeScreenPerCapitaIncomeListItemVo> listPerCapitaIncomes(Integer statYear);
66
     List<HomeScreenPerCapitaIncomeListItemVo> listPerCapitaIncomes(Integer statYear);
67
 
67
 
@@ -69,8 +69,8 @@ public interface IHomeScreenService
69
      * 农牧户数据明细(分页由 Controller {@code startPage} 控制;按年、月倒序)。
69
      * 农牧户数据明细(分页由 Controller {@code startPage} 控制;按年、月倒序)。
70
      * 草场面积数据明细复用本方法,不另开接口。
70
      * 草场面积数据明细复用本方法,不另开接口。
71
      *
71
      *
72
-     * @param statYear      所属年份,可选;未传默认当前自然年
73
-     * @param statMonth     所属月份,可选;未传不过滤月份(该年全年,按月倒序)
72
+     * @param statYear      所属年份,可选;未传不过滤
73
+     * @param statMonth     所属月份,可选;未传不过滤
74
      * @param townDeptId    所属乡镇,可选
74
      * @param townDeptId    所属乡镇,可选
75
      * @param villageDeptId 所属村,可选
75
      * @param villageDeptId 所属村,可选
76
      */
76
      */

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

@@ -26,7 +26,7 @@ public interface ILivestockResourceScreenService
26
     /**
26
     /**
27
      * 三资具体问题上报明细(配合 Controller {@code startPage} 分页;按上报时间倒序)。
27
      * 三资具体问题上报明细(配合 Controller {@code startPage} 分页;按上报时间倒序)。
28
      *
28
      *
29
-     * @param statYear      所属年份,null 则当前自然年
29
+     * @param statYear      所属年份,可选;未传不过滤
30
      * @param townDeptId    乡镇,可选
30
      * @param townDeptId    乡镇,可选
31
      * @param villageDeptId 村,可选
31
      * @param villageDeptId 村,可选
32
      */
32
      */
@@ -36,7 +36,7 @@ public interface ILivestockResourceScreenService
36
     /**
36
     /**
37
      * 畜牧产品产量数据明细(配合分页;按所属年月倒序)。
37
      * 畜牧产品产量数据明细(配合分页;按所属年月倒序)。
38
      *
38
      *
39
-     * @param statYear      所属年份,null 则当前自然年
39
+     * @param statYear      所属年份,可选;未传不过滤
40
      * @param statMonth     所属月份,null 则不过滤月份
40
      * @param statMonth     所属月份,null 则不过滤月份
41
      * @param townDeptId    乡镇,可选
41
      * @param townDeptId    乡镇,可选
42
      * @param villageDeptId 村,可选
42
      * @param villageDeptId 村,可选
@@ -47,7 +47,7 @@ public interface ILivestockResourceScreenService
47
     /**
47
     /**
48
      * 疫苗接种情况明细(配合分页;按所属年月倒序)。
48
      * 疫苗接种情况明细(配合分页;按所属年月倒序)。
49
      *
49
      *
50
-     * @param statYear      所属年份,null 则当前自然年
50
+     * @param statYear      所属年份,可选;未传不过滤
51
      * @param statMonth     所属月份,null 则不过滤月份
51
      * @param statMonth     所属月份,null 则不过滤月份
52
      * @param townDeptId    乡镇,可选
52
      * @param townDeptId    乡镇,可选
53
      * @param villageDeptId 村,可选
53
      * @param villageDeptId 村,可选

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

@@ -20,7 +20,6 @@ import com.ruoyi.web.modules.screen.domain.vo.CommonProsperityScreenDashboardVo;
20
 import com.ruoyi.web.modules.screen.domain.vo.ScreenProjectListItemVo;
20
 import com.ruoyi.web.modules.screen.domain.vo.ScreenProjectListItemVo;
21
 import com.ruoyi.web.modules.screen.service.ICommonProsperityScreenService;
21
 import com.ruoyi.web.modules.screen.service.ICommonProsperityScreenService;
22
 import com.ruoyi.web.modules.screen.support.CommonProsperityScreenSupport;
22
 import com.ruoyi.web.modules.screen.support.CommonProsperityScreenSupport;
23
-import com.ruoyi.web.modules.screen.support.HomeScreenSupport;
24
 
23
 
25
 /**
24
 /**
26
  * 大屏共同富裕统计服务实现。
25
  * 大屏共同富裕统计服务实现。
@@ -91,14 +90,13 @@ public class CommonProsperityScreenServiceImpl implements ICommonProsperityScree
91
 
90
 
92
     /**
91
     /**
93
      * {@inheritDoc}
92
      * {@inheritDoc}
94
-     * <p>口径:{@code publish_status=1},按 {@code impl_year} 聚合;未传年份默认当前自然年。</p>
93
+     * <p>口径:{@code publish_status=1},按 {@code impl_year} 聚合;未传年份不过滤。</p>
95
      */
94
      */
96
     @Override
95
     @Override
97
     public List<CommonProsperityProjectTypeDetailVo> listProjectTypeDetails(Integer statYear)
96
     public List<CommonProsperityProjectTypeDetailVo> listProjectTypeDetails(Integer statYear)
98
     {
97
     {
99
-        int year = statYear != null ? statYear : HomeScreenSupport.currentYearMonth().getYear();
100
         List<CommonProsperityProjectTypeDetailVo> list =
98
         List<CommonProsperityProjectTypeDetailVo> list =
101
-                projectMapper.selectPublishedTypeDetailsByYear(year);
99
+                projectMapper.selectPublishedTypeDetailsByYear(statYear);
102
         return list != null ? list : new ArrayList<>();
100
         return list != null ? list : new ArrayList<>();
103
     }
101
     }
104
 
102
 

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

@@ -3,7 +3,6 @@ package com.ruoyi.web.modules.screen.service.impl;
3
 import java.math.BigDecimal;
3
 import java.math.BigDecimal;
4
 import java.math.RoundingMode;
4
 import java.math.RoundingMode;
5
 import java.time.LocalDate;
5
 import java.time.LocalDate;
6
-import java.time.YearMonth;
7
 import java.time.ZoneId;
6
 import java.time.ZoneId;
8
 import java.util.Collections;
7
 import java.util.Collections;
9
 import java.util.Date;
8
 import java.util.Date;
@@ -371,7 +370,7 @@ public class HomeScreenServiceImpl implements IHomeScreenService
371
     public List<HomeScreenPerCapitaIncomeListItemVo> listPerCapitaIncomes(Integer statYear)
370
     public List<HomeScreenPerCapitaIncomeListItemVo> listPerCapitaIncomes(Integer statYear)
372
     {
371
     {
373
         BizDisposableIncome query = new BizDisposableIncome();
372
         BizDisposableIncome query = new BizDisposableIncome();
374
-        query.setStatYear(statYear != null ? statYear : HomeScreenSupport.currentYearMonth().getYear());
373
+        query.setStatYear(statYear);
375
         List<BizDisposableIncome> rows = bizDisposableIncomeMapper.selectBizDisposableIncomeList(query);
374
         List<BizDisposableIncome> rows = bizDisposableIncomeMapper.selectBizDisposableIncomeList(query);
376
         return HomeScreenSupport.buildPerCapitaIncomeListItems(rows);
375
         return HomeScreenSupport.buildPerCapitaIncomeListItems(rows);
377
     }
376
     }
@@ -380,9 +379,8 @@ public class HomeScreenServiceImpl implements IHomeScreenService
380
     public List<HomeScreenFarmerHouseholdListItemVo> listFarmerHouseholds(
379
     public List<HomeScreenFarmerHouseholdListItemVo> listFarmerHouseholds(
381
             Integer statYear, Integer statMonth, Long townDeptId, Long villageDeptId)
380
             Integer statYear, Integer statMonth, Long townDeptId, Long villageDeptId)
382
     {
381
     {
383
-        YearMonth now = HomeScreenSupport.currentYearMonth();
384
         BizFarmerHousehold query = new BizFarmerHousehold();
382
         BizFarmerHousehold query = new BizFarmerHousehold();
385
-        query.setStatYear(statYear != null ? statYear : now.getYear());
383
+        query.setStatYear(statYear);
386
         query.setStatMonth(statMonth);
384
         query.setStatMonth(statMonth);
387
         query.setTownDeptId(townDeptId);
385
         query.setTownDeptId(townDeptId);
388
         query.setVillageDeptId(villageDeptId);
386
         query.setVillageDeptId(villageDeptId);
@@ -396,9 +394,8 @@ public class HomeScreenServiceImpl implements IHomeScreenService
396
     public List<HomeScreenCooperativeDevelopmentListItemVo> listCooperativeDevelopments(
394
     public List<HomeScreenCooperativeDevelopmentListItemVo> listCooperativeDevelopments(
397
             Integer statYear, Integer statMonth, Long townDeptId, Long villageDeptId)
395
             Integer statYear, Integer statMonth, Long townDeptId, Long villageDeptId)
398
     {
396
     {
399
-        YearMonth now = HomeScreenSupport.currentYearMonth();
400
         BizCooperativeDevelopment query = new BizCooperativeDevelopment();
397
         BizCooperativeDevelopment query = new BizCooperativeDevelopment();
401
-        query.setStatYear(statYear != null ? statYear : now.getYear());
398
+        query.setStatYear(statYear);
402
         query.setStatMonth(statMonth);
399
         query.setStatMonth(statMonth);
403
         query.setTownDeptId(townDeptId);
400
         query.setTownDeptId(townDeptId);
404
         query.setVillageDeptId(villageDeptId);
401
         query.setVillageDeptId(villageDeptId);
@@ -412,9 +409,8 @@ public class HomeScreenServiceImpl implements IHomeScreenService
412
     public List<HomeScreenFamilyRanchListItemVo> listFamilyRanches(
409
     public List<HomeScreenFamilyRanchListItemVo> listFamilyRanches(
413
             Integer statYear, Integer statMonth, Long townDeptId, Long villageDeptId)
410
             Integer statYear, Integer statMonth, Long townDeptId, Long villageDeptId)
414
     {
411
     {
415
-        YearMonth now = HomeScreenSupport.currentYearMonth();
416
         BizFamilyRanch query = new BizFamilyRanch();
412
         BizFamilyRanch query = new BizFamilyRanch();
417
-        query.setStatYear(statYear != null ? statYear : now.getYear());
413
+        query.setStatYear(statYear);
418
         query.setStatMonth(statMonth);
414
         query.setStatMonth(statMonth);
419
         query.setTownDeptId(townDeptId);
415
         query.setTownDeptId(townDeptId);
420
         query.setVillageDeptId(villageDeptId);
416
         query.setVillageDeptId(villageDeptId);
@@ -427,9 +423,8 @@ public class HomeScreenServiceImpl implements IHomeScreenService
427
     public List<HomeScreenLargeLivestockFarmerListItemVo> listLargeLivestockFarmers(
423
     public List<HomeScreenLargeLivestockFarmerListItemVo> listLargeLivestockFarmers(
428
             Integer statYear, Integer statMonth, Long townDeptId, Long villageDeptId)
424
             Integer statYear, Integer statMonth, Long townDeptId, Long villageDeptId)
429
     {
425
     {
430
-        YearMonth now = HomeScreenSupport.currentYearMonth();
431
         BizLargeLivestockFarmer query = new BizLargeLivestockFarmer();
426
         BizLargeLivestockFarmer query = new BizLargeLivestockFarmer();
432
-        query.setStatYear(statYear != null ? statYear : now.getYear());
427
+        query.setStatYear(statYear);
433
         query.setStatMonth(statMonth);
428
         query.setStatMonth(statMonth);
434
         query.setTownDeptId(townDeptId);
429
         query.setTownDeptId(townDeptId);
435
         query.setVillageDeptId(villageDeptId);
430
         query.setVillageDeptId(villageDeptId);
@@ -443,9 +438,8 @@ public class HomeScreenServiceImpl implements IHomeScreenService
443
     public List<HomeScreenYakOutboundReportListItemVo> listYakOutboundReports(
438
     public List<HomeScreenYakOutboundReportListItemVo> listYakOutboundReports(
444
             Integer statYear, Integer statMonth, Long townDeptId, Long villageDeptId)
439
             Integer statYear, Integer statMonth, Long townDeptId, Long villageDeptId)
445
     {
440
     {
446
-        YearMonth now = HomeScreenSupport.currentYearMonth();
447
         BizYakOutboundReport query = new BizYakOutboundReport();
441
         BizYakOutboundReport query = new BizYakOutboundReport();
448
-        query.setStatYear(statYear != null ? statYear : now.getYear());
442
+        query.setStatYear(statYear);
449
         query.setStatMonth(statMonth);
443
         query.setStatMonth(statMonth);
450
         query.setTownDeptId(townDeptId);
444
         query.setTownDeptId(townDeptId);
451
         query.setVillageDeptId(villageDeptId);
445
         query.setVillageDeptId(villageDeptId);
@@ -458,9 +452,8 @@ public class HomeScreenServiceImpl implements IHomeScreenService
458
     public List<HomeScreenYakHerdInventoryListItemVo> listYakHerdInventories(
452
     public List<HomeScreenYakHerdInventoryListItemVo> listYakHerdInventories(
459
             Integer statYear, Integer statMonth, Long townDeptId, Long villageDeptId)
453
             Integer statYear, Integer statMonth, Long townDeptId, Long villageDeptId)
460
     {
454
     {
461
-        YearMonth now = HomeScreenSupport.currentYearMonth();
462
         BizYakHerdInventory query = new BizYakHerdInventory();
455
         BizYakHerdInventory query = new BizYakHerdInventory();
463
-        query.setStatYear(statYear != null ? statYear : now.getYear());
456
+        query.setStatYear(statYear);
464
         query.setStatMonth(statMonth);
457
         query.setStatMonth(statMonth);
465
         query.setTownDeptId(townDeptId);
458
         query.setTownDeptId(townDeptId);
466
         query.setVillageDeptId(villageDeptId);
459
         query.setVillageDeptId(villageDeptId);
@@ -473,9 +466,8 @@ public class HomeScreenServiceImpl implements IHomeScreenService
473
     public List<HomeScreenLivestockOwnershipHouseholdListItemVo> listLivestockOwnershipHouseholds(
466
     public List<HomeScreenLivestockOwnershipHouseholdListItemVo> listLivestockOwnershipHouseholds(
474
             Integer statYear, Integer statMonth, Long townDeptId, Long villageDeptId)
467
             Integer statYear, Integer statMonth, Long townDeptId, Long villageDeptId)
475
     {
468
     {
476
-        YearMonth now = HomeScreenSupport.currentYearMonth();
477
         BizLivestockOwnershipHousehold query = new BizLivestockOwnershipHousehold();
469
         BizLivestockOwnershipHousehold query = new BizLivestockOwnershipHousehold();
478
-        query.setStatYear(statYear != null ? statYear : now.getYear());
470
+        query.setStatYear(statYear);
479
         query.setStatMonth(statMonth);
471
         query.setStatMonth(statMonth);
480
         query.setTownDeptId(townDeptId);
472
         query.setTownDeptId(townDeptId);
481
         query.setVillageDeptId(villageDeptId);
473
         query.setVillageDeptId(villageDeptId);

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

@@ -2,7 +2,6 @@ package com.ruoyi.web.modules.screen.service.impl;
2
 
2
 
3
 import java.time.LocalDate;
3
 import java.time.LocalDate;
4
 import java.time.LocalDateTime;
4
 import java.time.LocalDateTime;
5
-import java.time.YearMonth;
6
 import java.time.ZoneId;
5
 import java.time.ZoneId;
7
 import java.util.Collections;
6
 import java.util.Collections;
8
 import java.util.Date;
7
 import java.util.Date;
@@ -121,15 +120,16 @@ public class LivestockResourceScreenServiceImpl implements ILivestockResourceScr
121
     public List<LivestockResourceThreeAssetsProblemListItemVo> listThreeAssetsProblemReports(
120
     public List<LivestockResourceThreeAssetsProblemListItemVo> listThreeAssetsProblemReports(
122
             Integer statYear, Long townDeptId, Long villageDeptId)
121
             Integer statYear, Long townDeptId, Long villageDeptId)
123
     {
122
     {
124
-        int year = statYear != null ? statYear : HomeScreenSupport.currentYearMonth().getYear();
125
-        LocalDate yearStart = LocalDate.of(year, 1, 1);
126
-        LocalDate yearEnd = LocalDate.of(year, 12, 31);
127
-
128
         BizThreeAssetsProblemReport query = new BizThreeAssetsProblemReport();
123
         BizThreeAssetsProblemReport query = new BizThreeAssetsProblemReport();
129
         query.setTownDeptId(townDeptId);
124
         query.setTownDeptId(townDeptId);
130
         query.setVillageDeptId(villageDeptId);
125
         query.setVillageDeptId(villageDeptId);
131
-        query.setBeginReportTime(toDate(yearStart));
132
-        query.setEndReportTime(toDate(yearEnd));
126
+        if (statYear != null)
127
+        {
128
+            LocalDate yearStart = LocalDate.of(statYear, 1, 1);
129
+            LocalDate yearEnd = LocalDate.of(statYear, 12, 31);
130
+            query.setBeginReportTime(toDate(yearStart));
131
+            query.setEndReportTime(toDate(yearEnd));
132
+        }
133
         // 大屏全县口径,清空 dataScope
133
         // 大屏全县口径,清空 dataScope
134
         query.getParams().put("dataScope", "");
134
         query.getParams().put("dataScope", "");
135
         List<BizThreeAssetsProblemReport> rows =
135
         List<BizThreeAssetsProblemReport> rows =
@@ -141,9 +141,8 @@ public class LivestockResourceScreenServiceImpl implements ILivestockResourceScr
141
     public List<LivestockResourceProductOutputListItemVo> listProductOutputs(
141
     public List<LivestockResourceProductOutputListItemVo> listProductOutputs(
142
             Integer statYear, Integer statMonth, Long townDeptId, Long villageDeptId)
142
             Integer statYear, Integer statMonth, Long townDeptId, Long villageDeptId)
143
     {
143
     {
144
-        YearMonth current = HomeScreenSupport.currentYearMonth();
145
         BizLivestockProductOutput query = new BizLivestockProductOutput();
144
         BizLivestockProductOutput query = new BizLivestockProductOutput();
146
-        query.setStatYear(statYear != null ? statYear : current.getYear());
145
+        query.setStatYear(statYear);
147
         query.setStatMonth(statMonth);
146
         query.setStatMonth(statMonth);
148
         query.setTownDeptId(townDeptId);
147
         query.setTownDeptId(townDeptId);
149
         query.setVillageDeptId(villageDeptId);
148
         query.setVillageDeptId(villageDeptId);
@@ -158,9 +157,8 @@ public class LivestockResourceScreenServiceImpl implements ILivestockResourceScr
158
     public List<LivestockResourceVaccinationListItemVo> listVaccinationData(
157
     public List<LivestockResourceVaccinationListItemVo> listVaccinationData(
159
             Integer statYear, Integer statMonth, Long townDeptId, Long villageDeptId)
158
             Integer statYear, Integer statMonth, Long townDeptId, Long villageDeptId)
160
     {
159
     {
161
-        YearMonth current = HomeScreenSupport.currentYearMonth();
162
         BizVaccinationData query = new BizVaccinationData();
160
         BizVaccinationData query = new BizVaccinationData();
163
-        query.setStatYear(statYear != null ? statYear : current.getYear());
161
+        query.setStatYear(statYear);
164
         query.setStatMonth(statMonth);
162
         query.setStatMonth(statMonth);
165
         query.setTownDeptId(townDeptId);
163
         query.setTownDeptId(townDeptId);
166
         query.setVillageDeptId(villageDeptId);
164
         query.setVillageDeptId(villageDeptId);

+ 2 - 0
baqing-admin/src/main/resources/mapper/prosperity/BizCommonProsperityProjectMapper.xml

@@ -143,7 +143,9 @@
143
                sum(case when p.project_type = 3 then 1 else 0 end) as otherProjectCount
143
                sum(case when p.project_type = 3 then 1 else 0 end) as otherProjectCount
144
         from biz_common_prosperity_project p
144
         from biz_common_prosperity_project p
145
         where p.publish_status = 1
145
         where p.publish_status = 1
146
+          <if test="statYear != null">
146
           and p.impl_year = #{statYear}
147
           and p.impl_year = #{statYear}
148
+          </if>
147
         group by p.impl_year
149
         group by p.impl_year
148
         order by p.impl_year desc
150
         order by p.impl_year desc
149
     </select>
151
     </select>

+ 2 - 2
baqing-admin/src/test/java/com/ruoyi/web/modules/screen/controller/CommonProsperityScreenControllerApiTest.java

@@ -196,8 +196,8 @@ class CommonProsperityScreenControllerApiTest
196
     }
196
     }
197
 
197
 
198
     @Test
198
     @Test
199
-    @DisplayName("GET projectTypeDetails 缺年份传 null 由服务默认当前年")
200
-    void api_projectTypeDetails_defaultYear() throws Exception
199
+    @DisplayName("GET projectTypeDetails 缺年份传 null 由服务不过滤年份")
200
+    void api_projectTypeDetails_noYearFilter() throws Exception
201
     {
201
     {
202
         when(commonProsperityScreenService.listProjectTypeDetails(null)).thenReturn(Collections.emptyList());
202
         when(commonProsperityScreenService.listProjectTypeDetails(null)).thenReturn(Collections.emptyList());
203
         mockMvc.perform(get("/bigScreen/commonProsperity/projectTypeDetails"))
203
         mockMvc.perform(get("/bigScreen/commonProsperity/projectTypeDetails"))

+ 4 - 6
baqing-admin/src/test/java/com/ruoyi/web/modules/screen/service/impl/CommonProsperityScreenServiceImplTest.java

@@ -27,7 +27,6 @@ import com.ruoyi.web.modules.prosperity.mapper.BizCommonProsperityProjectMapper;
27
 import com.ruoyi.web.modules.prosperity.mapper.BizCommonProsperityProjectOpImageMapper;
27
 import com.ruoyi.web.modules.prosperity.mapper.BizCommonProsperityProjectOpImageMapper;
28
 import com.ruoyi.web.modules.screen.domain.vo.CommonProsperityProjectTypeDetailVo;
28
 import com.ruoyi.web.modules.screen.domain.vo.CommonProsperityProjectTypeDetailVo;
29
 import com.ruoyi.web.modules.screen.domain.vo.CommonProsperityScreenDashboardVo;
29
 import com.ruoyi.web.modules.screen.domain.vo.CommonProsperityScreenDashboardVo;
30
-import com.ruoyi.web.modules.screen.support.HomeScreenSupport;
31
 
30
 
32
 /**
31
 /**
33
  * DP-GTFY-UT-014、015
32
  * DP-GTFY-UT-014、015
@@ -164,16 +163,15 @@ class CommonProsperityScreenServiceImplTest
164
     }
163
     }
165
 
164
 
166
     @Test
165
     @Test
167
-    @DisplayName("分类明细:未传年份默认当前自然年")
168
-    void listProjectTypeDetails_defaultCurrentYear()
166
+    @DisplayName("分类明细:未传年份不过滤")
167
+    void listProjectTypeDetails_noYearFilter()
169
     {
168
     {
170
-        int currentYear = HomeScreenSupport.currentYearMonth().getYear();
171
-        when(projectMapper.selectPublishedTypeDetailsByYear(currentYear)).thenReturn(Collections.emptyList());
169
+        when(projectMapper.selectPublishedTypeDetailsByYear(null)).thenReturn(Collections.emptyList());
172
 
170
 
173
         List<CommonProsperityProjectTypeDetailVo> list = service.listProjectTypeDetails(null);
171
         List<CommonProsperityProjectTypeDetailVo> list = service.listProjectTypeDetails(null);
174
         assertNotNull(list);
172
         assertNotNull(list);
175
         assertTrue(list.isEmpty());
173
         assertTrue(list.isEmpty());
176
-        verify(projectMapper).selectPublishedTypeDetailsByYear(currentYear);
174
+        verify(projectMapper).selectPublishedTypeDetailsByYear(null);
177
     }
175
     }
178
 
176
 
179
     private static BizCommonProsperityAchievement sampleAchievementRow()
177
     private static BizCommonProsperityAchievement sampleAchievementRow()

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

@@ -203,14 +203,13 @@ class HomeScreenServiceImplTest
203
     }
203
     }
204
 
204
 
205
     @Test
205
     @Test
206
-    @DisplayName("DP-SY-UT-031b 人均收入明细未传年份默认当前年")
207
-    void ut031b_perCapitaIncomesDefaultCurrentYear()
206
+    @DisplayName("DP-SY-UT-031b 人均收入明细未传年份不过滤")
207
+    void ut031b_perCapitaIncomesNoYearFilter()
208
     {
208
     {
209
-        int currentYear = com.ruoyi.web.modules.screen.support.HomeScreenSupport.currentYearMonth().getYear();
210
         when(bizDisposableIncomeMapper.selectBizDisposableIncomeList(any(BizDisposableIncome.class)))
209
         when(bizDisposableIncomeMapper.selectBizDisposableIncomeList(any(BizDisposableIncome.class)))
211
                 .thenAnswer(invocation -> {
210
                 .thenAnswer(invocation -> {
212
                     BizDisposableIncome q = invocation.getArgument(0);
211
                     BizDisposableIncome q = invocation.getArgument(0);
213
-                    assertEquals(currentYear, q.getStatYear().intValue());
212
+                    assertNull(q.getStatYear());
214
                     return Collections.emptyList();
213
                     return Collections.emptyList();
215
                 });
214
                 });
216
 
215
 
@@ -252,14 +251,13 @@ class HomeScreenServiceImplTest
252
     }
251
     }
253
 
252
 
254
     @Test
253
     @Test
255
-    @DisplayName("DP-SY-UT-032b 农牧户明细未传年默认当前年,未传月不过滤")
256
-    void ut032b_farmerHouseholdsDefaultCurrentYearNoMonth()
254
+    @DisplayName("DP-SY-UT-032b 农牧户明细未传年月不过滤")
255
+    void ut032b_farmerHouseholdsNoYearMonthFilter()
257
     {
256
     {
258
-        java.time.YearMonth now = com.ruoyi.web.modules.screen.support.HomeScreenSupport.currentYearMonth();
259
         when(bizFarmerHouseholdMapper.selectBizFarmerHouseholdList(any(BizFarmerHousehold.class)))
257
         when(bizFarmerHouseholdMapper.selectBizFarmerHouseholdList(any(BizFarmerHousehold.class)))
260
                 .thenAnswer(invocation -> {
258
                 .thenAnswer(invocation -> {
261
                     BizFarmerHousehold q = invocation.getArgument(0);
259
                     BizFarmerHousehold q = invocation.getArgument(0);
262
-                    assertEquals(now.getYear(), q.getStatYear().intValue());
260
+                    assertNull(q.getStatYear());
263
                     assertNull(q.getStatMonth());
261
                     assertNull(q.getStatMonth());
264
                     return Collections.emptyList();
262
                     return Collections.emptyList();
265
                 });
263
                 });
@@ -295,14 +293,13 @@ class HomeScreenServiceImplTest
295
     }
293
     }
296
 
294
 
297
     @Test
295
     @Test
298
-    @DisplayName("DP-SY-UT-033b 合作社明细未传年默认当前年,未传月不过滤")
299
-    void ut033b_cooperativeDevelopmentsDefaultCurrentYearNoMonth()
296
+    @DisplayName("DP-SY-UT-033b 合作社明细未传年月不过滤")
297
+    void ut033b_cooperativeDevelopmentsNoYearMonthFilter()
300
     {
298
     {
301
-        java.time.YearMonth now = com.ruoyi.web.modules.screen.support.HomeScreenSupport.currentYearMonth();
302
         when(bizCooperativeDevelopmentMapper.selectBizCooperativeDevelopmentList(any(BizCooperativeDevelopment.class)))
299
         when(bizCooperativeDevelopmentMapper.selectBizCooperativeDevelopmentList(any(BizCooperativeDevelopment.class)))
303
                 .thenAnswer(invocation -> {
300
                 .thenAnswer(invocation -> {
304
                     BizCooperativeDevelopment q = invocation.getArgument(0);
301
                     BizCooperativeDevelopment q = invocation.getArgument(0);
305
-                    assertEquals(now.getYear(), q.getStatYear().intValue());
302
+                    assertNull(q.getStatYear());
306
                     assertNull(q.getStatMonth());
303
                     assertNull(q.getStatMonth());
307
                     return Collections.emptyList();
304
                     return Collections.emptyList();
308
                 });
305
                 });
@@ -333,14 +330,13 @@ class HomeScreenServiceImplTest
333
     }
330
     }
334
 
331
 
335
     @Test
332
     @Test
336
-    @DisplayName("DP-SY-UT-034b 家庭牧场明细未传年默认当前年,未传月不过滤")
337
-    void ut034b_familyRanchesDefaultCurrentYearNoMonth()
333
+    @DisplayName("DP-SY-UT-034b 家庭牧场明细未传年月不过滤")
334
+    void ut034b_familyRanchesNoYearMonthFilter()
338
     {
335
     {
339
-        java.time.YearMonth now = com.ruoyi.web.modules.screen.support.HomeScreenSupport.currentYearMonth();
340
         when(bizFamilyRanchMapper.selectBizFamilyRanchList(any(BizFamilyRanch.class)))
336
         when(bizFamilyRanchMapper.selectBizFamilyRanchList(any(BizFamilyRanch.class)))
341
                 .thenAnswer(invocation -> {
337
                 .thenAnswer(invocation -> {
342
                     BizFamilyRanch q = invocation.getArgument(0);
338
                     BizFamilyRanch q = invocation.getArgument(0);
343
-                    assertEquals(now.getYear(), q.getStatYear().intValue());
339
+                    assertNull(q.getStatYear());
344
                     assertNull(q.getStatMonth());
340
                     assertNull(q.getStatMonth());
345
                     return Collections.emptyList();
341
                     return Collections.emptyList();
346
                 });
342
                 });
@@ -372,14 +368,13 @@ class HomeScreenServiceImplTest
372
     }
368
     }
373
 
369
 
374
     @Test
370
     @Test
375
-    @DisplayName("DP-SY-UT-035b 养殖大户明细未传年默认当前年,未传月不过滤")
376
-    void ut035b_largeLivestockFarmersDefaultCurrentYearNoMonth()
371
+    @DisplayName("DP-SY-UT-035b 养殖大户明细未传年月不过滤")
372
+    void ut035b_largeLivestockFarmersNoYearMonthFilter()
377
     {
373
     {
378
-        java.time.YearMonth now = com.ruoyi.web.modules.screen.support.HomeScreenSupport.currentYearMonth();
379
         when(bizLargeLivestockFarmerMapper.selectBizLargeLivestockFarmerList(any(BizLargeLivestockFarmer.class)))
374
         when(bizLargeLivestockFarmerMapper.selectBizLargeLivestockFarmerList(any(BizLargeLivestockFarmer.class)))
380
                 .thenAnswer(invocation -> {
375
                 .thenAnswer(invocation -> {
381
                     BizLargeLivestockFarmer q = invocation.getArgument(0);
376
                     BizLargeLivestockFarmer q = invocation.getArgument(0);
382
-                    assertEquals(now.getYear(), q.getStatYear().intValue());
377
+                    assertNull(q.getStatYear());
383
                     assertNull(q.getStatMonth());
378
                     assertNull(q.getStatMonth());
384
                     return Collections.emptyList();
379
                     return Collections.emptyList();
385
                 });
380
                 });
@@ -412,14 +407,13 @@ class HomeScreenServiceImplTest
412
     }
407
     }
413
 
408
 
414
     @Test
409
     @Test
415
-    @DisplayName("DP-SY-UT-036b 牦牛出栏明细未传年默认当前年,未传月不过滤")
416
-    void ut036b_yakOutboundReportsDefaultCurrentYearNoMonth()
410
+    @DisplayName("DP-SY-UT-036b 牦牛出栏明细未传年月不过滤")
411
+    void ut036b_yakOutboundReportsNoYearMonthFilter()
417
     {
412
     {
418
-        java.time.YearMonth now = com.ruoyi.web.modules.screen.support.HomeScreenSupport.currentYearMonth();
419
         when(bizYakOutboundReportMapper.selectBizYakOutboundReportList(any(BizYakOutboundReport.class)))
413
         when(bizYakOutboundReportMapper.selectBizYakOutboundReportList(any(BizYakOutboundReport.class)))
420
                 .thenAnswer(invocation -> {
414
                 .thenAnswer(invocation -> {
421
                     BizYakOutboundReport q = invocation.getArgument(0);
415
                     BizYakOutboundReport q = invocation.getArgument(0);
422
-                    assertEquals(now.getYear(), q.getStatYear().intValue());
416
+                    assertNull(q.getStatYear());
423
                     assertNull(q.getStatMonth());
417
                     assertNull(q.getStatMonth());
424
                     return Collections.emptyList();
418
                     return Collections.emptyList();
425
                 });
419
                 });
@@ -451,14 +445,13 @@ class HomeScreenServiceImplTest
451
     }
445
     }
452
 
446
 
453
     @Test
447
     @Test
454
-    @DisplayName("DP-SY-UT-037b 牦牛存栏明细未传年默认当前年,未传月不过滤")
455
-    void ut037b_yakHerdInventoriesDefaultCurrentYearNoMonth()
448
+    @DisplayName("DP-SY-UT-037b 牦牛存栏明细未传年月不过滤")
449
+    void ut037b_yakHerdInventoriesNoYearMonthFilter()
456
     {
450
     {
457
-        java.time.YearMonth now = com.ruoyi.web.modules.screen.support.HomeScreenSupport.currentYearMonth();
458
         when(bizYakHerdInventoryMapper.selectBizYakHerdInventoryList(any(BizYakHerdInventory.class)))
451
         when(bizYakHerdInventoryMapper.selectBizYakHerdInventoryList(any(BizYakHerdInventory.class)))
459
                 .thenAnswer(invocation -> {
452
                 .thenAnswer(invocation -> {
460
                     BizYakHerdInventory q = invocation.getArgument(0);
453
                     BizYakHerdInventory q = invocation.getArgument(0);
461
-                    assertEquals(now.getYear(), q.getStatYear().intValue());
454
+                    assertNull(q.getStatYear());
462
                     assertNull(q.getStatMonth());
455
                     assertNull(q.getStatMonth());
463
                     return Collections.emptyList();
456
                     return Collections.emptyList();
464
                 });
457
                 });
@@ -491,15 +484,14 @@ class HomeScreenServiceImplTest
491
     }
484
     }
492
 
485
 
493
     @Test
486
     @Test
494
-    @DisplayName("DP-SY-UT-038b 有无畜户明细未传年默认当前年,未传月不过滤")
495
-    void ut038b_livestockOwnershipHouseholdsDefaultCurrentYearNoMonth()
487
+    @DisplayName("DP-SY-UT-038b 有无畜户明细未传年月不过滤")
488
+    void ut038b_livestockOwnershipHouseholdsNoYearMonthFilter()
496
     {
489
     {
497
-        java.time.YearMonth now = com.ruoyi.web.modules.screen.support.HomeScreenSupport.currentYearMonth();
498
         when(bizLivestockOwnershipHouseholdMapper.selectBizLivestockOwnershipHouseholdList(
490
         when(bizLivestockOwnershipHouseholdMapper.selectBizLivestockOwnershipHouseholdList(
499
                 any(BizLivestockOwnershipHousehold.class)))
491
                 any(BizLivestockOwnershipHousehold.class)))
500
                 .thenAnswer(invocation -> {
492
                 .thenAnswer(invocation -> {
501
                     BizLivestockOwnershipHousehold q = invocation.getArgument(0);
493
                     BizLivestockOwnershipHousehold q = invocation.getArgument(0);
502
-                    assertEquals(now.getYear(), q.getStatYear().intValue());
494
+                    assertNull(q.getStatYear());
503
                     assertNull(q.getStatMonth());
495
                     assertNull(q.getStatMonth());
504
                     return Collections.emptyList();
496
                     return Collections.emptyList();
505
                 });
497
                 });

+ 22 - 2
baqing-admin/src/test/java/com/ruoyi/web/modules/screen/service/impl/LivestockResourceScreenServiceImplTest.java

@@ -2,6 +2,7 @@ package com.ruoyi.web.modules.screen.service.impl;
2
 
2
 
3
 import static org.junit.jupiter.api.Assertions.assertEquals;
3
 import static org.junit.jupiter.api.Assertions.assertEquals;
4
 import static org.junit.jupiter.api.Assertions.assertNotNull;
4
 import static org.junit.jupiter.api.Assertions.assertNotNull;
5
+import static org.junit.jupiter.api.Assertions.assertNull;
5
 import static org.mockito.ArgumentMatchers.any;
6
 import static org.mockito.ArgumentMatchers.any;
6
 import static org.mockito.ArgumentMatchers.anyInt;
7
 import static org.mockito.ArgumentMatchers.anyInt;
7
 import static org.mockito.ArgumentMatchers.eq;
8
 import static org.mockito.ArgumentMatchers.eq;
@@ -180,7 +181,7 @@ class LivestockResourceScreenServiceImplTest
180
     }
181
     }
181
 
182
 
182
     @Test
183
     @Test
183
-    @DisplayName("三资问题上报明细默认当前年并组装字段")
184
+    @DisplayName("三资问题上报明细按年过滤并组装字段")
184
     void listThreeAssetsProblemReports()
185
     void listThreeAssetsProblemReports()
185
     {
186
     {
186
         BizThreeAssetsProblemReport row = new BizThreeAssetsProblemReport();
187
         BizThreeAssetsProblemReport row = new BizThreeAssetsProblemReport();
@@ -190,7 +191,12 @@ class LivestockResourceScreenServiceImplTest
190
         row.setProblemDetail("道路硬化问题");
191
         row.setProblemDetail("道路硬化问题");
191
         row.setHandleResult("已整改");
192
         row.setHandleResult("已整改");
192
         when(bizThreeAssetsProblemReportMapper.selectBizThreeAssetsProblemReportList(any()))
193
         when(bizThreeAssetsProblemReportMapper.selectBizThreeAssetsProblemReportList(any()))
193
-                .thenReturn(Collections.singletonList(row));
194
+                .thenAnswer(invocation -> {
195
+                    BizThreeAssetsProblemReport q = invocation.getArgument(0);
196
+                    assertNotNull(q.getBeginReportTime());
197
+                    assertNotNull(q.getEndReportTime());
198
+                    return Collections.singletonList(row);
199
+                });
194
 
200
 
195
         java.util.List<LivestockResourceThreeAssetsProblemListItemVo> list =
201
         java.util.List<LivestockResourceThreeAssetsProblemListItemVo> list =
196
                 service.listThreeAssetsProblemReports(2026, 101L, 201L);
202
                 service.listThreeAssetsProblemReports(2026, 101L, 201L);
@@ -203,6 +209,20 @@ class LivestockResourceScreenServiceImplTest
203
         assertEquals("已整改", list.get(0).getHandleResult());
209
         assertEquals("已整改", list.get(0).getHandleResult());
204
     }
210
     }
205
 
211
 
212
+    @Test
213
+    @DisplayName("三资问题上报明细未传年份不过滤上报时间窗")
214
+    void listThreeAssetsProblemReports_noYearFilter()
215
+    {
216
+        when(bizThreeAssetsProblemReportMapper.selectBizThreeAssetsProblemReportList(any()))
217
+                .thenAnswer(invocation -> {
218
+                    BizThreeAssetsProblemReport q = invocation.getArgument(0);
219
+                    assertNull(q.getBeginReportTime());
220
+                    assertNull(q.getEndReportTime());
221
+                    return Collections.emptyList();
222
+                });
223
+        assertEquals(0, service.listThreeAssetsProblemReports(null, null, null).size());
224
+    }
225
+
206
     @Test
226
     @Test
207
     @DisplayName("DP-XM-UT-009 产量明细分页")
227
     @DisplayName("DP-XM-UT-009 产量明细分页")
208
     void listProductOutputs()
228
     void listProductOutputs()

+ 3 - 2
doc/大屏/共同富裕/大屏共同富裕功能需求.md

@@ -246,7 +246,7 @@ flowchart TD
246
 
246
 
247
 | 项 | 规则 |
247
 | 项 | 规则 |
248
 | --- | --- |
248
 | --- | --- |
249
-| 筛选 | **所属年份**(实施年限);未选时默认**当前自然年** |
249
+| 筛选 | **所属年份**(实施年限);未选时**不过滤**(跨年按实施年限倒序) |
250
 | 数据口径 | 已发布项目(`publish_status=1`),按所属年份聚合;与饼图纳入规则一致 |
250
 | 数据口径 | 已发布项目(`publish_status=1`),按所属年份聚合;与饼图纳入规则一致 |
251
 | 列表字段 | **所属年份**、**项目总数**、**和美乡村建设项目数**、**人居环境整治提升项目数**、**其他项目投入数**(单位:个) |
251
 | 列表字段 | **所属年份**、**项目总数**、**和美乡村建设项目数**、**人居环境整治提升项目数**、**其他项目投入数**(单位:个) |
252
 | 排序 | 按所属年份**倒序** |
252
 | 排序 | 按所属年份**倒序** |
@@ -359,7 +359,7 @@ flowchart TD
359
 | DP-08 | 项目列表 | 分页正常;行内可见类型、名称、简介、内容、周期、图视;无单独详情页跳转 |
359
 | DP-08 | 项目列表 | 分页正常;行内可见类型、名称、简介、内容、周期、图视;无单独详情页跳转 |
360
 | DP-09 | 后台补录后刷新 | 补录某月成果或发布项目后,大屏刷新可见新数据 |
360
 | DP-09 | 后台补录后刷新 | 补录某月成果或发布项目后,大屏刷新可见新数据 |
361
 | DP-10 | 下架项目 | 已下架项目不再出现在分类与列表 |
361
 | DP-10 | 下架项目 | 已下架项目不再出现在分类与列表 |
362
-| DP-11 | 分类明细 | 明细弹窗按所属年展示总数及三类数量;默认当前年;支持分页;年份倒序 |
362
+| DP-11 | 分类明细 | 明细弹窗按所属年展示总数及三类数量;未选年可跨年分页;支持分页;年份倒序 |
363
 
363
 
364
 ---
364
 ---
365
 
365
 
@@ -372,6 +372,7 @@ flowchart TD
372
 | 1.2 | 2026-07-24 | **总览与按月图表**统一按所选年 **Y** 的 1~12 月取数;取消滚动 12 月窗口 |
372
 | 1.2 | 2026-07-24 | **总览与按月图表**统一按所选年 **Y** 的 1~12 月取数;取消滚动 12 月窗口 |
373
 | 1.3 | 2026-07-24 | **总览 / 数字赋能**改为所选年台账**最大统计月**的单月数据;按月图表仍为该年 1~12 月 |
373
 | 1.3 | 2026-07-24 | **总览 / 数字赋能**改为所选年台账**最大统计月**的单月数据;按月图表仍为该年 1~12 月 |
374
 | 1.4 | 2026-07-24 | 按月图表改为所选年 **1~最大月**;与管理端年度报告口径一致 |
374
 | 1.4 | 2026-07-24 | 按月图表改为所选年 **1~最大月**;与管理端年度报告口径一致 |
375
+| 1.6 | 2026-08-18 | §5.10.1 / DP-11:分类明细未选年份不过滤 |
375
 | 1.5 | 2026-07-24 | 新增 **§5.10.1** 共富项目分类情况明细(下钻);验收 DP-11 |
376
 | 1.5 | 2026-07-24 | 新增 **§5.10.1** 共富项目分类情况明细(下钻);验收 DP-11 |
376
 
377
 
377
 ---
378
 ---

+ 2 - 1
doc/大屏/共同富裕/大屏共同富裕技术方案.md

@@ -233,7 +233,7 @@
233
 
233
 
234
 | 参数 | 类型 | 必填 | 说明 |
234
 | 参数 | 类型 | 必填 | 说明 |
235
 | --- | --- | --- | --- |
235
 | --- | --- | --- | --- |
236
-| `statYear` | int | N | 所属年份(实施年限);**未传默认当前自然年** |
236
+| `statYear` | int | N | 所属年份(实施年限);**未传不过滤(跨年按实施年限倒序)** |
237
 | `pageNum` | int | N | 默认 `1` |
237
 | `pageNum` | int | N | 默认 `1` |
238
 | `pageSize` | int | N | 默认若依分页 |
238
 | `pageSize` | int | N | 默认若依分页 |
239
 
239
 
@@ -286,4 +286,5 @@ SQL 示例:`sql/big_screen_common_prosperity_perm.sql`(挂载「大屏」父
286
 | 1.1 | 2026-07-24 | 看板 `monthly` 改回所选年 1~12 月(与 `summary` 同源),不再覆盖为滚动 12 月 |
286
 | 1.1 | 2026-07-24 | 看板 `monthly` 改回所选年 1~12 月(与 `summary` 同源),不再覆盖为滚动 12 月 |
287
 | 1.2 | 2026-07-24 | 看板 `summary` 改为所选年**最大统计月**单月值;`monthly` 仍为该年 1~12 月 |
287
 | 1.2 | 2026-07-24 | 看板 `summary` 改为所选年**最大统计月**单月值;`monthly` 仍为该年 1~12 月 |
288
 | 1.3 | 2026-07-24 | `monthly` 改为所选年 1~最大月;与管理端年度报告共用 Aggregator 口径 |
288
 | 1.3 | 2026-07-24 | `monthly` 改为所选年 1~最大月;与管理端年度报告共用 Aggregator 口径 |
289
+| 1.5 | 2026-08-18 | `/projectTypeDetails`:年份未传不过滤(跨年按实施年限倒序聚合) |
289
 | 1.4 | 2026-07-24 | 新增共富项目分类情况明细 `GET /projectTypeDetails`(分页、按年聚合) |
290
 | 1.4 | 2026-07-24 | 新增共富项目分类情况明细 `GET /projectTypeDetails`(分页、按年聚合) |

+ 2 - 1
doc/大屏/共同富裕/大屏共同富裕测试用例.md

@@ -82,7 +82,7 @@
82
 | DP-GTFY-API-027 | 权限 | 有大屏无成果写 | 接口测试 | Postman | 只读 | 仅有 query | `GET` 成功;`POST /commonProsperity/achievement` 失败 | 大屏可读;台账不可写 |
82
 | DP-GTFY-API-027 | 权限 | 有大屏无成果写 | 接口测试 | Postman | 只读 | 仅有 query | `GET` 成功;`POST /commonProsperity/achievement` 失败 | 大屏可读;台账不可写 |
83
 | DP-GTFY-API-028 | 一致性 | 切年数据不串 | 接口测试 | Postman | DP-02 | 2025、2026 各不同数据 | 分别 `statYear=2025/2026` | 各年 `monthly`/项目集合互不混入 |
83
 | DP-GTFY-API-028 | 一致性 | 切年数据不串 | 接口测试 | Postman | DP-02 | 2025、2026 各不同数据 | 分别 `statYear=2025/2026` | 各年 `monthly`/项目集合互不混入 |
84
 | DP-GTFY-API-029 | 分类明细 | 指定年有数据 | 接口测试 | Postman | DP-11、§5.10.1 | 2026 已发布三类项目 | `GET .../projectTypeDetails?statYear=2026` | `code` 成功;`rows[0].statYear=2026`;`totalCount`=三类之和;各类型 count 正确 |
84
 | DP-GTFY-API-029 | 分类明细 | 指定年有数据 | 接口测试 | Postman | DP-11、§5.10.1 | 2026 已发布三类项目 | `GET .../projectTypeDetails?statYear=2026` | `code` 成功;`rows[0].statYear=2026`;`totalCount`=三类之和;各类型 count 正确 |
85
-| DP-GTFY-API-030 | 分类明细 | 缺年份默认当前年 | 接口测试 | Postman | §5.10.1 | 已登录;当前年有/无项目均可 | 不传 `statYear` | 成功;按当前自然年聚合(无数据则 `rows=[]`) |
85
+| DP-GTFY-API-030 | 分类明细 | 缺年份不过滤 | 接口测试 | Postman | §5.10.1 | 已登录;库中有多年项目 | 不传 `statYear` | 成功;按实施年限倒序返回多年聚合行(无数据则 `rows=[]`) |
86
 | DP-GTFY-API-031 | 分类明细 | 未发布不计 | 接口测试 | Postman | 业务约束 | 该年仅未发布项目 | `GET projectTypeDetails` | `rows=[]` 或无该年行 |
86
 | DP-GTFY-API-031 | 分类明细 | 未发布不计 | 接口测试 | Postman | 业务约束 | 该年仅未发布项目 | `GET projectTypeDetails` | `rows=[]` 或无该年行 |
87
 | DP-GTFY-API-032 | 分类明细 | 分页参数 | 接口测试 | Postman | 分页 | 已登录 | `pageNum=1&pageSize=10` | 成功;`total`/`rows` 符合 PageHelper |
87
 | DP-GTFY-API-032 | 分类明细 | 分页参数 | 接口测试 | Postman | 分页 | 已登录 | `pageNum=1&pageSize=10` | 成功;`total`/`rows` 符合 PageHelper |
88
 
88
 
@@ -182,4 +182,5 @@ await expect(page.locator('[data-chart]')).toHaveCount(6); // 集体经济/就
182
 | 版本 | 说明 |
182
 | 版本 | 说明 |
183
 | --- | --- |
183
 | --- | --- |
184
 | 1.0 | 初版:单元 18、接口 28、UI 25;覆盖 DP-01~10 与正常/异常/约束;Playwright+Chrome;Base `/bigScreen/commonProsperity` |
184
 | 1.0 | 初版:单元 18、接口 28、UI 25;覆盖 DP-01~10 与正常/异常/约束;Playwright+Chrome;Base `/bigScreen/commonProsperity` |
185
+| 1.2 | 分类明细缺年份改为不过滤(API-030) |
185
 | 1.1 | 增补分类情况明细 API-029~032(DP-11);成果口径改为最大月 / 1~最大月 |
186
 | 1.1 | 增补分类情况明细 API-029~032(DP-11);成果口径改为最大月 / 1~最大月 |

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

@@ -436,7 +436,7 @@ XML:`mapper/screen/LivestockResourceScreenMapper.xml`。
436
 
436
 
437
 | 参数 | 类型 | 必填 | 说明 |
437
 | 参数 | 类型 | 必填 | 说明 |
438
 | --- | --- | --- | --- |
438
 | --- | --- | --- | --- |
439
-| `statYear` | int | N | 所属年份;未传默认**当前自然年**;按 `report_time` 落在该年 1-1~12-31 |
439
+| `statYear` | int | N | 所属年份;**未传不过滤**;传入则按 `report_time` 落在该年 1-1~12-31 |
440
 | `townDeptId` | long | N | 所属乡镇 |
440
 | `townDeptId` | long | N | 所属乡镇 |
441
 | `villageDeptId` | long | N | 所属村 |
441
 | `villageDeptId` | long | N | 所属村 |
442
 | `pageNum` / `pageSize` | int | N | 分页 |
442
 | `pageNum` / `pageSize` | int | N | 分页 |
@@ -467,8 +467,8 @@ XML:`mapper/screen/LivestockResourceScreenMapper.xml`。
467
 
467
 
468
 | 参数 | 类型 | 必填 | 说明 |
468
 | 参数 | 类型 | 必填 | 说明 |
469
 | --- | --- | --- | --- |
469
 | --- | --- | --- | --- |
470
-| `statYear` | int | N | 所属年份;未传默认**当前自然年** |
471
-| `statMonth` | int | N | 所属月份;未传不过滤(该年全年,按月倒序) |
470
+| `statYear` | int | N | 所属年份;**未传不过滤(支持跨多年全量翻页)** |
471
+| `statMonth` | int | N | 所属月份;未传不过滤 |
472
 | `townDeptId` | long | N | 所属乡镇 |
472
 | `townDeptId` | long | N | 所属乡镇 |
473
 | `villageDeptId` | long | N | 所属村 |
473
 | `villageDeptId` | long | N | 所属村 |
474
 | `pageNum` / `pageSize` | int | N | 分页 |
474
 | `pageNum` / `pageSize` | int | N | 分页 |
@@ -498,8 +498,8 @@ XML:`mapper/screen/LivestockResourceScreenMapper.xml`。
498
 
498
 
499
 | 参数 | 类型 | 必填 | 说明 |
499
 | 参数 | 类型 | 必填 | 说明 |
500
 | --- | --- | --- | --- |
500
 | --- | --- | --- | --- |
501
-| `statYear` | int | N | 所属年份;未传默认**当前自然年** |
502
-| `statMonth` | int | N | 所属月份;未传不过滤(该年全年,按月倒序) |
501
+| `statYear` | int | N | 所属年份;**未传不过滤(支持跨多年全量翻页)** |
502
+| `statMonth` | int | N | 所属月份;未传不过滤 |
503
 | `townDeptId` | long | N | 所属乡镇 |
503
 | `townDeptId` | long | N | 所属乡镇 |
504
 | `villageDeptId` | long | N | 所属村 |
504
 | `villageDeptId` | long | N | 所属村 |
505
 | `pageNum` / `pageSize` | int | N | 分页 |
505
 | `pageNum` / `pageSize` | int | N | 分页 |
@@ -570,6 +570,7 @@ SQL 示例:`sql/big_screen_livestock_resource_perm.sql`(挂载「大屏」
570
 
570
 
571
 | 版本 | 日期 | 说明 |
571
 | 版本 | 日期 | 说明 |
572
 | --- | --- | --- |
572
 | --- | --- | --- |
573
+| 1.17 | 2026-08-18 | 明细分页年份未传一律不过滤:`/threeAssetsProblemReports`、`/productOutputs`、`/vaccinationData` |
573
 | 1.16 | 2026-08-18 | `/productOutputs`、`/vaccinationData`:月份未传不过滤(该年全年);年份未传仍默认当前年 |
574
 | 1.16 | 2026-08-18 | `/productOutputs`、`/vaccinationData`:月份未传不过滤(该年全年);年份未传仍默认当前年 |
574
 | 1.15 | 2026-07-24 | 新增兽医数量明细分页接口 `/vetCounts`(按乡镇汇总) |
575
 | 1.15 | 2026-07-24 | 新增兽医数量明细分页接口 `/vetCounts`(按乡镇汇总) |
575
 | 1.13 | 2026-07-24 | 新增畜牧产品产量数据明细分页接口 `/productOutputs` |
576
 | 1.13 | 2026-07-24 | 新增畜牧产品产量数据明细分页接口 `/productOutputs` |

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

@@ -89,8 +89,8 @@
89
 | **合作社经营模式分类** | 所选年 **Y** 内 `biz_cooperative_development` 最大填报月按 `business_model` 计数(整村/股份/联合/多种经营/公司型/其他);饼图;单位**个**;字段 **`cooperativeBusinessModel`** |
89
 | **合作社经营模式分类** | 所选年 **Y** 内 `biz_cooperative_development` 最大填报月按 `business_model` 计数(整村/股份/联合/多种经营/公司型/其他);饼图;单位**个**;字段 **`cooperativeBusinessModel`** |
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`;条件:所属年份(可选,**默认当前年**);按**所属年份倒序**;返回年份、农村居民人均可支配收入、增幅、增速、脱贫人口人均纯收入 |
93
-| **农牧户数据明细** | 独立接口分页查询 `biz_farmer_household`;条件:年(可选,**默认当前年**)、月(可选,**未传不过滤**)、乡镇、村;按**年、月倒序**;返回全部业务列表字段 |
92
+| **人均收入明细** | 独立接口分页查询 `biz_disposable_income`;条件:所属年份(可选,**未传不过滤**);按**所属年份倒序**;返回年份、农村居民人均可支配收入、增幅、增速、脱贫人口人均纯收入 |
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.22 | 2026-08-18 | 大屏明细分页:年份未传一律不过滤(跨年全量翻页);含人均收入/农牧户/合作社/家庭牧场/养殖大户/出栏/存栏/有无畜户 |
506
 | 1.21 | 2026-08-18 | 大屏明细分页:月份未传一律不过滤(该年全年);年份未传仍默认当前年。含合作社/家庭牧场/养殖大户/出栏/存栏/有无畜户 |
507
 | 1.21 | 2026-08-18 | 大屏明细分页:月份未传一律不过滤(该年全年);年份未传仍默认当前年。含合作社/家庭牧场/养殖大户/出栏/存栏/有无畜户 |
507
 | 1.19 | 2026-07-24 | 人均收入趋势改为以库中最大所属年为终点的最近 5 年 |
508
 | 1.19 | 2026-07-24 | 人均收入趋势改为以库中最大所属年为终点的最近 5 年 |
508
 | 1.18 | 2026-07-24 | 牦牛月度出栏趋势改为按填报最大月 N 输出 1~N 月(区间缺月补 0) |
509
 | 1.18 | 2026-07-24 | 牦牛月度出栏趋势改为按填报最大月 N 输出 1~N 月(区间缺月补 0) |

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

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

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

@@ -83,14 +83,14 @@
83
 | DP-SY-UT-028 | 产业总览 | 农牧户合计 | 单元测试 | JUnit5 | §5.2 | Mock `biz_farmer_household` 所选年最大月 | `loadDashboard(Y)` | `pastureCount` 为该年月全县村级 `household_count` 合计 |
83
 | DP-SY-UT-028 | 产业总览 | 农牧户合计 | 单元测试 | JUnit5 | §5.2 | Mock `biz_farmer_household` 所选年最大月 | `loadDashboard(Y)` | `pastureCount` 为该年月全县村级 `household_count` 合计 |
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` | 字段完整;未传年默认当前年 |
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(...)` | 字段完整;未传年默认当前年;未传月不过滤 |
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` | 字段完整;未传年月不过滤 |
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
 | DP-SY-UT-039 | 存出栏情况明细 | 关联与跨年全量 | 单元测试 | JUnit5 | §2.5 | Mock `selectYakInventoryOutboundList` | `listYakInventoryOutbounds(...)` | 返回存栏/出栏;未传年月不过滤(传 null) |
94
 | DP-SY-UT-039 | 存出栏情况明细 | 关联与跨年全量 | 单元测试 | JUnit5 | §2.5 | Mock `selectYakInventoryOutboundList` | `listYakInventoryOutbounds(...)` | 返回存栏/出栏;未传年月不过滤(传 null) |
95
 | DP-SY-UT-040 | 养殖主体数量明细 | 关联计数与跨年全量 | 单元测试 | JUnit5 | §2.5 | Mock `selectBreedingEntityQuantityList` | `listBreedingEntityQuantities(...)` | 返回四类数量;未传年月不过滤 |
95
 | DP-SY-UT-040 | 养殖主体数量明细 | 关联计数与跨年全量 | 单元测试 | JUnit5 | §2.5 | Mock `selectBreedingEntityQuantityList` | `listBreedingEntityQuantities(...)` | 返回四类数量;未传年月不过滤 |
96
 | DP-SY-UT-041 | 乡镇列表 | 全县口径 | 单元测试 | JUnit5 | §2.5 | Mock `toAllOptionList` | `listTownOptions()` | 返回乡镇选项 |
96
 | DP-SY-UT-041 | 乡镇列表 | 全县口径 | 单元测试 | JUnit5 | §2.5 | Mock `toAllOptionList` | `listTownOptions()` | 返回乡镇选项 |
@@ -268,6 +268,7 @@ await page.route('**/bigScreen/home/dashboard**', route =>
268
 
268
 
269
 | 版本 | 说明 |
269
 | 版本 | 说明 |
270
 | --- | --- |
270
 | --- | --- |
271
+| 1.8 | 明细分页:年份未传不过滤(UT-031~038) |
271
 | 1.7 | 新增大屏乡镇列表、村树接口(UT-041~042、API-050~051) |
272
 | 1.7 | 新增大屏乡镇列表、村树接口(UT-041~042、API-050~051) |
272
 | 1.6 | 新增养殖主体数量明细接口(UT-040、API-049) |
273
 | 1.6 | 新增养殖主体数量明细接口(UT-040、API-049) |
273
 | 1.5 | 存出栏明细:年月未传不过滤,支持跨年全量翻页(UT-039) |
274
 | 1.5 | 存出栏明细:年月未传不过滤,支持跨年全量翻页(UT-039) |