添加统计(汇总和各县统计)

This commit is contained in:
sh
2026-01-22 11:43:45 +08:00
parent 10d8980095
commit 88043f44e6
8 changed files with 231 additions and 7 deletions

View File

@@ -1,17 +1,17 @@
package com.ruoyi.cms.controller.cms;
import com.ruoyi.cms.domain.BussinessDictType;
import com.ruoyi.cms.domain.query.Staticsquery;
import com.ruoyi.cms.service.StaticsqueryService;
import com.ruoyi.cms.util.DateValidateUtil;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
@RestController
@@ -100,4 +100,24 @@ public class StaticsController extends BaseController {
Map<String,Object> result = service.educationSalary(staticsquery);
return success(result);
}
/**
* 企业岗位统计
* @param staticsquery
* @return
*/
@GetMapping("/qygwtjCount")
public AjaxResult qygwtjCount(@RequestBody Staticsquery staticsquery)
{
if(staticsquery==null){
return error("参数为空!");
}
//判断时间
String timeError = DateValidateUtil.validateStartAndEndTime(staticsquery.getStartTime(),staticsquery.getEndTime());
if (StringUtils.isNotBlank(timeError)) {
return error(timeError);
}
Map<String,Object> result = service.qygwtjCount(staticsquery);
return success(result);
}
}

View File

@@ -0,0 +1,25 @@
package com.ruoyi.cms.domain;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class StaticsJob {
@ApiModelProperty("总数")
private String zs;
@ApiModelProperty("高效毕业生岗位")
private String gxbysgw;
@ApiModelProperty("实时在招岗位数")
private String sszzgw;
@ApiModelProperty("简历数量")
private String jlsl;
@ApiModelProperty("名称")
private String label;
@ApiModelProperty("归集岗位合计")
private String gjgwhj;
@ApiModelProperty("注册企业数")
private String zcqys;
@ApiModelProperty("求职者实名数")
private String qzzsms;
}

View File

@@ -3,8 +3,15 @@ package com.ruoyi.cms.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.cms.domain.Statics;
import com.ruoyi.cms.domain.StaticsJob;
import com.ruoyi.cms.domain.query.Staticsquery;
import java.util.List;
public interface StaticsMapper extends BaseMapper<Statics>
{
public StaticsJob qygwtjCount(Staticsquery staticsquery);
public List<StaticsJob> getGroutCityJobs(Staticsquery staticsquery);
}

View File

@@ -27,4 +27,6 @@ public interface StaticsqueryService {
void educationSalaryGen();
Map<String, Object> educationSalary(Staticsquery staticsquery);
Map<String,Object> qygwtjCount(Staticsquery staticsquery);
}

View File

@@ -2,14 +2,12 @@ package com.ruoyi.cms.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.cms.domain.CommercialArea;
import com.ruoyi.cms.domain.CompanyCardCollection;
import com.ruoyi.cms.domain.Statics;
import com.ruoyi.cms.domain.StaticsJob;
import com.ruoyi.cms.domain.query.Staticsquery;
import com.ruoyi.cms.mapper.CompanyCardCollectionMapper;
import com.ruoyi.cms.mapper.StaticsMapper;
import com.ruoyi.cms.service.ISubwayLineService;
import com.ruoyi.cms.service.StaticsqueryService;
import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -551,4 +549,16 @@ public class StaticsqueryServiceImpl extends ServiceImpl<StaticsMapper, Statics>
}
return result;
}
@Override
public Map<String, Object> qygwtjCount(Staticsquery staticsquery) {
String eneTime= DateUtils.addOneDay(staticsquery.getEndTime(),DateUtils.YYYY_MM_DD,DateUtils.YYYY_MM_DD);
staticsquery.setEndTime(eneTime);
HashMap<String, Object> result = new HashMap<>();
StaticsJob staticsJob=staticsMapper.qygwtjCount(staticsquery);
List<StaticsJob> list=staticsMapper.getGroutCityJobs(staticsquery);
result.put("hz",staticsJob);
result.put("group",list);
return result;
}
}

View File

@@ -1,5 +1,7 @@
package com.ruoyi.cms.util;
import com.ruoyi.common.utils.StringUtils;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
@@ -12,6 +14,8 @@ public class DateValidateUtil {
private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd");
private static final String ERROR_MSG = "生日格式错误!不为空时必须填写 yyyy-MM-dd 完整格式(如 1991-09-01";
private static final String DEFAULT_DATE_FORMAT_TIP = "请使用 yyyy-MM-dd 格式";
// 改为校验 String 类型
public static String validateBirthDate(String birthDateStr) {
if (birthDateStr == null || birthDateStr.trim().isEmpty()) {
@@ -26,4 +30,73 @@ public class DateValidateUtil {
return ERROR_MSG; // 格式错误返回提示
}
}
/**
* 校验开始时间和结束时间的合法性
* @param startTime 开始时间字符串
* @param endTime 结束时间字符串
* @return 校验不通过返回错误信息校验通过返回null
*/
public static String validateStartAndEndTime(String startTime, String endTime) {
StringBuilder errorMsg = new StringBuilder();
if (StringUtils.isBlank(startTime)) {
errorMsg.append("开始时间不能为空!");
} else {
if (!isValidDate(startTime)) {
errorMsg.append(StringUtils.isNotBlank(errorMsg.toString()) ? " " : "")
.append("开始时间格式错误,").append(DEFAULT_DATE_FORMAT_TIP);
}
}
if (StringUtils.isBlank(endTime)) {
errorMsg.append(StringUtils.isNotBlank(errorMsg.toString()) ? " " : "")
.append("结束时间不能为空!");
} else {
if (!isValidDate(endTime)) {
errorMsg.append(StringUtils.isNotBlank(errorMsg.toString()) ? " " : "")
.append("结束时间格式错误,").append(DEFAULT_DATE_FORMAT_TIP);
} else if (StringUtils.isNotBlank(startTime) && isValidDate(startTime)) {
if (!isEndTimeAfterStartTime(startTime, endTime)) {
errorMsg.append(StringUtils.isNotBlank(errorMsg.toString()) ? " " : "")
.append("结束时间不能早于开始时间!");
}
}
}
return errorMsg.length() > 0 ? errorMsg.toString() : null;
}
/**
* 校验单个日期字符串是否符合 yyyy-MM-dd 格式
* @param dateStr 日期字符串
* @return 合法返回true否则false
*/
public static boolean isValidDate(String dateStr) {
if (StringUtils.isBlank(dateStr)) {
return false;
}
try {
LocalDate.parse(dateStr); // 默认解析 yyyy-MM-dd 格式
return true;
} catch (DateTimeParseException e) {
return false;
}
}
/**
* 校验结束时间是否晚于开始时间(前提:两个时间格式都合法)
* @param startTime 开始时间
* @param endTime 结束时间
* @return 结束时间晚于开始时间返回true否则false
*/
public static boolean isEndTimeAfterStartTime(String startTime, String endTime) {
try {
LocalDate startDate = LocalDate.parse(startTime);
LocalDate endDate = LocalDate.parse(endTime);
return !endDate.isBefore(startDate); // 结束时间 >= 开始时间 返回true
} catch (DateTimeParseException e) {
return false;
}
}
}