22 changed files with 550 additions and 22 deletions
@ -0,0 +1,68 @@
|
||||
package com.mh.common.core.domain.dto; |
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat; |
||||
import com.fasterxml.jackson.annotation.JsonInclude; |
||||
import org.apache.commons.lang3.builder.ToStringBuilder; |
||||
|
||||
import java.util.Date; |
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL) |
||||
class DeviceDTO { |
||||
private String otherName; |
||||
private String curValue; |
||||
/** |
||||
* 时间格式化 |
||||
*/ |
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
||||
private Date curTime; |
||||
private Integer status; |
||||
|
||||
DeviceDTO(TempHumidityDTO data) { |
||||
this.otherName = data.getOtherName(); |
||||
this.curValue = data.getCurValue().stripTrailingZeros().toPlainString(); |
||||
this.curTime = data.getCurTime(); |
||||
this.status = data.getStatus(); |
||||
} |
||||
|
||||
public String getOtherName() { |
||||
return otherName; |
||||
} |
||||
|
||||
public void setOtherName(String otherName) { |
||||
this.otherName = otherName; |
||||
} |
||||
|
||||
public String getCurValue() { |
||||
return curValue; |
||||
} |
||||
|
||||
public void setCurValue(String curValue) { |
||||
this.curValue = curValue; |
||||
} |
||||
|
||||
public Date getCurTime() { |
||||
return curTime; |
||||
} |
||||
|
||||
public void setCurTime(Date curTime) { |
||||
this.curTime = curTime; |
||||
} |
||||
|
||||
public Integer getStatus() { |
||||
return status; |
||||
} |
||||
|
||||
public void setStatus(Integer status) { |
||||
this.status = status; |
||||
} |
||||
|
||||
@Override |
||||
public String toString() { |
||||
return new ToStringBuilder(this) |
||||
.append("otherName", otherName) |
||||
.append("curValue", curValue) |
||||
.append("curTime", curTime) |
||||
.append("status", status) |
||||
.toString(); |
||||
} |
||||
} |
@ -0,0 +1,64 @@
|
||||
package com.mh.common.core.domain.dto; |
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude; |
||||
import org.apache.commons.lang3.builder.ToStringBuilder; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.List; |
||||
|
||||
// 最终JSON结构类(优化分组逻辑)
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL) |
||||
public class HouseGroupDTO { |
||||
private String houseId; |
||||
private String houseName; |
||||
private List<DeviceDTO> deviceList = new ArrayList<>(); |
||||
|
||||
// 分组构造器
|
||||
public HouseGroupDTO(TempHumidityDTO data) { |
||||
this.houseId = data.getHouseId(); |
||||
this.houseName = data.getHouseName(); |
||||
} |
||||
|
||||
// 合并设备的方法
|
||||
public void merge(HouseGroupDTO other) { |
||||
this.deviceList.addAll(other.deviceList); |
||||
} |
||||
|
||||
// 添加单个设备
|
||||
public void addDevice(TempHumidityDTO data) { |
||||
this.deviceList.add(new DeviceDTO(data)); |
||||
} |
||||
|
||||
public String getHouseId() { |
||||
return houseId; |
||||
} |
||||
|
||||
public void setHouseId(String houseId) { |
||||
this.houseId = houseId; |
||||
} |
||||
|
||||
public String getHouseName() { |
||||
return houseName; |
||||
} |
||||
|
||||
public void setHouseName(String houseName) { |
||||
this.houseName = houseName; |
||||
} |
||||
|
||||
public List<DeviceDTO> getDeviceList() { |
||||
return deviceList; |
||||
} |
||||
|
||||
public void setDeviceList(List<DeviceDTO> deviceList) { |
||||
this.deviceList = deviceList; |
||||
} |
||||
|
||||
@Override |
||||
public String toString() { |
||||
return new ToStringBuilder(this) |
||||
.append("houseId", houseId) |
||||
.append("houseName", houseName) |
||||
.append("deviceList", deviceList) |
||||
.toString(); |
||||
} |
||||
} |
@ -0,0 +1,93 @@
|
||||
package com.mh.common.core.domain.dto; |
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat; |
||||
import com.fasterxml.jackson.annotation.JsonInclude; |
||||
import org.apache.commons.lang3.builder.ToStringBuilder; |
||||
|
||||
import java.math.BigDecimal; |
||||
import java.util.ArrayList; |
||||
import java.util.Date; |
||||
import java.util.List; |
||||
|
||||
/** |
||||
* @author LJF |
||||
* @version 1.0 |
||||
* @project EEMCS |
||||
* @description 温湿度DTO管理 |
||||
* @date 2025-02-24 16:55:22 |
||||
*/ |
||||
public class TempHumidityDTO { |
||||
|
||||
private String houseId; |
||||
|
||||
private String houseName; |
||||
|
||||
private String otherName; |
||||
|
||||
private BigDecimal curValue; |
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
||||
private Date curTime; |
||||
|
||||
private Integer status; |
||||
|
||||
public String getOtherName() { |
||||
return otherName; |
||||
} |
||||
|
||||
public void setOtherName(String otherName) { |
||||
this.otherName = otherName; |
||||
} |
||||
|
||||
public String getHouseId() { |
||||
return houseId; |
||||
} |
||||
|
||||
public void setHouseId(String houseId) { |
||||
this.houseId = houseId; |
||||
} |
||||
|
||||
public String getHouseName() { |
||||
return houseName; |
||||
} |
||||
|
||||
public void setHouseName(String houseName) { |
||||
this.houseName = houseName; |
||||
} |
||||
|
||||
public BigDecimal getCurValue() { |
||||
return curValue; |
||||
} |
||||
|
||||
public void setCurValue(BigDecimal curValue) { |
||||
this.curValue = curValue; |
||||
} |
||||
|
||||
public Date getCurTime() { |
||||
return curTime; |
||||
} |
||||
|
||||
public void setCurTime(Date curTime) { |
||||
this.curTime = curTime; |
||||
} |
||||
|
||||
public Integer getStatus() { |
||||
return status; |
||||
} |
||||
|
||||
public void setStatus(Integer status) { |
||||
this.status = status; |
||||
} |
||||
|
||||
@Override |
||||
public String toString() { |
||||
return new ToStringBuilder(this) |
||||
.append("houseId", houseId) |
||||
.append("houseName", houseName) |
||||
.append("otherName", otherName) |
||||
.append("curValue", curValue) |
||||
.append("curTime", curTime) |
||||
.append("status", status) |
||||
.toString(); |
||||
} |
||||
} |
@ -0,0 +1,73 @@
|
||||
package com.mh.common.utils.file; |
||||
|
||||
import org.springframework.web.multipart.MultipartFile; |
||||
|
||||
import java.io.*; |
||||
|
||||
/** |
||||
* @author LJF |
||||
* @version 1.0 |
||||
* @project EEMCS |
||||
* @description file转换 |
||||
* @date 2025-02-25 17:38:11 |
||||
*/ |
||||
public class FileToMultipartConverter implements MultipartFile { |
||||
private final File file; |
||||
private final String contentType; |
||||
|
||||
public FileToMultipartConverter(File file, String contentType) { |
||||
this.file = file; |
||||
this.contentType = contentType; |
||||
} |
||||
|
||||
@Override |
||||
public String getName() { |
||||
return file.getName(); |
||||
} |
||||
|
||||
@Override |
||||
public String getOriginalFilename() { |
||||
return file.getName(); |
||||
} |
||||
|
||||
@Override |
||||
public String getContentType() { |
||||
return contentType; |
||||
} |
||||
|
||||
@Override |
||||
public boolean isEmpty() { |
||||
return file.length() == 0; |
||||
} |
||||
|
||||
@Override |
||||
public long getSize() { |
||||
return file.length(); |
||||
} |
||||
|
||||
@Override |
||||
public byte[] getBytes() throws IOException { |
||||
FileInputStream inputStream = new FileInputStream(file); |
||||
byte[] bytes = new byte[(int) file.length()]; |
||||
inputStream.read(bytes); |
||||
inputStream.close(); |
||||
return bytes; |
||||
} |
||||
|
||||
@Override |
||||
public InputStream getInputStream() throws IOException { |
||||
return new FileInputStream(file); |
||||
} |
||||
|
||||
@Override |
||||
public void transferTo(File dest) throws IOException, IllegalStateException { |
||||
try (InputStream in = new FileInputStream(this.file); |
||||
OutputStream out = new FileOutputStream(dest)) { |
||||
byte[] buffer = new byte[1024]; |
||||
int bytesRead; |
||||
while ((bytesRead = in.read(buffer)) != -1) { |
||||
out.write(buffer, 0, bytesRead); |
||||
} |
||||
} |
||||
} |
||||
} |
Loading…
Reference in new issue