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,62 @@
package jnpf.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 接口调用日志表
* @author yanwenfu
* @create 2026-01-28
*/
@Getter
@Setter
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName ( value ="ftb_api_call_log" )
public class ApiCallLog extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 5134795939132551720L;
/** 接口名称 */
@TableField(value = "F_ApiName")
private String apiName;
/** 接口路径 */
@TableField(value = "F_ApiPath")
private String apiPath;
/** HTTP方法 */
@TableField(value = "F_HttpMethod")
private String httpMethod;
/** 请求参数(JSON) */
@TableField(value = "F_RequestBody")
private String requestBody;
/** 返回结果(JSON) */
@TableField(value = "F_ResponseBody")
private String responseBody;
/** 是否成功(1: 是, 0: 否) */
@TableField(value = "F_Success")
private Integer success;
/** 异常信息 */
@TableField(value = "F_ErrorMsg")
private String errorMsg;
/** 耗时(ms) */
@TableField(value = "F_CostTime")
private Integer costTime;
/** 调用ip */
@TableField(value = "F_Ip")
private String ip;
}

View File

@@ -0,0 +1,41 @@
package jnpf.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.io.Serializable;
/**
* banner
*
* @author yanwenfu
* @create 2023-10-10
*/
@Getter
@Setter
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName(value ="ftb_app_banner")
public class AppBanner extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
/** 图标标题 */
@TableField(value = "F_Icon_Title")
private String iconTitle;
/** 图标描述 */
@TableField(value = "F_Icon_Description")
private String iconDescription;
/** 图片地址 */
@TableField(value = "F_Icon_Url")
private String iconUrl;
/** 跳转地址 */
@TableField(value = "F_Jump_To")
private String jumpTo;
/** 排序 */
@TableField(value = "F_Sort")
private Integer sort;
}

View File

@@ -0,0 +1,61 @@
package jnpf.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import java.util.Date;
import lombok.Data;
/**
* <p>
* 考勤审批设置表
* </p>
*
* @author Auto-generator
* @since 2023-11-21
*/
@Data
@TableName("ftb_attendance_approval_setting")
public class AttendanceApprovalSetting {
/**
* 自然主键
*/
@TableId("F_Id")
private String id;
/**
* 考勤组id
*/
@TableField("F_GroupId")
private String groupId;
/**
* 审批类型 1.常规补卡审批 2.调整出勤结果审批 3.外勤审批 4.请假审批 5.加班审批
*/
@TableField("F_type")
private Integer type;
/**
* 审批权限设置 1.考勤超级管理员 2.上级考勤管理员 3.当前组管理员 0.无需审批
*/
@TableField("F_Permission")
private Integer permission;
@TableField("F_TenantId")
private String tenantId;
public AttendanceApprovalSetting(String groupId, Integer type, Integer permission) {
this.groupId = groupId;
this.type = type;
this.permission = permission;
}
public AttendanceApprovalSetting() {
}
public AttendanceApprovalSetting(String id, String groupId, Integer type, Integer permission, String tenantId) {
this.id = id;
this.groupId = groupId;
this.type = type;
this.permission = permission;
this.tenantId = tenantId;
}
}

View File

@@ -0,0 +1,79 @@
package jnpf.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.sql.Timestamp;
/**
* <p>
* 考勤-自定义报表设置
* </p>
*
* @author ahua
* @since 2024-09-03
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("ftb_attendance_customize_table")
public class AttendanceCustomizeTable implements Serializable {
private static final long serialVersionUID = 1L;
@TableId("F_Id")
private String id;
/**
* 字段名称
*/
@TableField("F_FieldName")
private String fieldName;
/**
* 字段
*/
@TableField("F_Field")
private String field;
/**
* 表头字段名
*/
@TableField("F_HeadName")
private String headName;
/**
* 表头宽带
*/
@TableField("F_Width")
private Integer width;
/**
* 是否勾选(0-未勾选 1-勾选)
*/
@TableField("F_Status")
private Integer status;
/**
* 类型(1-日度统计 2-月度统计 3-日度计薪统计 4-月度计薪统计)
*/
@TableField("F_Type")
private Integer type;
/**
* 排序
*/
@TableField("F_Sort")
private Integer sort;
/**
* 排序
*/
@TableField("F_CustomLeaveJson")
private String customLeaveJson;
/**
* 变更时间
*/
@TableField("F_UpdatorTime")
private Timestamp updatorTime;
/**
* 变更人
*/
@TableField("F_UpdatorUserId")
private String updatorUserId;
}

View File

@@ -0,0 +1,151 @@
package jnpf.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
/**
* <p>
* 考勤组表
* </p>
* @author yier
* @since 2023-11-21
*/
@Data
@TableName("ftb_attendance_group")
public class AttendanceGroup {
/**
* 自然主键
*/
@TableId("F_Id")
private String id;
/**
* 考勤组名称
*/
@TableField("F_GroupName")
private String groupName;
/**
* 父节点id
*/
@TableField("F_ParentId")
private String parentId;
/**
* 组织id
*/
@TableField("F_OrgId")
private String orgId;
/**
* 层级编码
*/
@TableField("F_LevelCode")
private String levelCode;
/**
* 考勤组详细名称树
*/
@TableField("F_DetailName")
private String detailName;
/**
* 考勤组负责人
*/
@TableField("F_ManagerId")
private String managerId;
/**
* 出勤基础设置 1.开启 0.关闭
*/
@TableField("F_BaseSetting")
private Integer baseSetting;
/**
* 考勤班制设置 1.开启 0.关闭
*/
@TableField("F_AttendanceClassSetting")
private Integer attendanceClassSetting;
/**
* 考勤点设置 1.开启 0.关闭
*/
@TableField("F_AttendancePointsSetting")
private Integer attendancePointsSetting;
/**
* 请假设置 1.开启 0.关闭
*/
@TableField("F_LeaveSetting")
private Integer leaveSetting;
/**
* 节假日设置 1.开启 0.关闭
*/
@TableField("F_FestivalSetting")
private Integer festivalSetting;
/**
* 假期设置 1.开启 0.关闭
*/
@TableField("F_HolidaySetting")
private Integer holidaySetting;
/**
* 假期设置 1.开启 0.关闭
*/
@TableField("F_LineSchedulingSetting")
private Integer lineSchedulingSetting;
/**
* 考勤点是否启用GPS
*/
@TableField("F_GpsEnable")
private Integer gpsEnable;
/**
*考勤点是否启用WiFi
*/
@TableField("F_WifiEnable")
private Integer wifiEnable;
/**
*考勤点是否启用考勤机
*/
@TableField("F_MachineEnable")
private Integer machineEnable;
/**
*考勤组锁定
*/
@TableField("F_LockedDate")
private Date lockedDate;
/**
* 是否开启月报通知 1.开启 0.关闭
*/
@TableField("F_MonthlyReportNotice")
private Integer monthlyReportNotice;
/**
* 创建用户id
*/
@TableField("F_CreatorUserId")
private String creatorUserId;
/**
* 创建时间
*/
@TableField("F_CreatorTime")
private Date creatorTime;
/**
* 租户id
*/
@TableField("F_TenantId")
private String tenantId;
/**
* 删除标志 1.是
*/
@TableField("F_DeleteMark")
private Integer deleteMark;
/**
* 删除用户id
*/
@TableField("F_DeleteUserId")
private String deleteUserId;
/**
* 最后修改时间
*/
@TableField("F_LastModifyTime")
private Date lastModifyTime;
/**
* 最后修改用户id
*/
@TableField("F_LastModifyUserId")
private String lastModifyUserId;
}

View File

@@ -0,0 +1,93 @@
package jnpf.entity;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import java.util.Date;
import lombok.Data;
/**
* <p>
* 考勤组成员管理表
* </p>
*
* @author yier
* @since 2023-11-21
*/
@Data
@TableName("ftb_attendance_group_user")
public class AttendanceGroupUser {
private static final long serialVersionUID = 1L;
/**
* 自然主键
*/
@TableId("F_Id")
private String id;
/**
* 用户id
*/
@TableField("F_UserId")
private String userId;
/**
* 考勤组id
*/
@TableField("F_GroupId")
private String groupId;
/**
* 1.当前考勤组 2.借调考勤组
*/
@TableField("F_Type")
private Integer type;
/**
* 排序
*/
@TableField(value = "F_Sort",updateStrategy = FieldStrategy.IGNORED)
private Integer sort;
/**
* 1.当前考勤组 2.借调考勤组
*/
@TableField("F_UserGroupType")
private Integer userGroupType;
/**
* 借调开始时间
*/
// @TableField("F_StartTime")
// private Date startTime;
/**
* 借调结束时间
*/
// @TableField("F_EndTime")
// private Date endTime;
@TableField("F_TimeJson")
private String timeJson;
/**
* 创建用户id
*/
@TableField("F_CreatorUserId")
private String creatorUserId;
/**
* 创建时间
*/
@TableField("F_CreatorTime")
private Date creatorTime;
/**
* 租户id
*/
@TableField("F_TenantId")
private String tenantId;
/**
* 移除考勤组时间
*/
@TableField(value = "F_RemoveTime", updateStrategy = FieldStrategy.IGNORED)
private Date removeTime;
@TableField("F_DeleteMark")
private Integer deleteMark;
}

View File

@@ -0,0 +1,82 @@
package jnpf.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import java.util.Date;
import lombok.Data;
/**
* <p>
* 考勤管理员权限设置
* </p>
*
* @author Auto-generator
* @since 2023-11-21
*/
@Data
@TableName("ftb_attendance_manager_permission")
public class AttendanceManagerPermission {
/**
* 主键
*/
@TableId("F_Id")
private String id;
/**
* 权限类型 1.当前考勤组 2.子考勤组 0.考勤超级管理员
*/
@TableField("F_Type")
private Integer type;
/**
* 考勤组id
*/
@TableField("F_GroupId")
private String groupId;
/**
* 用户id
*/
@TableField("F_UserId")
private String userId;
/**
* 权限菜单id
*/
@TableField("F_PermissionId")
private String permissionId;
/**
* 创建用户id
*/
@TableField("F_CreatorUserId")
private String creatorUserId;
/**
* 创建时间
*/
@TableField("F_CreatorTime")
private Date creatorTime;
/**
* 租户id
*/
@TableField("F_TenantId")
private String tenantId;
/**
* 删除标志 1.是
*/
@TableField("F_DeleteMark")
private Integer deleteMark;
/**
* 删除用户id
*/
@TableField("F_DeleteUserId")
private String deleteUserId;
/**
* 最后修改时间
*/
@TableField("F_LastModifyTime")
private Date lastModifyTime;
/**
* 最后修改用户id
*/
@TableField("F_LastModifyUserId")
private String lastModifyUserId;
}

View File

