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