研发流程

## 山推集群系统研发资料 ### 第一阶段 ``` [装机测试/德工] ``` ### 第二阶段 ``` [数据统计] ``` ## 山推单机系统研发的流程 ### 第一阶段 ``` [终端定时信息] 表名:RevData 主键:RelationID 分区键 主键:RevTime 信息时刻 属性列:LastTcpRevTime 上一条信息时刻 [知识点:] Redis 里面新建 RevTime键名 hash类型 key RelatonId value 上一条的信息时刻 ``` ### 第二阶段 ``` [当前报警] 当发现终端上传数据中存在报警位有报警[T/F]的情况更新mongodb-【Storm处理】 [mongodb数据库:] 1.1) 数据库地址:mongodb://root:R200abc!123@dds-2ze54bc1a46b06941.mongodb.rds.aliyuncs.com:3717,dds-2ze54bc1a46b06942.mongodb.rds.aliyuncs.com:3717/admin?replicaSet=mgset-58024406 数据库名称:xy_shantui 数据库表名:xy_sys_equipment 数据库用户名:root 数据库密码:R200abc!123 数据库表名:xy_sys_equipment 2.1) 更新最新一条数据: Filter ----- xy_equipment_id Update------ xy_equipment_operation xy_equipment_id 数据库类型:String (原:RelationID) xy_equipment_operation 数据库类型:Document 2.2) 更新报警数据: Filter ----- xy_equipment_id Update------ xy_equipment_alarm xy_equipment_id 数据库类型:String (原:RelationID) xy_equipment_alarm 数据库类型: {} [统计报警] 表名:AlarmData 主键: RelationID 分区键 AlarmName 报警项 AlarmDate 报警时间 -[精确到天] 属性列: AlarmRecord 报警时间段 Map集合 AlarmCount 报警发生次数 整型 AlarmLastStartTime 报警末次发生时间 AlarmLastEndTime 报警末次解除时间 AlarmTotalTime 报警持续时间 [知识点]: Redis 写入最后一次报警的时间 一个装备&一种报警仅存一条记录 [报警项:] 一般报警: Acc //开关机 AFaultAlarm //故障报警 ALock //被锁定 ANoSignal //无定位 AQianYa //电瓶欠压报警 AAntennaFault //GPS天线故障 ADuanDian //GPS断电报警 AManualLock //人工锁车 ACoolingWater //水温报警 AOilAlarm //油温报警 AECEngineStatus //AEC发动机状态 AEngineStatus //AEC发动机状态 [最精确的开关机状态位] AEngineRev //发动机转速报警 AEngineVoltAge //发动机电压报警 AFuelQuantity //燃油液位报警 AHydOilTemperature //液压油温报警 AMainsVoltAge //电源电压报警 StatusSignalGPSModuleError //GPS模块故障[ StSGPSME ] StatusSignalCANStatus //CAN状态[ StSCANS ] StatusSignalBATOFF //电源状态[ StSBATOFF ] StatusSignalOpenBox //开盒报警[ StSOB ] StatusSignalLockStatus13 //PIN码[ StSLK13 ] StatusSignalSimStatus //Sim卡报警[ StSSS ] StatusSignalChargeSign //充电指示[ StSCS ] SwitchingValue1PreheatInstructions //预热指示开关量1[ SwV1PI ] SwitchingValue1OilyWaterSeparation //油水分离开关量1[ SwV1OWS ] SwitchingValue1AirFliterBlockage //空气过滤器堵塞开关量1[ SwV1AFB ] OilPressureAlarm //机油压力报警[ OilPA ] 特殊报警: SVclViolation //样机违规 SCommunicationsKnocked //无报警通信中断 SPowerOffOverTime //长时间不工作 SMaintain //应保养 SOutOfRegion //跨出围栏报警 SInRegion //跨入围栏报警 SEngineStartAlarm //夜间异常启动 SOutOfServiceRegion //跨出区域报警 SInServiceRegion //跨入区域报警 [特殊报警详细设计] [夜间异常启动] 表结构: [mongodb]:xy_system key=SEngineStartAlarm [当前报警:] [mongodb]: xy_equipment_alarm.SEngineStartAlarm=1 [历史报警:] [redis]: 键名: SEngineStartAlarm: 最近7天的报警装备:RelationID [长时间不工作] 表结构: [mongodb]:xy_system key=SPowerOffOverTime [当前报警:] [mongodb]: xy_equipment_alarm.SPowerOffOverTime=1 [历史报警:] [redis]: 键名: SPowerOffOverTime: 最近7天的报警装备:RelationID [跨出围栏报警] 表结构: [mongodb]:xy_system key=SOutOfRegion [跨入围栏报警] 表结构: [mongodb]:xy_system key=SInRegion [拓展部分:] [设置对象]:厂商级别|代理商级别|最终用户级别 [存储对象]:Redis 厂商级别: 代理商级别: 最终用户级别: [Redis存储所有装备最后一次上的全部数据] 1)长时间不工作: 逻辑:每天1点钟:统计所有长时间不工作设置信息,循环生成每个长时间不工作设置的统计记录 表结构: [mongodb]:xy_equipment_unwork_analysis_[用户级别] 2)夜间异常启动: 逻辑:每天1点钟:统计所有长时间不工作设置信息,循环生成每个长时间不工作设置的统计记录 表结构: [mongodb]:xy_equipment_unwork_analysis_[用户级别] 3)应保养: [Redis] 1)应保养:Alarm.SMaintain 存储RelationID 应该保养的装备 2)保养记录:MOngoDB 逻辑:每天1点钟:统计所有长时间不工作设置信息,循环生成每个长时间不工作设置的统计记录 表结构: [mongodb]:xy_equipment_unwork_analysis_[用户级别] ``` ### 第三阶段 ``` 数据统计阶段: [3个月活跃数据:] 表名:HotRevData 主键:RelationID 分区键 主键:Date 属性列: [按天统计记录] 表名:DayRevData 主键:RelationID 分区键 主键:Day 2022/1/15 属性列: [公共部分] WorkRecord: json 作业状况 JSON 参考报警记录 WorkTime: string "5.5" 作业时间 [WorkRecord各时段的差集] RealWorkTime: string "8.5" 实际作业时间 [原RegionDailyWorkTime2 WorkTime] CanHM: string "888555" 累计工时 AOH: string "8.5" 当天累计工时 HM: string "8.5" Acc累计工时 TcpRevTime: string "2022/01/25 16:46:31" 信息时刻 MT: string "login" 信息类型 Acc: string "False" 开关机 LockTag: string "0" 锁车状态 Lat: 经度 Lon: 纬度 Weather: 天气 FengLi: 风级 FengXiang: 风向 Temperature: 环境温度范围 TemperatureNow: 当前温度 Direction: 行驶方向 [工程车] EngHM: 发动机末次工作时间(H) SFuelEconomyAccOn: Acc经济油耗 ER: 发动机转速(rpm) MVol: 系统电压(v) CoolingWater: 冷却水温 HOT: 传动油温 OilP: 机油压力(100KPa) FuelQuantity: 燃油量 Fuel: 耗油量 Gear: 挡位 AvgFuel: 平均耗油量 (耗油量/工时) 旧系统是: [TerminalDailyData 表里面的SFuelEconomyWork除以RegionDailyWorkTime2表里面的WorkTime WorkTime 需要除60 当前WorkTime 旧系统是分钟] TemperatureControlFan: 风扇温度 Province: 省 City: 市 County: 县 Distance: 距离 [乘用车] GsmSignal: 通讯网络信号值 City: 城市 Altitude: 海拔 Speed: 行驶速度 BackUpVol: 后备电池电压 BatteryVol: 电池电压 Starts: 当前卫星数 AccThisTimeWorkHours: 当次工时 (秒) ThisTravalMile: 当次里程(Km) DayTravalMile: 当天行驶里程(Km) TotalTravalMile: 当前终端里程(Km) AccDayWorkHours : 当天工时 GLTravalMile: 关联终端里程(Km) AvgSpeed: 平均速度 (当天行驶里程(Km)/当天工时(H))[旧系统是:TerminalDailyData 表里面的daytravalmile除以accdayworkhours accdayworkhours需要除以 3600 当前的accdayworkhour旧系统是秒] [附加项] TotalDischargeCapacity: TotalChargingCapacity: TotalChargingTimes: [按月统计记录] MonthRevData 主键:RelationID 分区键 主键:Month 2022/1/ 属性列: [公共部分] WorkRecord:[2022/1/1,2022/1/22 ] MonthWorkCount:月度作业天数 MonthWorkHourCount:月度小时计 MonthRealWorkHourCount:月度实际作业时间 MonthAvgWorkCount:平均作业小时计 [工程车] MonthFuelCount:月度耗油量 [乘用车] MonthMileCount:月度里程 [按年统计] YearRevData 主键:RelationID 主键:Year 2022 属性列: [公共部分] WorkRecord:[2022/1,2022/2] YearWorkCount:年度作业天数 YearWorkHourCount:年度小时计 YearRealWorkHourCount:年度实际作业时间 YearAvgWorkCount:年度平均作业小时计 [工程车] YearFuelCount:年度耗油量 [乘用车] YearMileCount:年度里程 ``` ### 统计数据 ``` [锁车统计] [跨出区域工作报警] [跨入区域工作报警] [长时间不工作统计] [装备区域分布] [Redis] 键名:RegionDistribution 键值:河北 list<string> RelationID 键值:河南 list<string> RelationID [Redis] 键名:RegionDistributionAlarm 键值:河北.样机违规 list<string> RelationID 键值:河北.被锁定 list<string> RelationID ``` ``` 服务车: 当天工时: 当次里程: 当天里程: 终端关联里程: 平均时速: ``` ``` 统计信息: 工时 作业时间 实际作业时间 平均作业时间 作业天数 油耗 平均油耗 挡位 电源电压 冷却水温 发动机转速 燃油量 机油压力 发动机电压 传动油温 时速 平均时速 ```