@@ -0,0 +1,41 @@
package jnpf.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.Date;
/**
* @author Created by wyr on 2023/7/20.
**/
@Data
@Accessors(chain = true)
public class BaseEntity extends BaseInsertEntity{
@Schema(description = "有效标识")
@TableField("F_EnabledMark")
private Integer enabledMark;
@Schema(description = "修改用户")
@TableField(value = "F_LastModifyUserId")
private String lastModifyUserId;
@Schema(description = "修改时间")
@TableField(value = "F_LastModifyTime", fill = FieldFill.UPDATE)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private Date lastModifyTime;
@Schema(description = "删除用户")
@TableField("F_DeleteUserId")
private String deleteUserId;
@Schema(description = "删除时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@TableField(value = "F_DeleteTime", fill = FieldFill.UPDATE)
private Date deleteTime;
}

View File

@@ -0,0 +1,38 @@
package jnpf.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import jnpf.base.entity.SuperBaseEntity;
import lombok.Data;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
import java.util.Date;
/**
* @author Created by wyr on 2023/7/20.
**/
@Data
@Accessors(chain = true)
public class BaseInsertEntity {
@Schema(description = "主键")
@TableId("F_Id")
private String id;
@Schema(description = "创建用户")
@TableField("F_CreatorUserId")
private String creatorUserId;
@Schema(description = "创建时间")
@TableField(value = "F_CreatorTime", fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date creatorTime;
@Schema(description = "租户id")
@TableField("F_TenantId")
private String tenantId;
}

View File

@@ -0,0 +1,40 @@
package jnpf.entity;
import lombok.Getter;
import lombok.Setter;
/**
* 公共配置
*
* @author yanwenfu
* @create 2023-07-20
*/
@Getter
@Setter
public class CommonConfig {
/**
* 主键id
*/
private String id;
/**
* 名称备注
*/
private String name;
/**
* 编码(informationRecycleBin)
*/
private String code;
/**
* 配置JSON
*/
private Object dataJson;
/**
* 租户id
*/
private String tenantId;
}

View File

@@ -0,0 +1,33 @@
package jnpf.entity;
import jnpf.base.entity.SuperBaseEntity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
/**
*
* Contract
* 版本: V3.0.0
* 版权: 引迈信息技术有限公司(https://www.jnpfsoft.com)
* 作者: JNPF开发平台组
* 日期: 2020-12-31
*/
@Data
@TableName("test_contract")
public class ContractEntity extends SuperBaseEntity.SuperTBaseEntity<String> implements Serializable {
@TableField("F_CONTRACTNAME")
private String contractName;
@TableField("F_MYTELEPHONE")
private String mytelePhone;
@TableField("F_FILEJSON")
private String fileJson;
}

View File

@@ -0,0 +1,66 @@
package jnpf.entity;
import lombok.Getter;
import lombok.Setter;
import java.util.Date;
@Getter
@Setter
public class Information {
/** 主键id */
private String id;
/** 文件名称 */
private String fileName;
/** 文件大小 */
private Double filesize;
/** 文件链接 */
private String fileUrl;
/** 文件拥有者id */
private String owner;
/** 文件后缀 */
private String fileSuffix;
/** 文件类型 1.空间 2.文件夹 3.文档 4.文件 */
private Integer classification;
/** 文件种类型 文档 表格..用于web种类搜索 */
private String fileType;
/** 文件路径 */
private String filePath;
/** 文件父级id */
private String filePid;
/** 创建时间 */
private Date creatorTime;
/** 创建用户 */
private String creatorUserId;
/** 修改时间 */
private Date lastModifyTime;
/** 修改用户 */
private String lastModifyUserId;
/** 删除时间 */
private Date deleteTime;
/** 删除用户 */
private String deleteUserId;
/** 删除标志(1.删除 0未删除) */
private Integer enabledMark;
/** 租户id */
private String tenantId;
}

View File

@@ -0,0 +1,66 @@
package jnpf.entity;
import lombok.Getter;
import lombok.Setter;
import java.util.Date;
@Getter
@Setter
public class InformationAuthority {
/**
* 主键id
*/
private String id;
/**
* 空间/文件夹/资料的id
*/
private String informationId;
/**
* 用户id
*/
private String userId;
/**
* 权限管理(1..管理员 2.可编辑 3.可上传下载 4.可下载 5.仅预览)
*/
private Integer limitsOfAuthority;
/**
* 创建时间
*/
private Date creatorTime;
/**
* 创建用户
*/
private String creatorUserId;
/**
* 修改时间
*/
private Date lastModifyTime;
/**
* 修改用户
*/
private String lastModifyUserId;
/**
* 删除时间
*/
private Date deleteTime;
/**
* 删除用户
*/
private String deleteUserId;
/**
* 租户id
*/
private String tenantId;
}

View File

@@ -0,0 +1,47 @@
package jnpf.entity;
import lombok.Getter;
import lombok.Setter;
import java.util.Date;
@Getter
@Setter
public class InformationLog {
/**
* 主键id
*/
private String id;
/**
* 用户id
*/
private String userId;
/**
* 资料id
*/
private String informationId;
/**
* 动作(创建 , 上传 , 邀请 ....)
*/
private String action;
/**
* 内容
*/
private String content;
/**
* 创建时间
*/
private Date creatorTime;
/**
* 租户id
*/
private String tenantId;
}

View File

@@ -0,0 +1,26 @@
package jnpf.entity;
import lombok.Getter;
import lombok.Setter;
import java.util.Date;
@Getter
@Setter
public class InformationRubbish {
/** 主键id */
private String id;
/** 文件id */
private String informationId;
/** 创建时间 */
private Date creatorTime;
/** 创建用户 */
private String creatorUserId;
/** 租户id */
private String tenantId;
}

View File

@@ -0,0 +1,42 @@
package jnpf.entity;
import lombok.Getter;
import lombok.Setter;
import java.util.Date;
@Getter
@Setter
public class InfornationRecentlyViewed {
/**
* 主键id
*/
private String id;
/**
* 空间/文件夹/资料的id
*/
private String informationId;
/**
* 用户id
*/
private String userId;
/**
* 创建时间
*/
private Date creatorTime;
/**
* 修改时间
*/
private Date lastModifyTime;
/**
* 租户id
*/
private String tenantId;
}

View File

@@ -0,0 +1,50 @@
package jnpf.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
/**
* 巡店任务
*/
@Data
@TableName("ftb_patrol_task")
public class PatrolTaskEntity {
@TableId("F_ID")
private String id;
@TableField("F_ConfigId")
private String configId;
@TableField("F_TaskConfigId")
private String taskConfigId;
@TableField("F_State")
private Integer state;
@TableField("F_OverseeUserId")
private String overseeUserId;
@TableField("F_OverseeUserName")
private String overseeUserName;
@TableField("F_OrgId")
private String orgId;
@TableField("F_StoreId")
private String storeId;
@TableField("F_StartTime")
private Date startTime;
@TableField("F_EndTime")
private Date endTime;
@TableField("F_EnabledMark")
private Integer enabledMark;
}

View File

@@ -0,0 +1,94 @@
package jnpf.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import java.util.Date;
import lombok.Data;
/**
* <p>
* 权限字典表
* </p>
*
* @author Auto-generator
* @since 2023-11-21
*/
@Data
@TableName("ftb_permission_dict")
public class PermissionDict {
/**
* 主键
*/
@TableId("F_Id")
private String id;
/**
* 权限名称
*/
@TableField("F_Name")
private String name;
/**
* 权限请求路径
*/
@TableField("F_Path")
private String path;
/**
* 权限类型 1.目录 2.功能 3.菜单
*/
@TableField("F_Type")
private Integer type;
/**
* 权限模块 1.考勤
*/
@TableField("F_ModuleType")
private Integer moduleType;
/**
* 关联父级id
*/
@TableField("F_Parent")
private String parent;
/**
* 权限编码
*/
@TableField("F_PermissionCode")
private String permissionCode;
/**
* 创建用户id
*/
@TableField("F_CreatorUserId")
private String creatorUserId;
/**
* 创建时间
*/
@TableField("F_CreatorTime")
private Date creatorTime;
/**
* 租户id
*/
@TableField("F_TenantId")
private String tenantId;
/**
* 删除标志 1.是
*/
@TableField("F_DeleteMark")
private Integer deleteMark;
/**
* 删除用户id
*/
@TableField("F_DeleteUserId")
private String deleteUserId;
/**
* 最后修改时间
*/
@TableField("F_LastModifyTime")
private Date lastModifyTime;
/**
* 最后修改用户id
*/
@TableField("F_LastModifyUserId")
private String lastModifyUserId;
@TableField("F_DeleteTime")
private Date deleteTime;
}

View File

@@ -0,0 +1,46 @@
package jnpf.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.io.Serializable;
/**
* 轮播图
*
* @author yanwenfu
* @create 2023-10-10
*/
@Getter
@Setter
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName(value ="ftb_roll_image")
public class RollImage extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
/** 图片地址 */
@TableField(value = "F_Image_Url")
private String imageUrl;
/** 跳转地址 */
@TableField(value = "F_Jump_To")
private String jumpTo;
/** 图片类型 */
@TableField(value = "F_Image_Type")
private Integer imageType;
/** 是否发布(1: 是, 0: 否) */
@TableField(value = "F_Published")
private Integer published;
/** 排序 */
@TableField(value = "F_Sort")
private Integer sort;
/**
* banner类型0app1pc
*/
@TableField(value = "F_BannerType")
private Integer bannerType;
}

View File

@@ -0,0 +1,9 @@
package jnpf.entity;
import lombok.Data;
@Data
public class SharingSquareVO {
private String id;
}

View File

@@ -0,0 +1,110 @@
package jnpf.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
*
* 门店管理
* @版本: V3.1.0
* @版权: 引迈信息技术有限公司https://www.jnpfsoft.com
* @作者: JNPF开发平台组
* @日期: 2023-07-11
*/
@Data
@TableName("ftb_store")
public class StoreEntity {
@TableId("F_ID")
private String id;
@TableField("F_ORGANIZEID")
private String organizeid;
@TableField("F_STOREHEADUSERID")
private String storeheaduserid;
@TableField("F_STORENAME")
private String storename;
@TableField("F_STOREPIC")
private String storepic;
@TableField("F_LONGITUDE")
private String longitude;
@TableField("F_LATITUDE")
private String latitude;
@TableField("F_ADDRESS")
private String address;
@TableField("F_DISABLED")
private Integer disabled;
@TableField("F_SortCode")
private BigDecimal sortCode;
/**
* 面积(㎡)
*/
@TableField("F_AreaNum")
private BigDecimal areaNum;
/**
* 是否设置区域(1: 是, 0: 否)
*/
@TableField("F_SetRegion")
private Integer setRegion;
/** 第三方平台id; */
@TableField(value = "F_ThirdPartyPlatformId")
private String thirdPartyPlatformId;
@TableField(value = "F_StoreTag")
private String storeTag;
@TableField(value = "F_FranchiseeId")
private String franchiseeId;
/**
* 收银门店id;
*/
@TableField(value = "F_CashierStoreId")
private String cashierStoreId;
/** 收银门店编码; */
@TableField(value = "F_CashierStoreEnCode")
private String cashierStoreEnCode;
@TableField("F_CREATORUSERID")
private String creatoruserid;
@TableField("F_CREATORTIME")
private Date creatortime;
@TableField("F_LASTMODIFYUSERID")
private String lastmodifyuserid;
@TableField("F_LASTMODIFYTIME")
private Date lastmodifytime;
@TableField("F_DELETEMARK")
private boolean deletemark;
@TableField("F_DELETETIME")
private Date deletetime;
@TableField("F_DELETEUSERID")
private String deleteuserid;
@TableField("F_TENANTID")
private String tenantid;
@TableField(exist = false)
private List<StoreUserEntity> users;
}

View File

@@ -0,0 +1,86 @@
package jnpf.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
/**
* 门店区域管理表
*/
@Data
@TableName("ftb_store_region")
public class StoreRegion {
/**
* 自增id
*/
@TableId("F_ID")
private String id;
/**
* 门店id
*/
@TableField("F_StoreId")
private String storeId;
/**
* 是否默认数据0-否 1-是)
*/
@TableField("F_IsDefault")
private Integer isDefault;
/**
* 区域名称
*/
@TableField("F_Name")
private String name;
/**
* 桌台数
*/
@TableField("F_DeskCount")
private Integer deskCount;
/**
* 座位数
*/
@TableField("F_SeatCount")
private Integer seatCount;
/**
* 创建用户id
*/
@TableField("F_CreatorUserId")
private String creatorUserId;
/**
* 创建时间
*/
@TableField("F_CreatorTime")
private Date creatorTime;
/**
* 最后修改时间
*/
@TableField("F_LastModifyTime")
private Date lastModifyTime;
/**
* 最后修改用户id
*/
@TableField("F_LastModifyUserId")
private String lastModifyUserId;
/**
* 删除标志 1.是
*/
@TableField("F_DeleteMark")
private Integer deleteMark;
/**
* 删除时间
*/
@TableField("F_DeleteTime")
private Date deleteTime;
/**
* 删除用户id
*/
@TableField("F_DeleteUserId")
private String deleteUserId;
/**
* 租户id
*/
@TableField("F_TenantId")
private String tenantId;
}

View File

@@ -0,0 +1,70 @@
package jnpf.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
/**
* 门店管理, 值班人员表
*
* @版本: V3.1.0
* @版权: 引迈信息技术有限公司https://www.jnpfsoft.com
* @作者: JNPF开发平台组
* @日期: 2023-07-11
*/
@Data
@TableName("ftb_store_user")
public class StoreUserEntity {
@TableId("F_Id")
private String id;
@TableField("F_StoreId")
private String storeId;
@TableField("F_UserId")
private String userId;
@TableField("F_OrganizeId")
private String organizeId;
@TableField("F_PositionId")
private String positionId;
@TableField("F_GradeId")
private String gradeId;
@TableField("F_TargetType")
private String targetType;
// 过时, 实际业务流程未用
@TableField("F_SHIFTSMARKS")
private Boolean shiftsmarks;
@TableField("F_CREATORUSERID")
private String creatorUserId;
@TableField("F_CREATORTIME")
private Date creatorTime;
@TableField("F_LASTMODIFYUSERID")
private String lastModifyUserId;
@TableField("F_LASTMODIFYTIME")
private Date lastModifyTime;
@TableField("F_DELETEMARK")
private Integer deleteMark;
@TableField("F_DELETETIME")
private Date deleteTime;
@TableField("F_DELETEUSERID")
private String deleteUserId;
@TableField("F_TENANTID")
private String tenantTd;
}

View File

@@ -0,0 +1,42 @@
package jnpf.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
/**
* 用户门店关联表
*/
@Data
@TableName("ftb_store_user_relation")
public class StoreUserRelation {
@TableId("F_ID")
private String id;
@TableField("F_StoreId")
private String storeId;
@TableField("F_UserId")
private String userId;
@TableField("F_OrganizeId")
private String organizeId;
@TableField("F_PositionId")
private String positionId;
@TableField("F_RankId")
private String rankId;
@TableField("F_DeleteMark")
private Integer deleteMark;
@TableField("F_TenantId")
private String tenantId;
}

View File

@@ -0,0 +1,122 @@
package jnpf.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
/**
* <p>
* 考勤工作站配置表
* </p>
* @author AI Generated
* @since 2026-05-11
*/
@Data
@TableName("ftb_attendance_workstation")
public class Workstation {
/**
* 主键ID
*/
@TableId("F_Id")
private String id;
/**
* 工作站名称
*/
@TableField("F_Name")
private String name;
/**
* 门店ID
*/
@TableField("F_StoreId")
private String storeId;
/**
* 门店名称
*/
@TableField("F_StoreName")
private String storeName;
/**
* 岗位ID
*/
@TableField("F_PositionId")
private String positionId;
/**
* 岗位名称
*/
@TableField("F_PositionName")
private String positionName;
/**
* 排序码
*/
@TableField("F_SortCode")
private Integer sortCode;
/**
* 备注说明
*/
@TableField("F_Description")
private String description;
/**
* 创建人ID
*/
@TableField("F_CreatorUserId")
private String creatorUserId;
/**
* 创建时间
*/
@TableField("F_CreatorTime")
private Date creatorTime;
/**
* 修改人ID
*/
@TableField("F_LastModifyUserId")
private String lastModifyUserId;
/**
* 修改时间
*/
@TableField("F_LastModifyTime")
private Date lastModifyTime;
/**
* 删除标记(0正常/1删除)
*/
@TableField("F_DeleteMark")
private Integer deleteMark;
/**
* 删除人ID
*/
@TableField("F_DeleteUserId")
private String deleteUserId;
/**
* 删除时间
*/
@TableField("F_DeleteTime")
private Date deleteTime;
/**
* 租户ID
*/
@TableField("F_TenantId")
private String tenantId;
/**
* 有效标记(0禁用/1启用)
*/
@TableField("F_EnabledMark")
private Integer enabledMark;
}

View File

@@ -0,0 +1,74 @@
package jnpf.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
/**
* <p>
* 考勤工作站人员关联表
* </p>
* @author AI Generated
* @since 2026-05-11
*/
@Data
@TableName("ftb_attendance_workstation_user")
public class WorkstationUser {
/**
* 主键ID
*/
@TableId("F_Id")
private String id;
/**
* 工作站ID
*/
@TableField("F_WorkstationId")
private String workstationId;
/**
* 用户ID
*/
@TableField("F_UserId")
private String userId;
/**
* 创建人ID
*/
@TableField("F_CreatorUserId")
private String creatorUserId;
/**
* 创建时间
*/
@TableField("F_CreatorTime")
private Date creatorTime;
/**
* 删除标记(0正常/1删除)
*/
@TableField("F_DeleteMark")
private Integer deleteMark;
/**
* 删除人ID
*/
@TableField("F_DeleteUserId")
private String deleteUserId;
/**
* 删除时间
*/
@TableField("F_DeleteTime")
private Date deleteTime;
/**
* 租户ID
*/
@TableField("F_TenantId")
private String tenantId;
}

View File

@@ -0,0 +1,82 @@
package jnpf.entity.attendance;
import jnpf.enums.attendance.AttendanceTypeEnum;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.Date;
/**
* 申请参数类,用于封装申请相关的信息
*/
@Builder
@NoArgsConstructor
@Data
@AllArgsConstructor
public class ApplyParam {
// 考勤组ID
private String groupId;
// 用户ID
private String userId;
// 申请ID
private String applyId;
// 申请开始时间
private Date start;
// 申请结束时间
private Date end;
// 有效时长,以小时为单位
private BigDecimal validDuration;
// 出勤类型,如请假、加班等
private AttendanceTypeEnum attendanceType;
//开始时间类型 1 上半天 2 下半天
private Integer startTimeType;
//结束时间类型 1 上半天 2 下半天
private Integer endTimeType;
//请假类型单位 1 小时 2 天 3 半天
private Integer leaveUnit;
// 有效时长,以小时为单位
private BigDecimal validDay;
public ApplyParam(String userId, Date start, Date end, AttendanceTypeEnum attendanceType){
this.userId = userId;
this.start = start;
this.end = end;
this.attendanceType = attendanceType;
}
public ApplyParam(String userId, String applyId, Date start, Date end, BigDecimal validDuration, AttendanceTypeEnum attendanceType){
this.userId = userId;
this.applyId = applyId;
this.start = start;
this.end = end;
this.validDuration = validDuration;
this.attendanceType = attendanceType;
}
public ApplyParam(String userId, Date start, Date end, AttendanceTypeEnum attendanceType, Integer startTimeType, Integer endTimeType, Integer leaveUnit) {
this.userId = userId;
this.start = start;
this.end = end;
this.attendanceType = attendanceType;
this.startTimeType = startTimeType;
this.endTimeType = endTimeType;
this.leaveUnit = leaveUnit;
}
public ApplyParam(String userId, String applyId, Date startTime, Date endTime, BigDecimal validDuration, AttendanceTypeEnum attendanceTypeEnum, Integer startTimeType, Integer endTimeType, Integer leaveUnit, BigDecimal validDay) {
this.userId = userId;
this.applyId = applyId;
this.start = startTime;
this.end = endTime;
this.validDuration = validDuration;
this.attendanceType = attendanceTypeEnum;
this.startTimeType = startTimeType;
this.endTimeType = endTimeType;
this.leaveUnit = leaveUnit;
this.validDay = validDay;
}
}

View File

@@ -0,0 +1,18 @@
package jnpf.entity.attendance;
import lombok.Data;
/**
* @Author huanglinpan
* @Date 2024/11/19 14:21
* @Version 1.0 (版本号)
*/
@Data
public class AppointPermission {
/** 考勤组Id */
private String groupId;
/** 考勤组权限code */
private String permissionCode = "adjustResult";
}

View File

@@ -0,0 +1,78 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* 考勤App设置表
* @author yanwenfu
* @create 2024-08-08
*/
@Getter
@Setter
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName ( value ="ftb_attendance_app_setting" )
public class AttendanceAppSetting extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 5470565812422104769L;
/** 设置名称 */
@TableField(value = "F_SettingName")
private String settingName;
/** 编码 */
@TableField(value = "F_Code")
private String code;
/** 父级Id */
@TableField(value = "F_PId")
private String pId;
/** 路径 */
@TableField(value = "F_Path")
private String path;
/** 排序 */
@TableField(value = "F_Sort")
private Long sort;
/** 创建用户id */
@TableField(value = "F_CreatorUserId")
private String creatorUserId;
/** 创建时间 */
@TableField(value = "F_CreatorTime")
private Date creatorTime;
/** 租户id */
@TableField(value = "F_TenantId")
private String tenantId;
/** 删除标志 1.是 */
@TableField(value = "F_DeleteMark")
private Integer deleteMark;
/** 删除用户id */
@TableField(value = "F_DeleteUserId")
private String deleteUserId;
/** 最后修改时间 */
@TableField(value = "F_LastModifyTime")
private Date lastModifyTime;
/** 最后修改用户id */
@TableField(value = "F_LastModifyUserId")
private String lastModifyUserId;
}

View File

@@ -0,0 +1,44 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.io.Serializable;
/**
* 用户及考勤组设置详情
* @author yanwenfu
* @create 2024-08-08
*/
@Getter
@Setter
@NoArgsConstructor
@TableName(value = "ftb_attendance_app_user_setting")
public class AttendanceAppUserSetting implements Serializable {
private static final long serialVersionUID = 341450761466292067L;
/** 设置主表Id */
@TableField(value = "F_SettingId")
private String settingId;
/** 类型 1个人设置2考勤组设置 */
@TableField(value = "F_Type")
private Integer type;
/** 关联Id与类型一起使用个人时表示用户Id考勤组时表示考勤组Id */
@TableField(value = "F_AssociationId")
private String associationId;
/** 状态 1启用 0关闭 */
@TableField(value = "F_Status")
private Integer status;
/** 值: 涉及定时时间时使用 */
@TableField(value = "F_Value")
private Integer value;
}

View File

@@ -0,0 +1,16 @@
package jnpf.entity.attendance;
import jnpf.model.attendance.vo.AttendanceUserVo;
import lombok.Data;
import java.util.List;
@Data
public class AttendanceApprovalAdminVo {
/** 是否需要审批*/
private Boolean isApproval;
/** 管理员*/
private List<AttendanceUserVo> userList;
}

View File

@@ -0,0 +1,116 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* @author panpan
*/
@Getter
@Setter
@ToString
@TableName("ftb_attendance_balance_record")
public class AttendanceBalanceRecordEntity extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 节假日名称(2.0字段失效动态查)
*/
@TableField("F_Name")
private String name;
/**
* 类型 : 1.节日 2.假日 3.加班(存休)
*/
@TableField("F_Type")
private Integer type ;
/**
* 关联id和Type联合使用
*/
@TableField("F_Object_Id")
private String objectId;
/**
* 用户id
*/
@TableField("F_User_Id")
private String userId;
/**
* 余额
*/
@TableField("F_Balance")
private BigDecimal balance;
/**
* 加班类型: 1=工作日, 2=公休日, 3=节假日
*/
@TableField("F_OverTime")
private Integer overTime;
/**
* 加班日期
*/
@TableField("F_OverTimeDay")
private Date overTimeDay;
/**
* 总额
*/
@TableField("F_Total")
private BigDecimal total;
/**
* 单位 : 1 :小时 2: 天 (暂定只有天的劵)
*/
@TableField("F_Unit")
private Integer unit;
/**
* 过期时间
*/
@TableField("F_Expire_Time")
private Date expireTime;
/**
* 发放方式 0.自动发放 1.手动发放 2.审批发放(2.0字段失效)
*/
@TableField("F_Grant_Way")
private Integer grantWay;
/**
* 状态 0 正常 1 过期 2已停用
*/
@TableField("F_State")
private Integer state;
/**
* 是否使用完 0未使用完 1使用完
*/
@TableField("F_Over")
private Integer isOver;
/**
* 发券类型1兑换券 2抵扣券
*/
@TableField("F_Paid")
private Integer paid;
/**
* 节日名称 多个使用@分割
*/
@TableField("F_FestivalStr")
private String festivalStr;
}

