commit
Some checks failed
API接口参数变更检测 / api-param-check (push) Has been cancelled

This commit is contained in:
2026-06-05 16:18:40 +08:00
parent 1ca34c6bb2
commit 3cba3bb74e
4393 changed files with 450030 additions and 103 deletions

View File

@@ -0,0 +1,441 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import jnpf.enums.attendance.AttendanceTypeEnum;
import jnpf.model.attendance.vo.attendance.OvertimeRuleDetailVo;
import jnpf.util.DateDetail;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.io.Serializable;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Date;
import java.util.Objects;
/**
* 考勤组-每日出勤规则
*
* @author yanwenfu
* @create 2023-11-22
*/
@Getter
@Setter
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName(value = "ftb_attendance_daily_rule")
public class FtbAttendanceDailyRule extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 7692755431988353300L;
/**
* 考勤组id
*/
@TableField(value = "F_GroupId")
private String groupId;
/**
* 班次类型 0全天班次 1上午班次 2下午班次
*/
@TableField(value = "F_SchedulesType")
private Integer schedulesType;
/**
* 是否自己的考勤组(0未产生借调 1被借调 2借调)
*/
@TableField(value = "F_SelfGroup")
private Integer selfGroup;
/**
* 班次时段id
*/
@TableField(value = "F_PeriodId")
private String periodId;
/**
* 班次时段信息
*/
@TableField(value = "F_PeriodInfo")
private String periodInfo;
/**
* 班次id
*/
@TableField(value = "F_ShiftId")
private String shiftId;
/**
* 日期
*/
@TableField(value = "F_Day")
private Date day;
/**
* 用户id
*/
@TableField(value = "F_UserId")
private String userId;
/**
* 允许迟到(0否 1是)
*/
@TableField(value = "F_LateEnable")
private Integer lateEnable;
/**
* 允许早退(0否 1是)
*/
@TableField(value = "F_EarlyEnable")
private Integer earlyEnable;
/**
* 允许休息时间(0否 1是)
*/
@TableField(value = "F_BreakEnable")
private Integer breakEnable;
/**
* 允许次日下班(0否 1是)
*/
@TableField(value = "F_NextDayEnable")
private Integer nextDayEnable;
/**
* 打卡开始时间点
*/
@TableField(value = "F_ClockStartPoint")
private Date clockStartPoint;
/**
* 上班时间点
*/
@TableField(value = "F_InPoint")
private Date inPoint;
/**
* 是否上班边界覆盖(0未覆盖 1加班覆盖 2借调覆盖 3请假覆盖)
*/
@TableField(value = "F_InUnbounded")
private Integer inUnbounded;
/**
* 上班是否被外出覆盖(0未覆盖 1覆盖)
*/
@TableField(value = "F_InStepOutType")
private Integer inStepOutType;
/**
* 上班被外出覆盖申请id
*/
@TableField(value = "F_InStepOutApplyId")
private String inStepOutApplyId;
/**
* 原上班时间点
*/
@TableField(value = "F_OriginInPoint")
private Date originInPoint;
/**
* 迟到时间点
*/
@TableField(value = "F_LatePoint")
private Date latePoint;
/**
* 是否晚走晚到
*/
@TableField(value = "F_IsLateOutLateIn")
private Integer isLateOutLateIn;
/**
* 原始迟到时间点
*/
@TableField(value = "F_OriginalLatePoint")
private Date originalLatePoint;
/**
* 上班缺卡时间点
*/
@TableField(value = "F_InLackPoint")
private Date inLackPoint;
public Date getOriginBreakStartPoint() {
return Objects.nonNull(originBreakStartPoint) ? originBreakStartPoint : breakStartPoint;
}
public Date getOriginBreakEndPoint() {
return Objects.nonNull(originBreakEndPoint)? originBreakEndPoint : breakEndPoint;
}
public Date getOriginOutPoint() {
return Objects.nonNull(originOutPoint)? originOutPoint : outPoint;
}
public Date getOriginInPoint() {
return Objects.nonNull(originInPoint)? originInPoint : inPoint;
}
/**
* 休息开始时间点
*/
@TableField(value = "F_BreakStartPoint", updateStrategy = FieldStrategy.IGNORED)
private Date breakStartPoint;
/**
* 休息开始时间点
*/
@TableField(value = "F_OriginBreakStartPoint", updateStrategy = FieldStrategy.IGNORED)
private Date originBreakStartPoint;
/**
* 休息结束时间点
*/
@TableField(value = "F_BreakEndPoint", updateStrategy = FieldStrategy.IGNORED)
private Date breakEndPoint;
/**
* 休息结束时间点
*/
@TableField(value = "F_OriginBreakEndPoint", updateStrategy = FieldStrategy.IGNORED)
private Date originBreakEndPoint;
/**
* 早退时间点
*/
@TableField(value = "F_EarlyPoint")
private Date earlyPoint;
/**
* 下班时间点
*/
@TableField(value = "F_OutPoint")
private Date outPoint;
/**
* 是否下班边界覆盖(0未覆盖 1加班覆盖 2借调覆盖 3请假覆盖)
*/
@TableField(value = "F_OutUnbounded")
private Integer outUnbounded;
/**
* 下班是否被外出覆盖(0未覆盖 1覆盖)
*/
@TableField(value = "F_OutStepOutType")
private Integer outStepOutType;
/**
* 下班被外出覆盖申请id
*/
@TableField(value = "F_OutStepOutApplyId")
private String outStepOutApplyId;
/**
* 原下班时间点
*/
@TableField(value = "F_OriginOutPoint")
private Date originOutPoint;
/**
* 下班缺卡时间点
*/
@TableField(value = "F_OutLackPoint")
private Date outLackPoint;
/**
* 出勤类型(1: 普班, 2: 休, 3: 假, 4: 假(带薪), 5: 加班)
*/
@TableField(value = "F_AttendanceType")
private Integer attendanceType;
/**
* 申请id
*/
@TableField(value = "F_ApplyId")
private String applyId;
/**
* 审核数据展示标识1 起效0 失效2 打卡不展示3 考勤组剔除人员待删除9 标识出差10 标识外出)
*/
@TableField(value = "F_ApplyViewEnable")
private Integer applyViewEnable;
/**
* 申请事件开始时间
*/
@TableField(value = "F_ApplyStart")
private Date applyStart;
/**
* 请假天数
*/
@TableField(value = "F_LeaveDay")
private BigDecimal leaveDay;
/**
* 申请单位1小时 2日 3半日
*/
@TableField(value = "F_ApplyUnit")
private Integer applyUnit;
/**
* 请假申请参数
*/
@TableField(value = "F_LeaveParam")
private String leaveParam;
public void setInPoint(Date inPoint) {
this.inPoint = inPoint;
calValidDuration();
}
public void calInLackPoint(Date inLackPoint) {
if (Objects.isNull(inLackPoint)) {
return;
}
this.inLackPoint = inLackPoint.after(this.outPoint) ? this.outPoint : inLackPoint;
}
public void calLatePoint(Date latePoint) {
if (Objects.isNull(latePoint)) {
return;
}
this.latePoint = latePoint.after(this.outPoint) ? this.outPoint : latePoint;
}
public void setBreakStartPoint(Date breakStartPoint) {
this.breakStartPoint = breakStartPoint;
calValidDuration();
}
public void setBreakEndPoint(Date breakEndPoint) {
this.breakEndPoint = breakEndPoint;
calValidDuration();
}
public void setOutPoint(Date outPoint) {
this.outPoint = outPoint;
calValidDuration();
}
/**
* 申请事件结束时间
*/
@TableField(value = "F_ApplyEnd")
private Date applyEnd;
/**
* 有效时长
*/
@TableField(value = "F_ValidDuration")
private Integer validDuration;
/**
* 时段工时
*/
@TableField(value = "F_PeriodWorkDay")
private BigDecimal periodWorkDay;
/**
* 计薪工时
*/
@TableField(value = "F_PayrollHours")
private BigDecimal payrollHours;
/**
* 原始有效时长
*/
@TableField(value = "F_OriginValidDuration")
private Integer originValidDuration;
public BigDecimal getPayrollHours() {
if(Objects.nonNull(payrollHours)) {
return payrollHours;
}
if (Objects.isNull(validDuration)) {
return BigDecimal.ZERO;
}
return BigDecimal.valueOf(validDuration).divide(BigDecimal.valueOf(60), 4, RoundingMode.HALF_UP);
}
/**
* 排序
*/
@TableField(value = "F_Sort")
private Integer sort;
/**
* 是否固定班 3自动排休调休上班 2为划线排班
*/
@TableField(value = "F_FixedMark")
private Integer fixedMark;
/** 隐藏(0:不隐藏, 1:上班隐藏) */
@TableField(exist = false)
private String inHideStatus = "0";
/** 隐藏(0:不隐藏, 1:下班隐藏) */
@TableField(exist = false)
private String outHideStatus = "0";
/** 上班无需打卡(true:是, false:否) */
@TableField(exist = false)
private boolean onWorkIgnore = false;
/** 下班无需打卡(true:是, false:否) */
@TableField(exist = false)
private boolean offWorkIgnore = false;
/** 行号 */
@TableField(exist = false)
private Integer rn;
/** 消息(离岗、回岗) */
@TableField(exist = false)
private String msg;
/** 加班规则 */
@TableField(exist = false)
private OvertimeRuleDetailVo overtimeRuleDetail;
/** 无审批加班 */
@TableField(exist = false)
private Integer overtime = 0;
/** 目标日期 */
@TableField(exist = false)
private String targetDate;
/** 实际日期(目标日期/目标日期-1) */
@TableField(exist = false)
private String queryDate;
@TableField(exist = false)
private Boolean isInsert = Boolean.FALSE;
@TableField(exist = false)
private Boolean isDelete = Boolean.FALSE;
public void delete(){
this.isDelete = true;
}
public void calValidDuration() {
if (Objects.equals(this.getAttendanceType(), AttendanceTypeEnum.LEAVE.getCode()) || Objects.equals(this.getAttendanceType(), AttendanceTypeEnum.ORDINARY.getCode())|| Objects.equals(this.getAttendanceType(), AttendanceTypeEnum.REST.getCode()) || Objects.equals(this.getAttendanceType(), AttendanceTypeEnum.WORKOVERTIME.getCode())) {
if (Objects.isNull(this.getInPoint())) {
return;
}
if (Objects.isNull(this.getOutPoint())) {
return;
}
this.setValidDuration(DateDetail.calculateMinuteDiff(this.getInPoint(), this.getOutPoint()));
if (Objects.isNull(this.getBreakEnable()) || this.getBreakEnable() == 0) {
return;
}
if (Objects.isNull(this.getBreakStartPoint())) {
return;
}
if (Objects.isNull(this.getBreakEndPoint())) {
return;
}
this.setValidDuration(this.getValidDuration() - DateDetail.calculateMinuteDiff(this.getBreakStartPoint(), this.getBreakEndPoint()));
}
}
public void calOriginValidDuration() {
if (Objects.equals(this.getAttendanceType(), AttendanceTypeEnum.LEAVE.getCode()) || Objects.equals(this.getAttendanceType(), AttendanceTypeEnum.ORDINARY.getCode())|| Objects.equals(this.getAttendanceType(), AttendanceTypeEnum.REST.getCode()) || Objects.equals(this.getAttendanceType(), AttendanceTypeEnum.WORKOVERTIME.getCode())) {
if (Objects.isNull(this.getOriginInPoint())) {
return;
}
if (Objects.isNull(this.getOriginOutPoint())) {
return;
}
this.setOriginValidDuration(DateDetail.calculateMinuteDiff(this.getOriginInPoint(), this.getOriginOutPoint()));
if (Objects.isNull(this.getBreakEnable()) || this.getBreakEnable() == 0) {
return;
}
if (Objects.isNull(this.getOriginBreakStartPoint())) {
return;
}
if (Objects.isNull(this.getOriginBreakEndPoint())) {
return;
}
this.setOriginValidDuration(this.getOriginValidDuration() - DateDetail.calculateMinuteDiff(this.getOriginBreakStartPoint(), this.getOriginBreakEndPoint()));
}
}
public void insertTrue() {
this.isInsert = Boolean.TRUE;
}
}