Fix VNF Alarm Query Bugs 68/72168/1
authorguochuyicmri <guochuyi@chinamobile.com>
Thu, 8 Nov 2018 06:04:37 +0000 (14:04 +0800)
committerguochuyicmri <guochuyi@chinamobile.com>
Thu, 8 Nov 2018 06:04:52 +0000 (14:04 +0800)
Change-Id: Icb4d795bed9758f90aeb643f83b7af0c1b857bb9
Issue-ID: USECASEUI-165
Signed-off-by: guochuyicmri <guochuyi@chinamobile.com>
server/src/main/java/org/onap/usecaseui/server/controller/AlarmController.java
server/src/main/java/org/onap/usecaseui/server/service/impl/AlarmsHeaderServiceImpl.java
server/src/main/java/org/onap/usecaseui/server/util/UuiCommonUtil.java

index 470890e..be72cc7 100755 (executable)
@@ -29,8 +29,6 @@ import javax.annotation.Resource;
 \r
 import org.onap.usecaseui.server.bean.AlarmsHeader;\r
 import org.onap.usecaseui.server.bean.AlarmsInformation;\r
-import org.onap.usecaseui.server.bean.maxAndMinTimeBean;\r
-import org.onap.usecaseui.server.bo.AlarmBo;\r
 import org.onap.usecaseui.server.constant.Constant;\r
 import org.onap.usecaseui.server.service.AlarmsHeaderService;\r
 import org.onap.usecaseui.server.service.AlarmsInformationService;\r
@@ -100,12 +98,11 @@ public class AlarmController
         * test commit\r
         * @throws ParseException \r
         */\r
