3c1870be917f6b870360713c13309bd152ab6821
[usecase-ui/server.git] / server / src / main / java / org / onap / usecaseui / server / service / impl / AlarmsHeaderServiceImpl.java
1 /*\r
2  * Copyright (C) 2017 CMCC, Inc. and others. All rights reserved.\r
3  *\r
4  * Licensed under the Apache License, Version 2.0 (the "License");\r
5  * you may not use this file except in compliance with the License.\r
6  * You may obtain a copy of the License at\r
7  *\r
8  *     http://www.apache.org/licenses/LICENSE-2.0\r
9  *\r
10  * Unless required by applicable law or agreed to in writing, software\r
11  * distributed under the License is distributed on an "AS IS" BASIS,\r
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
13  * See the License for the specific language governing permissions and\r
14  * limitations under the License.\r
15  */\r
16 package org.onap.usecaseui.server.service.impl;\r
17 \r
18 \r
19 import java.sql.Timestamp;\r
20 import java.util.ArrayList;\r
21 import java.util.Collections;\r
22 import java.util.List;\r
23 \r
24 import javax.persistence.EntityManagerFactory;\r
25 import javax.transaction.Transactional;\r
26 \r
27 import org.hibernate.Query;\r
28 import org.hibernate.Session;\r
29 import org.hibernate.SessionFactory;\r
30 import org.hibernate.Transaction;\r
31 import org.onap.usecaseui.server.bean.AlarmsHeader;\r
32 import org.onap.usecaseui.server.bean.SortMaster;\r
33 import org.onap.usecaseui.server.service.AlarmsHeaderService;\r
34 import org.onap.usecaseui.server.util.Page;\r
35 import org.onap.usecaseui.server.util.UuiCommonUtil;\r
36 import org.slf4j.Logger;\r
37 import org.slf4j.LoggerFactory;\r
38 import org.springframework.beans.factory.annotation.Autowired;\r
39 import org.springframework.context.annotation.EnableAspectJAutoProxy;\r
40 import org.springframework.stereotype.Service;\r
41 \r
42 \r
43 @Service("AlarmsHeaderService")\r
44 @Transactional\r
45 @org.springframework.context.annotation.Configuration\r
46 @EnableAspectJAutoProxy\r
47 public class AlarmsHeaderServiceImpl implements AlarmsHeaderService {\r
48 \r
49         private static final Logger logger = LoggerFactory.getLogger(AlarmsHeaderServiceImpl.class);\r
50 \r
51         @Autowired\r
52         private EntityManagerFactory entityManagerFactory;\r
53 \r
54         public Session getSession() {\r
55                 return entityManagerFactory.unwrap(SessionFactory.class).getCurrentSession();}\r
56 \r
57         public String saveAlarmsHeader(AlarmsHeader alarmsHeader) {\r
58                 Session session = getSession();\r
59                 try{\r
60                         if (null == alarmsHeader) {\r
61                                 logger.error("AlarmsHeaderServiceImpl saveAlarmsHeader alarmsHeader is null!");\r
62                                 return "0";\r
63                         }\r
64                         logger.info("AlarmsHeaderServiceImpl saveAlarmsHeader: alarmsHeader={}", alarmsHeader);\r
65                         Transaction tx = session.beginTransaction();     \r
66                         session.save(alarmsHeader);\r
67                         tx.commit();\r
68                         session.flush();\r
69                         return "1";\r
70                 } catch (Exception e) {\r
71                         logger.error("exception occurred while performing AlarmsHeaderServiceImpl saveAlarmsHeader. Details:" + e.getMessage());\r
72                         return "0";\r
73                 }\r
74         }\r
75 \r
76         @Override\r
77         public String updateAlarmsHeader(AlarmsHeader alarmsHeader) {\r
78                 Session session = getSession();\r
79                 try{\r
80                         if (null == alarmsHeader){\r
81                                 logger.error("AlarmsHeaderServiceImpl updateAlarmsHeader alarmsHeader is null!");\r
82                                 return "0";\r
83                         }\r
84                         logger.info("AlarmsHeaderServiceImpl updateAlarmsHeader: alarmsHeader={}", alarmsHeader);\r
85                         Transaction tx = session.beginTransaction();     \r
86                         session.update(alarmsHeader);\r
87                         tx.commit();\r
88                         session.flush();\r
89                         return "1";\r
90                 } catch (Exception e) {\r
91                         logger.error("exception occurred while performing AlarmsHeaderServiceImpl updateAlarmsHeader. Details:" + e.getMessage());\r
92                         return "0";\r
93                 }\r
94         }\r
95 \r
96         public int getAllCount(AlarmsHeader alarmsHeader,int currentPage,int pageSize) {\r
97                 Session session = getSession();\r
98                 try{\r
99                         StringBuffer count=new StringBuffer("select count(*) from AlarmsHeader a where 1=1");\r
100                         if (null == alarmsHeader) {\r
101                                 logger.error("AlarmsHeaderServiceImpl getAllCount alarmsHeader is null!");\r
102                                 return -1;\r
103                         }else {\r
104                                 if(UuiCommonUtil.isNotNullOrEmpty(alarmsHeader.getSourceName())) {\r
105                                         String ver =alarmsHeader.getSourceName();\r
106                                         count.append(" and a.sourceName like '%"+ver+"%'");\r
107                                 }\r
108                                 if(UuiCommonUtil.isNotNullOrEmpty(alarmsHeader.getPriority())) {\r
109                                         String ver =alarmsHeader.getPriority();\r
110                                         count.append(" and a.priority like '%"+ver+"%'");\r
111                                 }\r
112                                 if(UuiCommonUtil.isNotNullOrEmpty(alarmsHeader.getStatus())) {\r
113                                         String ver =alarmsHeader.getStatus();\r
114                                         count.append(" and a.status = '"+ver+"'");\r
115                                 }\r
116                                 if(UuiCommonUtil.isNotNullOrEmpty(alarmsHeader.getStartEpochMicrosec())&&UuiCommonUtil.isNotNullOrEmpty(alarmsHeader.getLastEpochMicroSec())) {\r
117                                         count.append(" and (CASE WHEN a.startEpochMicrosec=0 THEN a.lastEpochMicroSec ELSE a.startEpochMicrosec END) between :startTime and :endTime ");\r
118                                 }\r
119                         }\r
120                         Query query = session.createQuery(count.toString());\r
121                         if(UuiCommonUtil.isNotNullOrEmpty(alarmsHeader.getStartEpochMicrosec())&&UuiCommonUtil.isNotNullOrEmpty(alarmsHeader.getLastEpochMicroSec())) {\r
122                                 query.setString("startTime",alarmsHeader.getStartEpochMicrosec());\r
123                                 query.setString("endTime",alarmsHeader.getLastEpochMicroSec());\r
124                         }\r
125                         long q=(long)query.uniqueResult();\r
126                         session.flush();\r
127                         return (int)q;\r
128                 } catch (Exception e) {\r
129                         logger.error("exception occurred while performing AlarmsHeaderServiceImpl getAllCount. Details:" + e.getMessage());\r
130                         return -1;\r
131                 }\r
132         }\r
133 \r
134         @SuppressWarnings("unchecked")\r
135         @Override\r
136         public Page<AlarmsHeader> queryAlarmsHeader(AlarmsHeader alarmsHeader,int currentPage,int pageSize) {\r
137                 Page<AlarmsHeader> page = new Page<AlarmsHeader>();\r
138                 int allRow =this.getAllCount(alarmsHeader,currentPage,pageSize);\r
139                 int offset = page.countOffset(currentPage, pageSize);\r
140                 Session session = getSession();\r
141                 try{\r
142                         StringBuffer hql =new StringBuffer("from AlarmsHeader a where 1=1");\r
143                         if (null == alarmsHeader) {\r
144                                 logger.error("AlarmsHeaderServiceImpl queryAlarmsHeader alarmsHeader is null!");\r
145                                 return null;\r
146                         }else {\r
147                                 if(UuiCommonUtil.isNotNullOrEmpty(alarmsHeader.getSourceName())) {\r
148                                         String ver =alarmsHeader.getSourceName();\r
149                                         hql.append(" and a.sourceName like '%"+ver+"%'");\r
150                                 }\r
151                                 if(UuiCommonUtil.isNotNullOrEmpty(alarmsHeader.getVfStatus())) {\r
152                                         String ver =alarmsHeader.getVfStatus();\r
153                                         hql.append(" and a.vfStatus = '"+ver+"'");\r
154                                 }\r
155                                 if(UuiCommonUtil.isNotNullOrEmpty(alarmsHeader.getStatus())) {\r
156                                         String ver =alarmsHeader.getStatus();\r
157                                         hql.append(" and a.status = '"+ver+"'");\r
158                                 }\r
159                                 if(UuiCommonUtil.isNotNullOrEmpty(alarmsHeader.getStartEpochMicrosec())&&UuiCommonUtil.isNotNullOrEmpty(alarmsHeader.getLastEpochMicroSec())) {\r
160                                         hql.append(" and (CASE WHEN a.startEpochMicrosec=0 THEN a.lastEpochMicroSec ELSE a.startEpochMicrosec END) between :startTime and :endTime ");\r
161                                 }\r
162                         }\r
163                         logger.info("AlarmsHeaderServiceImpl queryAlarmsHeader: alarmsHeader={}", alarmsHeader);\r
164                         Query query = session.createQuery(hql.toString());\r
165                         if(UuiCommonUtil.isNotNullOrEmpty(alarmsHeader.getStartEpochMicrosec())&&UuiCommonUtil.isNotNullOrEmpty(alarmsHeader.getLastEpochMicroSec())) {\r
166                                 query.setString("startTime",alarmsHeader.getStartEpochMicrosec());\r
167                                 query.setString("endTime",alarmsHeader.getLastEpochMicroSec());\r
168                         }\r
169                         query.setFirstResult(offset);\r
170                         query.setMaxResults(pageSize);\r
171                         List<AlarmsHeader> list= query.list();\r
172                         page.setPageNo(currentPage);\r
173                         page.setPageSize(pageSize);\r
174                         page.setTotalRecords(allRow);\r
175                         page.setList(list);\r
176                         session.flush();\r
177                         return page;\r
178                 } catch (Exception e) {\r
179                         logger.error("exception occurred while performing AlarmsHeaderServiceImpl queryAlarmsHeader. Details:" + e.getMessage());\r
180                         return null;\r
181                 }\r
182         }\r
183 \r
184         @SuppressWarnings("unchecked")\r
185         @Override\r
186         public List<AlarmsHeader> queryId(String[] id) {\r
187                 Session session = getSession();\r
188                 try{\r
189                         List<AlarmsHeader> list = new ArrayList<AlarmsHeader>();\r
190                         if(id.length==0) {\r
191                                 logger.error("AlarmsHeaderServiceImpl queryId is null!");\r
192                                 return list;\r
193                         }\r
194                         Query query = session.createQuery("from AlarmsHeader a where a.eventName IN (:alist)");\r
195                         list = query.setParameterList("alist", id).list();\r
196                         return list;\r
197                 } catch (Exception e) {\r
198                         logger.error("exception occurred while performing AlarmsHeaderServiceImpl queryId. Details:" + e.getMessage());\r
199                         return null;\r
200                 }\r
201         }\r
202         \r
203         @Override\r
204         public String updateAlarmsHeader2018(String status, Timestamp date, String startEpochMicrosecCleared, String lastEpochMicroSecCleared, String eventName, String reportingEntityName, String specificProblem) {\r
205                 Session session = getSession();\r
206                 try{\r
207                         //try(Session session = sessionFactory.getCurrentSession();){\r
208                         session.beginTransaction();\r
209 \r
210                         //Query q=session.createQuery("update AlarmsHeader set status='"+status+"', updateTime='"+date+"' , startEpochMicrosecCleared='"+startEpochMicrosecCleared+"'  ,lastEpochMicroSecCleared='"+lastEpochMicroSecCleared+"'    where eventName='"+eventName+"' and reportingEntityName='"+reportingEntityName+"' and specificProblem ='"+specificProblem+"'");\r
211             Query q=session.createQuery("update AlarmsHeader set status=:status, startEpochMicrosecCleared=:startEpochMicrosecCleared  ,lastEpochMicroSecCleared=:lastEpochMicroSecCleared    where eventName=:eventName and reportingEntityName=:reportingEntityName and specificProblem =:specificProblem");\r
212 \r
213             q.setString("status",status);\r
214 \r
215             q.setString("startEpochMicrosecCleared",startEpochMicrosecCleared);\r
216             q.setString("lastEpochMicroSecCleared",lastEpochMicroSecCleared);\r
217             q.setString("eventName",eventName);\r
218             q.setString("reportingEntityName",reportingEntityName);\r
219             q.setString("specificProblem",specificProblem);\r
220 \r
221 \r
222             q.executeUpdate();\r
223                         session.getTransaction().commit();\r
224                         session.flush();\r
225                         return "1";\r
226                 } catch (Exception e) {\r
227                         logger.error("exception occurred while performing AlarmsInformationServiceImpl updateAlarmsInformation. Details:" + e.getMessage());\r
228                         return "0";\r
229                 }\r
230         }\r
231 \r
232     @Override\r
233     public String queryStatusCount(String status) {\r
234         Session session = getSession();\r
235         try{\r
236             String hql = "select count(status) from AlarmsHeader a";\r
237             if (!status.equals("0"))\r
238                 hql+=" where a.status = :status";\r
239             Query query = session.createQuery(hql);\r
240             if (!status.equals("0"))\r
241                 query.setString("status",status);\r
242             return query.uniqueResult().toString();\r
243         } catch (Exception e) {\r
244             logger.error("exception occurred while performing AlarmsHeaderServiceImpl queryStatusCount. Details:" + e.getMessage());\r
245             return null;\r
246         }\r
247     }\r
248     \r
249         @Override\r
250         public AlarmsHeader getAlarmsHeaderById(String id) {\r
251                 Session session = getSession();\r
252                 try {\r
253 \r
254                         String string = "from AlarmsHeader a where 1=1 and a.id=:id";\r
255                         Query q = session.createQuery(string);\r
256                         q.setString("id",id);\r
257                         AlarmsHeader alarmsHeader =(AlarmsHeader)q.uniqueResult();\r
258                         return alarmsHeader;\r
259 \r
260                 }catch (Exception e){\r
261                         logger.error("exception occurred while performing AlarmsHeaderServiceImpl getAlarmsHeaderDetail."+e.getMessage());\r
262                         return null;\r
263                 }\r
264         }\r
265 \r
266         @Override\r
267         public List<SortMaster> listSortMasters(String sortType) {\r
268                 Session session = getSession();\r
269                 try{\r
270                         StringBuffer hql =new StringBuffer("from SortMaster a where 1=1 and a.sortType=:sortType");\r
271                         Query query = session.createQuery(hql.toString());\r
272                         query.setString("sortType",sortType);\r
273                         List<SortMaster> list= query.list();\r
274                         return list;\r
275                 } catch (Exception e) {\r
276                         logger.error("exception occurred while performing AlarmsInformationServiceImpl listSortMasters. Details:" + e.getMessage());\r
277                         return Collections.emptyList();\r
278                 }\r
279         }\r
280 }\r