View File

@@ -0,0 +1,73 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import lombok.*;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* @author panpan
*/
@Getter
@Setter
@ToString
@TableName("ftb_attendance_balance_use_record")
@AllArgsConstructor
@Builder
public class AttendanceBalanceUseRecord extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 考勤余额记录id
*/
@TableField("F_Balance_Id")
private String balanceId;
/**
* 使用额度
*/
@TableField("F_Quota")
private BigDecimal quota;
/**
* 单位 : 1 :小时 2: 天
*/
@TableField("F_Unit")
private Integer unit;
/**
* 使用方式 0: 审批 ,1:排班
*/
@TableField("F_Use_Type")
private Integer useType;
/**
* 关联id和useType联合使用
*/
@TableField("F_Object_Id")
private String objectId;
/**
* 使用开始时间
*/
@TableField("F_Start_Time")
private Date startTime;
/**
* 使用结束时间
*/
@TableField("F_End_Time")
private Date endTime;
/**
* 锁定: 1锁定 2已消费
*/
@TableField("F_Lock")
private Integer lock;
}

View File

@@ -0,0 +1,153 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import lombok.*;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 考勤基础设置表
* @author yanwenfu
* @create 2023-11-23
*/
@Getter
@Setter
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName ( value ="ftb_attendance_base_setting" )
@Builder
@AllArgsConstructor
public class AttendanceBaseSetting extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 2176483918810305559L;
/**
* 出勤换算比(n小时换算为一天)
*/
@TableField(value = "F_AttendanceRatio")
private BigDecimal attendanceRatio;
/**
* 加班是否发放余额(1不发 2天发 3小时发)
*/
@TableField(value = "F_OvertimeGrantType")
private Integer overtimeGrantType;
/**
* 加班换算比(n小时换算为一天)
*/
@TableField(value = "F_OvertimeRatio")
private BigDecimal overtimeRatio;
/**
* 内勤是否需要拍照 1:是, 0: 否)
*/
@TableField(value = "F_AttendancePhoto")
private Integer attendancePhoto;
/**
* 是否需要人脸识别 1 0
*/
@TableField(value = "F_Face")
private Integer face;
/**
* 是否允许晚走晚到(0-否 1-是)
*/
@TableField(value = "F_LateEarly")
private Integer lateEarly;
/**
* 晚走分钟数
*/
@TableField(value = "F_LateMinis")
private Integer lateMinis;
/**
* 晚到分钟数
*/
@TableField(value = "F_EarlyMinis")
private Integer earlyMinis;
/**
* 是否允许外勤打卡(1是 0否)
*/
@TableField(value = "F_FieldClockStatus")
private Integer fieldClockStatus;
/**
* 外勤是否需要审批(1: 是, 0: 否)
*/
@TableField(value = "F_ApproveEnable")
private Integer approveEnable;
/**
* 外勤是否需要拍照 1:是(默认), 0: 否)
*/
@TableField(value = "F_ShouldTakePhoto")
private Integer shouldTakePhoto;
/**
* 是否允许补卡(1是 0否)
*/
@TableField(value = "F_PatchClockStatus")
private Integer patchClockStatus;
/**
* 每月可以提交补卡次数
*/
@TableField(value = "F_PatchClockNumber")
private Integer patchClockNumber;
/**
* 补卡次数刷新日
*/
@TableField(value = "F_PatchRefreshDay")
private Integer patchRefreshDay;
/**
* 考勤组id
*/
@TableField(value = "F_GroupId")
private String groupId;
/**
* 是否启用0不启用 1启用
*/
@TableField(value = "F_Enable")
private Integer enable;
/**
* 补卡周期天数
*/
@TableField(value = "F_PatchCycleDay")
private Integer patchCycleDay;
/**
* 补卡类型(1: 迟到, 2: 早退, 3: 缺卡, 4: 旷工) 例1,2,3
*/
@TableField(value = "F_PatchType")
private String patchType;
/**
* 未排班是否可选择班次(0不可选 1可选)
*/
@TableField(value = "F_SelectRuleEnable")
private Integer selectRuleEnable;
/**
* 调整出勤是否需要审批(0不需要审批 1需要审批 2无法打卡)
*/
@TableField(value = "F_ModifyClockApplyEnable")
private Integer modifyClockApplyEnable;
/**
* 外勤人员选择类型1.全部 2.指定人员ftb_attendance_field_personnel表
*/
@TableField(value = "F_FilePersonnelType")
private Integer filePersonnelType;
}

View File

@@ -0,0 +1,123 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* 考勤本配置表
*
* 设计说明:
* 1. 考勤本配置独立管理,包含名称、使用范围、负责人等信息
* 2. 考勤记录表通过F_BookId关联到本配置表
* 3. 负责人和可排假期都支持多选,用逗号拼接存储
*
* @author Generated
* @create 2026-04-15
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("ftb_attendance_book_config")
public class AttendanceBookConfigEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId("F_Id")
private String id;
/**
* 考勤本名称
*/
@TableField("F_BookName")
private String bookName;
/**
* 使用范围类型0:全部 1:指定组织/成员)
*/
@TableField("F_ScopeType")
private Integer scopeType;
/**
* 考勤本负责人ID列表多个用逗号拼接
*/
@TableField("F_ManagerIds")
private String managerIds;
/**
* 可排假期范围类型1:全部假期 2:指定假期)
*/
@TableField("F_HolidayScopeType")
private Integer holidayScopeType;
/**
* 可排假期ID列表多个用逗号拼接
*/
@TableField("F_HolidayIds")
private String holidayIds;
/**
* 启用状态1:启用 0:禁用)
*/
@TableField("F_EnabledMark")
private Integer enabledMark;
/**
* 创建人ID
*/
@TableField("F_CreatorUserId")
private String creatorUserId;
/**
* 创建时间
*/
@TableField("F_CreatorTime")
private Date creatorTime;
/**
* 最后修改人ID
*/
@TableField("F_LastModifyUserId")
private String lastModifyUserId;
/**
* 最后修改时间
*/
@TableField("F_LastModifyTime")
private Date lastModifyTime;
/**
* 删除标识0:未删除 1:已删除)
*/
@TableField("F_DeleteMark")
private Integer deleteMark;
/**
* 删除时间
*/
@TableField("F_DeleteTime")
private Date deleteTime;
/**
* 删除人ID
*/
@TableField("F_DeleteUserId")
private String deleteUserId;
/**
* 租户ID
*/
@TableField("F_TenantId")
private String tenantId;
}

View File

@@ -0,0 +1,86 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
* 考勤本操作日志表
*
* @author Generated
* @create 2026-04-15
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("ftb_attendance_book_operation_log")
public class AttendanceBookOperationLogEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId("F_Id")
private String id;
/**
* 考勤本ID
*/
@TableField("F_BookId")
private String bookId;
/**
* 月份格式yyyy-MM
*/
@TableField("F_Month")
private String month;
/**
* 考勤记录ID(关联ftb_attendance_book_record表)
*/
@TableField("F_RecordId")
private String recordId;
/**
* 员工ID
*/
@TableField("F_EmployeeId")
private String employeeId;
/**
* 操作内容描述
*/
@TableField("F_OperationContent")
private String operationContent;
/**
* 操作人ID
*/
@TableField("F_OperatorId")
private String operatorId;
/**
* 操作人姓名
*/
@TableField("F_OperatorName")
private String operatorName;
/**
* 操作时间
*/
@TableField("F_OperationTime")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date operationTime;
}

View File

@@ -0,0 +1,132 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
* 考勤本记录表(轻量级手动标记)
*
* 设计原则:
* 1. 考勤本信息通过F_BookId关联去除删除标记逻辑删除由业务控制
* 2. 一天两条记录(上班卡、下班卡),独立标记状态
* 3. 纯状态标记,不记录具体打卡时间
* 4. 无审批关联,无未标记状态
* 5. 新增F_Month月份字段便于按月查询和统计
* 6. 新增F_LeaveType请假类型字段记录请假具体类型
* 7. 新增F_Remark备注字段记录额外说明信息
*
* @author Generated
* @create 2026-04-15
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("ftb_attendance_book_record")
public class AttendanceBookRecordEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId("F_Id")
private String id;
/**
* 考勤本ID
*/
@TableField("F_BookId")
private String bookId;
/**
* 考勤月份格式yyyy-MM
*/
@TableField("F_Month")
private String month;
/**
* 员工ID
*/
@TableField("F_UserId")
private String userId;
/**
* 考勤日期
*/
@TableField("F_Day")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date day;
/**
* 时段类型1:上班卡 2:下班卡)
*/
@TableField("F_PeriodType")
private Integer periodType;
/**
* 考勤状态1:正常 2:迟到 3:早退 4:缺卡 5:请假 6:出差 7:外出 8:加班)
* <p>insert/update 均使用 {@link FieldStrategy#IGNORED}:允许显式写入 NULL清空状态
* 避免被全局默认的 NOT_NULL 策略过滤掉。</p>
*/
@TableField(value = "F_AttendanceStatus", updateStrategy = FieldStrategy.IGNORED)
private Integer attendanceStatus;
/**
* 请假类型(如:事假、病假、年假、婚假、产假等)
* <p>insert/update 均使用 {@link FieldStrategy#IGNORED}:允许显式写入 NULL清空请假类型
* 避免被全局默认的 NOT_NULL 策略过滤掉。</p>
*/
@TableField(value = "F_LeaveType", updateStrategy = FieldStrategy.IGNORED)
private String leaveType;
/**
* 备注
*/
@TableField("F_Remark")
private String remark;
/**
* 创建用户
*/
@TableField("F_CreatorUserId")
private String creatorUserId;
/**
* 创建时间
*/
@TableField("F_CreatorTime")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date creatorTime;
/**
* 修改用户
*/
@TableField("F_LastModifyUserId")
private String lastModifyUserId;
/**
* 修改时间
*/
@TableField("F_LastModifyTime")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date lastModifyTime;
/**
* 租户ID
*/
@TableField("F_TenantId")
private String tenantId;
}

View File

@@ -0,0 +1,41 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import lombok.*;
import java.io.Serializable;
/**
* 考勤组-打卡记录-外勤照片表
* @author yanwenfu
* @create 2023-11-22
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName ( value ="ftb_attendance_clockin_pic" )
public class AttendanceClockInPic extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 8654200286159016717L;
/**
* 打卡id
*/
@TableField(value = "F_ClockInId")
private String clockInId;
/**
* 图片地址
*/
@TableField(value = "F_PicUrl")
private String picUrl;
/**
* 审批ID
*/
@TableField(value = "F_ApprovalCode")
private String approvalCode;
}

View File

@@ -0,0 +1,82 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import lombok.*;
import java.io.Serializable;
import java.util.Date;
/**
* 打卡结果实体类
*
* @author yanwenfu
* @create 2023-09-18
*/
@Getter
@Setter
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName(value ="ftb_attendance_clock_in_result")
@ToString
public class AttendanceClockInResult extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
/** 出勤规则id */
@TableField(value = "F_RuleId")
private String ruleId;
/** 用户id */
@TableField(value = "F_UserId")
private String userId;
/** 打卡id */
@TableField(value = "F_ClockInId")
private String clockInId;
/** 有效时间(工时计算时间) */
@TableField(value = "F_EffectiveTime")
private Date effectiveTime;
/** 打卡类型(1: 上班, 2: 下班) */
@TableField(value = "F_ClockInType")
private Integer clockInType;
/** 打卡状态(-2: 无需打卡, -1: 缺卡, 1: 正常, 2: 迟到, 3: 早退) */
@TableField(value = "F_ClockInStatus")
private Integer clockInStatus;
/** 打卡种类(1: 普通打卡, 2: 外勤打卡) */
@TableField(value = "F_ClockInKind")
private Integer clockInKind;
/** 是否补卡(1: 是, 0: 否) */
@TableField(value = "F_Repaired")
private Integer repaired;
/** 审批类型(1: 补卡, 2: 出勤变更, 3: 外勤) */
@TableField(value = "F_ApplyType")
private Integer applyType;
/** 审批id */
@TableField(value = "F_ApplyId")
private String applyId;
/** 是否缺勤(1: 是, 0: 否) */
@TableField(value = "F_Absence")
private Integer absence;
/** 打卡记录变更人 */
@TableField(value = "F_AbsenceLeader")
private String absenceLeader;
/** 上次打卡记录变更人 */
@TableField(value = "F_LastAbsenceLeader")
private String lastAbsenceLeader;
/** 休息时间(分钟) */
@TableField(value = "F_RestMinute")
private Integer restMinute;
/** 异常时长(秒) */
@TableField(value = "F_AbnormalMinute")
private Integer abnormalMinute;
/** 审批状态(0: 通过, 1: 审批中, 2: 拒绝) */
@TableField(exist = false)
private Integer approvalStatus;
@TableField(exist = false)
private String groupId;
@TableField(exist = false)
/** 旧结果id 用于重新匹配打卡记录时重新关联审批记录 */
private String oldResultId;
@TableField(exist = false)
private Date day;
@TableField(exist = false)
private Integer attendanceType;
}

View File

@@ -0,0 +1,42 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.io.Serializable;
/**
* @Description: 考勤云相册表
* @Author: shiTou(他是小石头)
* @Date: 2024-10-30 10:26
*/
@Getter
@Setter
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName(value = "ftb_attendance_cloud_album")
public class AttendanceCloudAlbum extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 8654200286159016717L;
/**
* 用户ID
*/
@TableField(value = "F_UserId")
private String userId;
/**
* 相册类型(1-外勤打卡图片)
*/
@TableField(value = "T_Type")
private Integer type;
/**
* 图片地址
*/
@TableField(value = "F_PicUrl")
private String picUrl;
}

View File

@@ -0,0 +1,46 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 考勤通用配置表
* @author yanwenfu
* @create 2025-09-17
*/
@Getter
@Setter
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName ( value ="ftb_attendance_common_setting" )
public class AttendanceCommonSetting extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 3820781190273568554L;
/** 配置组 */
@TableField(value = "F_SettingGroup")
private String settingGroup;
/** 配置key */
@TableField(value = "F_SettingKey")
private String settingKey;
/** 配置值 */
@TableField(value = "F_SettingValue")
private String settingValue;
public AttendanceCommonSetting(String id, String settingGroup, String settingKey, String settingValue, String userId) {
super.setId(id);
this.settingGroup = settingGroup;
this.settingKey = settingKey;
this.settingValue = settingValue;
super.setCreatorUserId(userId);
}
}

View File

@@ -0,0 +1,90 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* 考勤确认
*
* @author shitou
* @email shitou@niujiekeji.com
* @date 2024-11-07 09:33:43
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("ftb_attendance_confirm")
public class AttendanceConfirm implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId("F_Id")
private String id;
/**
* 确认年份
*/
@TableField("F_Year")
private Integer year;
/**
* 确认月份(1~12)
*/
@TableField("F_Month")
private Integer month;
/**
* 用户ID
*/
@TableField("F_UserId")
private String userId;
/**
* 确认状态(0-未查看 1-已查看未确认 2-已确认)
*/
@TableField("F_Status")
private Integer status;
/**
* 逾期结果(0-未逾期 1-自动确认 2-不可确认)
*/
@TableField("F_SlippageResult")
private Integer slippageResult;
/**
* 温馨提示是否关闭(0-否 1-是)
*/
@TableField("F_TipsStatus")
private Integer tipsStatus;
/**
* 开始确认时间
*/
@TableField("F_StartTime")
private Date startTime;
/**
* 结束确认时间
*/
@TableField("F_EndTime")
private Date endTime;
/**
* 确认详情数据
*/
@TableField("F_DetailData")
private String detailDataJson;
/**
* 创建时间
*/
@TableField("F_CreateTime")
private Date createTime;
/**
* 更新时间
*/
@TableField("F_UpdateTime")
private Date updateTime;
}

View File

