Browse Source

1、实时能效数据增加冷冻水进出水温度;

dev
mh 5 months ago
parent
commit
01dbace33a
  1. 9
      user-service/src/main/java/com/mh/user/constants/Constant.java
  2. 86
      user-service/src/main/java/com/mh/user/dto/DataResultDTO.java
  3. 8
      user-service/src/main/java/com/mh/user/entity/DataResultChEntity.java
  4. 10
      user-service/src/main/java/com/mh/user/mapper/DataResultFifteenMiMapper.java
  5. 8
      user-service/src/main/java/com/mh/user/mapper/DataResultFiveMiMapper.java
  6. 102
      user-service/src/main/java/com/mh/user/mapper/provider/DataResultProvider.java
  7. 6
      user-service/src/main/java/com/mh/user/service/DataResultService.java
  8. 164
      user-service/src/main/java/com/mh/user/service/impl/DataResultServiceImpl.java

9
user-service/src/main/java/com/mh/user/constants/Constant.java

@ -27,4 +27,13 @@ public class Constant {
public static float CARBON_EMISSION_FACTOR = 0.6379f; public static float CARBON_EMISSION_FACTOR = 0.6379f;
// 瞬时产冷量
public static String MOMENT_COOLING = "0014";
// 进水温度值
public static String INT_TEMP = "0073";
// 出水温度值
public static String OUT_TEMP = "0075";
} }

86
user-service/src/main/java/com/mh/user/dto/DataResultDTO.java

@ -0,0 +1,86 @@
package com.mh.user.dto;
/**
* @author LJF
* @version 1.0
* @project mh_esi
* @description 能耗监测
* @date 2024-11-26 11:51:42
*/
public class DataResultDTO {
private String time;
private String projectName;
private String projectId;
private String momentCooling;
private String intTemp;
private String outTemp;
public DataResultDTO(String time, String momentCooling, String intTemp, String outTemp, String projectName, String projectId) {
this.time = time;
this.momentCooling = momentCooling;
this.intTemp = intTemp;
this.outTemp = outTemp;
this.projectName = projectName;
this.projectId = projectId;
}
public String getProjectName() {
return projectName;
}
public void setProjectName(String projectName) {
this.projectName = projectName;
}
public String getProjectId() {
return projectId;
}
public void setProjectId(String projectId) {
this.projectId = projectId;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public String getMomentCooling() {
return momentCooling;
}
public void setMomentCooling(String momentCooling) {
this.momentCooling = momentCooling;
}
public String getIntTemp() {
return intTemp;
}
public void setIntTemp(String intTemp) {
this.intTemp = intTemp;
}
public String getOutTemp() {
return outTemp;
}
public void setOutTemp(String outTemp) {
this.outTemp = outTemp;
}
@Override
public String toString() {
return "DataResultChEntity{" +
"time='" + time + '\'' +
", momentCooling=" + momentCooling +
", intTemp=" + intTemp +
", outTemp=" + outTemp +
'}';
}
}

8
user-service/src/main/java/com/mh/user/entity/DataResultChEntity.java

@ -1,7 +1,15 @@
package com.mh.user.entity; package com.mh.user.entity;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.mh.user.utils.DateUtil;
@TableName("data_result_ch") @TableName("data_result_ch")
public class DataResultChEntity extends BaseResultEntity { public class DataResultChEntity extends BaseResultEntity {
public DataResultChEntity() {}
public DataResultChEntity(String time, String value) {
this.setCurDate(DateUtil.stringToDate(time, "yyyy-MM-dd HH:mm:ss"));
this.setCurValue(value);
}
} }

10
user-service/src/main/java/com/mh/user/mapper/DataResultFifteenMiMapper.java

@ -3,11 +3,9 @@ package com.mh.user.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mh.user.entity.DataResultChEntity; import com.mh.user.entity.DataResultChEntity;
import com.mh.user.entity.DataResultFifteenMiEntity; import com.mh.user.entity.DataResultFifteenMiEntity;
import com.mh.user.entity.DataResultFiveMiEntity;
import com.mh.user.mapper.provider.DataResultProvider; import com.mh.user.mapper.provider.DataResultProvider;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.ResultMap;
import org.apache.ibatis.annotations.SelectProvider; import org.apache.ibatis.annotations.SelectProvider;
import java.util.List; import java.util.List;
@ -27,10 +25,14 @@ public interface DataResultFifteenMiMapper extends BaseMapper<DataResultFifteenM
@Param("startDate") String startDate, @Param("startDate") String startDate,
@Param("curDate") String curDate, @Param("curDate") String curDate,
@Param("page") int page, @Param("page") int page,
@Param("limit") int limit); @Param("limit") int limit,
@Param("registerAddr") String registerAddr);
//@Select("select count(*) from data_result_fifteen_mi where projectId=#{projectId} and curDate>=#{startDate} and curDate<=#{curDate} ") //@Select("select count(*) from data_result_fifteen_mi where projectId=#{projectId} and curDate>=#{startDate} and curDate<=#{curDate} ")
@SelectProvider(type = DataResultProvider.class,method = "dataResultFifteenMiCount") @SelectProvider(type = DataResultProvider.class,method = "dataResultFifteenMiCount")
int dataResultFifteenMiCount(@Param("projectId") String projectId,@Param("startDate") String startDate,@Param("curDate") String curDate); int dataResultFifteenMiCount(@Param("projectId") String projectId,
@Param("startDate") String startDate,
@Param("curDate") String curDate,
@Param("registerAddr") String registerAddr);
} }

8
user-service/src/main/java/com/mh/user/mapper/DataResultFiveMiMapper.java

@ -24,10 +24,14 @@ public interface DataResultFiveMiMapper extends BaseMapper<DataResultFiveMiEntit
@Param("startDate") String startDate, @Param("startDate") String startDate,
@Param("curDate") String curDate, @Param("curDate") String curDate,
@Param("page") int page, @Param("page") int page,
@Param("limit") int limit); @Param("limit") int limit,
@Param("registerAddr") String registerAddr);
// @Select("select count(*) from data_result_five_mi where projectId=#{projectId} and curDate>=#{startDate} and curDate<=#{curDate} ") // @Select("select count(*) from data_result_five_mi where projectId=#{projectId} and curDate>=#{startDate} and curDate<=#{curDate} ")
@SelectProvider(type = DataResultProvider.class,method = "dataResultFiveMiCount") @SelectProvider(type = DataResultProvider.class,method = "dataResultFiveMiCount")
int dataResultFiveMiCount(@Param("projectId") String projectId,@Param("startDate") String startDate,@Param("curDate") String curDate); int dataResultFiveMiCount(@Param("projectId") String projectId,
@Param("startDate") String startDate,
@Param("curDate") String curDate,
@Param("registerAddr") String registerAddr);
} }

102
user-service/src/main/java/com/mh/user/mapper/provider/DataResultProvider.java

@ -1,5 +1,7 @@
package com.mh.user.mapper.provider; package com.mh.user.mapper.provider;
import com.mh.user.constants.Constant;
public class DataResultProvider { public class DataResultProvider {
public String queryDataResult(String projectId,String startDate,String endDate,String deviceType, int page, int limit){ public String queryDataResult(String projectId,String startDate,String endDate,String deviceType, int page, int limit){
@ -93,10 +95,18 @@ public class DataResultProvider {
//时间显示间隔为5分钟 //时间显示间隔为5分钟
public String queryDataResultFiveMi(String projectId,String startDate,String curDate, int page, int limit){ public String queryDataResultFiveMi(String projectId,String startDate,String curDate, int page, int limit, String registerAddr){
StringBuffer sql = new StringBuffer(""); StringBuffer sql = new StringBuffer("");
sql.append("select t2.cur_date,t2.cur_value,t2.project_id,t3.project_name from (select *,ROW_NUMBER() over(order by cur_date) as rn from ( " + sql.append("select t2.cur_date,t2.cur_value,t2.project_id,t3.project_name ");
" select project_id,cur_date,sum(cast(cur_value as decimal(18,2))) as cur_value from data_result_five_mi " + if (registerAddr!= null && !registerAddr.isEmpty()) {
sql.append(" ,t2.register_addr ");
}
sql.append(" from (select *,ROW_NUMBER() over(order by cur_date) as rn from ( " +
" select project_id,cur_date,sum(cast(cur_value as decimal(18,2))) as cur_value");
if (registerAddr!= null && !registerAddr.isEmpty()) {
sql.append(" ,register_addr ");
}
sql.append(" from data_result_five_mi " +
" where 1=1 "); " where 1=1 ");
if (projectId!= null && !projectId.equals("")) { if (projectId!= null && !projectId.equals("")) {
sql.append(" AND project_id=#{projectId} "); sql.append(" AND project_id=#{projectId} ");
@ -107,18 +117,32 @@ public class DataResultProvider {
if (curDate!= null && !curDate.equals("")) { if (curDate!= null && !curDate.equals("")) {
sql.append(" AND cur_date<=#{curDate} "); sql.append(" AND cur_date<=#{curDate} ");
} }
if (registerAddr!= null && !registerAddr.equals("")){
sql.append(" AND register_addr = #{registerAddr} ");
if (Constant.INT_TEMP.equals(registerAddr) || Constant.OUT_TEMP.equals(registerAddr)) {
sql.append(" and device_addr = (select top 1 mt_num from meter_manage where mt_type = 2 and register_addr = #{registerAddr} and project_id = #{projectId} ) ");
}
}
sql.append("group by cur_date,project_id ");
if (registerAddr!= null && !registerAddr.isEmpty()){
sql.append(" ,register_addr ");
}
if ((page != 0) && (limit != 0)){ if ((page != 0) && (limit != 0)){
sql.append(" group by cur_date,project_id)t1) t2 join project_info t3 ON t2.project_id=t3.id where t2.rn>(#{page}-1)*#{limit} and t2.rn<=#{page}*#{limit} order by t2.cur_date desc"); sql.append(" )t1) t2 join project_info t3 ON t2.project_id=t3.id where t2.rn>(#{page}-1)*#{limit} and t2.rn<=#{page}*#{limit} order by t2.cur_date desc");
} else if (page == 0){ } else if (page == 0){
sql.append(" group by cur_date,project_id)t1) t2 join project_info t3 ON t2.project_id=t3.id order by t2.cur_date desc"); sql.append(" )t1) t2 join project_info t3 ON t2.project_id=t3.id order by t2.cur_date desc");
} }
return sql.toString(); return sql.toString();
} }
public String dataResultFiveMiCount(String projectId, String startDate,String curDate){ public String dataResultFiveMiCount(String projectId, String startDate,String curDate, String registerAddr){
StringBuffer sql = new StringBuffer(""); StringBuffer sql = new StringBuffer("");
sql.append("select count(*) from (select *,ROW_NUMBER() over(order by cur_date) as rn from ( " + sql.append("select count(1) from ( " +
" select project_id,cur_date,sum(cast(cur_value as decimal(18,2))) as cur_value from data_result_five_mi " + " select project_id,cur_date,sum(cast(cur_value as decimal(18,2))) as cur_value");
if (registerAddr!= null && !registerAddr.isEmpty()) {
sql.append(" ,register_addr ");
}
sql.append(" from data_result_five_mi " +
" where 1=1 "); " where 1=1 ");
if (projectId!= null && !projectId.equals("")) { if (projectId!= null && !projectId.equals("")) {
sql.append(" AND project_id=#{projectId} "); sql.append(" AND project_id=#{projectId} ");
@ -129,15 +153,33 @@ public class DataResultProvider {
if (curDate!= null && !curDate.equals("")) { if (curDate!= null && !curDate.equals("")) {
sql.append(" AND cur_date<=#{curDate} "); sql.append(" AND cur_date<=#{curDate} ");
} }
sql.append(" group by cur_date,project_id)t1) t2 "); if (registerAddr!= null && !registerAddr.equals("")){
sql.append(" AND register_addr = #{registerAddr} ");
if (Constant.INT_TEMP.equals(registerAddr) || Constant.OUT_TEMP.equals(registerAddr)) {
sql.append(" and device_addr = (select top 1 mt_num from meter_manage where mt_type = 2 and register_addr = #{registerAddr} and project_id = #{projectId} ) ");
}
}
sql.append("group by cur_date,project_id ");
if (registerAddr!= null && !registerAddr.isEmpty()){
sql.append(" ,register_addr ");
}
sql.append(" ) t1 ");
return sql.toString(); return sql.toString();
} }
//时间显示间隔为15分钟 //时间显示间隔为15分钟
public String queryDataResultFifteenMi(String projectId,String startDate,String curDate, int page, int limit){ public String queryDataResultFifteenMi(String projectId,String startDate,String curDate, int page, int limit, String registerAddr){
StringBuffer sql = new StringBuffer(""); StringBuffer sql = new StringBuffer("");
sql.append("select t2.cur_date,t2.cur_value,t2.project_id,t3.project_name from (select *,ROW_NUMBER() over(order by cur_date) as rn from ( " + sql.append("select t2.cur_date,t2.cur_value,t2.project_id,t3.project_name ");
" select project_id,cur_date,sum(cast(cur_value as decimal(18,2))) as cur_value from data_result_fifteen_mi " + if (registerAddr!= null && !registerAddr.isEmpty()) {
sql.append(" ,t2.register_addr ");
}
sql.append(" from (select *,ROW_NUMBER() over(order by cur_date) as rn from ( " +
" select project_id,cur_date,sum(cast(cur_value as decimal(18,2))) as cur_value");
if (registerAddr!= null && !registerAddr.isEmpty()) {
sql.append(" ,register_addr ");
}
sql.append(" from data_result_fifteen_mi " +
" where 1=1 "); " where 1=1 ");
if (projectId!= null && !projectId.equals("")) { if (projectId!= null && !projectId.equals("")) {
sql.append(" AND project_id=#{projectId} "); sql.append(" AND project_id=#{projectId} ");
@ -148,18 +190,32 @@ public class DataResultProvider {
if (curDate!= null && !curDate.equals("")) { if (curDate!= null && !curDate.equals("")) {
sql.append(" AND cur_date<=#{curDate} "); sql.append(" AND cur_date<=#{curDate} ");
} }
if (registerAddr!= null && !registerAddr.equals("")){
sql.append(" AND register_addr = #{registerAddr} ");
if (Constant.INT_TEMP.equals(registerAddr) || Constant.OUT_TEMP.equals(registerAddr)) {
sql.append(" and device_addr = (select top 1 mt_num from meter_manage where mt_type = 2 and register_addr = #{registerAddr} and project_id = #{projectId} ) ");
}
}
sql.append("group by cur_date,project_id ");
if (registerAddr!= null && !registerAddr.isEmpty()){
sql.append(" ,register_addr ");
}
if ((page != 0) && (limit != 0)){ if ((page != 0) && (limit != 0)){
sql.append(" group by cur_date,project_id)t1) t2 join project_info t3 ON t2.project_id=t3.id where t2.rn>(#{page}-1)*#{limit} and t2.rn<=#{page}*#{limit} order by t2.cur_date desc"); sql.append(" )t1) t2 join project_info t3 ON t2.project_id=t3.id where t2.rn>(#{page}-1)*#{limit} and t2.rn<=#{page}*#{limit} order by t2.cur_date desc");
} else if (page == 0){ } else if (page == 0){
sql.append(" group by cur_date,project_id)t1) t2 join project_info t3 ON t2.project_id=t3.id order by t2.cur_date desc"); sql.append(" )t1) t2 join project_info t3 ON t2.project_id=t3.id order by t2.cur_date desc");
} }
return sql.toString(); return sql.toString();
} }
public String dataResultFifteenMiCount(String projectId, String startDate,String curDate){ public String dataResultFifteenMiCount(String projectId, String startDate,String curDate, String registerAddr){
StringBuffer sql = new StringBuffer(""); StringBuffer sql = new StringBuffer("");
sql.append("select count(*) from (select *,ROW_NUMBER() over(order by cur_date) as rn from ( " + sql.append("select count(1) from ( " +
" select project_id,cur_date,sum(cast(cur_value as decimal(18,2))) as cur_value from data_result_five_mi " + " select project_id,cur_date,sum(cast(cur_value as decimal(18,2))) as cur_value");
if (registerAddr!= null && !registerAddr.isEmpty()) {
sql.append(" ,register_addr ");
}
sql.append(" from data_result_fifteen_mi " +
" where 1=1 "); " where 1=1 ");
if (projectId!= null && !projectId.equals("")) { if (projectId!= null && !projectId.equals("")) {
sql.append(" AND project_id=#{projectId} "); sql.append(" AND project_id=#{projectId} ");
@ -170,7 +226,17 @@ public class DataResultProvider {
if (curDate!= null && !curDate.equals("")) { if (curDate!= null && !curDate.equals("")) {
sql.append(" AND cur_date<=#{curDate} "); sql.append(" AND cur_date<=#{curDate} ");
} }
sql.append(" group by cur_date,project_id)t1) t2 "); if (registerAddr!= null && !registerAddr.equals("")){
sql.append(" AND register_addr = #{registerAddr} ");
if (Constant.INT_TEMP.equals(registerAddr) || Constant.OUT_TEMP.equals(registerAddr)) {
sql.append(" and device_addr = (select top 1 mt_num from meter_manage where mt_type = 2 and register_addr = #{registerAddr} and project_id = #{projectId} ) ");
}
}
sql.append("group by cur_date,project_id ");
if (registerAddr!= null && !registerAddr.isEmpty()){
sql.append(" ,register_addr ");
}
sql.append(" ) t1 ");
return sql.toString(); return sql.toString();
} }

6
user-service/src/main/java/com/mh/user/service/DataResultService.java

@ -46,15 +46,15 @@ public interface DataResultService {
void updateDataResultCh(DataResultChEntity dataResultChEntity); void updateDataResultCh(DataResultChEntity dataResultChEntity);
//查询按分钟的时间间隔 //查询按分钟的时间间隔
List<DataResultChEntity> queryDataResultMi(String projectId,String startDate,String curDate,int page,int limit, int type); List<DataResultChEntity> queryDataResultMi(String projectId,String startDate,String curDate,int page,int limit, int type, String registerAddr);
HttpResult queryDataResultMiData(String projectId, String curDate, int page, int limit, int type, String dateType); HttpResult queryDataResultMiData(String projectId, String curDate, int page, int limit, int type, String dateType);
int dataResultOneMiCount(String projectId,String startDate,String curDate); int dataResultOneMiCount(String projectId,String startDate,String curDate);
int dataResultFiveMiCount(String projectId,String startDate,String curDate); int dataResultFiveMiCount(String projectId,String startDate,String curDate, String registerAddr);
int dataResultFifteenMiCount(String projectId,String startDate,String curDate); int dataResultFifteenMiCount(String projectId,String startDate,String curDate, String registerAddr);
//查询按秒的时间间隔 //查询按秒的时间间隔
List<DataResultChEntity> queryDataResultSec(String projectId,String startDate,String curDate); List<DataResultChEntity> queryDataResultSec(String projectId,String startDate,String curDate);

164
user-service/src/main/java/com/mh/user/service/impl/DataResultServiceImpl.java

@ -1,6 +1,8 @@
package com.mh.user.service.impl; package com.mh.user.service.impl;
import com.mh.common.http.HttpResult; import com.mh.common.http.HttpResult;
import com.mh.user.constants.Constant;
import com.mh.user.dto.DataResultDTO;
import com.mh.user.entity.*; import com.mh.user.entity.*;
import com.mh.user.mapper.*; import com.mh.user.mapper.*;
import com.mh.user.service.DataResultService; import com.mh.user.service.DataResultService;
@ -15,8 +17,8 @@ import javax.annotation.Resource;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.*;
import java.util.List; import java.util.stream.Collectors;
@Slf4j @Slf4j
@Service @Service
@ -222,13 +224,13 @@ public class DataResultServiceImpl implements DataResultService {
} }
@Override @Override
public List<DataResultChEntity> queryDataResultMi(String projectId, String startDate, String curDate, int page, int limit, int type) { public List<DataResultChEntity> queryDataResultMi(String projectId, String startDate, String curDate, int page, int limit, int type, String registerAddr) {
if (type == 0) { if (type == 0) {
return dataResultOneMiMapper.queryDataResultOneMi(projectId, startDate, curDate, page, limit); return dataResultOneMiMapper.queryDataResultOneMi(projectId, startDate, curDate, page, limit);
} else if (type == 1) { } else if (type == 1) {
return dataResultFiveMiMapper.queryDataResultFiveMi(projectId, startDate, curDate, page, limit); return dataResultFiveMiMapper.queryDataResultFiveMi(projectId, startDate, curDate, page, limit, registerAddr);
} else if (type == 2) { } else if (type == 2) {
return dataResultFifteenMiMapper.queryDataResultFifteenMi(projectId, startDate, curDate, page, limit); return dataResultFifteenMiMapper.queryDataResultFifteenMi(projectId, startDate, curDate, page, limit, registerAddr);
} else { } else {
return dataResultOneMiMapper.queryDataResultOneMi(projectId, startDate, curDate, page, limit); return dataResultOneMiMapper.queryDataResultOneMi(projectId, startDate, curDate, page, limit);
} }
@ -241,58 +243,130 @@ public class DataResultServiceImpl implements DataResultService {
@Override @Override
public HttpResult queryDataResultMiData(String projectId, String curDate, int page, int limit, int type, String dateType) { public HttpResult queryDataResultMiData(String projectId, String curDate, int page, int limit, int type, String dateType) {
try{ try {
if(projectId!=null && !projectId.isEmpty()){ if (projectId != null && !projectId.isEmpty()) {
String startDate=""; String startDate = "";
curDate=curDate.substring(0,16)+":00"; curDate = curDate.substring(0, 16) + ":00";
if (dateType.equals("1小时")){ if (dateType.equals("1小时")) {
startDate= ExchangeStringUtil.dateRoll(1,curDate); startDate = ExchangeStringUtil.dateRoll(1, curDate);
List<DataResultChEntity> records=queryDataResultMi(projectId,startDate,curDate,page,limit,0); List<DataResultChEntity> records = queryDataResultMi(projectId, startDate, curDate, page, limit, 0, Constant.MOMENT_COOLING);
int count=dataResultOneMiCount(projectId,startDate,curDate); int count = dataResultOneMiCount(projectId, startDate, curDate);
return HttpResult.ok(count,records); return HttpResult.ok(count, records);
}else if (dateType.equals("2小时")){ } else if (dateType.equals("2小时")) {
startDate=ExchangeStringUtil.dateRoll(2,curDate); startDate = ExchangeStringUtil.dateRoll(2, curDate);
List<DataResultChEntity> records=queryDataResultMi(projectId,startDate,curDate,page,limit,0); List<DataResultChEntity> records = queryDataResultMi(projectId, startDate, curDate, page, limit, 0, Constant.MOMENT_COOLING);
int count=dataResultOneMiCount(projectId,startDate,curDate); int count = dataResultOneMiCount(projectId, startDate, curDate);
return HttpResult.ok(count,records); return HttpResult.ok(count, records);
}else if (dateType.equals("8小时")){ } else if (dateType.equals("8小时") || dateType.equals("12小时") || dateType.equals("24小时")) {
startDate=ExchangeStringUtil.dateRoll(8,curDate); int queryType = 1;
List<DataResultChEntity> records=queryDataResultMi(projectId,startDate,curDate,page,limit,1); if (dateType.equals("8小时")) {
int count=dataResultFiveMiCount(projectId,startDate,curDate); startDate = ExchangeStringUtil.dateRoll(8, curDate);
return HttpResult.ok(count,records); } else if (dateType.equals("12小时")){
}else if (dateType.equals("12小时")){ startDate = ExchangeStringUtil.dateRoll(12, curDate);
startDate=ExchangeStringUtil.dateRoll(12,curDate); } else {
List<DataResultChEntity> records=queryDataResultMi(projectId,startDate,curDate,page,limit,1); startDate = ExchangeStringUtil.dateRoll(24, curDate);
int count=dataResultFiveMiCount(projectId,startDate,curDate); queryType = 2;
return HttpResult.ok(count,records); }
}else if (dateType.equals("24小时")){ // 查询瞬时冷量
startDate=ExchangeStringUtil.dateRoll(24,curDate); List<DataResultChEntity> records = queryDataResultMi(projectId, startDate, curDate, page, limit, queryType, Constant.MOMENT_COOLING);
List<DataResultChEntity> records=queryDataResultMi(projectId,startDate,curDate,page,limit,2); // 查询进水温度值(及冷冻水出水温度)
int count=dataResultFifteenMiCount(projectId,startDate,curDate); List<DataResultChEntity> intTempRecords = queryDataResultMi(projectId, startDate, curDate, page, limit, queryType, Constant.OUT_TEMP);
return HttpResult.ok(count,records); // 查询出水温度值(及冷冻水进水温度)
}else{ //1小时 List<DataResultChEntity> outTempRecords = queryDataResultMi(projectId, startDate, curDate, page, limit, queryType, Constant.INT_TEMP);
startDate=ExchangeStringUtil.dateRoll(1,curDate); // 拼接数据
List<DataResultChEntity> records=queryDataResultMi(projectId,startDate,curDate,page,limit,0); // 将数据按时间分组
int count=dataResultOneMiCount(projectId,startDate,curDate); Map<String, DataResultChEntity> momentCoolingMap = records.stream()
return HttpResult.ok(count,records); .collect(Collectors.toMap(val -> {
return DateUtil.dateToString(val.getCurDate(),"yyyy-MM-dd HH:mm:ss");
}, entity -> entity));
Map<String, DataResultChEntity> intTempMap = intTempRecords.stream()
.collect(Collectors.toMap(val -> {
return DateUtil.dateToString(val.getCurDate(),"yyyy-MM-dd HH:mm:ss");
}, entity -> entity));
Map<String, DataResultChEntity> outTempMap = outTempRecords.stream()
.collect(Collectors.toMap(val -> {
return DateUtil.dateToString(val.getCurDate(),"yyyy-MM-dd HH:mm:ss");
}, entity -> entity));
// 合并数据
Set<String> allTimes = new HashSet<>(momentCoolingMap.keySet());
allTimes.addAll(intTempMap.keySet());
allTimes.addAll(outTempMap.keySet());
List<DataResultDTO> mergedRecords = new ArrayList<>();
for (String time : allTimes) {
DataResultChEntity momentCooling = momentCoolingMap.getOrDefault(time, new DataResultChEntity(time, "0"));
DataResultChEntity intTemp = intTempMap.getOrDefault(time, new DataResultChEntity(time, "0"));
DataResultChEntity outTemp = outTempMap.getOrDefault(time, new DataResultChEntity(time, "0"));
DataResultDTO mergedRecord = new DataResultDTO(
time,
momentCooling.getCurValue(),
intTemp.getCurValue(),
outTemp.getCurValue(),
momentCooling.getProjectName(),
momentCooling.getProjectId()
);
mergedRecords.add(mergedRecord);
}
// 定义时间格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 使用 Collections.sort 方法排序
Collections.sort(mergedRecords, (o1, o2) -> {
try {
Date date1 = sdf.parse(o1.getTime());
Date date2 = sdf.parse(o2.getTime());
return date1.compareTo(date2);
} catch (ParseException e) {
throw new IllegalArgumentException("Invalid date format", e);
}
});
int count = 0;
if (dateType.equals("24小时")) {
count = dataResultFifteenMiCount(projectId, startDate, curDate, Constant.MOMENT_COOLING);
} else {
count = dataResultFiveMiCount(projectId, startDate, curDate, Constant.MOMENT_COOLING);
}
return HttpResult.ok(count, mergedRecords);
}
// else if (dateType.equals("12小时")) {
// startDate = ExchangeStringUtil.dateRoll(12, curDate);
// List<DataResultChEntity> records = queryDataResultMi(projectId, startDate, curDate, page, limit, 1, Constant.MOMENT_COOLING);
// int count = dataResultFiveMiCount(projectId, startDate, curDate);
// return HttpResult.ok(count, records);
// }
// else if (dateType.equals("24小时")) {
// startDate = ExchangeStringUtil.dateRoll(24, curDate);
// List<DataResultChEntity> records = queryDataResultMi(projectId, startDate, curDate, page, limit, 2, Constant.MOMENT_COOLING);
// int count = dataResultFifteenMiCount(projectId, startDate, curDate);
// return HttpResult.ok(count, records);
// }
else { //1小时
startDate = ExchangeStringUtil.dateRoll(1, curDate);
List<DataResultChEntity> records = queryDataResultMi(projectId, startDate, curDate, page, limit, 0, Constant.MOMENT_COOLING);
int count = dataResultOneMiCount(projectId, startDate, curDate);
return HttpResult.ok(count, records);
} }
}else{ } else {
return HttpResult.error(); return HttpResult.error();
} }
}catch (Exception e){ } catch (Exception e) {
log.error("查询数据异常", e); log.error("查询数据异常", e);
return HttpResult.error(); return HttpResult.error();
} }
} }
@Override @Override
public int dataResultFiveMiCount(String projectId, String startDate, String curDate) { public int dataResultFiveMiCount(String projectId, String startDate, String curDate, String registerAddr) {
return dataResultFiveMiMapper.dataResultFiveMiCount(projectId, startDate, curDate); return dataResultFiveMiMapper.dataResultFiveMiCount(projectId, startDate, curDate, registerAddr);
} }
@Override @Override
public int dataResultFifteenMiCount(String projectId, String startDate, String curDate) { public int dataResultFifteenMiCount(String projectId, String startDate, String curDate, String registerAddr) {
return dataResultFifteenMiMapper.dataResultFifteenMiCount(projectId, startDate, curDate); return dataResultFifteenMiMapper.dataResultFifteenMiCount(projectId, startDate, curDate, registerAddr);
} }
@Override @Override

Loading…
Cancel
Save