From 4a655363927ba4c189b34072cffd3351eadf00fb Mon Sep 17 00:00:00 2001
From: ZY <zc857179121@qq.com>
Date: 星期六, 17 八月 2024 08:33:01 +0800
Subject: [PATCH] 将错误单据跳过

---
 src/main/java/com/zy/common/service/erp/ErpSqlServer.java |  107 +++++++++++++++++++++++++++++++----------------------
 1 files changed, 63 insertions(+), 44 deletions(-)

diff --git a/src/main/java/com/zy/common/service/erp/ErpSqlServer.java b/src/main/java/com/zy/common/service/erp/ErpSqlServer.java
index a94c994..3469eec 100644
--- a/src/main/java/com/zy/common/service/erp/ErpSqlServer.java
+++ b/src/main/java/com/zy/common/service/erp/ErpSqlServer.java
@@ -1,11 +1,12 @@
 package com.zy.common.service.erp;
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.annotations.TableField;
 import com.baomidou.mybatisplus.annotations.TableName;
 import com.core.common.Cools;
 import com.zy.third.erp.entity.InDetTB;
+import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
-
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -42,14 +43,14 @@
 //        sql = "update InStockBill set Fflag_finish = 1 where FBillNo = ''{0}''";
 //        sql = MessageFormat.format(sql, "123456");
 //        erpSqlServer.update(sql);
-        
+
         HashMap<String, Object> stringStringHashMap = new HashMap<>();
-        stringStringHashMap.put("BillNo","'1231312'");
-        stringStringHashMap.put("test","'1231312'");
-        stringStringHashMap.put("BilhahahlNo","'1231312'");
-        stringStringHashMap.put("B21312illNo","'1231312'");
-        stringStringHashMap.put("testnum",100);
-        erpSqlServer.insert(InDetTB.class,stringStringHashMap);
+        stringStringHashMap.put("BillNo", "'1231312'");
+        stringStringHashMap.put("test", "'1231312'");
+        stringStringHashMap.put("BilhahahlNo", "'1231312'");
+        stringStringHashMap.put("B21312illNo", "'1231312'");
+        stringStringHashMap.put("testnum", 100);
+        erpSqlServer.insert(InDetTB.class, stringStringHashMap);
     }
 
     // 鏁版嵁搴撹繛鎺�
@@ -74,22 +75,42 @@
         List<T> list = new ArrayList<>();
         if (null != result) {
             for (Map<String, Object> entity : result) {
-                list.add(Cools.conver(entity, cls));
+                //鐢ㄦ渶绗ㄧ殑鏂规硶杞崲锛屼篃鍙互鐢ㄤ笅闈㈢殑process鏂规硶锛堣繕娌℃湁鍐欏叏锛�
+                list.add(JSONObject.parseObject(JSONObject.toJSONString(entity), cls));
+                //list.add(Cools.conver(entity, cls));
             }
         }
         return list;
     }
-    
-    
+
+    @SneakyThrows
+    public <T> void process(Map<String, Object> entity, Class<T> cls) {
+        for (Map.Entry<String, Object> entry : entity.entrySet()) {
+            String fieldName = entry.getKey();
+            Object value = entry.getValue();
+
+            Field field = cls.getDeclaredField(fieldName);
+            field.setAccessible(true);
+
+            if (value instanceof Integer && field.getType() == int.class || field.getType() == Integer.class) {
+                field.setInt(cls, (Integer) value);
+            } else if (value instanceof String && field.getType() == String.class) {
+                field.set(cls, value);
+            }
+            // 鍏朵粬绫诲瀷鍙互绫讳技澶勭悊
+        }
+    }
+
     /**
      * 鎵弿鎵�鏈夊疄鍔涚被灞炴�ч噷鐨凾ableField娉ㄨВ,骞跺皢閲岄潰鐨勫�间綔涓篶olumn
+     *
      * @param cls
      * @param <T>
      * @return
      */
