'use strict'; module.exports = app => { const mongoose = app.mongoose; const Schema = mongoose.Schema; const conn = app.mongooseDB.get('etlDB'); // 以上数据均以日统计给出,每一辆车一份日统计数据,若当日没有发生的则数据为0。 const StatsBaseInfoSchema = new Schema({ _id: { type: String }, // id时间年月日 vin: { type: String }, // vin start_time: { type: Number }, // 统计开始时间 end_time: { type: Number }, // 统计结束时间 create_time: { type: Number }, // 创建时间 // stats_sp_acce_cnt:(不同)车速下油门踏板开度及加速度统计 // sp_{x}_cnt,其中x为动态值:1-6。分别表示:0-5、5-10、10-30、30-60、60-80、80-100车速区间段。 // acce表示的是加速踏板开度各个区间统计值,as表示的是加速度各个区间统计值。 // 加速度范围:0-0.6g,区间间隔0.05g stats_sp_acce_cnt: { sp_1_cnt: { acce: { acce1: { type: Number }, acce2: { type: Number }, acce3: { type: Number }, acce4: { type: Number }, acce5: { type: Number }, acce6: { type: Number }, acce7: { type: Number }, acce8: { type: Number }, acce9: { type: Number }, acce10: { type: Number }, }, as: { as1: { type: Number }, as2: { type: Number }, as3: { type: Number }, as4: { type: Number }, as5: { type: Number }, as6: { type: Number }, as7: { type: Number }, as8: { type: Number }, as9: { type: Number }, as10: { type: Number }, as11: { type: Number }, as12: { type: Number }, }, }, sp_2_cnt: { acce: { acce1: { type: Number }, acce2: { type: Number }, acce3: { type: Number }, acce4: { type: Number }, acce5: { type: Number }, acce6: { type: Number }, acce7: { type: Number }, acce8: { type: Number }, acce9: { type: Number }, acce10: { type: Number }, }, as: { as1: { type: Number }, as2: { type: Number }, as3: { type: Number }, as4: { type: Number }, as5: { type: Number }, as6: { type: Number }, as7: { type: Number }, as8: { type: Number }, as9: { type: Number }, as10: { type: Number }, as11: { type: Number }, as12: { type: Number }, }, }, sp_3_cnt: { acce: { acce1: { type: Number }, acce2: { type: Number }, acce3: { type: Number }, acce4: { type: Number }, acce5: { type: Number }, acce6: { type: Number }, acce7: { type: Number }, acce8: { type: Number }, acce9: { type: Number }, acce10: { type: Number }, }, as: { as1: { type: Number }, as2: { type: Number }, as3: { type: Number }, as4: { type: Number }, as5: { type: Number }, as6: { type: Number }, as7: { type: Number }, as8: { type: Number }, as9: { type: Number }, as10: { type: Number }, as11: { type: Number }, as12: { type: Number }, }, }, sp_4_cnt: { acce: { acce1: { type: Number }, acce2: { type: Number }, acce3: { type: Number }, acce4: { type: Number }, acce5: { type: Number }, acce6: { type: Number }, acce7: { type: Number }, acce8: { type: Number }, acce9: { type: Number }, acce10: { type: Number }, }, as: { as1: { type: Number }, as2: { type: Number }, as3: { type: Number }, as4: { type: Number }, as5: { type: Number }, as6: { type: Number }, as7: { type: Number }, as8: { type: Number }, as9: { type: Number }, as10: { type: Number }, as11: { type: Number }, as12: { type: Number }, }, }, sp_5_cnt: { acce: { acce1: { type: Number }, acce2: { type: Number }, acce3: { type: Number }, acce4: { type: Number }, acce5: { type: Number }, acce6: { type: Number }, acce7: { type: Number }, acce8: { type: Number }, acce9: { type: Number }, acce10: { type: Number }, }, as: { as1: { type: Number }, as2: { type: Number }, as3: { type: Number }, as4: { type: Number }, as5: { type: Number }, as6: { type: Number }, as7: { type: Number }, as8: { type: Number }, as9: { type: Number }, as10: { type: Number }, as11: { type: Number }, as12: { type: Number }, }, }, sp_6_cnt: { acce: { acce1: { type: Number }, acce2: { type: Number }, acce3: { type: Number }, acce4: { type: Number }, acce5: { type: Number }, acce6: { type: Number }, acce7: { type: Number }, acce8: { type: Number }, acce9: { type: Number }, acce10: { type: Number }, }, as: { as1: { type: Number }, as2: { type: Number }, as3: { type: Number }, as4: { type: Number }, as5: { type: Number }, as6: { type: Number }, as7: { type: Number }, as8: { type: Number }, as9: { type: Number }, as10: { type: Number }, as11: { type: Number }, as12: { type: Number }, }, }, // TODO 本地新增的sp_7_cnt代表100以上 sp_7_cnt: { acce: { acce1: { type: Number }, acce2: { type: Number }, acce3: { type: Number }, acce4: { type: Number }, acce5: { type: Number }, acce6: { type: Number }, acce7: { type: Number }, acce8: { type: Number }, acce9: { type: Number }, acce10: { type: Number }, }, as: { as1: { type: Number }, as2: { type: Number }, as3: { type: Number }, as4: { type: Number }, as5: { type: Number }, as6: { type: Number }, as7: { type: Number }, as8: { type: Number }, as9: { type: Number }, as10: { type: Number }, as11: { type: Number }, as12: { type: Number }, }, }, }, // stats_sp_dece_cnt:车辆行驶过程中制动踏板开度以及对应减速度 // 统计不同驾驶模式下(在不同能量回收模式下),即驾驶模式作为筛选条件,只统计自动(auto),经济(eco),运动(sport),舒适(confort)模式下,不同速度区间减速度分布 // sp_{x}_cnt,其中x为动态值:1-7.分别表示:0-5、5-10、10-30、30-60、60-80、80-100、100-140车速区间段。 stats_sp_dece_cnt: { dr_mode_auto: { sp_1_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_2_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_3_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_4_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_5_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_6_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_7_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, }, dr_mode_eco: { sp_1_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_2_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_3_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_4_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_5_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_6_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_7_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, }, dr_mode_sport: { sp_1_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_2_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_3_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_4_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_5_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_6_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_7_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, }, dr_mode_confort: { sp_1_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_2_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_3_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_4_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_5_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_6_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, sp_7_cnt: { dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, }, }, }, // stats_dece:制动减速度区间制动过程次数或占比 // dece[x],其中x为动态值1-10,分别表示0-0.4,每0.04一个区间。比如:1表示的是0-0.04g区间段统计值 stats_dece: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, }, // stats_acce_cnt: 加速踏板开度统计 // ar[x]: // x为加速踏板开度区间 // 1:0-10% // 2:10%-20% // 3:20%-30% // 4:30%-40% // 5:40%-50% // 6:50%-60% // 7:60%-70% // 8:70%-80% // 9:80%-90% // 10:90%-100% stats_acce_cnt: { // TODO 本次修改去掉外层的驾驶模式 ar1: { type: Number }, ar2: { type: Number }, ar3: { type: Number }, ar4: { type: Number }, ar5: { type: Number }, ar6: { type: Number }, ar7: { type: Number }, ar8: { type: Number }, ar9: { type: Number }, ar10: { type: Number }, // dr_mode_auto: { // ar1: { type: Number }, // ar2: { type: Number }, // ar3: { type: Number }, // ar4: { type: Number }, // ar5: { type: Number }, // ar6: { type: Number }, // ar7: { type: Number }, // ar8: { type: Number }, // ar9: { type: Number }, // ar10: { type: Number }, // }, // dr_mode_eco: { // ar1: { type: Number }, // ar2: { type: Number }, // ar3: { type: Number }, // ar4: { type: Number }, // ar5: { type: Number }, // ar6: { type: Number }, // ar7: { type: Number }, // ar8: { type: Number }, // ar9: { type: Number }, // ar10: { type: Number }, // }, // dr_mode_sport: { // ar1: { type: Number }, // ar2: { type: Number }, // ar3: { type: Number }, // ar4: { type: Number }, // ar5: { type: Number }, // ar6: { type: Number }, // ar7: { type: Number }, // ar8: { type: Number }, // ar9: { type: Number }, // ar10: { type: Number }, // }, // dr_mode_confort: { // ar1: { type: Number }, // ar2: { type: Number }, // ar3: { type: Number }, // ar4: { type: Number }, // ar5: { type: Number }, // ar6: { type: Number }, // ar7: { type: Number }, // ar8: { type: Number }, // ar9: { type: Number }, // ar10: { type: Number }, // }, }, // stats_sp_range:车速分布 // range[x]_cnt::各速度分布次数,x为车速分布区间 // range1_cnt:车速在0-10km/h内次数 // range2_cnt:车速在10-20km/h内次数 // range3_cnt:车速在20-30km/h内次数 // range4_cnt:车速在30-40km/h内次数 // range5_cnt:车速在40-50km/h内次数 // range6_cnt:车速在50-60km/h内次数 // range7_cnt:车速在60-70km/h内次数 // range8_cnt:车速在70-80km/h内次数 // range9_cnt:车速在80-90km/h内次数 // range10_cnt:车速在90-100km/h内次数 // range11_cnt:车速在100-110km/h内次数 // range12_cnt:车速在110-120km/h内次数 // range13_cnt:车速在120km/h以上次数 stats_sp_range: { range1_cnt: { type: Number }, range2_cnt: { type: Number }, range3_cnt: { type: Number }, range4_cnt: { type: Number }, range5_cnt: { type: Number }, range6_cnt: { type: Number }, range7_cnt: { type: Number }, range8_cnt: { type: Number }, range9_cnt: { type: Number }, range10_cnt: { type: Number }, range11_cnt: { type: Number }, range12_cnt: { type: Number }, range13_cnt: { type: Number }, }, // stats_rotate:最大转向角度区间转向过程次数或占比 // rotate1: 3-10 deg // rotate2: 10-50 deg // rotate3: 50-100 deg // rotate4: 100-200 deg // rotate5: 200-300 deg // rotate6: 300-400 deg // rotate7: 400-500 deg // rotate8: 500-550deg stats_rotate: { rotate1: { type: Number }, rotate2: { type: Number }, rotate3: { type: Number }, rotate4: { type: Number }, rotate5: { type: Number }, rotate6: { type: Number }, rotate7: { type: Number }, rotate8: { type: Number }, }, // stats_sp_rotate:车速对应转角分布 // sp_[x]_cnt:车速区间:(1:0-50km/h、2:50-80km/h、3:80-140km/h) // rotate[y]:各个转角区间(个数待定) stats_sp_rotate: { sp_1_cnt: { rotate1: { type: Number }, rotate2: { type: Number }, rotate3: { type: Number }, rotate4: { type: Number }, rotate5: { type: Number }, rotate6: { type: Number }, rotate7: { type: Number }, rotate8: { type: Number }, }, sp_2_cnt: { rotate1: { type: Number }, rotate2: { type: Number }, rotate3: { type: Number }, rotate4: { type: Number }, rotate5: { type: Number }, rotate6: { type: Number }, rotate7: { type: Number }, rotate8: { type: Number }, }, sp_3_cnt: { rotate1: { type: Number }, rotate2: { type: Number }, rotate3: { type: Number }, rotate4: { type: Number }, rotate5: { type: Number }, rotate6: { type: Number }, rotate7: { type: Number }, rotate8: { type: Number }, }, }, // stats_high_sp: 高速行驶车速分布 // high_sp1:80-100km/h车速区间段行驶时长 // high_sp2:100-120km/h车速区间段行驶时长 // high_sp3:120km/h以上车速区间段行驶时长 stats_high_sp: { high_sp1: { type: Number }, high_sp2: { type: Number }, high_sp3: { type: Number }, }, // stats_start_sp: 起步车速分析 // start_sp[x]: 其中x为1-14,表示起步车速区间段,5km/h一个区间段。eg:start_sp表示的是0-5km起步车速的统计数值,若没有时为0。 stats_start_sp: { start_sp1: { type: Number }, start_sp2: { type: Number }, start_sp3: { type: Number }, start_sp4: { type: Number }, start_sp5: { type: Number }, start_sp6: { type: Number }, start_sp7: { type: Number }, start_sp8: { type: Number }, start_sp9: { type: Number }, start_sp10: { type: Number }, start_sp11: { type: Number }, start_sp12: { type: Number }, start_sp13: { type: Number }, start_sp14: { type: Number }, }, // TODO 以下为新增 // 纵向加速度区间 acce代表0-0.5g 0.05g为分段 共10段 yaw_portrait_acces: { acce1: { type: Number }, acce2: { type: Number }, acce3: { type: Number }, acce4: { type: Number }, acce5: { type: Number }, acce6: { type: Number }, acce7: { type: Number }, acce8: { type: Number }, acce9: { type: Number }, acce10: { type: Number }, }, // 纵向减速度区间 dece代表0-0.8g 0.05g为分段 共16段 stats_dece_other: { dece1: { type: Number }, dece2: { type: Number }, dece3: { type: Number }, dece4: { type: Number }, dece5: { type: Number }, dece6: { type: Number }, dece7: { type: Number }, dece8: { type: Number }, dece9: { type: Number }, dece10: { type: Number }, dece11: { type: Number }, dece12: { type: Number }, dece13: { type: Number }, dece14: { type: Number }, dece15: { type: Number }, dece16: { type: Number }, }, // 侧向加速度区间 acce代表0-0.5g 0.05g为分段 共10段 side_portrait_acces: { acce1: { type: Number }, acce2: { type: Number }, acce3: { type: Number }, acce4: { type: Number }, acce5: { type: Number }, acce6: { type: Number }, acce7: { type: Number }, acce8: { type: Number }, acce9: { type: Number }, acce10: { type: Number }, }, // 不同车速下耗电占比 // range[x]_cnt::各速度电耗量,x为车速分布区间 // range1_cnt:车速在0-10km/h内次数 // range2_cnt:车速在10-20km/h内次数 // range3_cnt:车速在20-30km/h内次数 // range4_cnt:车速在30-40km/h内次数 // range5_cnt:车速在40-50km/h内次数 // range6_cnt:车速在50-60km/h内次数 // range7_cnt:车速在60-70km/h内次数 // range8_cnt:车速在70-80km/h内次数 // range9_cnt:车速在80-90km/h内次数 // range10_cnt:车速在90-100km/h内次数 // range11_cnt:车速在100-110km/h内次数 // range12_cnt:车速在110-120km/h内次数 // range13_cnt:车速在120km/h以上次数 sp_power_consumption: { range1_cnt: { type: Number }, range2_cnt: { type: Number }, range3_cnt: { type: Number }, range4_cnt: { type: Number }, range5_cnt: { type: Number }, range6_cnt: { type: Number }, range7_cnt: { type: Number }, range8_cnt: { type: Number }, range9_cnt: { type: Number }, range10_cnt: { type: Number }, range11_cnt: { type: Number }, range12_cnt: { type: Number }, range13_cnt: { type: Number }, }, }); StatsBaseInfoSchema.index({ start_time: -1 }); StatsBaseInfoSchema.index({ start_time: -1, vin: -1 }); StatsBaseInfoSchema.index({ vin: -1 }); return conn.model('StatsBaseInfo', StatsBaseInfoSchema, 'stats_base_info'); };