L3HRM后端推送

This commit is contained in:
2025-12-16 16:56:14 +08:00
parent 5ac2e78a33
commit 62c541839e
221 changed files with 8280 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
package com.klp.hrm.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotNull;
import java.util.Date;
@Data
@EqualsAndHashCode(callSuper = true)
public class HrmAttendCalcBo extends BaseEntity {
private Long calcId;
@NotNull(message = "员工ID不能为空")
private Long empId;
@NotNull(message = "工作日期不能为空")
private Date workDate;
private Long shiftId;
private String status;
private Integer workMinutes;
private Integer lateMinutes;
private Integer earlyMinutes;
private Integer otMinutes;
private String leaveMinutesJson;
private String remark;
}

View File

@@ -0,0 +1,28 @@
package com.klp.hrm.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
@Data
@EqualsAndHashCode(callSuper = true)
public class HrmCertificateBo extends BaseEntity {
private Long certId;
@NotNull(message = "员工ID不能为空")
private Long empId;
@NotBlank(message = "证书名称不能为空")
private String certName;
private String certNo;
private String issuedBy;
private Date validFrom;
private Date validTo;
private String remark;
}

View File

@@ -0,0 +1,28 @@
package com.klp.hrm.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
@Data
@EqualsAndHashCode(callSuper = true)
public class HrmContractBo extends BaseEntity {
private Long contractId;
@NotNull(message = "员工ID不能为空")
private Long empId;
@NotBlank(message = "合同编号不能为空")
private String contractNo;
private String contractType;
private Date startDate;
private Date endDate;
private String status;
private String remark;
}

View File

@@ -0,0 +1,32 @@
package com.klp.hrm.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotNull;
import java.util.Date;
@Data
@EqualsAndHashCode(callSuper = true)
public class HrmEmpOrgPositionBo extends BaseEntity {
private Long relId;
@NotNull(message = "员工不能为空")
private Long empId;
@NotNull(message = "组织不能为空")
private Long orgId;
@NotNull(message = "岗位不能为空")
private Long positionId;
private Integer isPrimary;
private Date startDate;
private Date endDate;
private String remark;
}

View File

