Browse Source

fix: 年度统计修改

zhangying 8 months ago
parent
commit
a31ac962ee

+ 45 - 36
src/main/java/com/hz/employmentsite/services/impl/statistics/StatisticsServiceImpl.java

@@ -3,6 +3,7 @@ package com.hz.employmentsite.services.impl.statistics;
 import com.hz.employmentsite.mapper.cquery.StatisticsCQuery;
 import com.hz.employmentsite.services.service.statistics.StatisticsService;
 import com.hz.employmentsite.util.DateUtils;
+import com.hz.employmentsite.util.StringUtils;
 import com.hz.employmentsite.vo.statistics.RegionSystemDataCount;
 import com.hz.employmentsite.vo.statistics.SystemDataCount;
 import com.hz.employmentsite.vo.statistics.jobUser.AgeRangeJobUserCount;
@@ -23,6 +24,9 @@ public class StatisticsServiceImpl implements StatisticsService {
     @Autowired
     private DateUtils dateUtils;
 
+    @Autowired
+    private StringUtils stringUtils;
+
     /**
      * 查询指定时间段系统使用情况
      *
@@ -182,10 +186,12 @@ public class StatisticsServiceImpl implements StatisticsService {
         // 创建一个 map 来存储 regionCode 和 siteUserCount 的对应关系
         Map<String, Integer> siteUserCountMap = new LinkedHashMap<>();
         for (RegionSystemDataCount item : regionSiteUserCount) {
-            siteUserCountMap.put(item.getRegionCode(), item.getSiteUserCount());
-            // 初始化统计数据,当前阶段只包含regionCode, regionName, siteUserCount
-            RegionSystemDataCount summaryData = new RegionSystemDataCount(item.getRegionCode(), item.getRegionName(), item.getSiteUserCount(), 0, 0, 0);
-            sumData.add(summaryData);
+            if (!stringUtils.IsNullOrEmpty(item.getRegionCode())){
+                siteUserCountMap.put(item.getRegionCode(), item.getSiteUserCount());
+                // 初始化统计数据,当前阶段只包含regionCode, regionName, siteUserCount
+                RegionSystemDataCount summaryData = new RegionSystemDataCount(item.getRegionCode(), item.getRegionName(), item.getSiteUserCount(), 0, 0, 0);
+                sumData.add(summaryData);
+            }
         }
 
         // 最终结果
@@ -200,40 +206,43 @@ public class StatisticsServiceImpl implements StatisticsService {
             // 从查询的年份中进行数据匹配(按regionCode和月份)
             int finalI = i;
             sumData.forEach(monthData -> {
-                // 获取到企业,岗位,求职人员的统计数据
-                int companyCount = yearCompanyCount.stream()
-                        .filter(item -> (item.getRegionCode().equals(monthData.getRegionCode()) && item.getMonth() == finalI))
-                        .findFirst()
-                        .orElse(new RegionSystemDataCount())
-                        .getCompanyCount();
-                int postCount = yearPostCount.stream()
-                        .filter(item -> (item.getRegionCode().equals(monthData.getRegionCode()) && item.getMonth() == finalI))
-                        .findFirst()
-                        .orElse(new RegionSystemDataCount())
-                        .getPostCount();
-                int jobUserCount = yearJobUserCount.stream()
-                        .filter(item -> (item.getRegionCode().equals(monthData.getRegionCode()) && item.getMonth() == finalI))
-                        .findFirst()
-                        .orElse(new RegionSystemDataCount())
-                        .getJobUserCount();
-
-                // 当月合计数据计算
-                summaryData.setSiteUserCount(summaryData.getSiteUserCount() + monthData.getSiteUserCount());
-                summaryData.setCompanyCount(summaryData.getCompanyCount() + companyCount);
-                summaryData.setPostCount(summaryData.getPostCount() + postCount);
-                summaryData.setJobUserCount(summaryData.getJobUserCount() + jobUserCount);
-
-                // 将各个区县的数据累加到汇总
-                for (RegionSystemDataCount sumDatum : sumData) {
-                    if (sumDatum.getRegionCode().equals(monthData.getRegionCode())) {
-                        sumDatum.setSiteUserCount(monthData.getSiteUserCount());
-                        sumDatum.setCompanyCount(sumDatum.getCompanyCount() + companyCount);
-                        sumDatum.setPostCount(sumDatum.getPostCount() + postCount);
-                        sumDatum.setJobUserCount(sumDatum.getJobUserCount() + jobUserCount);
+                if (!stringUtils.IsNullOrEmpty(monthData.getRegionCode())){
+                    // 获取到企业,岗位,求职人员的统计数据
+                    int companyCount = yearCompanyCount.stream()
+                            .filter(item -> (item.getRegionCode().equals(monthData.getRegionCode()) && item.getMonth() == finalI))
+                            .findFirst()
+                            .orElse(new RegionSystemDataCount())
+                            .getCompanyCount();
+                    int postCount = yearPostCount.stream()
+                            .filter(item -> (item.getRegionCode().equals(monthData.getRegionCode()) && item.getMonth() == finalI))
+                            .findFirst()
+                            .orElse(new RegionSystemDataCount())
+                            .getPostCount();
+                    int jobUserCount = yearJobUserCount.stream()
+                            .filter(item -> (item.getRegionCode().equals(monthData.getRegionCode()) && item.getMonth() == finalI))
+                            .findFirst()
+                            .orElse(new RegionSystemDataCount())
+                            .getJobUserCount();
+
+                    // 当月合计数据计算
+                    summaryData.setSiteUserCount(summaryData.getSiteUserCount() + monthData.getSiteUserCount());
+                    summaryData.setCompanyCount(summaryData.getCompanyCount() + companyCount);
+                    summaryData.setPostCount(summaryData.getPostCount() + postCount);
+                    summaryData.setJobUserCount(summaryData.getJobUserCount() + jobUserCount);
+
+                    // 将各个区县的数据累加到汇总
+                    for (RegionSystemDataCount sumDatum : sumData) {
+                        if (sumDatum.getRegionCode().equals(monthData.getRegionCode())) {
+                            sumDatum.setSiteUserCount(monthData.getSiteUserCount());
+                            sumDatum.setCompanyCount(sumDatum.getCompanyCount() + companyCount);
+                            sumDatum.setPostCount(sumDatum.getPostCount() + postCount);
+                            sumDatum.setJobUserCount(sumDatum.getJobUserCount() + jobUserCount);
+                        }
                     }
+                    // 添加区县的数据
+                    iMonthList.add(new RegionSystemDataCount(monthData.getRegionCode(), monthData.getRegionName(), monthData.getSiteUserCount(), monthData.getSiteUserCount(), companyCount, postCount, jobUserCount));
+
                 }
-                // 添加区县的数据
-                iMonthList.add(new RegionSystemDataCount(monthData.getRegionCode(), monthData.getRegionName(), monthData.getSiteUserCount(), monthData.getSiteUserCount(), companyCount, postCount, jobUserCount));
             });
             // 添加合计数据
             iMonthList.add(summaryData);

+ 1 - 1
src/main/resources/mapping/cquery/StatisticsCQuery.xml

@@ -287,7 +287,7 @@
         SELECT
             area.`code` AS RegionCode,
             area.`name` AS RegionName,
-            DATE_FORMAT( company.CreateTime, '%m' ) AS `Month`,
+            DATE_FORMAT( post.CreateTime, '%m' ) AS `Month`,
             COUNT( 1 ) AS PostCount
         FROM
             pc_post post