Browse Source

web-岗位统计调整

liao-sea 7 months ago
parent
commit
41aaca23a4

+ 2 - 2
src/main/java/com/hz/employmentsite/controller/statistics/StatisticsController.java

@@ -297,7 +297,7 @@ public class StatisticsController {
         titleMap.put("汇总", new CellRangeAddress(0, 0, firstCol, firstCol + 3));
         setRSDCExcelData(result.get("汇总"), rowsData, true);
         // 填充子标题
-        childrenTitle.addAll(Arrays.asList("驿站人员数量","录入企业数量","收集岗位数","登记求职人数"));
+        childrenTitle.addAll(Arrays.asList("驿站人员数量","录入企业数量","收集岗位数","登记求职人数"));
         firstCol += 4;
         // 生成周数标题,周数标题没有驿站人员数量
         for (Map.Entry<String, List<RegionSystemDataCount>> entry : result.entrySet()) {
@@ -305,7 +305,7 @@ public class StatisticsController {
             if (!key.equals("汇总")){
                 titleMap.put(key, new CellRangeAddress(0, 0, firstCol, firstCol + 2));
                 // 填充子标题
-                childrenTitle.addAll(Arrays.asList("录入企业数量","收集岗位数","登记求职人数"));
+                childrenTitle.addAll(Arrays.asList("录入企业数量","收集岗位数","登记求职人数"));
                 firstCol += 3;
                 setRSDCExcelData(result.get(key), rowsData,false);
             }

+ 1 - 1
src/main/java/com/hz/employmentsite/mapper/cquery/StatisticsCQuery.java

@@ -77,7 +77,7 @@ public interface StatisticsCQuery {
      * 查询年度添加的岗位数量
      * @param year 年份
      */
-    List<RegionSystemDataCount> findYearPostRecruitCount(@Param("year") String year,
+    List<RegionSystemDataCount> findYearPostCount(@Param("year") String year,
                                                   @Param("regionCode") String regionCode, @Param("institutionID") String institutionID,
                                                   @Param("siteID") String siteID,
                                                   @Param("startDate") Date startDate, @Param("endDate") Date endDate);

+ 26 - 10
src/main/java/com/hz/employmentsite/services/impl/statistics/StatisticsServiceImpl.java

@@ -119,7 +119,7 @@ public class StatisticsServiceImpl implements StatisticsService {
         for (RegionSystemDataCount item : regionSiteUserCount) {
             siteUserCountMap.put(item.getRegionCode(), item.getSiteUserCount());
             // 计算合计数量
-            RegionSystemDataCount summaryData = new RegionSystemDataCount(item.getRegionCode(), item.getRegionName(), item.getSiteUserCount(), 0, 0, 0);
+            RegionSystemDataCount summaryData = new RegionSystemDataCount(item.getRegionCode(), item.getRegionName(), item.getSiteUserCount(), 0, 0,0, 0);
             sumData.add(summaryData);
         }
 
@@ -130,7 +130,7 @@ public class StatisticsServiceImpl implements StatisticsService {
             // 初始化第i周的数据集合
             List<RegionSystemDataCount> iWeekList = new ArrayList<>();
             // 创建合计数据
-            RegionSystemDataCount summaryData = new RegionSystemDataCount("100", "合计", 0, 0, 0, 0);
+            RegionSystemDataCount summaryData = new RegionSystemDataCount("100", "合计", 0, 0, 0,0, 0);
             // 计算周数应该是几
             int week = weeksPassed + i;
 
@@ -145,6 +145,12 @@ public class StatisticsServiceImpl implements StatisticsService {
                         .findFirst()
                         .orElse(new RegionSystemDataCount())
                         .getCompanyCount();
+
+                int postCount = monthPostCount.stream()
+                        .filter(item -> (!stringUtils.IsNullOrEmpty(item.getRegionCode()) && item.getRegionCode().equals(sd.getRegionCode()) && item.getWeek() != null && item.getWeek() == week))
+                        .findFirst()
+                        .orElse(new RegionSystemDataCount())
+                        .getPostCount();
                 int postRecruitCount = monthPostCount.stream()
                         .filter(item -> (!stringUtils.IsNullOrEmpty(item.getRegionCode()) && item.getRegionCode().equals(sd.getRegionCode()) && item.getWeek() != null && item.getWeek() == week))
                         .findFirst()
@@ -158,6 +164,7 @@ public class StatisticsServiceImpl implements StatisticsService {
                 // 当周合计数据计算
                 summaryData.setSiteUserCount(summaryData.getSiteUserCount() + sd.getSiteUserCount());
                 summaryData.setCompanyCount(summaryData.getCompanyCount() + companyCount);
+                summaryData.setPostCount(summaryData.getPostCount() + postCount);
                 summaryData.setPostRecruitCount(summaryData.getPostRecruitCount() + postRecruitCount);
                 summaryData.setJobUserCount(summaryData.getJobUserCount() + jobUserCount);
                 // 将各个区县的数据累加到汇总
@@ -165,12 +172,13 @@ public class StatisticsServiceImpl implements StatisticsService {
                     if (sumDatum.getRegionCode().equals(sd.getRegionCode())) {
                         sumDatum.setSiteUserCount(sd.getSiteUserCount());
                         sumDatum.setCompanyCount(sumDatum.getCompanyCount() + companyCount);
+                        sumDatum.setPostCount(sumDatum.getPostCount() + postCount);
                         sumDatum.setPostRecruitCount(sumDatum.getPostRecruitCount() + postRecruitCount);
                         sumDatum.setJobUserCount(sumDatum.getJobUserCount() + jobUserCount);
                     }
                 }
                 // 添加区县的数据
-                iWeekList.add(new RegionSystemDataCount(sd.getRegionCode(), sd.getRegionName(), sd.getSiteUserCount(), companyCount, postRecruitCount, jobUserCount));
+                iWeekList.add(new RegionSystemDataCount(sd.getRegionCode(), sd.getRegionName(), sd.getSiteUserCount(), companyCount, postCount, postRecruitCount, jobUserCount));
             }
             // 添加合计数据
             iWeekList.add(summaryData);
@@ -179,10 +187,11 @@ public class StatisticsServiceImpl implements StatisticsService {
             result.put("第" + i + "周", iWeekList);
         }
         // 计算汇总的合计
-        RegionSystemDataCount summaryData = new RegionSystemDataCount("100", "合计", 0, 0, 0, 0);
+        RegionSystemDataCount summaryData = new RegionSystemDataCount("100", "合计", 0,0, 0, 0, 0);
         for (RegionSystemDataCount sumDatum : sumData) {
             summaryData.setSiteUserCount(summaryData.getSiteUserCount() + sumDatum.getSiteUserCount());
             summaryData.setCompanyCount(summaryData.getCompanyCount() + sumDatum.getCompanyCount());
+            summaryData.setPostCount(summaryData.getPostCount() + sumDatum.getPostCount());
             summaryData.setPostRecruitCount(summaryData.getPostRecruitCount() + sumDatum.getPostRecruitCount());
             summaryData.setJobUserCount(summaryData.getJobUserCount() + sumDatum.getJobUserCount());
         }
@@ -208,7 +217,7 @@ public class StatisticsServiceImpl implements StatisticsService {
         // 指定年份的企业统计数量
         List<RegionSystemDataCount> yearCompanyCount = statisticsCQuery.findYearCompanyCount(year, regionCode, institutionID, siteID, startDate, endDate);
         // 指定年份的岗位统计数量
-        List<RegionSystemDataCount> yearPostRecruitCount = statisticsCQuery.findYearPostRecruitCount(year, regionCode, institutionID, siteID, startDate, endDate);
+        List<RegionSystemDataCount> yearPostCount = statisticsCQuery.findYearPostCount(year, regionCode, institutionID, siteID, startDate, endDate);
         // 指定年份的求职人员统计数量
         List<RegionSystemDataCount> yearJobUserCount = statisticsCQuery.findYearJobUserCount(year, regionCode, institutionID, siteID, startDate, endDate);
 
@@ -220,7 +229,7 @@ public class StatisticsServiceImpl implements StatisticsService {
             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);
+                RegionSystemDataCount summaryData = new RegionSystemDataCount(item.getRegionCode(), item.getRegionName(), item.getSiteUserCount(),0, 0, 0, 0);
                 sumData.add(summaryData);
             }
         }
@@ -232,7 +241,7 @@ public class StatisticsServiceImpl implements StatisticsService {
             // 初始化第i月的数据集合
             List<RegionSystemDataCount> iMonthList = new ArrayList<>();
             // 创建合计数据
-            RegionSystemDataCount summaryData = new RegionSystemDataCount("100", "合计", 0, 0, 0, 0);
+            RegionSystemDataCount summaryData = new RegionSystemDataCount("100", "合计", 0, 0, 0, 0,0);
 
             // 从查询的年份中进行数据匹配(按regionCode和月份)
             int finalI = i;
@@ -244,7 +253,12 @@ public class StatisticsServiceImpl implements StatisticsService {
                             .findFirst()
                             .orElse(new RegionSystemDataCount())
                             .getCompanyCount();
-                    int postRecruitCount = yearPostRecruitCount.stream()
+                    int postCount = yearPostCount.stream()
+                            .filter(item -> (!stringUtils.IsNullOrEmpty(item.getRegionCode()) && item.getRegionCode().equals(monthData.getRegionCode()) && item.getMonth() != null && item.getMonth() == finalI))
+                            .findFirst()
+                            .orElse(new RegionSystemDataCount())
+                            .getPostCount();
+                    int postRecruitCount = yearPostCount.stream()
                             .filter(item -> (!stringUtils.IsNullOrEmpty(item.getRegionCode()) && item.getRegionCode().equals(monthData.getRegionCode()) && item.getMonth() != null && item.getMonth() == finalI))
                             .findFirst()
                             .orElse(new RegionSystemDataCount())
@@ -258,6 +272,7 @@ public class StatisticsServiceImpl implements StatisticsService {
                     // 当月合计数据计算
                     summaryData.setSiteUserCount(summaryData.getSiteUserCount() + monthData.getSiteUserCount());
                     summaryData.setCompanyCount(summaryData.getCompanyCount() + companyCount);
+                    summaryData.setPostCount(summaryData.getPostCount() + postCount);
                     summaryData.setPostRecruitCount(summaryData.getPostRecruitCount() + postRecruitCount);
                     summaryData.setJobUserCount(summaryData.getJobUserCount() + jobUserCount);
 
@@ -266,12 +281,13 @@ public class StatisticsServiceImpl implements StatisticsService {
                         if (sumDatum.getRegionCode().equals(monthData.getRegionCode())) {
                             sumDatum.setSiteUserCount(monthData.getSiteUserCount());
                             sumDatum.setCompanyCount(sumDatum.getCompanyCount() + companyCount);
+                            sumDatum.setPostCount(sumDatum.getPostCount() + postCount);
                             sumDatum.setPostRecruitCount(sumDatum.getPostRecruitCount() + postRecruitCount);
                             sumDatum.setJobUserCount(sumDatum.getJobUserCount() + jobUserCount);
                         }
                     }
                     // 添加区县的数据
-                    iMonthList.add(new RegionSystemDataCount(monthData.getRegionCode(), monthData.getRegionName(), monthData.getSiteUserCount(), companyCount, postRecruitCount, jobUserCount));
+                    iMonthList.add(new RegionSystemDataCount(monthData.getRegionCode(), monthData.getRegionName(), monthData.getSiteUserCount(), companyCount, postCount, postRecruitCount, jobUserCount));
                 }
             });
             // 添加合计数据
@@ -281,7 +297,7 @@ public class StatisticsServiceImpl implements StatisticsService {
             result.put(i + "月", iMonthList);
         }
         // 计算汇总的合计
-        RegionSystemDataCount summaryData = new RegionSystemDataCount("100", "合计", 0, 0, 0, 0);
+        RegionSystemDataCount summaryData = new RegionSystemDataCount("100", "合计", 0, 0,0, 0, 0);
         for (RegionSystemDataCount sumDatum : sumData) {
             summaryData.setSiteUserCount(summaryData.getSiteUserCount() + sumDatum.getSiteUserCount());
             summaryData.setCompanyCount(summaryData.getCompanyCount() + sumDatum.getCompanyCount());

+ 6 - 2
src/main/java/com/hz/employmentsite/vo/statistics/RegionSystemDataCount.java

@@ -20,6 +20,8 @@ public class RegionSystemDataCount {
 
     private int companyCount;
 
+    private int postCount;
+
     private int postRecruitCount;
 
     private int jobUserCount;
@@ -31,21 +33,23 @@ public class RegionSystemDataCount {
         this.regionName = regionName;
     }
 
-    public RegionSystemDataCount(String regionCode, String regionName, int siteUserCount, int companyCount, int postRecruitCount, int jobUserCount) {
+    public RegionSystemDataCount(String regionCode, String regionName, int siteUserCount, int companyCount, int postCount, int postRecruitCount, int jobUserCount) {
         this.regionCode = regionCode;
         this.regionName = regionName;
         this.siteUserCount = siteUserCount;
         this.companyCount = companyCount;
+        this.postCount = postCount;
         this.postRecruitCount = postRecruitCount;
         this.jobUserCount = jobUserCount;
     }
 
-    public RegionSystemDataCount(String regionCode, String regionName, Integer month, int siteUserCount, int companyCount, int postRecruitCount, int jobUserCount) {
+    public RegionSystemDataCount(String regionCode, String regionName, Integer month, int siteUserCount, int companyCount, int postCount, int postRecruitCount, int jobUserCount) {
         this.regionCode = regionCode;
         this.regionName = regionName;
         this.month = month;
         this.siteUserCount = siteUserCount;
         this.companyCount = companyCount;
+        this.postCount = postCount;
         this.postRecruitCount = postRecruitCount;
         this.jobUserCount = jobUserCount;
     }

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

@@ -362,11 +362,12 @@
             `Month` ASC
     </select>
 
-    <select id="findYearPostRecruitCount" resultType="com.hz.employmentsite.vo.statistics.RegionSystemDataCount">
+    <select id="findYearPostCount" resultType="com.hz.employmentsite.vo.statistics.RegionSystemDataCount">
         SELECT
             area.`code` AS RegionCode,
             area.`name` AS RegionName,
             DATE_FORMAT( post.CreateTime, '%m' ) AS `Month`,
+            COUNT( 1 ) AS PostCount,
             SUM( post.RecruitCount ) AS PostRecruitCount
         FROM
             pc_post post
@@ -480,6 +481,7 @@
             area.`code` AS RegionCode,
             area.`name` AS RegionName,
             WEEK( post.CreateTime, 5 ) AS `Week`,
+            COUNT( 1 ) AS PostCount,
             SUM( post.RecruitCount ) AS PostRecruitCount
         FROM
             pc_post post