@@ -0,0 +1,280 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 考勤确认详情
*
* @author shitou
* @email shitou@niujiekeji.com
* @date 2024-11-07 09:33:43
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("ftb_attendance_confirm_details")
public class AttendanceConfirmDetails implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId("F_Id")
private String id;
/**
* 用户id
*/
@TableField(exist = false)
private String userId;
/**
* 确认单ID
*/
@TableField("F_ConfirmId")
private String confirmId;
/**
* 存休天数
*/
@TableField("F_SaveRest")
private BigDecimal saveRest;
/**
* 使用假时长(小时)
*/
@TableField("F_LeaveDurationHours")
private BigDecimal leaveDurationHours;
/**
* 使用假时长(天)
*/
@TableField("F_LeaveDurationDays")
private BigDecimal leaveDurationDays;
/**
* 应出勤天数(天)
*/
@TableField("F_ShouldAttendDays")
private BigDecimal shouldAttendDays;
/**
* 应出勤工时(小时)
*/
@TableField("F_ShouldAttendHours")
private BigDecimal shouldAttendHours;
/**
* 实际出勤天数(天)
*/
@TableField("F_ActualAttendDays")
private BigDecimal actualAttendDays;
/**
* 实际出勤工时(小时)
*/
@TableField("F_ActualAttendHours")
private BigDecimal actualAttendHours;
/**
* 有效出勤工时(小时)
*/
@TableField("F_EffectiveAttendDays")
private BigDecimal effectiveAttendDays;
/**
* 有效出勤工时(小时)
*/
@TableField("F_EffectiveAttendHours")
private BigDecimal effectiveAttendHours;
/**
* 迟到次数(次数)
*/
@TableField("F_LateTimes")
private Integer lateTimes;
/**
* 迟到分钟数(分钟)
*/
@TableField("F_LateMinutes")
private BigDecimal lateMinutes;
/**
* 早退次数(次数)
*/
@TableField("F_EarlyLeaveTimes")
private Integer earlyLeaveTimes;
/**
* 早退分钟数(分钟)
*/
@TableField("F_EarlyLeaveMinutes")
private BigDecimal earlyLeaveMinutes;
/**
* 缺卡次数(次数)
*/
@TableField("F_AbsenceCardTimes")
private Integer absenceCardTimes;
/**
* 缺卡小时数(小时)
*/
@TableField("F_AbsenceCardHours")
private BigDecimal absenceCardHours;
/**
* 缺勤次数(次数)
*/
@TableField("F_AbsenceTimes")
private Integer absenceTimes;
/**
* 缺勤小时数(小时)
*/
@TableField("F_AbsenceHours")
private BigDecimal absenceHours;
/**
* 加班时长(小时)
*/
@TableField("F_OvertimeHours")
private BigDecimal overtimeHours;
/**
* 出差时长(天)
*/
@TableField("F_BusDays")
private BigDecimal busDays;
/**
* 外出时长(小时)
*/
@TableField("F_OutHours")
private BigDecimal outHours;
/**
* 外出时长(天)
*/
@TableField("F_OutDays")
private BigDecimal outDays;
/**
* 请假时长(小时)
*/
@TableField("F_LeaveHours")
private BigDecimal leaveHours;
/**
* 请假时长(天)
*/
@TableField("F_LeaveDays")
private BigDecimal leaveDays;
/**
* 未抵扣请假时长(小时)
*/
@TableField("F_UnDeductedLeaveHours")
private BigDecimal unDeductedLeaveHours;
/**
* 未抵扣请假时长(天)
*/
@TableField("F_UnDeductedLeaveDays")
private BigDecimal unDeductedLeaveDays;
/**
* 事假时长(小时)
*/
@TableField("F_ThingLeaveHours")
private BigDecimal thingLeaveHours;
/**
* 事假时长(天)
*/
@TableField("F_ThingLeaveDays")
private BigDecimal thingLeaveDays;
/**
* 病假时长(小时)
*/
@TableField("F_IllnessLeaveHours")
private BigDecimal illnessLeaveHours;
/**
* 病假时长(天)
*/
@TableField("F_IllnessLeaveDays")
private BigDecimal illnessLeaveDays;
/**
* 工伤假时长(小时)
*/
@TableField("F_InjuryLeaveHours")
private BigDecimal injuryLeaveHours;
/**
* 工伤假时长(天)
*/
@TableField("F_InjuryLeaveDays")
private BigDecimal injuryLeaveDays;
/**
* 年假时长(小时)
*/
@TableField("F_AnnualLeaveHours")
private BigDecimal annualLeaveHours;
/**
* 年假时长(天)
*/
@TableField("F_AnnualLeaveDays")
private BigDecimal annualLeaveDays;
/**
* 婚假时长(小时)
*/
@TableField("F_MarriageLeaveHours")
private BigDecimal marriageLeaveHours;
/**
* 婚假时长(天)
*/
@TableField("F_MarriageLeaveDays")
private BigDecimal marriageLeaveDays;
/**
* 产假时长(小时)
*/
@TableField("F_MaternityLeaveHours")
private BigDecimal maternityLeaveHours;
/**
* 产假时长(天)
*/
@TableField("F_MaternityLeaveDays")
private BigDecimal maternityLeaveDays;
/**
* 陪产假时长(小时)
*/
@TableField("F_PaternityLeaveHours")
private BigDecimal paternityLeaveHours;
/**
* 陪产假时长(天)
*/
@TableField("F_PaternityLeaveDays")
private BigDecimal paternityLeaveDays;
/**
* 丧假时长(小时)
*/
@TableField("F_FuneralLeaveHours")
private BigDecimal funeralLeaveHours;
/**
* 丧假时长(天)
*/
@TableField("F_FuneralLeaveDays")
private BigDecimal funeralLeaveDays;
/**
* 探亲假时长(小时)
*/
@TableField("F_HomeLeaveHours")
private BigDecimal homeLeaveHours;
/**
* 探亲假时长(天)
*/
@TableField("F_HomeLeaveDays")
private BigDecimal homeLeaveDays;
/**
* 小儿照护假时长(小时)
*/
@TableField("F_ChildcareLeaveHours")
private BigDecimal childcareLeaveHours;
/**
* 小儿照护假时长(天)
*/
@TableField("F_ChildcareLeaveDays")
private BigDecimal childcareLeaveDays;
/**
* 其他假时长(小时)
*/
@TableField("F_OtherLeaveHours")
private BigDecimal otherLeaveHours;
/**
* 其他假时长(天)
*/
@TableField("F_OtherLeaveDays")
private BigDecimal otherLeaveDays;
}

View File

@@ -0,0 +1,81 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* 考勤确认设置
*
* @author shitou
* @email shitou@niujiekeji.com
* @date 2024-11-07 09:33:43
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("ftb_attendance_confirm_setting")
public class AttendanceConfirmSetting implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId("F_Id")
private String id;
/**
* 确认月份(1-当前月份 2-上个月)
*/
@TableField("F_ConfirmMonth")
private Integer confirmMonth;
/**
* 每月几号允许确认
*/
@TableField("F_AllowConfirm")
private Integer allowConfirm;
/**
* 开始确认后几天内可确认
*/
@TableField("F_ConfirmDuration")
private Integer confirmDuration;
/**
* 逾期结果(1-自动确认 2-不可确认)
*/
@TableField("F_SlippageResult")
private Integer slippageResult;
/**
* 是否下次应用数据(0-否 1-是)
*/
@TableField("F_NextData")
private Integer nextData;
/**
* 创建时间
*/
@TableField("F_CreatorTime")
private Date creatorTime;
/**
* 创建用户
*/
@TableField("F_CreatorUserId")
private String creatorUserId;
/**
* 修改时间
*/
@TableField("F_LastModifyTime")
private Date lastModifyTime;
/**
* 修改用户
*/
@TableField("F_LastModifyUserId")
private String lastModifyUserId;
}

View File

@@ -0,0 +1,387 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 考勤日度统计表
*
* @author shitou
* @email shitou@niujiekeji.com
* @date 2024-06-24 09:33:43
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("ftb_attendance_day_statistics")
public class AttendanceDayStatistics implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId("F_Id")
private String id;
/**
* 用户ID
*/
@TableField("F_UserId")
private String userId;
/**
* 考勤组id
*/
@TableField("F_GroupId")
private String groupId;
/**
* 日期
*/
@TableField("F_Date")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date date;
/**
* 出勤换算比(n小时换算为一天)
*/
@TableField("F_AttendanceRatio")
private BigDecimal attendanceRatio;
/**
* 应出勤天数
*/
@TableField("F_ShouldAttendDays")
private BigDecimal shouldAttendDays;
/**
* 应出勤小时数
*/
@TableField("F_ShouldAttendHours")
private BigDecimal shouldAttendHours;
/**
* 应计薪小时数
*/
@TableField("F_ShouldAttendPayrollHours")
private BigDecimal shouldAttendPayrollHours;
/**
* 有效出勤天数
*/
@TableField("F_EffectiveAttendDays")
private BigDecimal effectiveAttendDays;
/**
* 有效出勤小时数
*/
@TableField("F_EffectiveAttendHours")
private BigDecimal effectiveAttendHours;
/**
* 有效出勤计薪小时数
*/
@TableField("F_EffectiveAttendPayrollHours")
private BigDecimal effectiveAttendPayrollHours;
/**
* 实际出勤天数
*/
@TableField("F_ActualAttendDays")
private BigDecimal actualAttendDays;
/**
* 实际出勤小时数
*/
@TableField("F_ActualAttendHours")
private BigDecimal actualAttendHours;
/**
* 实际出勤计薪小时数
*/
@TableField("F_ActualAttendPayrollHours")
private BigDecimal actualAttendPayrollHours;
/**
* 迟到次数
*/
@TableField("F_LateTimes")
private Integer lateTimes;
/**
* 迟到分钟数
*/
@TableField("F_LateMinutes")
private BigDecimal lateMinutes;
/**
* 早退次数
*/
@TableField("F_EarlyLeaveTimes")
private Integer earlyLeaveTimes;
/**
* 早退分钟数
*/
@TableField("F_EarlyLeaveMinutes")
private BigDecimal earlyLeaveMinutes;
/**
* 缺卡次数
*/
@TableField("F_AbsenceCardTimes")
private Integer absenceCardTimes;
/**
* 缺卡天数
*/
@TableField("F_AbsenceCardDays")
private BigDecimal absenceCardDays;
/**
* 缺卡小时数
*/
@TableField("F_AbsenceCardHours")
private BigDecimal absenceCardHours;
/**
* 缺卡计薪小时数
*/
@TableField("F_AbsenceCardPayrollHours")
private BigDecimal absenceCardPayrollHours;
/**
* 旷工次数
*/
@TableField("F_AbsenceTimes")
private Integer absenceTimes;
/**
* 旷工天数
*/
@TableField("F_AbsenceDays")
private BigDecimal absenceDays;
/**
* 旷工小时数
*/
@TableField("F_AbsenceHours")
private BigDecimal absenceHours;
/**
* 旷工计薪小时数
*/
@TableField("F_AbsencePayrollHours")
private BigDecimal absencePayrollHours;
/**
* 补卡次数
*/
@TableField("F_MakeUpCardTimes")
private Integer makeUpCardTimes;
/**
* 外勤次数
*/
@TableField("F_OutworkTimes")
private Integer outworkTimes;
/**
* 外勤天数
*/
@TableField("F_OutworkDays")
private BigDecimal outworkDays;
/**
* 外勤小时数
*/
@TableField("F_OutworkHours")
private BigDecimal outworkHours;
/**
* 外勤计薪小时数
*/
@TableField("F_OutworkPayrollHours")
private BigDecimal outworkPayrollHours;
/**
* 加班次数
*/
@TableField("F_OvertimeTimes")
private Integer overtimeTimes;
/**
* 加班小时数
*/
@TableField("F_OvertimeHours")
private BigDecimal overtimeHours;
/**
* 加班天数
*/
@TableField("F_OvertimeDays")
private BigDecimal overtimeDays;
/**
* 工作日加班次数
*/
@TableField("F_WeekdayOvertimeTimes")
private Integer weekdayOvertimeTimes;
/**
* 工作日加班天数
*/
@TableField("F_WeekdayOvertimeDays")
private BigDecimal weekdayOvertimeDays;
/**
* 工作日加班小时数
*/
@TableField("F_WeekdayOvertimeHours")
private BigDecimal weekdayOvertimeHours;
/**
* 节假日加班次数
*/
@TableField("F_HolidaysOvertimeTimes")
private Integer holidaysOvertimeTimes;
/**
* 节假日加班天数
*/
@TableField("F_HolidaysOvertimeDays")
private BigDecimal holidaysOvertimeDays;
/**
* 节假日加班小时数
*/
@TableField("F_HolidaysOvertimeHours")
private BigDecimal holidaysOvertimeHours;
/**
* 公休日加班次数
*/
@TableField("F_PublicHolidaysOvertimeTimes")
private Integer publicHolidaysOvertimeTimes;
/**
* 公休日加班天数
*/
@TableField("F_PublicHolidaysOvertimeDays")
private BigDecimal publicHolidaysOvertimeDays;
/**
* 公休日加班小时数
*/
@TableField("F_PublicHolidaysOvertimeHours")
private BigDecimal publicHolidaysOvertimeHours;
/**
* 公休天数
*/
@TableField("F_PublicHolidaysDays")
private BigDecimal publicHolidaysDays;
/**
* 公休小时数
*/
@TableField("F_PublicHolidaysHours")
private BigDecimal publicHolidaysHours;
/**
* 公休计薪小时数
*/
@TableField("F_PublicHolidaysPayrollHours")
private BigDecimal publicHolidaysPayrollHours;
/**
* 调休次数
*/
@TableField("F_CompensationTimes")
private Integer compensationTimes;
/**
* 调休天数
*/
@TableField("F_CompensationDays")
private BigDecimal compensationDays;
/**
* 调休小时数
*/
@TableField("F_CompensationHours")
private BigDecimal compensationHours;
/**
* 调休计薪小时数
*/
@TableField("F_CompensationPayrollHours")
private BigDecimal compensationPayrollHours;
/**
* 出差批次号
*/
@TableField("F_BusBatchNumber")
private String busBatchNumber;
/**
* 出差小时数
*/
@TableField("F_BusHours")
private BigDecimal busHours;
/**
* 出差天数
*/
@TableField("F_BusDays")
private BigDecimal busDays;
/**
* 外出批次号
*/
@TableField("F_OutBatchNumber")
private String outBatchNumber;
/**
* 外出小时数
*/
@TableField("F_OutHours")
private BigDecimal outHours;
/**
* 外出天数
*/
@TableField("F_OutDays")
private BigDecimal outDays;
/**
* 请假批次号
*/
@TableField("F_LeaveBatchNumber")
private String leaveBatchNumber;
/**
* 请假天数
*/
@TableField("F_LeaveDays")
private BigDecimal leaveDays;
/**
* 请假小时数
*/
@TableField("F_LeaveHours")
private BigDecimal leaveHours;
/**
* 请假计薪小时数
*/
@TableField("F_LeavePayrollHours")
private BigDecimal leavePayrollHours;
/**
* 班次json
*/
@TableField("F_ShiftsJson")
private String shiftsJson;
/**
* 是否借调(0-否 1-是)
*/
@TableField("F_SelfGroup")
private Integer selfGroup;
/**
* 是否排班(0-否 1-是)
*/
@TableField("F_IsScheduling")
private Integer isScheduling;
/**
* 是否需要打卡(0-否 1-是)
*/
@TableField("F_IsClocked")
private Integer isClocked;
/**
* 是否封账(0-未封账 1-已封账)
*/
@TableField("F_Seal")
private Integer seal;
/**
* 人员加入考勤组时间
*/
@TableField("F_JoinTime")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
private Date joinTime;
/**
* 创建时间
*/
@TableField("F_CreatorTime")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
private Date creatorTime;
/**
* 修改时间
*/
@TableField("F_LastModifyTime")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
private Date lastModifyTime;
/**
* 提醒时间
*/
@TableField("F_RemindTime")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
private Date remindTime;
/**
* 自定义假期Json
*/
@TableField("F_CustomLeaveJson")
private String customLeaveJson;
}

View File

@@ -0,0 +1,63 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import lombok.*;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 加班余额记录[不存休,仅记录]
* @author yanwenfu
* @create 2025-10-03
*/
@Getter
@Setter
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName ( value ="ftb_attendance_enable_balance" )
public class AttendanceEnableBalance extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 1115377435113592131L;
/** 考勤组 */
@TableField(value = "F_RuleId")
private String ruleId;
/** 加班类型: 1=工作日, 2=公休日, 3=节假日 */
@TableField(value = "F_OvertimeType")
private Integer overtimeType;
/** 用户 */
@TableField(value = "F_UserId")
private String userId;
/** 日期 */
@TableField(value = "F_Day")
private Date day;
/** 余额(小时) */
@TableField(value = "F_Balance")
private BigDecimal balance;
/**
* 节日名称 多个使用@分割
*/
@TableField("F_FestivalStr")
private String festivalStr;
@Builder
public AttendanceEnableBalance(String id, String ruleId, Integer overtimeType, String userId, Date day, BigDecimal balance, String festivalStr) {
super.setId(id);
this.ruleId = ruleId;
this.overtimeType = overtimeType;
this.userId = userId;
this.day = day;
this.balance = balance;
this.festivalStr = festivalStr;
}
}

View File

@@ -0,0 +1,93 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* @author panpan
* @description 考勤节日表
* @version V2.0
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("ftb_attendance_festival_rules")
public class AttendanceFestivalRules extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 8654200286159016797L;
/**
* 名称
*/
@TableField("F_Name")
private String name;
/**
* 开始日期
*/
@TableField("F_StartDate")
private Date startDate;
/**
* 结束日期
*/
@TableField("F_EndDate")
private Date endDate;
/**
* 节日日期
*/
@TableField("F_FestivalDate")
private String festivalDate;
/**
* 调休上班日期
*/
@TableField("F_CompensateInDate")
private String compensateInDate;
/**
* 每年同日自动更新开启时元旦更新1是 0
*/
@TableField("F_UpdateState")
private Integer updateState;
/**
* 适配范围0.全部1.指定组织/成员
*/
@TableField("F_ScopeOfAdaptation")
private Integer scopeOfAdaptation;
/**
* 是否自动排班 0.否 1.是
*/
@TableField("F_AutoScheduling")
private Integer autoScheduling;
/**
* 状态 0 未启用 1 启用
*/
@TableField("F_State")
private Integer state;
/**
* 年份
*/
@TableField("F_Year")
private String year;
}

View File

