|
@@ -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);
|