Newer
Older
newfiber-termite / newfiber-termites / newfiber-termites-dataup / src / main / java / com / newfiber / termite / domain / response / DeviceInfoStateSyncResponse.java
@xiongkai xiongkai on 13 Jun 3 KB 对接荆楚
package com.newfiber.termite.domain.response;

import static cn.hutool.core.date.DatePattern.NORM_DATETIME_PATTERN;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.newfiber.termite.domain.DeviceInfo;
import com.newfiber.termite.domain.DeviceMonitoringData;
import io.swagger.annotations.ApiModelProperty;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 设备信息对象 ter_device_info
 *
 * @author X.K
 * @date 2024-05-27
 */
@Data
@NoArgsConstructor
public class DeviceInfoStateSyncResponse {


    /**
     *  上传地址
     */
    @ApiModelProperty(value = "上传地址")
    private String uploadApi;

    /**
     * 设备编号
     */
    @ApiModelProperty(value = "设备编号")
    private String sn;

    /**
     *  项目编号
     */
    @ApiModelProperty(value = "项目编号")
    private String projectCode;

    /**
     *  分类(生产 production | 项目 project)
     */
    @ApiModelProperty(value = "分类(生产 production | 项目 project)")
    private String category;

    /**
     * 服务器时间
     */
    @JsonFormat(pattern = NORM_DATETIME_PATTERN)
    @DateTimeFormat(pattern = NORM_DATETIME_PATTERN)
    @ApiModelProperty(value = "服务器时间")
    private Date serverDatetime = new Date();

    /**
     *
     */
    @ApiModelProperty(value = "是否投药")
    private String druing = "0";

    /**
     *
     */
    @ApiModelProperty(value = "投药时间")
    private Date druingDatetime;

    /**
     *
     */
    @ApiModelProperty(value = "是否加热(1是 | 0否)")
    private String heating = "0";

    /**
     *
     */
    @ApiModelProperty(value = "加热时间")
    private Date heatingDatetime;

    /**
     * 白蚁识别结果
     */
    @ApiModelProperty(value = "白蚁识别结果")
    private List<DeviceInfoConfigQueryAntResponse> antResultList;

    public DeviceInfoStateSyncResponse(String sn) {
        this.sn = sn;
    }

    public DeviceInfoStateSyncResponse(DeviceInfo deviceInfo, DeviceMonitoringData lastDrugingDeviceMonitoringData, DeviceMonitoringData lastHeatingDeviceMonitoringData, List<DeviceMonitoringData> deviceMonitoringDataList) {
        this.uploadApi = deviceInfo.getUploadApi();
        this.sn = deviceInfo.getSn();
        this.projectCode = deviceInfo.getProjectCode();
        this.category = deviceInfo.getCategory();
        if(null != lastDrugingDeviceMonitoringData){
            druing = lastDrugingDeviceMonitoringData.getDruing();
            druingDatetime = lastDrugingDeviceMonitoringData.getDruingDatetime();
        }
        if(null != lastHeatingDeviceMonitoringData){
            heating = "1";
            heatingDatetime = lastHeatingDeviceMonitoringData.getHeatingDatetime();
        }
        if(null != deviceMonitoringDataList){
            antResultList = new ArrayList<>();
            for(DeviceMonitoringData deviceMonitoringData : deviceMonitoringDataList){
                antResultList.add(new DeviceInfoConfigQueryAntResponse(deviceMonitoringData.getDate(), deviceMonitoringData.getYesnoant()));
            }
        }
    }
}