|
@@ -6,7 +6,9 @@ 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 javax.sql.rowset.JdbcRowSet;
|
|
|
import java.sql.*;
|
|
|
import java.text.DateFormat;
|
|
|
import java.text.SimpleDateFormat;
|
|
@@ -21,14 +23,15 @@ public class DataMySQL2OracleService extends DataSourceOra {
|
|
|
|
|
|
|
|
|
|
|
|
- EquipmentNo equipmentNo =new EquipmentNo();
|
|
|
- DataCenterService dataCenterService=new DataCenterService();
|
|
|
- DataTypeService dataTypeService=new DataTypeService();
|
|
|
- DataDeleteService dataDeleteService=new DataDeleteService();
|
|
|
+ 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 {
|
|
|
|
|
|
|
|
|
+ DataRepoTable dataRepoTable = new DataRepoTable();
|
|
|
MysqlDataSource basicDS = DataSource.getInstance().getMySqlDS();
|
|
|
Connection connSource = basicDS.getConnection();
|
|
|
|
|
@@ -36,102 +39,132 @@ public class DataMySQL2OracleService extends DataSourceOra {
|
|
|
|
|
|
Connection connDest = this.getConn();
|
|
|
|
|
|
-
|
|
|
- StringBuilder sb = new StringBuilder();
|
|
|
- sb.append("insert into " + repo_name + "_OLD (");
|
|
|
- Statement stmt= connSource.createStatement();
|
|
|
- ResultSet rs = stmt.executeQuery("select * from " + table_name);
|
|
|
+
|
|
|
+ Statement stmt = 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() + "条记录,正在处理......");
|
|
|
+ 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);
|
|
|
+ System.out.println("任务开始,开始时间为:" + start);
|
|
|
|
|
|
|
|
|
|
|
|
- String num=equipmentNo.getNewEquipmentNo(repo_name,up_num);
|
|
|
- String state="";
|
|
|
- String type="";
|
|
|
- List smList=new ArrayList<>();
|
|
|
- DataRepoTable dataRepoTable=new DataRepoTable();
|
|
|
+ String num = equipmentNo.getNewEquipmentNo(repo_name, up_num);
|
|
|
+
|
|
|
+ String type = "";
|
|
|
+ List smList = new ArrayList<>();
|
|
|
+
|
|
|
+
|
|
|
ResultSetMetaData rsmd = rs.getMetaData();
|
|
|
int numberOfColumns = rsmd.getColumnCount();
|
|
|
- for(int i=1; i<=numberOfColumns;i++) {
|
|
|
+ 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.append("UP_NUM," + "DATA_STATE");
|
|
|
|
|
|
sb.append(")values(");
|
|
|
- for(int i=1; i<=numberOfColumns;i++) {
|
|
|
+ for (int i = 1; i <= numberOfColumns - 2; i++) {
|
|
|
sb.append("?,");
|
|
|
}
|
|
|
- sb.append("?,"+"?");
|
|
|
+ sb.append("?," + "?");
|
|
|
|
|
|
sb.append(")");
|
|
|
System.out.println(sb.toString());
|
|
|
|
|
|
-
|
|
|
PreparedStatement pstmt = connDest.prepareStatement(sb.toString());
|
|
|
- while(rs.next()) {
|
|
|
- for(int i=1; i<=numberOfColumns;i++) {
|
|
|
+
|
|
|
+
|
|
|
+ int k = 0;
|
|
|
+
|
|
|
+ while (rs.next()) {
|
|
|
+ for (int i = 1; i <= numberOfColumns - 2; 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")){
|
|
|
+ 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);
|
|
|
+ value = sm4.decryptData_ECB(value);
|
|
|
}
|
|
|
- pstmt.setString(i, value);
|
|
|
+
|
|
|
+ if (StringUtils.isEmpty(up_num)) {
|
|
|
+ k = 1;
|
|
|
+ state = "I";
|
|
|
+ pstmt.setString(i, value);
|
|
|
+ } else {
|
|
|
+
|
|
|
+ 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";
|
|
|
+ pstmt.setString(i, value);
|
|
|
+ } else if (long1 < long2 && long3 > long2) {
|
|
|
+ k = 3;
|
|
|
+ state = "U";
|
|
|
+ pstmt.setString(i, value);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
}
|
|
|
- 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();
|
|
|
-
|
|
|
+
|
|
|
+ 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));
|
|
|
+ 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);
|
|
|
+ dataCenterService.updateData(num, repo_name);
|
|
|
dataDeleteService.DataDelete(repo_name);
|
|
|
dataRepoTable.setTable_name(table_name);
|
|
|
dataRepoTable.setTable_comment(table_comment);
|
|
|
dataRepoTable.setRepo_name(repo_name);
|
|
|
dataRepoTable.setUp_num(num);
|
|
|
+
|
|
|
|
|
|
rs.close();
|
|
|
stmt.close();
|
|
@@ -140,6 +173,7 @@ public class DataMySQL2OracleService extends DataSourceOra {
|
|
|
connSource.close();
|
|
|
connDest.close();
|
|
|
|
|
|
+
|
|
|
return dataRepoTable;
|
|
|
}
|
|
|
|