From c7884cb7dd4b50b1ae37fc956493e577a8535aed Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期二, 25 七月 2023 14:09:15 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/crm/common/web/DatavController.java     |   41 ++++++++
 src/main/java/com/zy/crm/common/service/DbSqlServer.java     |  192 ++++++++++++++++++++++++++++++++++++++
 src/main/java/com/zy/crm/common/properties/DbProperties.java |   30 ++++++
 src/main/resources/application.yml                           |    6 +
 4 files changed, 269 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/zy/crm/common/properties/DbProperties.java b/src/main/java/com/zy/crm/common/properties/DbProperties.java
new file mode 100644
index 0000000..4e17286
--- /dev/null
+++ b/src/main/java/com/zy/crm/common/properties/DbProperties.java
@@ -0,0 +1,30 @@
+package com.zy.crm.common.properties;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+/**
+ * Created by vincent on 2020/11/26
+ */
+@Data
+@ConfigurationProperties(prefix = "db")
+@Component
+public class DbProperties {
+
+    private String driver_class_name;
+
+    private String ur;
+
+    private String username;
+
+    private String password;
+
+//    {
+//        driver_class_name = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
+//        ur = "jdbc:sqlserver://127.0.0.1:1433;databasename=byrk";
+//        username = "sa";
+//        password = "sa@123";
+//    }
+
+}
diff --git a/src/main/java/com/zy/crm/common/service/DbSqlServer.java b/src/main/java/com/zy/crm/common/service/DbSqlServer.java
new file mode 100644
index 0000000..ef20ea2
--- /dev/null
+++ b/src/main/java/com/zy/crm/common/service/DbSqlServer.java
@@ -0,0 +1,192 @@
+package com.zy.crm.common.service;
+
+import com.core.common.Cools;
+import com.zy.crm.common.properties.DbProperties;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.sql.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Slf4j
+@Service
+@SuppressWarnings("all")
+public class DbSqlServer {
+
+//    private Connection conn;
+    private PreparedStatement pstm = null;
+    private ResultSet rs = null;
+
+    @Autowired
+    private DbProperties dbProperties;
+
+    /*****************************************************************************/
+    /**********************************   灏佽   **********************************/
+    /*****************************************************************************/
+
+    /**
+     * 鏌ヨ
+     */
+    public <T> List<T> select(String sql, Class<T> cls) {
+        List<Map<String, Object>> result = executeQuery(sql);
+        List<T> list = new ArrayList<>();
+        if (null != result) {
+            for (Map<String, Object> entity : result) {
+                list.add(Cools.conver(entity, cls));
+            }
+        }
+        return list;
+    }
+
+    public List<Map<String, Object>> select(String sql) {
+        return executeQuery(sql);
+    }
+
+    /**
+     * 淇敼
+     */
+    public int update(String sql) {
+        return executeUpdate(sql);
+    }
+
+    /*****************************************************************************/
+    /*********************************   鏍稿績灞�   *********************************/
+    /*****************************************************************************/
+
+    private List<Map<String, Object>> executeQuery(String sql) {
+        Connection conn = null;
+        try {
+            conn = getConn();
+            pstm = conn.prepareStatement(sql);
+            rs = pstm.executeQuery();
+            return convertList(rs);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return null;
+        } finally {
+            release();
+            if (conn != null) {
+                try {
+                    conn.close();
+                    conn = null;
+                } catch (SQLException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+    }
+
+
+    public Number executeQueryCount(String sql, String column) {
+        Number value = 0;
+        Connection conn = null;
+        try {
+            conn = getConn();
+            pstm = conn.prepareStatement(sql);
+            rs = pstm.executeQuery();
+            while (rs.next()) {
+                value = (Number) rs.getInt(column);
+            }
+            return value;
+        } catch (Exception e) {
+            e.printStackTrace();
+            return 0;
+        } finally {
+            release();
+            if (conn != null) {
+                try {
+                    conn.close();
+                    conn = null;
+                } catch (SQLException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+    }
+
+    private int executeUpdate(String sql) {
+        Connection conn = null;
+        try {
+            conn = getConn();
+            if(null != conn)
+            {
+                pstm = conn.prepareStatement(sql);
+            } else {
+                log.error("鏇存柊DB涓棿琛ㄥけ璐�===>>" + sql);
+            }
+            return pstm.executeUpdate();
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("鏇存柊DB涓棿琛ㄥけ璐�===>>" + sql);
+            return 0;
+        } finally {
+            release();
+            if (conn != null) {
+                try {
+                    conn.close();
+                    conn = null;
+                } catch (SQLException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+    }
+
+    private static List<Map<String, Object>> convertList(ResultSet rs) throws SQLException {
+        List<Map<String, Object>> list = new ArrayList<>();
+        ResultSetMetaData md = rs.getMetaData();
+        int columnCount = md.getColumnCount();
+        while (rs.next()) {
+            Map<String, Object> rowData = new HashMap<>();
+            for (int i = 1; i <= columnCount; i++) {
+                rowData.put(md.getColumnName(i), rs.getObject(i));
+            }
+            list.add(rowData);
+        }
+        return list;
+    }
+
+    //synchronized
+    public Connection getConn() throws SQLException {
+        Connection conn = null;
+        try {
+            Class.forName(dbProperties.getDriver_class_name()).newInstance();
+            conn = DriverManager.getConnection(dbProperties.getUr(), dbProperties.getUsername(), dbProperties.getPassword());
+        } catch (Exception e) {
+            log.error("鑾峰彇DB鏁版嵁搴撹繛鎺ュけ璐�");
+            e.printStackTrace();
+            throw new RuntimeException("鑾峰彇DB鏁版嵁搴撹繛鎺ュけ璐�");
+        }
+        return conn;
+    }
+
+    private void release() {
+        if (rs != null) {
+            try {
+                rs.close();
+            } catch (SQLException e) {
+                e.printStackTrace();
+            }
+        }
+        if (pstm != null) {
+            try {
+                pstm.close();
+            } catch (SQLException e) {
+                e.printStackTrace();
+            }
+        }
+//        if (conn != null) {
+//            try {
+//                conn.close();
+//                conn = null;
+//            } catch (SQLException e) {
+//                e.printStackTrace();
+//            }
+//        }
+    }
+
+}
diff --git a/src/main/java/com/zy/crm/common/web/DatavController.java b/src/main/java/com/zy/crm/common/web/DatavController.java
new file mode 100644
index 0000000..4994858
--- /dev/null
+++ b/src/main/java/com/zy/crm/common/web/DatavController.java
@@ -0,0 +1,41 @@
+package com.zy.crm.common.web;
+
+import com.core.common.R;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * Created by vincent on 2023/7/25
+ */
+@RestController
+public class DatavController {
+
+    @GetMapping("/1test")
+    public R test1() {
+        /**
+         * select
+         * (case  when A.org='1002208180000267' then '鍢夊杽'
+         *        when A.org='1002208180000506' then '骞垮痉'
+         * 	   else '' end) as 缁勭粐,
+         * A.DocNo as 鍗曞彿,A3.Code as 椤圭洰鍙�,
+         * (case  when A.DocState='0' then '寮�绔�'
+         *        when A.DocState='1' then '宸插鏍�'
+         * 	   when A.DocState='2' then '寮�宸�'
+         * 	   when A.DocState='3' then '瀹屽伐'
+         * 	   when A.DocState='4' then '鏍稿噯涓�'
+         * 	   ELSE''  end) as 鐘舵��,
+         * A.StartDate as 璁″垝寮�宸ユ棩,
+         * A.CompleteDate as 璁″垝瀹屽伐鏃�,A2.Code as 鏂欏彿,A2.name as 鍝佸悕,A2.SPECS as 瑙勬牸 , a.ProductQty as 鐢熶骇鏁伴噺,TotalCompleteQty as 瀹屽伐鏁伴噺
+         * from MO_MO as A
+         * left join CBO_ItemMaster as A2 on (A.ItemMaster = A2.ID)
+         * left join CBO_Project as A3 on (A.Project = A3.ID)
+         * where
+         * A.MODocType != '1002306121624435'  --杩囨护鍐呴儴鐮斿彂椤圭洰
+         * and A.IsWBSTask!=1                 --杩囨护鐜板満鏂藉伐浠诲姟
+         * and A.DocState != '3'              --杩囨护瀹屽伐鐘舵�佺殑璁㈠崟
+         * ORDER BY A.CompleteDate
+         */
+        return R.ok();
+    }
+
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 859690c..29da18b 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -59,3 +59,9 @@
     secret: 84CHL7tF21LbU1qpaP0jn9mIAZP9bv
     bucket: tjdt
     endpoint: http://oss-cn-hangzhou.aliyuncs.com
+
+db:
+  driver_class_name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+  ur: jdbc:sqlserver://rm-bp13167j4w0m2029meo.sqlserver.rds.aliyuncs.com:1433;databasename=xtyasrs_dual
+  username: u9c
+  password: Zhongyang@u9c$

--
Gitblit v1.9.1