@@ -0,0 +1,49 @@
package com.klp.hrm.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
/**
* 员工 Bo
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class HrmEmployeeBo extends BaseEntity {
private Long empId;
private Long userId;
@NotBlank(message = "工号不能为空")
private String empNo;
@NotBlank(message = "姓名不能为空")
private String empName;
private String gender;
private String mobile;
private String email;
private String idNo;
private Date hireDate;
private String employmentType;
private String status;
private Long gradeId;
private Long mainOrgId;
private Long mainPositionId;
private String remark;
}

View File

@@ -0,0 +1,27 @@
package com.klp.hrm.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@Data
@EqualsAndHashCode(callSuper = true)
public class HrmFlowActionBo extends BaseEntity {
private Long actionId;
private Long taskId;
@NotNull(message = "实例ID不能为空")
private Long instId;
@NotBlank(message = "动作不能为空")
private String action;
private String remark;
private Long actionUserId;
}

View File

@@ -0,0 +1,32 @@
package com.klp.hrm.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@Data
@EqualsAndHashCode(callSuper = true)
public class HrmFlowInstanceBo extends BaseEntity {
private Long instId;
@NotNull(message = "模板ID不能为空")
private Long tplId;
@NotBlank(message = "业务类型不能为空")
private String bizType;
@NotNull(message = "业务ID不能为空")
private Long bizId;
private String status;
private Long currentNodeId;
private Long startUserId;
private String remark;
}

View File

@@ -0,0 +1,33 @@
package com.klp.hrm.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
@Data
@EqualsAndHashCode(callSuper = true)
public class HrmFlowNodeBo extends BaseEntity {
private Long nodeId;
@NotNull(message = "模板ID不能为空")
private Long tplId;
@NotNull(message = "顺序不能为空")
private Integer orderNo;
@NotBlank(message = "节点类型不能为空")
private String nodeType;
@NotBlank(message = "审批人规则不能为空")
private String approverRule;
private String approverValue;
private String fieldPerm;
private String remark;
}

View File

@@ -0,0 +1,18 @@
package com.klp.hrm.domain.bo;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@Data
public class HrmFlowStartBo {
@NotNull(message = "模板ID不能为空")
private Long tplId;
@NotBlank(message = "业务类型不能为空")
private String bizType;
@NotNull(message = "业务ID不能为空")
private Long bizId;
private Long startUserId;
private String contentJson;
}

View File

@@ -0,0 +1,23 @@
package com.klp.hrm.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotNull;
import java.util.Date;
@Data
@EqualsAndHashCode(callSuper = true)
public class HrmFlowTaskBo extends BaseEntity {
private Long taskId;
@NotNull(message = "实例ID不能为空")
private Long instId;
@NotNull(message = "节点ID不能为空")
private Long nodeId;
private Long assigneeUserId;
private String status;
private Date expireTime;
private String remark;
}

View File

@@ -0,0 +1,29 @@
package com.klp.hrm.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
@Data
@EqualsAndHashCode(callSuper = true)
public class HrmFlowTemplateBo extends BaseEntity {
private Long tplId;
@NotBlank(message = "模板编码不能为空")
private String tplCode;
@NotBlank(message = "模板名称不能为空")
private String tplName;
@NotBlank(message = "业务类型不能为空")
private String bizType;
private Integer version;
private Integer enabled;
private String remark;
}

View File

@@ -0,0 +1,26 @@
package com.klp.hrm.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@Data
@EqualsAndHashCode(callSuper = true)
public class HrmFormDataBo extends BaseEntity {
private Long formId;
@NotBlank(message = "业务类型不能为空")
private String bizType;
@NotNull(message = "业务ID不能为空")
private Long bizId;
@NotBlank(message = "表单内容不能为空")
private String contentJson;
private String remark;
}

View File

@@ -0,0 +1,24 @@
package com.klp.hrm.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
@Data
@EqualsAndHashCode(callSuper = true)
public class HrmGradeBo extends BaseEntity {
private Long gradeId;
@NotBlank(message = "职级编码不能为空")
private String gradeCode;
@NotBlank(message = "职级名称不能为空")
private String gradeName;
private Integer levelNo;
private String remark;
}

View File

@@ -0,0 +1,31 @@
package com.klp.hrm.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotNull;
@Data
@EqualsAndHashCode(callSuper = true)
public class HrmHeadcountPlanBo extends BaseEntity {
private Long planId;
@NotNull(message = "组织不能为空")
private Long orgId;
@NotNull(message = "岗位不能为空")
private Long positionId;
@NotNull(message = "年份不能为空")
private Integer year;
@NotNull(message = "月份不能为空")
private Integer month;
@NotNull(message = "编制人数不能为空")
private Integer budgetCount;
private String remark;
}

View File

@@ -0,0 +1,28 @@
package com.klp.hrm.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotNull;
import java.util.Date;
@Data
@EqualsAndHashCode(callSuper = true)
public class HrmLeaveBalanceBo extends BaseEntity {
private Long balId;
@NotNull(message = "员工ID不能为空")
private Long empId;
@NotNull(message = "假期类型不能为空")
private String leaveType;
@NotNull(message = "余额小时不能为空")
private java.math.BigDecimal balanceHours;
private Date expireDate;
private String remark;
}

View File

@@ -0,0 +1,37 @@
package com.klp.hrm.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
@Data
@EqualsAndHashCode(callSuper = true)
public class HrmLeaveReqBo extends BaseEntity {
private Long bizId;
@NotNull(message = "员工ID不能为空")
private Long empId;
@NotBlank(message = "请假类型不能为空")
private String leaveType;
@NotNull(message = "开始时间不能为空")
private Date startTime;
@NotNull(message = "结束时间不能为空")
private Date endTime;
@NotNull(message = "时长不能为空")
private java.math.BigDecimal hours;
private String reason;
private String status;
private String accessoryApplyIds;
private String accessoryReceiptIds;
private String remark;
}

View File

@@ -0,0 +1,39 @@
package com.klp.hrm.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* 组织 Bo
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class HrmOrgBo extends BaseEntity {
/** 组织ID */
private Long orgId;
/** 父级组织ID */
private Long parentId;
@NotBlank(message = "组织编码不能为空")
private String orgCode;
@NotBlank(message = "组织名称不能为空")
private String orgName;
@NotBlank(message = "组织类型不能为空")
private String orgType;
private Long leaderUserId;
private Integer orderNum;
private Integer status;
private String remark;
}

View File

@@ -0,0 +1,35 @@
package com.klp.hrm.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotNull;
import java.util.Date;
@Data
@EqualsAndHashCode(callSuper = true)
public class HrmOvertimeReqBo extends BaseEntity {
private Long bizId;
@NotNull(message = "员工ID不能为空")
private Long empId;
private String otType;
@NotNull(message = "开始时间不能为空")
private Date startTime;
@NotNull(message = "结束时间不能为空")
private Date endTime;
@NotNull(message = "时长不能为空")
private java.math.BigDecimal hours;
private String reason;
private String status;
private String accessoryApplyIds;
private String accessoryReceiptIds;
private String remark;
}

View File

@@ -0,0 +1,23 @@
package com.klp.hrm.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;
@Data
@EqualsAndHashCode(callSuper = true)
public class HrmPayPlanBo extends BaseEntity {
private Long planId;
@NotBlank(message = "方案名称不能为空")
private String planName;
private BigDecimal baseSalary;
private String allowanceJson;
private String formulaJson;
private String remark;
}

View File

@@ -0,0 +1,22 @@
package com.klp.hrm.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import java.util.Date;
@Data
@EqualsAndHashCode(callSuper = true)
public class HrmPayRunBo extends BaseEntity {
private Long runId;
@NotBlank(message = "核算周期不能为空")
private String period;
private String status;
private Long planId;
private String remark;
}

View File

