WangHan
2024-09-12 d5855a4926926698b740bc6c7ba489de47adb68b
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
package tech.powerjob.server.web.response;
 
import tech.powerjob.common.OmsConstant;
import tech.powerjob.server.persistence.remote.model.InstanceInfoDO;
import lombok.Data;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.springframework.beans.BeanUtils;
 
/**
 * InstanceInfo 对外展示对象
 *
 * @author tjq
 * @since 2020/4/12
 */
@Data
public class InstanceInfoVO {
 
    /**
     * 任务ID(JS精度丢失)
     */
    private String jobId;
    /**
     * 任务名称
     */
    private String jobName;
    /**
     * 任务实例ID(JS精度丢失)
     */
    private String instanceId;
    /**
     * 该任务实例所属的 workflow ID,仅 workflow 任务存在
     */
    private String wfInstanceId;
    /**
     *  执行结果
     */
    private String result;
    /**
     * TaskTracker地址
     */
    private String taskTrackerAddress;
    /**
     * 总共执行的次数(用于重试判断)
     */
    private Long runningTimes;
    private int status;
 
    /* ********** 不一致区域 ********** */
    /**
     * 实际触发时间(需要格式化为人看得懂的时间)
     */
    private String actualTriggerTime;
    /**
     * 结束时间(同理,需要格式化)
     */
    private String finishedTime;
 
    public static InstanceInfoVO from(InstanceInfoDO instanceInfoDo, String jobName) {
        InstanceInfoVO instanceInfoVO = new InstanceInfoVO();
        BeanUtils.copyProperties(instanceInfoDo, instanceInfoVO);
 
        // 额外设置任务名称,提高可读性
        instanceInfoVO.setJobName(jobName);
 
        // ID 转化为 String(JS精度丢失)
        instanceInfoVO.setJobId(instanceInfoDo.getJobId().toString());
        instanceInfoVO.setInstanceId(instanceInfoDo.getInstanceId().toString());
        if (instanceInfoDo.getWfInstanceId() == null) {
            instanceInfoVO.setWfInstanceId(OmsConstant.NONE);
        }else {
            instanceInfoVO.setWfInstanceId(String.valueOf(instanceInfoDo.getWfInstanceId()));
        }
 
        // 格式化时间
        if (instanceInfoDo.getActualTriggerTime() == null) {
            instanceInfoVO.setActualTriggerTime(OmsConstant.NONE);
        }else {
            instanceInfoVO.setActualTriggerTime(DateFormatUtils.format(instanceInfoDo.getActualTriggerTime(), OmsConstant.TIME_PATTERN));
        }
        if (instanceInfoDo.getFinishedTime() == null) {
            instanceInfoVO.setFinishedTime(OmsConstant.NONE);
        }else {
            instanceInfoVO.setFinishedTime(DateFormatUtils.format(instanceInfoDo.getFinishedTime(), OmsConstant.TIME_PATTERN));
        }
 
        return instanceInfoVO;
    }
}