|
|
@@ -92,10 +92,12 @@ public class SiteDataWarnHandler {
|
|
|
if (code != ResponseCode.RESULT_NORMAL)
|
|
|
break;
|
|
|
|
|
|
- int findStartRange = -1;
|
|
|
+ int findStartRange = -1, ruleStartRange = -1, ruleEndRange = -1;
|
|
|
for (int i=rules.size()-1;i>=0;i--){
|
|
|
if (preDayInMonth >= rules.get(i).getStarts() && preDayInMonth <= rules.get(i).getEnds()){
|
|
|
findStartRange = rules.get(i).getStarts();
|
|
|
+ ruleStartRange = findStartRange;
|
|
|
+ ruleEndRange = rules.get(i).getEnds();
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
@@ -116,16 +118,21 @@ public class SiteDataWarnHandler {
|
|
|
|
|
|
queryBeginUTC = TimeTool.convertDateStr2BeginUTC(String.format("%d-%02d-01 00:00:00", preDayInYear, findStartRange+1));
|
|
|
conditionMinUTC = queryBeginUTC;
|
|
|
+ ruleStartRange = findStartRange+1;
|
|
|
long before3DayUTC = thisTodayBegin-TimeTool.MS_ONE_DAY*7;//最多只往前分析7天
|
|
|
if (before3DayUTC > queryBeginUTC)
|
|
|
queryBeginUTC = before3DayUTC;
|
|
|
|
|
|
- if (thisStepTempRes.getLastCompareSampleTime() <= 0L
|
|
|
- || thisStepTempRes.getLastCompareSampleTime() < queryBeginUTC) {//从未分析过则重新计数)
|
|
|
+ if (thisStepTempRes.getLastCompareSampleTime() <= 0L) {//从未分析过则重新计数)
|
|
|
thisStepTempRes.resetData();
|
|
|
- }else if (thisStepTempRes.getLastCompareSampleTime() >= queryBeginUTC) {
|
|
|
- queryBeginUTC = thisStepTempRes.getLastCompareSampleTime() + TimeTool.MS_ONE_DAY;
|
|
|
+ }else {
|
|
|
+ int sampleInMonth = TimeTool.getMonthIndex(thisStepTempRes.getLastCompareSampleTime());
|
|
|
+ if (sampleInMonth >= ruleStartRange && sampleInMonth <= ruleEndRange){
|
|
|
+ queryBeginUTC = Math.max(queryBeginUTC, thisStepTempRes.getLastCompareSampleTime() + TimeTool.MS_ONE_DAY);
|
|
|
+ }else//样本跨了时段则重新计数
|
|
|
+ thisStepTempRes.resetData();
|
|
|
}
|
|
|
+
|
|
|
if (queryBeginUTC >= queryEndUTC){
|
|
|
step = "Time is invalid,do analysis next time";
|
|
|
code = ResponseCode.RESULT_BAD;
|
|
|
@@ -175,7 +182,7 @@ public class SiteDataWarnHandler {
|
|
|
if (getWarnPlanInfoDBService().updatePlanForTrigger(new HashMap<String, Object>(){{
|
|
|
put(OrdWarnPlanInfoTable.W_INFO.UNIQUE_ID, planDetail.getUid());
|
|
|
put(OrdWarnPlanInfoTable.W_INFO.VERSION, planDetail.getVersion());
|
|
|
- }}, updatePlan, null, null, null, false, "") <= 0){
|
|
|
+ }}, updatePlan, null, null, null, null, false, "") <= 0){
|
|
|
step = "Update warn plan trigger result to db failed.";
|
|
|
code = ResponseCode.RESULT_BAD;
|
|
|
}
|
|
|
@@ -227,6 +234,7 @@ public class SiteDataWarnHandler {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ int ruleStartClock = -1, ruleEndClock = -1;
|
|
|
OrdWarnPlanTempStep thisStepTempRes = new OrdWarnPlanTempStep(planDetail);
|
|
|
thisStepTempRes.setLastAnalyTime(curUTCTm);
|
|
|
thisStepTempRes.setCompareTimes(planDetail.getCompareTimes()+1);
|
|
|
@@ -238,6 +246,8 @@ public class SiteDataWarnHandler {
|
|
|
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();
|
|
|
+ ruleStartClock = findStartClock;
|
|
|
+ ruleEndClock = rules.get(i).getEnds();
|
|
|
if (FrequencyUnit.MIN.equals(planDetail.getFrequencyUnit())){//以分钟为单位进行分析
|
|
|
queryEndUTC = Math.min(curUTCTm
|
|
|
, TimeTool.convertDateStr2UTC(String.format("%s %02d:59:59", curDate, rules.get(i).getEnds())));
|
|
|
@@ -263,6 +273,7 @@ public class SiteDataWarnHandler {
|
|
|
findStartClock = rules.get(i).getStarts()-1;
|
|
|
}
|
|
|
queryBeginUTC = TimeTool.convertDateStr2UTC(String.format("%s %02d:00:00", curDate, findStartClock+1));
|
|
|
+ ruleStartClock = findStartClock+1;
|
|
|
|
|
|
if (doForTodayBefore){//只分析昨日
|
|
|
queryBeginUTC = queryBeginUTC - TimeTool.MS_ONE_DAY;
|
|
|
@@ -275,15 +286,18 @@ public class SiteDataWarnHandler {
|
|
|
*/
|
|
|
}
|
|
|
|
|
|
- if (thisStepTempRes.getLastCompareSampleTime() <= 0L //从未分析过则重新计数
|
|
|
- || thisStepTempRes.getLastCompareSampleTime() < queryBeginUTC){//样本跨了时段则重新计数
|
|
|
+ if (thisStepTempRes.getLastCompareSampleTime() <= 0L){//从未分析过则重新计数
|
|
|
thisStepTempRes.resetData();
|
|
|
- }else if (thisStepTempRes.getLastCompareSampleTime() >= queryBeginUTC){
|
|
|
- if (FrequencyUnit.MIN.equals(planDetail.getFrequencyUnit())) {//以分钟为单位进行分析
|
|
|
- queryBeginUTC = thisStepTempRes.getLastCompareSampleTime() + TimeTool.MS_ONE_SEC;
|
|
|
- }else {//以小时或其他单位进行分析
|
|
|
- queryBeginUTC = thisStepTempRes.getLastCompareSampleTime() + TimeTool.MS_ONE_HOUR;
|
|
|
- }
|
|
|
+ }else {
|
|
|
+ int sampleClock = (int)((thisStepTempRes.getLastCompareSampleTime()/1000/60/60%24+8)%24);
|
|
|
+ if (sampleClock >= ruleStartClock && sampleClock <= ruleEndClock){
|
|
|
+ if (FrequencyUnit.MIN.equals(planDetail.getFrequencyUnit())) {//以分钟为单位进行分析
|
|
|
+ queryBeginUTC = Math.max(queryBeginUTC, thisStepTempRes.getLastCompareSampleTime() + TimeTool.MS_ONE_SEC);
|
|
|
+ }else {//以小时或其他单位进行分析
|
|
|
+ queryBeginUTC = Math.max(queryBeginUTC, thisStepTempRes.getLastCompareSampleTime() + TimeTool.MS_ONE_HOUR);
|
|
|
+ }
|
|
|
+ }else//样本跨了时段则重新计数
|
|
|
+ thisStepTempRes.resetData();
|
|
|
}
|
|
|
|
|
|
if (queryBeginUTC > queryEndUTC){
|
|
|
@@ -337,7 +351,7 @@ public class SiteDataWarnHandler {
|
|
|
if (getWarnPlanInfoDBService().updatePlanForTrigger(new HashMap<String, Object>(){{
|
|
|
put(OrdWarnPlanInfoTable.W_INFO.UNIQUE_ID, planDetail.getUid());
|
|
|
put(OrdWarnPlanInfoTable.W_INFO.VERSION, planDetail.getVersion());
|
|
|
- }}, updatePlan, null, null, null, false, "") <= 0){
|
|
|
+ }}, updatePlan, null, null, null, null, false, "") <= 0){
|
|
|
step = "Update warn plan trigger result to db failed.";
|
|
|
code = ResponseCode.RESULT_BAD;
|
|
|
}
|
|
|
@@ -353,6 +367,7 @@ public class SiteDataWarnHandler {
|
|
|
private static ResponseCode analysisDataForRealBySet(OrdWarnPlanDetail planDetail, List<OrdWarnPlanRules> rules, OrdWarnPlanTempStep thisTempStep){
|
|
|
String step = "Start to deep analysis";
|
|
|
ResponseCode code = ResponseCode.RESULT_NORMAL;
|
|
|
+ int maxDevCycle = 0;//最大设备采集频率(单位:秒)
|
|
|
final String siteId = rules.get(0).getObjId();
|
|
|
SiteSampleDataResult siteSampleData = null;
|
|
|
Map<String, Long> oldEvent2EndUTC = new HashMap<>();//需要更新预警事件的样本截止时间
|
|
|
@@ -407,9 +422,11 @@ public class SiteDataWarnHandler {
|
|
|
OrdWarnPlanRules findRule = null;
|
|
|
int sampleRecordClock = (int)((sampleRecordTm/1000/60/60%24+8)%24);
|
|
|
for (OrdWarnPlanRules ruleItem:rules){
|
|
|
+ if (ruleItem.getDevCycle() > maxDevCycle)
|
|
|
+ maxDevCycle = ruleItem.getDevCycle();
|
|
|
if (sampleRecordClock <= ruleItem.getEnds() && sampleRecordClock >= ruleItem.getStarts()){
|
|
|
findRule = ruleItem;
|
|
|
- break;
|
|
|
+ //break;
|
|
|
}
|
|
|
}
|
|
|
if (findRule == null)
|
|
|
@@ -467,8 +484,9 @@ public class SiteDataWarnHandler {
|
|
|
}//上一次匹配成功了进入下一步
|
|
|
|
|
|
long triggerEventPeriodSwitch = planDetail.getFrequency()*planDetail.getThreshold()*TimeTool.MS_ONE_MIN;//触发预警事件的最小时长(单位:毫秒)
|
|
|
+ long tooDistanceMs = Math.max(maxDevCycle*TimeTool.MS_ONE_SEC, triggerEventPeriodSwitch);
|
|
|
long diffMatch = sampleRecordTm-thisTempStep.getLastCompareSampleTime();//两个最近匹配样本之间的采集时间差(单位:毫秒)
|
|
|
- if (diffMatch > triggerEventPeriodSwitch){//两个最近匹配样本间缺失的数据太多、或跨了天、或跨了时段,可认为重新计数
|
|
|
+ if (diffMatch > tooDistanceMs){//两个最近匹配样本间缺失的数据太多、或跨了天、或跨了时段,可认为重新计数
|
|
|
step = "This is matched, but two matched sample is too distance.";
|
|
|
thisTempStep.setLastCompareSampleTime(sampleRecordTm);
|
|
|
thisTempStep.setLastCompareSampleResult(COMPARE_TURE);
|
|
|
@@ -479,7 +497,7 @@ public class SiteDataWarnHandler {
|
|
|
continue;
|
|
|
}//两个最近匹配样本间隔很近,可认为是持续匹配,则进入下一步
|
|
|
|
|
|
- if (thisTempStep.getLastCompareSampleTime() < thisTempStep.getConditionMinUTC()){//上一个匹配样本是非当前天的,可认为重新计数
|
|
|
+ /*if (thisTempStep.getLastCompareSampleTime() < thisTempStep.getConditionMinUTC()){//上一个匹配样本是非当前天的,可认为重新计数
|
|
|
step = "This is matched, but last is not today.";
|
|
|
thisTempStep.setLastCompareSampleTime(sampleRecordTm);
|
|
|
thisTempStep.setLastCompareSampleResult(COMPARE_TURE);
|
|
|
@@ -488,7 +506,7 @@ public class SiteDataWarnHandler {
|
|
|
thisTempStep.setLastEventTime(0L);
|
|
|
thisTempStep.setLastCompareSampleExplain(step);
|
|
|
continue;
|
|
|
- }//上一个匹配样本是当天的,则进入下一步
|
|
|
+ }*///上一个匹配样本是当天的,则进入下一步
|
|
|
|
|
|
long matchLen = (thisTempStep.getFirstMatchSampleTime()<=0)?0:(sampleRecordTm-thisTempStep.getFirstMatchSampleTime());//样本匹配的持续时长(单位:毫秒)
|
|
|
if (StringUtils.isEmpty(thisTempStep.getLastEventId())){//之前无预警事件
|
|
|
@@ -559,10 +577,14 @@ public class SiteDataWarnHandler {
|
|
|
updatePlan.put(OrdWarnPlanInfoTable.W_INFO.VERSION, planDetail.getVersion()+1);
|
|
|
updatePlan.put(OrdWarnPlanInfoTable.W_INFO.UPDATE_TIME, System.currentTimeMillis());
|
|
|
List<Map<String, Object>> genNewEventObj = null;
|
|
|
+ Map<String, String> eventId2PlanId = null;
|
|
|
if (CommTool.mapSize(newEvent2Gen) > 0){
|
|
|
genNewEventObj = new ArrayList<>();
|
|
|
- for (Map.Entry<String, JPOrdWarnEventInfo> entry:newEvent2Gen.entrySet())
|
|
|
+ eventId2PlanId = new HashMap<>();
|
|
|
+ for (Map.Entry<String, JPOrdWarnEventInfo> entry:newEvent2Gen.entrySet()){
|
|
|
genNewEventObj.add(FastJsonUtil.obj2Map(entry.getValue(), true));
|
|
|
+ eventId2PlanId.put(entry.getValue().getUid(), entry.getValue().getPlanId());
|
|
|
+ }
|
|
|
}
|
|
|
List<Map<String, Object>> genOldEventObj = null;
|
|
|
if (CommTool.mapSize(oldEvent2EndUTC) > 0){
|
|
|
@@ -592,7 +614,7 @@ public class SiteDataWarnHandler {
|
|
|
if (getWarnPlanInfoDBService().updatePlanForTrigger(new HashMap<String, Object>(){{
|
|
|
put(OrdWarnPlanInfoTable.W_INFO.UNIQUE_ID, planDetail.getUid());
|
|
|
put(OrdWarnPlanInfoTable.W_INFO.VERSION, planDetail.getVersion());
|
|
|
- }}, updatePlan, genNewEventObj, genOldEventObj, triggerSampleHisObj, clearPlanHisTriggerSam, eventIdAcceptPlanHisTriggerSam) <= 0){
|
|
|
+ }}, updatePlan, genNewEventObj, genOldEventObj, triggerSampleHisObj, eventId2PlanId, clearPlanHisTriggerSam, eventIdAcceptPlanHisTriggerSam) <= 0){
|
|
|
step = "Update warn plan trigger result to db failed.";
|
|
|
code = ResponseCode.RESULT_BAD;
|
|
|
}
|
|
|
@@ -741,7 +763,7 @@ public class SiteDataWarnHandler {
|
|
|
thisTempStep.setFirstMatchSampleTime(sampleRecordTm);
|
|
|
thisTempStep.setLastCompareSampleExplain(step);
|
|
|
if (triggerEventPeriodSwitch <= 1){//触发事件
|
|
|
- step = "This is matched and trigger short period, it will gen event.";
|
|
|
+ step = "This is matched and trigger short period(for anew matched), it will gen event.";
|
|
|
thisTempStep.setLastEventTime(TimeTool.getCurMsUTC());
|
|
|
thisTempStep.setLastCompareSampleExplain(step);
|
|
|
|
|
|
@@ -765,13 +787,13 @@ public class SiteDataWarnHandler {
|
|
|
|
|
|
long diffMatch = (sampleRecordTm-thisTempStep.getLastCompareSampleTime())/TimeTool.MS_ONE_HOUR;//两个最近匹配样本之间的采集时间差(单位:小时)
|
|
|
if (diffMatch > triggerEventPeriodSwitch){//两个最近匹配样本间缺失的数据太多、或跨了天、或跨了时段,可认为重新计数
|
|
|
- step = "This is matched, but two matched sample is too distance.";
|
|
|
+ step = "This is matched, but two matched sample is too distance."+String.format("%d--%d",sampleRecordTm,thisTempStep.getLastCompareSampleTime());
|
|
|
thisTempStep.setLastCompareSampleTime(sampleRecordTm);
|
|
|
thisTempStep.setLastCompareSampleResult(COMPARE_TURE);
|
|
|
thisTempStep.setFirstMatchSampleTime(sampleRecordTm);
|
|
|
thisTempStep.setLastCompareSampleExplain(step);
|
|
|
if (triggerEventPeriodSwitch <= 1){//触发事件
|
|
|
- step = "This is matched and trigger short period, it will gen event.";
|
|
|
+ step = "This is matched and trigger short period(for too distance), it will gen event.";
|
|
|
thisTempStep.setLastEventTime(TimeTool.getCurMsUTC());
|
|
|
thisTempStep.setLastCompareSampleExplain(step);
|
|
|
|
|
|
@@ -796,7 +818,7 @@ public class SiteDataWarnHandler {
|
|
|
continue;
|
|
|
}//两个最近匹配样本间隔很近,可认为是持续匹配,则进入下一步
|
|
|
|
|
|
- if (thisTempStep.getLastCompareSampleTime() < thisTempStep.getConditionMinUTC()){//上一个匹配样本是非当前天的,可认为重新计数
|
|
|
+ /*if (thisTempStep.getLastCompareSampleTime() < thisTempStep.getConditionMinUTC()){//上一个匹配样本是非当前天的,可认为重新计数
|
|
|
step = "This is matched, but last is not today.";
|
|
|
thisTempStep.setLastCompareSampleTime(sampleRecordTm);
|
|
|
thisTempStep.setLastCompareSampleResult(COMPARE_TURE);
|
|
|
@@ -826,7 +848,7 @@ public class SiteDataWarnHandler {
|
|
|
thisTempStep.setLastEventTime(0L);
|
|
|
}
|
|
|
continue;
|
|
|
- }//上一个匹配样本是当天的,则进入下一步
|
|
|
+ }*///上一个匹配样本是当天的,则进入下一步
|
|
|
|
|
|
long matchLen = (thisTempStep.getFirstMatchSampleTime()<=0)?0:(((sampleRecordTm-thisTempStep.getFirstMatchSampleTime())/TimeTool.MS_ONE_HOUR)+1);//样本匹配的持续时长(单位:小时)
|
|
|
if (StringUtils.isEmpty(thisTempStep.getLastEventId())){//之前无预警事件
|
|
|
@@ -838,7 +860,7 @@ public class SiteDataWarnHandler {
|
|
|
if (thisTempStep.getFirstMatchSampleTime() <= 0){
|
|
|
thisTempStep.setFirstMatchSampleTime(sampleRecordTm);
|
|
|
if (triggerEventPeriodSwitch <= 1){//补充触发事件
|
|
|
- step = "This is matched and trigger short period, it will gen event.";
|
|
|
+ step = "This is matched and trigger short period(for wait matched), it will gen event.";
|
|
|
thisTempStep.setLastEventTime(TimeTool.getCurMsUTC());
|
|
|
thisTempStep.setLastCompareSampleExplain(step);
|
|
|
|
|
|
@@ -859,7 +881,7 @@ public class SiteDataWarnHandler {
|
|
|
}
|
|
|
}
|
|
|
}else {//触发一个新的事件
|
|
|
- step = "This is matched, and will gen event.";
|
|
|
+ step = "This is matched(for always matched), and will gen event.";
|
|
|
thisTempStep.setLastCompareSampleTime(sampleRecordTm);
|
|
|
thisTempStep.setLastCompareSampleResult(COMPARE_TURE);
|
|
|
thisTempStep.setLastEventTime(TimeTool.getCurMsUTC());
|
|
|
@@ -889,7 +911,7 @@ public class SiteDataWarnHandler {
|
|
|
thisTempStep.setFirstMatchSampleTime(sampleRecordTm);
|
|
|
thisTempStep.setLastCompareSampleExplain(step);
|
|
|
if (triggerEventPeriodSwitch <= 1){//触发事件
|
|
|
- step = "This is matched and trigger short period, it will gen event.";
|
|
|
+ step = "This is matched and trigger short period(for cycle matched), it will gen event.";
|
|
|
thisTempStep.setLastEventTime(TimeTool.getCurMsUTC());
|
|
|
thisTempStep.setLastCompareSampleExplain(step);
|
|
|
|
|
|
@@ -940,10 +962,14 @@ public class SiteDataWarnHandler {
|
|
|
updatePlan.put(OrdWarnPlanInfoTable.W_INFO.VERSION, planDetail.getVersion()+1);
|
|
|
updatePlan.put(OrdWarnPlanInfoTable.W_INFO.UPDATE_TIME, System.currentTimeMillis());
|
|
|
List<Map<String, Object>> genNewEventObj = null;
|
|
|
+ Map<String, String> eventId2PlanId = null;
|
|
|
if (CommTool.mapSize(newEvent2Gen) > 0){
|
|
|
genNewEventObj = new ArrayList<>();
|
|
|
- for (Map.Entry<String, JPOrdWarnEventInfo> entry:newEvent2Gen.entrySet())
|
|
|
+ eventId2PlanId = new HashMap<>();
|
|
|
+ for (Map.Entry<String, JPOrdWarnEventInfo> entry:newEvent2Gen.entrySet()){
|
|
|
genNewEventObj.add(FastJsonUtil.obj2Map(entry.getValue(), true));
|
|
|
+ eventId2PlanId.put(entry.getValue().getUid(), entry.getValue().getPlanId());
|
|
|
+ }
|
|
|
}
|
|
|
List<Map<String, Object>> genOldEventObj = null;
|
|
|
if (CommTool.mapSize(oldEvent2EndUTC) > 0){
|
|
|
@@ -972,12 +998,12 @@ public class SiteDataWarnHandler {
|
|
|
if (getWarnPlanInfoDBService().updatePlanForTrigger(new HashMap<String, Object>(){{
|
|
|
put(OrdWarnPlanInfoTable.W_INFO.UNIQUE_ID, planDetail.getUid());
|
|
|
put(OrdWarnPlanInfoTable.W_INFO.VERSION, planDetail.getVersion());
|
|
|
- }}, updatePlan, genNewEventObj, genOldEventObj, triggerSampleHisObj, clearPlanHisTriggerSam, eventIdAcceptPlanHisTriggerSam) <= 0){
|
|
|
+ }}, updatePlan, genNewEventObj, genOldEventObj, triggerSampleHisObj, eventId2PlanId, clearPlanHisTriggerSam, eventIdAcceptPlanHisTriggerSam) <= 0){
|
|
|
step = "Update warn plan trigger result to db failed.";
|
|
|
code = ResponseCode.RESULT_BAD;
|
|
|
}
|
|
|
LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBusinessType, mStrClassName
|
|
|
- , String.format("Analysis Data For Report By Hour:{planId=%s,siteId=%s} {clearPlanHisTrigSam=%b,eventAcceptPlanHisTrigSam=%s} {step=%s} {%s}...",
|
|
|
+ , String.format("Analysis Data For Report By Hour:{planId=%s,siteId=%s} {step=%s} {clearPlanHisTrigSam=%b,eventAcceptPlanHisTrigSam=%s} {%s}...",
|
|
|
planDetail.getUid(), siteId, step, clearPlanHisTriggerSam, eventIdAcceptPlanHisTriggerSam, code.toString()));
|
|
|
return code;
|
|
|
}
|
|
|
@@ -1121,7 +1147,7 @@ public class SiteDataWarnHandler {
|
|
|
thisTempStep.setFirstMatchSampleTime(sampleRecordTm);
|
|
|
thisTempStep.setLastCompareSampleExplain(step);
|
|
|
if (triggerEventPeriodSwitch <= 1){//触发事件
|
|
|
- step = "This is matched and trigger short period, it will gen event.";
|
|
|
+ step = "This is matched and trigger short period(for anew matched), it will gen event.";
|
|
|
thisTempStep.setLastEventTime(TimeTool.getCurMsUTC());
|
|
|
thisTempStep.setLastCompareSampleExplain(step);
|
|
|
|
|
|
@@ -1151,7 +1177,7 @@ public class SiteDataWarnHandler {
|
|
|
thisTempStep.setFirstMatchSampleTime(sampleRecordTm);
|
|
|
thisTempStep.setLastCompareSampleExplain(step);
|
|
|
if (triggerEventPeriodSwitch <= 1){//触发事件
|
|
|
- step = "This is matched and trigger short period, it will gen event.";
|
|
|
+ step = "This is matched and trigger short period(for too distance), it will gen event.";
|
|
|
thisTempStep.setLastEventTime(TimeTool.getCurMsUTC());
|
|
|
thisTempStep.setLastCompareSampleExplain(step);
|
|
|
|
|
|
@@ -1188,7 +1214,7 @@ public class SiteDataWarnHandler {
|
|
|
if (thisTempStep.getFirstMatchSampleTime() <= 0){
|
|
|
thisTempStep.setFirstMatchSampleTime(sampleRecordTm);
|
|
|
if (triggerEventPeriodSwitch <= 1){//补充触发事件
|
|
|
- step = "This is matched and trigger short period, it will gen event.";
|
|
|
+ step = "This is matched and trigger short period(for wait matched), it will gen event.";
|
|
|
thisTempStep.setLastEventTime(TimeTool.getCurMsUTC());
|
|
|
thisTempStep.setLastCompareSampleExplain(step);
|
|
|
|
|
|
@@ -1209,7 +1235,7 @@ public class SiteDataWarnHandler {
|
|
|
}
|
|
|
}
|
|
|
}else {//触发一个新的事件
|
|
|
- step = "This is matched, and will gen event.";
|
|
|
+ step = "This is matched(for always matched), and will gen event.";
|
|
|
thisTempStep.setLastCompareSampleTime(sampleRecordTm);
|
|
|
thisTempStep.setLastCompareSampleResult(COMPARE_TURE);
|
|
|
thisTempStep.setLastEventTime(TimeTool.getCurMsUTC());
|
|
|
@@ -1239,7 +1265,7 @@ public class SiteDataWarnHandler {
|
|
|
thisTempStep.setFirstMatchSampleTime(sampleRecordTm);
|
|
|
thisTempStep.setLastCompareSampleExplain(step);
|
|
|
if (triggerEventPeriodSwitch <= 1){//触发事件
|
|
|
- step = "This is matched and trigger short period, it will gen event.";
|
|
|
+ step = "This is matched and trigger short period(for cycle matched), it will gen event.";
|
|
|
thisTempStep.setLastEventTime(TimeTool.getCurMsUTC());
|
|
|
thisTempStep.setLastCompareSampleExplain(step);
|
|
|
|
|
|
@@ -1290,10 +1316,14 @@ public class SiteDataWarnHandler {
|
|
|
updatePlan.put(OrdWarnPlanInfoTable.W_INFO.VERSION, planDetail.getVersion()+1);
|
|
|
updatePlan.put(OrdWarnPlanInfoTable.W_INFO.UPDATE_TIME, System.currentTimeMillis());
|
|
|
List<Map<String, Object>> genNewEventObj = null;
|
|
|
+ Map<String, String> eventId2PlanId = null;
|
|
|
if (CommTool.mapSize(newEvent2Gen) > 0){
|
|
|
genNewEventObj = new ArrayList<>();
|
|
|
- for (Map.Entry<String, JPOrdWarnEventInfo> entry:newEvent2Gen.entrySet())
|
|
|
+ eventId2PlanId = new HashMap<>();
|
|
|
+ for (Map.Entry<String, JPOrdWarnEventInfo> entry:newEvent2Gen.entrySet()){
|
|
|
genNewEventObj.add(FastJsonUtil.obj2Map(entry.getValue(), true));
|
|
|
+ eventId2PlanId.put(entry.getValue().getUid(), entry.getValue().getPlanId());
|
|
|
+ }
|
|
|
}
|
|
|
List<Map<String, Object>> genOldEventObj = null;
|
|
|
if (CommTool.mapSize(oldEvent2EndUTC) > 0){
|
|
|
@@ -1323,7 +1353,7 @@ public class SiteDataWarnHandler {
|
|
|
if (getWarnPlanInfoDBService().updatePlanForTrigger(new HashMap<String, Object>(){{
|
|
|
put(OrdWarnPlanInfoTable.W_INFO.UNIQUE_ID, planDetail.getUid());
|
|
|
put(OrdWarnPlanInfoTable.W_INFO.VERSION, planDetail.getVersion());
|
|
|
- }}, updatePlan, genNewEventObj, genOldEventObj, triggerSampleHisObj, clearPlanHisTriggerSam, eventIdAcceptPlanHisTriggerSam) <= 0){
|
|
|
+ }}, updatePlan, genNewEventObj, genOldEventObj, triggerSampleHisObj, eventId2PlanId, clearPlanHisTriggerSam, eventIdAcceptPlanHisTriggerSam) <= 0){
|
|
|
step = "Update warn plan trigger result to db failed.";
|
|
|
code = ResponseCode.RESULT_BAD;
|
|
|
}
|