From 0b9d16befc8ebe397efb0a0fafd6a4566bbd4754 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=9F=B3=E5=A4=B4=E4=BA=BA?= <3076767823@qq.com> Date: Mon, 24 Mar 2025 10:27:51 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E6=96=B0=E5=A2=9E=E4=BD=8F?= =?UTF-8?q?=E9=99=A2=E7=BC=B4=E8=B4=B9=E3=80=81=E9=97=A8=E8=AF=8A=E7=BC=B4?= =?UTF-8?q?=E8=B4=B9=E5=B0=8F=E7=A5=A8=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ReceiptPrintController.java | 4 +- .../enums/ReceiptTemplateEnum.java | 63 +++++++++++++++++++ .../resources/templates/hospitalPayment.html | 34 ++++++++++ .../templates/outpatientPayment.html | 32 ++++++++++ 4 files changed, 132 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/dpkj/modules/autoReplyPrint/enums/ReceiptTemplateEnum.java create mode 100644 src/main/resources/templates/hospitalPayment.html create mode 100644 src/main/resources/templates/outpatientPayment.html diff --git a/src/main/java/com/dpkj/modules/autoReplyPrint/controller/ReceiptPrintController.java b/src/main/java/com/dpkj/modules/autoReplyPrint/controller/ReceiptPrintController.java index b024ba6..095ccf0 100644 --- a/src/main/java/com/dpkj/modules/autoReplyPrint/controller/ReceiptPrintController.java +++ b/src/main/java/com/dpkj/modules/autoReplyPrint/controller/ReceiptPrintController.java @@ -3,6 +3,7 @@ package com.dpkj.modules.autoReplyPrint.controller; import com.alibaba.fastjson.JSONObject; import com.dpkj.common.exception.RRException; import com.dpkj.common.vo.Result; +import com.dpkj.modules.autoReplyPrint.enums.ReceiptTemplateEnum; import com.dpkj.modules.autoReplyPrint.request.ReceiptPrintRequest; import com.dpkj.modules.autoReplyPrint.service.ImagePrintService; import com.dpkj.modules.autoReplyPrint.service.impl.TemplateService; @@ -38,6 +39,7 @@ public class ReceiptPrintController { @PostMapping("/print") private Result print(@Validated @RequestBody ReceiptPrintRequest request) throws UnsupportedEncodingException { String devName = "VID:0x0FE6,PID:0x811E"; // 采用默认的devName,不进行入参传值了 + String templateName = ReceiptTemplateEnum.getTemplateName(request.getTemplateName()); // 进行模板填充 // String testData = "{\"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_1_250_250\":\"maby this is a Base64 code data if has\",\"terminalNumber\":\"12092794\",\"printTime\":\"2025-01-15 13:10:08\"}"; StringBuilder filePath = new StringBuilder(request.getFileDir()); @@ -45,7 +47,7 @@ public class ReceiptPrintController { if ( !StringUtils.isEmpty(request.getTemplateName()) && !StringUtils.isEmpty(request.getFileDir())){ byte[] image = templateService.generateReceiptImage( JSONObject.parseObject(URLDecoder.decode(request.getTemplateFillData(), "UTF-8")), - request.getTemplateName(), + templateName, request.getWidth(), request.getHeight(), filePath); diff --git a/src/main/java/com/dpkj/modules/autoReplyPrint/enums/ReceiptTemplateEnum.java b/src/main/java/com/dpkj/modules/autoReplyPrint/enums/ReceiptTemplateEnum.java new file mode 100644 index 0000000..ba45892 --- /dev/null +++ b/src/main/java/com/dpkj/modules/autoReplyPrint/enums/ReceiptTemplateEnum.java @@ -0,0 +1,63 @@ +package com.dpkj.modules.autoReplyPrint.enums; + + +import com.dpkj.common.exception.RRException; +import lombok.Getter; + +@Getter +public enum ReceiptTemplateEnum { + + /** + * 自足挂号模板 + */ + REGISTER("1", "register", "自助挂号的"), + + /** + * 住院缴费的模板 + */ + HOSPITAL_PAYMENT("2", "hospitalPayment", "住院缴费的小票"), + + /** + * 门诊缴费的模板 + */ + OUTPATIENT_PAYMENT("3", "outpatientPayment", "门诊缴费的小票"), + + + ; + + private final String code; + + private final String templateName; + + private final String desc; + + + ReceiptTemplateEnum(String code, String templateName, String desc){ + this.code = code; + this.templateName = templateName; + this.desc = desc; + } + + /** + * 通过code获取模板名称 + * @param code code/也有可能直接是一个名称 + * @return 模板的名称 + */ + public static String getTemplateName(String code){ + if (code == null || "".equals(code)) { + throw new RRException("模板名称不能为空"); + } + + String name = null; + for (ReceiptTemplateEnum enumEntity : ReceiptTemplateEnum.values()) { + String enumCode = enumEntity.getCode(); + if ( enumCode.equals(code)){ + name = enumEntity.getTemplateName(); + break; + } + } + + return name == null ? code : name; + } + +} diff --git a/src/main/resources/templates/hospitalPayment.html b/src/main/resources/templates/hospitalPayment.html new file mode 100644 index 0000000..22fede4 --- /dev/null +++ b/src/main/resources/templates/hospitalPayment.html @@ -0,0 +1,34 @@ + + + + 挂号单 + + +
+
+
+
********
+
-----------------------------------------------------------------------------
+
+
-----------------------------------------------------------------------------
+
+
+
姓  名:
+
性  别:
+
年  龄:
+
出生日期:
+
门 诊 号:
+
入院科室:
+
总 费 用: 元
+
支付方式:
+
交易流水:
+
+
+ +
备注:缴费凭证,请妥善保管!
+
终 端 号:
+
打印时间:
+
+
+ + diff --git a/src/main/resources/templates/outpatientPayment.html b/src/main/resources/templates/outpatientPayment.html new file mode 100644 index 0000000..48cb8e3 --- /dev/null +++ b/src/main/resources/templates/outpatientPayment.html @@ -0,0 +1,32 @@ + + + + 门诊缴费 + + +
+
+
+
********
+
-----------------------------------------------------------------------------
+
+
-----------------------------------------------------------------------------
+
+
+
姓  名:
+
性  别:
+
年  龄:
+
出生日期:
+
总 费 用: 元
+
支付方式:
+
交易流水:
+
+
+ +
备注:缴费凭证,请妥善保管!
+
终 端 号:
+
打印时间:
+
+
+ +