@@ -0,0 +1,27 @@
package com.klp.hrm.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
@Data
@EqualsAndHashCode(callSuper = true)
public class HrmPayslipBo extends BaseEntity {
private Long slipId;
@NotNull(message = "批次ID不能为空")
private Long runId;
@NotNull(message = "员工ID不能为空")
private Long empId;
private BigDecimal amountGross;
private BigDecimal amountNet;
private String itemsJson;
private String status;
private String remark;
}

View File

@@ -0,0 +1,28 @@
package com.klp.hrm.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
@Data
@EqualsAndHashCode(callSuper = true)
public class HrmPositionBo extends BaseEntity {
private Long positionId;
@NotBlank(message = "岗位编码不能为空")
private String positionCode;
@NotBlank(message = "岗位名称不能为空")
private String positionName;
private Long gradeId;
private Integer orderNum;
private Integer status;
private String remark;
}

View File

@@ -0,0 +1,26 @@
package com.klp.hrm.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotNull;
import java.util.Date;
@Data
@EqualsAndHashCode(callSuper = true)
public class HrmPunchBo extends BaseEntity {
private Long punchId;
@NotNull(message = "员工ID不能为空")
private Long empId;
@NotNull(message = "打卡时间不能为空")
private Date punchTime;
private String source;
private String location;
private String deviceId;
private String remark;
}

View File

@@ -0,0 +1,26 @@
package com.klp.hrm.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotNull;
import java.util.Date;
@Data
@EqualsAndHashCode(callSuper = true)
public class HrmScheduleBo extends BaseEntity {
private Long schedId;
@NotNull(message = "员工ID不能为空")
private Long empId;
@NotNull(message = "工作日期不能为空")
private Date workDate;
@NotNull(message = "班次ID不能为空")
private Long shiftId;
private String remark;
}

View File

@@ -0,0 +1,51 @@
package com.klp.hrm.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* 用印申请 Bo
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class HrmSealReqBo extends BaseEntity {
/** 业务ID编辑/审批时必填) */
private Long bizId;
/** 申请人ID */
@NotNull(message = "申请人不能为空")
private Long empId;
/** 用印类型 */
@NotBlank(message = "用印类型不能为空")
private String sealType;
/** 用途说明 */
private String purpose;
/** 申请材料附件ID列表(CSV对应sys_oss) */
private String applyFileIds;
/** 是否需要回执 1是0否 */
private Integer receiptRequired;
/** 备注 */
private String remark;
/** 状态 draft/running/approved/rejected/canceled */
private String status;
/** 关联流程模板ID提交时可选存在则自动发起审批 */
private Long flowTplId;
/** 流程发起人ID可选不填可由服务侧取当前登录人 */
private Long startUserId;
/** 提交流程时的表单内容JSON可选 */
private String contentJson;
}

View File

@@ -0,0 +1,45 @@
package com.klp.hrm.domain.bo;
import lombok.Data;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* 盖章命令Java/Python 坐标统一使用 px
*/
@Data
public class HrmSealStampBo {
/** 待盖章 PDF 的 OSS 完整 URL */
@NotBlank(message = "待盖章文件地址不能为空")
private String targetFileUrl;
/** 章图片 OSS 完整 URL透明 PNG/JPG */
@NotBlank(message = "章图片地址不能为空")
private String stampImageUrl;
/** 页码从1开始 */
@NotNull
@Min(1)
private Integer pageNo;
/** 左下角 X 坐标px */
@NotNull
@Min(0)
private Integer xPx;
/** 左下角 Y 坐标px */
@NotNull
@Min(0)
private Integer yPx;
/** 盖章宽度px可选 */
@Min(1)
private Integer widthPx;
/** 盖章高度px可选 */
@Min(1)
private Integer heightPx;
}

View File

@@ -0,0 +1,27 @@
package com.klp.hrm.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import java.time.LocalTime;
@Data
@EqualsAndHashCode(callSuper = true)
public class HrmShiftBo extends BaseEntity {
private Long shiftId;
@NotBlank(message = "班次编码不能为空")
private String shiftCode;
@NotBlank(message = "班次名称不能为空")
private String shiftName;
private LocalTime startTime;
private LocalTime endTime;
private Integer breakMinutes;
private Integer isNight;
private String remark;
}

View File

@@ -0,0 +1,29 @@
package com.klp.hrm.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;
@Data
@EqualsAndHashCode(callSuper = true)
public class HrmStatSnapshotBo extends BaseEntity {
private Long snapId;
@NotNull(message = "统计日期不能为空")
private Date statDate;
@NotBlank(message = "指标类型不能为空")
private String statType;
private String dimJson;
private BigDecimal valueNum;
private String remark;
}

View File

@@ -0,0 +1,31 @@
package com.klp.hrm.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotNull;
import java.util.Date;
@Data
@EqualsAndHashCode(callSuper = true)
public class HrmTravelReqBo extends BaseEntity {
private Long bizId;
@NotNull(message = "员工ID不能为空")
private Long empId;
@NotNull(message = "开始时间不能为空")
private Date startTime;
@NotNull(message = "结束时间不能为空")
private Date endTime;
private String destination;
private String reason;
private String status;
private String accessoryApplyIds;
private String accessoryReceiptIds;
private String remark;
}