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