feat:设备日志模块
feat:定时任务 feat:设置页面用路由重构
This commit is contained in:
1 parent
1033f403b1
commit
2efa7a3c19
60 files changed
+6560
-643
No files matched your search
@@ -1,5 +1,6 @@
|
||||
import 'package:floor/floor.dart';
|
||||
|
||||
/// 收银终端 SQLite 连续版本迁移清单,禁止跳过中间版本或在原生层重复执行结构 SQL。
|
||||
abstract class DatabaseMigration {
|
||||
/// 从版本1到版本2的迁移:添加productNamePy字段
|
||||
static Migration migration1To2 = Migration(1, 2, (database) async {
|
||||
@@ -183,6 +184,84 @@ abstract class DatabaseMigration {
|
||||
}
|
||||
});
|
||||
|
||||
/// 版本8将调度配置、执行日志和文件上传状态从 sysJson 收敛为可查询的结构化表。
|
||||
static Migration migration7To8 = Migration(7, 8, (database) async {
|
||||
await database.execute('''
|
||||
CREATE TABLE IF NOT EXISTS scheduled_task (
|
||||
taskCode TEXT NOT NULL PRIMARY KEY,
|
||||
enabled INTEGER NOT NULL,
|
||||
cronExpression TEXT NOT NULL,
|
||||
idleOnly INTEGER NOT NULL,
|
||||
lastRunAt TEXT,
|
||||
lastSuccessAt TEXT,
|
||||
lastStatus TEXT NOT NULL,
|
||||
lastMessage TEXT NOT NULL,
|
||||
createTime TEXT NOT NULL,
|
||||
updateTime TEXT NOT NULL
|
||||
)
|
||||
''');
|
||||
await database.execute('''
|
||||
CREATE TABLE IF NOT EXISTS scheduled_task_log (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
taskCode TEXT NOT NULL,
|
||||
taskName TEXT NOT NULL,
|
||||
triggerType TEXT NOT NULL,
|
||||
sourceType TEXT NOT NULL,
|
||||
sourceName TEXT NOT NULL,
|
||||
status TEXT NOT NULL,
|
||||
message TEXT NOT NULL,
|
||||
errorType TEXT,
|
||||
errorMessage TEXT,
|
||||
errorStack TEXT,
|
||||
startedAt TEXT NOT NULL,
|
||||
finishedAt TEXT,
|
||||
durationMs INTEGER NOT NULL,
|
||||
scannedCount INTEGER,
|
||||
skippedCount INTEGER,
|
||||
successCount INTEGER,
|
||||
failureCount INTEGER
|
||||
)
|
||||
''');
|
||||
await database.execute(
|
||||
'CREATE INDEX IF NOT EXISTS index_scheduled_task_log_taskCode_startedAt '
|
||||
'ON scheduled_task_log(taskCode, startedAt)',
|
||||
);
|
||||
await database.execute(
|
||||
'CREATE INDEX IF NOT EXISTS index_scheduled_task_log_sourceType_status_startedAt '
|
||||
'ON scheduled_task_log(sourceType, status, startedAt)',
|
||||
);
|
||||
await database.execute('''
|
||||
CREATE TABLE IF NOT EXISTS file_upload_record (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
hardId TEXT NOT NULL,
|
||||
bizType TEXT NOT NULL,
|
||||
relativePath TEXT NOT NULL,
|
||||
originalName TEXT NOT NULL,
|
||||
sourceSize INTEGER NOT NULL,
|
||||
sourceModifiedTime TEXT NOT NULL,
|
||||
sanitizedHash TEXT NOT NULL,
|
||||
sanitizedSize INTEGER NOT NULL,
|
||||
status TEXT NOT NULL,
|
||||
serverFileId TEXT,
|
||||
attemptCount INTEGER NOT NULL,
|
||||
lastAttemptAt TEXT,
|
||||
uploadedAt TEXT,
|
||||
lastError TEXT,
|
||||
createTime TEXT NOT NULL,
|
||||
updateTime TEXT NOT NULL
|
||||
)
|
||||
''');
|
||||
await database.execute(
|
||||
'CREATE UNIQUE INDEX IF NOT EXISTS index_file_upload_record_hardId_bizType_relativePath '
|
||||
'ON file_upload_record(hardId, bizType, relativePath)',
|
||||
);
|
||||
await database.execute(
|
||||
'CREATE INDEX IF NOT EXISTS index_file_upload_record_bizType_status_updateTime '
|
||||
'ON file_upload_record(bizType, status, updateTime)',
|
||||
);
|
||||
});
|
||||
|
||||
/// 按起始版本升序返回全部迁移,Floor 打开旧数据库时据此连续升级到当前版本。
|
||||
static List<Migration> getDatabaseMigrations() {
|
||||
return [
|
||||
migration1To2,
|
||||
@@ -191,6 +270,7 @@ abstract class DatabaseMigration {
|
||||
migration4To5,
|
||||
migration5To6,
|
||||
migration6To7,
|
||||
migration7To8,
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user