diff --git a/entry/src/main/ets/pages/Index.ets b/entry/src/main/ets/pages/Index.ets index e382d37..302f27b 100644 --- a/entry/src/main/ets/pages/Index.ets +++ b/entry/src/main/ets/pages/Index.ets @@ -173,6 +173,8 @@ struct Index { } else { this.customDialogController.close() } + }).catch((err: BusinessError) => { + console.error("初始化表失败", err) }) } diff --git a/entry/src/main/ets/utils/DbSql.ets b/entry/src/main/ets/utils/DbSql.ets index 4203864..2b02caa 100644 --- a/entry/src/main/ets/utils/DbSql.ets +++ b/entry/src/main/ets/utils/DbSql.ets @@ -63,9 +63,11 @@ class DbUtils { return new Promise((resolve, reject) => { if (this.rdbStore) { this.rdbStore?.executeSql(sql).then(() => { + console.log(DbTag, "sql clearTable success", sql) resolve() }) } else { + console.error(DbTag, "sql clearTable fail", sql) reject('rdbStore is null') } }) @@ -76,11 +78,14 @@ class DbUtils { return new Promise((resolve, reject) => { if (this.rdbStore) { this.rdbStore?.executeSql(sql).then(() => { + console.log(DbTag, "sql executeSql success", sql) resolve("") }).catch((err: BusinessError) => { + console.error(DbTag, `sql executeSql fail err:${JSON.stringify(err)}`); reject(err) }) } else { + console.error(DbTag, "sql executeSql fail", sql) reject('rdbStore is null') } }) @@ -213,7 +218,7 @@ class DbUtils { obj[info.name] = val; }); // 3.3.将对象填入结果数组 - arr.push(obj as ESObject as T); // 将 obj 断言为 T 类型 + arr.push(obj as ESObject as T); // 将 obj 断言为 T 类型 } return arr; } diff --git a/entry/src/main/ets/utils/table/Operation.ets b/entry/src/main/ets/utils/table/Operation.ets index 70c26f8..4d5f6c5 100644 --- a/entry/src/main/ets/utils/table/Operation.ets +++ b/entry/src/main/ets/utils/table/Operation.ets @@ -10,12 +10,16 @@ import FileUtils from '../FileUtils'; // 建表操作 export async function InitTable() { - Object.keys(ParameterPlatform).forEach(async (item) => { - const platformItem = ParameterPlatform.get(item); - if (platformItem) { - await DB.executeSql(platformItem.sqlCreate); + ParameterPlatform.forEach(item => { + console.log("表名", item.sqlCreate) + if (item) { + DB.executeSql(item.sqlCreate).then(() => { + console.log("表创建成功", item.tableName) + }).catch((err: BusinessError) => { + console.log("表创建失败", item.tableName, err) + }) } - }); + }) } // 插表操作 @@ -25,21 +29,22 @@ export function SqlInsertTable(tableName: string, data: Array, delFl element.id = !delFlag ? `${index + data.length}` : `${index}` }) DB.clearTable(tableName).then((res) => { - const columns = Object.keys(data[0]).join(', '); - const values = data - .map((item) => { - const rowValues = Object.values(item) - .map((value: string | number) => (typeof value === 'string' ? `'${value}'` : value)) - return `(${rowValues})`; - }) - .join(', '); + const columnsData = ParameterPlatform.get(tableName)?.columns + const columns: string = columnsData?.filter((column) => column !== "id").join(",") || ""; + const values = data.map(item => { + const value = columnsData?.filter(column => column !== "id") + .map((column) => `'${Reflect.get(item, column) || ""}'`) + .join(",") + return value + }) let INSERT_SQL = "INSERT INTO " + tableName + " (" + columns + ") VALUES " + values + console.log('表插入语句,', INSERT_SQL, 'tableName', tableName) DB.executeSql(INSERT_SQL).then(() => { - console.log('sql insert,', res, 'tableName', tableName) + console.log('插入表成功', 'tableName', tableName) resolve(true) }).catch((err: BusinessError) => { - console.log('sql insert err,', JSON.stringify(err), 'tableName', tableName) + console.log('插入表失败,', JSON.stringify(err), 'tableName', tableName) reject(err) }) }) @@ -114,7 +119,7 @@ export async function InitializeTheCentralTable(params: InitializeTheCentralTabl resolve(flag) } // 非单机模式 - if (params.carId) { + if (!params.carId) { resolve(false) } const str: InitializeTheCentralTableType = { @@ -132,28 +137,34 @@ export async function InitializeTheCentralTable(params: InitializeTheCentralTabl } if (res.initializationRsp && res.initializationRsp.body) { for (const key of Object.keys(res.initializationRsp.body)) { - if (CenterMap[key]) { - continue - } - let arrList: Array | RecordType = [] - let value: PublicInfoType = Reflect.get(res.initializationRsp.body, key) - if (value.record instanceof Array) { - arrList = value.record - } else { - arrList.push(value.record) - } - const folderPath = await fileUtil.initFolder(`/config/tableList`); - fileUtil.addFile(`${folderPath}/${RemappingTableName.get(key)}.txt`, JSON.stringify(arrList)) - try { - const result = await SqlInsertTable(RemappingTableName.get(key)!, arrList); - if (!result) { - Prompt.showToast({ - message: '初始化数据库失败' - }) + let isExit = CenterMap.has(key) + console.log("表名", key, isExit) + if (isExit) { + console.log("可以插入的表", key, CenterMap.get(key)) + let arrList: Array | RecordType = [] + let value: PublicInfoType = Reflect.get(res.initializationRsp.body, key) + if (value.record instanceof Array) { + arrList = value.record + } else { + arrList.push(value.record) + } + const folderPath = await fileUtil.initFolder(`/config/tableList`); + fileUtil.addFile(`${folderPath}/${RemappingTableName.get(key)}.txt`, JSON.stringify(arrList)) + try { + console.log("插入表操作", key) + console.log("插入表别名", RemappingTableName.get(key)) + console.log("插入表长度", arrList.length) + const result = await SqlInsertTable(RemappingTableName.get(key)!, arrList); + console.log("插入表结果,表", key, "结果", result) + if (!result) { + Prompt.showToast({ + message: '初始化数据库失败' + }) + } + resolve(result) + } catch (e) { + reject(e) } - resolve(result) - } catch (e) { - reject(e) } } }