|
|
@@ -77,7 +77,7 @@ public class ZoneDataWarnHandler {
|
|
|
int curClock = (int)((curUTCTm/1000/60/60%24+8)%24);
|
|
|
long queryBeginUTC = 0L, queryEndUTC = 0L;
|
|
|
final String curDate = TimeTool.convertUTC2DateStr(curUTCTm, TimeTool.YEAR_MONTH_DAY_FORMAT);
|
|
|
- long conditionMinUTC = TimeTool.convertDateStr2UTC(String.format("%s %2d:00:00"
|
|
|
+ long conditionMinUTC = TimeTool.convertDateStr2UTC(String.format("%s %02d:00:00"
|
|
|
, curDate
|
|
|
, rules.get(0).getStarts()));//触发规则列表中第一个时段的起始时刻
|
|
|
curClock = curClock - 1;
|
|
|
@@ -97,8 +97,8 @@ public class ZoneDataWarnHandler {
|
|
|
for (int i=rules.size()-1;i>=0;i--){
|
|
|
if (curClock >= rules.get(i).getStarts() && curClock <= rules.get(i).getEnds()){
|
|
|
findStartClock = rules.get(i).getStarts();
|
|
|
- queryEndUTC = Math.min(TimeTool.convertDateStr2UTC(String.format("%s %2d:59:59", curDate, curClock))
|
|
|
- , TimeTool.convertDateStr2UTC(String.format("%s %2d:59:59", curDate, rules.get(i).getEnds())));
|
|
|
+ queryEndUTC = Math.min(TimeTool.convertDateStr2UTC(String.format("%s %02d:59:59", curDate, curClock))
|
|
|
+ , TimeTool.convertDateStr2UTC(String.format("%s %02d:59:59", curDate, rules.get(i).getEnds())));
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
@@ -116,7 +116,7 @@ public class ZoneDataWarnHandler {
|
|
|
if (findStartClock == rules.get(i).getEnds())
|
|
|
findStartClock = rules.get(i).getStarts()-1;
|
|
|
}
|
|
|
- queryBeginUTC = TimeTool.convertDateStr2UTC(String.format("%s %2d:00:00", curDate, findStartClock+1));
|
|
|
+ queryBeginUTC = TimeTool.convertDateStr2UTC(String.format("%s %02d:00:00", curDate, findStartClock+1));
|
|
|
|
|
|
if (doForTodayBefore){//只分析昨日
|
|
|
queryBeginUTC = queryBeginUTC - TimeTool.MS_ONE_DAY;
|
|
|
@@ -237,7 +237,7 @@ public class ZoneDataWarnHandler {
|
|
|
if (findStartRange == rules.get(i).getEnds())
|
|
|
findStartRange = rules.get(i).getStarts()-1;
|
|
|
}
|
|
|
- queryBeginUTC = TimeTool.convertDateStr2BeginUTC(String.format("%d-%2d-01 00:00:00", preMonthInYear, findStartRange+1));
|
|
|
+ queryBeginUTC = TimeTool.convertDateStr2BeginUTC(String.format("%d-%02d-01 00:00:00", preMonthInYear, findStartRange+1));
|
|
|
conditionMinUTC = queryBeginUTC;
|
|
|
long before3MonthUTC = TimeTool.getTimeChgMonth(queryEndUTC,-3);//最多只往前分析3个月
|
|
|
if (before3MonthUTC > queryBeginUTC)
|
|
|
@@ -356,7 +356,7 @@ public class ZoneDataWarnHandler {
|
|
|
findStartRange = rules.get(i).getStarts()-1;
|
|
|
}
|
|
|
|
|
|
- queryBeginUTC = TimeTool.convertDateStr2BeginUTC(String.format("%d-%2d-01 00:00:00", preDayInYear, findStartRange+1));
|
|
|
+ queryBeginUTC = TimeTool.convertDateStr2BeginUTC(String.format("%d-%02d-01 00:00:00", preDayInYear, findStartRange+1));
|
|
|
conditionMinUTC = queryBeginUTC;
|
|
|
long before3DayUTC = queryEndUTC-TimeTool.MS_ONE_DAY*7;//最多只往前分析7天
|
|
|
if (before3DayUTC > queryBeginUTC)
|
|
|
@@ -801,6 +801,7 @@ public class ZoneDataWarnHandler {
|
|
|
public static TRecordRes<DateKeyValue> getSampleDataFromDB(String fieldUnit, String frequencyUnit, String itemKey, String objId, long beginTm, long endTm, String metricId, String doDb, String doField, String doTime){
|
|
|
TRecordRes<DateKeyValue> oRes = new TRecordRes<>(ResponseCode.RESULT_BAD.toInt());
|
|
|
String desTable = doDb.split("@")[1];
|
|
|
+ String storeField = doField.split("@")[0];
|
|
|
String backField = doField.split("@")[1];
|
|
|
String doTimeFunction = doTime.replaceAll("\\(.*\\)", "");
|
|
|
String doTimeField = doTime.replaceAll("^.*\\(|\\)", "");
|
|
|
@@ -809,9 +810,9 @@ public class ZoneDataWarnHandler {
|
|
|
, backField
|
|
|
, doTimeField);
|
|
|
if ("%".equals(fieldUnit)){
|
|
|
- queryField += String.format(",COALESCE(%s, 0)*100 as value", backField);
|
|
|
+ queryField += String.format(",COALESCE(%s, 0)*100 as value", storeField);
|
|
|
}else
|
|
|
- queryField += String.format(",COALESCE(%s, 0) as value", backField);
|
|
|
+ queryField += String.format(",COALESCE(%s, 0) as value", storeField);
|
|
|
|
|
|
switch (itemKey){
|
|
|
case WarnItemType.ZONE_HWO:{//小时水量,存储的是累计流量:(n+1)点-(n)点=(n)点水量,故分区水量要将endTm += TimeTool.MS_ONE_HOUR;然后再查询
|
|
|
@@ -823,8 +824,8 @@ public class ZoneDataWarnHandler {
|
|
|
doTimeField = String.format("mnf.%s", doTimeField);
|
|
|
queryField = String.format("mnf.zone_id,'%s' as key,(mnf.%s - COALESCE(lmnf.%s, 0)) AS value,%s as date"
|
|
|
, backField
|
|
|
- , backField
|
|
|
- , backField
|
|
|
+ , storeField
|
|
|
+ , storeField
|
|
|
, doTimeField);
|
|
|
}
|
|
|
break;
|
|
|
@@ -890,8 +891,8 @@ public class ZoneDataWarnHandler {
|
|
|
|
|
|
arrRecordRes = new ArrayList<>();
|
|
|
for (int i=0;i<arrDbs.size()-1;i++){
|
|
|
- long thisTm = ((Timestamp)(arrDbs.get(i).get("date"))).getTime();
|
|
|
- long nextTm = ((Timestamp)(arrDbs.get(i+1).get("date"))).getTime();
|
|
|
+ long thisTm = TimeTool.convertDateStr2UTC((String)(arrDbs.get(i).get("date")));
|
|
|
+ long nextTm = TimeTool.convertDateStr2UTC((String)(arrDbs.get(i+1).get("date")));
|
|
|
double thisValue = CastUtil.castDouble(arrDbs.get(i).get("value"), 0.0);
|
|
|
double nextValue = CastUtil.castDouble(arrDbs.get(i+1).get("value"), 0.0);
|
|
|
if (thisTm == (nextTm-TimeTool.MS_ONE_HOUR)){
|