package com.moral.api.pojo.vo.Version; 
 | 
  
 | 
import com.fasterxml.jackson.annotation.JsonInclude; 
 | 
import com.moral.api.entity.Sensor; 
 | 
import com.moral.api.entity.Version; 
 | 
import com.moral.api.pojo.dto.version.VersionDTO; 
 | 
import com.moral.api.pojo.dto.version.VersionQueryDTO; 
 | 
import com.moral.api.pojo.vo.sensor.SensorVO; 
 | 
import com.moral.constant.ResponseCodeEnum; 
 | 
import com.moral.util.DateUtils; 
 | 
import lombok.Data; 
 | 
import org.springframework.util.ObjectUtils; 
 | 
  
 | 
import java.util.ArrayList; 
 | 
import java.util.Date; 
 | 
import java.util.List; 
 | 
  
 | 
/** 
 | 
 * @ClassName VersionQueryVO 
 | 
 * @Description TODO 
 | 
 * @Author 陈凯裕 
 | 
 * @Date 2021/5/14 15:42 
 | 
 * @Version TODO 
 | 
 **/ 
 | 
@Data 
 | 
@JsonInclude(JsonInclude.Include.NON_EMPTY) 
 | 
public class VersionQueryVO { 
 | 
  
 | 
    private long pages; 
 | 
  
 | 
    private long total; 
 | 
  
 | 
    private long current; 
 | 
  
 | 
    private long size; 
 | 
  
 | 
    private List<VersionVO> versions; 
 | 
  
 | 
    public static VersionQueryVO convert(VersionQueryDTO dto) { 
 | 
        if (dto.getCode() != ResponseCodeEnum.SUCCESS.getCode()) 
 | 
            return null; 
 | 
        VersionQueryVO vo = new VersionQueryVO(); 
 | 
  
 | 
        long pages = dto.getPages(); 
 | 
        long total = dto.getTotal(); 
 | 
        long current = dto.getCurrent(); 
 | 
        long size = dto.getSize(); 
 | 
        List<VersionDTO> dtos = dto.getVersionDTOS(); 
 | 
        List<VersionVO> versionVOS = new ArrayList<>(); 
 | 
        for (VersionDTO versionDTO : dtos) { 
 | 
            VersionVO versionVO = convertToQueryPage(versionDTO); 
 | 
            versionVOS.add(versionVO); 
 | 
        } 
 | 
        vo.setPages(pages); 
 | 
        vo.setTotal(total); 
 | 
        vo.setCurrent(current); 
 | 
        vo.setSize(size); 
 | 
        vo.setVersions(versionVOS); 
 | 
        return vo; 
 | 
    } 
 | 
  
 | 
    private static VersionVO convertToQueryPage(VersionDTO dto) { 
 | 
        VersionVO vo = new VersionVO(); 
 | 
        Version version = dto.getVersion(); 
 | 
        Integer id = version.getId(); 
 | 
        String desc = version.getDesc(); 
 | 
        String name = version.getName(); 
 | 
        Date createTime = version.getCreateTime(); 
 | 
        Date updateTime = version.getUpdateTime(); 
 | 
        List<Sensor> sensors = version.getSensors(); 
 | 
        List<SensorVO> sensorVOS = new ArrayList<>(); 
 | 
        if(!ObjectUtils.isEmpty(sensors)){ 
 | 
            for (Sensor sensor : sensors) { 
 | 
                SensorVO sensorVO = convertToSensorVO(sensor); 
 | 
                sensorVOS.add(sensorVO); 
 | 
            } 
 | 
        } 
 | 
        vo.setId(id); 
 | 
        vo.setDesc(desc); 
 | 
        vo.setName(name); 
 | 
        vo.setCreateTime(DateUtils.dateToDateString(createTime,"yyyy-MM-dd")); 
 | 
        vo.setUpdateTime(DateUtils.dateToDateString(updateTime,"yyyy-MM-dd")); 
 | 
        vo.setSensors(sensorVOS); 
 | 
        return vo; 
 | 
    } 
 | 
  
 | 
    private static SensorVO convertToSensorVO(Sensor sensor) { 
 | 
        SensorVO vo = new SensorVO(); 
 | 
        vo.setName(sensor.getName()); 
 | 
        vo.setId(sensor.getId()); 
 | 
        vo.setUnit(sensor.getUnit()); 
 | 
        vo.setUpper(sensor.getUpper()); 
 | 
        vo.setLower(sensor.getLower()); 
 | 
        vo.setUnitKey(sensor.getUnitKey()); 
 | 
        vo.setCode(sensor.getCode()); 
 | 
        return vo; 
 | 
    } 
 | 
} 
 |