zhubaomin
2025-04-15 e4aa9db5e3c91c969adf2361f8069b8c54244e1a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
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 ;
            }
        }
    }
}