修复bug:

1.区域阻断范围字段导出数据与界面上显示不一致,界面上显示全部、导出的excel字段显示为否
2.界面上存在日志总量字段,导出的数据中不存在
3.导出数据包含字段blacklist option,界面上不存在
This commit is contained in:
wangwenrui
2019-01-14 10:52:06 +08:00
parent 3fb8d8c6f2
commit e7c7a4b960
17 changed files with 692 additions and 18 deletions

View File

@@ -118,6 +118,7 @@ import com.nis.domain.maat.MaatCfg.GroupCfg;
import com.nis.domain.maat.MaatCfg.IpCfg;
import com.nis.domain.maat.MaatCfg.NumBoundaryCfg;
import com.nis.domain.maat.MaatCfg.StringCfg;
import com.nis.domain.report.NtcPzReport;
import com.nis.domain.maat.ToMaatBean;
import com.nis.domain.specific.ConfigGroupInfo;
import com.nis.domain.specific.SpecificServiceCfg;
@@ -197,6 +198,9 @@ import com.nis.web.service.specific.SpecificServiceHostCfgService;
import com.nis.web.service.systemService.ServiceConfigInfoService;
import jersey.repackaged.com.google.common.collect.Maps;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
public class BaseController {
@@ -3264,5 +3268,91 @@ public class BaseController {
return hasData;
}
/**
* 通过serviceIds 和 compileIds获取日志总量
* */
public List<Map<String, Object>> getLogTotal(Long endTime,String serviceIds,String compileIds){
List<Map<String, Object>> dataList=new ArrayList<>();
SimpleDateFormat sdf=new SimpleDateFormat(Constants.SEARCH_DATEFORMAT);
Date endDate=null;
Date startDate=null;
if(endTime!=null) {
if(StringUtils.isNotBlank(Constants.LOG_TIME_START)) {
try {
startDate=sdf.parse(Constants.LOG_TIME_START);
if(StringUtils.isNotBlank(Constants.LOG_TIME_END)) {
endDate=sdf.parse(Constants.LOG_TIME_END);
}else {
endDate=new Date(endTime);
}
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else {
Calendar cal=Calendar.getInstance();
//分钟间隔
int interval=Constants.LOG_TIME_RANGE/1000/60;
cal.setTimeInMillis(endTime);
if(interval<60) {//5分钟
cal.set(Calendar.SECOND, 0);
int minute=cal.get(Calendar.MINUTE);
cal.set(Calendar.MINUTE,minute/interval*interval);
}else {//1小时
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MINUTE, 0);
}
Calendar endTimeCal=Calendar.getInstance();
endTimeCal.setTimeInMillis(cal.getTimeInMillis());
//endTimeCal.add(Calendar.SECOND, -1);
endDate=endTimeCal.getTime();
cal.add(Calendar.MINUTE, -interval);
startDate=cal.getTime();
}
logger.info("log search end time:"+sdf.format(endDate));
logger.info("log search start time:"+sdf.format(startDate));
}
List<NtcPzReport> list=null;
try {
//调用带有超时时间的方法设置与页面ajax获取total log 超时时间保持一致 页面设置在pzlog.js
String json=ConfigServiceUtil.getReport(Constants.BUSINESSTYPE_CONFIG, compileIds, serviceIds, startDate==null?null:sdf.format(startDate), endDate==null?null:sdf.format(endDate),Constants.CLIENT_CONNECT_TIMEOUT,10000);
list=getList(json);
} catch (Exception e) {
logger.error("获取日志总量失败!",e);
}
String[] idArr=compileIds.split(",");
for(String id:idArr) {
Map<String, Object> data=new HashMap<String, Object>();
data.put("compileId", id);
Long sum=(long) 0;
if(list!=null&&(list.size()>0)){
for(NtcPzReport report:list) {
if(Long.valueOf(id).longValue() == report.getCfgId().longValue()){
sum=report.getSum().longValue();
break;
}
}
}
data.put("sum",sum);
dataList.add(data);
}
return dataList;
}
public <E> List<E> getList(String json){
JSONObject obj=JSONObject.fromObject(json);
if(obj.containsKey("data")) {
JSONObject data= obj.getJSONObject("data");
if(data.containsKey("list")) {
Object list=data.get("list");
JSONArray array=JSONArray.fromObject(list);
List<E> result=JSONArray.toList(array, new NtcPzReport(),new JsonConfig());
return result;
}
}
return new ArrayList<E>();
}
}