Browse Source

使用存储过程转入正式库

19266 1 year ago
parent
commit
aa6db843c7

+ 19 - 10
src/main/java/com/data/datarepo/controller/DataController.java

@@ -2,6 +2,7 @@ package com.data.datarepo.controller;
 
 import com.data.datarepo.domain.DataRepoTable;
 import com.data.datarepo.services.*;
+import com.data.datarepo.utils.EquipmentNo;
 import com.mysql.cj.util.StringUtils;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -11,7 +12,9 @@ import org.springframework.web.bind.annotation.RestController;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.sql.SQLException;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 @Controller
@@ -24,6 +27,7 @@ public class DataController {
     DataListService dataListService = new DataListService();
     DataMySQL2OracleService dataMySQL2OracleService = new DataMySQL2OracleService();
     DataRollBackService dataRollBackService=new DataRollBackService();
+    EquipmentNo equipmentNo = new EquipmentNo();
 
     @RequestMapping("/list")
     public String dataList(HttpServletRequest request, HttpServletResponse response) throws SQLException {
@@ -70,21 +74,26 @@ public class DataController {
 
         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];
-
+        String[] repo_names = new String[repo_name.length];
+        String[] table_names = new String[repo_name.length];
+        String[] up_nums = new String[repo_name.length];
+        String[] table_comments = new String[repo_name.length];
+        String[] table_id = new String[repo_name.length];
+        SimpleDateFormat f = new SimpleDateFormat("yyyyMMdd");//设置日期格式
+        String date = f.format(new Date(System.currentTimeMillis()));
         try{
+            String num = equipmentNo.getNewEquipmentNo();
             if (repo_name != null) {
                 for (int i = 0; i < repo_name.length; 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]);
+                    repo_names[i] = itempsplit[0];
+                    table_names[i] = itempsplit[1];
+                    up_nums[i] = itempsplit[2];
+                    table_comments[i] = itempsplit[3];
+                    table_id[i] = itempsplit[4];
+                    String up_num="220000000000_"+repo_names[i]+"_"+date+"_"+num;
+                    dataRepoTable = dataMySQL2OracleService.startProcess(repo_names[i], table_names[i], up_num, table_comments[i],table_id[i]);
 //                dataRepoTable=dataService.testSelect(value1[i],value2[i],value3[i],value4[i]);
                     tableList.add(dataRepoTable);
                     System.out.println("表:" + repo_name[i] + "加载完成:100%");

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

@@ -8,6 +8,7 @@ import com.mysql.cj.jdbc.MysqlDataSource;
 import oracle.jdbc.pool.OracleDataSource;
 
 import java.sql.*;
+import java.text.DateFormat;
 import java.text.SimpleDateFormat;
 import java.util.List;
 import java.util.Date;
@@ -71,7 +72,7 @@ public class DataCenterService extends DataSourceOra {
 
     public void insertUpnum(DataRepoTable dataRepoTable) throws SQLException {
         Connection connection = null;
-        String selectSQL = "insert into data_sync_upnum(table_name,repo_name,table_comment,equipmentNo)values (?,?,?,?)";
+        String selectSQL = "insert into data_sync_upnum(table_name,repo_name,table_comment,equipmentNo,create_time_str)values (?,?,?,?,NOW())";
         PreparedStatement prepStmt = null;
         try {
             MysqlDataSource basicDS = DataSource.getInstance().getMySqlDS();
@@ -132,8 +133,8 @@ public class DataCenterService extends DataSourceOra {
         Connection conn = null;
         PreparedStatement ps = null;
         ResultSet rs = null;
-        String num = equipmentNo.getNewEquipmentNo(repo_name, up_num);
-        dataRepoTable.setUp_num(num);
+//        String num = equipmentNo.getNewEquipmentNo(repo_name, up_num);
+        dataRepoTable.setUp_num(up_num);
         try {
             conn = this.getConn();
             ps = conn.prepareStatement("select * from " + repo_name + "_OLD where UP_NUM='" + up_num + "'");
@@ -175,12 +176,12 @@ public class DataCenterService extends DataSourceOra {
                     }
                     pstmt.setString(i, value);
                 }
-                pstmt.setObject(numberOfColumns, num);
+                pstmt.setObject(numberOfColumns, up_num);
                 pstmt.addBatch();
             }
             pstmt.executeBatch();
-            updateData(num, repo_name);
-            dataDeleteService.DataDelete(repo_name);//清除oracle中数据
+            updateData(up_num, repo_name);
+//            dataDeleteService.DataDelete(repo_name);//清除oracle中数据
         } catch (Exception e) {
             System.out.println(e.getMessage());
         } finally {

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

@@ -8,11 +8,24 @@ import java.sql.PreparedStatement;
 
 public class DataDeleteService extends DataSourceOra {
 
+    public void DataDeleteOld(String repo_name,String up_num) {
+        try {
+
+            Connection conn = this.getConn();
+            String desql="delete from "+repo_name+"_OLD where UP_NUM='"+up_num+"'";
+            PreparedStatement ps3 = conn.prepareStatement(desql);
+            ps3.executeUpdate();
+            ps3.close();
+            conn.close();
+        } catch (Exception e) {
+            System.out.println(e.getMessage());
+        }
+    }
     public void DataDelete(String repo_name) {
         try {
 
             Connection conn = this.getConn();
-            String sesql = "delete from " + repo_name;
+            String sesql = "delete from "+repo_name+"";
             PreparedStatement ps2 = conn.prepareStatement(sesql);
             ps2.executeUpdate();
             ps2.close();

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

@@ -25,8 +25,8 @@ public class DataListService {
             ResultSet rs = prepStmt.executeQuery();
             while(rs.next()){
                 DataRepoTable dataRepoTable=new DataRepoTable();
+                dataRepoTable.setTable_id(rs.getString("table_id"));
                 dataRepoTable.setRepo_name(rs.getString("repo_name"));
-
                 dataRepoTable.setTable_comment(rs.getString("table_comment"));
                 dataRepoTable.setTable_name(rs.getString("table_name"));
                 dataRepoTable.setUp_num(rs.getString("equipmentNo"));

+ 14 - 7
src/main/java/com/data/datarepo/services/DataLoadService.java

@@ -3,6 +3,8 @@ package com.data.datarepo.services;
 import com.data.datarepo.utils.DataSource;
 import com.data.datarepo.utils.DataSourceOra;
 import oracle.jdbc.pool.OracleDataSource;
+
+import java.sql.CallableStatement;
 import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.SQLException;
@@ -10,13 +12,18 @@ import java.sql.SQLException;
 public class DataLoadService extends DataSourceOra{
     public void testLoad(String repo_name,String up_num) throws SQLException {
         Connection conn=null;
-        PreparedStatement ps=null;
+        CallableStatement cstmt=null;
         try{
             conn=this.getConn();
-            String insql="insert into "+repo_name+" select * from "+repo_name+"_OLD where UP_NUM='"+up_num+"'";
-            System.out.println(insql);
-            ps=conn.prepareStatement(insql);
-            ps.execute();
+            String oldName=repo_name+"_OLD";
+            String seSql="select * from "+oldName+" where up_num='"+up_num+"'";
+//            System.out.println(seSql);
+            cstmt=conn.prepareCall("{ call DATAREP.largedata_insert(?,?)}");
+            cstmt.setString(1,repo_name);
+            cstmt.setString(2,seSql);
+//            cstmt.setString(3,up_num);
+            cstmt.execute();
+            System.out.println("表:"+repo_name+"执行成功!");
         }
         catch(Exception e)
         {
@@ -26,8 +33,8 @@ public class DataLoadService extends DataSourceOra{
                 conn.commit();
                 conn.close();
             }
-            if(ps!=null){
-                ps.close();
+            if(cstmt!=null){
+                cstmt.close();
             }
         }
     }

+ 206 - 132
src/main/java/com/data/datarepo/services/DataMySQL2OracleService.java

@@ -6,172 +6,246 @@ import com.data.datarepo.utils.DataSourceOra;
 import com.data.datarepo.utils.EquipmentNo;
 import com.data.datarepo.utils.SM4Utils;
 import com.mysql.cj.jdbc.MysqlDataSource;
-import org.apache.commons.lang3.StringUtils;
+import com.mysql.cj.util.StringUtils;
 
 import javax.sql.rowset.JdbcRowSet;
 import java.sql.*;
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
+import java.util.*;
 import java.util.Date;
-import java.util.List;
 
 public class DataMySQL2OracleService extends DataSourceOra {
-    // 源数据库,目标数据库的连接配置
-//    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 {
+    public DataRepoTable startProcess(String repo_name, String table_name, String up_num, String table_comment, String table_id) throws Exception {
+        dataDeleteService.DataDeleteOld(repo_name, up_num);//清除oracle中数据
         // 创建到两个数据库的连接
 //        Class.forName("com.mysql.cj.jdbc.Driver");
         DataRepoTable dataRepoTable = new DataRepoTable();
         MysqlDataSource basicDS = DataSource.getInstance().getMySqlDS();
         Connection connSource = basicDS.getConnection();
-//        Connection connSource = DriverManager.getConnection(mysql_jdbc_url);
-
-//        Class.forName("oracle.jdbc.driver.OracleDriver");
         Connection connDest = this.getConn();
 
 
         Statement stmt = connSource.createStatement();
+        Statement stmtI = connSource.createStatement();
+        Statement stmtU = connSource.createStatement();
+        Statement stmtL = connSource.createStatement();
+        Statement stmtC = connSource.createStatement();
+        Statement stmtS = connSource.createStatement();
+        Statement stmtT = connSource.createStatement();
         ResultSet rs = null;
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
-        String state = "";
-
-        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);
+        ResultSet rsI = null;
+        ResultSet rsU = null;
+        ResultSet rsL = null;
+        ResultSet rsC = null;
+        ResultSet rsS = null;
+        ResultSet rsT = null;
+        PreparedStatement pstmt = null;
+        String timeL = "";
+        String sqlC = "select insertSql from data_sync_table where repo_name='" + repo_name + "'";
+        rsC = stmtC.executeQuery(sqlC);
+        String sqlS = "select table_column,column_issm from data_sync_repo_column where table_id='" + table_id + "' and state='0'";
+        rsS = stmtS.executeQuery(sqlS);
+        String sqlT = "select count(*) as columnCount from data_sync_repo_column where table_id='" + table_id + "' and state='0'";
+        rsT = stmtT.executeQuery(sqlT);
 
-        String type = "";
-        List smList = new ArrayList<>();
-
-
-        ResultSetMetaData rsmd = rs.getMetaData();
-        int numberOfColumns = rsmd.getColumnCount();
-        StringBuilder sb = new StringBuilder();
-        sb.append("insert into " + repo_name + "_OLD (");
-        for (int i = 1; i <= numberOfColumns - 2; i++) {
-            sb.append(rsmd.getColumnName(i) + ",");
-        }
-        sb.append("UP_NUM," + "DATA_STATE");
-//        sb.deleteCharAt(sb.length()-1);
-        sb.append(")values(");
-        for (int i = 1; i <= numberOfColumns - 2; i++) {
-            sb.append("?,");
+        String inSql = "";
+        if (rsC.next()) {
+            inSql = rsC.getString("insertSql");
+            System.out.println(inSql);
         }
-        sb.append("?," + "?");
-//        sb.deleteCharAt(sb.length()-1);
-        sb.append(")");
-        System.out.println(sb.toString());
-
-        PreparedStatement pstmt = connDest.prepareStatement(sb.toString());
-//            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
-//            Date date = sdf.parse(str);
-        int k = 0;
+        try {
+            String sqlL = "select create_time_str from data_sync_upnum where table_id=(select max( table_id ) from data_sync_upnum where repo_name='" + repo_name + "')";
+            rsL = stmtL.executeQuery(sqlL);
+            rs = stmt.executeQuery("select * from " + table_name);
+            if (rsL.next()) {
+                timeL = rsL.getString("create_time_str");
+                String sqlI = "select * from " + table_name + " where date_format(create_date,'%Y%m%d')> date_format('" + timeL + "','%Y%m%d')";
+                System.out.println(sqlI);
+                rsI = stmtI.executeQuery(sqlI);
+                String sqlU = "select * from " + table_name + " where date_format(create_date,'%Y%m%d')<date_format('" + timeL + "','%Y%m%d') and date_format(update_date,'%Y%m%d')>date_format('" + timeL + "','%Y%m%d')";
+                System.out.println(sqlU);
+                rsU = stmtU.executeQuery(sqlU);
+            }
+            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()) {
-            for (int i = 1; i <= numberOfColumns - 2; 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);
-                }
+            ResultSetMetaData rsmd = rs.getMetaData();
+//            rsS.last();
+//            int numberOfColumns = rsmd.getColumnCount();
+            int numberOfColumns = 0;
+            if (rsT.next()) {
+                numberOfColumns = Integer.parseInt(rsT.getString("columnCount"));
+            }
+            Map smMap = new HashMap();
+            while (rsS.next()) {
+                String table_column = rsS.getString("table_column");
+                String issm = rsS.getString("column_issm");
+                smMap.put(table_column,issm);
+            }
+            pstmt = connDest.prepareStatement(inSql);
 
-                if (StringUtils.isEmpty(up_num)||"null".equals(up_num)) {
-                    k = 1;
-                    state = "I";
-                    pstmt.setString(i, value);
-                } else {
+            rsL.beforeFirst();
 
-                    Date cdate = sdf.parse(rs.getString("create_date"));
-                    Date udate = sdf.parse(rs.getString("update_date"));
-                    String up_date = up_num.split("_")[2];
-                    Date up_time = sdf.parse(up_date);
-                    long long1 = cdate.getTime();
-                    long long2 = up_time.getTime();
-                    long long3 = udate.getTime();
-                    if (long1 > long2) {
-                        k = 2;
-                        state = "I";
+            if (rsL.next()) {
+                rsI.beforeFirst();
+                rsU.beforeFirst();
+//                if (rsI.next()) {
+                int j = 0;
+                while (rsI.next()) {
+                    j++;
+                    for (int i = 1; i <= numberOfColumns - 2; i++) {
+                        String value = rsI.getString(i);
+                        String column_name=rsI.getMetaData().getColumnName(i);
+                        String issm=(String)smMap.get(column_name);
+                        if("0".equals(issm)){
+                            SM4Utils sm4 = new SM4Utils();
+                            sm4.secretKey = "1234567887654321";
+                            value = sm4.decryptData_ECB(value);
+                        }
                         pstmt.setString(i, value);
-                    } else if (long1 < long2 && long3 > long2) {
-                        k = 3;
-                        state = "U";
+                    }
+                    pstmt.setObject(numberOfColumns - 1, "I");
+                    pstmt.setObject(numberOfColumns, up_num);
+//                        System.out.print("-");
+                    pstmt.addBatch();
+                    if (j % 500 == 0) {
+                        pstmt.executeBatch();
+                    }
+                    pstmt.executeBatch();
+                }
+//                }else if(rsU.next()) {
+                while (rsU.next()) {
+                    j++;
+                    for (int i = 1; i <= numberOfColumns - 2; i++) {
+                        String value = rsU.getString(i);
+                        String column_name=rsU.getMetaData().getColumnName(i);
+                        String issm=(String)smMap.get(column_name);
+                        if("0".equals(issm)){
+                            SM4Utils sm4 = new SM4Utils();
+                            sm4.secretKey = "1234567887654321";
+                            value = sm4.decryptData_ECB(value);
+                        }
                         pstmt.setString(i, value);
                     }
+                    pstmt.setObject(numberOfColumns - 1, "U");
+                    pstmt.setObject(numberOfColumns, up_num);
+//                        System.out.print("-");
+                    pstmt.addBatch();
+                    if (j % 500 == 0) {
+                        pstmt.executeBatch();
+                    }
+                    pstmt.executeBatch();
                 }
-
-//                pstmt.setString(i, rs.getString(i));
+//                }
+                pstmt.executeBatch();
+            } else {
+                int j = 0;
+                while (rs.next()) {
+                    j++;
+                    rsS.beforeFirst();
+                    for (int i = 1; i <= numberOfColumns - 2; i++) {
+                        String value = rs.getString(i);
+                        String column_name=rs.getMetaData().getColumnName(i);
+                        String issm=(String)smMap.get(column_name);
+                        if("0".equals(issm)){
+                            SM4Utils sm4 = new SM4Utils();
+                            sm4.secretKey = "1234567887654321";
+                            value = sm4.decryptData_ECB(value);
+                        }
+//                        System.out.println(i + ":" + value);
+                        pstmt.setString(i, value);
+                    }
+                    pstmt.setObject(numberOfColumns - 1, "I");
+                    pstmt.setObject(numberOfColumns, up_num);
+//                    System.out.print("-");
+                    pstmt.addBatch();
+                    if (j % 500 == 0) {
+                        pstmt.executeBatch();
+                    }
+                }
+                pstmt.executeBatch();
             }
-//                state= dataCenterService.selectState(rsmd.getColumnName(1),rs.getString(1),repo_name,up_num);
-            if (k == 1 || k == 2 || k == 3) {
-                pstmt.setObject(numberOfColumns - 1, num);
-                pstmt.setObject(numberOfColumns, 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));
+            dataCenterService.updateData(up_num, repo_name);
+            dataDeleteService.DataDelete(repo_name);//清除oracle中数据
+            dataRepoTable.setTable_comment(table_comment);
+            dataRepoTable.setTable_name(table_name);
+            dataRepoTable.setRepo_name(repo_name);
+            dataRepoTable.setUp_num(up_num);
+        } catch (Exception e) {
+            connDest.rollback();
+            e.printStackTrace();
+        } finally {
+            // 关闭各资源
+            if (rs != null) {
+                rs.close();
+            }
+            if (rsI != null) {
+                rsI.close();
+            }
+            if (rsU != null) {
+                rsU.close();
+            }
+            if (rsL != null) {
+                rsL.close();
+            }
+            if (rsC != null) {
+                rsC.close();
+            }
+            if (rsS != null) {
+                rsS.close();
+            }
+            if (rsT != null) {
+                rsT.close();
+            }
+            if (stmt != null) {
+                stmt.close();
+            }
+            if (stmtI != null) {
+                stmtI.close();
+            }
+            if (stmtU != null) {
+                stmtU.close();
+            }
+            if (stmtL != null) {
+                stmtL.close();
+            }
+            if (stmtC != null) {
+                stmtC.close();
+            }
+            if (stmtS != null) {
+                stmtS.close();
+            }
+            if (stmtT != null) {
+                stmtT.close();
+            }
+            if (pstmt != null) {
+                pstmt.close();
+            }
+            if (connSource != null) {
+                connSource.close();
+            }
+            if (connDest != null) {
+                connDest.close();
             }
-        }
-        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;

+ 6 - 5
src/main/java/com/data/datarepo/services/DataService.java

@@ -38,7 +38,7 @@ public class DataService {
         PreparedStatement prepStmt = null;
 //        PreparedStatement prepStmt2 = null;
 //        String table_name="";
-        String num = equipmentNo.getNewEquipmentNo(repo_name, up_num);
+//        String num = equipmentNo.getNewEquipmentNo(repo_name, up_num);
         String state = "";
         String type = "";
 //        String num="";
@@ -112,7 +112,7 @@ public class DataService {
 
 //                System.out.println(j);
                 resname = resname + "UP_NUM" + ",DATA_STATE";
-                resvalue = resvalue + "'" + num + "'" + "," + "'" + state + "'";
+//                resvalue = resvalue + "'" + num + "'" + "," + "'" + state + "'";
                 nameList.add(resname);
                 valueList.add(resvalue);
 
@@ -151,12 +151,12 @@ public class DataService {
             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中数据
+//            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);
+//            dataRepoTable.setUp_num(num);
         } catch (Exception e) {
             e.printStackTrace();
         } finally {
@@ -177,6 +177,7 @@ public class DataService {
         dataRepoTable.setUp_num(up_num);
         dataRepoTable.setTable_name(table_name);
         dataRepoTable.setTable_comment(table_comment);
+        dataDeleteService.DataDelete(repo_name);
         dataLoadService.testLoad(repo_name, up_num);
         dataCenterService.insertUpnum(dataRepoTable);
         return dataRepoTable;

+ 1 - 0
src/main/java/com/data/datarepo/utils/DataSource.java

@@ -7,6 +7,7 @@ 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://10.16.4.7:3306/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";

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

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

+ 54 - 44
src/main/java/com/data/datarepo/utils/EquipmentNo.java

@@ -1,7 +1,7 @@
 package com.data.datarepo.utils;
 
 import com.mysql.cj.jdbc.MysqlDataSource;
-import org.apache.commons.lang3.StringUtils;
+import com.mysql.cj.util.StringUtils;
 
 import java.sql.Connection;
 import java.sql.PreparedStatement;
@@ -10,21 +10,58 @@ import java.sql.SQLException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
-public class EquipmentNo extends DataSourceOra{
+public class EquipmentNo extends DataSourceOra {
+
+    public String getNewEquipmentNo() throws SQLException {
+
+        String Number = "";
+        PreparedStatement mysqlprepStmt = null;
+        SimpleDateFormat f = new SimpleDateFormat("yyyyMMdd");//设置日期格式
+        String date = f.format(new Date(System.currentTimeMillis()));
+        MysqlDataSource basicDS = DataSource.getInstance().getMySqlDS();
+        Connection mysqlconnection = basicDS.getConnection();
+        try {
+//            if (StringUtils.isNullOrEmpty(up_num)) {
+//                Number = "220000000000_" + equipmentType + "_" + date + "_" + "01";
+//            } else {
+                String numsql = "select equipmentNo from data_sync_upnum where table_id=(select max( table_id ) from data_sync_upnum)";
+//                System.out.println(numsql);
+                mysqlprepStmt = mysqlconnection.prepareStatement(numsql);
+                ResultSet mysqlrs = mysqlprepStmt.executeQuery();
+                if (mysqlrs.next()) {
+                    String n = mysqlrs.getString("equipmentNo");
+                    String old=n.split("_")[2];
+                    if(old.equals(date)){
+                        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;
+                        }
+                    }else{
+                        Number="01";
+                    }
+//                    Number = "220000000000_" + equipmentType + "_" + date + "_" + Number;
+                }else{
+                    Number="01";
+                }
+//            }
 
-    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="";
-//        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));
+
+
+//            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));
 //                intNumber++;
 //                Number = String.valueOf(intNumber);
 //                for (int i = 0; i < 2; i++){
@@ -34,42 +71,15 @@ public class EquipmentNo extends DataSourceOra{
 //            }else{
 //                Number = "220000000000_"+equipmentType+"_" + date+"_" + "01";
 //            }
-//        }
-        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();
-//            String[] upnums= up_num.split("_");
-//            update=upnums[2];
-            if(rs.next()){
-                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){
+        } catch (Exception e) {
             e.printStackTrace();
-        }finally {
-            if (prepStmt != null) {
-                prepStmt.close();
+        } finally {
+            if (mysqlprepStmt != null) {
+                mysqlprepStmt.close();
             }
-            if (connection != null) {
-                connection.close();
+            if (mysqlconnection != null) {
+                mysqlconnection.close();
             }
         }
         return Number;

+ 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}+'-'+${item.table_name}+'-'+${item.up_num}+'-'+${item.table_comment}" />
+                    <input type="checkbox" onclick="check()" name="repo_name" th:value="${item.repo_name}+'-'+${item.table_name}+'-'+${item.up_num}+'-'+${item.table_comment}+'-'+${item.table_id}" />
 
                 </td>
                 <td th:text="${item.table_name}"></td>