19266 vor 1 Jahr
Ursprung
Commit
e0b4fbd648

+ 15 - 6
src/main/java/com/data/datarepo/controller/DataController.java

@@ -1,10 +1,7 @@
 package com.data.datarepo.controller;
 
 import com.data.datarepo.domain.DataRepoTable;
-import com.data.datarepo.services.DataAllService;
-import com.data.datarepo.services.DataListService;
-import com.data.datarepo.services.DataLoadService;
-import com.data.datarepo.services.DataService;
+import com.data.datarepo.services.*;
 import com.mysql.cj.util.StringUtils;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -25,6 +22,7 @@ public class DataController {
     DataAllService dataAllService=new DataAllService();
 
     DataListService dataListService=new DataListService();
+    DataMySQL2OracleService dataMySQL2OracleService=new DataMySQL2OracleService();
 
     @RequestMapping("/list")
     public String dataList(HttpServletRequest request, HttpServletResponse response) throws SQLException {
@@ -63,12 +61,23 @@ public class DataController {
     }
 
     @RequestMapping("/repo")
-    public String datarepo(String[] repo_name,HttpServletRequest request, HttpServletResponse response) throws SQLException {
+    public String datarepo(String[] repo_name,HttpServletRequest request, HttpServletResponse response) throws Exception {
         DataRepoTable dataRepoTable=new DataRepoTable();
         List<DataRepoTable> tableList=new ArrayList<DataRepoTable>();
+        String[]  value1 = new String[repo_name.length];
+        String[] value2 = new String[repo_name.length];
+        String[]  value3 = new String[repo_name.length];
+        String[] value4 = new String[repo_name.length];
         if(repo_name!=null){
             for(int i=0;i<repo_name.length;i++){
-                dataRepoTable=dataService.testSelect(repo_name[i]);
+                String temp = repo_name[i];
+                String[] itempsplit = temp.split("-");
+                value1[i]=itempsplit[0];
+                value2[i]=itempsplit[1];
+                value3[i]=itempsplit[2];
+                value4[i]=itempsplit[3];
+                dataRepoTable=dataMySQL2OracleService.startProcess(value1[i],value2[i],value3[i],value4[i]);
+//                dataRepoTable=dataService.testSelect(value1[i],value2[i],value3[i],value4[i]);
                 tableList.add(dataRepoTable);
                 System.out.println("表:"+repo_name[i]+"加载完成:100%");
             }

+ 1 - 1
src/main/java/com/data/datarepo/services/DataAllService.java

@@ -23,7 +23,7 @@ public class DataAllService {
             prepStmt = connection.prepareStatement(selectSQL);
             ResultSet rs = prepStmt.executeQuery();
             while(rs.next()){
-                dataService.testSelect(rs.getString("repo_name"));
+//                dataService.testSelect(rs.getString("repo_name"),rs.getString("table_name"),rs.getString("table_name"));
             }
         }catch (Exception e){
             e.printStackTrace();

+ 2 - 6
src/main/java/com/data/datarepo/services/DataCenterService.java

@@ -20,22 +20,18 @@ public class DataCenterService extends DataSourceOra{
         StringBuilder sb=new StringBuilder();
         sb.append("INSERT ALL ");
         for (int i=0;i<valueList.size();i++){
-
             sb.append(" INTO "+repo_name+"_OLD ("+nameList.get(i)+") values ("+valueList.get(i)+")");
         }
         sb.append("select * from dual");
-//        String selectSQL = "insert into "+repo_name+" select * from "+table_name+"";
         String selectSQL=sb.toString();
 //        System.out.println(selectSQL);
         PreparedStatement prepStmt = null;
         try {
-//            OracleDataSource basicDS = DataSourceOra.getInstance().getOds();
             connection = this.getConn();
             prepStmt = connection.prepareStatement(selectSQL);
             prepStmt.execute();
         }catch (Exception e){
             e.printStackTrace();
-
         }finally {
             if (connection != null) {
                 connection.commit();
@@ -96,10 +92,10 @@ public class DataCenterService extends DataSourceOra{
         }
     }
 
-    public String selectState(String resname, String resvalue, String repo_name) throws SQLException {
+    public String selectState(String resname, String resvalue, String repo_name,String up_num) throws SQLException {
 
         Connection connection = null;
-        String selectSQL = "select * from "+repo_name+" where "+resname+"='"+resvalue+"'";
+        String selectSQL = "select * from "+repo_name+" where "+resname+"='"+resvalue+"' and UP_NUM='"+up_num+"'";
         PreparedStatement prepStmt = null;
         String state="";
         try {

+ 152 - 0
src/main/java/com/data/datarepo/services/DataMySQL2OracleService.java

@@ -0,0 +1,152 @@
+package com.data.datarepo.services;
+
+import com.data.datarepo.domain.DataRepoTable;
+import com.data.datarepo.utils.DataSource;
+import com.data.datarepo.utils.EquipmentNo;
+import com.data.datarepo.utils.SM4Utils;
+import com.mysql.cj.jdbc.MysqlDataSource;
+
+import java.sql.*;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class DataMySQL2OracleService {
+    // 源数据库,目标数据库的连接配置
+    String mysql_jdbc_url = "jdbc:mysql://localhost/mz-cloud?user=root&password=password1&useUnicode=true&characterEncoding=gb2312";
+
+    String jdbc_url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
+    String jdbc_user = "DATAREP";
+    String jdbc_password = "sckjadmin";
+    EquipmentNo equipmentNo =new EquipmentNo();
+    DataCenterService dataCenterService=new DataCenterService();
+    DataTypeService dataTypeService=new DataTypeService();
+    DataDeleteService dataDeleteService=new DataDeleteService();
+
+    public DataRepoTable startProcess(String repo_name, String table_name, String up_num, String table_comment) throws Exception {
+        // 创建到两个数据库的连接
+        Class.forName("com.mysql.cj.jdbc.Driver");
+        MysqlDataSource basicDS = DataSource.getInstance().getMySqlDS();
+        Connection connSource = basicDS.getConnection();
+//        Connection connSource = DriverManager.getConnection(mysql_jdbc_url);
+
+        Class.forName("oracle.jdbc.driver.OracleDriver");
+        Connection connDest = DriverManager.getConnection(jdbc_url, jdbc_user,
+                jdbc_password);
+
+        // 打开源数据库中相关表
+        StringBuilder sb = new StringBuilder();
+        sb.append("insert into " + repo_name + "_OLD (");
+        Statement stmt= connSource.createStatement();
+        ResultSet rs = stmt.executeQuery("select * from " + table_name);
+
+        // 显示共计有多少条记录
+        rs.last();
+        System.out.println(table_name + "表共计有:"+ rs.getRow() + "条记录,正在处理......");
+        rs.beforeFirst();
+
+        DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        java.util.Date beginTime = new Date();
+        String start = df.format(beginTime);
+        Long begin = beginTime.getTime();
+        System.out.println("任务开始,开始时间为:"+ start);
+
+        // 先计算目标数据库的PreparedStatement的SQL语句
+//        String num="";
+        String num=equipmentNo.getNewEquipmentNo(repo_name,up_num);
+        String state="";
+        String type="";
+        List smList=new ArrayList<>();
+        DataRepoTable dataRepoTable=new DataRepoTable();
+        ResultSetMetaData rsmd = rs.getMetaData();
+        int numberOfColumns = rsmd.getColumnCount();
+        for(int i=1; i<=numberOfColumns;i++) {
+            sb.append(rsmd.getColumnName(i) + ",");
+            type= dataTypeService.selectType(repo_name,rsmd.getColumnName(i));
+            if("0".equals(type)){
+                smList.add(i);
+            }
+        }
+        sb.append("UP_NUM,"+"DATA_STATE");
+//        sb.deleteCharAt(sb.length()-1);
+        sb.append(")values(");
+        for(int i=1; i<=numberOfColumns;i++) {
+            sb.append("?,");
+        }
+        sb.append("?,"+"?");
+//        sb.deleteCharAt(sb.length()-1);
+        sb.append(")");
+        System.out.println(sb.toString());
+
+        // 给PreparedStatement赋值,然后更新;如果是大数量的情况,可以考虑Batch处理。因为这里的数据量小,直接单条更新了。
+        PreparedStatement pstmt = connDest.prepareStatement(sb.toString());
+        while(rs.next()) {
+            for(int i=1; i<=numberOfColumns;i++) {
+//                type= dataTypeService.selectType(repo_name,rsmd.getColumnName(i));
+                String value=rs.getString(i);
+                String columnName=rsmd.getColumnName(i);
+                if(columnName.equals("AXCP0005")||columnName.equals("AHDX6129")
+                            ||columnName.equals("AXCP0002")||columnName.equals("AHAP0026")||columnName.equals("AHAP1026")
+                            ||columnName.equals("AXZX0001")||columnName.equals("AHAP0028")||columnName.equals("AHAP0029")
+                            ||columnName.equals("AXZX0010")||columnName.equals("AXZX0011")||columnName.equals("AHAX1326")
+                            ||columnName.equals("AHAX1328")||columnName.equals("AHAX1324")||columnName.equals("AHBX3102")
+                            ||columnName.equals("AHBX3116")||columnName.equals("AHBX3115")||columnName.equals("AXZX0002")
+                            ||columnName.equals("AHDP5010")||columnName.equals("AHDP5011")||columnName.equals("AHDP5020")
+                            ||columnName.equals("AHDP5021")||columnName.equals("AHDP5052")||columnName.equals("AHDP5055")
+                            ||columnName.equals("AHDP5057")||columnName.equals("AHDP5058")||columnName.equals("AHDP5063")
+                            ||columnName.equals("AHDP5330")||columnName.equals("AHDP5098")||columnName.equals("AHDP5099")
+                            ||columnName.equals("AHDP5110")||columnName.equals("AHAX1325") ||columnName.equals("AHAE2327")
+                            ||columnName.equals("AXBE0013")||columnName.equals("AXBE0021")||columnName.equals("AHAE0012")
+                            ||columnName.equals("AXBE0018")||columnName.equals("AHAE5004")||columnName.equals("AHAE5026")
+                            ||columnName.equals("AHAE5027")||columnName.equals("AHAE5029")){
+                    SM4Utils sm4 = new SM4Utils();
+                    sm4.secretKey = "1234567887654321";
+                    value=sm4.decryptData_ECB(value);
+                }
+                pstmt.setString(i, value);
+//                pstmt.setString(i, rs.getString(i));
+            }
+            state= dataCenterService.selectState(rsmd.getColumnName(1),rs.getString(1),repo_name,up_num);
+            pstmt.setObject(numberOfColumns+1,num);
+            pstmt.setObject(numberOfColumns+2,state);
+            System.out.print("-");
+            pstmt.addBatch();
+
+        }
+        Date finishTime = new Date();
+        Long end = finishTime.getTime();
+        long timeLag = end - begin;
+        long day=timeLag/(24*60*60*1000);
+        long hour=(timeLag/(60*60*1000)-day*24);
+        long minute=((timeLag/(60*1000))-day*24*60-hour*60);
+        long s=(timeLag/1000-day*24*60*60-hour*60*60-minute*60);
+        System.out.println("用了 "+day+"天 "+hour+"时 "+minute+"分 "+s+"秒");
+        System.out.println("任务结束,结束时间为:"+ df.format(finishTime));
+
+        pstmt.executeBatch();
+        dataCenterService.updateData(num,repo_name);
+        dataDeleteService.DataDelete(repo_name);//清除oracle中数据
+        dataRepoTable.setTable_name(table_name);
+        dataRepoTable.setTable_comment(table_comment);
+        dataRepoTable.setRepo_name(repo_name);
+        dataRepoTable.setUp_num(num);
+        // 关闭各资源
+        rs.close();
+        stmt.close();
+        pstmt.close();
+
+        connSource.close();
+        connDest.close();
+
+        return dataRepoTable;
+    }
+
+//    public static void main(String[] args) throws Exception {
+//        CopyMySQL2Oracle ins = new CopyMySQL2Oracle();
+//        ins.startProcess("PRODUCT");
+//
+//        // ...需要拷贝的表名在下面加入即可,注意顺序,比如有外键的表应该排列在主表之后。
+//    }
+}

+ 83 - 40
src/main/java/com/data/datarepo/services/DataService.java

@@ -11,6 +11,7 @@ import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
+import java.text.DateFormat;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
@@ -24,74 +25,80 @@ public class DataService {
     EquipmentNo equipmentNo =new EquipmentNo();
     DataCenterService dataCenterService=new DataCenterService();
     DataDeleteService dataDeleteService=new DataDeleteService();
-    public DataRepoTable testSelect(String repo_name) throws SQLException {
+    DataTypeService dataTypeService=new DataTypeService();
+    public DataRepoTable testSelect(String repo_name,String table_name,String up_num,String table_comment) throws SQLException {
         List valueList=new ArrayList();
         List nameList=new ArrayList();
         Connection connection = null;
         DataRepoTable dataRepoTable=new DataRepoTable();
-        String selectSQL2 = "Select * from data_sync_table where repo_name = ?";
+//        String selectSQL2 = "Select * from data_sync_table where repo_name = ?";
 
 //        String selectSQL2 = "Select * from data_sync_table where table_name = v_report_yljg_yg_cyjl";
         PreparedStatement prepStmt = null;
-        PreparedStatement prepStmt2 = null;
-        String table_name="";
-        String table_comment="";
-        String num=equipmentNo.getNewEquipmentNo(repo_name);
+//        PreparedStatement prepStmt2 = null;
+//        String table_name="";
+        String num=equipmentNo.getNewEquipmentNo(repo_name,up_num);
         String state="";
+        String type="";
 //        String num="";
 
         try {
             MysqlDataSource basicDS = DataSource.getInstance().getMySqlDS();
             connection = basicDS.getConnection();
-            prepStmt2 = connection.prepareStatement(selectSQL2);
-            prepStmt2.setString(1,repo_name);
-            ResultSet rs2 = prepStmt2.executeQuery();
-            rs2.next();
-            table_name=rs2.getString("table_name");
-            table_comment=rs2.getString("table_comment");
             String selectSQL = "select * from "+table_name+"";
             prepStmt = connection.prepareStatement(selectSQL);
             ResultSet rs = prepStmt.executeQuery();
+            int j=0;
+            DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            Date beginTime = new Date();
+            String start = df.format(beginTime);
+            Long begin = beginTime.getTime();
+            System.out.println("任务开始,开始时间为:"+ start);
             while(rs.next()){
                 String resname="";
                 String resvalue="";
-
+                String valueNum="";
+                j++;
                 for(int i=1;i<=rs.getMetaData().getColumnCount();i++){
                     String name2=rs.getMetaData().getColumnName(i);
                     String value2= rs.getString(i);
+
                     if(i==1){
-                        state= dataCenterService.selectState(name2,value2,repo_name);
+//                        state= dataCenterService.selectState(name2,value2,repo_name);
                     }
+                    type= dataTypeService.selectType(repo_name,name2);
                     if(StringUtils.isNullOrEmpty(value2)){
                         continue;
-                    }else if(name2.equals("AXCP0005")||name2.equals("AHDX6129")
-                            ||name2.equals("AXCP0002")||name2.equals("AHAP0026")||name2.equals("AHAP1026")
-                            ||name2.equals("AXZX0001")||name2.equals("AHAP0028")||name2.equals("AHAP0029")
-                            ||name2.equals("AXZX0010")||name2.equals("AXZX0011")||name2.equals("AHAX1326")
-                            ||name2.equals("AHAX1328")||name2.equals("AHAX1324")||name2.equals("AHBX3102")
-                            ||name2.equals("AHBX3116")||name2.equals("AHBX3115")||name2.equals("AXZX0002")
-                            ||name2.equals("AHDP5010")||name2.equals("AHDP5011")||name2.equals("AHDP5020")
-                            ||name2.equals("AHDP5021")||name2.equals("AHDP5052")||name2.equals("AHDP5055")
-                            ||name2.equals("AHDP5057")||name2.equals("AHDP5058")||name2.equals("AHDP5063")
-                            ||name2.equals("AHDP5330")||name2.equals("AHDP5098")||name2.equals("AHDP5099")
-                            ||name2.equals("AHDP5110")||name2.equals("AHAX1325") ||name2.equals("AHAE2327")
-                            ||name2.equals("AXBE0013")||name2.equals("AXBE0021")||name2.equals("AHAE0012")
-                            ||name2.equals("AXBE0018")||name2.equals("AHAE5004")||name2.equals("AHAE5026")
-                            ||name2.equals("AHAE5027")||name2.equals("AHAE5029")){
+                    }else if(!StringUtils.isNullOrEmpty(type)&&type.equals("0")){
+//                    else if(name2.equals("AXCP0005")||name2.equals("AHDX6129")
+//                            ||name2.equals("AXCP0002")||name2.equals("AHAP0026")||name2.equals("AHAP1026")
+//                            ||name2.equals("AXZX0001")||name2.equals("AHAP0028")||name2.equals("AHAP0029")
+//                            ||name2.equals("AXZX0010")||name2.equals("AXZX0011")||name2.equals("AHAX1326")
+//                            ||name2.equals("AHAX1328")||name2.equals("AHAX1324")||name2.equals("AHBX3102")
+//                            ||name2.equals("AHBX3116")||name2.equals("AHBX3115")||name2.equals("AXZX0002")
+//                            ||name2.equals("AHDP5010")||name2.equals("AHDP5011")||name2.equals("AHDP5020")
+//                            ||name2.equals("AHDP5021")||name2.equals("AHDP5052")||name2.equals("AHDP5055")
+//                            ||name2.equals("AHDP5057")||name2.equals("AHDP5058")||name2.equals("AHDP5063")
+//                            ||name2.equals("AHDP5330")||name2.equals("AHDP5098")||name2.equals("AHDP5099")
+//                            ||name2.equals("AHDP5110")||name2.equals("AHAX1325") ||name2.equals("AHAE2327")
+//                            ||name2.equals("AXBE0013")||name2.equals("AXBE0021")||name2.equals("AHAE0012")
+//                            ||name2.equals("AXBE0018")||name2.equals("AHAE5004")||name2.equals("AHAE5026")
+//                            ||name2.equals("AHAE5027")||name2.equals("AHAE5029")){
 
                         SM4Utils sm4 = new SM4Utils();
                         sm4.secretKey = "1234567887654321";
                         value2=sm4.decryptData_ECB(value2);
 
-                    }else if(name2.equals("AXBE9001")||name2.equals("UPDATETIME")||name2.equals("AHDX6145")
-                            ||name2.equals("AHDX6146")||name2.equals("AHDX6158")||name2.equals("AHDX6177")
-                            ||name2.equals("AHDX6165")||name2.equals("AHDX6174")||name2.equals("AHDX6159")
-                            ||name2.equals("AHAE2493")||name2.equals("AHDX6020")||name2.equals("AXCP0039")
-                            ||name2.equals("AHDP5070")||name2.equals("AHDP5071")||name2.equals("AHDP5112")
-                            ||name2.equals("AHDP5082")||name2.equals("AHDP5102")||name2.equals("AHDP5039")
-                            ||name2.equals("AHDP5040")||name2.equals("AHAE2325")||name2.equals("AHAE2328")
-                            ||name2.equals("AHAE2349")||name2.equals("AXBE0017")||name2.equals("AHAE0041")
-                            ||name2.equals("AHAE5024")||name2.equals("AHAE5024")){
+                    }else if(!StringUtils.isNullOrEmpty(type)&&type.equals("1")){
+//                    else if(name2.equals("AXBE9001")||name2.equals("UPDATETIME")||name2.equals("AHDX6145")
+//                            ||name2.equals("AHDX6146")||name2.equals("AHDX6158")||name2.equals("AHDX6177")
+//                            ||name2.equals("AHDX6165")||name2.equals("AHDX6174")||name2.equals("AHDX6159")
+//                            ||name2.equals("AHAE2493")||name2.equals("AHDX6020")||name2.equals("AXCP0039")
+//                            ||name2.equals("AHDP5070")||name2.equals("AHDP5071")||name2.equals("AHDP5112")
+//                            ||name2.equals("AHDP5082")||name2.equals("AHDP5102")||name2.equals("AHDP5039")
+//                            ||name2.equals("AHDP5040")||name2.equals("AHAE2325")||name2.equals("AHAE2328")
+//                            ||name2.equals("AHAE2349")||name2.equals("AXBE0017")||name2.equals("AHAE0041")
+//                            ||name2.equals("AHAE5024")){
 
                         resname+=name2+",";
                         resvalue+="to_date("+value2+",'yyyymmdd')"+",";
@@ -101,12 +108,48 @@ public class DataService {
                         resvalue+="'"+value2+"'"+",";
 
                 }
+
+//                System.out.println(j);
                 resname=resname+"UP_NUM"+",DATA_STATE";
                 resvalue=resvalue+"'"+num+"'"+","+"'"+state+"'";
                 nameList.add(resname);
                 valueList.add(resvalue);
+
+                if(j % 10 == 0){
+                    Date finishTime = new Date();
+                    Long end = finishTime.getTime();
+                    long timeLag = end - begin;
+                    long day=timeLag/(24*60*60*1000);
+                    long hour=(timeLag/(60*60*1000)-day*24);
+                    long minute=((timeLag/(60*1000))-day*24*60-hour*60);
+                    long s=(timeLag/1000-day*24*60*60-hour*60*60-minute*60);
+                    System.out.println("10条数据读取和解密用了 "+day+"天 "+hour+"时 "+minute+"分 "+s+"秒");
+                    dataCenterService.insertData(nameList,repo_name,valueList);
+                    Date finishTime2 = new Date();
+                    Long end2 = finishTime2.getTime();
+                    long timeLag2 = end2 - end;
+                    long day2=timeLag2/(24*60*60*1000);
+                    long hour2=(timeLag2/(60*60*1000)-day2*24);
+                    long minute2=((timeLag2/(60*1000))-day2*24*60-hour2*60);
+                    long s2=(timeLag2/1000-day2*24*60*60-hour2*60*60-minute2*60);
+                    System.out.println("10条数据保存用了 "+day2+"天 "+hour2+"时 "+minute2+"分 "+s2+"秒");
+                    nameList.clear();
+                    valueList.clear();
+                }
+            }
+            if(nameList != null && !nameList.isEmpty()) {
+                dataCenterService.insertData(nameList,repo_name,valueList);
             }
-            dataCenterService.insertData(nameList,repo_name,valueList);
+            Date finishTime = new Date();
+            Long end = finishTime.getTime();
+            long timeLag = end - begin;
+            long day=timeLag/(24*60*60*1000);
+            long hour=(timeLag/(60*60*1000)-day*24);
+            long minute=((timeLag/(60*1000))-day*24*60-hour*60);
+            long s=(timeLag/1000-day*24*60*60-hour*60*60-minute*60);
+            System.out.println("用了 "+day+"天 "+hour+"时 "+minute+"分 "+s+"秒");
+            System.out.println("任务结束,结束时间为:"+ df.format(finishTime));
+            System.out.println("表"+repo_name+"上传了"+j+"条数据到中间库");
             dataCenterService.updateData(num,repo_name);
             dataDeleteService.DataDelete(repo_name);//清除oracle中数据
             dataRepoTable.setTable_name(table_name);
@@ -116,8 +159,8 @@ public class DataService {
         } catch (Exception e) {
             e.printStackTrace();
         }finally {
-            if (prepStmt2 != null) {
-                prepStmt2.close();
+            if (prepStmt != null) {
+                prepStmt.close();
             }
             if (connection != null) {
                 connection.close();

+ 35 - 0
src/main/java/com/data/datarepo/services/DataTypeService.java

@@ -0,0 +1,35 @@
+package com.data.datarepo.services;
+
+import com.data.datarepo.utils.DataSource;
+import com.mysql.cj.jdbc.MysqlDataSource;
+
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+public class DataTypeService {
+
+    public String selectType(String repo_name,String column) throws SQLException {
+        Connection connection = null;
+        PreparedStatement prepStmt = null;
+        MysqlDataSource basicDS = DataSource.getInstance().getMySqlDS();
+        connection = basicDS.getConnection();
+        String selectSQL = "select column_type from data_sync_table_column where repo_name='"+repo_name+"' and column_name='"+column+"'";
+//        System.out.println(selectSQL);
+        prepStmt = connection.prepareStatement(selectSQL);
+        ResultSet rs = prepStmt.executeQuery();
+        String type="";
+        if(rs.next()){
+            type=rs.getString("column_type");
+        }
+        if (prepStmt != null) {
+            prepStmt.close();
+        }
+        if (connection != null) {
+            connection.close();
+        }
+        return type;
+
+    }
+}

+ 4 - 3
src/main/java/com/data/datarepo/utils/DataSource.java

@@ -7,11 +7,12 @@ public class DataSource {
 
     private static final String DRIVER_CLASS = "com.mysql.cj.jdbc.Driver";
 //    private static final String DB_CONNECTION_URL = "jdbc:mysql://19.135.92.130:56612/mz-cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8";
-    private static final String DB_CONNECTION_URL = "jdbc:mysql://121.36.73.159:56612/mz-cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8";
+    private static final String DB_CONNECTION_URL = "jdbc:mysql://127.0.0.1:3306/mz-cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8";
 //    private static final String DB_USER = "dev";
 //    private static final String DB_PWD = "sckj2022@123";
-    private static final String DB_USER = "dev";
-    private static final String DB_PWD = "sckj2022@123";
+    private static final String DB_USER = "root";
+    private static final String DB_PWD = "sckjadmin";
+//    private static final String DB_PWD = "root";
     private static DataSource ds;
     private MysqlDataSource mySqlDS = new MysqlDataSource();
 

+ 3 - 3
src/main/java/com/data/datarepo/utils/DataSourceOra.java

@@ -16,9 +16,9 @@ public class DataSourceOra {
 //    private static final String DB_USER = "ylxt";
 //    private static final String DB_PWD = "ylxt";
     public static final String DRIVER="oracle.jdbc.driver.OracleDriver";
-    public static final String URL="jdbc:oracle:thin:@10.16.4.7:1521:helowin";
-    public static final String UID="ylxt";
-    public static final String PWD="ylxt";
+    public static final String URL="jdbc:oracle:thin:@127.0.0.1:1521:ORCL";
+    public static final String UID="DATAREP";
+    public static final String PWD="sckjadmin";
 
     /***
      * 加载驱动,打开数据库连接

+ 42 - 22
src/main/java/com/data/datarepo/utils/EquipmentNo.java

@@ -1,6 +1,7 @@
 package com.data.datarepo.utils;
 
 import com.mysql.cj.jdbc.MysqlDataSource;
+import org.apache.commons.lang3.StringUtils;
 
 import java.sql.Connection;
 import java.sql.PreparedStatement;
@@ -11,22 +12,19 @@ import java.util.Date;
 
 public class EquipmentNo extends DataSourceOra{
 
-    public String getNewEquipmentNo(String equipmentType) throws SQLException {
+    public String getNewEquipmentNo(String equipmentType,String up_num) throws SQLException {
 
         SimpleDateFormat f = new SimpleDateFormat("yyyyMMdd");//设置日期格式
         String date = f.format(new Date(System.currentTimeMillis()));
-        Connection connection = null;
-        String selectSQL = "select up_num from "+equipmentType+"_OLD where up_num like '220000000000_"+equipmentType+"_"+date+"%' order by up_num desc";
-        PreparedStatement prepStmt = null;
+        String update="";
         String Number="";
-        try {
-//            MysqlDataSource basicDS = DataSource.getInstance().getMySqlDS();
-            connection = this.getConn();
-            prepStmt = connection.prepareStatement(selectSQL);
-            ResultSet rs = prepStmt.executeQuery();
-            if(rs.next()){
-                String n =rs.getString("up_num");
-                int intNumber = Integer.parseInt(n.substring(n.length()-2));
+        if(StringUtils.isEmpty(up_num)||"null".equals(up_num)){
+            Number = "220000000000_"+equipmentType+"_" + date+"_" + "01";
+        }else {
+            String[] upnums= up_num.split("_");
+            update=upnums[2];
+            if(date.equals(update)){
+                int intNumber = Integer.parseInt(up_num.substring(up_num.length()-2));
                 intNumber++;
                 Number = String.valueOf(intNumber);
                 for (int i = 0; i < 2; i++){
@@ -36,18 +34,40 @@ public class EquipmentNo extends DataSourceOra{
             }else{
                 Number = "220000000000_"+equipmentType+"_" + date+"_" + "01";
             }
+        }
 
-        }catch (Exception e){
-            e.printStackTrace();
-        }finally {
-            if (prepStmt != null) {
-                prepStmt.close();
-            }
-            if (connection != null) {
-                connection.close();
-            }
+//        Connection connection = null;
+//        String selectSQL = "select up_num from "+equipmentType+"_OLD where up_num like '220000000000_"+equipmentType+"_"+date+"%' order by up_num desc";
+//        PreparedStatement prepStmt = null;
 
-        }
+//        try {
+////            MysqlDataSource basicDS = DataSource.getInstance().getMySqlDS();
+////            connection = this.getConn();
+////            prepStmt = connection.prepareStatement(selectSQL);
+////            ResultSet rs = prepStmt.executeQuery();
+//            if(!date.equals(update)){
+//                String n =rs.getString("up_num");
+//                int intNumber = Integer.parseInt(n.substring(n.length()-2));
+//                intNumber++;
+//                Number = String.valueOf(intNumber);
+//                for (int i = 0; i < 2; i++){
+//                    Number = Number.length() < 2 ? "0" + Number : Number;
+//                }
+//                Number = "220000000000_"+equipmentType+"_" + date+"_" + Number;
+//            }else{
+//                Number = "220000000000_"+equipmentType+"_" + date+"_" + "01";
+//            }
+//
+//        }catch (Exception e){
+//            e.printStackTrace();
+//        }finally {
+//            if (prepStmt != null) {
+//                prepStmt.close();
+//            }
+//            if (connection != null) {
+//                connection.close();
+//            }
+//        }
         return Number;
 
     }

+ 1 - 1
src/main/resources/application.properties

@@ -1 +1 @@
-
+server.port=8099

+ 1 - 1
src/main/resources/templates/dataList.html

@@ -29,7 +29,7 @@
         <th:block th:each="item:${DataRepoTableList}">
             <tr>
                 <td>
-                    <input type="checkbox" onclick="check()" name="repo_name" th:value="${item.repo_name}" />
+                    <input type="checkbox" onclick="check()" name="repo_name" th:value="${item.repo_name}+'-'+${item.table_name}+'-'+${item.up_num}+'-'+${item.table_comment}" />
 
                 </td>
                 <td th:text="${item.table_name}"></td>