-    @RequestMapping(value = {"/alarm/{currentPage}/{pageSize}",\r
-            "/alarm/{currentPage}/{pageSize}/{sourceName}/{priority}/{startTime}/{endTime}/{vfStatus}"},\r
+    @RequestMapping(value = {"/alarm/{currentPage}/{pageSize}"},\r
             method = RequestMethod.GET , produces = "application/json")\r
-    public String getAlarmData(@PathVariable(required = false) String sourceName,\r
-                               @PathVariable(required = false) String priority,@PathVariable(required = false) String startTime,\r
-                               @PathVariable(required = false) String endTime,@PathVariable(required = false) String vfStatus,\r
+    public String getAlarmData(@RequestParam(required = false) String sourceName,\r
+               @RequestParam(required = false) String priority,@RequestParam(required = false) String startTime,\r
+               @RequestParam(required = false) String endTime,@RequestParam(required = false) String vfStatus,\r
                                @PathVariable String currentPage, @PathVariable String pageSize) throws JsonProcessingException, ParseException {\r
             AlarmsHeader alarm = new AlarmsHeader();\r
             alarm.setSourceName(sourceName);\r
@@ -170,8 +167,8 @@ public class AlarmController
         return omAlarm.writeValueAsString(sourceNames);\r
     }\r
     \r
-    @RequestMapping(value = {"/alarm/diagram"},method = RequestMethod.POST,produces = "application/json")\r
-    public String diagram(@RequestParam String sourceName, @RequestParam String startTime, @RequestParam String endTime, @RequestParam String format) {\r
+    @RequestMapping(value = {"/alarm/diagram"},method = RequestMethod.GET,produces = "application/json")\r
+    public String diagram(@RequestParam String sourceName, @RequestParam(required = false) String startTime, @RequestParam(required = false) String endTime, @RequestParam String format) {\r
         long timeInterval = 0;\r
        try {\r
                if("month".equals(format)){//alarm   day month year\r
@@ -182,13 +179,6 @@ public class AlarmController
                        formatDate="yyyy-MM-dd";\r
                        timeInterval =86400000;\r
                }\r
-               List<maxAndMinTimeBean> list = alarmsInformationService.queryMaxAndMinTime();\r
-               if(!UuiCommonUtil.isNotNullOrEmpty(startTime)&&list.size()>0){\r
-                       startTime=list.get(0).getMinTime();\r
-               }\r
-               if(!UuiCommonUtil.isNotNullOrEmpty(endTime)&&list.size()>0){\r
-                       endTime=list.get(0).getMaxTime();\r
-               }\r
                sdf = new SimpleDateFormat(formatDate);\r
             long startTimel = sdf.parse(startTime).getTime();\r
             long endTimel = sdf.parse(endTime).getTime();\r
@@ -219,10 +209,14 @@ public class AlarmController
         List<Integer> numList = new ArrayList<Integer>();\r
         long tmpEndTimeL = startTimeL + timeIteraPlusVal;\r
         while (endTimeL >= tmpEndTimeL) {\r
+               int maxDay2 = 1;\r
+               int maxDay = 1;\r
             int num = alarmsInformationService.queryDateBetween(sourceName,startTimeL+"",tmpEndTimeL+"",level);\r
             dateList.add(DateUtils.getResultDate(startTimeL, format));\r
-            int maxDay2 = DateUtils.MonthOfDay(sdf.format(new Date(tmpEndTimeL)), formatDate);\r
-            int maxDay = DateUtils.MonthOfDay(sdf.format(new Date(startTimeL)), formatDate);\r
+            if("month".equals(format)){\r
+               maxDay2 = DateUtils.MonthOfDay(sdf.format(new Date(tmpEndTimeL)), formatDate);\r
+               maxDay = DateUtils.MonthOfDay(sdf.format(new Date(startTimeL)), formatDate);\r
+            }\r
             numList.add(num);\r
             startTimeL += 86400000L*maxDay;\r
             tmpEndTimeL += 86400000L*maxDay2;\r
index cf5d4f6..71a0faf 100755 (executable)
@@ -29,6 +29,7 @@ import org.hibernate.Transaction;
 import org.onap.usecaseui.server.bean.AlarmsHeader;\r
 import org.onap.usecaseui.server.service.AlarmsHeaderService;\r
 import org.onap.usecaseui.server.util.Page;\r
+import org.onap.usecaseui.server.util.UuiCommonUtil;\r
 import org.slf4j.Logger;\r
 import org.slf4j.LoggerFactory;\r
 import org.springframework.beans.factory.annotation.Autowired;\r
@@ -95,108 +96,24 @@ public class AlarmsHeaderServiceImpl implements AlarmsHeaderService {
                                logger.error("AlarmsHeaderServiceImpl getAllCount alarmsHeader is null!");\r
                                return -1;\r
                        }else {\r
-                               if(null!=alarmsHeader.getVersion()) {\r
-                                       String ver=alarmsHeader.getVersion();\r
-                                       count.append(" and a.version like '%"+ver+"%'");\r
-                               }\r
-                               if(null!=alarmsHeader.getEventName()) {\r
-                                       String ver=alarmsHeader.getEventName();\r
-                                       count.append(" and a.eventName like '%"+ver+"%'");\r
-                               }\r
-                               if(null!=alarmsHeader.getAlarmCondition()) {\r
-                                       String ver=alarmsHeader.getAlarmCondition();\r
-                                       count.append(" and a.alarmCondition like '%"+ver+"%'");\r
-                               }\r
-                               if(null!=alarmsHeader.getDomain()) {\r
-                                       String ver=alarmsHeader.getDomain();\r
-                                       count.append(" and a.domain like '%"+ver+"%'");\r
-                               }\r
-                               if(null!=alarmsHeader.getEventId()) {\r
-                                       String ver=alarmsHeader.getEventId();\r
-                                       count.append(" and a.eventId = '"+ver+"'");\r
-                               }\r
-                               if(null!=alarmsHeader.getNfcNamingCode()) {\r
-                                       String ver=alarmsHeader.getNfcNamingCode();\r
-                                       count.append(" and a.nfcNamingCode like '%"+ver+"%'");\r
-                               }\r
-                               if(null!=alarmsHeader.getNfNamingCode()) {\r
-                                       String ver=alarmsHeader.getNfNamingCode();\r
-                                       count.append(" and a.nfNamingCode like '%"+ver+"%'");\r
-                               }\r
-                               if(null!=alarmsHeader.getSourceId()) {\r
-                                       String ver =alarmsHeader.getSourceId();\r
-                                       count.append(" and a.sourceId like '%"+ver+"%'");\r
-                               }\r
-                               if(null!=alarmsHeader.getSourceName()) {\r
+                               if(UuiCommonUtil.isNotNullOrEmpty(alarmsHeader.getSourceName())) {\r
                                        String ver =alarmsHeader.getSourceName();\r
                                        count.append(" and a.sourceName like '%"+ver+"%'");\r
                                }\r
-                               if(null!=alarmsHeader.getReportingEntityId()) {\r
-                                       String ver =alarmsHeader.getReportingEntityId();\r
-                                       count.append(" and a.reportingEntityId like '%"+ver+"%'");\r
-                               }\r
-                               if(null!=alarmsHeader.getReportingEntityName()) {\r
-                                       String ver =alarmsHeader.getReportingEntityName();\r
-                                       count.append(" and a.reportingEntityName like '%"+ver+"%'");\r
-                               }\r
-                               if(null!=alarmsHeader.getPriority()) {\r
+                               if(UuiCommonUtil.isNotNullOrEmpty(alarmsHeader.getPriority())) {\r
                                        String ver =alarmsHeader.getPriority();\r
                                        count.append(" and a.priority like '%"+ver+"%'");\r
                                }\r
-                               if(null!=alarmsHeader.getStartEpochMicrosec()) {\r
-                                       String ver =alarmsHeader.getStartEpochMicrosec();\r
-                                       count.append(" and a.startEpochMicrosec like '%"+ver+"%'");\r
-                               }\r
-                               if(null!=alarmsHeader.getLastEpochMicroSec()) {\r
-                                       String ver =alarmsHeader.getLastEpochMicroSec();\r
-                                       count.append(" and a.lastEpochMicroSec like '%"+ver+"%'");\r
-                               }\r
-                               if(null!=alarmsHeader.getSequence()) {\r
-                                       String ver =alarmsHeader.getSequence();\r
-                                       count.append(" and a.sequence like '%"+ver+"%'");\r
-                               }\r
-                               if(null!=alarmsHeader.getFaultFieldsVersion()) {\r
-                                       String ver =alarmsHeader.getFaultFieldsVersion();\r
-                                       count.append(" and a.faultFieldsVersion like '%"+ver+"%'");\r
-                               }\r
-                               if(null!=alarmsHeader.getEventServrity()) {\r
-                                       String ver =alarmsHeader.getEventServrity();\r
-                                       count.append(" and a.eventServrity like '%"+ver+"%'");\r
-                               }\r
-                               if(null!=alarmsHeader.getEventType()) {\r
-                                       String ver =alarmsHeader.getEventType();\r
-                                       count.append(" and a.eventSourceType like '%"+ver+"%'");\r
-                               }\r
-                               if(null!=alarmsHeader.getEventCategory()) {\r
-                                       String ver =alarmsHeader.getEventCategory();\r
-                                       count.append(" and a.eventCategory like '%"+ver+"%'");\r
-                               }\r
-                               if(null!=alarmsHeader.getAlarmCondition()) {\r
-                                       String ver =alarmsHeader.getAlarmCondition();\r
-                                       count.append(" and a.alarmCondition like '%"+ver+"%'");\r
-                               }\r
-                               if(null!=alarmsHeader.getSpecificProblem()) {\r
-                                       String ver =alarmsHeader.getSpecificProblem();\r
-                                       count.append(" and a.specificProblem like '%"+ver+"%'");\r
-                               }\r
-                               if(null!=alarmsHeader.getVfStatus()) {\r
-                                       String ver =alarmsHeader.getVfStatus();\r
-                                       count.append(" and a.vfStatus = '"+ver+"'");\r
-                               }\r
-                               if(null!=alarmsHeader.getAlarmInterfaceA()) {\r
-                                       String ver =alarmsHeader.getAlarmInterfaceA();\r
-                                       count.append(" and a.alarmInterfaceA like '%"+ver+"%'");\r
-                               }\r
-                               if(null!=alarmsHeader.getStatus()) {\r
+                               if(UuiCommonUtil.isNotNullOrEmpty(alarmsHeader.getStatus())) {\r
                                        String ver =alarmsHeader.getStatus();\r
                                        count.append(" and a.status = '"+ver+"'");\r
                                }\r
-                               if(null!=alarmsHeader.getStartEpochMicrosec() || alarmsHeader.getLastEpochMicroSec()!= null) {\r
-                                       count.append(" and a.startEpochMicrosec between :startTime and :endTime");\r
+                               if(UuiCommonUtil.isNotNullOrEmpty(alarmsHeader.getStartEpochMicrosec())&&UuiCommonUtil.isNotNullOrEmpty(alarmsHeader.getLastEpochMicroSec())) {\r
+                                       count.append(" and (CASE WHEN a.startEpochMicrosec=0 THEN a.lastEpochMicroSec ELSE a.startEpochMicrosec END) between :startTime and :endTime ");\r
                                }\r
                        }\r
                        Query query = session.createQuery(count.toString());\r
-                       if(null!=alarmsHeader.getStartEpochMicrosec() || alarmsHeader.getLastEpochMicroSec()!= null) {\r
+                       if(UuiCommonUtil.isNotNullOrEmpty(alarmsHeader.getStartEpochMicrosec())&&UuiCommonUtil.isNotNullOrEmpty(alarmsHeader.getLastEpochMicroSec())) {\r
                                query.setString("startTime",alarmsHeader.getStartEpochMicrosec());\r
                                query.setString("endTime",alarmsHeader.getLastEpochMicroSec());\r
                        }\r
@@ -222,25 +139,25 @@ public class AlarmsHeaderServiceImpl implements AlarmsHeaderService {
                                logger.error("AlarmsHeaderServiceImpl queryAlarmsHeader alarmsHeader is null!");\r
                                return null;\r
                        }else {\r
-                               if(null!=alarmsHeader.getSourceName()) {\r
+                               if(UuiCommonUtil.isNotNullOrEmpty(alarmsHeader.getSourceName())) {\r
                                        String ver =alarmsHeader.getSourceName();\r
                                        hql.append(" and a.sourceName like '%"+ver+"%'");\r
                                }\r
-                               if(null!=alarmsHeader.getVfStatus()) {\r
+                               if(UuiCommonUtil.isNotNullOrEmpty(alarmsHeader.getVfStatus())) {\r
                                        String ver =alarmsHeader.getVfStatus();\r
                                        hql.append(" and a.vfStatus = '"+ver+"'");\r
                                }\r
-                               if(null!=alarmsHeader.getStatus()) {\r
+                               if(UuiCommonUtil.isNotNullOrEmpty(alarmsHeader.getStatus())) {\r
                                        String ver =alarmsHeader.getStatus();\r
                                        hql.append(" and a.status = '"+ver+"'");\r
                                }\r
-                               if(null!=alarmsHeader.getStartEpochMicrosec() || alarmsHeader.getLastEpochMicroSec()!= null) {\r
-                                       hql.append(" and a.startEpochMicrosec between :startTime and :endTime");\r
+                               if(UuiCommonUtil.isNotNullOrEmpty(alarmsHeader.getStartEpochMicrosec())&&UuiCommonUtil.isNotNullOrEmpty(alarmsHeader.getLastEpochMicroSec())) {\r
+                                       hql.append(" and (CASE WHEN a.startEpochMicrosec=0 THEN a.lastEpochMicroSec ELSE a.startEpochMicrosec END) between :startTime and :endTime ");\r
                                }\r
                        }\r
                        logger.info("AlarmsHeaderServiceImpl queryAlarmsHeader: alarmsHeader={}", alarmsHeader);\r
                        Query query = session.createQuery(hql.toString());\r
-                       if(null!=alarmsHeader.getStartEpochMicrosec() || alarmsHeader.getLastEpochMicroSec()!= null) {\r
+                       if(UuiCommonUtil.isNotNullOrEmpty(alarmsHeader.getStartEpochMicrosec())&&UuiCommonUtil.isNotNullOrEmpty(alarmsHeader.getLastEpochMicroSec())) {\r
                                query.setString("startTime",alarmsHeader.getStartEpochMicrosec());\r
                                query.setString("endTime",alarmsHeader.getLastEpochMicroSec());\r
                        }\r
index 33577e9..3a90e71 100644 (file)
@@ -130,8 +130,8 @@ public class UuiCommonUtil {
         
                List listPages = new ArrayList();
         int currIdx = (currentPage > 1 ? (currentPage -1) * pageSize : 0);
-        for (int i = 0; i < pageSize && i < listPages.size() - currIdx; i++) {
-            Object  listPage= listPages.get(currIdx + i);
+        for (int i = 0; i < pageSize && i < list.size() - currIdx; i++) {
+            Object  listPage= list.get(currIdx + i);
             listPages.add(listPage);
         }
                return listPages;