Fix alarm update bug 53/29753/1
authorshentao <shentao@chinamobile.com>
Wed, 31 Jan 2018 06:24:55 +0000 (14:24 +0800)
committershentao <shentao@chinamobile.com>
Wed, 31 Jan 2018 06:24:59 +0000 (14:24 +0800)
Change-Id: I34d36e5099cd49805ab8f8a58c651e977e763850
Issue-ID: USECASEUI-101
Signed-off-by: shentao <shentao@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

index 31cf215..2a4a562 100755 (executable)
@@ -29,10 +29,7 @@ import org.onap.usecaseui.server.bo.AlarmBo;
 import org.onap.usecaseui.server.constant.Constant;\r
 import org.onap.usecaseui.server.service.AlarmsHeaderService;\r
 import org.onap.usecaseui.server.service.AlarmsInformationService;\r
-import org.onap.usecaseui.server.util.CSVUtils;\r
-import org.onap.usecaseui.server.util.DateUtils;\r
-import org.onap.usecaseui.server.util.Page;\r
-import org.onap.usecaseui.server.util.ResponseUtil;\r
+import org.onap.usecaseui.server.util.*;\r
 import org.slf4j.Logger;\r
 import org.slf4j.LoggerFactory;\r
 import org.springframework.context.annotation.EnableAspectJAutoProxy;\r
