fix: 优化初始化数据库操作
This commit is contained in:
parent
637e41248c
commit
014c21ad81
@ -110,6 +110,7 @@ export async function InitializeTheCentralTable(params: InitializeTheCentralTabl
|
||||
flag = await SqlInsertTable(tableList[i], JSON.parse(data) || [])
|
||||
}
|
||||
if (!flag) {
|
||||
dConsole.error(InitTableTag, "本地文件初始化数据库失败");
|
||||
Prompt.showToast({
|
||||
message: '本地文件初始化数据库失败'
|
||||
})
|
||||
@ -129,45 +130,69 @@ export async function InitializeTheCentralTable(params: InitializeTheCentralTabl
|
||||
host: params.host
|
||||
}
|
||||
const res: ResponseDataType = await initialization(str)
|
||||
console.log("解析完成")
|
||||
if (!res || !res.head || res.head.resultCode === "1") {
|
||||
resolve(false);
|
||||
}
|
||||
if (res && res.body) {
|
||||
for (const key of Object.keys(res.body)) {
|
||||
// 后端传递的字段首字母小写了,需要转换下
|
||||
let newKey = key.charAt(0).toUpperCase() + key.slice(1)
|
||||
let isExit = CenterMap.has(newKey)
|
||||
console.log(InitTableTag, "-------------------表名-----------------------", newKey, isExit)
|
||||
if (isExit) {
|
||||
console.log("可以插入的表", newKey, CenterMap.get(newKey))
|
||||
let arrList: Array<RecordType> | RecordType = []
|
||||
let value: PublicInfoType = Reflect.get(res.body, key)
|
||||
if (value instanceof Array) {
|
||||
arrList = value
|
||||
} else {
|
||||
arrList.push(value)
|
||||
}
|
||||
try {
|
||||
const tableKeys = Object.keys(res.body);
|
||||
const initPromises = tableKeys.map(async (key) => {
|
||||
// 后端传递的字段首字母小写了,需要转换下
|
||||
const newKey = key.charAt(0).toUpperCase() + key.slice(1);
|
||||
const isExit = CenterMap.has(newKey);
|
||||
|
||||
dConsole.log(InitTableTag, "-------------------表名-----------------------", newKey, isExit);
|
||||
|
||||
if (!isExit) return false;
|
||||
|
||||
dConsole.log("可以插入的表", newKey, CenterMap.get(newKey));
|
||||
|
||||
let arrList: Array<RecordType> | RecordType = [];
|
||||
const value: PublicInfoType = Reflect.get(res.body, key);
|
||||
arrList = value instanceof Array ? value : [value];
|
||||
|
||||
const folderPath = await fileUtil.initFolder(`/config/tableList`);
|
||||
fileUtil.addFile(`${folderPath}/${RemappingTableName.get(newKey)}.txt`, JSON.stringify(arrList))
|
||||
try {
|
||||
console.log(InitTableTag, "插入表操作", newKey)
|
||||
console.log(InitTableTag, "插入表别名", RemappingTableName.get(newKey))
|
||||
console.log(InitTableTag, "插入表长度", arrList.length)
|
||||
const result = await SqlInsertTable(RemappingTableName.get(newKey)!, arrList);
|
||||
console.log(InitTableTag, "插入表结果,表", newKey, "结果", result)
|
||||
if (!result) {
|
||||
Prompt.showToast({
|
||||
message: '初始化数据库失败'
|
||||
})
|
||||
}
|
||||
console.log(InitTableTag, "~~~~~~~~~~~~~~~~~~~~~~初始化成功~~~~~~~~~~~~~~~~~~~~~~", newKey)
|
||||
resolve(result)
|
||||
} catch (e) {
|
||||
dConsole.error(InitTableTag, "初始化表失败", JSON.stringify(e))
|
||||
reject(e)
|
||||
await fileUtil.addFile(
|
||||
`${folderPath}/${RemappingTableName.get(newKey)}.txt`,
|
||||
JSON.stringify(arrList)
|
||||
);
|
||||
|
||||
dConsole.log(InitTableTag, "插入表操作", newKey);
|
||||
dConsole.log(InitTableTag, "插入表别名", RemappingTableName.get(newKey));
|
||||
dConsole.log(InitTableTag, "插入表长度", arrList.length);
|
||||
|
||||
const result = await SqlInsertTable(RemappingTableName.get(newKey)!, arrList);
|
||||
dConsole.log(InitTableTag, "插入表结果,表", newKey, "结果", result);
|
||||
|
||||
if (!result) {
|
||||
Prompt.showToast({
|
||||
message: `初始化表 ${newKey} 失败`
|
||||
});
|
||||
return false;
|
||||
}
|
||||
|
||||
dConsole.log(InitTableTag, "~~~~~~~~~~~~~~~~~~~~~~初始化成功~~~~~~~~~~~~~~~~~~~~~~", newKey);
|
||||
return true;
|
||||
});
|
||||
|
||||
const results = await Promise.all(initPromises);
|
||||
const allSuccess = results.every(Boolean);
|
||||
|
||||
if (allSuccess) {
|
||||
resolve(true);
|
||||
} else {
|
||||
dConsole.error(InitTableTag, "部分表初始化失败", JSON.stringify(results));
|
||||
Prompt.showToast({
|
||||
message: '部分表初始化失败'
|
||||
});
|
||||
reject(new Error('部分表初始化失败'));
|
||||
}
|
||||
} catch (e) {
|
||||
dConsole.error(InitTableTag, "初始化表失败", JSON.stringify(e));
|
||||
Prompt.showToast({
|
||||
message: '初始化数据库失败'
|
||||
});
|
||||
reject(e);
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user