feat 数据修改

This commit is contained in:
Ironsp
2026-09-15 17:44:14 +08:00
parent e713f3e92d
commit 4d46a726f4
2 changed files with 195 additions and 145 deletions

View File

@@ -16,7 +16,6 @@
"navigationBarTitleText": "Road-Roller" "navigationBarTitleText": "Road-Roller"
}, },
"pages": [ "pages": [
// GENERATED BY UNI-PAGES, PLATFORM: APP
{ {
"path": "pages/Ahome/index", "path": "pages/Ahome/index",
"type": "home", "type": "home",
@@ -121,7 +120,6 @@
"color": "@tabFontColor", "color": "@tabFontColor",
"selectedColor": "@tabSelectedColor", "selectedColor": "@tabSelectedColor",
"list": [ "list": [
// GENERATED BY UNI-PAGES, PLATFORM: APP
{ {
"pagePath": "pages/Ahome/index", "pagePath": "pages/Ahome/index",
"text": "首页", "text": "首页",

View File

@@ -2,29 +2,50 @@ import DB from '@/utils/sqlite'
import { insert as insertWorkRecord } from './workRecord' import { insert as insertWorkRecord } from './workRecord'
/** /**
* 插入项目假数据(3条) * 项目假数据 (6个)
* 字段:project_name / stake_range / total_area / status(0未完成 1已完成 2进行中) * status: 0=未完成, 1=已完成, 2=作业中
*/ */
async function seedProject() { async function seedProject() {
const data = [ const data = [
// 作业中 (1个)
{ {
project_name: '京雄高速河北段', project_name: '京雄高速河北段',
stake_range: 'K1+000 ~ K5+500', stake_range: 'K1+000 ~ K5+500',
total_area: 12500.0, total_area: 25000.0,
status: 2, status: 2,
}, },
// 未完成 (1个)
{ {
project_name: '雄安新区市政道路', project_name: '雄安新区市政道路',
stake_range: 'A区 ~ C区', stake_range: 'A区 ~ C区',
total_area: 8600.5, total_area: 18600.5,
status: 0, status: 0,
}, },
// 已完成 (4个)
{ {
project_name: '白沟产业园场地', project_name: '白沟产业园场地',
stake_range: '1号地块', stake_range: '1号地块',
total_area: 5200.0, total_area: 5200.0,
status: 1, status: 1,
}, },
{
project_name: '大兴机场配套道路',
stake_range: '北侧路段',
total_area: 8800.0,
status: 1,
},
{
project_name: '保定城区改造工程',
stake_range: '朝阳路 ~ 裕华路',
total_area: 12000.0,
status: 1,
},
{
project_name: '沧州港区道路',
stake_range: 'B区 ~ D区',
total_area: 9500.0,
status: 1,
},
] ]
for (const item of data) { for (const item of data) {
@@ -33,36 +54,61 @@ async function seedProject() {
} }
/** /**
* 插入作业记录假数据(3条) * 当日工作记录假数据
* 走 workRecord.insert,事务同步累加 project 汇总字段 * 仅作业中(1)和未完成(2)的项目各有3条
* 字段:project_id / start_time / end_time / duration / compaction_area / pass_count
*/ */
async function seedWorkRecord() { async function seedWorkRecord() {
const data = [ const data = [
// 项目1 (作业中) - 3条工作记录
{ {
project_id: 1, project_id: 1,
start_time: '2026-09-10 08:00:00', start_time: '2026-09-15 07:30:00',
end_time: '2026-09-10 12:00:00', end_time: '2026-09-15 12:00:00',
duration: 4,
compaction_area: 1250.5,
pass_count: 6,
},
{
project_id: 1,
start_time: '2026-09-10 13:00:00',
end_time: '2026-09-10 17:30:00',
duration: 4.5, duration: 4.5,
compaction_area: 1680.0, compaction_area: 1850.0,
pass_count: 8, pass_count: 8,
}, },
{
project_id: 1,
start_time: '2026-09-15 13:00:00',
end_time: '2026-09-15 17:30:00',
duration: 4.5,
compaction_area: 1680.0,
pass_count: 7,
},
{
project_id: 1,
start_time: '2026-09-14 08:00:00',
end_time: '2026-09-14 12:00:00',
duration: 4.0,
compaction_area: 1520.0,
pass_count: 6,
},
// 项目2 (未完成) - 3条工作记录
{ {
project_id: 2, project_id: 2,
start_time: '2026-09-09 07:30:00', start_time: '2026-09-15 08:00:00',
end_time: '2026-09-09 11:30:00', end_time: '2026-09-15 11:30:00',
duration: 4, duration: 3.5,
compaction_area: 980.3, compaction_area: 1200.0,
pass_count: 5, pass_count: 5,
}, },
{
project_id: 2,
start_time: '2026-09-15 13:30:00',
end_time: '2026-09-15 17:00:00',
duration: 3.5,
compaction_area: 1100.0,
pass_count: 5,
},
{
project_id: 2,
start_time: '2026-09-14 07:30:00',
end_time: '2026-09-14 12:00:00',
duration: 4.5,
compaction_area: 1450.0,
pass_count: 6,
},
] ]
for (const item of data) { for (const item of data) {
@@ -71,95 +117,87 @@ async function seedWorkRecord() {
} }
/** /**
* 插入 RTK 轨迹假数据(3条) * RTK 轨迹假数据
* 字段:work_record_id / latitude / longitude / speed / heading / steel_wheel_temp / compaction_value / pass_count / qualified_rate * 仅作业中和未完成项目的每个工作记录 120 条
*/ */
async function seedRtkTrack() { async function seedRtkTrack() {
const data = [ const data: any[] = []
{
work_record_id: 1,
latitude: 38.9697,
longitude: 115.9697,
speed: 5.1,
heading: 90.0,
steel_wheel_temp: 65.2,
compaction_value: 92.3,
pass_count: 3,
qualified_rate: 92.3,
},
{
work_record_id: 1,
latitude: 38.9698,
longitude: 115.9699,
speed: 5.2,
heading: 92.5,
steel_wheel_temp: 66.0,
compaction_value: 93.1,
pass_count: 4,
qualified_rate: 93.1,
},
{
work_record_id: 2,
latitude: 38.9712,
longitude: 115.9712,
speed: 4.7,
heading: 180.0,
steel_wheel_temp: 68.5,
compaction_value: 95.0,
pass_count: 5,
qualified_rate: 95.0,
},
]
// 项目1 的工作记录 (id: 1, 2, 3) - 各120条
for (let wrId = 1; wrId <= 3; wrId++) {
const baseLat = 38.9697 + (wrId - 1) * 0.001
const baseLng = 115.9697 + (wrId - 1) * 0.001
for (let i = 0; i < 120; i++) {
data.push({
work_record_id: wrId,
latitude: baseLat + (i * 0.00001),
longitude: baseLng + (i * 0.00001),
speed: 4.5 + Math.random() * 2,
heading: (i * 3) % 360,
steel_wheel_temp: 60 + Math.random() * 20,
compaction_value: 85 + Math.random() * 15,
pass_count: Math.floor(1 + Math.random() * 8),
qualified_rate: 88 + Math.random() * 12,
})
}
}
// 项目2 的工作记录 (id: 4, 5, 6) - 各120条
for (let wrId = 4; wrId <= 6; wrId++) {
const baseLat = 38.9750 + (wrId - 4) * 0.001
const baseLng = 115.9750 + (wrId - 4) * 0.001
for (let i = 0; i < 120; i++) {
data.push({
work_record_id: wrId,
latitude: baseLat + (i * 0.00001),
longitude: baseLng + (i * 0.00001),
speed: 4.0 + Math.random() * 2.5,
heading: (i * 3) % 360,
steel_wheel_temp: 55 + Math.random() * 25,
compaction_value: 82 + Math.random() * 18,
pass_count: Math.floor(1 + Math.random() * 7),
qualified_rate: 85 + Math.random() * 15,
})
}
}
// 批量插入
for (const item of data) { for (const item of data) {
await DB.insert('rtk_track', item) await DB.insert('rtk_track', item)
} }
} }
/** /**
* 插入告警记录假数据(3条) * 告警记录假数据
* 字段:project_id / device_name * 每个项目 3 条,分别对应 3 种异常类型
* exception_type(0数据中断 1高温异常 2定位异常)
* exception_level(0提醒 1警告 2严重)
* occurred_at / site_description / disposal_record
* disposal_type(0未处理 1现场恢复 2需要保修) / is_read
*/ */
async function seedWarningRecord() { async function seedWarningRecord() {
const data = [ const devices = ['XS-65H-01', 'XS-65H-02', 'RTK-01', 'RTK-02']
{
project_id: 1, const data: any[] = []
device_name: 'XS-65H', const baseTime = new Date('2026-09-15T08:00:00')
exception_type: 0,
exception_level: 1, // 每个项目 3 条告警
occurred_at: '2026-09-10 09:15:00', for (let projectId = 1; projectId <= 6; projectId++) {
site_description: '设备上报数据中断超过 30 秒', for (let excType = 0; excType <= 2; excType++) {
disposal_record: '', const occurTime = new Date(baseTime.getTime() + projectId * 3600000 + excType * 1800000)
disposal_type: 0, data.push({
project_id: projectId,
device_name: devices[excType],
exception_type: excType,
exception_level: excType === 2 ? 2 : excType === 1 ? 1 : 0,
occurred_at: occurTime.toISOString().replace('T', ' ').slice(0, 19),
site_description: excType === 0
? '设备上报数据中断超过 30 秒'
: excType === 1
? '钢轮温度超过安全阈值 (85°C)'
: 'RTK 定位信号丢失,无法获取有效坐标',
disposal_record: excType === 2 ? '设备故障,已登记报修' : '',
disposal_type: excType === 2 ? 2 : 0,
is_read: 0, is_read: 0,
}, })
{ }
project_id: 2, }
device_name: 'XS-65H',
exception_type: 1,
exception_level: 2,
occurred_at: '2026-09-09 10:20:00',
site_description: '钢轮温度超过安全阈值',
disposal_record: '现场降温后恢复作业',
disposal_type: 1,
is_read: 0,
},
{
project_id: 1,
device_name: 'RTK-01',
exception_type: 2,
exception_level: 0,
occurred_at: '2026-09-10 14:05:00',
site_description: 'RTK 定位信号丢失,无法获取有效坐标',
disposal_record: '设备故障,已登记报修',
disposal_type: 2,
is_read: 1,
},
]
for (const item of data) { for (const item of data) {
await DB.insert('warning_record', item) await DB.insert('warning_record', item)
@@ -167,60 +205,74 @@ async function seedWarningRecord() {
} }
/** /**
* 插入历史报告假数据(3条) * 历史报告假数据
* 字段:project_id / report_name / device_id / construction_area * 每个已完成项目 (id: 3, 4, 5, 6) 各生成 1 份最终报告
* start_time / end_time / duration / compaction_area / pass_count
* qualified_rate / avg_speed / avg_paving_temp / avg_compaction / exception_count
*/ */
async function seedHistoryReport() { async function seedHistoryReport() {
const data = [ const data = [
{ {
project_id: 1, project_id: 3,
report_name: '京雄高速K1段碾压报告', report_name: '白沟产业园场地 碾压报告',
device_id: 'XS-65H-001', device_id: 'XS-65H-01',
construction_area: 'K1+000 ~ K1+500', construction_area: '1号地块',
start_time: '2026-09-10 08:00:00', start_time: '2026-09-12 07:30:00',
end_time: '2026-09-10 12:00:00', end_time: '2026-09-12 17:00:00',
duration: 4, duration: 9.5,
compaction_area: 1250.5, compaction_area: 5200.0,
pass_count: 6, pass_count: 6,
qualified_rate: 96.5, qualified_rate: 96.8,
avg_speed: 5.2, avg_speed: 5.1,
avg_paving_temp: 145.0, avg_paving_temp: 148.0,
avg_compaction: 92.3, avg_compaction: 93.2,
exception_count: 2,
},
{
project_id: 4,
report_name: '大兴机场配套道路 碾压报告',
device_id: 'XS-65H-02',
construction_area: '北侧路段',
start_time: '2026-09-11 07:30:00',
end_time: '2026-09-11 17:30:00',
duration: 10.0,
compaction_area: 8800.0,
pass_count: 7,
qualified_rate: 97.5,
avg_speed: 4.9,
avg_paving_temp: 152.0,
avg_compaction: 94.1,
exception_count: 1, exception_count: 1,
}, },
{ {
project_id: 1, project_id: 5,
report_name: '京雄高速K2段碾压报告', report_name: '保定城区改造工程 碾压报告',
device_id: 'XS-65H-001', device_id: 'XS-65H-03',
construction_area: 'K2+000 ~ K2+350', construction_area: '朝阳路 ~ 裕华路',
start_time: '2026-09-10 13:00:00', start_time: '2026-09-10 07:30:00',
end_time: '2026-09-10 17:30:00', end_time: '2026-09-10 17:00:00',
duration: 4.5, duration: 9.5,
compaction_area: 1680.0, compaction_area: 12000.0,
pass_count: 8, pass_count: 8,
qualified_rate: 98.2, qualified_rate: 95.2,
avg_speed: 4.8, avg_speed: 5.3,
avg_paving_temp: 150.0, avg_paving_temp: 145.0,
avg_compaction: 95.1, avg_compaction: 91.8,
exception_count: 0, exception_count: 3,
}, },
{ {
project_id: 2, project_id: 6,
report_name: '雄安市政道路碾压报告', report_name: '沧州港区道路 碾压报告',
device_id: 'XS-65H-002', device_id: 'XS-65H-04',
construction_area: 'A区施工段', construction_area: 'B区 ~ D区',
start_time: '2026-09-09 07:30:00', start_time: '2026-09-09 08:00:00',
end_time: '2026-09-09 11:30:00', end_time: '2026-09-09 17:30:00',
duration: 4, duration: 9.5,
compaction_area: 980.3, compaction_area: 9500.0,
pass_count: 5, pass_count: 6,
qualified_rate: 94.0, qualified_rate: 98.1,
avg_speed: 6.0, avg_speed: 4.7,
avg_paving_temp: 138.5, avg_paving_temp: 150.0,
avg_compaction: 88.7, avg_compaction: 95.3,
exception_count: 2, exception_count: 0,
}, },
] ]