feat: 新增招聘会企业签到与未参会统计

This commit is contained in:
2026-07-24 12:35:25 +08:00
parent 357a861338
commit 0dc26a9e2e
18 changed files with 935 additions and 8 deletions

View File

@@ -148,4 +148,17 @@ public class OutdoorFair extends BaseEntity
@TableField(exist = false)
@ApiModelProperty("当前企业报名审核备注")
private String reviewRemark;
@TableField(exist = false)
@ApiModelProperty("当前企业签到状态not_checked_in/checked_in")
private String companyCheckInStatus;
@TableField(exist = false)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("当前企业签到时间")
private Date companyCheckInTime;
@TableField(exist = false)
@ApiModelProperty("当前企业当前是否允许签到")
private Boolean companyCheckInAllowed;
}

View File

@@ -0,0 +1,52 @@
package com.ruoyi.cms.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* 户外招聘会企业签到记录。
*
* <p>每个审核通过的企业报名对应一条记录0 表示尚未签到1 表示已签到。
* 招聘会结束后仍为 0 的记录即为企业未参会记录。</p>
*/
@Data
@ApiModel("户外招聘会企业签到记录")
@TableName("shz.cms_outdoor_fair_company_attendance")
public class OutdoorFairCompanyAttendance extends BaseEntity
{
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
@ApiModelProperty("主键ID")
private Long id;
@ApiModelProperty("招聘会ID")
private Long fairId;
@ApiModelProperty("企业ID")
private Long companyId;
@ApiModelProperty("企业名称快照")
private String companyName;
@ApiModelProperty("联系人快照")
private String contactPerson;
@ApiModelProperty("联系电话快照")
private String contactPhone;
@ApiModelProperty("签到状态0未签到1已签到")
private String attendanceStatus;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("签到时间")
private Date checkInTime;
}

View File

@@ -15,4 +15,7 @@ public class CompanySearch extends Company {
private String startDate;
//查询结束时间
private String endDate;
/** 只查询存在未参加已结束户外招聘会记录的企业。 */
private Boolean missedOutdoorFairOnly;
}

View File

@@ -0,0 +1,38 @@
package com.ruoyi.cms.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/** 企业未参加户外招聘会明细。 */
@Data
@ApiModel("企业未参加户外招聘会明细")
public class CompanyMissedOutdoorFairVO
{
@ApiModelProperty("招聘会ID")
private Long fairId;
@ApiModelProperty("招聘会标题")
private String title;
@ApiModelProperty("举办单位")
private String hostUnit;
@ApiModelProperty("举办地址")
private String address;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("举办开始时间")
private Date holdTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("举办结束时间")
private Date endTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("企业报名时间")
private Date registrationTime;
}

View File

@@ -0,0 +1,53 @@
package com.ruoyi.cms.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/** 招聘会企业签到列表项。 */
@Data
@ApiModel("招聘会企业签到列表项")
public class OutdoorFairCompanyAttendanceVO
{
@ApiModelProperty("报名关系ID")
private Long id;
@ApiModelProperty("招聘会ID")
private Long fairId;
@ApiModelProperty("企业ID")
private Long companyId;
@ApiModelProperty("企业名称")
private String companyName;
@ApiModelProperty("企业行业")
private String industry;
@ApiModelProperty("企业规模")
private String scale;
@ApiModelProperty("联系人")
private String contactPerson;
@ApiModelProperty("联系电话")
private String contactPhone;
@ApiModelProperty("报名审核时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date reviewTime;
@ApiModelProperty("报名时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date registrationTime;
@ApiModelProperty("签到状态0未签到1已签到")
private String attendanceStatus;
@ApiModelProperty("签到时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date checkInTime;
}