@@ -0,0 +1,189 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
* 考勤配置-节日配置
* </p>
*
* @author ahua
* @since 2023-11-29
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("ftb_attendance_festival_setting")
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AttendanceFestivalSettingEntity implements Serializable {
private static final long serialVersionUID = 1L;
@TableId("F_Id")
private String id;
/**
* 名称
*/
@TableField("F_Name")
private String name;
/**
* 开始日期
*/
@TableField("F_StartDate")
private Date startDate;
/**
* 结束日期
*/
@TableField("F_EndDate")
private Date endDate;
/**
* 节日日期
*/
@TableField("F_FestivalDate")
private String festivalDate;
/**
* 调休上班日期
*/
@TableField("F_CompensateInDate")
private String compensateInDate;
/**
* 时长
*/
@TableField("F_Day")
private Integer day;
/**
* 发放方式(0自动排班 1自动充值 2手动充值)
*/
@TableField("F_DistributeType")
private Integer distributeType;
/**
* 是否带薪1带薪 2非带薪
*/
@TableField("F_PaidSalaryEnable")
private Integer paidSalaryEnable;
/**
* 发放日期方式1每月 2每年指定日期
*/
@TableField("F_GiveType")
private Integer giveType;
/**
* 发放日期-月
*/
@TableField("F_GiveMonth")
private Integer giveMonth;
/**
* 发放日期-日
*/
@TableField("F_GiveDay")
private Integer giveDay;
/**
* 过期方式1过期天数 2每年指定日期 3永久
*/
@TableField("F_ExpiresType")
private Integer expiresType;
/**
* 过期设置-过期天数
*/
@TableField("F_ExpiresDayNumber")
private Integer expiresDayNumber;
/**
* 过期设置-月
*/
@TableField("F_ExpiresMonth")
private Integer expiresMonth;
/**
* 过期设置-日
*/
@TableField("F_ExpiresDay")
private Integer expiresDay;
/**
* 状态1启用 2停用
*/
@TableField("F_Enable")
private Integer enable;
/**
* 考勤组id
*/
@TableField("F_GroupId")
private String groupId;
/**
* 是否法定1法定 2非法定
*/
@TableField("F_StatutoryEnable")
private Integer statutoryEnable;
/**
* 创建时间
*/
@TableField("F_CreatorTime")
private Date creatorTime;
/**
* 创建用户
*/
@TableField("F_CreatorUserId")
private String creatorUserId;
/**
* 修改时间
*/
@TableField("F_LastModifyTime")
private Date lastModifyTime;
/**
* 修改用户
*/
@TableField("F_LastModifyUserId")
private String lastModifyUserId;
/**
* 删除时间
*/
@TableField("F_DeleteTime")
private Date deleteTime;
/**
* 删除用户
*/
@TableField("F_DeleteUserId")
private String deleteUserId;
/**
* 删除标志
*/
@TableField("F_DeleteMark")
private Integer deleteMark;
/**
* 租户id
*/
@TableField("F_TenantId")
private String tenantId;
}

View File

@@ -0,0 +1,40 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* 考勤组允许外勤人员名单
* @author yanwenfu
* @create 2025-02-17
*/
@Getter
@Setter
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName ( value ="ftb_attendance_field_personnel" )
public class AttendanceFieldPersonnel extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 1190925471047105327L;
/** 主键Id */
@TableField(value = "F_Id")
private String id;
/** 考勤组id */
@TableField(value = "F_GroupId")
private String groupId;
/** 可以外勤的用户Id */
@TableField(value = "F_UserId")
private String userId;
}

View File

@@ -0,0 +1,77 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import lombok.*;
/**
* <p>
* 固定班关联表
* </p>
*
* @author ahua
* @since 2024-05-10
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@EqualsAndHashCode(callSuper = false)
@TableName("ftb_attendance_fixed_class")
public class AttendanceFixedClassEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId("F_Id")
private String id;
/**
* 考勤配置id
*/
@TableField("F_SettingId")
private String settingId;
/**
* 考勤配置id
*/
@TableField("F_GroupId")
private String groupId;
/**
* 周几1-7
*/
@TableField("F_Num")
private Integer num;
/**
* 班次表Id
*/
@TableField(value = "F_ShiftNameId",updateStrategy = FieldStrategy.IGNORED)
private String shiftNameId;
/**
* 类型1组合班 0单独班
*/
@TableField("F_ShiftType")
private Integer shiftType;
/**
* 排序(上下顺序)
*/
@TableField("F_Sort")
private Integer sort;
/**
* 类型1 休 2 正常排班
*/
@TableField("F_Type")
private Integer type;
}

View File

@@ -0,0 +1,176 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableName;
import java.sql.Timestamp;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 考勤配置-假日设置
* </p>
*
* @author ahua
* @since 2023-11-29
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("ftb_attendance_holiday_setting")
public class AttendanceHolidaySettingEntity implements Serializable {
private static final long serialVersionUID = 1L;
@TableId("F_Id")
private String id;
/**
* 假期名称
*/
@TableField("F_Name")
private String name;
/**
* 计算时长方式1指定天数 2成员工龄司龄
*/
@TableField("F_DayType")
private Integer dayType;
/**
* 时长(当计算方式为成员工龄时则为基础天数)
*/
@TableField("F_DayNumber")
private Integer dayNumber;
/**
* 工龄倍数
*/
@TableField("F_YoeMultiple")
private Integer yoeMultiple;
/**
* 司龄倍数
*/
@TableField("F_YosMultiple")
private Integer yosMultiple;
/**
* 发放方式(1自动充值 2手动充值)
*/
@TableField("F_GiveType")
private Integer giveType;
/**
* 是否带薪1带薪 2非带薪
*/
@TableField("F_PaidSalaryEnable")
private Integer paidSalaryEnable;
/**
* 发放日期方式1每月 2每年指定日期,3成员生日 4成员入职日期
*/
@TableField("F_GiveDateType")
private Integer giveDateType;
/**
* 发放日期-月
*/
@TableField("F_GiveDateMonth")
private Integer giveDateMonth;
/**
* 发放日期-日
*/
@TableField("F_GiveDateDay")
private Integer giveDateDay;
/**
* 过期方式1过期天数 2每年指定日期 3永久
*/
@TableField("F_ExpiresType")
private Integer expiresType;
/**
* 过期设置-过期天数
*/
@TableField("F_ExpiresDayNumber")
private Integer expiresDayNumber;
/**
* 过期设置-月
*/
@TableField("F_ExpiresMonth")
private Integer expiresMonth;
/**
* 过期设置-日
*/
@TableField("F_ExpiresDay")
private Integer expiresDay;
/**
* 状态1启用 2停用
*/
@TableField("F_Enable")
private Integer enable;
/**
* 考勤组id
*/
@TableField("F_GroupId")
private String groupId;
/**
* 创建时间
*/
@TableField("F_CreatorTime")
private Date creatorTime;
/**
* 创建用户
*/
@TableField("F_CreatorUserId")
private String creatorUserId;
/**
* 修改时间
*/
@TableField("F_LastModifyTime")
private Date lastModifyTime;
/**
* 修改用户
*/
@TableField("F_LastModifyUserId")
private String lastModifyUserId;
/**
* 删除时间
*/
@TableField("F_DeleteTime")
private Date deleteTime;
/**
* 删除用户
*/
@TableField("F_DeleteUserId")
private String deleteUserId;
/**
* 删除标志
*/
@TableField("F_DeleteMark")
private Integer deleteMark;
/**
* 租户id
*/
@TableField("F_TenantId")
private String tenantId;
}

View File

@@ -0,0 +1,38 @@
package jnpf.entity.attendance;
import lombok.*;
import java.io.Serializable;
import java.util.Date;
/**
* 晚走晚到记录实体类
* 用于记录员工晚走晚到的考勤情况
*
* @author lingma
* @create 2025-09-22
*/
@Getter
@Setter
@NoArgsConstructor
@Builder
@AllArgsConstructor
public class AttendanceLateInLateOut implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 开始时间(下班时间)
*/
private Date startTime;
/**
* 结束时间(下次上班时间)
*/
private Date endTime;
/**
* 晚到分钟数
*/
private Integer lateMinis;
}

View File

@@ -0,0 +1,96 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author panpan
* @description 考勤假期发放设置表
* @version V2.0
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("ftb_attendance_leave_grant_setting")
public class AttendanceLeaveGrantSetting extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 8654200286159016797L;
/**
* 假期规则表主键Id
*/
@TableField("F_LeaveRulesId")
private String leaveRulesId;
/**
* 2.0假期类型Id
*/
@TableField("F_LeaveTypeId")
private String leaveTypeId;
/**
* 发放方式0.自动发放 1.手动发放
*/
@TableField("F_GrantType")
private Integer grantType;
/**
* 发放方式1.每月发放2.每年指定日期发放3.每年成员生日发放4.每年成员入职日期发放
*/
@TableField("F_GrantTimeType")
private Integer grantTimeType;
/**
* F_GrantTimeType=1使用每月发放的日期
*/
@TableField("F_MonthDay")
private Integer monthDay;
/**
* F_GrantTimeType=2使用每年指定日期发放 示列1-1
*/
@TableField("F_SpecifyDay")
private String specifyDay;
/**
* 发放时长类型1.指定天数 、2.成员司龄
*/
@TableField("F_GrantDurationType")
private Integer grantDurationType;
/**
* F_GrantDurationType=1,指定天数
*/
@TableField("F_SpecifyDayNum")
private Integer specifyDayNum;
/**
* F_GrantDurationType=2/3对应的公式json
*/
@TableField("F_FormulaJson")
private String formulaJson;
/**
* 过期类型0.永久1.自发放1月2.自发放1年
*/
@TableField("F_ExpiredType")
private Integer expiredType;
/**
* F_ExpiredType=1指定日期1月传30 F_ExpiredType=2一年传365
*/
@TableField("F_ExpiredDayNum")
private Integer expiredDayNum;
}

View File

@@ -0,0 +1,92 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author panpan
* @description 考勤假期规则表
* @version V2.0
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("ftb_attendance_leave_rules")
public class AttendanceLeaveRules extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 8654200286159016798L;
/**
* 假期名称
*/
@TableField("F_Name")
private String name;
/**
* 2.0假期类型Id
*/
@TableField("F_LeaveTypeId")
private String leaveTypeId;
/**
* 单位 : 1 :小时 2: 天 3:半天
*/
@TableField("F_Unit")
private Integer unit;
/**
* 类型编码 0 :其他 1事假 2病假 3工伤假 4年假 5婚假 6产假 7陪产假 8丧假 9探亲假 10小儿照护假
*/
@TableField("F_Type")
private Integer type;
/**
* 单次最大时长(天)
*/
@TableField("F_Duration")
private Integer duration;
/**
* 是否发放余额 0不发放 1发放余额
*/
@TableField("F_DistributeBalance")
private Integer distributeBalance;
/**
* 存休抵扣0.不能使用1.可以使用
*/
@TableField("F_RetirementLeave")
private Integer retirementLeave;
/**
* 适配范围0.全部1.指定组织/成员 -1 表示被其他规则挤后被其他规则占用
*/
@TableField("F_ScopeOfAdaptation")
private Integer scopeOfAdaptation;
/**
* 状态 0 未启用 1 启用
*/
@TableField("F_State")
private Integer state;
/**
* 内置 0:非内置 1:内置
*/
@TableField("F_BuiltIn")
private Integer builtIn;
}

View File

@@ -0,0 +1,36 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author panpan
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("ftb_attendance_leave_type")
public class AttendanceLeaveType extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 8654200286159016999L;
/**
* 假期类型名称
*/
@TableField("F_Name")
private String name;
/**
* 内置 0:非内置 1:内置
*/
@TableField("F_BuiltIn")
private Integer builtIn;
}

View File

@@ -0,0 +1,102 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import jnpf.util.ConstantUtil;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 考勤组-考勤点配置表
*
* @author yanwenfu
* @create 2023-11-23
*/
@Getter
@Setter
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName(value = "ftb_attendance_location_setting")
public class AttendanceLocationSetting extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 544929660727500368L;
/**
* 考勤组id
*/
@TableField(value = "F_GroupId")
private String groupId;
/**
* 打卡方式1GPS打卡 2WIFI打卡 3考勤机打卡
*/
@TableField(value = "F_Type")
private Integer type;
/**
* 考勤点名称
*/
@TableField(value = "F_Name")
private String name;
/**
* 考勤地址/MAC地址/考勤机ID
*/
@TableField(value = "F_Address")
private String address;
/**
* 厂商code(考勤机使用)
*/
@TableField(value = "F_FactoryCode")
private String factoryCode;
/**
* 范围(米)
*/
@TableField(value = "F_Range")
private Integer clockRange;
/**
* 是否启用
*/
@TableField(value = "F_Enable")
private Integer enable;
/**
* 经度
*/
@TableField(value = "F_Lng")
private String lng;
/**
* 维度
*/
@TableField(value = "F_Lat")
private String lat;
/**
* 门店id
*/
@TableField(value = "F_StoreId")
private String storeId;
@TableField(value = "F_DeleteMark")
private Integer deleteMark;
public AttendanceLocationSetting(String id, String groupId, String name, String address, String factoryCode) {
// id为考勤机管理的id
super.setId(id);
this.groupId = groupId;
this.type = ConstantUtil.DEVICE_MACHINE;
this.name = name;
this.address = address;
this.factoryCode = factoryCode;
this.enable = 1;
}
}

View File

@@ -0,0 +1,65 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.util.Date;
/**
* 考勤机日志
*
* @author yanwenfu
* @create 2024-07-30
*/
@Getter
@Setter
@NoArgsConstructor
@TableName(value ="ftb_attendance_machine_log")
public class AttendanceMachineLog {
@TableId("F_Id")
private String id;
@TableField(value = "F_FactoryCode")
private String factoryCode;
@TableField(value = "F_UserId")
private String userId;
@TableField(value = "F_UserName")
private String userName;
@TableField(value = "F_GroupId")
private String groupId;
@TableField(value = "F_GroupName")
private String groupName;
@TableField(value = "F_Action")
private String action;
@TableField(value = "F_ParamJson")
private String paramJson;
@TableField(value = "F_MethodResult")
private String methodResult;
@TableField(value = "F_CreatorTime")
private Date creatorTime;
public AttendanceMachineLog(String id, String factoryCode, String userId, String userName, String groupId, String groupName, String action, String paramJson, Date creatorTime) {
this.id = id;
this.factoryCode = factoryCode;
this.userId = userId;
this.userName = userName;
this.groupId = groupId;
this.groupName = groupName;
this.action = action;
this.paramJson = paramJson;
this.creatorTime = creatorTime;
}
}

View File

@@ -0,0 +1,51 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 考勤机管理
* @author yanwenfu
* @create 2024-09-10
*/
@Getter
@Setter
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName ( value ="ftb_attendance_machine_manage" )
public class AttendanceMachineManage extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 1201653095205863967L;
/** 考勤机名称 */
@TableField(value = "F_Name")
private String name;
/** mac地址 */
@TableField(value = "F_Mac")
private String mac;
/** 考勤机类型(enCode) */
@TableField(value = "F_Type")
private String type;
/** 类型名称 */
@TableField(value = "F_TypeName")
private String typeName;
/** 绑定考勤组(英文逗号分隔) */
@TableField(value = "F_GroupIds")
private String groupIds;
@TableField(exist = false)
private Integer orgCount;
@TableField(exist = false)
private Integer userCount;
}

View File

@@ -0,0 +1,58 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* 考勤机人脸库同步
* @author yanwenfu
* @create 2024-10-24
*/
@Getter
@Setter
@NoArgsConstructor
@TableName ( value ="ftb_attendance_machine_sync" )
public class AttendanceMachineSync implements Serializable {
private static final long serialVersionUID = 4022100422009659108L;
/** 主键 */
@TableId(value = "F_Id")
private String id;
/** mac地址 */
@TableField(value = "F_Mac")
private String mac;
/** 用户id */
@TableField(value = "F_UserId")
private String userId;
/** 用户编号 */
@TableField(value = "F_UserNo")
private String userNo;
/** 用户名称 */
@TableField(value = "F_UserName")
private String userName;
/** 创建时间 */
@TableField(value = "F_CreatorTime")
private Date creatorTime;
/** 修改时间 */
@TableField(value = "F_LastModifyTime")
private Date lastModifyTime;
/** 租户id */
@TableField(value = "F_TenantId")
private String tenantId;
}

View File

@@ -0,0 +1,77 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
* 考勤消息通知
*
* @author shitou
* @email shitou@niujiekeji.com
* @date 2024-08-08 10:49:41
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("ftb_attendance_notice")
public class AttendanceNoticeEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId("F_ID")
private String id;
/**
* 通知类型
*/
@TableField(value = "F_Type")
private Integer type;
/**
* 标题
*/
@TableField(value = "F_Title")
private String title;
/**
* 数据json
*/
@TableField(value = "F_DataJson")
private String dataJson;
/**
* 是否需要确认(0-否 1-是)
*/
@TableField(value = "F_IsConfirm")
private Integer isConfirm;
/**
* 确认列表({"用户ID":确认状态(0未确认 1已确认)})
*/
@TableField(value = "F_ConfirmList")
private String confirmList;
/**
* 创建时间
*/
@TableField(value = "F_CreatorTime")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date creatorTime;
/**
* 创建用户
*/
@TableField(value = "F_CreatorUserId")
private String creatorUserId;
/**
* 租户id
*/
@TableField(value = "F_TenantId")
private String tenantId;
}

View File

@@ -0,0 +1,38 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 加班规则表
* @author yanwenfu
* @create 2025-09-17
*/
@Getter
@Setter
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName ( value ="ftb_attendance_overtime_rule" )
public class AttendanceOvertimeRule extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 5520399653852253646L;
/** 规则名称 */
@TableField(value = "F_RuleName")
private String ruleName;
/** 适配范围(0: 全部, 1: 指定组织/成员) */
@TableField(value = "F_RuleScope")
private Integer ruleScope;
/** 是否启用: 0=停用, 1=启用 */
@TableField(value = "F_Enabled")
private Integer enabled;
}

View File

