main
黄海 2 years ago
parent 793c244f69
commit 43597925f2

@ -122,9 +122,9 @@
</dependency> </dependency>
<!--引用postrgesql--> <!--引用postrgesql-->
<dependency> <dependency>
<groupId>postgresql</groupId> <groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId> <artifactId>postgresql</artifactId>
<version>8.2-504.jdbc3</version> <version>42.2.27</version>
</dependency> </dependency>
<!--引用poi--> <!--引用poi-->

@ -7,6 +7,7 @@ import com.dsideal.FengHuang.Util.CommonUtil;
import com.dsideal.FengHuang.Util.PkUtil; import com.dsideal.FengHuang.Util.PkUtil;
import com.jfinal.kit.PathKit; import com.jfinal.kit.PathKit;
import com.jfinal.kit.PropKit; import com.jfinal.kit.PropKit;
import com.jfinal.kit.StrKit;
import com.jfinal.plugin.activerecord.ActiveRecordPlugin; import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
import com.jfinal.plugin.activerecord.Db; import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Record; import com.jfinal.plugin.activerecord.Record;
@ -15,7 +16,9 @@ import com.jfinal.plugin.druid.DruidPlugin;
import com.jfinal.plugin.redis.RedisPlugin; import com.jfinal.plugin.redis.RedisPlugin;
import java.io.File; import java.io.File;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Set;
import java.util.UUID; import java.util.UUID;
public class SyncXtData2022 { public class SyncXtData2022 {
@ -42,14 +45,44 @@ public class SyncXtData2022 {
for (Record tableRecord : tableList) { for (Record tableRecord : tableList) {
String tableName = tableRecord.getStr("tablename"); String tableName = tableRecord.getStr("tablename");
List<Record> list = Db.findAll(tableName); 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";
int i = 0; List<Record> colsListTarge = Db.use("target").find(sql);
for (Record record : list) { List<Record> colsListSource = Db.use("source").find(sql);
record.set("record_year", 2022); Set<String> targetSet = new HashSet<>();
i++; for (Record rCol : colsListTarge) {
//保存 targetSet.add(rCol.getStr("name"));
Db.use("target").save(tableName, record); }
System.out.println("正在处理表【" + tableName + "】,第" + i + "条数据,当前表共" + list.size() + "条。"); 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("恭喜,所有导入工作成功完成!"); CommonUtil.printf("恭喜,所有导入工作成功完成!");

Loading…
Cancel
Save