package com.flightfeather.uav.lightshare.bean
|
|
import com.flightfeather.uav.dataprocess.ElectricDailyAnalysis
|
import com.flightfeather.uav.domain.entity.CompanyDevice
|
import com.flightfeather.uav.domain.entity.ElectricMinuteValue
|
import com.flightfeather.uav.lightshare.eunm.ElectricityStatus
|
import com.flightfeather.uav.lightshare.eunm.ElectricityType
|
import java.util.*
|
|
/**
|
* 用电量日分析结果
|
* Date 2021/12/1 15:23
|
* Created by feiyu
|
*/
|
class ElectricDailyInfo {
|
var day: String = ""
|
|
/***********产线设备ProductionLine, pl************/
|
private var plDCode: String? = null // 设备编号
|
private var plSTime: Date? = null // 开启时间
|
private var plRTime: Date? = null // 正式运行时间
|
private var plETime: Date? = null // 关闭时间
|
private var plRunTime: Int = 0 // 运行时长(分钟)(状态为运行、高负荷的时长)
|
private var plRunPeriod = mutableListOf<Int>()// 运行时段(小时)
|
/***********净化设备Purify, pf********************/
|
private var pfDCode: String? = null
|
private var pfSTime: Date? = null
|
private var pfRTime: Date? = null
|
private var pfETime: Date? = null
|
private var pfRunTime: Int = 0
|
private var pfRunPeriod = mutableListOf<Int>()
|
|
private var rTimeDiff:Int = 0 //正式运行时间差
|
private var sResult:Boolean = false //设备开启是否合规
|
private var eTimeDiff: Int = 0 //关闭时间差
|
private var eResult: Boolean = false //设备关闭是否合规
|
private var runningTimeDiff = 0 //运行时长差
|
private var rResult:Boolean = false //运行过程是否合规
|
private var dailyResult: String = ""// 当日分析结果描述
|
|
// 当前设备类型,用于插入数据时决定赋值字段
|
private var deviceType: ElectricityType = ElectricityType.ProductionLine
|
|
fun changeType(d: CompanyDevice?) {
|
deviceType = when (d?.cdType) {
|
ElectricityType.ProductionLine.value -> {
|
plDCode = d.cdDeviceCode
|
ElectricityType.ProductionLine
|
}
|
ElectricityType.Purify.value -> {
|
pfDCode = d.cdDeviceCode
|
ElectricityType.Purify
|
}
|
else -> ElectricityType.UnKnow
|
}
|
}
|
|
fun setStartTime(date: Date) {
|
when (deviceType) {
|
ElectricityType.ProductionLine -> plSTime = date
|
ElectricityType.Purify -> pfSTime = date
|
else -> Unit
|
}
|
}
|
|
fun setEndTime(date: Date) {
|
when (deviceType) {
|
ElectricityType.ProductionLine -> plETime = date
|
ElectricityType.Purify -> pfETime = date
|
else -> Unit
|
}
|
}
|
|
/**
|
* 设置正式运行时间
|
*/
|
fun setRunningTime(s: Triple<String, String, Double>, e:ElectricMinuteValue?) {
|
when (deviceType) {
|
ElectricityType.ProductionLine -> {
|
if (plRTime == null) {
|
if (s.first.toInt() >= ElectricityStatus.C.value) {
|
plRTime = e?.mvDataTime
|
}
|
}
|
}
|
ElectricityType.Purify -> {
|
if (pfRTime == null) {
|
if (s.first.toInt() >= ElectricityStatus.C.value) {
|
pfRTime = e?.mvDataTime
|
}
|
}
|
}
|
else -> Unit
|
}
|
}
|
|
/**
|
* 增加运行时长
|
*/
|
fun addRunTime(s: Triple<String, String, Double>) {
|
if (s.first.toInt() >= ElectricityStatus.C.value) {
|
when (deviceType) {
|
ElectricityType.ProductionLine -> plRunTime++
|
ElectricityType.Purify -> pfRunTime++
|
else -> Unit
|
}
|
}
|
}
|
|
/**
|
* 添加运行时段(小时)
|
*/
|
fun addRunPeriod(hour: Int) {
|
when (deviceType) {
|
ElectricityType.ProductionLine -> if (!plRunPeriod.contains(hour)) plRunPeriod += hour
|
ElectricityType.Purify -> if (!pfRunPeriod.contains(hour)) pfRunPeriod += hour
|
else -> Unit
|
}
|
}
|
|
/**
|
* 统计得出当日分析结果
|
*/
|
fun getResult() {
|
// TODO: 2021/12/1 1. 设备正式运行时间差 =》开启是否合规
|
if (pfRTime != null && plRTime != null) {
|
rTimeDiff = ((pfRTime!!.time - plRTime!!.time) / 1000 / 60).toInt()
|
sResult = rTimeDiff < 0
|
}
|
// TODO: 2021/12/1 2,设备关闭时间差 =》关闭是否合规
|
if (pfETime != null && plETime != null) {
|
eTimeDiff = ((pfETime!!.time - plETime!!.time) / 1000 / 60).toInt()
|
eResult = eTimeDiff > 0
|
}
|
// TODO: 2021/12/1 3. 运行时长差 =》运行过程是否合规
|
runningTimeDiff = pfRunTime - plRunTime
|
rResult = runningTimeDiff > 0
|
|
// TODO: 2021/12/1 5. 多日摘要统计,运行天数、合规天数等
|
}
|
}
|