From 34981c30a78e8bbd7791131059a9210f9928b62c Mon Sep 17 00:00:00 2001
From: 刘光辉 <347230014@qq.com>
Date: 星期四, 17 九月 2026 09:24:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into master
---
jnpf-lims/jnpf-lims-controller/src/main/java/jnpf/limsController/LimsPrintController.java | 72 ++++++++++++++++++++++++++++++++++++
1 files changed, 72 insertions(+), 0 deletions(-)
diff --git a/jnpf-lims/jnpf-lims-controller/src/main/java/jnpf/limsController/LimsPrintController.java b/jnpf-lims/jnpf-lims-controller/src/main/java/jnpf/limsController/LimsPrintController.java
new file mode 100644
index 0000000..2fdbea7
--- /dev/null
+++ b/jnpf-lims/jnpf-lims-controller/src/main/java/jnpf/limsController/LimsPrintController.java
@@ -0,0 +1,72 @@
+package jnpf.limsController;
+
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jnpf.exception.DataException;
+import jnpf.limsEntity.LimsPrintTemplateEntity;
+import jnpf.limsService.LimsPrintTemplateService;
+import jnpf.limsService.print.PrintRendererRegistry;
+import jnpf.limsService.print.PrintTemplateRenderer;
+import jnpf.util.R;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Map;
+
+@Slf4j
+@Tag(name = "lims鎵撳嵃鎺ュ彛", description = "閫氱敤鎵撳嵃妯℃澘娓叉煋")
+@RestController
+@RequestMapping("/lims/biz/print")
+public class LimsPrintController {
+
+ @Autowired
+ private LimsPrintTemplateService limsPrintTemplateService;
+
+ @Autowired
+ private PrintRendererRegistry printRendererRegistry;
+
+ /**
+ * 娓叉煋鎵撳嵃妯℃澘锛氭寜 template_id 鍛戒腑妯℃澘閰嶇疆 + 璺敱鍒� renderer锛岀粍瑁呭墠绔�
+ * 娓叉煋鎵�闇�鐨勬暟鎹��
+ *
+ * 璇锋眰浣擄細{ "template_id": "jianyan_baogao", "id": "<涓氬姟瀹炰綋 f_id>" }
+ */
+ @Operation(summary = "娓叉煋鎵撳嵃妯℃澘")
+ @PostMapping("/render")
+ public R<Map<String, Object>> render(@RequestBody Map<String, String> params) {
+ if (params == null) {
+ return R.error("缂哄皯鍏ュ弬");
+ }
+ String templateId = params.get("template_id");
+ String id = params.get("id");
+ if (templateId == null || templateId.isEmpty()) {
+ return R.error("缂哄皯 template_id");
+ }
+ if (id == null || id.isEmpty()) {
+ return R.error("缂哄皯 id");
+ }
+
+ LimsPrintTemplateEntity tpl = limsPrintTemplateService.findActiveByTemplateId(templateId);
+ if (tpl == null) {
+ return R.error("鎵句笉鍒板惎鐢ㄧ殑鎵撳嵃妯℃澘: " + templateId);
+ }
+
+ PrintTemplateRenderer renderer;
+ try {
+ renderer = printRendererRegistry.get(templateId);
+ } catch (DataException e) {
+ return R.error(e.getMessage());
+ }
+
+ try {
+ Map<String, Object> data = renderer.render(id, tpl);
+ return R.success(data);
+ } catch (DataException e) {
+ return R.error(e.getMessage());
+ }
+ }
+}
--
Gitblit v1.8.0