yanliming 1 рік тому
батько
коміт
44897e92b0

+ 2 - 1
common/src/main/resources/mapper/base/JobInformationInfo.xml

@@ -128,9 +128,10 @@
 	<select id="list" resultMap="JobInformationInfoMap">
 		select * from base_job_information_info
 	</select>
-	<select id="countList" parameterType="hashmap" resultType="integer">
+	<select id="countList" parameterType="hashmap" resultType="java.lang.Integer">
 		select count(*) from base_job_information_info
 		<where>
+			del_flag = false
 			<if test="searchParams.startTime!= null">
 				<![CDATA[
 					and create_time >= #{searchParams.startTime}

+ 9 - 0
common/src/main/resources/mapper/base/RecruitInformationInfo.xml

@@ -293,6 +293,15 @@
     <select id="sumJobRequirementNum" parameterType="hashmap" resultType="java.lang.Integer">
         SELECT sum(recruiting_numbers) FROM base_recruit_information_info
         <where>
+            <if test="searchParams.delFlag!= null">
+                and del_flag = #{searchParams.delFlag}
+            </if>
+            <if test="searchParams.isOnline!= null">
+                and is_online = #{searchParams.isOnline}
+            </if>
+            <if test="searchParams.status!= null">
+                and status_ = #{searchParams.status}
+            </if>
             <if test="searchParams.startTime!= null">
                 <![CDATA[
 					and create_time >= #{searchParams.startTime}

+ 197 - 4
web/src/main/java/com/jpsoft/employment/modules/base/controller/ReportController.java

@@ -30,10 +30,7 @@ import javax.servlet.http.HttpServletRequest;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 @RestController
 @RequestMapping("/statistical/report")
@@ -256,4 +253,200 @@ public class ReportController {
         return downloadUrl;
     }
 
+
+
+    @ApiOperation(value = "分组日报表")
+    @RequestMapping(value = "dailyGroupReport", method = RequestMethod.POST)
+    public MessageResult<Object> dailyGroupReport(String dateRange,@RequestParam(value = "exportFlag", defaultValue = "false") Boolean exportFlag) {
+
+        MessageResult<Object> msgResult = new MessageResult<>();
+
+        try {
+            String[] dateArr = dateRange.split(",");
+
+            List<String> dayList = getTwoDaysDayDes(dateArr[0],dateArr[1]);
+
+            List<Map> mapList = new ArrayList<>();
+
+            for (String date:dayList) {
+                Map<String, Object> searchParams = new HashMap<>();
+
+                Map<String, Object> searchParams1 = new HashMap<>();
+
+                String startTime = date + " 00:00:00";
+                String endTime = date + " 23:59:59";
+                searchParams.put("startTime", startTime);
+                searchParams.put("endTime", endTime);
+
+
+                searchParams1.put("endTime", endTime);
+
+                Map map = new HashMap();
+                map.put("date",date);
+
+                //登录人数,新增人数
+                Integer loginNum = personLoginLogService.dailyReportList(searchParams);
+
+                //登录人数,累计人数
+                List<String> personIdList = personLoginLogService.totalDailyReportList(searchParams1);
+                Integer totalLoginNum = personIdList.size();
+
+                //今日注册人数
+                Integer dailyPersonRegNum = personInfoService.dailyPersonReg(searchParams);
+
+                //累计注册人数
+                Integer totalPersonRegNum = personInfoService.dailyPersonReg(searchParams1);
+
+                //认证人数,新增人数
+                Integer personNum = personInfoService.dailyReportList(searchParams);
+
+                //认证人数,累计人数
+                Integer totalPersonNum = personInfoService.dailyReportList(searchParams1);
+
+                //简历数 累计简历数
+                Integer totalJobInformation = jobInformationInfoService.countList(searchParams1);
+
+                //认证企业数,新增数
+                Integer enterpriseNum = enterpriseInfoService.dailyReportList(searchParams);
+
+                //认证企业数,累计数
+                Integer totalEnterpriseNum = enterpriseInfoService.dailyReportList(searchParams1);
+
+                //累计岗位数量
+                Integer totalRecruitStatusNum = recruitInformationInfoService.dailyReportList(searchParams1);
+
+                //累计岗位需求人数
+                Integer totalJobRequirementNum = recruitInformationInfoService.sumJobRequirementNum(searchParams1);
+
+                //新增岗位数量
+                searchParams.put("status", "1");
+                searchParams.put("isOnline", true);
+                searchParams.put("delFlag", false);
+                Integer recruitNum = recruitInformationInfoService.dailyReportList(searchParams);
+
+                //实时岗位数量
+                searchParams1.put("status", "1");
+                searchParams1.put("isOnline", true);
+                searchParams1.put("delFlag", false);
+
+                //岗位需求人数
+                Integer jobRequirementNum = recruitInformationInfoService.sumJobRequirementNum(searchParams1);
+
+
+                Integer totalRecruitNum = recruitInformationInfoService.dailyReportList(searchParams1);
+
+                //今日报名人数
+                searchParams = new HashMap<>();
+
+                if (StringUtils.isNotEmpty(date)) {
+                    String startTime2 = date + " 00:00:00";
+                    String endTime2 = date + " 23:59:59";
+                    searchParams.put("startTime", startTime2);
+                    searchParams.put("endTime", endTime2);
+                }
+                Integer jobInformationNum = recruitPersonRelationService.dailyReportList(searchParams);
+
+                map.put("loginNum", loginNum);
+                map.put("totalLoginNum", totalLoginNum);
+
+                map.put("personNum", personNum);
+                map.put("totalPersonNum", totalPersonNum);
+
+                map.put("totalJobInformation", totalJobInformation);
+
+                map.put("dailyPersonRegNum", dailyPersonRegNum);
+                map.put("totalPersonRegNum", totalPersonRegNum);
+
+                map.put("enterpriseNum", enterpriseNum);
+                map.put("totalEnterpriseNum", totalEnterpriseNum);
+
+                map.put("recruitNum", recruitNum);
+                map.put("totalRecruitNum", totalRecruitNum);
+                map.put("totalRecruitStatusNum", totalRecruitStatusNum);
+
+                map.put("jobInformationNum", jobInformationNum);
+
+                map.put("jobRequirementNum", jobRequirementNum);
+
+                map.put("totalJobRequirementNum", totalJobRequirementNum);
+
+                mapList.add(map);
+            }
+
+
+            if (exportFlag) {
+                String filePath = exportXls(mapList);
+                msgResult.setData(filePath);
+            } else {
+                Map<String, Object> dataMap = new HashMap<>();
+                dataMap.put("data", mapList);
+                msgResult.setData(dataMap);
+            }
+
+            msgResult.setResult(true);
+        }
+        catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
+            msgResult.setResult(false);
+        }
+
+        return msgResult;
+    }
+
+
+
+
+    /**
+     * 根据一段时间获取该段时间的所有日期  正序排序
+     * @param startDate
+     * @param endDate
+     * @return
+     */
+    public List<String> getTwoDaysDayDes(String startDate, String endDate) {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        List<String> dateList = new ArrayList<>();
+        try {
+            Date dateOne = sdf.parse(startDate);
+            Date dateTwo = sdf.parse(endDate);
+            Calendar calendar = Calendar.getInstance();
+            calendar.setTime(dateOne);
+            dateList.add(startDate);
+            while (dateTwo.after(calendar.getTime())) {
+                calendar.add(Calendar.DAY_OF_MONTH, 1);
+                dateList.add(sdf.format(calendar.getTime()));
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return dateList;
+    }
+
+
+    /**
+     * 根据一段时间获取该段时间的所有日期  倒序排序
+     * @param startDate
+     * @param endDate
+     * @return yyyy-MM-dd
+     */
+    public static List<String> getTwoDaysDay(String startDate, String endDate) {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        List<String> dateList = new ArrayList<>();
+        try {
+            Date dateOne = sdf.parse(startDate);
+            Date dateTwo = sdf.parse(endDate);
+
+            Calendar calendar = Calendar.getInstance();
+            calendar.setTime(dateTwo);
+
+            dateList.add(endDate);
+            while (calendar.getTime().after(dateOne)) { //倒序时间,顺序after改before其他相应的改动。
+                calendar.add(Calendar.DAY_OF_MONTH, -1);
+                dateList.add(sdf.format(calendar.getTime()));
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return dateList;
+    }
+
 }