研发流程
## 山推集群系统研发资料
### 第一阶段
```
[装机测试/德工]
```
### 第二阶段
```
[数据统计]
```
## 山推单机系统研发的流程
### 第一阶段
```
[终端定时信息]
表名: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
```
```
服务车:
当天工时:
当次里程:
当天里程:
终端关联里程:
平均时速:
```
```
统计信息:
工时
作业时间
实际作业时间
平均作业时间
作业天数
油耗
平均油耗
挡位
电源电压
冷却水温
发动机转速
燃油量
机油压力
发动机电压
传动油温
时速
平均时速
```