@@ -0,0 +1,60 @@
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 lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 加班规则明细表
* @author yanwenfu
* @create 2025-09-17
*/
@Getter
@Setter
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName ( value ="ftb_attendance_overtime_rule_detail" )
public class AttendanceOvertimeRuleDetail extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 4158553649730184629L;
/** 规则ID */
@TableField(value = "F_RuleId")
private String ruleId;
/** 加班类型: 1=工作日, 2=公休日, 3=节假日 */
@TableField(value = "F_OvertimeType")
private Integer overtimeType;
/** 该类型是否启用: 0=停用, 1=启用 */
@TableField(value = "F_Enabled")
private Integer enabled;
/** 时长单位: 1=小时, 2=半天, 3=天 */
@TableField(value = "F_TimeUnit")
private Integer timeUnit;
/** 计算方式: 1=按审批申请时长, 2=按审批时段打卡时长, 3=无需审批按打卡时长 */
@TableField(value = "F_CalcMethod")
private Integer calcMethod;
/** 加班存休: 1=根据加班时长, 2=不结算存休(仅记录/结算薪酬) */
@TableField(value = "F_CompensateType")
private Integer compensateType;
/** 时长换算存休倍数 */
@TableField(value = "F_CompensateRatio")
private BigDecimal compensateRatio;
/** 最小加班时间 */
@TableField(value = "F_MinOvertimeMinute", updateStrategy = FieldStrategy.IGNORED)
private Integer minOvertimeMinute;
}

View File

@@ -0,0 +1,93 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* @author panpan
* @description 考勤公休规则表
* @version V2.0
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("ftb_attendance_public_holiday_rules")
public class AttendancePublicHolidayRules extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 8654200286159016799L;
/**
* 公休规则名称
*/
@TableField("F_Name")
private String name;
/**
* 公休天数类型0:固定时长1按出勤时长
*/
@TableField("F_Type")
private Integer type;
/**
* type为0时固定时长天数、1时可公休天数
*/
@TableField("F_DayNum")
private Integer dayNum;
/**
* type=1时使用出勤天数
*/
@TableField("F_AttendanceDay")
private Integer attendanceDay;
/**
* 月末未用完转化类型0 转化为存休1 仅记录/发放薪资
*/
@TableField("F_TransformationType")
private Integer transformationType;
/**
* 有效期0.永久有效 1.固定天数过期2.指定日期过期
*/
@TableField("F_LifespanType")
private Integer lifespanType;
/**
* 固定过期天数
*/
@TableField("F_FixedDay")
private Integer fixedDay;
/**
* 指定过期时间 有效期为2时必填 格式MM-dd
*/
@TableField("F_SpecifyDay")
private String specifyDay;
/**
* 适配范围0.全部1.指定组织/成员
*/
@TableField("F_ScopeOfAdaptation")
private Integer scopeOfAdaptation;
/**
* 状态0.禁用1.启用
*/
@TableField("F_State")
private Integer state;
}

View File

@@ -0,0 +1,93 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.Builder;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
* 考勤配置-快速模板
* </p>
*
* @author ahua
* @since 2023-11-28
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("ftb_attendance_quick_template")
@Builder
public class AttendanceQuickTemplateEntity implements Serializable {
private static final long serialVersionUID = 1L;
@TableId("F_Id")
private String id;
/**
* 模板名称
*/
@TableField("F_Name")
private String name;
/**
* 考勤组id
*/
@TableField("F_GroupId")
private String groupId;
/**
* 创建时间
*/
@TableField("F_CreatorTime")
private Date creatorTime;
/**
* 创建用户
*/
@TableField("F_CreatorUserId")
private String creatorUserId;
/**
* 修改时间
*/
@TableField("F_LastModifyTime")
private Date lastModifyTime;
/**
* 修改用户
*/
@TableField("F_LastModifyUserId")
private String LastModifyUserId;
/**
* 删除时间
*/
@TableField("F_DeleteTime")
private Date deleteTime;
/**
* 删除用户
*/
@TableField("F_DeleteUserId")
private String deleteUserId;
/**
* 删除标志
*/
@TableField("F_DeleteMark")
private Integer deleteMark;
/**
* 租户id
*/
@TableField("F_TenantId")
private String tenantId;
}

View File

@@ -0,0 +1,50 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 快速模板-单天模板
* </p>
*
* @author ahua
* @since 2023-11-28
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("ftb_attendance_quick_template_item")
@Builder
public class AttendanceQuickTemplateItemEntity implements Serializable {
private static final long serialVersionUID = 1L;
@TableId("F_Id")
private String id;
/**
* 时段集合[{"type":"类型","name":"时段名称","periodId":"时段id"}]
*/
@TableField("F_Periods")
private String periods;
/**
* 排序
*/
@TableField("F_Sort")
private Integer sort;
/**
* 快速模板id
*/
@TableField("F_TemplateId")
private String templateId;
}

View File

@@ -0,0 +1,77 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import jnpf.util.FtbUtil;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
import java.util.Date;
/**
* null
* @author yanwenfu
* @create 2024-07-02
*/
@Getter
@Setter
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName ( value ="ftb_attendance_repair" )
public class AttendanceRepair extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 7621635660780352707L;
/** 考勤组id */
@TableField(value = "F_GroupId")
private String groupId;
/** 用户id */
@TableField(value = "F_UserId")
private String userId;
/** 生成年 */
@TableField(value = "F_GenerateYear")
private Integer generateYear;
/** 生成月 */
@TableField(value = "F_GenerateMonth")
private Integer generateMonth;
/** 生成日(刷新日) */
@TableField(value = "F_GenerateDay")
private Integer generateDay;
/** 补卡总次数 */
@TableField(value = "F_TotalNum")
private Integer totalNum;
/** 补卡次数 */
@TableField(value = "F_RepairNum")
private Integer repairNum;
/** 补卡记录(结果id英文逗号分隔) */
@TableField(value = "F_RepairRecord")
private String repairRecord;
/** 过期日期 */
@TableField(value = "F_ExpireDate")
private Date expireDate;
public AttendanceRepair(String groupId, String userId, Integer generateYear, Integer generateMonth, Integer generateDay, Integer totalNum, Date expireDate) {
super.setId(FtbUtil.getId());
this.groupId = groupId;
this.userId = userId;
this.generateYear = generateYear;
this.generateMonth = generateMonth;
this.generateDay = generateDay;
this.totalNum = totalNum;
this.repairNum = totalNum;
this.expireDate = expireDate;
}
}

View File

@@ -0,0 +1,88 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
import java.util.Date;
/**
* 考勤组-打卡结果回滚表
* @author yanwenfu
* @create 2024-11-11
*/
@Getter
@Setter
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName(value ="ftb_attendance_result_rollback")
public class AttendanceResultRollback extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 4096425765263025521L;
/** 出勤规则id */
@TableField(value = "F_RuleId")
private String ruleId;
/** 用户id */
@TableField(value = "F_UserId")
private String userId;
/** 打卡id */
@TableField(value = "F_ClockInId")
private String clockInId;
/** 有效时间(工时计算时间) */
@TableField(value = "F_EffectiveTime")
private Date effectiveTime;
/** 打卡类型(1: 上班, 2: 下班) */
@TableField(value = "F_ClockInType")
private Integer clockInType;
/** 打卡状态(-2: 无需打卡, -1: 缺卡, 1: 正常, 2: 迟到, 3: 早退) */
@TableField(value = "F_ClockInStatus")
private Integer clockInStatus;
/** 打卡种类(1: 普通打卡, 2: 外勤打卡) */
@TableField(value = "F_ClockInKind")
private Integer clockInKind;
/** 是否补卡(1: 是, 0: 否) */
@TableField(value = "F_Repaired")
private Integer repaired;
/** 审批类型(1: 补卡, 2: 出勤变更, 3: 外勤) */
@TableField(value = "F_ApplyType")
private Integer applyType;
/** 审批id */
@TableField(value = "F_ApplyId")
private String applyId;
/** 是否缺勤(1: 是, 0: 否) */
@TableField(value = "F_Absence")
private Integer absence;
/** 手动变更结果的用户id */
@TableField(value = "F_AbsenceLeader")
private String absenceLeader;
/** 上次手动变更结果的用户id */
@TableField(value = "F_LastAbsenceLeader")
private String lastAbsenceLeader;
/** 休息时间(分钟) */
@TableField(value = "F_RestMinute")
private Long restMinute;
/** 异常时长(秒) */
@TableField(value = "F_AbnormalMinute")
private Long abnormalMinute;
}

View File

@@ -0,0 +1,55 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* 规则适用范围
* @author yanwenfu
* @create 2025-09-18
*/
@Getter
@Setter
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName(value = "ftb_attendance_rule_scope")
public class AttendanceRuleScope extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 6372861354152546594L;
/** 用户id */
@TableField(exist = false)
private String userId;
/** 业务类型(ScopeBizType) */
@TableField(value = "F_BizType")
private String bizType;
/** 业务对应的规则/配置ID */
@TableField(value = "F_RuleId")
private String ruleId;
/** 1=个人, 2=组织, 3=全部 */
@TableField(value = "F_ScopeType")
private Integer scopeType;
/** 组织id/用户id */
@TableField(value = "F_ScopeValue")
private String scopeValue;
/** 优先级(数值越小越优先) */
@TableField(value = "F_Priority")
private Integer priority;
/** 扩展字段 */
@TableField(value = "F_Expand")
private String expand;
}

View File

@@ -0,0 +1,47 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import lombok.*;
import java.io.Serializable;
/**
* 考勤月度封账设置
*
* @author shitou
* @email shitou@niujiekeji.com
* @date 2024-06-24 09:33:43
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName("ftb_attendance_seal_setting")
public class AttendanceSealSetting extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 8654200286159016797L;
/**
* id
*/
@TableId("F_Id")
private String id;
/**
* 月度自动封账设置开关(0-关 1-开)
*/
@TableField("F_AutoSeal")
private Integer autoSeal;
/**
* 每月封账日期
*/
@TableField("F_SealDay")
private Integer sealDay;
/**
* 封账时间点(HH:mm)
*/
@TableField("F_SealTime")
private String sealTime;
}

View File

@@ -0,0 +1,124 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
* 班次表
* </p>
*
* @author ahua
* @since 2024-05-10
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("ftb_attendance_shift_name")
public class AttendanceShiftNameEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键Id
*/
@TableId("F_Id")
private String id;
/**
* 班次名称
*/
@TableField("F_Name")
private String name;
/**
* 简称
*/
@TableField("F_ShortName")
private String shortName;
/**
* 颜色
*/
@TableField("F_Colour")
private String colour;
/**
* 班制1全天制 2半天制
*/
@TableField("F_Type")
private Integer shiftType;
/**
* 考勤组id
*/
@TableField("F_GroupId")
private String groupId;
/**
* 考勤配置id
*/
@TableField("F_SettingId")
private String settingId;
/**
* 状态1启用 2停用
*/
@TableField("F_Enable")
private Integer enable;
/**
* 创建时间
*/
@TableField("F_CreatorTime")
private Date creatorTime;
/**
* 创建用户
*/
@TableField("F_CreatorUserId")
private String creatorUserId;
/**
* 修改时间
*/
@TableField("F_LastModifyTime")
private Date LastModifyTime;
/**
* 修改用户
*/
@TableField("F_LastModifyUserId")
private String LastModifyUserId;
/**
* 删除时间
*/
@TableField("F_DeleteTime")
private Date DeleteTime;
/**
* 删除用户
*/
@TableField("F_DeleteUserId")
private String DeleteUserId;
/**
* 删除标志
*/
@TableField("F_DeleteMark")
private Integer DeleteMark;
/**
* 租户id
*/
@TableField("F_TenantId")
private String TenantId;
}

View File

@@ -0,0 +1,119 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import java.util.Date;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
/**
* <p>
* 考勤组配置-考勤配置
* </p>
*
* @author ahua
* @since 2023-11-22
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("ftb_attendance_shift_setting")
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AttendanceShiftSettingEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId("F_Id")
private String id;
/**
* 班制类型1固定班 2排班
*/
@TableField("F_SystemType")
private Integer systemType;
/**
* 周期(1周一,2周二,3周三,4周四,5周五,6周六,7周日)
*/
@TableField("F_Cycle")
private String cycle;
/**
* 生效日期
*/
@TableField("F_EnableTime")
private Date enableTime;
/**
* 考勤组id
*/
@TableField("F_GroupId")
private String groupId;
/**
* 状态1启用 2停用
*/
@TableField("F_Enable")
private Integer enable;
/**
* 创建时间
*/
@TableField("F_CreatorTime")
private Date creatorTime;
/**
* 创建用户
*/
@TableField("F_CreatorUserId")
private String creatorUserId;
/**
* 修改时间
*/
@TableField("F_LastModifyTime")
private Date lastModifyTime;
/**
* 修改用户
*/
@TableField("F_LastModifyUserId")
private String lastModifyUserId;
/**
* 删除时间
*/
@TableField("F_DeleteTime")
private Date deleteTime;
/**
* 删除用户
*/
@TableField("F_DeleteUserId")
private String deleteUserId;
/**
* 删除标志
*/
@TableField("F_DeleteMark")
private Integer deleteMark;
/**
* 租户id
*/
@TableField("F_TenantId")
private String tenantId;
}

View File

@@ -0,0 +1,253 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.Max;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* <p>
* 考勤组-考勤配置-时段
* </p>
*
* @author ahua
* @since 2023-11-22
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("ftb_attendance_shift_setting_period")
public class AttendanceShiftSettingPeriodEntity implements Serializable {
private static final long serialVersionUID = 1L;
@TableId("F_Id")
private String id;
/**
* 时段工时(天 保留一位小数)
*/
@TableField("F_TimeSlotDay")
private BigDecimal timeSlotDay;
/**
* 计薪工时(小时 保留4位小数)
*/
@TableField("F_PayrollHours")
private BigDecimal payrollHours;
/**
* 班制类型1固定班 2排班
*/
@TableField("F_SystemType")
private Integer systemType;
/**
* 允许迟到(0否 1是)
*/
@TableField("F_LateEnable")
private Integer lateEnable;
/**
* 允许早退(0否 1是)
*/
@TableField("F_EarlyEnable")
private Integer earlyEnable;
/**
* 允许休息時間(0否 1是)
*/
@TableField("F_BreakEnable")
private Integer breakEnable;
/**
* 允许次日下班(0否 1是)
*/
@TableField("F_NextDayEnable")
private Integer nextDayEnable;
/**
* 打卡开始时间点
*/
@TableField("F_ClockStartPoint")
private String clockStartPoint;
/**
* 打卡开始时间点 当日还是次日1当日 2次日
*/
@TableField("F_ClockStartPointType")
private Integer clockStartPointType;
/**
* 上班时间点
*/
@TableField("F_InPoint")
private String inPoint;
/**
* 迟到时间点
*/
@TableField("F_LatePoint")
private String latePoint;
/**
* 迟到当日还是次日1当日 2次日
*/
@TableField("F_LateType")
private Integer lateType;
/**
* 上班缺卡时间点
*/
@TableField("F_InLackPoint")
private String inLackPoint;
/**
* 上班缺卡 当日还是次日1当日 2次日
*/
@TableField("F_InLackPointType")
private Integer inLackPointType;
/**
* 休息开始时间点
*/
@TableField("F_BreakStartPoint")
private String breakStartPoint;
/**
* 休息结束时间点
*/
@TableField("F_BreakEndPoint")
private String breakEndPoint;
/**
* 早退时间点
*/
@TableField("F_EarlyPoint")
private String earlyPoint;
/**
* 下班时间点
*/
@TableField("F_OutPoint")
private String outPoint;
/**
* 下班缺卡时间点
*/
@TableField("F_OutLackPoint")
private String outLackPoint;
/**
* 考勤配置id
*/
@TableField("F_SettingId")
private String settingId;
/**
* 考勤组id
*/
@TableField("F_GroupId")
private String groupId;
/**
* 创建时间
*/
@TableField("F_CreatorTime")
private Date creatorTime;
/**
* 创建用户
*/
@TableField("F_CreatorUserId")
private String creatorUserId;
/**
* 修改时间
*/
@TableField("F_LastModifyTime")
private Date lastModifyTime;
/**
* 修改用户
*/
@TableField("F_LastModifyUserId")
private String lastModifyUserId;
/**
* 删除时间
*/
@TableField("F_DeleteTime")
private Date deleteTime;
/**
* 删除用户
*/
@TableField("F_DeleteUserId")
private String deleteUserId;
/**
* 删除标志
*/
@TableField("F_DeleteMark")
private Integer deleteMark;
/**
* 租户id
*/
@TableField("F_TenantId")
private String tenantId;
/**
* 休息开始时间当日还是次日1当日 2次日
*/
@TableField("F_BreakStartType")
private Integer breakStartType;
/**
* 休息结束时间当日还是次日1当日 2次日
*/
@TableField("F_BreakEndType")
private Integer breakEndType;
/**
* 早退时间当日还是次日1当日 2次日
*/
@TableField("F_EarlyType")
private Integer earlyType;
/**
* 上班当日还是次日1当日 2次日
*/
@TableField("F_InType")
private Integer inType;
/**
* 下班当日还是次日1当日 2次日
*/
@TableField("F_OutType")
private Integer outType;
/**
* 下班缺卡当日还是次日1当日 2次日
*/
@TableField("F_OutLackType")
private Integer outLackType;
/**
* 排序
*/
@TableField("F_Sort")
private Integer sort;
/**
* 类型1 上半天 2 下半天 (半天制班次使用)
*/
@TableField("F_Type")
private Integer type;
@TableField("F_ShiftId")
private String shiftId;
}

View File

@@ -0,0 +1,41 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 考勤每月存休表
* @author yanwenfu
* @create 2024-07-01
*/
@Getter
@Setter
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName ( value ="ftb_attendance_storage_rest" )
public class AttendanceStorageRest extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 7493170924458007750L;
/** 用户id */
@TableField(value = "F_UserId")
private String userId;
/** 存休数字 */
@TableField(value = "F_Num")
private BigDecimal num;
/** 年月 */
@TableField(value = "F_YearMonth")
private String yearMonth;
}

