Commit 155e9959 by 284718418@qq.com

Merge branch 'feature_20220305_V2.3' into develop

# Conflicts:
#	src/main/java/cn/timer/api/bean/yggl/YgglMainEmp.java
#	src/main/java/cn/timer/api/config/interceptor/WebSecurityConfig.java
#	src/main/java/cn/timer/api/controller/yggl/YgglController.java
#	src/main/java/cn/timer/api/dao/yggl/YgglMainEmpMapper.java
#	src/main/resources/application-dev.yml
#	src/main/resources/application-test.yml
#	src/main/resources/mapping/yggl/YgglMainEmpMapper.xml
parents 13ba8374 69e275b2
......@@ -116,12 +116,12 @@
</dependency>
<!-- optional这个需要为 true 热部署才有效 -->
<!--<dependency>-->
<!--<groupId>org.springframework.boot</groupId>-->
<!--<artifactId>spring-boot-devtools</artifactId>-->
<!--<optional>true</optional>-->
<!--<scope>runtime</scope>-->
<!--</dependency>-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<scope>runtime</scope>
</dependency>
<!-- swagger2 -->
<dependency>
......@@ -310,7 +310,13 @@
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>3.3.0</version>
<version>3.4.1</version>
</dependency>
<!-- mybatis-plus-join -->
<dependency>
<groupId>com.github.yulichang</groupId>
<artifactId>mybatis-plus-join</artifactId>
<version>1.2.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok-maven-plugin -->
......@@ -430,6 +436,12 @@
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
</dependency>
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>1.4.9</version>
</dependency>
</dependencies>
<repositories>
......
package cn.timer.api.dto.yggl;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author Tang 2019-11-15
*/
@Entity
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("nation_class")
@ApiModel("民族")
public class YgmzDto {
@Id
@GeneratedValue
@TableId (type = IdType.AUTO)
@ApiModelProperty(value="编号",example="1")
private Integer id;
@ApiModelProperty(value="民族名称 ",example="民族名称")
private String name;
@ApiModelProperty(value="拼音",example="pinyin")
private String pinyin;
@ApiModelProperty(value="简写",example="PY")
private String letter;
@ApiModelProperty(value="这个才是排序",example="number")
private Integer number;
@ApiModelProperty(value="排序",example="排序")
private String sort;
}
package cn.timer.api.bean.clazz;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author Tang 2019-11-15
*/
@Entity
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("nation_class")
@ApiModel("民族")
public class NationClass extends Model<NationClass> {
@Id
@GeneratedValue
@TableId (type = IdType.AUTO)
@ApiModelProperty(value="编号",example="1")
private Integer id;
@ApiModelProperty(value="民族名称 ",example="民族名称")
private String name;
@ApiModelProperty(value="拼音",example="pinyin")
private String pinyin;
@ApiModelProperty(value="简写",example="PY")
private String letter;
@ApiModelProperty(value="这个才是排序",example="number")
private Integer number;
@ApiModelProperty(value="排序",example="排序")
private String sort;
}
package cn.timer.api.bean.wechat;
/**
*
* 8小时企业管理
* 公众号模板消息
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-04-18 15:14:40
* https://mp.weixin.qq.com/advanced/tmplmsg?action=list&t=tmplmsg/list&token=275969966&lang=zh_CN
*/
public class MessageTemplate {
/**
* 通知面试官
* 通知面试者
* 面试安排提醒
* {{first.DATA}}
* 面试职位:{{keyword1.DATA}}
* 面试时间:{{keyword2.DATA}}
* {{remark.DATA}}
*/
public static final String TEMPLATE_ID_TO_INTERVIEWER = "Uz6mVUYk9Tu7EO2V1pqiQ3x4EudDJTYWdaFtdf64h3M";
/**
* 应聘通知
* {{first.DATA}}
* 应聘职位:{{keyword1.DATA}}
* 通知内容:{{keyword2.DATA}}
* 通知人:{{keyword3.DATA}}
* 通知时间:{{keyword4.DATA}}
* {{remark.DATA}}
*/
public static final String TEMPLATE_ID_TO_INTERVIEWE = "YChIP5ho7sT_dL5GMykjR4LCuR5aJ8E0tf73i4p_vvk";
}
......@@ -39,63 +39,63 @@ public class YgglMainEmp extends Model<YgglMainEmp> {
@TableId (type = IdType.AUTO)
@ApiModelProperty(value="员工编号 员工编号",example="101")
private Integer id;
@ApiModelProperty(value="员工工号 ",example="员工工号")
private Integer empNum;
@ApiModelProperty(value="手机号码 手机号码",example="101")
private String phone;
@ApiModelProperty(value="密码 ",example="密码")
private String password;
@ApiModelProperty(value="头像 ",example="base64来处理头像")
private String headUrl;
@ApiModelProperty(value="名称 ",example="名称")
private String name;
@ApiModelProperty(value="英文名称 ",example="英文名称")
private String englishName;
@ApiModelProperty(value="性别 0:男;1:女",example="0")
private Integer sex;
@ApiModelProperty(value="证件类型 0:身份证;1:港澳居民来往内地通行证;2:台湾居民来往大陆通行证;3:外国护照;4:其他",example="101")
private Integer zjType;
@ApiModelProperty(value="证件号码 ",example="证件号码")
private String zjNum;
@ApiModelProperty(value="身份证有效期 ",example="身份证有效到期日")
private Date sfzyxTime;
@ApiModelProperty(value="出生日期 ",example="出生日期")
private Date birthday;
@ApiModelProperty(value="年龄 年龄",example="101")
private Integer age;
@ApiModelProperty(value="是否已婚 0:否、1:是",example="101")
private Integer isMarried;
@ApiModelProperty(value="是否已育 0:否、1:是",example="101")
private Integer isPregnant;
@ApiModelProperty(value="国家地区 0:中国;1:中国香港;2:中国澳门;3:中国台湾",example="101")
private Integer area;
@ApiModelProperty(value="民族 56个名族",example="101")
private Integer mz;
@ApiModelProperty(value="政治面貌 1:中共党员;2:中共预备党员;3共青团员;4:民革党员;5:民盟盟员;6:民建会员;7:民进会员;8:农工党党员;9:致公党党员;10:九三学社社员;11:台盟盟员;12:无党派人士;13:群众",example="101")
private Integer zzmm;
@ApiModelProperty(value="籍贯 省",example="101")
private String jg;
@ApiModelProperty(value="籍贯 省id",example="101")
private String jgId;
@ApiModelProperty(value = "省")
private String province;
@ApiModelProperty(value = "省id")
......@@ -108,113 +108,119 @@ public class YgglMainEmp extends Model<YgglMainEmp> {
private String district;
@ApiModelProperty(value = "区编号")
private String districtId;
@ApiModelProperty(value="户口性质 1:城镇户口;2:农村户口;3:居民户口",example="101")
private Integer hkType;
@ApiModelProperty(value="户籍地址 ",example="详细地址")
private String hkAddress;
@ApiModelProperty(value="QQ QQ",example="101")
private Integer qq;
@ApiModelProperty(value="微信 ",example="微信")
private String wechat;
// @ApiModelProperty(value="个人邮箱 ",example="个人邮箱")
// private String email;
@ApiModelProperty(value="血型 ",example="血型")
private String bloodType;
@ApiModelProperty(value="语言 ",example="语言")
private String language;
@ApiModelProperty(value="最高学历 1:小学;2:初中;3:高中;4:中专;5:大专;6:本科;7:研究生;8:硕士;9:博士;",example="101")
private Integer edu;
@ApiModelProperty(value="专业 ",example="专业")
private String zy;
@ApiModelProperty(value="转正备注 ",example="转正备注")
private String zzRemark;
@ApiModelProperty(value="工作性质 0全职、1实习、2兼职、3劳务派遣、4劳务、5派遣、6外包、7退休返聘",example="101")
private Integer jobType;
@ApiModelProperty(value="员工状态 0试用、1正式、2离职中、3已离职",example="101")
private Integer jobStatus;
@ApiModelProperty(value="入职日期 ",example="客户注册后的时间为入职时间")
private Date rzTime;
@ApiModelProperty(value="试用期 0:无试用期;1:1个月;2:2个月;3:3个月;4:4个月;5:5个月;6:6个月(有试用期显示选项)",example="101")
private Integer syq;
@ApiModelProperty(value="应转正日期 ",example="人事记录要自动转正的日期")
private Date zzTime;
@ApiModelProperty(value="实际转正日期 ",example="人事手动记录要转正的日期")
private Date sjzzTime;
@ApiModelProperty(value="是否计入考勤 0:否;1:是",example="101")
private Integer isJrkq;
@ApiModelProperty(value="公司内部工号 就是公司内部自己设置的工号",example="101")
private String jobNum;
@ApiModelProperty(value="工作地点 ",example="工作地点")
private String workAddress;
@ApiModelProperty(value="工作电话 工作电话",example="101")
private Integer workPhone;
@ApiModelProperty(value="工作邮箱 ",example="工作邮箱")
private String workEmail;
@ApiModelProperty(value="招聘渠道 招聘渠道应该是活性的",example="101")
private Integer zpqd;
@ApiModelProperty(value="部门岗位id 部门岗位id",example="101")
private Integer bmgwId;
@ApiModelProperty(value="部门名称",example="")
private String bmgwName;
@ApiModelProperty(value="修改时间",example="修改时间")
private Date updateTime;
@ApiModelProperty(value="修改人",example="修改人")
private Integer updateMan;
@ApiModelProperty(value="组织机构代码 组织机构代码",example="101")
private Integer orgCode;
@ApiModelProperty(value="微信id",example="UnionID微信系统唯一id")
private String unionid;
@ApiModelProperty(value="公众号id",example="openid公众号唯一id")
private String openid;
@ApiModelProperty(value="小程序id",example="mpopenid小程序")
private String mpopenid;
@ApiModelProperty(value="手机APPid",example="appopenid手机app")
private String appopenid;
// @ApiModelProperty(value="是否企业中心管理员 ",example="0-否 1-主账号 2-子账号")
// private Integer isManager;
@ApiModelProperty(value="离职前状态 1试用、2正式 ",example="1试用、2正式")
private Integer beforeLeavingSts;
@ApiModelProperty(value="自定义工号",example="")
private String customNum;
@ApiModelProperty(value="对应合同公司字典ID",example="0")
private Integer zpglCompanyId;
@ApiModelProperty(value="对应工作地点典ID",example="0")
private Integer zpglGzddId;
@Transient
@TableField(exist = false)
private String workTime;//工龄
@Transient
@TableField(exist = false)
private String error;//错误信息提示
......@@ -226,7 +232,7 @@ public class YgglMainEmp extends Model<YgglMainEmp> {
@ApiModelProperty(value="是否已投保:0否 1是 ",example="")
private int isInsure;
}
}
\ No newline at end of file
package cn.timer.api.bean.zpgl;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
/**
* 招聘管理合同公司字典表
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-17 15:14:40
*/
@Entity
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "zpgl_company")
@Data
public class ZpglCompany extends Model<ZpglCompany> {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@Id
@GeneratedValue
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "编号")
private Integer id;
/**
* 公司名称
*/
@ApiModelProperty(value = "公司名称")
private String companyName;
/**
* 逻辑删除标记0.未删除 1.删除
*/
@ApiModelProperty(value = "逻辑删除标记0.未删除 1.删除")
private Integer deleteFlag;
/**
* 创建者
*/
@ApiModelProperty(value = "创建者")
private Integer createUserId;
/**
* 更新者
*/
@ApiModelProperty(value = "更新者")
private Integer updateUserId;
/**
* 组织机构代码
*/
@ApiModelProperty(value = "组织机构代码")
private Integer orgCode;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
* 更新时间
*/
@ApiModelProperty(value = "更新时间")
private Date updateTime;
}
package cn.timer.api.bean.zpgl;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
/**
* 招聘管理测评题库表
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-08 15:14:40
*/
@Entity
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "zpgl_cptk")
@Data
public class ZpglCptk extends Model<ZpglCptk> {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@Id
@GeneratedValue
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "编号")
private Integer id;
/**
* 题目
*/
@ApiModelProperty(value = "题目")
private String question;
/**
* 选项
*/
@ApiModelProperty(value = "选项")
private String answerA;
/**
* 选项
*/
@ApiModelProperty(value = "选项")
private String answerB;
/**
* 选项
*/
@ApiModelProperty(value = "选项")
private String answerC;
/**
* 选项
*/
@ApiModelProperty(value = "选项")
private String answerD;
/**
* 排序:从小到大
*/
@ApiModelProperty(value = "排序:从小到大")
private Integer sort;
/**
* 用户ID
*/
@ApiModelProperty(value = "用户ID")
private Integer userId;
/**
* 用户姓名
*/
@ApiModelProperty(value = "用户姓名")
private String userName;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间")
private Date createTime;
}
package cn.timer.api.bean.zpgl;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
/**
* 招聘管理用户测评答题卡表
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-08 15:14:40
*/
@Entity
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "zpgl_dtk")
@Data
public class ZpglDtk extends Model<ZpglDtk> {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@Id
@GeneratedValue
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "编号")
private Integer id;
/**
* 红色值
*/
@ApiModelProperty(value = "红色值")
private Integer red;
/**
* 蓝色值
*/
@ApiModelProperty(value = "蓝色值")
private Integer blue;
/**
* 黄色值
*/
@ApiModelProperty(value = "黄色值")
private Integer yellow;
/**
* 绿色值
*/
@ApiModelProperty(value = "绿色值")
private Integer green;
/**
* 总分值
*/
@ApiModelProperty(value = "总分值")
private Integer count;
/**
* 对应人才信息表ID
*/
@ApiModelProperty(value = "对应人才信息表ID")
private Integer zpglRcxxId;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间")
private Date createTime;
}
package cn.timer.api.bean.zpgl;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
/**
* 招聘管理淘汰原因字典表
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-08 15:14:40
*/
@Entity
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "zpgl_fail")
@Data
public class ZpglFail extends Model<ZpglFail> {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@Id
@GeneratedValue
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "编号")
private Integer id;
/**
* 状态 1:待初筛 2:初筛通过 3:已安排面试 4:已面试 5:面试通过 6:拟录用 7:已发Offer 8:待入职 9已淘汰 10已入职
*/
@ApiModelProperty(value = "状态 1:待初筛 2:初筛通过 3:已安排面试 4:已面试 5:面试通过 6:拟录用 7:已发Offer 8:待入职 9已淘汰 10已入职")
private Integer zpglRcxxStatus;
/**
* 淘汰原因
*/
@ApiModelProperty(value = "淘汰原因")
private String failCause;
/**
* 逻辑删除标记0.未删除 1.删除
*/
@ApiModelProperty(value = "逻辑删除标记0.未删除 1.删除")
private Integer deleteFlag;
/**
* 创建者
*/
@ApiModelProperty(value = "创建者")
private Integer createUserId;
/**
* 更新者
*/
@ApiModelProperty(value = "更新者")
private Integer updateUserId;
/**
* 组织机构代码
*/
@ApiModelProperty(value = "组织机构代码")
private Integer orgCode;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
* 更新时间
*/
@ApiModelProperty(value = "更新时间")
private Date updateTime;
}
package cn.timer.api.bean.zpgl;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
/**
* 招聘管理工作地点字典表
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-17 15:14:40
*/
@Entity
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "zpgl_gzdd")
@Data
public class ZpglGzdd extends Model<ZpglGzdd> {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@Id
@GeneratedValue
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "编号")
private Integer id;
/**
* 省名
*/
@ApiModelProperty(value = "省名")
private String provinceId;
/**
* 省名
*/
@ApiModelProperty(value = "省名")
private String province;
/**
* 区名
*/
@ApiModelProperty(value = "区名")
private String districtId;
/**
* 区名
*/
@ApiModelProperty(value = "区名")
private String district;
/**
* 城市
*/
@ApiModelProperty(value = "城市")
private String cityId;
/**
* 城市
*/
@ApiModelProperty(value = "城市")
private String city;
/**
* 工作地点
*/
@ApiModelProperty(value = "工作地点")
private String gzddName;
/**
* 逻辑删除标记0.未删除 1.删除
*/
@ApiModelProperty(value = "逻辑删除标记0.未删除 1.删除")
private Integer deleteFlag;
/**
* 创建者
*/
@ApiModelProperty(value = "创建者")
private Integer createUserId;
/**
* 更新者
*/
@ApiModelProperty(value = "更新者")
private Integer updateUserId;
/**
* 组织机构代码
*/
@ApiModelProperty(value = "组织机构代码")
private Integer orgCode;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
* 更新时间
*/
@ApiModelProperty(value = "更新时间")
private Date updateTime;
}
package cn.timer.api.bean.zpgl;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
/**
* 招聘管理面试流程记录表
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-08 15:14:40
*/
@Entity
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "zpgl_mslc_log")
@ApiModel("资源目录表")
public class ZpglMslcLog extends Model<ZpglMslcLog> {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@Id
@GeneratedValue
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "编号")
private Integer id;
/**
* 人才信息ID
*/
@ApiModelProperty(value = "人才信息ID")
private Integer zpglRcxxId;
/**
* 类型,1状态变更,2面试,3Offer,4讨论,5其他
*/
@ApiModelProperty(value = "类型,1状态变更,2面试,3Offer,4讨论,5其他")
private Integer zpglRcxxStatus;
/**
* 详细内容
*/
@ApiModelProperty(value = "详细内容")
private String detail;
/**
* 用户ID
*/
@ApiModelProperty(value = "用户ID")
private Integer userId;
/**
* 用户姓名
*/
@ApiModelProperty(value = "用户姓名")
private String userName;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间")
private Date createTime;
}
package cn.timer.api.bean.zpgl;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.util.Date;
/**
* 招聘管理人才信息表
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-08 15:14:40
*/
@Entity
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "zpgl_rcxx")
@Data
public class ZpglRcxx extends Model<ZpglRcxx> {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@Id
@GeneratedValue
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "编号")
private Integer id;
/**
* 职位id
*/
@ApiModelProperty(value = "职位id")
private Integer zpglZwxxId;
/**
* 姓名
*/
@ApiModelProperty(value = "姓名")
private String name;
/**
* 手机
*/
@ApiModelProperty(value = "手机")
private String mobile;
/**
* 邮件地址
*/
@ApiModelProperty(value = "邮件地址")
private String mail;
/**
* 身份证号码
*/
@ApiModelProperty(value = "身份证号码")
private String idCard;
/**
* 微信
*/
@ApiModelProperty(value = "微信")
private String weixin;
/**
* 身高CM
*/
@ApiModelProperty(value = "身高CM")
private Integer height;
/**
* 体重KG
*/
@ApiModelProperty(value = "体重KG")
private Integer weight;
/**
* 政治面貌
*/
@ApiModelProperty(value = "政治面貌")
private String face;
/**
* 民族
*/
@ApiModelProperty(value = "民族")
private Integer nationClassId;
/**
* 籍贯
*/
@ApiModelProperty(value = "籍贯")
private String nativePlace;
/**
* 部门岗位ID
*/
@ApiModelProperty(value = "部门岗位ID")
private Integer bmgwId;
/**
* 工作性质 0全职、1实习、2兼职、3劳务派遣、4劳务、5派遣、6外包、7退休返聘
*/
@ApiModelProperty(value = "工作性质 0全职、1实习、2兼职、3劳务派遣、4劳务、5派遣、6外包、7退休返聘")
private Integer jobType;
/**
* 预计入职日期
*/
@ApiModelProperty(value = "预计入职日期")
private Date yjrzTime;
/**
* 省名
*/
@ApiModelProperty(value = "省名")
private String provinceId;
/**
* 省名
*/
@ApiModelProperty(value = "省名")
private String province;
/**
* 区名
*/
@ApiModelProperty(value = "区名")
private String districtId;
/**
* 区名
*/
@ApiModelProperty(value = "区名")
private String district;
/**
* 城市
*/
@ApiModelProperty(value = "城市")
private String cityId;
/**
* 城市
*/
@ApiModelProperty(value = "城市")
private String city;
/**
* 详细地址
*/
@ApiModelProperty(value = "详细地址")
private String address;
/**
* 现居住地详址
*/
@ApiModelProperty(value = "现居住地详址")
private String grAddress;
/**
* 是否结婚:0否,1是
*/
@ApiModelProperty(value = "是否结婚:0否,1是")
private Integer marryStatus;
/**
* 语言 1:英语 2:粤语 3:普通话
* 列:1,2,3
*/
@ApiModelProperty(value = "语言 1:英语 2:粤语 3:普通话 ")
private String language;
/**
* 驾照 1:A照 2:B照 3:C照
*/
@ApiModelProperty(value = "驾照 1:A照 2:B照 3:C照")
private Integer drivingLicense;
/**
* 病史 :0无,1有
*/
@ApiModelProperty(value = "病史 :0无,1有")
private Integer medicalHistory;
/**
* 病史1有:具体说明
*/
@ApiModelProperty(value = "具体说明")
private String medicalDetail;
/**
* 待遇要求(税前)单位元/月
*/
@ApiModelProperty(value = "待遇要求(税前)单位元/月")
private Integer salary;
/**
* 求职状态:0离职,1在岗
*/
@ApiModelProperty(value = "求职状态:0离职,1在岗")
private Integer workStatus;
/**
* 可到岗时间:0一周内 1两周内 2一个月内 3两个月内 4不确定
*/
@ApiModelProperty(value = "可到岗时间:0一周内 1两周内 2一个月内 3两个月内 4不确定")
private Integer workTimer;
/**
* 爱好特长
*/
@ApiModelProperty(value = "爱好特长")
private String hobby;
/**
* 自我介绍
*/
@ApiModelProperty(value = "自我介绍")
private String contMyDesc;
/**
* 受到奖励
*/
@ApiModelProperty(value = "受到奖励")
private String reward;
/**
* 处分,违法,犯罪记录
*/
@ApiModelProperty(value = "处分,违法,犯罪记录")
private String record;
/**
* 招聘渠道ID
*/
@ApiModelProperty(value = "招聘渠道ID")
private Integer zpglZpqdId;
/**
* 签名图片
*/
@ApiModelProperty(value = "签名图片")
private String signatureImg;
/**
* 文件名
*/
@ApiModelProperty(value = "文件名")
private String fileName;
/**
* 文件路径
*/
@ApiModelProperty(value = "文件路径")
private String filePath;
/**
* 备注
*/
@ApiModelProperty(value = "备注")
private String remarks;
/**
* 性别 0:男1:女
*/
@ApiModelProperty(value = "性别 0:男1:女")
private Integer sex;
/**
* 出生日期
*/
@ApiModelProperty(value = "出生日期")
private Date datebirth;
/**
* 工作年限
*/
@ApiModelProperty(value = "工作年限")
private Integer workyears;
/**
* 最高学历 1:小学;2:初中;3:高中;4:中专;5:大专;6:本科;7:研究生;8:硕士;9:博士
*/
@ApiModelProperty(value = "最高学历 1:小学;2:初中;3:高中;4:中专;5:大专;6:本科;7:研究生;8:硕士;9:博士")
private String highesteducation;
/**
* 毕业院校
*/
@ApiModelProperty(value = "毕业院校")
private String universitie;
/**
* 专业名称
*/
@ApiModelProperty(value = "专业名称")
private String subject;
/**
* 最近工作单位
*/
@ApiModelProperty(value = "最近工作单位")
private String company;
/**
* 最近职位
*/
@ApiModelProperty(value = "最近职位")
private String zjzw;
/**
* 参加工作时间
*/
@ApiModelProperty(value = "参加工作时间")
private Date workBeginYear;
/**
* 标签
*/
@ApiModelProperty(value = "标签")
private String label;
/**
* 状态 1:待初筛 2:初筛通过 3:已安排面试 4:已面试 5:面试通过 6:拟录用 7:已发Offer 8:待入职 9已淘汰 10已入职
*/
@ApiModelProperty(value = "状态 1:待初筛 2:初筛通过 3:已安排面试 4:已面试 5:面试通过 6:拟录用 7:已发Offer 8:待入职 9已淘汰 10已入职")
private Integer status;
/**
* 对应淘汰原因字典ID
*/
@ApiModelProperty(value = "对应淘汰原因字典ID")
private Integer zpglFailId;
/**
* 对应合同公司字典ID
*/
@ApiModelProperty(value = "对应合同公司字典ID")
private Integer zpglCompanyId;
/**
* 对应职级字典ID
*/
@ApiModelProperty(value = "对应职级字典ID")
private Integer zpglZjId;
/**
* 对应工作地点字典ID
*/
@ApiModelProperty(value = "对应工作地点字典ID")
private Integer zpglGzddId;
/**
* 面试官id
*/
@ApiModelProperty(value = "面试官id")
private Integer interviewerId;
/**
* 面试时间
*/
@ApiModelProperty(value = "面试时间")
private Date interviewTime;
/**
* 面试方式 1:现场面试 2:电话面试 3:视屏面试
*/
@ApiModelProperty(value = "面试方式 1:现场面试 2:电话面试 3:视屏面试")
private Integer interviewWay;
/**
* 通知方式 1:全部 2:短信 3:邮件 4.微信公众号
*/
@ApiModelProperty(value = "通知方式 1:全部 2:短信 3:邮件 4.微信公众号")
private Integer noticeWay;
/**
* 面试轮次
*/
@ApiModelProperty(value = "面试轮次")
private Integer interviewNum;
/**
* 对应用户id
*/
@ApiModelProperty(value = "对应用户id")
private Integer userId;
/**
* 加入原因
*/
@ApiModelProperty(value = "加入原因")
private String joincause;
/**
* 组织机构代码
*/
@ApiModelProperty(value = "组织机构代码")
private String orgCode;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
* 更新时间
*/
@ApiModelProperty(value = "更新时间")
private Date updateTime;
/**
* 国家地区 0:中国;1:中国香港;2:中国澳门;3:中国台湾
*/
@ApiModelProperty(value = "国家地区 0:中国;1:中国香港;2:中国澳门;3:中国台湾")
private Integer area;
/**
* 附加操作:0无,1加入人才库
*/
@ApiModelProperty(value = "附加操作:0无,1加入人才库")
private Integer ifrck;
/**
* 附加操作:0无,1加入人才库
*/
@ApiModelProperty(value = "附加操作:0无,1加入人才库")
private Date ifrckTime;
/**
* 逻辑删除标记0.未删除 1.删除
*/
@ApiModelProperty(value = "逻辑删除标记0.未删除 1.删除")
private Integer deleteFlag;
/**
* 淘汰原因
*/
@Transient
@TableField(exist = false)
@ApiModelProperty(value = "淘汰原因")
private String failCause;
}
package cn.timer.api.bean.zpgl;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
/**
* 简历证书
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-08 15:14:40
*/
@Entity
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "zpgl_rcxx_certificate")
@Data
public class ZpglRcxxCertificate extends Model<ZpglRcxxCertificate> {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@Id
@GeneratedValue
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "编号")
private Integer id;
/**
* 人才信息ID
*/
@ApiModelProperty(value = "人才信息ID")
private Integer zpglRcxxId;
/**
* 获得时间
*/
@ApiModelProperty(value = "获得时间")
private Date getTime;
/**
* 证书名称
*/
@ApiModelProperty(value = "证书名称")
private String certificateName;
/**
* 证书图片
*/
@ApiModelProperty(value = "证书图片")
private String image;
/**
*
*/
@ApiModelProperty(value = "")
private Integer isDelete;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
* 更新时间
*/
@ApiModelProperty(value = "更新时间")
private Date updateTime;
}
package cn.timer.api.bean.zpgl;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
/**
* 工作经验
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-08 15:14:40
*/
@Entity
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "zpgl_rcxx_experience")
@Data
public class ZpglRcxxExperience extends Model<ZpglRcxxExperience> {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@Id
@GeneratedValue
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "编号")
private Integer id;
/**
* 人才信息ID
*/
@ApiModelProperty(value = "人才信息ID")
private Integer zpglRcxxId;
/**
* 公司名称
*/
@ApiModelProperty(value = "公司名称")
private String company;
/**
* 入职时间
*/
@ApiModelProperty(value = "入职时间")
private Date startTime;
/**
* 离职时间 0000-00-00 00:00:00为至今
*/
@ApiModelProperty(value = "离职时间 0000-00-00 00:00:00为至今")
private Date endTime;
/**
* 职位名称
*/
@ApiModelProperty(value = "职位名称")
private String jobName;
/**
* 所在部门
*/
@ApiModelProperty(value = "所在部门")
private String department;
/**
* 薪水(单位元/月)
*/
@ApiModelProperty(value = "薪水(单位元/月)")
private Integer salary;
/**
* 工作内容
*/
@ApiModelProperty(value = "工作内容")
private String workContent;
/**
* 离职原因
*/
@ApiModelProperty(value = "离职原因")
private String reason;
/**
* 联系人姓名
*/
@ApiModelProperty(value = "联系人姓名")
private String linkName;
/**
* 联系人手机
*/
@ApiModelProperty(value = "联系人手机")
private String linkMobile;
/**
*
*/
@ApiModelProperty(value = "")
private Integer isDelete;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
* 更新时间
*/
@ApiModelProperty(value = "更新时间")
private Date updateTime;
}
package cn.timer.api.bean.zpgl;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
/**
* 家庭资料表
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-08 15:14:40
*/
@Entity
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "zpgl_rcxx_jtzl")
@Data
public class ZpglRcxxJtzl extends Model<ZpglRcxxJtzl> {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@Id
@GeneratedValue
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "编号")
private Integer id;
/**
* 人才信息ID
*/
@ApiModelProperty(value = "人才信息ID")
private Integer zpglRcxxId;
/**
* 姓名
*/
@ApiModelProperty(value = "姓名")
private String name;
/**
* 关系
*/
@ApiModelProperty(value = "关系")
private String relationship;
/**
* 工作(学习)单位
*/
@ApiModelProperty(value = "工作(学习)单位")
private String linkAddress;
/**
* 联系电话
*/
@ApiModelProperty(value = "联系电话")
private String linkMobile;
/**
*
*/
@ApiModelProperty(value = "")
private Integer isDelete;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间")
private Date createTime;
}
package cn.timer.api.bean.zpgl;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
/**
* 联系信息表
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-08 15:14:40
*/
@Entity
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "zpgl_rcxx_lxxxb")
@Data
public class ZpglRcxxLxxxb extends Model<ZpglRcxxLxxxb> {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@Id
@GeneratedValue
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "编号")
private Integer id;
/**
* 人才信息ID
*/
@ApiModelProperty(value = "人才信息ID")
private Integer zpglRcxxId;
/**
* 联系人姓名
*/
@ApiModelProperty(value = "联系人姓名")
private String linkName;
/**
* 联系人手机
*/
@ApiModelProperty(value = "联系人手机")
private String linkMobile;
/**
* 省名
*/
@ApiModelProperty(value = "省名")
private String provinceId;
/**
* 省名
*/
@ApiModelProperty(value = "省名")
private String province;
/**
* 区名
*/
@ApiModelProperty(value = "区名")
private String districtId;
/**
* 区名
*/
@ApiModelProperty(value = "区名")
private String district;
/**
* 城市
*/
@ApiModelProperty(value = "城市")
private String cityId;
/**
* 城市
*/
@ApiModelProperty(value = "城市")
private String city;
/**
* 联系人详细地址
*/
@ApiModelProperty(value = "联系人详细地址")
private String linkAddressDetail;
/**
*
*/
@ApiModelProperty(value = "")
private Integer isDelete;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
* 更新时间
*/
@ApiModelProperty(value = "更新时间")
private Date updateTime;
}
package cn.timer.api.bean.zpgl;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.models.auth.In;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import javax.persistence.*;
import java.util.Date;
/**
* Offer发送记录表
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-04-14 10:14:40
*/
@Entity
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "zpgl_rcxx_offer")
@Data
public class ZpglRcxxOffer extends Model<ZpglRcxxOffer> {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@Id
@GeneratedValue
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "编号")
private Integer id;
/**
* 人才信息ID
*/
@ApiModelProperty(value = "人才信息ID")
private Integer zpglRcxxId;
/**
* 邮件标题
*/
@ApiModelProperty(value = "邮件标题")
private String title;
/**
* 部门
*/
@ApiModelProperty(value = "部门")
private String bumen;
/**
* 岗位
*/
@ApiModelProperty(value = "岗位")
private String gangwei;
/**
* 姓名
*/
@ApiModelProperty(value = "姓名")
private String rcxxName;
/**
* 企业名称
*/
@ApiModelProperty(value = "企业名称")
private String companyName;
/**
* 联系人
*/
@ApiModelProperty(value = "联系人")
private String linkName;
/**
* 联系人电话
*/
@ApiModelProperty(value = "联系人电话")
private String linkPhone;
/**
* 联系人邮箱
*/
@ApiModelProperty(value = "联系人邮箱")
private String linkEmail;
/**
* 入职日期
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JSONField(format = "yyyy-MM-dd")
@ApiModelProperty(value = "入职日期")
private Date rzTime;
/**
* 组织机构代码
*/
@ApiModelProperty(value = "组织机构代码")
private Integer orgCode;
/**
* 逻辑删除标记0.未删除 1.删除
*/
@ApiModelProperty(value = "逻辑删除标记0.未删除 1.删除")
private String deleteFlag;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
* 更新时间
*/
@ApiModelProperty(value = "更新时间")
private Date updateTime;
/**
* 收件人邮箱
*/
@Transient
@TableField(exist = false)
@ApiModelProperty(value = "收件人邮箱")
private String receiverEmail;
/**
* 发件人邮箱
*/
@Transient
@TableField(exist = false)
@ApiModelProperty(value = "发件人邮箱")
private String senderEmail;
}
package cn.timer.api.bean.zpgl;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
/**
* 项目信息表
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-04-1 10:14:40
*/
@Entity
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "zpgl_rcxx_project")
@Data
public class ZpglRcxxProject extends Model<ZpglRcxxProject> {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@Id
@GeneratedValue
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "编号")
private Integer id;
/**
* 人才信息ID
*/
@ApiModelProperty(value = "人才信息ID")
private Integer zpglRcxxId;
/**
* 开始时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JSONField(format = "yyyy-MM-dd")
@ApiModelProperty(value = "开始时间")
private Date startTime;
/**
* 结束时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
@ApiModelProperty(value = "结束时间")
private Date endTime;
/**
* 项目名称
*/
@ApiModelProperty(value = "项目名称")
private String projectName;
/**
* 项目角色:职位名称/职位名
*/
@ApiModelProperty(value = "项目角色:职位名称/职位名")
private String job;
/**
* 工作描述:项目详情介绍
*/
@ApiModelProperty(value = "工作描述:项目详情介绍")
private String projectDescribe;
/**
* 个人在该项目负责的具体工作详情
*/
@ApiModelProperty(value = "个人在该项目负责的具体工作详情")
private String duty;
/**
* 项目地点城市或区域
*/
@ApiModelProperty(value = "项目地点城市或区域")
private String location;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
* 逻辑删除标记0.未删除 1.删除
*/
@ApiModelProperty(value = "逻辑删除标记0.未删除 1.删除")
private Integer deleteFlag;
}
package cn.timer.api.bean.zpgl;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
/**
* 教育经历
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-08 15:14:40
*/
@Entity
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "zpgl_rcxx_study")
@Data
public class ZpglRcxxStudy extends Model<ZpglRcxxStudy> {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@Id
@GeneratedValue
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "编号")
private Integer id;
/**
* 人才信息ID
*/
@ApiModelProperty(value = "人才信息ID")
private Integer zpglRcxxId;
/**
* 开始时间
*/
@ApiModelProperty(value = "开始时间")
private Date startTime;
/**
* 结束时间
*/
@ApiModelProperty(value = "结束时间")
private Date endTime;
/**
* 学校名称
*/
@ApiModelProperty(value = "学校名称")
private String schoolName;
/**
* 学历 1:小学;2:初中;3:高中;4:中专;5:大专;6:本科;7:研究生;8:硕士;9:博士
*/
@ApiModelProperty(value = "学历 1:小学;2:初中;3:高中;4:中专;5:大专;6:本科;7:研究生;8:硕士;9:博士")
private Integer education;
/**
* 专业名称
*/
@ApiModelProperty(value = "专业名称")
private String subject;
/**
*
*/
@ApiModelProperty(value = "")
private Integer isDelete;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
* 更新时间
*/
@ApiModelProperty(value = "更新时间")
private Date updateTime;
}
package cn.timer.api.bean.zpgl;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
/**
* 培训经验
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-08 15:14:40
*/
@Entity
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "zpgl_rcxx_train")
@Data
public class ZpglRcxxTrain extends Model<ZpglRcxxTrain> {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@Id
@GeneratedValue
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "编号")
private Integer id;
/**
* 人才信息ID
*/
@ApiModelProperty(value = "人才信息ID")
private Integer zpglRcxxId;
/**
* 培训中心
*/
@ApiModelProperty(value = "培训中心")
private String trainCompany;
/**
* 培训课程
*/
@ApiModelProperty(value = "培训课程")
private String trainSubject;
/**
* 培训开始时间
*/
@ApiModelProperty(value = "培训开始时间")
private Date startTime;
/**
* 培训结束时间
*/
@ApiModelProperty(value = "培训结束时间")
private Date endTime;
/**
* 培训内容
*/
@ApiModelProperty(value = "培训内容")
private String trainContent;
/**
*
*/
@ApiModelProperty(value = "")
private Integer isDelete;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
* 更新时间
*/
@ApiModelProperty(value = "更新时间")
private Date updateTime;
}
package cn.timer.api.bean.zpgl;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
/**
* 招聘管理职位信息表
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-21 15:14:40
*/
@Entity
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "zpgl_wxgzpt_emp_rcxx")
@Data
public class ZpglWxgzptEmpRcxx extends Model<ZpglWxgzptEmpRcxx> {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@Id
@GeneratedValue
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "编号")
private Integer id;
/**
* 人才信息ID
*/
@ApiModelProperty(value = "人才信息ID")
private Integer zpglRcxxId;
/**
* 员工档案表ID
*/
@ApiModelProperty(value = "员工档案表ID")
private Integer ygglMainEmpId;
/**
* 手机号
*/
@ApiModelProperty(value = "手机号")
private String mobile;
/**
* 微信openid
*/
@ApiModelProperty(value = "微信openid")
private String openid;
/**
* 微信unionid
*/
@ApiModelProperty(value = "微信unionid")
private String unionid;
/**
* 组织机构代码
*/
@ApiModelProperty(value = "组织机构代码")
private Integer orgCode;
/**
* 逻辑删除标记0.未删除 1.删除
*/
@ApiModelProperty(value = "逻辑删除标记0.未删除 1.删除")
private Integer deleteFlag;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
* 更新时间
*/
@ApiModelProperty(value = "更新时间")
private Date updateTime;
}
package cn.timer.api.bean.zpgl;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
/**
* 招聘管理职级字典表
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-17 15:14:40
*/
@Entity
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "zpgl_zj")
@Data
public class ZpglZj extends Model<ZpglZj> {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@Id
@GeneratedValue
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "编号")
private Integer id;
/**
* 职级名称
*/
@ApiModelProperty(value = "职级名称")
private String zjName;
/**
* 逻辑删除标记0.未删除 1.删除
*/
@ApiModelProperty(value = "逻辑删除标记0.未删除 1.删除")
private Integer deleteFlag;
/**
* 创建者
*/
@ApiModelProperty(value = "创建者")
private Integer createUserId;
/**
* 更新者
*/
@ApiModelProperty(value = "更新者")
private Integer updateUserId;
/**
* 组织机构代码
*/
@ApiModelProperty(value = "组织机构代码")
private Integer orgCode;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
* 更新时间
*/
@ApiModelProperty(value = "更新时间")
private Date updateTime;
}
package cn.timer.api.bean.zpgl;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
/**
* 招聘管理招聘渠道字典表
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-28 15:14:40
*/
@Entity
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "zpgl_zpqd")
@Data
public class ZpglZpqd extends Model<ZpglZpqd> {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@Id
@GeneratedValue
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "编号")
private Integer id;
/**
* 工作地点
*/
@ApiModelProperty(value = "工作地点")
private String zpqdName;
/**
* 逻辑删除标记0.未删除 1.删除
*/
@ApiModelProperty(value = "逻辑删除标记0.未删除 1.删除")
private Integer deleteFlag;
/**
* 创建者
*/
@ApiModelProperty(value = "创建者")
private Integer createUserId;
/**
* 更新者
*/
@ApiModelProperty(value = "更新者")
private Integer updateUserId;
/**
* 组织机构代码
*/
@ApiModelProperty(value = "组织机构代码")
private Integer orgCode;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
* 更新时间
*/
@ApiModelProperty(value = "更新时间")
private Date updateTime;
}
package cn.timer.api.bean.zpgl;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.util.Date;
/**
* 招聘管理职位信息表
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-08 15:14:40
*/
@Entity
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "zpgl_zwxx")
@Data
public class ZpglZwxx extends Model<ZpglZwxx> {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@Id
@GeneratedValue
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "编号")
private Integer id;
/**
* 职位名称
*/
@ApiModelProperty(value = "职位名称")
private String name;
/**
* 部门id
*/
@ApiModelProperty(value = "部门id")
private Integer deptId;
/**
* 职位类型ID
*/
@ApiModelProperty(value = "职位类型ID")
private Integer jobClassId;
/**
* 工作性质 1:全职 2:兼职 3:实习 4:退休返聘 5:劳务外派 6:劳务外包
*/
@ApiModelProperty(value = "工作性质 1:全职 2:兼职 3:实习 4:退休返聘 5:劳务外派 6:劳务外包")
private Integer workType;
/**
* 对应合工作地点字典ID
*/
@ApiModelProperty(value = "对应合工作地点字典ID")
private Integer zpglGzddId;
/**
* 招聘人数
*/
@ApiModelProperty(value = "招聘人数")
private Integer num;
/**
* 已入职人数
*/
@ApiModelProperty(value = "已入职人数")
private Integer entryNum;
/**
* 招聘原因
*/
@ApiModelProperty(value = "招聘原因")
private String reason;
/**
* 工作经验要求:1:1年一下 2:1-3年 3:3-5年 4:5-10年 5:10年以上
*/
@ApiModelProperty(value = "工作经验要求:1:1年一下 2:1-3年 3:3-5年 4:5-10年 5:10年以上")
private Integer experience;
/**
* 学历要求 1:小学;2:初中;3:高中;4:中专;5:大专;6:本科;7:研究生;8:硕士;9:博士
*/
@ApiModelProperty(value = "学历要求 1:小学;2:初中;3:高中;4:中专;5:大专;6:本科;7:研究生;8:硕士;9:博士")
private Integer education;
/**
* 薪资范围
*/
@ApiModelProperty(value = "薪资范围")
private Integer salaryMin;
/**
* 薪资范围
*/
@ApiModelProperty(value = "薪资范围")
private Integer salaryMax;
/**
* 最迟到岗时间
*/
@ApiModelProperty(value = "最迟到岗时间")
private Date registerTime;
/**
* 启动时间
*/
@ApiModelProperty(value = "启动时间")
private Date startTime;
/**
* 截止时间
*/
@ApiModelProperty(value = "截止时间")
private Date endTime;
/**
* 描述
*/
@ApiModelProperty(value = "描述")
private String description;
/**
* 紧急程度状态 1:一般 2:紧急
*/
@ApiModelProperty(value = "紧急程度状态 1:一般 2:紧急")
private Integer urgentStatus;
/**
* 状态 1:招聘中 2:停止招聘
*/
@ApiModelProperty(value = "状态 1:招聘中 2:停止招聘")
private Integer status;
/**
* 组织机构代码
*/
@ApiModelProperty(value = "组织机构代码")
private String orgCode;
/**
* 逻辑删除标记0.未删除 1.删除
*/
@ApiModelProperty(value = "逻辑删除标记0.未删除 1.删除")
private Integer deleteFlag;
/**
* 用户ID
*/
@ApiModelProperty(value = "用户ID")
private Integer userId;
/**
* 用户姓名
*/
@ApiModelProperty(value = "用户姓名")
private String userName;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
* 更新时间
*/
@ApiModelProperty(value = "更新时间")
private Date updateTime;
/**
* 省名
*/
@Transient
@TableField(exist = false)
@ApiModelProperty(value = "省名")
private String province;
/**
* 区名
*/
@Transient
@TableField(exist = false)
@ApiModelProperty(value = "区名")
private String district;
/**
* 城市
*/
@Transient
@TableField(exist = false)
@ApiModelProperty(value = "城市")
private String city;
/**
* 工作地点
*/
@Transient
@TableField(exist = false)
@ApiModelProperty(value = "工作地点")
private String gzddName;
}
......@@ -304,5 +304,65 @@ public interface JxglEnumInterface {
}
}
/**
* 招聘管理-人才信息:状态 1:待初筛 2:初筛通过 3:已安排面试 4:已面试 5:面试通过 6:拟录用 7:已发Offer 8:待入职 9已淘汰 10已入职
*/
@Getter
enum ResumeStatus implements JxglEnumInterface {
FILTERING(1, "待初筛"),
FILTER_PASS(2, "初筛通过"), INTERVIEW(3, "已安排面试"),
INTERVIEWED(4, "已面试"), INTERVIEW_PASS(5, "面试通过"),
EMPLOY(6, "拟录用"), OFFER(7, "已发Offer"),
ENTRYING(8, "待入职"), PASS_OUT(9, "9已淘汰"),ENTRY(10, "已入职");
private Integer type;
private String name;
ResumeStatus(Integer type, String name) {
this.type = type;
this.name = name;
}
}
/**
* 招聘管理-面试流程:类型,1状态变更,2面试,3Offer,4讨论,5其他
*/
@Getter
enum MslcLogStatus implements JxglEnumInterface {
CHANGEING(1, "状态变更"),
INTERVIEW(2, "面试"), OFFER(3, "Offer"),
DISCUSS(4, "讨论"), OTHER(5, "其他");
private Integer type;
private String name;
MslcLogStatus(Integer type, String name) {
this.type = type;
this.name = name;
}
}
/**
* 招聘管理-面试流程:通知方式 1:全部 2:短信 3:邮件 4.微信公众号
*/
@Getter
enum NoticeWay implements JxglEnumInterface {
ALL(1, "全部"),
SHORT_MESSAGE(2, "短信"), EMAIL(3, "邮件"),
WECHAT_PUBLIC(4, "微信公众号");
private Integer type;
private String name;
NoticeWay(Integer type, String name) {
this.type = type;
this.name = name;
}
}
}
......@@ -19,10 +19,10 @@ import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
@Configuration
public class WebSecurityConfig implements WebMvcConfigurer {
@Resource
private UserMethodArgumentResolver userMethodArgumentResolver;
@Bean
public RedisSessionInterceptor getSessionInterceptor() {
return new RedisSessionInterceptor();
......@@ -30,7 +30,7 @@ public class WebSecurityConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 所有已api开头的访问都要进入RedilsSessionInterceptor拦截器进行登录验证,并排除login接口(全路径)。必须写成链式,分别设置的话会创建多个拦截器。
// 所有已api开头的访问都要进入RedisSessionInterceptor拦截器进行登录验证,并排除login接口(全路径)。必须写成链式,分别设置的话会创建多个拦截器。
// 必须写成getSessionInterceptor(),否则SessionInterceptor中的@Autowired会无效
//.excludePathPatterns("/")
registry.addInterceptor(getSessionInterceptor())
......@@ -53,17 +53,24 @@ public class WebSecurityConfig implements WebMvcConfigurer {
.excludePathPatterns("/druid/login*")
.excludePathPatterns("/app/**")
.excludePathPatterns("/webjars/**")
.excludePathPatterns("/check/**");
.excludePathPatterns("/zpgl/h5/**")
.excludePathPatterns("/yggl/mz/*")
.excludePathPatterns("/yggl/sysRegion")
.excludePathPatterns("/wxgzh/**")
.excludePathPatterns("/wxgzpt/**")
.excludePathPatterns("/MP_verify_VohzppEKB3VfeKxw.txt")
.excludePathPatterns("/evaluation/**")
.excludePathPatterns("/oss/uploadImg");
// registry.addInterceptor(getSessionInterceptor()).addPathPatterns("/**").excludePathPatterns("/swagger-ui*");
}
/**
* 配置消息转换器--这里我用的是alibaba 开源的 fastjson
* @param converters
*/
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
// Iterator<HttpMessageConverter<?>> iterator = converters.iterator();
// while(iterator.hasNext()){
// HttpMessageConverter<?> converter = iterator.next();
......@@ -110,12 +117,12 @@ public class WebSecurityConfig implements WebMvcConfigurer {
converters.add(0,fastConverter);
}
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
argumentResolvers.add(userMethodArgumentResolver);
}
// @Override
// public void addCorsMappings(CorsRegistry registry) {
//// System.out.println("我是MyWebConfig跨域");
......
......@@ -53,6 +53,15 @@ public class SftpConfiguration {
@Value("${sftp.client.serverUrl}")
private String serverUrl;
@Value("${sftp.client.targetPath}")
private String targetPath;
@Value("${sftp.client.reservedName}")
private boolean reservedName;
@Value("${config-8timer.file-address.type}")
public String fileAddress;
/**
* @Title: getSftpSocket
* @Description: 获取连接
......
......@@ -7,11 +7,13 @@ import java.util.Date;
import java.util.HashMap;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import cn.timer.api.utils.redis.RedisUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
......@@ -169,6 +171,9 @@ public class LoginController {
@Autowired
private AliyunSMS aliyunSMS;
@Resource
private RedisUtil redisUtil;
// @Autowired
// private DataSourceTransactionManager transactionManager;
......@@ -253,9 +258,52 @@ public class LoginController {
String message = j.getString("Message");
if ("OK".equals(message)) {
session.setAttribute(phone, code);
// redisTemplate.set(phone, code);
// redisTemplate.expire(phone, 60);
// redisTemplate.set(phone, code);
// redisTemplate.expire(phone, 60);
return ResultUtil.data("发送验证码成功");
} else {
return ResultUtil.error("发送验证码失败");
}
} catch (Exception e) {
e.printStackTrace();
return ResultUtil.error("发送验证码失败");
}
}
/**
* 发送验证码
*
* @param entRegisterDto
* @return
*/
@PostMapping(value = "/sendcode1")
@ApiOperation(value = "1.发送验证码", httpMethod = "POST", notes = "接口发布说明")
@ApiOperationSupport(order = 1)
@Log(title = "发送验证码", businessType = BusinessType.SEND_CODE)
public Result<String> sendCode1(@RequestBody EntRegisterDto entRegisterDto) {
String phone = entRegisterDto.getPhone();
if (phone == null || StrUtil.hasBlank(phone)) {
return ResultUtil.error("请输入手机号");
}
// 6位随机数验证码
try {
Integer code = (int) ((Math.random() * 9 + 1) * 100000);
if (phone == null || "".equals(phone)) {
phone = entRegisterDto.getUsername();
entRegisterDto.setPhone(phone);
}
List<Object> list = aliyunSMS.authCode(entRegisterDto, entRegisterDto.getTc(), code);
Integer useId = (Integer) list.get(0);
JSONObject j = (JSONObject) list.get(1);
// 获取当前日期的字符串格式
String message = j.getString("Message");
if ("OK".equals(message)) {
session.setAttribute(phone, code);
redisUtil.set(phone, code,60*5);
return ResultUtil.data("发送验证码成功");
} else {
return ResultUtil.error("发送验证码失败");
......
......@@ -11,6 +11,7 @@ import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import cn.timer.api.controller.zpgl.sevice.ZpglService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.DeleteMapping;
......@@ -89,6 +90,8 @@ public class CrmController {
@Autowired
private CrmClientContactsMapper crmClientContactsMapper;
@Autowired
private ZpglService zpglService;
private Integer getEmpNum(UserBean userBean) {
return userBean.getEmpNum();
......@@ -369,12 +372,6 @@ public class CrmController {
// return ResultUtil.data(crmSeaRules, "获取成功");
// }
private SysRegion getSysRegion(Integer keyId) {
return SysRegion.builder().build()
.selectOne(new QueryWrapper<SysRegion>().lambda().eq(SysRegion::getKeyId, keyId).select(
SysRegion::getRegionName, SysRegion::getKeyId, SysRegion::getZipCode,
SysRegion::getRegionCode));
}
@PostMapping("addClient")
@Transactional
......@@ -384,14 +381,14 @@ public class CrmController {
Integer orgCode = getOrgCode(userBean);
crmClientData.setClientStatus(1);
crmClientData.setCreateUser(empNum);
SysRegion district = getSysRegion(crmClientData.getDistrictId());
SysRegion district = zpglService.getSysRegion(crmClientData.getDistrictId());
// crmClientData.setZipCode(district.getZipCode());
if (district != null) {
crmClientData.setDistrict(district.getRegionName());
SysRegion city = getSysRegion(district.getRegionCode());
SysRegion city = zpglService.getSysRegion(district.getRegionCode());
crmClientData.setCity(city.getRegionName());
crmClientData.setCityId(city.getKeyId());
SysRegion province = getSysRegion(city.getRegionCode());
SysRegion province = zpglService.getSysRegion(city.getRegionCode());
crmClientData.setProvinceId(province.getKeyId());
crmClientData.setProvince(province.getRegionName());
}
......
......@@ -59,17 +59,8 @@ public class DiskFilesController {
@Autowired
private DiskFilesService diskFilesService;
@Value("${sftp.client.root}")
private String root;
@Value("${sftp.client.targetPath}")
private String targetPath;
@Value("${sftp.client.reservedName}")
private boolean reservedName;
@Value("${sftp.client.serverUrl}")
private String serverUrl;
@Autowired
private SftpConfiguration config;
@ResponseBody
......@@ -112,12 +103,12 @@ public class DiskFilesController {
List<FileInfoDto> imageUrls;
try {
//上传文件到服务器
imageUrls = ftpService.uploadFile(targetPath, file, reservedName);
imageUrls = ftpService.uploadFile(file);
for (FileInfoDto dto : imageUrls) {
//新增资源上传文件
diskFiles.setFileType(dto.getFileSuffix());
//"/home/disk/123456.jpg"
diskFiles.setDiskPath(root + targetPath + "/" + dto.getFileName());
diskFiles.setDiskPath(config.getRoot() + config.getTargetPath() + "/" + dto.getFileName());
diskFiles.setUrlPath(dto.getUrlPath());
diskFiles.setTitle(dto.getResourceFileName());
diskFiles.setFileSize(dto.getFileSize());
......
package cn.timer.api.controller.disk.constant;
/**
* 文件存储地址常量
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-04-02 11:05:49
*/
public class FileAddressConstant {
/**
* aliyun-oss(阿里云OSS)
*/
public static final String ALIYUN_OSS = "aliyun-oss";
/**
* physics-oss(物理机器OSS)
*/
public static final String PHYSICS_OSS = "physics-oss";
}
package cn.timer.api.controller.oss;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.*;
import cn.timer.api.service.OSSService;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
......@@ -20,6 +21,8 @@ import cn.timer.api.utils.aliyun.OSSUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import javax.servlet.http.HttpServletRequest;
@Api(tags = "9.0阿里云OSS操作")
@Transactional
@RequestMapping(value = "/oss", produces = { "application/json" })
......@@ -176,4 +179,33 @@ public class OSSController {
return data;
}
@PostMapping(value = "/uploadImg")
@ApiOperation(value = "上传图片", httpMethod = "POST", notes = "接口发布说明")
@ResponseBody
public Result<String> uploadImg(@RequestParam(required = true) String param,@RequestParam(required = false) String moudle, @Param("file") MultipartFile file) throws Exception {
if (file == null || file.getSize() <= 0) {
return ResultUtil.error("上传的文件为空,请重新选择!");
}
Set<String> typeSet = new HashSet<>();
typeSet.add(".jpg");
typeSet.add(".png");
typeSet.add(".gif");
String fileName = file.getOriginalFilename();
int index = fileName.lastIndexOf(".");
String fileType = fileName.substring(index);
//校验图片类型是否有效
if (!typeSet.contains(fileType)) {
return ResultUtil.error("只能上传图片文件!");
}
JSONObject jsonObject = JSON.parseObject(param);
Integer id = jsonObject.getInteger("id");
String orgid = jsonObject.getString("orgid");
moudle=id+"";
Result<String> data = ossService.upload(1, moudle, file);
return data;
}
}
package cn.timer.api.controller.verify;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
/**
*
* @author longys
* @date 2022/3/30 15:35
*/
@RestController
@RequestMapping("/")
public class VerifyController {
/**
* 网页授权域名
* 验证文件
* @param response
*/
@GetMapping("/MP_verify_VohzppEKB3VfeKxw.txt")
public void verify(HttpServletResponse response){
PrintWriter out = null;
try {
out = response.getWriter();
out.write("VohzppEKB3VfeKxw");
} catch (IOException e) {
e.printStackTrace();
} finally {
out.close();
}
}
}
package cn.timer.api.controller.zpgl;
import cn.timer.api.bean.zpgl.ZpglCompany;
import cn.timer.api.config.annotation.CurrentUser;
import cn.timer.api.config.annotation.UserBean;
import cn.timer.api.config.exception.CustomException;
import cn.timer.api.utils.Result;
import cn.timer.api.utils.ResultUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.transaction.Transactional;
import java.util.List;
/**
* 招聘管理
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-18 15:14:40
*/
@Api(tags = "招聘管理")
@Transactional(rollbackOn = Exception.class)
@RestController
@RequestMapping(value = "/zpgl", produces = {"application/json"})
public class ZpglCompanyController {
/**
* 招聘-合同公司字典
*
* @param
* @return
*/
@GetMapping(value = "/conpany")
@ApiOperation(value = "1.合同公司字典", httpMethod = "GET", notes = "合同公司字典")
@ApiOperationSupport(order = 1)
public Result<Object> fail(@CurrentUser UserBean userBean) {
try {
QueryWrapper<ZpglCompany> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(ZpglCompany::getDeleteFlag, 0).eq(ZpglCompany::getOrgCode, userBean.getOrgCode());
List<ZpglCompany> zpglCompany = ZpglCompany.builder().build().selectList(queryWrapper);
return ResultUtil.data(zpglCompany, "查询成功");
} catch (Exception e) {
e.printStackTrace();
throw new CustomException("招聘-合同公司字典失败");
}
}
/**
* 招聘-添加合同公司
*
* @param
* @return
*/
@PostMapping(value = "/company/save")
@ApiOperation(value = "2.招聘-添加合同公司", httpMethod = "POST", notes = "招聘-添加合同公司")
@ApiOperationSupport(order = 2)
public Result<Object> save(@CurrentUser UserBean userBean, @RequestBody ZpglCompany zpglCompany) {
try {
zpglCompany.setCreateUserId(userBean.getEmpNum());
zpglCompany.setUpdateUserId(userBean.getEmpNum());
zpglCompany.setOrgCode(userBean.getOrgCode());
return zpglCompany.insert() ? ResultUtil.success() : ResultUtil.error();
} catch (Exception e) {
e.printStackTrace();
throw new CustomException("招聘-添加合同公司失败");
}
}
}
package cn.timer.api.controller.zpgl;
import cn.timer.api.bean.zpgl.ZpglCptk;
import cn.timer.api.bean.zpgl.ZpglDtk;
import cn.timer.api.utils.Result;
import cn.timer.api.utils.ResultUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
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;
/**
* @author longys
* @date 2022/4/14 15:48
*/
@Api(tags = "性格颜色测评")
@RestController
@RequestMapping(value = "/evaluation")
public class ZpglEvaluationController {
@ApiOperation(value = "获取测评题库", httpMethod = "GET", notes = "获取测评题库")
@RequestMapping("/get_cptk_list")
public Result<List<ZpglCptk>> getCptkList(){
List<ZpglCptk> zpglCptks = ZpglCptk.builder().build()
.selectList(new QueryWrapper<ZpglCptk>().lambda().orderByAsc(ZpglCptk::getSort));
return ResultUtil.data(zpglCptks);
}
@ApiOperation(value = "提交测评", httpMethod = "POST", notes = "提交测评")
@RequestMapping("/add_evaluation")
public Result<Object> addEvaluation(@RequestBody ZpglDtk zpglDtk){
ZpglDtk dtk = zpglDtk.selectOne(new QueryWrapper<ZpglDtk>()
.lambda().eq(ZpglDtk::getZpglRcxxId, zpglDtk.getZpglRcxxId()));
if (dtk!=null){
return ResultUtil.error("你已提交测评!");
}
try {
zpglDtk.insert();
} catch (Exception e) {
e.printStackTrace();
return ResultUtil.error();
}
return ResultUtil.success();
}
}
package cn.timer.api.controller.zpgl;
import cn.timer.api.bean.zpgl.ZpglFail;
import cn.timer.api.config.annotation.CurrentUser;
import cn.timer.api.config.annotation.UserBean;
import cn.timer.api.config.exception.CustomException;
import cn.timer.api.utils.Result;
import cn.timer.api.utils.ResultUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.*;
import javax.transaction.Transactional;
import java.util.List;
/**
* 招聘管理
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-08 15:14:40
*/
@Api(tags = "招聘管理")
@Transactional(rollbackOn = Exception.class)
@RestController
@RequestMapping(value = "/zpgl", produces = {"application/json"})
public class ZpglFailController {
/**
* 招聘-淘汰原因字典
*
* @param
* @return
*/
@GetMapping(value = "/fail")
@ApiOperation(value = "1.淘汰原因字典", httpMethod = "GET", notes = "淘汰原因字典")
@ApiOperationSupport(order = 1)
public Result<Object> fail(@CurrentUser UserBean userBean, @ApiParam("招聘状态") @RequestParam(required = false) Integer status) {
try {
QueryWrapper<ZpglFail> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(ZpglFail::getDeleteFlag, 0).eq(ZpglFail::getOrgCode, userBean.getOrgCode()).eq(ZpglFail::getZpglRcxxStatus, status);
List<ZpglFail> zpglFail = ZpglFail.builder().build().selectList(queryWrapper);
return ResultUtil.data(zpglFail, "查询成功");
} catch (Exception e) {
e.printStackTrace();
throw new CustomException("招聘-淘汰原因字典失败");
}
}
/**
* 招聘-添加淘汰原因
*
* @param
* @return
*/
@PostMapping(value = "/save")
@ApiOperation(value = "2.招聘-添加淘汰原因", httpMethod = "POST", notes = "招聘-添加淘汰原因")
@ApiOperationSupport(order = 2)
public Result<Object> save(@CurrentUser UserBean userBean, @RequestBody ZpglFail zpglFail) {
try {
zpglFail.setCreateUserId(userBean.getEmpNum());
zpglFail.setUpdateUserId(userBean.getEmpNum());
zpglFail.setOrgCode(userBean.getOrgCode());
return zpglFail.insert() ? ResultUtil.success() : ResultUtil.error();
} catch (Exception e) {
e.printStackTrace();
throw new CustomException("招聘-添加淘汰原因失败");
}
}
}
package cn.timer.api.controller.zpgl;
import cn.timer.api.bean.clazz.SysRegion;
import cn.timer.api.bean.zpgl.ZpglGzdd;
import cn.timer.api.bean.zpgl.ZpglZj;
import cn.timer.api.config.annotation.CurrentUser;
import cn.timer.api.config.annotation.UserBean;
import cn.timer.api.config.exception.CustomException;
import cn.timer.api.controller.zpgl.sevice.ZpglService;
import cn.timer.api.utils.Result;
import cn.timer.api.utils.ResultUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import javax.transaction.Transactional;
import java.util.List;
/**
* 招聘管理
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-18 15:14:40
*/
@Api(tags = "招聘管理")
@Transactional(rollbackOn = Exception.class)
@RestController
@RequestMapping(value = "/zpgl", produces = {"application/json"})
public class ZpglGzddController {
@Autowired
private ZpglService zpglService;
/**
* 招聘-工作地点
*
* @param
* @return
*/
@GetMapping(value = "/gzdd")
@ApiOperation(value = "1.工作地点字典", httpMethod = "GET", notes = "工作地点字典")
@ApiOperationSupport(order = 1)
public Result<Object> fail(@CurrentUser UserBean userBean) {
try {
QueryWrapper<ZpglGzdd> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(ZpglGzdd::getDeleteFlag, 0).eq(ZpglGzdd::getOrgCode, userBean.getOrgCode());
List<ZpglGzdd> zpglGzdd = ZpglGzdd.builder().build().selectList(queryWrapper);
zpglGzdd.forEach(zg -> {
zg.setGzddName(zg.getProvince()+"/"+zg.getCity()+"/"+zg.getDistrict()+"/"+zg.getGzddName());
});
return ResultUtil.data(zpglGzdd, "查询成功");
} catch (Exception e) {
e.printStackTrace();
throw new CustomException("招聘-工作地点失败");
}
}
/**
* 招聘-添加职级
*
* @param
* @return
*/
@PostMapping(value = "/gzdd/save")
@ApiOperation(value = "2.招聘-添加工作地点", httpMethod = "POST", notes = "招聘-添加工作地点")
@ApiOperationSupport(order = 2)
public Result<Object> save(@CurrentUser UserBean userBean, @RequestBody ZpglGzdd zpglGzdd) {
try {
if(StringUtils.isEmpty(zpglGzdd.getDistrictId()) || zpglGzdd.getDistrictId().length() <= 0){
return ResultUtil.error();
}
SysRegion district = zpglService.getSysRegion(Integer.parseInt(zpglGzdd.getDistrictId()));
if (district != null) {
zpglGzdd.setDistrict(district.getRegionName());
SysRegion city = zpglService.getSysRegion(district.getRegionCode());
zpglGzdd.setCity(city.getRegionName());
zpglGzdd.setCityId(city.getKeyId().toString());
SysRegion province = zpglService.getSysRegion(city.getRegionCode());
zpglGzdd.setProvinceId(province.getKeyId().toString());
zpglGzdd.setProvince(province.getRegionName());
}
zpglGzdd.setCreateUserId(userBean.getEmpNum());
zpglGzdd.setUpdateUserId(userBean.getEmpNum());
zpglGzdd.setOrgCode(userBean.getOrgCode());
return zpglGzdd.insert() ? ResultUtil.success() : ResultUtil.error();
} catch (Exception e) {
e.printStackTrace();
throw new CustomException("招聘-添加职级失败");
}
}
}
package cn.timer.api.controller.zpgl;
import cn.timer.api.aspect.lang.annotation.Log;
import cn.timer.api.aspect.lang.enums.BusinessType;
import cn.timer.api.bean.zpgl.*;
import cn.timer.api.config.enuminterface.JxglEnumInterface;
import cn.timer.api.controller.zpgl.sevice.ZpglMslcLogService;
import cn.timer.api.dto.zpgl.InterviewApplicationDto;
import cn.timer.api.utils.DateFormatUtils;
import cn.timer.api.utils.Result;
import cn.timer.api.utils.ResultUtil;
import cn.timer.api.utils.ZpglMessageTemplate;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.transaction.Transactional;
import java.util.Date;
import java.util.List;
@Api(tags = "招聘管理")
@Transactional(rollbackOn = Exception.class)
@RestController
@RequestMapping(value = "/zpgl/h5")
public class ZpglH5Controller {
@Autowired
private ZpglMslcLogService zpglMslcLogService;
/**
* 添加面试申请
* @param
* @return
*/
@RequestMapping("/add_interview_application")
@ApiOperation(value = "添加面试申请", httpMethod = "POST", notes = "添加面试申请")
@Log(title = "addInterviewApplication", businessType = BusinessType.INSERT_UPDATE)
public Result<Object> addInterviewApplication(@Validated @RequestBody InterviewApplicationDto dto) {
System.out.println(dto);
ZpglRcxx zpglRcxx = new ZpglRcxx();
//复制到 ZpglRcxx 实体对象
BeanUtils.copyProperties(dto,zpglRcxx);
// 计算工作年限
if(!StringUtils.isEmpty(zpglRcxx.getWorkBeginYear())){
zpglRcxx.setWorkyears(DateFormatUtils.yearCompare(zpglRcxx.getWorkBeginYear(),new Date()));
}
zpglRcxx.insertOrUpdate();
if(StringUtils.isEmpty(zpglRcxx.getId())){
// 新增人才信息 初始化流程记录
ZpglMslcLog zpglMslcLog = new ZpglMslcLog();
zpglMslcLog.setZpglRcxxId(zpglRcxx.getId());
zpglMslcLog.setUserId(0);
zpglMslcLog.setUserName("");
zpglMslcLog.setZpglRcxxStatus(JxglEnumInterface.MslcLogStatus.OTHER.getType());
zpglMslcLog.setDetail(ZpglMessageTemplate.SYS_ADD);
zpglMslcLogService.addZpglMslcLog(zpglMslcLog);
}
//添加紧急联系人
if(dto.getZpglRcxxLxxxb() != null){
ZpglRcxxLxxxb zpglRcxxLxxxb = dto.getZpglRcxxLxxxb();
zpglRcxxLxxxb.setZpglRcxxId(zpglRcxx.getId());
zpglRcxxLxxxb.insertOrUpdate();
}
//新增/修改工作经验
if(dto.getZpglRcxxExperience() !=null && dto.getZpglRcxxExperience().size()>0){
List<ZpglRcxxExperience> experiences = dto.getZpglRcxxExperience();
for(ZpglRcxxExperience experience : experiences){
if(experience.getCompany() != null){
experience.setZpglRcxxId(zpglRcxx.getId());
experience.insertOrUpdate();
}
}
}
//新增/修改教育经历
if(dto.getZpglRcxxStudy() !=null && dto.getZpglRcxxStudy().size()>0){
List<ZpglRcxxStudy> zpglRcxxStudys = dto.getZpglRcxxStudy();
for(ZpglRcxxStudy study : zpglRcxxStudys){
if(study.getSchoolName() != null){
study.setZpglRcxxId(zpglRcxx.getId());
study.insertOrUpdate();
}
}
}
//新增/修改家庭资料
if(dto.getZpglRcxxJtzls() !=null && dto.getZpglRcxxJtzls().size()>0){
List<ZpglRcxxJtzl> zpglRcxxJtzls = dto.getZpglRcxxJtzls();
for(ZpglRcxxJtzl jtzl : zpglRcxxJtzls){
if(jtzl.getName() != null){
jtzl.setZpglRcxxId(zpglRcxx.getId());
jtzl.insertOrUpdate();
}
}
}
return ResultUtil.success();
}
/**
* 查询面试申请信息
* @param
* @return
*/
@RequestMapping("/interview_application_info/{mobile}")
@ApiOperation(value = "查询面试申请信息", httpMethod = "GET", notes = "查询面试申请信息")
@Log(title = "interviewApplicationIofo", businessType = BusinessType.INSERT_UPDATE)
public Result<InterviewApplicationDto> interviewApplicationIofo(@PathVariable String mobile) {
System.out.println(mobile);
if(mobile == null || "".equals(mobile)){
return ResultUtil.error("手机号不能为空");
}
InterviewApplicationDto dto = new InterviewApplicationDto();
List<ZpglRcxx> zpglRcxxes = ZpglRcxx.builder().build()
.selectList(new QueryWrapper<ZpglRcxx>().lambda()
.eq(ZpglRcxx::getMobile, mobile));
if(zpglRcxxes.size() == 0){
return ResultUtil.error("没有简历信息");
}
ZpglRcxx zpglRcxx = zpglRcxxes.get(0);
//复制到dto
BeanUtils.copyProperties(zpglRcxx,dto);
//联系人信息
List<ZpglRcxxLxxxb> zpglRcxxLxxxbs = ZpglRcxxLxxxb.builder().build().selectList(new QueryWrapper<ZpglRcxxLxxxb>()
.lambda().select(ZpglRcxxLxxxb::getId,ZpglRcxxLxxxb::getLinkName,ZpglRcxxLxxxb::getLinkMobile)
.eq(ZpglRcxxLxxxb::getZpglRcxxId, zpglRcxx.getId()));
if(zpglRcxxLxxxbs.size()>0)
dto.setZpglRcxxLxxxb(zpglRcxxLxxxbs.get(0));
//工作经验
List<ZpglRcxxExperience> experiences = ZpglRcxxExperience.builder().build()
.selectList(new QueryWrapper<ZpglRcxxExperience>()
.lambda().eq(ZpglRcxxExperience::getZpglRcxxId, zpglRcxx.getId()));
if (experiences.size()>0)
dto.setZpglRcxxExperience(experiences);
//教育经历
List<ZpglRcxxStudy> study = ZpglRcxxStudy.builder().build()
.selectList(new QueryWrapper<ZpglRcxxStudy>()
.lambda().eq(ZpglRcxxStudy::getZpglRcxxId, zpglRcxx.getId()));
if (study.size()>0)
dto.setZpglRcxxStudy(study);
//家庭资料
List<ZpglRcxxJtzl> jtzl = ZpglRcxxJtzl.builder().build()
.selectList(new QueryWrapper<ZpglRcxxJtzl>()
.lambda().eq(ZpglRcxxJtzl::getZpglRcxxId, zpglRcxx.getId()));
if (jtzl.size()>0)
dto.setZpglRcxxJtzls(jtzl);
return ResultUtil.data(dto,"查询成功");
}
}
package cn.timer.api.controller.zpgl;
import cn.timer.api.bean.zpgl.ZpglMslcLog;
import cn.timer.api.config.annotation.CurrentUser;
import cn.timer.api.config.annotation.UserBean;
import cn.timer.api.config.enuminterface.JxglEnumInterface;
import cn.timer.api.config.exception.CustomException;
import cn.timer.api.dto.zpgl.ZpglMslcLogDto;
import cn.timer.api.utils.Result;
import cn.timer.api.utils.ResultUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.transaction.Transactional;
import java.util.List;
/**
* 招聘管理
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-08 15:14:40
*/
@Api(tags = "招聘管理")
@Transactional(rollbackOn = Exception.class)
@RestController
@RequestMapping(value = "/zpgl", produces = {"application/json"})
@Slf4j
public class ZpglMslcController {
/**
* 招聘-招聘中
*
* @param
* @return
*/
@GetMapping(value = "/mslc_list")
@ApiOperation(value = "1.招聘管理面试流程记录", httpMethod = "GET", notes = "招聘管理面试流程记录")
@ApiOperationSupport(order = 1)
public Result<Object> mslcList(@CurrentUser UserBean userBean,
@ApiParam("人才信息ID") @RequestParam(required = false) Integer zpglRcxxId,
@ApiParam("状态") @RequestParam(required = false) Integer zpglRcxxStatus) {
try {
QueryWrapper<ZpglMslcLog> queryWrapper = new QueryWrapper<ZpglMslcLog>();
queryWrapper.lambda().eq(ZpglMslcLog::getZpglRcxxId,zpglRcxxId);
// 0全部类型,1状态变更,2面试,3Offer,4讨论,5其他
// JxglEnumInterface.MslcLogStatus
if(zpglRcxxStatus>0){
queryWrapper.lambda().eq(ZpglMslcLog::getZpglRcxxStatus,zpglRcxxStatus);
}
queryWrapper.lambda().orderByDesc(ZpglMslcLog::getCreateTime);
List<ZpglMslcLog> zpglMslcLogs = ZpglMslcLog.builder().build().selectList(queryWrapper);
return ResultUtil.data(zpglMslcLogs, "搜索成功");
} catch (Exception e) {
e.printStackTrace();
throw new CustomException("招聘-招聘列表失败");
}
}
/**
* 招聘-添加讨论
*
* @param
* @return
*/
@PostMapping(value = "/mslc/save")
@ApiOperation(value = "2.招聘-添加讨论", httpMethod = "POST", notes = "招聘-添加讨论")
@ApiOperationSupport(order = 2)
public Result<Object> save(@CurrentUser UserBean userBean, @RequestBody @Validated ZpglMslcLogDto zpglMslcLogDto) {
try {
ZpglMslcLog zpglMslcLog = ZpglMslcLog.builder().build();
BeanUtils.copyProperties(zpglMslcLogDto, zpglMslcLog);
zpglMslcLog.setUserId(userBean.getEmpNum());
zpglMslcLog.setUserName(userBean.getQyzxEmpLogin().getUsername());
zpglMslcLog.setDetail(userBean.getQyzxEmpLogin().getUsername()+" "+zpglMslcLogDto.getDetail());
zpglMslcLog.setZpglRcxxStatus(JxglEnumInterface.MslcLogStatus.DISCUSS.getType());
return zpglMslcLog.insert() ? ResultUtil.data(zpglMslcLog) : ResultUtil.error();
} catch (Exception e) {
e.printStackTrace();
throw new CustomException("招聘-添加讨论");
}
}
}
package cn.timer.api.controller.zpgl;
import cn.timer.api.bean.qyzx.QyzxEmpLogin;
import cn.timer.api.bean.zpgl.ZpglWxgzptEmpRcxx;
import cn.timer.api.config.annotation.CurrentUser;
import cn.timer.api.config.annotation.UserBean;
import cn.timer.api.config.exception.CustomException;
import cn.timer.api.utils.Result;
import cn.timer.api.utils.ResultUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.transaction.Transactional;
/**
* 招聘管理
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-04-25 15:14:40
*/
@Api(tags = "招聘管理")
@Transactional(rollbackOn = Exception.class)
@RestController
@RequestMapping(value = "/zpgl", produces = {"application/json"})
@Slf4j
public class ZpglWxgzptEmpRcxxController {
/**
* 招聘-检测用户是否关注并且注册 8小时企业管理 微信公众号
*
* @param
* @return
*/
@GetMapping(value = "/check_user_wechat")
@ApiOperation(value = "1.检测用户是否关注并且注册 8小时企业管理 微信公众号", httpMethod = "GET", notes = "招聘列表")
@ApiOperationSupport(order = 1)
public Result<Object> checkUserWechat(@CurrentUser UserBean userBean,
@ApiParam("面试官ID") @RequestParam(required = false) Integer interviewerId,
@ApiParam("面试者手机号") @RequestParam(required = false) String mobile) {
try {
int interviewer = 0,interviewee=0;
ZpglWxgzptEmpRcxx zpglWxgzptEmpRcxx = ZpglWxgzptEmpRcxx.builder().build().selectOne(
new QueryWrapper<ZpglWxgzptEmpRcxx>().select("openid").lambda().eq(ZpglWxgzptEmpRcxx::getMobile,mobile)
);
// 面试者已绑定
if(!StringUtils.isEmpty(zpglWxgzptEmpRcxx) && !StringUtils.isEmpty(zpglWxgzptEmpRcxx.getOpenid()) && zpglWxgzptEmpRcxx.getOpenid().length()>0){
interviewee = 1;
}
QyzxEmpLogin qyzxEmpLogin = QyzxEmpLogin.builder().id(interviewerId).build().selectById();
ZpglWxgzptEmpRcxx zpglWxgzptEmpRcxxee = ZpglWxgzptEmpRcxx.builder().build().selectOne(
new QueryWrapper<ZpglWxgzptEmpRcxx>().select("openid").lambda().eq(ZpglWxgzptEmpRcxx::getMobile,qyzxEmpLogin.getPhone())
);
// 面试官已绑定
if(!StringUtils.isEmpty(zpglWxgzptEmpRcxxee) && !StringUtils.isEmpty(zpglWxgzptEmpRcxxee.getOpenid()) && zpglWxgzptEmpRcxxee.getOpenid().length()>0){
interviewer = 1;
}
if(interviewer==0 && interviewee==0){
return ResultUtil.data(1,"面试官和候选人未绑定公众号,请提醒面试官、候选人关注8小时企业管理公众号!");
}
if(interviewer==0){
return ResultUtil.data(1,"面试官未绑定公众号,请提醒面试官关注8小时企业管理公众号!");
}
if(interviewee==0){
return ResultUtil.data(1,"候选人未绑定公众号,请提醒候选人关注8小时企业管理公众号!");
}
return ResultUtil.data(0,"都绑定了");
} catch (Exception e) {
e.printStackTrace();
throw new CustomException("招聘-检测失败");
}
}
}
package cn.timer.api.controller.zpgl;
import cn.timer.api.bean.zpgl.ZpglZj;
import cn.timer.api.config.annotation.CurrentUser;
import cn.timer.api.config.annotation.UserBean;
import cn.timer.api.config.exception.CustomException;
import cn.timer.api.utils.Result;
import cn.timer.api.utils.ResultUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.transaction.Transactional;
import java.util.List;
/**
* 招聘管理
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-18 15:14:40
*/
@Api(tags = "招聘管理")
@Transactional(rollbackOn = Exception.class)
@RestController
@RequestMapping(value = "/zpgl", produces = {"application/json"})
public class ZpglZjController {
/**
* 招聘-职级字典
*
* @param
* @return
*/
@GetMapping(value = "/zj")
@ApiOperation(value = "1.职级字典", httpMethod = "GET", notes = "职级字典")
@ApiOperationSupport(order = 1)
public Result<Object> fail(@CurrentUser UserBean userBean) {
try {
QueryWrapper<ZpglZj> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(ZpglZj::getDeleteFlag, 0).eq(ZpglZj::getOrgCode, userBean.getOrgCode());
List<ZpglZj> zpglCompany = ZpglZj.builder().build().selectList(queryWrapper);
return ResultUtil.data(zpglCompany, "查询成功");
} catch (Exception e) {
e.printStackTrace();
throw new CustomException("招聘-职级字典失败");
}
}
/**
* 招聘-添加职级
*
* @param
* @return
*/
@PostMapping(value = "/zj/save")
@ApiOperation(value = "2.招聘-添加职级", httpMethod = "POST", notes = "招聘-添加职级")
@ApiOperationSupport(order = 2)
public Result<Object> save(@CurrentUser UserBean userBean, @RequestBody ZpglZj zpglZj) {
try {
zpglZj.setCreateUserId(userBean.getEmpNum());
zpglZj.setUpdateUserId(userBean.getEmpNum());
zpglZj.setOrgCode(userBean.getOrgCode());
return zpglZj.insert() ? ResultUtil.success() : ResultUtil.error();
} catch (Exception e) {
e.printStackTrace();
throw new CustomException("招聘-添加职级失败");
}
}
}
package cn.timer.api.controller.zpgl;
import cn.timer.api.bean.zpgl.ZpglZpqd;
import cn.timer.api.config.annotation.CurrentUser;
import cn.timer.api.config.annotation.UserBean;
import cn.timer.api.config.exception.CustomException;
import cn.timer.api.utils.Result;
import cn.timer.api.utils.ResultUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.transaction.Transactional;
import java.util.List;
/**
* 招聘管理
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-28 15:14:40
*/
@Api(tags = "招聘管理")
@Transactional(rollbackOn = Exception.class)
@RestController
@RequestMapping(value = "/zpgl", produces = {"application/json"})
public class ZpglZpqdController {
/**
* 招聘-招聘渠道字典
*
* @param
* @return
*/
@GetMapping(value = "/zpqd/{OrgCode}")
@ApiOperation(value = "1.招聘渠道字典", httpMethod = "GET", notes = "招聘渠道字典")
@ApiOperationSupport(order = 1)
public Result<Object> zpqd(@PathVariable Integer OrgCode) {
try {
QueryWrapper<ZpglZpqd> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(ZpglZpqd::getDeleteFlag, 0).eq(ZpglZpqd::getOrgCode, OrgCode);
List<ZpglZpqd> zpglZpqd = ZpglZpqd.builder().build().selectList(queryWrapper);
return ResultUtil.data(zpglZpqd, "查询成功");
} catch (Exception e) {
e.printStackTrace();
throw new CustomException("招聘-招聘渠道字典失败");
}
}
/**
* 招聘-添加招聘渠道
*
* @param
* @return
*/
@PostMapping(value = "/zpqd/save")
@ApiOperation(value = "2.招聘-添加招聘渠道", httpMethod = "POST", notes = "招聘-添加招聘渠道")
@ApiOperationSupport(order = 2)
public Result<Object> save(@CurrentUser UserBean userBean, @RequestBody ZpglZpqd zpglZpqd) {
try {
zpglZpqd.setCreateUserId(userBean.getEmpNum());
zpglZpqd.setUpdateUserId(userBean.getEmpNum());
zpglZpqd.setOrgCode(userBean.getOrgCode());
return zpglZpqd.insert() ? ResultUtil.success() : ResultUtil.error();
} catch (Exception e) {
e.printStackTrace();
throw new CustomException("招聘-添加招聘渠道失败");
}
}
}
package cn.timer.api.controller.zpgl;
import cn.timer.api.bean.zpgl.*;
import cn.timer.api.config.annotation.CurrentUser;
import cn.timer.api.config.annotation.UserBean;
import cn.timer.api.config.exception.CustomException;
import cn.timer.api.controller.kqgl.atttimer.RealTimeUpdate;
import cn.timer.api.controller.zpgl.sevice.ZpglService;
import cn.timer.api.dao.kqgl.UserEquiRelationMapper;
import cn.timer.api.dao.kqmk.KqglAssoKqzdkfsMapper;
import cn.timer.api.dao.qyzx.QyzxEmpLoginMapper;
import cn.timer.api.dao.yggl.YgglMainEmpMapper;
import cn.timer.api.dao.zpgl.ZpglRcxxMapper;
import cn.timer.api.dto.zpgl.ZpglZwxxAddUpdateDto;
import cn.timer.api.dto.zpgl.ZpglZwxxDto;
import cn.timer.api.utils.Result;
import cn.timer.api.utils.ResultUtil;
import cn.timer.api.utils.query.BaseQuery;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.yulichang.query.MPJQueryWrapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import javax.transaction.Transactional;
import java.util.List;
/**
* 招聘管理-招聘职位
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-22 15:14:40
*/
@Api(tags = "招聘管理")
@Transactional(rollbackOn = Exception.class)
@RestController
@RequestMapping(value = "/zpzw", produces = {"application/json"})
@Slf4j
public class ZpglZwxxController {
/**
* 招聘职位列表
*
* @param
* @return
*/
@GetMapping(value = "/list")
@ApiOperation(value = "1.招聘职位列表", httpMethod = "GET", notes = "招聘职位表")
@ApiOperationSupport(order = 1)
public Result<Object> recruit(@CurrentUser UserBean userBean, BaseQuery baseQuery,
@ApiParam("搜索关键字") @RequestParam(required = false) String query,
@ApiParam("职位ID") @RequestParam(required = false) Integer zpglZwxxId,
@ApiParam("状态") @RequestParam(required = false) Integer status) {
try {
Page<ZpglZwxx> page = new Page<ZpglZwxx>(baseQuery.getPageNum(), baseQuery.getPageSize());
MPJQueryWrapper<ZpglZwxx> queryWrapper = new MPJQueryWrapper<>();
queryWrapper.selectAll(ZpglZwxx.class).select("zg.gzdd_name","zg.province","zg.district","zg.city")
.leftJoin("zpgl_gzdd zg on t.zpgl_gzdd_id = zg.id");
queryWrapper.eq("t.org_code", userBean.getOrgCode()).eq("t.delete_flag",0);
if (!StringUtils.isEmpty(zpglZwxxId) && zpglZwxxId > 0) {
queryWrapper.eq("t.id", zpglZwxxId);
}
if (!StringUtils.isEmpty(query)) {
queryWrapper.like("t.name", query);
}
queryWrapper.eq("t.status", status).orderByDesc("t.create_time");
IPage<ZpglZwxx> zpglZwxxPage = ZpglZwxx.builder().build().selectPage(page, queryWrapper);
List<ZpglZwxx> zpglRcxxs = page.getRecords();
zpglZwxxPage.getCurrent();
zpglZwxxPage.getPages();
zpglZwxxPage.getTotal();
zpglZwxxPage.getSize();
return ResultUtil.data(zpglZwxxPage, zpglRcxxs, "搜索成功");
} catch (Exception e) {
e.printStackTrace();
throw new CustomException("获取招聘职位列表失败");
}
}
/**
* 招聘职位-停止招聘
*
* @param
* @return
*/
@PostMapping(value = "/edit")
@ApiOperation(value = "2.招聘职位-停止招聘", httpMethod = "POST", notes = "招聘职位-停止招聘")
@ApiOperationSupport(order = 2)
public Result<Object> edit(@CurrentUser UserBean userBean, @RequestBody ZpglZwxxDto zpglZwxxDto) {
try {
return ZpglZwxx.builder().id(zpglZwxxDto.getId()).status(zpglZwxxDto.getStatus()).userId(userBean.getEmpNum()).userName(userBean.getQyzxEmpLogin().getUsername()).build().updateById()?ResultUtil.success("操作成功"):ResultUtil.error("操作失败");
} catch (Exception e) {
e.printStackTrace();
throw new CustomException("招聘-删除人才信息失败");
}
}
/**
* 招聘职位-删除
*
* @param
* @return
*/
@PostMapping(value = "/delete")
@ApiOperation(value = "3.招聘职位-删除", httpMethod = "POST", notes = "招聘职位-删除")
@ApiOperationSupport(order = 3)
public Result<Object> delete(@CurrentUser UserBean userBean, @RequestBody ZpglZwxxDto zpglZwxxDto) {
try {
return ZpglZwxx.builder().id(zpglZwxxDto.getId()).deleteFlag(zpglZwxxDto.getDeleteFlag()).userId(userBean.getEmpNum()).userName(userBean.getQyzxEmpLogin().getUsername()).build().updateById()?ResultUtil.success("操作成功"):ResultUtil.error("操作失败");
} catch (Exception e) {
e.printStackTrace();
throw new CustomException("招聘-删除人才信息失败");
}
}
/**
* 招聘职位-添加
*
* @param
* @return
*/
@PostMapping(value = "/add")
@ApiOperation(value = "4.招聘职位-添加", httpMethod = "POST", notes = "招聘职位-添加")
@ApiOperationSupport(order = 4)
public Result<Object> add(@CurrentUser UserBean userBean, @RequestBody ZpglZwxxAddUpdateDto zpglZwxxAddUpdateDto) {
try {
ZpglZwxx zpglZwxx = new ZpglZwxx();
BeanUtils.copyProperties(zpglZwxxAddUpdateDto,zpglZwxx);
zpglZwxx.setUserId(userBean.getEmpNum());
zpglZwxx.setUserName(userBean.getQyzxEmpLogin().getUsername());
zpglZwxx.setStatus(1);
zpglZwxx.setOrgCode(userBean.getOrgCode().toString());
return zpglZwxx.insertOrUpdate()?ResultUtil.success("操作成功"):ResultUtil.error("操作失败");
} catch (Exception e) {
e.printStackTrace();
throw new CustomException("招招聘职位-添加失败");
}
}
}
package cn.timer.api.controller.zpgl.sevice;
import cn.timer.api.bean.zpgl.ZpglMslcLog;
/**
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022/3/14
*/
public interface ZpglMslcLogService {
/**
* 添加面试流程记录
* @param zpglMslcLog
* @return
*/
boolean addZpglMslcLog(ZpglMslcLog zpglMslcLog);
}
package cn.timer.api.controller.zpgl.sevice;
import cn.timer.api.bean.zpgl.ZpglMslcLog;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
/**
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022/3/14
*/
@Service
@Transactional(rollbackOn = Exception.class)
public class ZpglMslcLogServiceImpl implements ZpglMslcLogService {
@Override
public boolean addZpglMslcLog(ZpglMslcLog zpglMslcLog) {
return zpglMslcLog.insert();
}
}
package cn.timer.api.controller.zpgl.sevice;
import cn.timer.api.bean.email.SendMessage;
import cn.timer.api.bean.zpgl.ZpglRcxxOffer;
import cn.timer.api.utils.DateFormatUtils;
import cn.timer.api.utils.ZpglMessageTemplate;
import cn.timer.api.utils.email.EmailUtils;
import com.aliyun.tea.utils.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.mail.javamail.JavaMailSender;
import java.util.Date;
public class ZpglSendMessageThread implements Runnable {
public JavaMailSender mailSender;
private ZpglRcxxOffer zpglRcxxOffer;
public ZpglSendMessageThread(JavaMailSender mailSender, ZpglRcxxOffer zpglRcxxOffer) {
this.mailSender = mailSender;
this.zpglRcxxOffer = zpglRcxxOffer;
}
@Override
public void run() {
try {
EmailUtils.sendThymeleafMail(
mailSender,
ZpglMessageTemplate.print(ZpglMessageTemplate.OFFER_TEMPLATE, new String[]{
zpglRcxxOffer.getRcxxName(),
zpglRcxxOffer.getCompanyName(),
zpglRcxxOffer.getBumen(),
zpglRcxxOffer.getGangwei(),
DateFormatUtils.tranDate(zpglRcxxOffer.getRzTime(), DateFormatUtils.YYYYMMDD),
zpglRcxxOffer.getLinkName(),
StringUtils.isEmpty(zpglRcxxOffer.getLinkPhone()) ? "" : zpglRcxxOffer.getLinkPhone(),
StringUtils.isEmpty(zpglRcxxOffer.getLinkEmail()) ? "" : zpglRcxxOffer.getLinkEmail()}),
zpglRcxxOffer.getTitle(),
new String[]{zpglRcxxOffer.getReceiverEmail()});
SendMessage sendMessage = SendMessage.builder().build();
BeanUtils.copyProperties(zpglRcxxOffer, sendMessage);
sendMessage.setCreatedTime(new Date());
sendMessage.insert();
} catch (Exception e) {
e.printStackTrace();
}
}
}
package cn.timer.api.controller.zpgl.sevice;
import cn.timer.api.bean.clazz.SysRegion;
import cn.timer.api.config.annotation.UserBean;
import cn.timer.api.dto.zpgl.ImportCandidateDto;
import cn.timer.api.dto.zpgl.ZpglRcxxDto;
import cn.timer.api.utils.Result;
import org.springframework.web.multipart.MultipartFile;
/**
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022/3/18
*/
public interface ZpglService {
/**
* 招聘-变更人才信息状态
* 添加面试流程记录
* @param userBean zpglRcxxDto
* @return
*/
boolean updateZpglRcxx(UserBean userBean, ZpglRcxxDto zpglRcxxDto);
/**
* 地址字典
* @param keyId
* @return
*/
SysRegion getSysRegion(Integer keyId);
/**
* BaiduTicResume
* @param file
* @return
*/
Result<Object> addResumeImportCandidate(UserBean userBean, MultipartFile file, ImportCandidateDto importCandidateDto);
/**
* ResumeSDK
* @param file
* @return
*/
Result<Object> addCandidateByResumeSDK(UserBean userBean, MultipartFile file, ImportCandidateDto importCandidateDto);
/**
* 招聘-更改招聘职位
* 添加面试流程记录
* @param userBean zpglRcxxDto
* @return
*/
boolean updateZpglRcxxZwxx(UserBean userBean, ZpglRcxxDto zpglRcxxDto);
/**
* 入职维护
* 职位信息已入职人数+1
* 招聘-变更人才信息状态
* 添加面试流程记录
* 维护微信公众平台表
* @param userBean
* @param zpglRcxxDto
* @return
*/
boolean updateZpglOther(UserBean userBean, ZpglRcxxDto zpglRcxxDto,Integer userId);
}
package cn.timer.api.controller.zpgl.sevice;
import cn.timer.api.dto.template.InterviewNotice;
import java.util.Map;
/**
* @author longys
* @date 2022/3/25 18:08
*/
public interface ZpglWxgzptService {
/**
* 添加消息队列
* @param map
* @return
*/
String addMessageQueue(Map<String,Object> map);
/**
* 安排面试 通知面试官、面试者
* 添加消息队列
* @param interviewNotice
* @return
*/
String addInterviewMessageQueue(InterviewNotice interviewNotice);
/**
* 发起应聘登记 or 测评
* 添加消息队列
* @param interviewNotice
* @return
*/
String sendApplyOrCePin(InterviewNotice interviewNotice);
}
package cn.timer.api.controller.zpgl.sevice;
import cn.hutool.http.HttpUtil;
import cn.timer.api.bean.wechat.MessageTemplate;
import cn.timer.api.dto.template.InterviewNotice;
import cn.timer.api.dto.template.TemplateData;
import cn.timer.api.dto.wxgzh.MessageQueueDto;
import com.alibaba.fastjson.JSON;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* @author longys
* @date 2022/3/25 18:08
*/
@Slf4j
@Service
@Transactional(rollbackOn = Exception.class)
public class ZpglWxgzptServiceImpl implements ZpglWxgzptService {
@Value("${youling.serverUrl}")
private String serverUrl;
@Override
public String addMessageQueue(Map<String, Object> map) {
return HttpUtil.post(serverUrl + "/wxgzh/addMessageQueue", map);
}
@Override
public String addInterviewMessageQueue(InterviewNotice interviewNotice) {
//消息队列对象
MessageQueueDto mqd = new MessageQueueDto();
BeanUtils.copyProperties(interviewNotice, mqd);
/** 模板消息内容 start */
List<TemplateData> templateData = new ArrayList<>();
// 内容
TemplateData key1 = new TemplateData("first", interviewNotice.getContentStr(), "#000000");
templateData.add(key1);
// 面试职位
TemplateData key2 = new TemplateData("keyword1", interviewNotice.getZpglZwxxName(), "#000000");
templateData.add(key2);
// 面试时间
TemplateData key3 = new TemplateData("keyword2", interviewNotice.getInterviewTime(), "#000000");
templateData.add(key3);
// 备注
TemplateData key4 = new TemplateData("remark", interviewNotice.getRemark(), "#000000");
templateData.add(key4);
//数据处理成固定好的json格式
String content = mqd.getContentJson(templateData);
mqd.setContent(content);
/** 模板消息内容 end */
Map map = JSON.parseObject(JSON.toJSONString(mqd), Map.class);
return HttpUtil.post(serverUrl + "/wxgzh/addMessageQueue", map);
}
@Override
public String sendApplyOrCePin(InterviewNotice interviewNotice) {
//消息队列对象
MessageQueueDto mqd = new MessageQueueDto();
BeanUtils.copyProperties(interviewNotice, mqd);
/** 模板消息内容 start */
List<TemplateData> templateData = new ArrayList<>();
// 内容
TemplateData key = new TemplateData("first", interviewNotice.getContentStr(), "#000000");
templateData.add(key);
// 应聘职位
TemplateData key1 = new TemplateData("keyword1", interviewNotice.getZpglZwxxName(), "#000000");
templateData.add(key1);
// 通知内容
TemplateData key2 = new TemplateData("keyword2", interviewNotice.getContentNotice(), "#000000");
templateData.add(key2);
// 通知人
TemplateData key3 = new TemplateData("keyword3", interviewNotice.getNoticeName(), "#000000");
templateData.add(key3);
// 通知时间
TemplateData key4 = new TemplateData("keyword4", interviewNotice.getNowTime(), "#000000");
templateData.add(key4);
// 备注
TemplateData remark = new TemplateData("remark", interviewNotice.getRemark(), "#000000");
templateData.add(remark);
//数据处理成固定好的json格式
String content = mqd.getContentJson(templateData);
mqd.setContent(content);
/** 模板消息内容 end */
Map map = JSON.parseObject(JSON.toJSONString(mqd), Map.class);
return HttpUtil.post(serverUrl + "/wxgzh/addMessageQueue", map);
}
}
package cn.timer.api.dao.yggl;
import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import cn.timer.api.dto.yggl.YgmzDto;
/**
* 民族表
* @author Tang 2019-11-15
*/
@Repository
public interface YgMzDtoMapper extends BaseMapper<YgmzDto> {
}
package cn.timer.api.dao.clazz;
import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import cn.timer.api.bean.clazz.NationClass;
/**
* 民族表
* @author Tang 2019-11-15
*/
@Repository
public interface NationClassMapper extends BaseMapper<NationClass> {
}
......@@ -19,7 +19,7 @@ import cn.timer.api.dto.zzgl.DepartmentStaffDto;
/**
* 员工档案+统计图查询
*
*
* @author dsc 2019-11-23
*/
@Repository
......@@ -30,17 +30,17 @@ public interface YgglMainEmpMapper extends BaseMapper<YgglMainEmp> {
* @return
*/
List<YgbintuDto> rsybp(Integer orgCode);
/**
* 查询当月离职人数
* @param userBean
* @param userBean
* @return
*/
Integer benyueLz(Integer orgCode);
/**
* 查询当月转正人数
* @param userBean
* @param userBean
* @return
*/
Integer benyueZz(Integer orgCode);
......@@ -49,75 +49,75 @@ public interface YgglMainEmpMapper extends BaseMapper<YgglMainEmp> {
* @param userBean
* @return
*/
List<YgQueryDto> queryEmpMessage(@Param("orgCode") Integer orgCode,@Param("isInsure")Integer isInsure);
List<YgQueryDto> queryEmpMessage(@Param("orgCode") Integer orgCode);
/**
* 查询在职员工(试用员工人数+正式员工人数)
* @param userBean
* @param userBean
* @return
*/
YgglCartogramDto queryInservice(UserBean userBean);
/**
* 查询当月入职人数
* @param userBean
* @param userBean
* @return
*/
YgglCartogramDto queryInduction(UserBean userBean);
/**
* 查询本月转正人数
* @param userBean
* @param userBean
* @return
*/
YgglCartogramDto queryPositive(UserBean userBean);
/**
* 查询员工平均年龄
* @param userBean
* @param userBean
* @return
*/
YgglCartogramDto queryAvgAge(UserBean userBean);
/**
* 查询部门名称及人数
* @param userBean
* @param userBean
* @return
*/
List<YgglCartogramDto> queryDepartmentNum(UserBean userBean);
/**
* 查询岗位名称及人数
* @param userBean
* @param userBean
* @return
*/
List<YgglCartogramDto> queryJobsNum(UserBean userBean);
/**
* 学历及人数查询
* @param userBean
* @param userBean
* @return
*/
List<YgglCartogramDto> queryEducation(UserBean userBean);
/**
* 员工年龄分布查询
* @param userBean
* @param userBean
* @return
*/
List<YgglCartogramDto> queryEmpAge(UserBean userBean);
/**
* 籍贯统计(省份)人数分布查询
* @param userBean
* @param userBean
* @return
*/
List<YgglCartogramDto> queryNativeplace(UserBean userBean);
/**
* 员工工龄分布查询
* @param userBean
* @param userBean
* @return
*/
List<YgglCartogramDto> queryWorkingAge(UserBean userBean);
......@@ -129,9 +129,18 @@ public interface YgglMainEmpMapper extends BaseMapper<YgglMainEmp> {
* @return
*/
IPage<YgglMainEmp> selectME(Page<YgglMainEmp> page,@Param("param") EmpQuery empQuery);
List<DepartmentStaffDto> DepartmentStaff(Integer orgcode,Integer upid);
/**
* 查询在职员工数
* @param orgCode
* @param status 1在职 2全职 3试用期 4正式 5待离职 6已离职
* @return
*/
Integer selectEmpCount(Integer orgCode,Integer status);
List<YgglMainEmp> selectListByIds(@Param("array")String[] ids);
List<YgglMainEmp> selectListByIZjNum(@Param("array")String[] zjNum,@Param("orgCode") Integer orgCode);
......
package cn.timer.api.dao.zpgl;
import cn.timer.api.bean.zpgl.ZpglCompany;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
/**
* 招聘管理合同公司字典表
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-17 15:14:40
*/
@Repository
public interface ZpglCompanyMapper extends BaseMapper<ZpglCompany> {
}
package cn.timer.api.dao.zpgl;
import cn.timer.api.bean.zpgl.ZpglCptk;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
/**
* 招聘管理测评题库表
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-08 15:14:40
*/
@Repository
public interface ZpglCptkMapper extends BaseMapper<ZpglCptk> {
}
package cn.timer.api.dao.zpgl;
import cn.timer.api.bean.zpgl.ZpglDtk;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
/**
* 招聘管理用户测评答题卡表
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-08 15:14:40
*/
@Repository
public interface ZpglDtkMapper extends BaseMapper<ZpglDtk> {
}
package cn.timer.api.dao.zpgl;
import cn.timer.api.bean.zpgl.ZpglFail;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
/**
* 招聘管理淘汰原因字典表
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-08 15:14:40
*/
@Repository
public interface ZpglFailMapper extends BaseMapper<ZpglFail> {
}
package cn.timer.api.dao.zpgl;
import cn.timer.api.bean.zpgl.ZpglGzdd;
import cn.timer.api.bean.zpgl.ZpglZj;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
/**
* 招聘管理工作地点字典表
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-17 15:14:40
*/
@Repository
public interface ZpglGzddMapper extends BaseMapper<ZpglGzdd> {
}
package cn.timer.api.dao.zpgl;
import cn.timer.api.bean.zpgl.ZpglMslcLog;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
/**
* 招聘管理面试流程记录表
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-08 15:14:40
*/
@Repository
public interface ZpglMslcLogMapper extends BaseMapper<ZpglMslcLog> {
}
package cn.timer.api.dao.zpgl;
import cn.timer.api.bean.zpgl.ZpglRcxxCertificate;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
/**
* 简历证书
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-08 15:14:40
*/
@Repository
public interface ZpglRcxxCertificateMapper extends BaseMapper<ZpglRcxxCertificate> {
}
package cn.timer.api.dao.zpgl;
import cn.timer.api.bean.zpgl.ZpglRcxxExperience;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
/**
* 工作经验
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-08 15:14:40
*/
@Repository
public interface ZpglRcxxExperienceMapper extends BaseMapper<ZpglRcxxExperience> {
}
package cn.timer.api.dao.zpgl;
import cn.timer.api.bean.zpgl.ZpglRcxxJtzl;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
/**
* 家庭资料表
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-08 15:14:40
*/
@Repository
public interface ZpglRcxxJtzlMapper extends BaseMapper<ZpglRcxxJtzl> {
}
package cn.timer.api.dao.zpgl;
import cn.timer.api.bean.zpgl.ZpglRcxxLxxxb;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
/**
* 联系信息表
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-08 15:14:40
*/
@Repository
public interface ZpglRcxxLxxxbMapper extends BaseMapper<ZpglRcxxLxxxb> {
}
package cn.timer.api.dao.zpgl;
import cn.timer.api.bean.zpgl.ZpglRcxx;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.yulichang.base.MPJBaseMapper;
import org.springframework.stereotype.Repository;
/**
* 招聘管理人才信息表
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-08 15:14:40
*/
@Repository
public interface ZpglRcxxMapper extends MPJBaseMapper<ZpglRcxx> {
}
package cn.timer.api.dao.zpgl;
import cn.timer.api.bean.zpgl.ZpglRcxxOffer;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
/**
* Offer发送记录
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-04-14 15:14:40
*/
@Repository
public interface ZpglRcxxOfferMapper extends BaseMapper<ZpglRcxxOffer> {
}
package cn.timer.api.dao.zpgl;
import cn.timer.api.bean.zpgl.ZpglRcxxProject;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
/**
* 教育经历
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-08 15:14:40
*/
@Repository
public interface ZpglRcxxProjectMapper extends BaseMapper<ZpglRcxxProject> {
}
package cn.timer.api.dao.zpgl;
import cn.timer.api.bean.zpgl.ZpglRcxxStudy;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
/**
* 教育经历
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-08 15:14:40
*/
@Repository
public interface ZpglRcxxStudyMapper extends BaseMapper<ZpglRcxxStudy> {
}
package cn.timer.api.dao.zpgl;
import cn.timer.api.bean.zpgl.ZpglRcxxTrain;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
/**
* 培训经验
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-08 15:14:40
*/
@Repository
public interface ZpglRcxxTrainMapper extends BaseMapper<ZpglRcxxTrain> {
}
package cn.timer.api.dao.zpgl;
import cn.timer.api.bean.zpgl.ZpglWxgzptEmpRcxx;
import com.github.yulichang.base.MPJBaseMapper;
import org.springframework.stereotype.Repository;
/**
* 招聘管理人才信息表
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-21 15:14:40
*/
@Repository
public interface ZpglWxgzptEmpRcxxMapper extends MPJBaseMapper<ZpglWxgzptEmpRcxx> {
}
package cn.timer.api.dao.zpgl;
import cn.timer.api.bean.zpgl.ZpglCompany;
import cn.timer.api.bean.zpgl.ZpglZj;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
/**
* 招聘管理职级字典表
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-17 15:14:40
*/
@Repository
public interface ZpglZjMapper extends BaseMapper<ZpglZj> {
}
package cn.timer.api.dao.zpgl;
import cn.timer.api.bean.zpgl.ZpglZpqd;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
/**
* 招聘管理职级字典表
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-28 15:14:40
*/
@Repository
public interface ZpglZpqdMapper extends BaseMapper<ZpglZpqd> {
}
package cn.timer.api.dao.zpgl;
import cn.timer.api.bean.zpgl.ZpglZwxx;
import com.github.yulichang.base.MPJBaseMapper;
import org.springframework.stereotype.Repository;
/**
* 招聘管理职位信息表
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022-03-08 15:14:40
*/
@Repository
public interface ZpglZwxxMapper extends MPJBaseMapper<ZpglZwxx> {
}
package cn.timer.api.dto.baidu;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 简历相关请求参数,每次一份简历
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022/3/29
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class BaiduTicResumeDto implements Serializable {
/**
* 简历文档名称,文件大小不超过10M
*/
private String filename;
/**
* 简历文档类型,目前支持pdf、doc、docx、wps、txt、jpg、jpeg、png、bmp、tif格式
*/
private String filetype;
/**
* 待解析文档内容,必须是二进制读取,base64编码
*/
private String filedata;
/**
* 非必填
* 需要保留的字段,每个元素表示需要保留的字段位置,
* 具体格式参考返回参数中results参数部分,
* 如' ["basic_infos.name", "education_infos[].school", "work_infos"] ';
* 层级按半角圆点“.”分割,list类型用半角方括号“[]”表示。如果不填该参数,默认选择全部字段
*/
private String fields;
}
package cn.timer.api.dto.baidu;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 基本信息
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022/3/30
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class BasicInfo implements Serializable {
// 姓名:中文姓名
private String name;
// 性别:男/女
private String gender;
private String age; // 年龄:当前年龄,整数
// 工作年限:当前工作年限,整数,多段工作年限会累加并向下取整
private String cur_duration;
private String highest_degree; // 学历:最高学历(包括在读),格式统一为博士/硕士/学士
private String work_begin_year; // 开始工作年限:第一份工作的开始年份,四位数年份,如2013
private String id_number; // 身份证号:中国居民身份证号码,纯数字
// 生日:出生日期,格式化为 年-月,如2000-01,若只有年,则只显示年,如2000
private String birth_date;
// 民族:中国56个民族, 如 汉族,壮族
private String nation;
private String location; // 所在地:所在地城市或区域,如 深圳市,深圳市南山区
// 详细地址:具体家庭居住地,如 深圳市南山区华联花园6栋2-224
private String home_location;
// 当前公司
private String cur_company;
private String cur_job; // 当前职位
// 毕业学校:最高学历学校
private String school;
private String major; // 专业:最高学历对应的专业
private String job_intention; // 求职意向
private String cur_package; // 当前薪水:当前工资或当前工资范围,如10-20万人民币等,以简历为准
private String desire_package; // 期望薪水:期望工资或期望工资范围,如20k-30k等,以简历为准
private String industry; // 所属行业:最新工作的所属行业
private String job_status; // 求职状态:在职/正在找工作(在职)/考虑好的职业机会(在职)/已离职/暂不考虑其他机会/应届生,输出为原文
private String politic; // 政治面貌:党员/团员/群众,输出为原文
private String marriage; // 婚姻状况:未婚/已婚,输出为原文
private String birth_place; // 籍贯:籍贯地区,如 广东汕头,上海,江苏南通。以简历描述为准,输出为原文
private String desire_loc; // 期望工作地区:期望工作城市或区域,多个地区则以英文逗号分隔,如 北京,上海,广州,深圳,输出为原文
// 联系方式:国内11位手机号,格式化为纯数字
private String phone_numbers;
// 邮箱:合格邮箱地址
private String email_address;
private String landline; // 固定电话:国内8位座机号
private String qq; // QQ号:QQ号码
// 微信号:微信账号
private String wechat;
private String skill_text;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment