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())); } } } }