View File

@@ -0,0 +1,46 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @author panpan
* @description 考勤存休详情表
* @version V2.0
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("ftb_attendance_user_balance_detail")
public class AttendanceUserBalanceDetail extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 8654200286159016795L;
/**
* 假日类型Idftb_attendance_leave_rules存休时为空
*/
@TableField("F_ObjectId")
private String objectId;
/**
* 余额记录文本
*/
@TableField("F_Content")
private String content;
/**
* 使用额度(分正负:负数时为使用,正数时为加余额)
*/
@TableField("F_Quota")
private BigDecimal quota;
}

View File

@@ -0,0 +1,47 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import lombok.*;
import java.io.Serializable;
import java.util.Date;
import java.util.Date;
/**
* 考勤机人脸数据
* @author yanwenfu
* @create 2023-11-30
*/
@Getter
@Setter
@NoArgsConstructor
@ToString
@EqualsAndHashCode(callSuper = true)
@TableName ( value ="ftb_attendance_user_face" )
public class AttendanceUserFace extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 1200303221087971700L;
/** 用户id */
@TableField(value = "F_UserId")
private String userId;
/** 人脸数据 */
@TableField(value = "F_FaceData")
private String faceData;
/** 人脸数据 - 缩略 */
@TableField(value = "F_FaceDataThumbnail")
private String faceDataThumbnail;
/** 人脸特征 */
@TableField(value = "F_FaceFeature")
private String faceFeature;
/** 同步状态(1: 成功, 0: 失败) */
@TableField(value = "F_SyncStatus")
private Integer syncStatus;
}

View File

@@ -0,0 +1,42 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 考勤机指纹数据
* @author yanwenfu
* @create 2024-03-04
*/
@Getter
@Setter
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName ( value ="ftb_attendance_user_fingerprint" )
public class AttendanceUserFingerprint extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 1689834591082631467L;
/** 用户id */
@TableField(value = "F_UserId")
private String userId;
/** 指纹id */
@TableField(value = "F_DataId")
private String dataId;
/** 指纹数据 */
@TableField(value = "F_Data")
private String data;
/** 指纹名称 */
@TableField(value = "F_DataName")
private String dataName;
}

View File

@@ -0,0 +1,38 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 用户常用设备
* @author yanwenfu
* @create 2025-09-17
*/
@Getter
@Setter
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName ( value ="ftb_attendance_user_phone" )
public class AttendanceUserPhone extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 424794400235021133L;
/** 用户id */
@TableField(value = "F_UserId")
private String userId;
/** 设备名称 */
@TableField(value = "F_PhoneName")
private String phoneName;
/** 设备编号 */
@TableField(value = "F_PhoneCode")
private String phoneCode;
}

View File

@@ -0,0 +1,47 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import jnpf.util.FtbUtil;
import lombok.*;
import java.io.Serializable;
import java.util.Date;
/**
* 出勤规则变更
* @author yanwenfu
* @create 2026-05-20
*/
@Getter
@Setter
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName ( value ="ftb_attendance_daily_rule_change" )
@Builder
@AllArgsConstructor
public class DailyRuleChange extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 5750485520731810904L;
/** 考勤组id */
@TableField(value = "F_GroupId")
private String groupId;
/** 用户id */
@TableField(value = "F_UserId")
private String userId;
/** 日期 */
@TableField(value = "F_Day")
private Date day;
public DailyRuleChange(String groupId, String userId, Date day, String tenantId) {
super.setId(FtbUtil.getId());
this.groupId = groupId;
this.userId = userId;
this.day = day;
super.setTenantId(tenantId);
}
}

View File

@@ -0,0 +1,117 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import jnpf.enums.attendance.ApplyTypeEnum;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
import java.util.Date;
/**
* 考勤组-打卡记录表
* @author yanwenfu
* @create 2023-11-22
*/
@Getter
@Setter
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName ( value ="ftb_attendance_clock_in" )
public class FtbAttendanceClockIn extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 8654200286159016717L;
/**
* 日期
*/
@TableField(value = "F_Day")
private Date day;
/**
* 用户id
*/
@TableField(value = "F_UserId")
private String userId;
/**
* 打卡时间
*/
@TableField(value = "F_ClockInTime")
private Date clockInTime;
/**
* 审批编码
*/
@TableField(value = "F_ApprovalCode")
private String approvalCode;
/**
* 审批类型
*/
@TableField(exist = false)
private ApplyTypeEnum applyType;
/**
* 审批状态(0: 通过, 1: 审批中, 2: 拒绝)
*/
@TableField(value = "F_ApprovalStatus")
private Integer approvalStatus;
/**
* 关联id(审批通过后删除关联记录)
*/
@TableField(value = "F_RelationId")
private String relationId;
/**
* 地址
*/
@TableField(value = "F_Address")
private String address;
/**
* 经度
*/
@TableField(value = "F_Lng")
private String lng;
/**
* 维度
*/
@TableField(value = "F_Lat")
private String lat;
/**
* 打卡种类(1: 普通打卡, 2: 外勤打卡)
*/
@TableField(value = "F_ClockInKind")
private Integer clockInKind;
/**
* 设备类型(1: 地点打卡, 2: 考勤机, 3: wifi)
*/
@TableField(value = "F_DeviceType")
private Integer deviceType;
/**
* 设备id(考勤机id/WiFi id)
*/
@TableField(value = "F_DeviceId")
private String deviceId;
/**
* 设备名称
*/
@TableField(value = "F_DeviceName")
private String deviceName;
/** 备注 */
@TableField(value = "F_Remark")
private String remark;
}

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;
}
}

View File

@@ -0,0 +1,49 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import lombok.*;
import java.io.Serializable;
/**
* 人脸变动记录
* @author yanwenfu
* @create 2025-04-14
*/
@Getter
@Setter
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName ( value ="ftb_attendance_face_change_log" )
public class FtbAttendanceFaceChangeLog extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 7895549838561202615L;
/** 被变动人id */
@TableField(value = "F_UserId")
private String userId;
/** 人脸id */
@TableField(value = "F_FaceId")
private String faceId;
/** 操作内容 */
@TableField(value = "F_Content")
private String content;
public FtbAttendanceFaceChangeLog(String userId, String content, String createBy) {
this.userId = userId;
this.content = content;
super.setCreatorUserId(createBy);
}
public FtbAttendanceFaceChangeLog(String userId, String faceId, String content, String createBy) {
this.userId = userId;
this.faceId = faceId;
this.content = content;
super.setCreatorUserId(createBy);
}
}

View File

@@ -0,0 +1,147 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.*;
import jnpf.model.attendance.vo.AttendanceGroupUserVo;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* 划线排班配置
*
* @author ahua
* @version 2.1
* @copyright 引迈信息技术有限公司https://www.jnpfsoft.com
* @date 2025-12-30
*/
@Getter
@Setter
@NoArgsConstructor
@TableName(value = "ftb_attendance_line_scheduling_config")
public class FtbAttendanceLineSchedulingConfig implements Serializable {
private static final long serialVersionUID = 1L;
@TableId("F_Id")
public String id;
/**
* 考勤组id
*/
@TableField(value = "F_GroupId")
private String groupId;
/**
* 划线排班员工类型
*/
@TableField(value = "F_EmployeeType")
private String employeeType;
/**
* 划线排班员工工作性质
*/
@TableField(value = "F_WorkNature")
private String workNature;
/**
* 划线排班员工岗位
*/
@TableField(value = "F_Position")
private String position;
/**
* 划线排班成员标识 0全部 1指定
*/
@TableField(value = "F_MembersType")
private Integer membersType = 1;
/**
* 划线排班成员
*/
@TableField(value = "F_Members")
private String members;
/**
* 划线排班成员列表
*/
@TableField(exist = false)
private List<AttendanceGroupUserVo> memberList;
/**
* 上班打卡限制时间(小时)
*/
@TableField(value = "F_StartCheckInLimit")
private BigDecimal startCheckInLimit;
/**
* 下班打卡限制时间(小时)
*/
@TableField(value = "F_EndCheckInLimit")
private BigDecimal endCheckInLimit;
/**
* 1当日 2次日
*/
@TableField(value = "F_StartType")
private Integer startType;
/**
* 开始时间
*/
@TableField(value = "F_StartTime")
private String startTime;
/**
* 1当日 2次日
*/
@TableField(value = "F_EndType")
private Integer endType;
/**
* 结束时间
*/
@TableField(value = "F_EndTime")
private String endTime;
/**
* 员工消息通知(是/否)
*/
@TableField(value = "F_EmployeeNotify")
private Integer employeeNotify;
/**
* 划线排班提前通知岗位
*/
@TableField(value = "F_NotifyPosition")
private String notifyPosition;
/**
* 划线排班提前通知人员
*/
@TableField(value = "F_NotifyPerson")
private String notifyPerson;
/**
* 划线排班提前通知人员列表
*/
@TableField(exist = false)
private List<AttendanceGroupUserVo> notifyPersonList;
/**
* 划线排班提前通知时间类型1每天/2每周/3每月
*/
@TableField(value = "F_NotifyTimeType")
private Integer notifyTimeType;
/**
* 划线排班提前通知时间
*/
@TableField(value = "F_NotifyTime", insertStrategy = FieldStrategy.IGNORED, updateStrategy = FieldStrategy.IGNORED)
private String notifyTime;
@TableField(
value = "F_LastModifyTime",
fill = FieldFill.UPDATE
)
private Date lastModifyTime;
@TableField(
value = "F_LastModifyUserId",
fill = FieldFill.UPDATE
)
private String lastModifyUserId;
}

View File

@@ -0,0 +1,95 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Builder;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 划线排班计薪工时表
*
* @author jnpf
* @since 2026-02-27
*/
@Data
@TableName("ftb_attendance_line_scheduling_payroll_hours")
@Builder
public class FtbAttendanceLineSchedulingPayrollHours implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId("F_Id")
private String id;
/**
* 用户ID
*/
@TableField("F_UserId")
private String userId;
/**
* 考勤组ID
*/
@TableField("F_GroupId")
private String groupId;
/**
* 日期
*/
@TableField("F_Day")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date day;
/**
* 计薪工时(小时)
*/
@TableField("F_PayrollHours")
private BigDecimal payrollHours;
/**
* 创建用户ID
*/
@TableField("F_CreatorUserId")
private String creatorUserId;
/**
* 创建时间
*/
@TableField("F_CreatorTime")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date creatorTime;
/**
* 租户ID
*/
@TableField("F_TenantId")
private String tenantId;
/**
* 删除标志0-未删除1-已删除)
*/
@TableField("F_DeleteMark")
private Integer deleteMark;
/**
* 最后修改时间
*/
@TableField("F_LastModifyTime")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date lastModifyTime;
/**
* 最后修改用户ID
*/
@TableField("F_LastModifyUserId")
private String lastModifyUserId;
}

View File

@@ -0,0 +1,67 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 考勤组划线排班参数。
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName(value = "ftb_attendance_group_drawing_param")
public class FtbScheduleGroupDrawingParamEntity implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "F_Id")
private String id;
@TableField(value = "F_GroupId")
private String groupId;
@TableField(value = "F_MaxDailySegmentsEnabled")
private Boolean maxDailySegmentsEnabled;
@TableField(value = "F_MaxDailySegmentsValue")
private Integer maxDailySegmentsValue;
@TableField(value = "F_MaxDailySegmentsPriority")
private Byte maxDailySegmentsPriority;
@TableField(value = "F_MaxSingleSegmentHoursEnabled")
private Boolean maxSingleSegmentHoursEnabled;
@TableField(value = "F_MaxSingleSegmentHoursValue")
private Integer maxSingleSegmentHoursValue;
@TableField(value = "F_MaxSingleSegmentHoursPriority")
private Byte maxSingleSegmentHoursPriority;
@TableField(value = "F_MinSingleSegmentHoursEnabled")
private Boolean minSingleSegmentHoursEnabled;
@TableField(value = "F_MinSingleSegmentHoursValue")
private BigDecimal minSingleSegmentHoursValue;
@TableField(value = "F_MinSingleSegmentHoursPriority")
private Byte minSingleSegmentHoursPriority;
@TableField(value = "F_CreateTime")
private Date createTime;
@TableField(value = "F_UpdateTime")
private Date updateTime;
@TableField(value = "F_Creator")
private String creator;
@TableField(value = "F_Updater")
private String updater;
}

View File

@@ -0,0 +1,84 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
/**
* 考勤组固定排班核心参数。
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName(value = "ftb_attendance_group_fixed_param")
public class FtbScheduleGroupFixedParamEntity implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "F_Id")
private String id;
@TableField(value = "F_GroupId")
private String groupId;
@TableField(value = "F_DailyWorkHoursEnabled")
private Boolean dailyWorkHoursEnabled;
@TableField(value = "F_DailyWorkHoursValue")
private Integer dailyWorkHoursValue;
@TableField(value = "F_DailyWorkHoursPriority")
private Byte dailyWorkHoursPriority;
@TableField(value = "F_ConsecutiveWorkDaysEnabled")
private Boolean consecutiveWorkDaysEnabled;
@TableField(value = "F_ConsecutiveWorkDaysValue")
private Integer consecutiveWorkDaysValue;
@TableField(value = "F_ConsecutiveWorkDaysPriority")
private Byte consecutiveWorkDaysPriority;
@TableField(value = "F_WeeklyWorkDaysEnabled")
private Boolean weeklyWorkDaysEnabled;
@TableField(value = "F_WeeklyWorkDaysValue")
private Integer weeklyWorkDaysValue;
@TableField(value = "F_WeeklyWorkDaysPriority")
private Byte weeklyWorkDaysPriority;
@TableField(value = "F_WeeklyWorkHoursEnabled")
private Boolean weeklyWorkHoursEnabled;
@TableField(value = "F_WeeklyWorkHoursValue")
private Integer weeklyWorkHoursValue;
@TableField(value = "F_WeeklyWorkHoursPriority")
private Byte weeklyWorkHoursPriority;
@TableField(value = "F_MinRestBetweenShiftsEnabled")
private Boolean minRestBetweenShiftsEnabled;
@TableField(value = "F_MinRestBetweenShiftsValue")
private Integer minRestBetweenShiftsValue;
@TableField(value = "F_MinRestBetweenShiftsPriority")
private Byte minRestBetweenShiftsPriority;
@TableField(value = "F_CreateTime")
private Date createTime;
@TableField(value = "F_UpdateTime")
private Date updateTime;
@TableField(value = "F_Creator")
private String creator;
@TableField(value = "F_Updater")
private String updater;
}

View File

@@ -0,0 +1,58 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 考勤组营业额对应增配人数。
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName(value = "ftb_schedule_group_revenue_staffing")
public class FtbScheduleGroupRevenueStaffingEntity implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "F_Id")
private String id;
@TableField(value = "F_GroupId")
private String groupId;
@TableField(value = "F_Enabled")
private Boolean enabled;
@TableField(value = "F_PriorityLevel")
private Byte priorityLevel;
@TableField(value = "F_CoefficientBase")
private BigDecimal coefficientBase;
@TableField(value = "F_StaffAddOnStart")
private Integer staffAddOnStart;
@TableField(value = "F_CoefficientStep")
private BigDecimal coefficientStep;
@TableField(value = "F_StaffAddPerStep")
private Integer staffAddPerStep;
@TableField(value = "F_CreateTime")
private Date createTime;
@TableField(value = "F_UpdateTime")
private Date updateTime;
@TableField(value = "F_Creator")
private String creator;
@TableField(value = "F_Updater")
private String updater;
}

View File

@@ -0,0 +1,58 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalTime;
import java.util.Date;
/**
* 考勤组时段(扁平一行;接口按班次聚合为多段 list
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName(value = "ftb_schedule_group_timeslot")
public class FtbScheduleGroupTimeslotEntity implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "F_Id")
private String id;
@TableField(value = "F_GroupId")
private String groupId;
@TableField(value = "F_ShiftId")
private String shiftId;
@TableField(value = "F_ShiftName")
private String shiftName;
@TableField(value = "F_StartTime")
private LocalTime startTime;
@TableField(value = "F_EndTime")
private LocalTime endTime;
@TableField(value = "F_StartCrossDay")
private Integer startCrossDay;
@TableField(value = "F_EndCrossDay")
private Integer endCrossDay;
@TableField(value = "F_CreateTime")
private Date createTime;
@TableField(value = "F_UpdateTime")
private Date updateTime;
@TableField(value = "F_Creator")
private String creator;
@TableField(value = "F_Updater")
private String updater;
}

View File

@@ -0,0 +1,60 @@
package jnpf.entity.attendance;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
/**
* 考勤组班次工作站人数。
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName(value = "ftb_schedule_group_timeslot_staffing")
public class FtbScheduleGroupTimeslotStaffingEntity implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "F_Id")
private String id;
@TableField(value = "F_GroupId")
private String groupId;
@TableField(value = "F_ShiftId")
private String shiftId;
@TableField(value = "F_ShiftName")
private String shiftName;
@TableField(value = "F_WorkstationCode")
private String workstationCode;
@TableField(value = "F_WorkstationName")
private String workstationName;
@TableField(value = "F_MinStaff")
private Integer minStaff;
@TableField(value = "F_MaxStaff")
private Integer maxStaff;
@TableField(value = "F_SortCode")
private Integer sortCode;
@TableField(value = "F_CreateTime")
private Date createTime;
@TableField(value = "F_UpdateTime")
private Date updateTime;
@TableField(value = "F_Creator")
private String creator;
@TableField(value = "F_Updater")
private String updater;
}

View File

@@ -0,0 +1,32 @@
package jnpf.entity.attendance;
import jnpf.enums.attendance.AttendanceTypeEnum;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.Date;
/**
* 申请参数类,用于封装申请相关的信息
*/
@Builder
@NoArgsConstructor
@Data
@AllArgsConstructor
public class LeaveParam {
// 申请开始时间
private Date start;
// 申请结束时间
private Date end;
//开始时间类型 1 上半天 2 下半天
private Integer startTimeType;
//结束时间类型 1 上半天 2 下半天
private Integer endTimeType;
//请假类型单位 1 小时 2 天 3 半天
private Integer leaveUnit;
}

