|
|
|
@ -7,6 +7,7 @@ import com.dsideal.FengHuang.Util.CommonUtil;
|
|
|
|
|
import com.dsideal.FengHuang.Util.PkUtil;
|
|
|
|
|
import com.jfinal.kit.PathKit;
|
|
|
|
|
import com.jfinal.kit.PropKit;
|
|
|
|
|
import com.jfinal.kit.StrKit;
|
|
|
|
|
import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
|
|
|
|
|
import com.jfinal.plugin.activerecord.Db;
|
|
|
|
|
import com.jfinal.plugin.activerecord.Record;
|
|
|
|
@ -15,7 +16,9 @@ import com.jfinal.plugin.druid.DruidPlugin;
|
|
|
|
|
import com.jfinal.plugin.redis.RedisPlugin;
|
|
|
|
|
|
|
|
|
|
import java.io.File;
|
|
|
|
|
import java.util.HashSet;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Set;
|
|
|
|
|
import java.util.UUID;
|
|
|
|
|
|
|
|
|
|
public class SyncXtData2022 {
|
|
|
|
@ -42,14 +45,44 @@ public class SyncXtData2022 {
|
|
|
|
|
|
|
|
|
|
for (Record tableRecord : tableList) {
|
|
|
|
|
String tableName = tableRecord.getStr("tablename");
|
|
|
|
|
List<Record> list = Db.findAll(tableName);
|
|
|
|
|
int i = 0;
|
|
|
|
|
for (Record record : list) {
|
|
|
|
|
record.set("record_year", 2022);
|
|
|
|
|
i++;
|
|
|
|
|
//保存
|
|
|
|
|
Db.use("target").save(tableName, record);
|
|
|
|
|
System.out.println("正在处理表【" + tableName + "】,第" + i + "条数据,当前表共" + list.size() + "条。");
|
|
|
|
|
sql = "select a.attname as name from pg_class as c,pg_attribute as a where c.relname = '" + tableName + "' and a.attrelid = c.oid and a.attnum>0";
|
|
|
|
|
List<Record> colsListTarge = Db.use("target").find(sql);
|
|
|
|
|
List<Record> colsListSource = Db.use("source").find(sql);
|
|
|
|
|
Set<String> targetSet = new HashSet<>();
|
|
|
|
|
for (Record rCol : colsListTarge) {
|
|
|
|
|
targetSet.add(rCol.getStr("name"));
|
|
|
|
|
}
|
|
|
|
|
Set<String> sourceSet = new HashSet<>();
|
|
|
|
|
for (Record rCol : colsListSource) {
|
|
|
|
|
sourceSet.add(rCol.getStr("name"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
List<Record> list = Db.use("source").findAll(tableName);
|
|
|
|
|
|
|
|
|
|
int cnt = 0;
|
|
|
|
|
for (Record sourceRecord : list) {
|
|
|
|
|
cnt++;
|
|
|
|
|
//1、找出有用的列
|
|
|
|
|
Record rWrite = new Record();
|
|
|
|
|
for (int j = 0; j < sourceRecord.getColumnNames().length; j++) {
|
|
|
|
|
String colName = sourceRecord.getColumnNames()[j];
|
|
|
|
|
if (targetSet.contains(colName)) {
|
|
|
|
|
String value = sourceRecord.getStr(colName);
|
|
|
|
|
if (StrKit.isBlank(value)) value = "";
|
|
|
|
|
rWrite.set(colName, value);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//2、找出缺少的列
|
|
|
|
|
Set<String> resSet = new HashSet<>();
|
|
|
|
|
resSet.addAll(targetSet);
|
|
|
|
|
resSet.removeAll(sourceSet);
|
|
|
|
|
for (String str : resSet) {
|
|
|
|
|
rWrite.set(str, "");//加上默认值
|
|
|
|
|
}
|
|
|
|
|
rWrite.set("recordyear", 2022);
|
|
|
|
|
//3、保存
|
|
|
|
|
Db.use("target").save(tableName, "id", rWrite);
|
|
|
|
|
System.out.println("正在处理表【" + tableName + "】,第" + cnt + "条数据,当前表共" + list.size() + "条。");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
CommonUtil.printf("恭喜,所有导入工作成功完成!");
|
|
|
|
|