package com.dpkj.modules.print.request; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.ToString; import javax.validation.constraints.NotBlank; import java.io.Serializable; /** * 小票打印请求,壁挂和打印机接口 进行统一 * * @author 石头人 * @version 1.0 * @since 2025-03-10 9:25:34 */ @Data @ToString @AllArgsConstructor @NoArgsConstructor @JsonIgnoreProperties(ignoreUnknown = true) public class ReceiptPrintRequest implements Serializable { /** * 文件路径地址,填写本地路径,默认为 D:/images */ @NotBlank(message = "文件路径不能为空") private String fileDir = "D:/images"; /** * 模板名称,也可以是自己写的html的字符串文件 */ private String templateName = "receipt"; /** * 填充模板的数据,必填,也可以通过自己设置的模板名称进行设计,部分设计规则 *

1、特殊字段(二维码图片)类型:qrCodeBase64_2base64Type_1_120_120,字段解析,qrCodeBase64为字段名称, * 第一个1为打印类型,1为二维码,2为条形码 * _2base64Type为将这个数据转换为图片类型的base64编码,第二个_120图片的宽度,第三个_120的为图片高度

*

2、需要对传入的JSON数据进行URI编码

*

3、{"hospitalName":"澜沧县中医医院","registeTerminalName":"中国农业银行自助终端","registeType":"自助挂号","name":"刘博雅","gender":"男","age":28,"birthDate":"1996-06-31","cardNumber":"6221**********0731","outpatientNumber":"2501150038","department":"普外科门诊","visitLevel":"普通号","doctor":"普通门诊","sequence":"1","registerDate":"2025-01-15","totalFee":4.00,"paymentMethod":"微信扫码支付","orderNumber":"","transactionNumber":"2025011513090412092794szztzzj","qrCodeBase64_2base64Type_120_120":"这里应是二维码的Base64编码数据(如果有)","terminalNumber":"12092794","printTime":"2025-01-15 13:10:08"}

*/ @NotBlank(message = "模板填充数据不能为空") private String templateFillData; /** * 小票渲染宽度,默认为:600 */ private Integer width = 600; /** * 生成的模板的高度,默认为:950 */ private Integer height = 950; }