View File

@@ -0,0 +1,187 @@
package jnpf.entity.cultivate;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 实操鉴定申请表
*
* @author shitou
* @email shitou@niujiekeji.com
* @date 2023-12-19 11:10:53
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("ftb_cultivate_identify_apply")
public class CultivateIdentifyApply extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 鉴定表主键ID
*/
@TableField("F_TableId")
private String tableId;
/**
* 鉴定名称
*/
@TableField("F_Name")
private String name;
/**
* 被鉴定人用户id
*/
@TableField("F_BeIdentifyUserId")
private String beIdentifyUserId;
/**
* 鉴定人组织集合
*/
@TableField("F_BeIdentifyOrgList")
private String beIdentifyOrgList;
/**
* 被鉴定人信息
*/
@TableField("F_BeOfficialRankInfoJson")
private String beOfficialRankInfoJson;
/**
* 鉴定人用户id
*/
@TableField("F_IdentifyUserId")
private String identifyUserId;
/**
* 鉴定人组织集合
*/
@TableField("F_IdentifyOrgList")
private String identifyOrgList;
/**
* 鉴定人职等信息
*/
@TableField("F_OfficialRankInfoJson")
private String officialRankInfoJson;
/**
* 是否选择鉴定人(0-未选择1-已选择)
*/
@TableField("F_IsChoose")
private Integer isChoose;
/**
* 鉴定结果是否告知,0告知,1不告知
*/
@TableField("F_AppraisalResults")
private Integer appraisalResults;
/**
* 学习完成时间
*/
@TableField("F_StudyFinishTime")
private Date studyFinishTime;
/**
* 计划鉴定时间
*/
@TableField("F_PlanIdentifyTime")
private Date planIdentifyTime;
/**
* 是否提醒(0-否 1-是)
*/
@TableField("F_IsRemind")
private Integer isRemind;
/**
* 鉴定时间
*/
@TableField("F_IdentifyTime")
private Date identifyTime;
/**
* 用时(单位分钟)
*/
@TableField("F_UseTime")
private Integer useTime;
/**
* 鉴定状态(0待鉴定1已鉴定2逾期未鉴定)
*/
@TableField("F_Status")
private Integer status;
/**
* 鉴定结果(0合格1优秀2不合格)
*/
@TableField("F_Result")
private Integer result;
/**
* 鉴定来源(0-手动发起1-课程学习鉴定2-岗位学习鉴定3-本人申请,4-任务鉴定)
*/
@TableField("F_Source")
private Integer source;
/**
* 鉴定来源id
*/
@TableField("F_SourceId")
private String sourceId;
/**
* 是否重新鉴定(0-否 1-是)
*/
@TableField("F_IsReIdentify")
private Integer isReIdentify;
/**
* 是否发起过从新鉴定(0-否 1-是)
*/
@TableField("F_IsInitiate")
private Integer isInitiate;
/**
* 重新鉴定关联id
*/
@TableField("F_ReIdentifyId")
private String reIdentifyId;
/**
* 考试合格可见性 0,可见, 1不可见
*/
@TableField("F_IsVisible")
private Integer isVisible;
@TableField("F_PostId")
private String postId;
/**
* 是否是离职删除 0-否 1-是
*/
@TableField(value = "F_LeaveOut")
private Integer leaveOut;
/**
* 总分
*/
@TableField("F_TotalScore")
private BigDecimal totalScore;
/**
* 得分
*/
@TableField("F_UserTotalScore")
private BigDecimal userTotalScore;
/**
* 原始鉴定表主键 ID
*/
@TableField("F_OriginalTableId")
private String originalTableId;
/**
* 等级名称
*/
@TableField("F_GradeName")
private String gradeName;
/**
* 阶段ID
*/
@TableField("F_PhaseId")
private String phaseId;
}

View File

@@ -0,0 +1,48 @@
package jnpf.entity.cultivate;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 实操鉴定申请详情表
*
* @author shitou
* @email shitou@niujiekeji.com
* @date 2023-12-19 11:10:53
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("ftb_cultivate_identify_apply_details")
public class CultivateIdentifyApplyDetails extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 鉴定申请ID
*/
@TableField("F_ApplyId")
private String applyId;
/**
* 鉴定项ID
*/
@TableField("F_ItemsId")
private String itemsId;
/**
* 鉴定项得分
*/
@TableField("F_Score")
private BigDecimal score;
/**
* 鉴定项备注
*/
@TableField("F_Remark")
private String remark;
}

View File

@@ -0,0 +1,68 @@
package jnpf.entity.cultivate;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 实操鉴定项_关联_鉴定表
*
* @author shitou
* @email shitou@niujiekeji.com
* @date 2023-12-19 11:10:53
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("ftb_cultivate_identify_apply_details_backups")
public class CultivateIdentifyApplyDetailsBackups extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 鉴定项主键ID
*/
@TableField("F_ItemsId")
private String itemsId;
/**
* 鉴定表主键ID
*/
@TableField("F_TableId")
private String tableId;
/**
* 鉴定项内容
*/
@TableField("F_Name")
private String name;
/**
* 鉴定项分值
*/
@TableField("F_TotalScore")
private BigDecimal score;
/**
* 鉴定项分值类型 0-固定 1-浮动
*/
@TableField("F_Type")
private Integer type;
/**
* 最低分值(浮动分时有效)
*/
@TableField("F_MinScore")
private Integer minScore;
/**
* 最高分值(浮动分时有效)
*/
@TableField("F_MaxScore")
private Integer maxScore;
/**
* 排序码
*/
@TableField("F_SortCode")
private Integer sortCode;
}

View File

@@ -0,0 +1,101 @@
package jnpf.entity.cultivate;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 实操鉴定申请_关联_鉴定表
*
* @author shitou
* @email shitou@niujiekeji.com
* @date 2023-12-19 11:10:53
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("ftb_cultivate_identify_apply_table_backups")
public class CultivateIdentifyApplyTableBackups extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 关联鉴定表id
*/
@TableField("F_TableId")
private String tableId;
/**
* 鉴定名称
*/
@TableField("F_Name")
private String name;
/**
* 鉴定表规则ID生成规则见原型
*/
@TableField("F_RuleId")
private String ruleId;
/**
* 规则说明
*/
@TableField("F_RuleDesc")
private String ruleDesc;
/**
* 合格分数类型1固定分2百分比
*/
@TableField("F_PassType")
private Integer passType;
/**
* 合格分数
*/
@TableField("F_PassScore")
private BigDecimal passScore;
/**
* 优秀分数类型1固定分2百分比
*/
@TableField("F_ExcellentType")
private Integer excellentType;
/**
* 优秀分数
*/
@TableField("F_ExcellentScore")
private BigDecimal excellentScore;
/**
* 课程封面Id
*/
@TableField("F_CoverId")
private String coverId;
/**
* 任务封面Url
*/
@TableField("F_CoverUrl")
private String coverUrl;
/**
* 分类idftb_cultivate_label.type为2
*/
@TableField("F_LabelId")
private String labelId;
/**
* 鉴定评分类型0-等第制1-等级制
*/
@TableField("F_ScoreType")
private Integer scoreType;
/**
* 等级制配置
*/
@TableField("F_ScoreConfig")
private String scoreConfig;
/**
* 证书id
*/
@TableField("F_CertificateId")
private String certificateId;
}

View File

@@ -0,0 +1,83 @@
package jnpf.entity.cultivate;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 实操鉴定项表
*
* @author shitou
* @email shitou@niujiekeji.com
* @date 2023-12-19 11:10:53
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("ftb_cultivate_identify_items")
public class CultivateIdentifyItems extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 鉴定表主键ID
*/
@TableField("F_TableId")
private String tableId;
/**
* 鉴定项内容
*/
@TableField("F_Name")
private String name;
/**
* 鉴定项分值
*/
@TableField("F_TotalScore")
private BigDecimal score;
/**
* 鉴定项分值类型 0-固定 1-浮动
*/
@TableField("F_Type")
private Integer type;
/**
* 最低分值(浮动分时有效)
*/
@TableField("F_MinScore")
private Integer minScore;
/**
* 最高分值(浮动分时有效)
*/
@TableField("F_MaxScore")
private Integer maxScore;
/**
* 排序码
*/
@TableField("F_SortCode")
private Integer sortCode;
/**
* 鉴定项池id
*/
@TableField("F_PoolId")
private String poolId;
/**
* 是否异常0-正常1-修改异常 2-删除异常
*/
@TableField("F_IsAbnormal")
private Integer isAbnormal;
/**
* 鉴定项分类
*/
@TableField("F_CateId")
private String cateId;
/**
* 鉴定项业务ID
*/
@TableField("F_BusinessId")
private String businessId;
}

View File

@@ -0,0 +1,103 @@
package jnpf.entity.cultivate;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 实操鉴定表
*
* @author shitou
* @email shitou@niujiekeji.com
* @date 2023-12-19 11:10:53
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("ftb_cultivate_identify_table")
public class CultivateIdentifyTable extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 鉴定名称
*/
@TableField("F_Name")
private String name;
/**
* 鉴定表规则ID生成规则见原型
*/
@TableField("F_RuleId")
private String ruleId;
/**
* 规则说明
*/
@TableField("F_RuleDesc")
private String ruleDesc;
/**
* 合格分数类型1固定分2百分比
*/
@TableField("F_PassType")
private Integer passType;
/**
* 合格分数
*/
@TableField("F_PassScore")
private BigDecimal passScore;
/**
* 优秀分数类型1固定分2百分比
*/
@TableField("F_ExcellentType")
private Integer excellentType;
/**
* 优秀分数
*/
@TableField("F_ExcellentScore")
private BigDecimal excellentScore;
/**
* 课程封面Id
*/
@TableField("F_CoverId")
private String coverId;
/**
* 任务封面Url
*/
@TableField("F_CoverUrl")
private String coverUrl;
/**
* 分类idftb_cultivate_label.type为2
*/
@TableField("F_LabelId")
private String labelId;
/**
* 鉴定评分类型0-等第制1-等级制
*/
@TableField("F_ScoreType")
private Integer scoreType;
/**
* 等级制配置
*/
@TableField("F_ScoreConfig")
private String scoreConfig;
/**
* 证书id
*/
@TableField("F_CertificateId")
private String certificateId;
/**
* 是否异常0-正常1-异常
*/
@TableField("F_IsAbnormal")
private Integer isAbnormal;
}

View File

@@ -0,0 +1,89 @@
package jnpf.entity.cultivate;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import jnpf.base.entity.SuperBaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* 岗位学习每个课程记录表
*
* @author JNPF
* @since 2026-03-12
*/
@EqualsAndHashCode(callSuper = true)
@Data
@Accessors(chain = true)
@TableName("ftb_cultivate_position_course_log")
public class CultivatePositionCourseLogEntity extends SuperBaseEntity.SuperCUBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "岗位学习主键 id")
@TableField("F_PostLearnId")
private String postLearnId;
@Schema(description = "岗位主键 ID")
@TableField("F_PostId")
private String postId;
@Schema(description = "职级")
@TableField("F_GradeId")
private String gradeId;
@Schema(description = "课程 id")
@TableField("F_CourseId")
private String courseId;
@Schema(description = "用户 id")
@TableField("F_UserId")
private String userId;
@Schema(description = "状态1-未完成 2-已完成")
@TableField("F_State")
private Integer state;
@Schema(description = "考试id")
@TableField("F_ExamId")
private String examId;
@Schema(description = "用户的考试id")
@TableField("F_UserExamId")
private String userExamId;
@Schema(description = "用户的考试状态 0待考试1待批阅2已逾期3合格4不合格 5、优秀")
@TableField("F_UserExamStatus")
private Integer userExamStatus;
@Schema(description = "鉴定id")
@TableField("F_IdentifyId")
private String identifyId;
@Schema(description = "用户的鉴定id")
@TableField("F_UserIdentifyId")
private String userIdentifyId;
@Schema(description = "用户的鉴定状态 -1-待鉴定 0-合格1-优秀2-不合格")
@TableField("F_UserUserIdentifyStatus")
private Integer userIdentifyStatus;
@Schema(description = "是否有考试 0-默认 1-没有 2-有")
@TableField("F_HasExam")
private Integer hasExam;
@Schema(description = "是否有鉴定 0-默认 1-没有 2-有")
@TableField("F_HasIdentity")
private Integer hasIdentity;
/**
* 有效标志[0-有效 1-删除]
*/
@TableField("F_EnabledMark")
private Integer enabledMark;
}

View File

@@ -0,0 +1,60 @@
package jnpf.entity.cultivate;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Builder;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
* 学习课程日志表
*
* @author JNPF
* @since 2026-04-08
*/
@Data
@Accessors(chain = true)
@TableName("ftb_cultivate_course_learning_log")
@Builder
public class FtbCultivateCourseLearningLogEntity implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "唯一标识符")
@TableId("F_Id")
private String id;
@Schema(description = "课程id")
@TableField("F_CourseId")
private String courseId;
@Schema(description = "学习时长,单位秒")
@TableField("F_LearnTime")
private Integer learnTime;
@Schema(description = "创建用户")
@TableField("F_CreatorUserId")
private String creatorUserId;
@Schema(description = "创建时间")
@TableField("F_CreatorTime")
private Date creatorTime;
@Schema(description = "有效标志")
@TableField("F_EnabledMark")
private Integer enabledMark;
@Schema(description = "租户id")
@TableField("F_TenantId")
private String tenantId;
@Schema(description = "状态 0-未完成 1-已完成")
@TableField("F_Status")
private Integer status;
}

View File

@@ -0,0 +1,101 @@
package jnpf.entity.cultivate;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import lombok.*;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 带教/练习记录表
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName("ftb_cultivate_teaching_record")
public class TeachingRecord extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 数据类型(1-带教, 2-练习)
*/
@TableField("F_Type")
private Integer type;
/**
* 门店ID
*/
@TableField("F_StoreId")
private String storeId;
/**
* 门店名称
*/
@TableField("F_StoreName")
private String storeName;
/**
* 技能点ID
*/
@TableField("F_SkillId")
private String skillId;
/**
* 用户ID
*/
@TableField("F_UserId")
private String userId;
/**
* 姓名
*/
@TableField("F_UserName")
private String userName;
/**
* 岗位ID
*/
@TableField("F_PostId")
private String postId;
/**
* 岗位名称
*/
@TableField("F_PostName")
private String postName;
/**
* 备注
*/
@TableField("F_Remark")
private String remark;
/**
* 日期
*/
@TableField("F_Date")
private Date date;
/**
* 视频地址
*/
@TableField("F_VideoPath")
private String videoPath;
/**
* 视频时长(秒)
*/
@TableField("F_VideoDuration")
private BigDecimal videoDuration;
/**
* 视频播放方式 1.竖屏播放 2.横屏播放
*/
@TableField("F_VideoActionType")
private Integer videoActionType;
}

View File

@@ -0,0 +1,59 @@
package jnpf.entity.cultivate;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import lombok.*;
import java.io.Serializable;
import java.util.Date;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName("ftb_cultivate_teaching_skill")
public class TeachingSkill extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 分类id
*/
@TableField("F_CategoryId")
private String categoryId;
/**
* 技能点名称
*/
@TableField("F_Name")
private String name;
/**
* 技能点描述
*/
@TableField("F_Description")
private String description;
/**
* 排序
*/
@TableField("F_Sort")
private Integer sort;
/**
* 模拟数据视频地址
*/
@TableField("F_MockVideoInfo")
private String mockVideoInfo;
public TeachingSkill(String id, String categoryId, String name, String description, Integer sort, String userId) {
super.setId(id);
this.categoryId = categoryId;
this.name = name;
this.description = description;
this.sort = sort;
super.setCreatorTime(new Date());
super.setCreatorUserId(userId);
}
}

View File

@@ -0,0 +1,92 @@
package jnpf.entity.cultivate;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import jnpf.base.entity.SuperBaseEntity;
import lombok.*;
import java.io.Serializable;
import java.util.Date;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName("ftb_cultivate_teaching_stu")
public class TeachingStudent extends SuperBaseEntity.SuperCUDBaseEntity<String> implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 带教记录ID
*/
@TableField("F_RecordId")
private String recordId;
/**
* 学员用户ID
*/
@TableField("F_UserId")
private String userId;
/**
* 学员姓名
*/
@TableField("F_Username")
private String username;
/**
* 岗位ID
*/
@TableField("F_PostId")
private String postId;
/**
* 岗位名称
*/
@TableField("F_PostName")
private String postName;
/**
* 创建者用户ID
*/
@TableField("F_CreatorUserId")
private String creatorUserId;
/**
* 创建时间
*/
@TableField("F_CreatorTime")
private Date creatorTime;
/**
* 最后修改者用户ID
*/
@TableField("F_LastModifyUserId")
private String lastModifyUserId;
/**
* 最后修改时间
*/
@TableField("F_LastModifyTime")
private Date lastModifyTime;
/**
* 删除者用户ID
*/
@TableField("F_DeleteUserId")
private String deleteUserId;
/**
* 删除时间
*/
@TableField("F_DeleteTime")
private Date deleteTime;
/**
* 删除标记
*/
@TableField("F_DeleteMark")
private Integer deleteMark;
}

Some files were not shown because too many files have changed in this diff Show More