From fcbce36f8734813b13c8f9c5b26b4bd192274534 Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期一, 17 十一月 2025 16:30:28 +0800
Subject: [PATCH] 工程打印明细新增玻璃编号显示

---
 north-glass-erp/src/main/java/com/example/erp/tools/JacksonUtil.java |   89 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 89 insertions(+), 0 deletions(-)

diff --git a/north-glass-erp/src/main/java/com/example/erp/tools/JacksonUtil.java b/north-glass-erp/src/main/java/com/example/erp/tools/JacksonUtil.java
new file mode 100644
index 0000000..4a9d2a9
--- /dev/null
+++ b/north-glass-erp/src/main/java/com/example/erp/tools/JacksonUtil.java
@@ -0,0 +1,89 @@
+package com.example.erp.tools;
+
+import com.fasterxml.jackson.core.JacksonException;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.JavaType;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
+import org.springframework.boot.json.JsonParseException;
+
+import java.util.List;
+import java.util.concurrent.Callable;
+
+
+// 灏嗙箒鐞愮殑寮傚父澶勭悊杩涜浜嗚В鍐�
+public class JacksonUtil {
+    /**
+     * 宸ュ叿绫讳笉闇�瑕佸垱寤哄疄渚嬪璞�
+     */
+    private JacksonUtil(){
+
+    }
+
+    /**
+     * 缁橭bjectMapper杩涜鍗曚緥妯″紡锛岀敱浜嶰bjectMapper 鏄嚎绋嬪畨鍏ㄧ殑锛屽彲浠ュ鐢紝鏀剧疆閲嶅鍒涘缓褰卞搷鎬ц兘
+     */
+    private static final ObjectMapper objectMapper;
+
+    static {
+        objectMapper = new ObjectMapper();
+        objectMapper.registerModule(new JavaTimeModule());
+    }
+
+    public static ObjectMapper getObjectMapper(){
+
+        return objectMapper;
+    }
+
+    public static final <T> T tryParse(Callable<T> parser) {
+        return JacksonUtil.tryParse(parser, JacksonException.class);
+    }
+
+    public static final <T> T tryParse(Callable<T> parser, Class<? extends Exception> check) {
+        try {
+            return parser.call();
+        }
+        catch (Exception ex) {
+            if (check.isAssignableFrom(ex.getClass())) {
+                throw new JsonParseException(ex);
+            }
+            throw new IllegalStateException(ex);
+        }
+    }
+
+    // 鏅�氬璞″拰List瀵硅薄鍏卞悓浣跨敤
+    public static String writeValueAsString(Object object){
+        return JacksonUtil.tryParse(()->{
+            return JacksonUtil.getObjectMapper().writeValueAsString(object);
+        });
+    }
+
+    // 鏅�氬璞$殑鍙嶅簭鍒楀寲
+    public static <T> T readValue(String str,Class<T> valueType){
+        return JacksonUtil.tryParse(()->{
+            return JacksonUtil.getObjectMapper().readValue(str,valueType);
+        });
+    }
+
+
+
+    public static <T> T readValueObjectToString(Object object,TypeReference<T> valueType){
+        String str = JacksonUtil.tryParse(()->{
+            return JacksonUtil.getObjectMapper().writeValueAsString(object);
+        });
+
+        return JacksonUtil.tryParse(()->{
+            return JacksonUtil.getObjectMapper().readValue(str,valueType);
+        });
+    }
+
+
+    // List绫诲瀷鐨勫弽搴忓垪鍖�
+    public static <T> T readListValue(String str,Class<?> valueType){
+        JavaType javaType = JacksonUtil.getObjectMapper().getTypeFactory().constructParametricType(List.class,valueType);
+        return JacksonUtil.tryParse(()->{
+            return JacksonUtil.getObjectMapper().readValue(str,javaType);
+        });
+    }
+
+}

--
Gitblit v1.8.0