zxl
2026-03-20 a0b2af0203b00e1dfcb8b5977dd5019491533c26
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
package com.tievd.jyz.mqtt;
 
import com.tievd.jyz.cache.CameraFactoryCache;
import com.tievd.jyz.constants.SystemConstant;
import com.tievd.jyz.entity.Camera;
import com.tievd.jyz.entity.Device;
import com.tievd.jyz.entity.OilPosition;
import com.tievd.jyz.mqtt.dto.CameraDTO;
import com.tievd.jyz.mqtt.dto.InitConfigDTO;
import com.tievd.jyz.mqtt.dto.OilPositionDTO;
import com.tievd.jyz.mqtt.dto.RegisterDTO;
import com.tievd.jyz.util.BeanUtil;
import com.tievd.jyz.util.S3Util;
import org.apache.commons.lang3.StringUtils;
 
import java.sql.Timestamp;
import java.util.Date;
 
/**
 * 传输数据对象转换器
 * @author timi
 */
public class PojoDataConverter {
 
    /**
     * 网关状态转换
     * @param deviceSN
     * @param registerDTO
     * @return
     */
    public static Device deviceConvert(String deviceSN,RegisterDTO registerDTO){
        Device device = new Device();
        device.setDeviceIp(registerDTO.getIp());
        device.setHeartTime(new Date());
        device.setSn(deviceSN);
        device.setStatus(SystemConstant.DEVICE_ONLINE);
        device.setPort(Integer.parseInt(registerDTO.getPort()));
        device.setDeviceVersion(registerDTO.getVersion());
        return device;
    }
 
    /**
     * 初始化配置转换
     * @param s3Util
     * @param heartbeatTime
     * @return
     */
    public static InitConfigDTO InitConfigConvert(S3Util s3Util,Integer heartbeatTime){
        InitConfigDTO initConfigDTO = new InitConfigDTO();
        initConfigDTO.setS3(s3Util.deviceServiceEndpoint,s3Util.accessKey,s3Util.secretKey,s3Util.bucketName);
        initConfigDTO.setHeartbeat(String.valueOf(heartbeatTime));
        return initConfigDTO;
    }
 
    /**
     * 终端转换
     * @param camera
     * @return
     */
    public static CameraDTO cameraDTOConvert(Camera camera){
        CameraDTO cameraDTO = new CameraDTO();
        BeanUtil.copyPropertiesIgnoreNull(camera,cameraDTO);
        cameraDTO.setIp(camera.getIpAddress());
        cameraDTO.setRtsp(camera.getStreamAddress());
        cameraDTO.setUsername(camera.getUserName());
        return cameraDTO;
    }
 
    /**
     * 终端转换
     * @param cameraDTO
     * @return
     */
    public static Camera cameraConvert(CameraDTO cameraDTO){
        Camera camera = new Camera();
        BeanUtil.copyPropertiesIgnoreNull(cameraDTO,camera);
        camera.setIpAddress(cameraDTO.getIp());
        camera.setStreamAddress(cameraDTO.getRtsp());
        camera.setUserName(cameraDTO.getUsername());
        try {
            String factoryId = CameraFactoryCache.getFactoryId(cameraDTO.getFactory());
            if(StringUtils.isNotEmpty(factoryId)){
                camera.setFactory(Byte.valueOf(factoryId));
            }
        }catch (Exception ex){
            ex.printStackTrace();
        }
        camera.setUpdateTime(new Date(Long.parseLong(cameraDTO.getUpdateTime())));
        return camera;
    }
 
    /**
     * 加油位数据转换
     * @param oilPosition
     * @return
     */
    public static OilPositionDTO oilPositionDTOConvert(OilPosition oilPosition){
        OilPositionDTO oilPositionDTO = new OilPositionDTO();
        oilPositionDTO.setCode(oilPosition.getPositionCode());
        oilPositionDTO.setName(oilPosition.getOilPosition());
        oilPositionDTO.setUpdateTime(String.valueOf(oilPosition.getCreateTime().getTime()));
        return oilPositionDTO;
    }
 
    /**
     * 加油位数据转换
     * @param oilPositionDTO
     * @return
     */
    public static OilPosition oilPositionConvert(OilPositionDTO oilPositionDTO){
        OilPosition oilPosition = new OilPosition();
        oilPosition.setPositionCode(oilPositionDTO.getCode());
        oilPosition.setOilPosition(oilPositionDTO.getName());
        oilPosition.setCreateTime(new Timestamp(Long.parseLong(oilPositionDTO.getUpdateTime())));
        return oilPosition;
    }
 
}