package com.dy.pipIrrGlobal.voUg;
|
|
import com.dy.common.softUpgrade.state.UpgradeRtu;
|
import com.dy.common.softUpgrade.state.UpgradeState;
|
import lombok.AllArgsConstructor;
|
import lombok.Data;
|
import lombok.NoArgsConstructor;
|
|
import java.util.List;
|
|
/**
|
* @Author: liurunyu
|
* @Date: 2024/11/14 9:14
|
* @Description 监视RTU远程升级状态值对象
|
*/
|
@Data
|
@AllArgsConstructor
|
@NoArgsConstructor
|
public class VoWatch {
|
public VoUpgradeDetail upgrade ;
|
public UpgradeState overall ;//全局统计
|
public List<VoWatchRtu> rtus ;//一个控制器升级情况
|
|
@Data
|
@AllArgsConstructor
|
@NoArgsConstructor
|
public static class VoWatchRtu{
|
public String rtuAddr ; //控制器地址
|
public Integer rate ; //进度
|
public String state; //升级状态
|
public Integer status; //过程状态(0:离线,1:升级中,2:升级成功,3升级失败),前端利用其设置卡片样式
|
public Integer reTryTimes ; //重试次数
|
public Boolean over ; //是否结束(true:是,false:否)
|
public Boolean success ; //是否成功(null:进行中,true:是,false:否)
|
|
public void fromCache(UpgradeRtu ugRtu){
|
this.rtuAddr = ugRtu.rtuAddr ;
|
|
this.rate = (ugRtu.currentPackage * 1000)/ugRtu.totalPackage ;//前端实现是1000份的进度条
|
|
this.state = UpgradeRtu.getStateName(ugRtu.state) ;
|
|
//过程状态(0:离线,1:升级中,2:升级成功,3升级失败),前端利用其设置卡片样式
|
this.status = 1 ;//默认升级中
|
if(ugRtu.state == UpgradeRtu.STATE_OFFLINE){
|
this.status = 0 ;
|
}else if(ugRtu.state == UpgradeRtu.STATE_SUCCESS){
|
this.status = 2 ;
|
}else {
|
if(ugRtu.isOver && ugRtu.state != UpgradeRtu.STATE_SUCCESS){
|
this.status = 3;
|
}
|
}
|
|
|
this.reTryTimes = ugRtu.reTryTimes ;
|
|
this.over = ugRtu.isOver ;
|
|
if(ugRtu.isOver){
|
this.success = (ugRtu.state == UpgradeRtu.STATE_SUCCESS ? true : false) ;
|
}else{
|
this.success = null ;
|
}
|
}
|
}
|
}
|