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-biz/src/main/java/jnpf/limsService/print/PrintRendererRegistry.java |   47 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 47 insertions(+), 0 deletions(-)

diff --git a/jnpf-lims/jnpf-lims-biz/src/main/java/jnpf/limsService/print/PrintRendererRegistry.java b/jnpf-lims/jnpf-lims-biz/src/main/java/jnpf/limsService/print/PrintRendererRegistry.java
new file mode 100644
index 0000000..8df6b50
--- /dev/null
+++ b/jnpf-lims/jnpf-lims-biz/src/main/java/jnpf/limsService/print/PrintRendererRegistry.java
@@ -0,0 +1,47 @@
+package jnpf.limsService.print;
+
+import jnpf.exception.DataException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Spring 鍚姩鏃舵敹闆嗘墍鏈� {@link PrintTemplateRenderer} 瀹炵幇锛屾寜 templateId 绱㈠紩銆�
+ * Controller 閫氳繃 {@link #get(String)} 璺敱鍒板叿浣� renderer銆�
+ */
+@Component
+public class PrintRendererRegistry {
+
+    private final Map<String, PrintTemplateRenderer> renderers;
+
+    @Autowired
+    public PrintRendererRegistry(List<PrintTemplateRenderer> rendererList) {
+        Map<String, PrintTemplateRenderer> map = new HashMap<>();
+        for (PrintTemplateRenderer r : rendererList) {
+            String key = r.getTemplateId();
+            if (key == null || key.isEmpty()) {
+                continue;
+            }
+            PrintTemplateRenderer existed = map.put(key, r);
+            if (existed != null) {
+                throw new IllegalStateException(
+                        "閲嶅鐨� PrintTemplateRenderer template_id=" + key
+                                + "锛屽啿绐佺被: " + existed.getClass().getName()
+                                + " vs " + r.getClass().getName());
+            }
+        }
+        this.renderers = Collections.unmodifiableMap(map);
+    }
+
+    public PrintTemplateRenderer get(String templateId) {
+        PrintTemplateRenderer r = renderers.get(templateId);
+        if (r == null) {
+            throw new DataException("鎵句笉鍒版墦鍗版ā鏉跨殑娓叉煋鍣�: " + templateId);
+        }
+        return r;
+    }
+}

--
Gitblit v1.8.0