1.company添加isAbnormal 字段
2.岗位分析-添加educationSalary方法
This commit is contained in:
@@ -85,4 +85,19 @@ public class StaticsController extends BaseController {
|
|||||||
Map<String,Object> result = service.education(staticsquery);
|
Map<String,Object> result = service.education(staticsquery);
|
||||||
return success(result);
|
return success(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//分学历-分薪资
|
||||||
|
@GetMapping("/educationSalaryGen")
|
||||||
|
public AjaxResult educationSalaryGen()
|
||||||
|
{
|
||||||
|
service.educationSalaryGen();
|
||||||
|
return success();
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/educationSalary")
|
||||||
|
public AjaxResult educationSalary(Staticsquery staticsquery)
|
||||||
|
{
|
||||||
|
Map<String,Object> result = service.educationSalary(staticsquery);
|
||||||
|
return success(result);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,13 +1,10 @@
|
|||||||
package com.ruoyi.cms.domain;
|
package com.ruoyi.cms.domain;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import com.ruoyi.common.annotation.Excel;
|
import com.ruoyi.common.annotation.Excel;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
|
||||||
import com.ruoyi.common.core.domain.BaseEntity;
|
import com.ruoyi.common.core.domain.BaseEntity;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -101,4 +98,7 @@ public class Company extends BaseEntity
|
|||||||
|
|
||||||
@ApiModelProperty("注册地址")
|
@ApiModelProperty("注册地址")
|
||||||
private String registeredAddress;
|
private String registeredAddress;
|
||||||
|
|
||||||
|
@ApiModelProperty("是否异常")
|
||||||
|
private String isAbnormal;
|
||||||
}
|
}
|
||||||
|
@@ -23,4 +23,8 @@ public interface StaticsqueryService {
|
|||||||
void educationGen();
|
void educationGen();
|
||||||
|
|
||||||
Map<String, Object> education(Staticsquery staticsquery);
|
Map<String, Object> education(Staticsquery staticsquery);
|
||||||
|
|
||||||
|
void educationSalaryGen();
|
||||||
|
|
||||||
|
Map<String, Object> educationSalary(Staticsquery staticsquery);
|
||||||
}
|
}
|
||||||
|
@@ -457,4 +457,98 @@ public class StaticsqueryServiceImpl extends ServiceImpl<StaticsMapper, Statics>
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void educationSalaryGen() {
|
||||||
|
// 定义岗位分类
|
||||||
|
String[] jobCategories = {
|
||||||
|
"初中及以下",
|
||||||
|
"中专/中技",
|
||||||
|
"高中",
|
||||||
|
"大专",
|
||||||
|
"本科",
|
||||||
|
"硕士",
|
||||||
|
"博士",
|
||||||
|
"MBA/EMBA",
|
||||||
|
"留学-学士",
|
||||||
|
"留学-硕士",
|
||||||
|
"留学-博士",
|
||||||
|
"不限"
|
||||||
|
};
|
||||||
|
//薪资类型
|
||||||
|
String[] salarys = {
|
||||||
|
"3k-5k",
|
||||||
|
"5k-8k",
|
||||||
|
"10k-15K",
|
||||||
|
"15k-20k",
|
||||||
|
"20k+"
|
||||||
|
};
|
||||||
|
|
||||||
|
// 定义时间周期
|
||||||
|
String[] timePeriods = {
|
||||||
|
"2025-01", "2025-02", "2025-03", "2025-04", "2025-05",
|
||||||
|
"2024-11", "2024-12"
|
||||||
|
};
|
||||||
|
|
||||||
|
// 所有支持的类型
|
||||||
|
Map<String, List<String>> typeMap = new HashMap<>();
|
||||||
|
typeMap.put("month", Arrays.asList(
|
||||||
|
"分学历/分薪资/月/岗位发布数量"
|
||||||
|
));
|
||||||
|
|
||||||
|
|
||||||
|
for (String time : timePeriods) {
|
||||||
|
String granularity;
|
||||||
|
|
||||||
|
// 判断时间粒度:月、季度、年
|
||||||
|
if (time.matches("\\d{4}-\\d{2}")) {
|
||||||
|
granularity = "month"; // 如 "2025-01"
|
||||||
|
} else if (time.matches("\\d{4}-第[一二三四]季度")) {
|
||||||
|
granularity = "quarter"; // 如 "2024-第一季度"
|
||||||
|
} else if (time.matches("\\d{4}")) {
|
||||||
|
granularity = "year"; // 如 "2025"
|
||||||
|
} else {
|
||||||
|
continue; // 非法格式跳过
|
||||||
|
}
|
||||||
|
|
||||||
|
List<String> applicableTypes = typeMap.get(granularity);
|
||||||
|
|
||||||
|
for (String type : applicableTypes) {
|
||||||
|
for (String category : jobCategories) {
|
||||||
|
for(String salary:salarys){
|
||||||
|
Statics stat = new Statics();
|
||||||
|
stat.setTime(time);
|
||||||
|
stat.setType(type);
|
||||||
|
stat.setName(category+"/"+salary);
|
||||||
|
|
||||||
|
// 设置数据值
|
||||||
|
if (type.contains("岗位发布数量")) {
|
||||||
|
int baseValue = 1000;
|
||||||
|
if (granularity.equals("quarter")) baseValue = 300;
|
||||||
|
if (granularity.equals("year")) baseValue = 1200;
|
||||||
|
|
||||||
|
int variation = (int)(baseValue * 0.2 * (Math.random() - 0.5));
|
||||||
|
stat.setData(String.valueOf(baseValue + variation));
|
||||||
|
} else {
|
||||||
|
double baseRate = 0.05;
|
||||||
|
double variation = 0.01 * (Math.random() - 0.5);
|
||||||
|
stat.setData(String.format("%.2f", baseRate + variation));
|
||||||
|
}
|
||||||
|
|
||||||
|
stat.setDelFlag("0");
|
||||||
|
staticsMapper.insert(stat);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, Object> educationSalary(Staticsquery staticsquery) {
|
||||||
|
HashMap<String, Object> result = new HashMap<>();
|
||||||
|
List<String> query = staticsquery.generateTimeRange();
|
||||||
|
for (String time : query) {
|
||||||
|
List<Statics> statics = staticsMapper.selectList(Wrappers.<Statics>lambdaQuery().eq(Statics::getType, "分学历/分薪资/" + staticsquery.getTimeDimension()+"/"+staticsquery.getType()).eq(Statics::getTime, time));
|
||||||
|
result.put(time, statics);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -30,10 +30,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<result property="status" column="status" />
|
<result property="status" column="status" />
|
||||||
<result property="notPassReason" column="not_pass_reason" />
|
<result property="notPassReason" column="not_pass_reason" />
|
||||||
<result property="registeredAddress" column="registered_address" />
|
<result property="registeredAddress" column="registered_address" />
|
||||||
|
<result property="isAbnormal" column="is_abnormal" />
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
<sql id="selectCompanyVo">
|
<sql id="selectCompanyVo">
|
||||||
select company_id, name, location, industry, scale, del_flag, create_by, create_time, update_by, update_time, remark,code,description,nature,total_recruitment,registered_address,contact_person,contact_person_phone from company
|
select company_id, name, location, industry, scale, del_flag, create_by, create_time, update_by, update_time, remark,code,description,nature,total_recruitment,registered_address,contact_person,contact_person_phone,is_abnormal from company
|
||||||
</sql>
|
</sql>
|
||||||
<insert id="batchInsert" parameterType="java.util.List">
|
<insert id="batchInsert" parameterType="java.util.List">
|
||||||
INSERT INTO company (
|
INSERT INTO company (
|
||||||
|
Reference in New Issue
Block a user