工作时长的计算1111111111

//变量名称修改,符合通用,根据传入的状态时长属性ID获取该状态当前时长

def tempDuration = $recent("open_hour")?:0

//获取当前设备运行状态

def runningStatus = $recent("device_status")?:0

//获取当前时间戳(单位毫秒)

long dataTimestamp = __timestamp__.longValue()

//获取上次上云时间戳(单位毫秒)

long lastStamp = $lastStamp()?:dataTimestamp

//判断隔天

java.text.SimpleDateFormat sf = new java.text.SimpleDateFormat("yyyy-MM-dd")

String nowTimeStr = sf.format(new java.util.Date(dataTimestamp))

String lastTimeStr = sf.format(new java.util.Date(lastStamp))

if(nowTimeStr <=> lastTimeStr){

tempDuration = 0

java.text.SimpleDateFormat sdf_convert = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss")

lastStamp = (sdf_convert.parse(nowTimeStr + " " + "00:00:00")).getTime()

}

//判断隔天结束

//根据传入的状态时长修改条件(0 停机,1 作业,2 待机,非0 开机)

if(runningStatus != 0){

//状态时长与转化成小时的时间片段累加

tempDuration = tempDuration + (dataTimestamp - lastStamp)/1000/3600

}

//返回时长

return tempDuration

你可能感兴趣的:(工作时长的计算1111111111)