|
@@ -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;
|
|
|
+ }
|
|
|
+
|
|
|
}
|