-    public <T> String selectFrontPart(Class<T> cls){
+    public <T> String selectFrontPart(Class<T> cls) {
         String tableName = cls.getDeclaredAnnotation(TableName.class).value();
-        List<HashMap<String,String>> columnAndField = new ArrayList<>();
+        List<HashMap<String, String>> columnAndField = new ArrayList<>();
         String sql = "SELECT ";
         if (Cools.isEmpty(tableName)) {
             return null;
@@ -98,7 +119,7 @@
         for (Field f : allFields) {
             if (Modifier.isFinal(f.getModifiers())
                     || Modifier.isStatic(f.getModifiers())
-                    || Modifier.isTransient(f.getModifiers())){
+                    || Modifier.isTransient(f.getModifiers())) {
                 continue;
             }
             String column = null;
@@ -110,16 +131,16 @@
             }
             String name = f.getName();
             HashMap<String, String> container = new HashMap<>();
-            container.put(column,name);
+            container.put(column, name);
             columnAndField.add(container);
         }
         for (int i = 0; i < columnAndField.size(); i++) {
             HashMap<String, String> stringStringHashMap = columnAndField.get(i);
-            if (i == columnAndField.size() - 1){
+            if (i == columnAndField.size() - 1) {
                 for (String s : stringStringHashMap.keySet()) {
                     sql = sql + s + " AS " + stringStringHashMap.get(s);
                 }
-            }else {
+            } else {
                 for (String s : stringStringHashMap.keySet()) {
                     sql = sql + s + " AS " + stringStringHashMap.get(s) + ", ";
                 }
@@ -128,40 +149,41 @@
         sql = sql + " FROM " + tableName;
         return sql;
     }
-    
-    public String addWhere(String sql, Map<String,String> condition){
+
+    public String addWhere(String sql, Map<String, String> condition) {
         int conditionSize = 1;
         sql = sql + " WHERE ";
         for (String s : condition.keySet()) {
-            if (conditionSize == condition.keySet().size()){
+            if (conditionSize == condition.keySet().size()) {
                 sql = sql + s + " = " + condition.get(s);
-            }else {
+            } else {
                 sql = sql + s + " = " + condition.get(s) + " and ";
             }
             conditionSize = conditionSize + 1;
         }
         return sql;
     }
-    
+
     /**
      * map鐨勯敭鏄垪鍚�, 鍊肩瓑鍚屼簬鍊�
      * key: id, value: 1 绛夊悓浜� WHERE id = 1
      * 濡傛灉瑕佹煡璇㈠瓧绗︿覆闇�瑕佽嚜琛屽姞涓�''
      * key:name, value: 'zhs'绛夊悓浜� WHERE name = 'zhs'
+     *
      * @param cls
      * @param condition
      * @param <T>
      * @return
      */
-    public <T> List<T> selectList(Class<T> cls, Map<String,String> condition){
+    public <T> List<T> selectList(Class<T> cls, Map<String, String> condition) {
         String sql = selectFrontPart(cls);
         String finalSQL = addWhere(sql, condition);
-        return select(finalSQL,cls);
-    } 
-    
-    public <T> List<T> selectAll(Class<T> cls){
+        return select(finalSQL, cls);
+    }
+
+    public <T> List<T> selectAll(Class<T> cls) {
         String sql = selectFrontPart(cls);
-        return select(sql,cls);
+        return select(sql, cls);
     }
 
     public List<Map<String, Object>> select(String sql) {
@@ -175,7 +197,7 @@
         return executeUpdate(sql);
     }
 
-    public <T> int delete(Class<T> cls, Map<String,String> condition) {
+    public <T> int delete(Class<T> cls, Map<String, String> condition) {
         String tableName = cls.getDeclaredAnnotation(TableName.class).value();
         if (Cools.isEmpty(tableName)) {
             return 0;
@@ -184,8 +206,8 @@
         String finalSQL = addWhere(sql, condition);
         return executeUpdate(finalSQL);
     }
-    
-    public <T> int insert(Class<T> cls, Map<String,Object> condition){
+
+    public <T> int insert(Class<T> cls, Map<String, Object> condition) {
         String tableName = cls.getDeclaredAnnotation(TableName.class).value();
         if (Cools.isEmpty(tableName)) {
             return 0;
@@ -193,9 +215,9 @@
         String sql = "INSERT INTO " + tableName + " (";
         int conditionSize = 1;
         for (String s : condition.keySet()) {
-            if (conditionSize == condition.keySet().size()){
-                sql = sql +s+")";
-            }else {
+            if (conditionSize == condition.keySet().size()) {
+                sql = sql + s + ")";
+            } else {
                 sql = sql + s + ",";
             }
             conditionSize = conditionSize + 1;
@@ -203,25 +225,23 @@
         sql = sql + " VALUES(";
         int valuesSize = 1;
         for (String s : condition.keySet()) {
-            if (valuesSize == condition.keySet().size()){
-                
-                sql = sql + condition.get(s)+")";
-            }else {
+            if (valuesSize == condition.keySet().size()) {
+
+                sql = sql + condition.get(s) + ")";
+            } else {
                 sql = sql + condition.get(s) + ",";
             }
             valuesSize = valuesSize + 1;
         }
-        
+
         return executeUpdate(sql);
     }
-    
-    
+
 
     /*****************************************************************************/
     /*********************************   鏍稿績灞�   *********************************/
     /*****************************************************************************/
 
-    
 
     private List<Map<String, Object>> executeQuery(String sql) {
         Connection conn = null;
@@ -285,8 +305,7 @@
         Connection conn = null;
         try {
             conn = getConn();
-            if(null != conn)
-            {
+            if (null != conn) {
                 pstm = conn.prepareStatement(sql);
 
                 pstm.setQueryTimeout(QUERY_TIMEOUT_SECONDS);

--
Gitblit v1.9.1