|
@@ -105,7 +105,6 @@ public class ProjectDataRecordServiceImpl implements IProjectDataRecordService {
|
|
// 获取不到锁,略过
|
|
// 获取不到锁,略过
|
|
return new AsyncResult<>("【监测维保数据计算线程】项目:" + projectDTO.getProjectId() + "被占用");
|
|
return new AsyncResult<>("【监测维保数据计算线程】项目:" + projectDTO.getProjectId() + "被占用");
|
|
}
|
|
}
|
|
-
|
|
|
|
long start = System.currentTimeMillis();
|
|
long start = System.currentTimeMillis();
|
|
AsyncResult<String> projectDTOBack = computeProjectMaintenanceData(todayDate, projectDTO);
|
|
AsyncResult<String> projectDTOBack = computeProjectMaintenanceData(todayDate, projectDTO);
|
|
if (projectDTOBack != null) {
|
|
if (projectDTOBack != null) {
|
|
@@ -604,19 +603,19 @@ public class ProjectDataRecordServiceImpl implements IProjectDataRecordService {
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
case ">":
|
|
case ">":
|
|
- if (checkVal >= limitVal) {
|
|
|
|
|
|
+ if (checkVal > limitVal) {
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
case "≤":
|
|
case "≤":
|
|
- if (checkVal >= limitVal) {
|
|
|
|
|
|
+ if (checkVal <= limitVal) {
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
case "<":
|
|
case "<":
|
|
- if (checkVal >= limitVal) {
|
|
|
|
|
|
+ if (checkVal < limitVal) {
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
case "=":
|
|
case "=":
|
|
- if (checkVal >= limitVal) {
|
|
|
|
|
|
+ if (checkVal == limitVal) {
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
default:
|
|
default:
|
|
@@ -665,7 +664,7 @@ public class ProjectDataRecordServiceImpl implements IProjectDataRecordService {
|
|
}
|
|
}
|
|
//循环计算日均
|
|
//循环计算日均
|
|
for (Date dayDate = startDate; dayDate.before(endDate); dayDate = DateUtils.addDays(dayDate, 1)) {
|
|
for (Date dayDate = startDate; dayDate.before(endDate); dayDate = DateUtils.addDays(dayDate, 1)) {
|
|
- //计算冷却泵 日均值 并构造实体对象
|
|
|
|
|
|
+ //计算 日均值 并构造实体对象
|
|
Double dayAvg = computeDayAvg(dayDate, dateRunDataMap, dayCoolWaterMainReturnTempMap, dayTwdTempMap);
|
|
Double dayAvg = computeDayAvg(dayDate, dateRunDataMap, dayCoolWaterMainReturnTempMap, dayTwdTempMap);
|
|
//构造实体对象
|
|
//构造实体对象
|
|
MonitorIndicatorRecord monitorIndicatorRecord = new MonitorIndicatorRecord();
|
|
MonitorIndicatorRecord monitorIndicatorRecord = new MonitorIndicatorRecord();
|
|
@@ -1107,16 +1106,16 @@ public class ProjectDataRecordServiceImpl implements IProjectDataRecordService {
|
|
List<TimeDataDTO> timeDataDTOList = new ArrayList<>();
|
|
List<TimeDataDTO> timeDataDTOList = new ArrayList<>();
|
|
for (WeatherDTO dto:dtoList) {
|
|
for (WeatherDTO dto:dtoList) {
|
|
//根据温度和湿度 计算出湿空气焓值
|
|
//根据温度和湿度 计算出湿空气焓值
|
|
- Double hVal = TwdTempUtil.getHVal(dto.getTemperature(),dto.getHumidity());
|
|
|
|
|
|
+ Double hVal = getHVal(dto.getTemperature(),dto.getHumidity());
|
|
//根据允许范围推出Tw值
|
|
//根据允许范围推出Tw值
|
|
- Double Tw = TwdTempUtil.getTw(dto.getTemperature(),hVal,TwdTemp_Limit);
|
|
|
|
|
|
+ Double Tw = getTw(dto.getTemperature(),hVal,TwdTemp_Limit);
|
|
log.info("项目编号为:"+projectDTO.getProjectId()+"日期为:"+dto.getHourTime()+"温度:"+dto.getTemperature()+"湿度:"+dto.getHumidity()+"湿球温度:"+Tw);
|
|
log.info("项目编号为:"+projectDTO.getProjectId()+"日期为:"+dto.getHourTime()+"温度:"+dto.getTemperature()+"湿度:"+dto.getHumidity()+"湿球温度:"+Tw);
|
|
//小时时间
|
|
//小时时间
|
|
Date hour = dto.getHourTime();
|
|
Date hour = dto.getHourTime();
|
|
Date nextHour = com.persagy.apm.diagnose.utils.DateUtils.addHours(hour,1);
|
|
Date nextHour = com.persagy.apm.diagnose.utils.DateUtils.addHours(hour,1);
|
|
- for (Date starthour = hour; starthour.before(nextHour) ; starthour = com.persagy.apm.diagnose.utils.DateUtils.addMinutes(starthour,15)) {
|
|
|
|
|
|
+ for (Date startHour = hour; startHour.before(nextHour) ; startHour = com.persagy.apm.diagnose.utils.DateUtils.addMinutes(startHour,15)) {
|
|
TimeDataDTO timeDataDTO = new TimeDataDTO();
|
|
TimeDataDTO timeDataDTO = new TimeDataDTO();
|
|
- timeDataDTO.setTime(com.persagy.apm.diagnose.utils.DateUtils.date2Str(starthour, com.persagy.apm.diagnose.utils.DateUtils.SDFSECOND));
|
|
|
|
|
|
+ timeDataDTO.setTime(com.persagy.apm.diagnose.utils.DateUtils.date2Str(startHour, com.persagy.apm.diagnose.utils.DateUtils.SDFSECOND));
|
|
timeDataDTO.setData(Tw);
|
|
timeDataDTO.setData(Tw);
|
|
timeDataDTOList.add(timeDataDTO);
|
|
timeDataDTOList.add(timeDataDTO);
|
|
}
|
|
}
|
|
@@ -1161,5 +1160,75 @@ public class ProjectDataRecordServiceImpl implements IProjectDataRecordService {
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 根据允许范围推出Tw值
|
|
|
|
+ */
|
|
|
|
+ public Double getTw(Double Td, Double hVal, Double limit) throws InterruptedException {
|
|
|
|
+ Double Tw = Td-3;
|
|
|
|
+ Double num = 0.0;
|
|
|
|
+ Boolean isOk = false;
|
|
|
|
+ Boolean isTrueVal = false;
|
|
|
|
+ Integer zNum = 0,jNum = 0;
|
|
|
|
+ while (!isOk){
|
|
|
|
+ //湿空气焓值
|
|
|
|
+ Double hwVal = getHwVal(Tw);
|
|
|
|
+ //两种湿空气焓值 差值
|
|
|
|
+ Double hc = DataUtils.subtract(hVal,hwVal);
|
|
|
|
+ //判断范围
|
|
|
|
+ if (hc<limit && hc > 0.0){
|
|
|
|
+ isOk = true;
|
|
|
|
+ isTrueVal = true;
|
|
|
|
+ }else if (hc > 0){//hw 小于 h 增加湿球温度数据值
|
|
|
|
+ Tw = Tw + 0.25;
|
|
|
|
+ zNum++;
|
|
|
|
+ }else if (hc < 0){//hw 大于 h 减小湿球温度数据值
|
|
|
|
+ Tw = Tw - 0.25;
|
|
|
|
+ jNum++;
|
|
|
|
+ }
|
|
|
|
+ num++;
|
|
|
|
+ if (num > 10){
|
|
|
|
+ isOk = true;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (isTrueVal){
|
|
|
|
+ return Tw;
|
|
|
|
+ }else {
|
|
|
|
+ if (zNum > 0 && jNum > 0){
|
|
|
|
+ return Tw;
|
|
|
|
+ }else{
|
|
|
|
+ return getTw(Tw,hVal,limit+0.5);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 根据湿球温度计算出湿空气焓值
|
|
|
|
+ */
|
|
|
|
+ public double getHwVal(Double Tw){
|
|
|
|
+ Double eVal = (18.678-Tw/234.5)*Tw/(Tw+257.14);
|
|
|
|
+ Double ev= Math.exp(eVal);
|
|
|
|
+ Double Pv = 611.2 * ev; //Td时的水蒸汽饱和压力
|
|
|
|
+ //含湿量
|
|
|
|
+ Double dw = 0.6219*(Pv/(101326-Pv));
|
|
|
|
+ //湿空气焓值
|
|
|
|
+ Double hw = 1.01*Tw + (2500+1.84*Tw)*dw;
|
|
|
|
+ return hw;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 根据温度和湿度 计算出湿空气焓值
|
|
|
|
+ */
|
|
|
|
+ public double getHVal(Double Td,Double Hr){
|
|
|
|
+ Double eVal = (18.678-Td/234.5)*Td/(Td+257.14);
|
|
|
|
+ Double ev= Math.exp(eVal);
|
|
|
|
+ Double Pv = 611.2*ev; //Td时的水蒸汽饱和压力
|
|
|
|
+ Double hrPv = 0.01*Hr*Pv;
|
|
|
|
+ //含湿量
|
|
|
|
+ Double d = 0.6219*(hrPv/(101326-hrPv));
|
|
|
|
+ //湿空气焓值
|
|
|
|
+ Double h = 1.01*Td + (2500+1.84*Td)*d;
|
|
|
|
+ return h;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
|
|
}
|
|
}
|