@@ -68,6 +65,27 @@ public class AlarmController {
 \r
     private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");\r
 \r
+\r
+\r
+    @RequestMapping("test")\r
+    public String test(){\r
+\r
+\r
+/*\r
+        SocketClient socketClient = new SocketClient();\r
+\r
+        SocketServer socketServer = new SocketServer();\r
+        socketServer.onServer();\r
+        socketClient.onSocketClient();*/\r
+\r
+        return null;\r
+\r
+    }\r
+\r
+\r
+\r
+\r
+\r
     @RequestMapping(value = {"/alarm/{currentPage}/{pageSize}",\r
             "/alarm/{currentPage}/{pageSize}/{sourceId}/{sourceName}/{priority}/{startTime}/{endTime}/{vfStatus}"},\r
             method = RequestMethod.GET, produces = "application/json")\r
@@ -133,13 +151,78 @@ public class AlarmController {
         return omAlarm.writeValueAsString(map);\r
     }\r
 \r
+\r
+\r
+\r
+    /*public String getAlarmData(@PathVariable(required = false) String sourceId, @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
+                               @PathVariable int currentPage, @PathVariable int pageSize) throws JsonProcessingException {\r
+        logger.info("transfer getAlarmData Apis, " +\r
+                        "Parameter all follows : [currentPage : {} , pageSize : {} , sourceId : {} , " +\r
+                        "sourceName : {} , priority : {} , startTime :{} , endTime : {}  , vfStatus : {}]"\r
+                , currentPage, pageSize, sourceId, sourceName, priority, startTime, endTime, vfStatus);\r
+        List<AlarmsHeader> alarmsHeaders = null;\r
+        List<AlarmBo> list = new ArrayList<>();\r
+        Page pa = null;\r
+        if (null != sourceId || null != sourceName || null != priority || null != startTime || null != endTime\r
+                || null != vfStatus) {\r
+            AlarmsHeader alarm = new AlarmsHeader();\r
+            alarm.setSourceId(!"null".equals(sourceId) ? sourceId : null);\r
+            alarm.setSourceName(!"null".equals(sourceName) ? sourceName : null);\r
+            alarm.setStatus(!"null".equals(vfStatus) ? vfStatus : null);\r
+            try {\r
+                alarm.setCreateTime(!"null".equals(startTime) ? new SimpleDateFormat("yyyy-MM-dd HH:mm").parse(startTime) : null);\r
+                alarm.setUpdateTime(!"null".equals(endTime) ? new SimpleDateFormat("yyyy-MM-dd HH:mm").parse(endTime) : null);\r
+            } catch (ParseException e) {\r
+                logger.error("Parse date error :" + e.getMessage());\r
+            }\r
+            pa = alarmsHeaderService.queryAlarmsHeader(alarm, currentPage, pageSize);\r
+\r
+            alarmsHeaders = pa.getList();\r
+            if (null != alarmsHeaders && alarmsHeaders.size() > 0) {\r
+                alarmsHeaders.forEach(a -> {\r
+                    logger.info(a.toString());\r
+                    AlarmBo abo = new AlarmBo();\r
+                    if (!a.getStatus().equals("close")) {\r
+                        abo.setAlarmsHeader(a);\r
+                        AlarmsInformation information = new AlarmsInformation();\r
+                        information.setEventId(a.getSourceId());\r
+                        List<AlarmsInformation> informationList = alarmsInformationService.queryAlarmsInformation(information, 1, 100).getList();\r
+                        abo.setAlarmsInformation(informationList);\r
+                        list.add(abo);\r
+                    }\r
+                });\r
+            }\r
+        } else {\r
+            pa = alarmsHeaderService.queryAlarmsHeader(null, currentPage, pageSize);\r
+            alarmsHeaders = pa.getList();\r
+            if (null != alarmsHeaders && alarmsHeaders.size() > 0) {\r
+                alarmsHeaders.forEach(a -> {\r
+                    AlarmBo abo = new AlarmBo();\r
+                    if (!a.getStatus().equals("close")) {\r
+                        abo.setAlarmsHeader(a);\r
+                        abo.setAlarmsInformation(alarmsInformationService.queryAlarmsInformation(new AlarmsInformation(a.getEventId()), currentPage, pageSize).getList());\r
+                        list.add(abo);\r
+                    }\r
+\r
+                });\r
+            }\r
+        }\r
+        Map<String, Object> map = new HashMap<>();\r
+        map.put("alarms", list);\r
+        map.put("totalRecords", pa.getTotalRecords());\r
+        omAlarm.setDateFormat(new SimpleDateFormat(Constant.DATE_FORMAT));\r
+        return omAlarm.writeValueAsString(map);\r
+    }*/\r
+\r
     @RequestMapping(value = "/alarm/statusCount", method = RequestMethod.GET, produces = "application/json")\r
     public String getStatusCount() {\r
         List<String> statusCount = new ArrayList<>();\r
         try {\r
             statusCount.add(alarmsHeaderService.queryStatusCount("0"));\r
-            statusCount.add(alarmsHeaderService.queryStatusCount("1"));\r
-            statusCount.add(alarmsHeaderService.queryStatusCount("2"));\r
+            statusCount.add(alarmsHeaderService.queryStatusCount("active"));\r
+            statusCount.add(alarmsHeaderService.queryStatusCount("close"));\r
             return omAlarm.writeValueAsString(statusCount);\r
         } catch (JsonProcessingException e) {\r
             e.printStackTrace();\r
@@ -149,18 +232,29 @@ public class AlarmController {
     }\r
 \r
     @RequestMapping(value = {"/topology/{serviceName}"}, method = RequestMethod.GET)\r
-    public String getTopologyData(@PathVariable String serviceName) {\r
+    public String getTopologyData(@PathVariable String serviceName){\r
         Map<String,Object> topologyMap = new HashMap<>();\r
         try {\r
             topologyMap.put("name",serviceName);\r
+            /*List<Map<String,Object>> services = (List<Map<String, Object>>) getTopologyData().get("services");\r
+            services.forEach( i -> {\r
+                i.forEach((kk,vv) -> {\r
+                  if (kk.equals("ServiceName"))\r
+                      if (vv.equals(serviceName))\r
+                          topologyMap.put("isAlarm",i.get("isAlarm"));\r
+                });\r
+            } );*/\r
+            //List<Map<String,Object>> networkServices = (List<Map<String, Object>>) getTopologyData().get("networkServices");\r
+            //List<Map<String,Object>> VNFS = (List<Map<String, Object>>) getTopologyData().get("VNFS");\r
 \r
             List<Map<String,Object>> networkServices = (List<Map<String, Object>>) getAllVNFS().get("networkServices");\r
             List<Map<String,Object>> VNFS = (List<Map<String, Object>>) getAllVNFS().get("VNFS");\r
 \r
+\r
             List<Map<String,Object>> children = new ArrayList<>();\r
             networkServices.forEach( i -> {\r
                 Map<String,Object> childrenMap = new HashMap<>();\r
-                i.forEach( (k,v) -> {\r
+                i.forEach( (k,v) ->{\r
                     if (k.equals("parentService"))\r
                         if (v.equals(serviceName)){\r
                             childrenMap.put("name",i.get("nsName"));\r
@@ -169,24 +263,25 @@ public class AlarmController {
                                 Map<String,Object> childrenJMap = new HashMap<>();\r
                                 j.forEach( (k1,v2) -> {\r
                                     if (k1.equals("parentNS"))\r
-                                        if (v2.equals(i.get("nsName"))) {\r
+                                        if (v2.equals(i.get("nsName"))){\r
+\r
                                             childrenJMap.put("name",j.get("vnfName"));\r
                                             childrenJMap.put("isAlarm",j.get("isAlarm"));\r
                                         }\r
-                                });\r
-                                if (childrenJMap.size() > 0)\r
+                                } );\r
+                                if (childrenJMap.size() > 0 )\r
                                     childrenList.add(childrenJMap);\r
-                            });\r
-                            if (childrenList.size() > 0) {\r
+                            } );\r
+                            if (childrenList.size() > 0){\r
                                 childrenMap.put("children",childrenList);\r
                             }\r
                         }\r
-                });\r
-                if (childrenMap.size() > 0) {\r
+                } );\r
+                if (childrenMap.size() > 0){\r
                     children.add(childrenMap);\r
                 }\r
-            });\r
-            if (children.size() > 0) {\r
+            } );\r
+            if (children.size() > 0){\r
                 topologyMap.put("children",children);\r
             }\r
             return omAlarm.writeValueAsString(topologyMap);\r
@@ -197,25 +292,26 @@ public class AlarmController {
     }\r
 \r
     @RequestMapping(value = {"/topology/services"}, method = RequestMethod.GET)\r
-    public String getTopologyServices() {\r
+    public String getTopologyServices(){\r
         try {\r
+            //List<Map<String,Object>> services = (List<Map<String, Object>>) getTopologyData().get("services");\r
             List<Map<String,Object>> services = (List<Map<String, Object>>) getAllVNFS().get("services");\r
             services.forEach( i -> {\r
                i.forEach( (k,v) -> {\r
-                   if (k.equals("ServiceName")) {\r
+                   if (k.equals("ServiceName")){\r
                        AlarmsHeader alarmsHeader = new AlarmsHeader();\r
                        alarmsHeader.setSourceId(v.toString());\r
                        List<AlarmsHeader> alarmsHeaderList = alarmsHeaderService.queryAlarmsHeader(alarmsHeader,1,10).getList();\r
                        alarmsHeaderList.forEach(alarmsHeader1 -> {\r
-                           if (alarmsHeader1.getStatus().equals("1")) {\r
+                           if (alarmsHeader1.getStatus().equals("1")){\r
                                i.replace("isAlarm","true");\r
                            }\r
                        });\r
                    }\r
-               });\r
-            });\r
+               } );\r
+            } );\r
             return omAlarm.writeValueAsString(services);\r
-        } catch (Exception e) {\r
+        }catch (Exception e){\r
             logger.error(e.getMessage());\r
             return null;\r
         }\r
@@ -226,10 +322,11 @@ public class AlarmController {
         try {\r
             BufferedReader br = new BufferedReader(new FileReader("/home/uui/resources/topologyD_data.json"));\r
             String tmpStr = "";\r
-            while ((tmpStr=br.readLine()) != null) {\r
+            while ((tmpStr=br.readLine()) != null){\r
                 data += tmpStr;\r
             }\r
             br.close();\r
+            //System.out.println(data);\r
         } catch (FileNotFoundException e) {\r
             e.printStackTrace();\r
         } catch (IOException e) {\r
@@ -239,34 +336,47 @@ public class AlarmController {
         return map;\r
     }\r
 \r
+\r
     public Map<String,Object>   getAllVNFS() throws IOException {\r
+\r
         String data="";\r
         try {\r
             String str=null;\r
             BufferedReader  br = new BufferedReader(new FileReader("/home/uui/resources/topologyD_data.json"));\r
-            while ((str=br.readLine())!=null) {\r
+            while ((str=br.readLine())!=null){\r
                 data += str;\r
-            }\r
+\r
+\r
+                }\r
             br.close();\r
+\r
         } catch (FileNotFoundException e) {\r
             e.printStackTrace();\r
-        } catch (IOException e) {\r
+        }catch (IOException e){\r
             e.printStackTrace();\r
         }\r
-        JSONObject jsonObject = (JSONObject) JSON.parseObject(data);\r
-        JSONArray jsonArray = jsonObject.getJSONArray("VNFS");\r
-\r
-        for (int a=0;a<jsonArray.size();a++) {\r
-            JSONObject jsonObject1 = jsonArray.getJSONObject(a);\r
-            String vnfName = jsonObject1.getString("vnfName");\r
-            Boolean name =   alarmsHeaderService.getStatusBySourceName(vnfName);\r
-            jsonObject1.put("isAlarm",name);\r
-            System.out.print("vnfName===="+vnfName+"name====="+name);\r
-        }\r
+            JSONObject jsonObject = (JSONObject) JSON.parseObject(data);\r
+            JSONArray jsonArray = jsonObject.getJSONArray("VNFS");\r
+\r
+            for(int a=0;a<jsonArray.size();a++){\r
+                JSONObject jsonObject1 = jsonArray.getJSONObject(a);\r
+                String vnfName = jsonObject1.getString("vnfName");\r
+          Boolean name =   alarmsHeaderService.getStatusBySourceName(vnfName);\r
+\r
+                jsonObject1.put("isAlarm",name);\r
+\r
+                System.out.print("vnfName===="+vnfName+"name====="+name);\r
+\r
+\r
+            }\r
 \r
         String jsonS = jsonObject.toJSONString();\r
         System.out.print("toJSONString===="+jsonS);\r
 \r
+\r
+\r
+       // return jsonS;\r
+\r
         Map<String,Object> map = omAlarm.readValue(jsonS, Map.class);\r
         return map;\r
     }\r
index 43413d0..5a68269 100755 (executable)
@@ -72,11 +72,26 @@ public class AlarmsHeaderServiceImpl implements AlarmsHeaderService {
        public String updateAlarmsHeader2018(String status, String date,String eventNameCleared,String eventName, String reportingEntityName,String specificProblem) {\r
 \r
                try(Session session = sessionFactory.getCurrentSession();){\r
+                       //String sql = "update AlarmsInformation set status='"+status+"' where eventName='"+eventName+"'";\r
+                       //String sql = "update AlarmsInformation set status=:status where eventName=:eventName";\r
+                       //StringBuffer sql = new StringBuffer("update AlarmsInformation set status='"+status+"' where eventName='"+eventName+"'");\r
+                       /*if (null == alarmsInformation) {\r
+                               logger.error("alarmsInformation updateAlarmsInformation alarmsInformation is null!");\r
+                       }*/\r
+                       //logger.info("AlarmsInformationServiceImpl updateAlarmsInformation: alarmsInformation={}", alarmsInformation);\r
                        logger.info("AlarmsInformationServiceImpl updateAlarmsInformation: alarmsInformation={}");\r
+                       //Transaction tx = session.beginTransaction();\r
                        session.beginTransaction();\r
-                       Query q=session.createQuery("update AlarmsHeader set status='"+status+"', eventName='"+eventNameCleared+"',updateTime='"+date+"' where eventName='"+eventName+"' and reportingEntityName='"+reportingEntityName+"' and specificProblem ='"+specificProblem+"' ");\r
-                       q.executeUpdate();\r
+                       //session.update(alarmsInformation);\r
+                       //session.createSQLQuery(sql).setParameter("status",status).setParameter("eventName",eventName).executeUpdate();\r
+                       //session.createSQLQuery(sql).executeUpdate();\r
+\r
+                       //session.update(sql);\r
+                       //Query q=session.createQuery("update AlarmsHeader set status='"+status+"', eventName='"+eventNameCleared+"',updateTime='"+date+"' where eventName='"+eventName+"' and reportingEntityName='"+reportingEntityName+"' and specificProblem ='"+specificProblem+"' ");\r
+            Query q=session.createQuery("update AlarmsHeader set status='"+status+"', updateTime='"+date+"' where eventName='"+eventName+"' and reportingEntityName='"+reportingEntityName+"' and specificProblem ='"+specificProblem+"' ");\r
+            q.executeUpdate();\r
                        session.getTransaction().commit();\r
+                       //tx.commit();\r
                        session.flush();\r
                        return "1";\r
                } catch (Exception e) {\r
@@ -89,7 +104,10 @@ public class AlarmsHeaderServiceImpl implements AlarmsHeaderService {
        public Boolean getStatusBySourceName(String sourceName) {\r
                try(Session session = sessionFactory.openSession()){\r
                        logger.info("AlarmsInformationServiceImpl updateAlarmsInformation: alarmsInformation={}");\r
+                       //Transaction tx = session.beginTransaction();\r
+                       //session.beginTransaction();\r
                        Query q=session.createQuery("select status from AlarmsHeader where sourceName='"+sourceName+"'");\r
+                       //tx.commit();\r
                        String s=(String)q.uniqueResult();\r
                        Boolean status=false;\r
                        if(s!=null && "active".equals(s)){\r
@@ -99,10 +117,12 @@ public class AlarmsHeaderServiceImpl implements AlarmsHeaderService {
                        }\r
                        session.flush();\r
                        return status;\r
+                       //return "1";\r
                } catch (Exception e) {\r
                        logger.error("exception occurred while performing AlarmsInformationServiceImpl updateAlarmsInformation. Details:" + e.getMessage());\r
                        return false;\r
                }\r
+               //return null;\r
        }\r
 \r
 \r
@@ -214,10 +234,10 @@ public class AlarmsHeaderServiceImpl implements AlarmsHeaderService {
                        String ver =alarmsHeader.getSpecificProblem();\r
                        count.append(" and a.specificProblem like '%"+ver+"%'");\r
                 }\r
-               if(null!=alarmsHeader.getVfStatus()) {\r
+               /*if(null!=alarmsHeader.getVfStatus()) {\r
                        String ver =alarmsHeader.getVfStatus();\r
                        count.append(" and a.vfStatus = '"+ver+"'");\r
-                }\r
+                }*/\r
                if(null!=alarmsHeader.getAlarmInterfaceA()) {\r
                        String ver =alarmsHeader.getAlarmInterfaceA();\r
                        count.append(" and a.alarmInterfaceA like '%"+ver+"%'");\r
@@ -230,7 +250,7 @@ public class AlarmsHeaderServiceImpl implements AlarmsHeaderService {
                                        count.append(" and a.createTime between :startTime and :endTime");\r
                                }\r
             }\r
-            count.append(" and a.status != 3");\r
+            //count.append(" and a.status != 3");\r
             Query query = session.createQuery(count.toString());\r
                        if (null != alarmsHeader)\r
                 if(null!=alarmsHeader.getCreateTime() || alarmsHeader.getUpdateTime()!= null) {\r
@@ -342,10 +362,10 @@ public class AlarmsHeaderServiceImpl implements AlarmsHeaderService {
                        String ver =alarmsHeader.getSpecificProblem();\r
                        hql.append(" and a.specificProblem like '%"+ver+"%'");\r
                 }\r
-               if(null!=alarmsHeader.getVfStatus()) {\r
+               /*if(null!=alarmsHeader.getVfStatus()) {\r
                        String ver =alarmsHeader.getVfStatus();\r
                        hql.append(" and a.vfStatus = '"+ver+"'");\r
-                }\r
+                }*/\r
                if(null!=alarmsHeader.getAlarmInterfaceA()) {\r
                        String ver =alarmsHeader.getAlarmInterfaceA();\r
                        hql.append(" and a.alarmInterfaceA like '%"+ver+"%'");\r
@@ -358,7 +378,7 @@ public class AlarmsHeaderServiceImpl implements AlarmsHeaderService {
                        hql.append(" and a.createTime between :startTime and :endTime");\r
                 }\r
             }\r
-            hql.append(" and a.status != 3");\r
+            //hql.append(" and a.status != 3");\r
             logger.info("AlarmsHeaderServiceImpl queryAlarmsHeader: alarmsHeader={}", alarmsHeader);\r
             Query query = session.createQuery(hql.toString());\r
                        if (null != alarmsHeader)\r
@@ -406,8 +426,8 @@ public class AlarmsHeaderServiceImpl implements AlarmsHeaderService {
             String hql = "select count(status) from AlarmsHeader a";\r
             if (!status.equals("0"))\r
                 hql+=" where a.status = :status";\r
-            else\r
-                hql+=" where a.status != 3";\r
+           // else\r
+             //   hql+=" where a.status != 3";\r
             Query query = session.createQuery(hql);\r
             if (!status.equals("0"))\r
                 query.setString("status",status);\r