This commit is contained in:
2026-03-18 16:23:54 +08:00
parent 8f8729d2b2
commit 8df6ff1576
13 changed files with 1821 additions and 0 deletions

View File

@@ -0,0 +1,55 @@
package com.klp.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 用印申请
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("hrm_seal_req")
public class WmsSealReq extends BaseEntity {
/** 业务ID */
@TableId
private Long bizId;
/** 申请人ID */
private Long empId;
/** 申请部门ID */
private Long deptId;
/** 用印类型(公章/合同章/财务章等) */
private String sealType;
/** 用途说明 */
private String purpose;
/** 申请材料附件ID列表(CSV对应sys_oss) */
private String applyFileIds;
/** 是否需要回执 1是0否 */
private Integer receiptRequired;
/** 回执状态 none/pending/done */
private String receiptStatus;
/** 回执附件ID列表(CSV对应sys_oss或直接URL) */
private String receiptFileIds;
/** 状态 draft/running/approved/rejected/canceled */
private String status;
/** 备注 */
private String remark;
/** 删除标识 0正常 2删除 */
@TableLogic
private Integer delFlag;
}

View File

@@ -0,0 +1,46 @@
package com.klp.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 WmsSealReqBo 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;
/** 申请部门ID */
@NotNull(message = "申请部门不能为空")
private Long deptId;
/** 状态 draft/running/approved/rejected/canceled */
private String status;
}

View File

@@ -0,0 +1,98 @@
package com.klp.domain.bo;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonSetter;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* 盖章命令Java/Python 坐标统一使用 px
*/
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(JsonInclude.Include.ALWAYS)
public class WmsSealStampBo {
/** 待盖章 PDF 的 OSS 完整 URL */
@NotBlank(message = "待盖章文件地址不能为空")
@JsonProperty("targetFileUrl")
private String targetFileUrl;
/** 章图片 OSS 完整 URL透明 PNG/JPG */
@NotBlank(message = "章图片地址不能为空")
@JsonProperty("stampImageUrl")
private String stampImageUrl;
/** 页码从1开始 */
@NotNull
@Min(1)
@JsonProperty("pageNo")
private Integer pageNo;
/** 左下角 X 坐标px */
@NotNull
@Min(0)
@JsonProperty("xPx")
@JsonInclude(JsonInclude.Include.ALWAYS)
@Setter(lombok.AccessLevel.NONE)
private Integer xPx;
/** 左下角 Y 坐标px */
@NotNull
@Min(0)
@JsonProperty("yPx")
@JsonInclude(JsonInclude.Include.ALWAYS)
@Setter(lombok.AccessLevel.NONE)
private Integer yPx;
/** 盖章宽度px可选 */
@Min(1)
@JsonProperty("widthPx")
private Integer widthPx;
/** 盖章高度px可选 */
@Min(1)
@JsonProperty("heightPx")
private Integer heightPx;
/**
* 前端渲染的 viewport 宽度(像素):用于把前端点击坐标换算成 PDFBox 坐标pt
* 注意:这不是 PDF 页面原始宽度,而是 pdf.js 按 scale 渲染到 canvas 的宽度。
*/
@Min(1)
@JsonProperty("viewportWidth")
private Integer viewportWidth;
/** 前端渲染的 viewport 高度(像素):用于坐标换算 */
@Min(1)
@JsonProperty("viewportHeight")
private Integer viewportHeight;
/**
* 手动添加 setter 方法,确保 Jackson 能够正确映射 yPx 字段
* Lombok 生成的 setYPx() 可能与 Jackson 的字段名映射不匹配
*/
@JsonSetter("yPx")
public void setYPx(Integer yPx) {
this.yPx = yPx;
}
/**
* 手动添加 setter 方法,确保 Jackson 能够正确映射 xPx 字段
*/
@JsonSetter("xPx")
public void setXPx(Integer xPx) {
this.xPx = xPx;
}
}

View File

@@ -0,0 +1,50 @@
package com.klp.domain.vo;
import com.klp.common.annotation.Excel;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 用印申请 VO
*/
@Data
public class WmsSealReqVo implements Serializable {
private static final long serialVersionUID = 1L;
@Excel(name = "业务ID")
private Long bizId;
@Excel(name = "申请人ID")
private Long empId;
@Excel(name = "用印类型")
private String sealType;
@Excel(name = "用途说明")
private String purpose;
@Excel(name = "申请材料附件ID列表")
private String applyFileIds;
@Excel(name = "是否需要回执")
private Integer receiptRequired;
@Excel(name = "回执状态")
private String receiptStatus;
@Excel(name = "回执附件ID列表")
private String receiptFileIds;
@Excel(name = "状态")
private String status;
@Excel(name = "备注")
private String remark;
private String createBy;
private Date createTime;
private String updateBy;
private Date updateTime;
}