99 lines
2.6 KiB
Java
99 lines
2.6 KiB
Java
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;
|
||
}
|
||
}
|