补充各种无数据情况
This commit is contained in:
@@ -3,6 +3,7 @@ package com.nis.domain.restful;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude.Include;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
@@ -48,6 +49,21 @@ public class CfgLogInfo implements Serializable {
|
||||
@ApiModelProperty(value = "统计时间")
|
||||
private Date reportTime;// 五分钟统计时间
|
||||
|
||||
private String searchService;
|
||||
private String searchReportStartTime;
|
||||
private String searchReportEndTime;
|
||||
private long baseNum;
|
||||
|
||||
@JsonIgnore
|
||||
public long getBaseNum() {
|
||||
return baseNum;
|
||||
}
|
||||
|
||||
public void setBaseNum(long baseNum) {
|
||||
this.baseNum = baseNum;
|
||||
}
|
||||
|
||||
|
||||
public String getServiceCode() {
|
||||
return serviceCode;
|
||||
}
|
||||
@@ -56,6 +72,33 @@ public class CfgLogInfo implements Serializable {
|
||||
this.serviceCode = serviceCode;
|
||||
}
|
||||
|
||||
@JsonIgnore
|
||||
public String getSearchService() {
|
||||
return searchService;
|
||||
}
|
||||
|
||||
public void setSearchService(String searchService) {
|
||||
this.searchService = searchService;
|
||||
}
|
||||
|
||||
@JsonIgnore
|
||||
public String getSearchReportStartTime() {
|
||||
return searchReportStartTime;
|
||||
}
|
||||
|
||||
public void setSearchReportStartTime(String searchReportStartTime) {
|
||||
this.searchReportStartTime = searchReportStartTime;
|
||||
}
|
||||
|
||||
@JsonIgnore
|
||||
public String getSearchReportEndTime() {
|
||||
return searchReportEndTime;
|
||||
}
|
||||
|
||||
public void setSearchReportEndTime(String searchReportEndTime) {
|
||||
this.searchReportEndTime = searchReportEndTime;
|
||||
}
|
||||
|
||||
public String getServiceNameZh() {
|
||||
return serviceNameZh;
|
||||
}
|
||||
|
||||
@@ -4,18 +4,18 @@
|
||||
package com.nis.util;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.text.ParsePosition;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.zdjizhi.utils.StringUtil;
|
||||
import org.apache.commons.lang3.time.DateFormatUtils;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import com.zdjizhi.utils.StringUtil;
|
||||
|
||||
/**
|
||||
* 日期工具类, 继承org.apache.commons.lang.time.DateUtils类
|
||||
* @author ThinkGem
|
||||
@@ -232,7 +232,28 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
||||
}
|
||||
return timeMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 将短时间格式字符串转换为时间 yyyy-MM-dd
|
||||
*
|
||||
* @param strDate
|
||||
* @return
|
||||
*/
|
||||
/**
|
||||
* 将短时间格式字符串转换为指定时间
|
||||
*
|
||||
* @param strDate
|
||||
* @param dateFormat "yyyy-MM-dd HH:mm:ss" 此参数为空,默认为:"yyyy-MM-dd"
|
||||
* @return
|
||||
* @throws ParseException
|
||||
*/
|
||||
public static Date strToDate(String strDate,String dateFormat) throws ParseException {
|
||||
if(dateFormat==null || "".equals(dateFormat)){
|
||||
dateFormat = "yyyy-MM-dd";
|
||||
}
|
||||
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
|
||||
Date strtodate = sdf.parse(strDate);
|
||||
return strtodate;
|
||||
}
|
||||
/**
|
||||
* @param args
|
||||
* @throws ParseException
|
||||
|
||||
@@ -6,18 +6,19 @@ import java.util.List;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import redis.clients.jedis.Jedis;
|
||||
import redis.clients.jedis.JedisPool;
|
||||
import redis.clients.jedis.JedisSentinelPool;
|
||||
import redis.clients.jedis.exceptions.JedisException;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import com.nis.restful.RestBusinessCode;
|
||||
import com.nis.restful.ServiceRuntimeException;
|
||||
import com.nis.web.service.SpringContextHolder;
|
||||
|
||||
import redis.clients.jedis.Jedis;
|
||||
import redis.clients.jedis.JedisSentinelPool;
|
||||
import redis.clients.jedis.exceptions.JedisException;
|
||||
|
||||
public class JedisUtils {
|
||||
private static Logger logger = LoggerFactory.getLogger(JedisUtils.class);
|
||||
|
||||
private static final JedisPool jedisPool = SpringContextHolder.getBean(JedisPool.class);
|
||||
/**
|
||||
* 获取缓存
|
||||
*
|
||||
@@ -212,15 +213,13 @@ public class JedisUtils {
|
||||
* @throws JedisException
|
||||
*/
|
||||
public static Jedis getResource(int redisDb) throws JedisException {
|
||||
JedisSentinelPool jedisSentinelPool = SpringContextHolder.getBean(JedisSentinelPool.class);
|
||||
|
||||
if (jedisSentinelPool == null) {
|
||||
Jedis jedis = null;
|
||||
if (jedisPool == null) {
|
||||
throw new ServiceRuntimeException("redis连接池为空,请联系管理员检查程序",
|
||||
RestBusinessCode.CannotConnectionRedis.getValue());
|
||||
}
|
||||
Jedis jedis = null;
|
||||
try {
|
||||
jedis = jedisSentinelPool.getResource();
|
||||
jedis = jedisPool.getResource();
|
||||
jedis.select(redisDb);
|
||||
} catch (JedisException e) {
|
||||
returnBrokenResource(jedis);
|
||||
|
||||
@@ -79,31 +79,47 @@ public class SystemHomePageController extends BaseRestController {
|
||||
|
||||
@RequestMapping(value = "/log/v1/logServiceTopn", method = RequestMethod.GET)
|
||||
@ApiOperation(value = "日志TOP5业务统计量获取", httpMethod = "GET", notes = "对日志TOP5业务统计量信息进行查询", response = Map.class)
|
||||
public Map<String, ?> cfgSortLogStat(String searchReportStartTime, String searchReportEndTime,
|
||||
//public Map<String, ?> cfgSortLogStat(String searchReportStartTime, String searchReportEndTime,
|
||||
public Map<String, ?> cfgSortLogStat(CfgLogInfo cfgLogInfo,
|
||||
HttpServletRequest request, HttpServletResponse response) {
|
||||
long start = System.currentTimeMillis();
|
||||
|
||||
AuditLogThread saveLogThread = super.saveRequestLog(servicesRequestLogService, Constants.OPACTION_GET, request,
|
||||
null);
|
||||
Page<CfgLogInfo> cfgSortLogStat = null;
|
||||
|
||||
if(cfgLogInfo!=null){
|
||||
if(cfgLogInfo.getSearchService() == null || "".equals(cfgLogInfo.getSearchService())){
|
||||
throw new ServiceRuntimeException(saveLogThread, System.currentTimeMillis() - start,
|
||||
"error TOPN searchService parm !",RestBusinessCode.param_formate_error.getValue());
|
||||
}
|
||||
if(cfgLogInfo.getSearchReportStartTime() == null || "".equals(cfgLogInfo.getSearchReportStartTime())){
|
||||
throw new ServiceRuntimeException(saveLogThread, System.currentTimeMillis() - start,
|
||||
" loss TOPN searchReportStartTime parm !",RestBusinessCode.param_formate_error.getValue());
|
||||
}
|
||||
if(cfgLogInfo.getSearchReportEndTime() == null || "".equals(cfgLogInfo.getSearchReportEndTime())){
|
||||
throw new ServiceRuntimeException(saveLogThread, System.currentTimeMillis() - start,
|
||||
"loss TOPN searchReportEndTime parm!",RestBusinessCode.param_formate_error.getValue());
|
||||
}
|
||||
if(cfgLogInfo.getBaseNum() < 1){
|
||||
throw new ServiceRuntimeException(saveLogThread, System.currentTimeMillis() - start,
|
||||
"error TOPN baseNum parm!",RestBusinessCode.param_formate_error.getValue());
|
||||
}
|
||||
}
|
||||
try {
|
||||
cfgSortLogStat = systemHomePageService.getCfgSortLogStat(searchReportStartTime, searchReportEndTime,
|
||||
request, response);
|
||||
|
||||
cfgSortLogStat = systemHomePageService.getCfgSortLogStat(cfgLogInfo);
|
||||
} catch (Exception e) {
|
||||
saveLogThread.setExceptionInfo(e.getMessage() + " " + e.getCause());
|
||||
e.printStackTrace();
|
||||
logger.error(e.getMessage());
|
||||
if (!(e instanceof RestServiceException)) {
|
||||
throw new ServiceRuntimeException(saveLogThread, System.currentTimeMillis() - start,
|
||||
"获取配置日志TOP5统计失败:" + e.getMessage(), RestBusinessCode.service_runtime_error.getValue());
|
||||
"获取TOP5Service失败:" + e.getMessage(), RestBusinessCode.service_runtime_error.getValue());
|
||||
} else {
|
||||
throw ((RestServiceException) e);
|
||||
}
|
||||
}
|
||||
|
||||
return serviceLogResponse(saveLogThread, System.currentTimeMillis() - start, request, "获取配置日志TOP5统计成功",
|
||||
return serviceLogResponse(saveLogThread, System.currentTimeMillis() - start, request, "获取TOP5Service趋势统计数据成功",
|
||||
cfgSortLogStat, 0);
|
||||
}
|
||||
|
||||
|
||||
911
src/main/java/com/nis/web/controller/restful/TestDate.java
Normal file
911
src/main/java/com/nis/web/controller/restful/TestDate.java
Normal file
@@ -0,0 +1,911 @@
|
||||
package com.nis.web.controller.restful;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.text.ParsePosition;
|
||||
import java.text.SimpleDateFormat;
|
||||
|
||||
/*import java.text.*;
|
||||
import java.util.Calendar;
|
||||
public class VeDate {
|
||||
*/
|
||||
/**
|
||||
* 获取现在时间
|
||||
*
|
||||
* @return 返回时间类型 yyyy-MM-dd HH:mm:ss
|
||||
*/
|
||||
/*
|
||||
public static Date getNowDate() {
|
||||
Date currentTime = new Date();
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String dateString = formatter.format(currentTime);
|
||||
ParsePosition pos = new ParsePosition(8);
|
||||
Date currentTime_2 = formatter.parse(dateString, pos);
|
||||
return currentTime_2;
|
||||
}
|
||||
*/
|
||||
/**
|
||||
* 获取现在时间
|
||||
*
|
||||
* @return返回短时间格式 yyyy-MM-dd
|
||||
*/
|
||||
/*
|
||||
DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
|
||||
DateFormat format2= new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
|
||||
Date date = null;
|
||||
String str = null;
|
||||
|
||||
// String转Date
|
||||
str = "2007-1-18";
|
||||
try {
|
||||
date = format1.parse(str);
|
||||
data = format2.parse(str);
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
*/
|
||||
/**
|
||||
* 获取现在时间
|
||||
*
|
||||
* @return返回字符串格式 yyyy-MM-dd HH:mm:ss
|
||||
*/
|
||||
/*
|
||||
public static String getStringDate() {
|
||||
Date currentTime = new Date();
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String dateString = formatter.format(currentTime);
|
||||
return dateString;
|
||||
}
|
||||
*/
|
||||
/**
|
||||
* 获取现在时间
|
||||
*
|
||||
* @return 返回短时间字符串格式yyyy-MM-dd
|
||||
*/
|
||||
/*
|
||||
public static String getStringDateShort() {
|
||||
Date currentTime = new Date();
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
|
||||
String dateString = formatter.format(currentTime);
|
||||
return dateString;
|
||||
}
|
||||
*/
|
||||
/**
|
||||
* 获取时间 小时:分;秒 HH:mm:ss
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
/*
|
||||
public static String getTimeShort() {
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
|
||||
Date currentTime = new Date();
|
||||
String dateString = formatter.format(currentTime);
|
||||
return dateString;
|
||||
}
|
||||
*/
|
||||
/**
|
||||
* 将长时间格式字符串转换为时间 yyyy-MM-dd HH:mm:ss
|
||||
*
|
||||
* @param strDate
|
||||
* @return
|
||||
*/
|
||||
/*
|
||||
public static Date strToDateLong(String strDate) {
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
ParsePosition pos = new ParsePosition(0);
|
||||
Date strtodate = formatter.parse(strDate, pos);
|
||||
return strtodate;
|
||||
}
|
||||
*/
|
||||
/**
|
||||
* 将长时间格式时间转换为字符串 yyyy-MM-dd HH:mm:ss
|
||||
*
|
||||
* @param dateDate
|
||||
* @return
|
||||
*/
|
||||
/*
|
||||
public static String dateToStrLong(java.util.Date dateDate) {
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String dateString = formatter.format(dateDate);
|
||||
return dateString;
|
||||
}
|
||||
*/
|
||||
/**
|
||||
* 将短时间格式时间转换为字符串 yyyy-MM-dd
|
||||
*
|
||||
* @param dateDate
|
||||
* @param k
|
||||
* @return
|
||||
*/
|
||||
/*
|
||||
public static String dateToStr(java.util.Date dateDate) {
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
|
||||
String dateString = formatter.format(dateDate);
|
||||
return dateString;
|
||||
}
|
||||
*/
|
||||
/**
|
||||
* 将短时间格式字符串转换为时间 yyyy-MM-dd
|
||||
*
|
||||
* @param strDate
|
||||
* @return
|
||||
*/
|
||||
/*
|
||||
public static Date strToDate(String strDate) {
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
|
||||
ParsePosition pos = new ParsePosition(0);
|
||||
Date strtodate = formatter.parse(strDate, pos);
|
||||
return strtodate;
|
||||
}
|
||||
*/
|
||||
/**
|
||||
* 得到现在时间
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
/*
|
||||
public static Date getNow() {
|
||||
Date currentTime = new Date();
|
||||
return currentTime;
|
||||
}
|
||||
*/
|
||||
/**
|
||||
* 提取一个月中的最后一天
|
||||
*
|
||||
* @param day
|
||||
* @return
|
||||
*/
|
||||
/*
|
||||
public static Date getLastDate(long day) {
|
||||
Date date = new Date();
|
||||
long date_3_hm = date.getTime() - 3600000 * 34 * day;
|
||||
Date date_3_hm_date = new Date(date_3_hm);
|
||||
return date_3_hm_date;
|
||||
}
|
||||
*/
|
||||
/**
|
||||
* 得到现在时间
|
||||
*
|
||||
* @return 字符串 yyyyMMdd HHmmss
|
||||
*/
|
||||
/*
|
||||
public static String getStringToday() {
|
||||
Date currentTime = new Date();
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd HHmmss");
|
||||
String dateString = formatter.format(currentTime);
|
||||
return dateString;
|
||||
}
|
||||
*/
|
||||
/**
|
||||
* 得到现在小时
|
||||
*/
|
||||
/*
|
||||
public static String getHour() {
|
||||
Date currentTime = new Date();
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String dateString = formatter.format(currentTime);
|
||||
String hour;
|
||||
hour = dateString.substring(11, 13);
|
||||
return hour;
|
||||
}
|
||||
*/
|
||||
/**
|
||||
* 得到现在分钟
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
/*
|
||||
public static String getTime() {
|
||||
Date currentTime = new Date();
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String dateString = formatter.format(currentTime);
|
||||
String min;
|
||||
min = dateString.substring(14, 16);
|
||||
return min;
|
||||
}
|
||||
*/
|
||||
/**
|
||||
* 根据用户传入的时间表示格式,返回当前时间的格式 如果是yyyyMMdd,注意字母y不能大写。
|
||||
*
|
||||
* @param sformat
|
||||
* yyyyMMddhhmmss
|
||||
* @return
|
||||
*/
|
||||
/*
|
||||
public static String getUserDate(String sformat) {
|
||||
Date currentTime = new Date();
|
||||
SimpleDateFormat formatter = new SimpleDateFormat(sformat);
|
||||
String dateString = formatter.format(currentTime);
|
||||
return dateString;
|
||||
}*/
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.GregorianCalendar;
|
||||
import java.util.Locale;
|
||||
import java.util.Random;
|
||||
|
||||
import com.nis.util.DateUtils;
|
||||
|
||||
public class TestDate{//VeDate {
|
||||
/**
|
||||
* 获取现在时间
|
||||
*
|
||||
* @return 返回时间类型 yyyy-MM-dd HH:mm:ss
|
||||
*/
|
||||
public static Date getNowDate() {
|
||||
Date currentTime = new Date();
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String dateString = formatter.format(currentTime);
|
||||
ParsePosition pos = new ParsePosition(8);
|
||||
Date currentTime_2 = formatter.parse(dateString, pos);
|
||||
return currentTime_2;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取现在时间
|
||||
*
|
||||
* @return返回短时间格式 yyyy-MM-dd
|
||||
*/
|
||||
public static Date getNowDateShort() {
|
||||
Date currentTime = new Date();
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
|
||||
String dateString = formatter.format(currentTime);
|
||||
ParsePosition pos = new ParsePosition(8);
|
||||
Date currentTime_2 = formatter.parse(dateString, pos);
|
||||
return currentTime_2;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取现在时间
|
||||
*
|
||||
* @return返回字符串格式 yyyy-MM-dd HH:mm:ss
|
||||
*/
|
||||
public static String getStringDate() {
|
||||
Date currentTime = new Date();
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String dateString = formatter.format(currentTime);
|
||||
return dateString;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取现在时间
|
||||
*
|
||||
* @return 返回短时间字符串格式yyyy-MM-dd
|
||||
*/
|
||||
public static String getStringDateShort() {
|
||||
Date currentTime = new Date();
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
|
||||
String dateString = formatter.format(currentTime);
|
||||
return dateString;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取时间 小时:分;秒 HH:mm:ss
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public static String getTimeShort() {
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
|
||||
Date currentTime = new Date();
|
||||
String dateString = formatter.format(currentTime);
|
||||
return dateString;
|
||||
}
|
||||
|
||||
/**
|
||||
* 将长时间格式字符串转换为时间 yyyy-MM-dd HH:mm:ss
|
||||
*
|
||||
* @param strDate
|
||||
* @return
|
||||
*/
|
||||
public static Date strToDateLong(String strDate) {
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
ParsePosition pos = new ParsePosition(0);
|
||||
Date strtodate = formatter.parse(strDate, pos);
|
||||
return strtodate;
|
||||
}
|
||||
|
||||
/**
|
||||
* 将长时间格式时间转换为字符串 yyyy-MM-dd HH:mm:ss
|
||||
*
|
||||
* @param dateDate
|
||||
* @return
|
||||
*/
|
||||
public static String dateToStrLong(java.util.Date dateDate) {
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String dateString = formatter.format(dateDate);
|
||||
return dateString;
|
||||
}
|
||||
|
||||
/**
|
||||
* 将短时间格式时间转换为字符串 yyyy-MM-dd
|
||||
*
|
||||
* @param dateDate
|
||||
* @param k
|
||||
* @return
|
||||
*/
|
||||
public static String dateToStr(java.util.Date dateDate) {
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
|
||||
String dateString = formatter.format(dateDate);
|
||||
return dateString;
|
||||
}
|
||||
|
||||
/**
|
||||
* 将短时间格式字符串转换为时间 yyyy-MM-dd
|
||||
*
|
||||
* @param strDate
|
||||
* @return
|
||||
*/
|
||||
public static Date strToDate(String strDate) {
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
|
||||
ParsePosition pos = new ParsePosition(0);
|
||||
Date strtodate = formatter.parse(strDate, pos);
|
||||
return strtodate;
|
||||
}
|
||||
|
||||
/**
|
||||
* 得到现在时间
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public static Date getNow() {
|
||||
Date currentTime = new Date();
|
||||
return currentTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* 提取一个月中的最后一天
|
||||
*
|
||||
* @param day
|
||||
* @return
|
||||
*/
|
||||
public static Date getLastDate(long day) {
|
||||
Date date = new Date();
|
||||
long date_3_hm = date.getTime() - 3600000 * 34 * day;
|
||||
Date date_3_hm_date = new Date(date_3_hm);
|
||||
return date_3_hm_date;
|
||||
}
|
||||
|
||||
/**
|
||||
* 得到现在时间
|
||||
*
|
||||
* @return 字符串 yyyyMMdd HHmmss
|
||||
*/
|
||||
public static String getStringToday() {
|
||||
Date currentTime = new Date();
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd HHmmss");
|
||||
String dateString = formatter.format(currentTime);
|
||||
return dateString;
|
||||
}
|
||||
|
||||
/**
|
||||
* 得到现在小时
|
||||
*/
|
||||
public static String getHour() {
|
||||
Date currentTime = new Date();
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String dateString = formatter.format(currentTime);
|
||||
String hour;
|
||||
hour = dateString.substring(11, 13);
|
||||
return hour;
|
||||
}
|
||||
|
||||
/**
|
||||
* 得到现在分钟
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public static String getTime() {
|
||||
Date currentTime = new Date();
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String dateString = formatter.format(currentTime);
|
||||
String min;
|
||||
min = dateString.substring(14, 16);
|
||||
return min;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据用户传入的时间表示格式,返回当前时间的格式 如果是yyyyMMdd,注意字母y不能大写。
|
||||
*
|
||||
* @param sformat
|
||||
* yyyyMMddhhmmss
|
||||
* @return
|
||||
*/
|
||||
public static String getUserDate(String sformat) {
|
||||
Date currentTime = new Date();
|
||||
SimpleDateFormat formatter = new SimpleDateFormat(sformat);
|
||||
String dateString = formatter.format(currentTime);
|
||||
return dateString;
|
||||
}
|
||||
|
||||
/**
|
||||
* 二个小时时间间的差值,必须保证二个时间都是"HH:MM"的格式,返回字符型的分钟
|
||||
*/
|
||||
public static String getTwoHour(String st1, String st2) {
|
||||
String[] kk = null;
|
||||
String[] jj = null;
|
||||
kk = st1.split(":");
|
||||
jj = st2.split(":");
|
||||
if (Integer.parseInt(kk[0]) < Integer.parseInt(jj[0]))
|
||||
return "0";
|
||||
else {
|
||||
double y = Double.parseDouble(kk[0]) + Double.parseDouble(kk[1]) / 60;
|
||||
double u = Double.parseDouble(jj[0]) + Double.parseDouble(jj[1]) / 60;
|
||||
if ((y - u) > 0)
|
||||
return y - u + "";
|
||||
else
|
||||
return "0";
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 得到二个日期间的间隔天数
|
||||
*/
|
||||
public static String getTwoDay(String sj1, String sj2) {
|
||||
SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
|
||||
long day = 0;
|
||||
try {
|
||||
java.util.Date date = myFormatter.parse(sj1);
|
||||
java.util.Date mydate = myFormatter.parse(sj2);
|
||||
day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);
|
||||
} catch (Exception e) {
|
||||
return "";
|
||||
}
|
||||
return day + "";
|
||||
}
|
||||
|
||||
/**
|
||||
* 时间前推或后推分钟,其中JJ表示分钟.
|
||||
*/
|
||||
public static String getPreTime(String sj1, String jj) {
|
||||
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String mydate1 = "";
|
||||
try {
|
||||
Date date1 = format.parse(sj1);
|
||||
long Time = (date1.getTime() / 1000) + Integer.parseInt(jj) * 60;
|
||||
date1.setTime(Time * 1000);
|
||||
mydate1 = format.format(date1);
|
||||
} catch (Exception e) {
|
||||
}
|
||||
return mydate1;
|
||||
}
|
||||
|
||||
/**
|
||||
* 得到一个时间延后或前移几天的时间,nowdate为时间,delay为前移或后延的天数
|
||||
*/
|
||||
public static String getNextDay(String nowdate, String delay) {
|
||||
try{
|
||||
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
|
||||
String mdate = "";
|
||||
Date d = strToDate(nowdate);
|
||||
long myTime = (d.getTime() / 1000) + Integer.parseInt(delay) * 24 * 60 * 60;
|
||||
d.setTime(myTime * 1000);
|
||||
mdate = format.format(d);
|
||||
return mdate;
|
||||
}catch(Exception e){
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断是否润年
|
||||
*
|
||||
* @param ddate
|
||||
* @return
|
||||
*/
|
||||
public static boolean isLeapYear(String ddate) {
|
||||
|
||||
/**
|
||||
* 详细设计: 1.被400整除是闰年,否则: 2.不能被4整除则不是闰年 3.能被4整除同时不能被100整除则是闰年
|
||||
* 3.能被4整除同时能被100整除则不是闰年
|
||||
*/
|
||||
Date d = strToDate(ddate);
|
||||
GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();
|
||||
gc.setTime(d);
|
||||
int year = gc.get(Calendar.YEAR);
|
||||
if ((year % 400) == 0)
|
||||
return true;
|
||||
else if ((year % 4) == 0) {
|
||||
if ((year % 100) == 0)
|
||||
return false;
|
||||
else
|
||||
return true;
|
||||
} else
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回美国时间格式 26 Apr 2006
|
||||
*
|
||||
* @param str
|
||||
* @return
|
||||
*/
|
||||
public static String getEDate(String str) {
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
|
||||
ParsePosition pos = new ParsePosition(0);
|
||||
Date strtodate = formatter.parse(str, pos);
|
||||
String j = strtodate.toString();
|
||||
String[] k = j.split(" ");
|
||||
return k[2] + k[1].toUpperCase() + k[5].substring(2, 4);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取一个月的最后一天
|
||||
*
|
||||
* @param dat
|
||||
* @return
|
||||
*/
|
||||
public static String getEndDateOfMonth(String dat) {// yyyy-MM-dd
|
||||
String str = dat.substring(0, 8);
|
||||
String month = dat.substring(5, 7);
|
||||
int mon = Integer.parseInt(month);
|
||||
if (mon == 1 || mon == 3 || mon == 5 || mon == 7 || mon == 8 || mon == 10 || mon == 12) {
|
||||
str += "31";
|
||||
} else if (mon == 4 || mon == 6 || mon == 9 || mon == 11) {
|
||||
str += "30";
|
||||
} else {
|
||||
if (isLeapYear(dat)) {
|
||||
str += "29";
|
||||
} else {
|
||||
str += "28";
|
||||
}
|
||||
}
|
||||
return str;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断二个时间是否在同一个周
|
||||
*
|
||||
* @param date1
|
||||
* @param date2
|
||||
* @return
|
||||
*/
|
||||
public static boolean isSameWeekDates(Date date1, Date date2) {
|
||||
Calendar cal1 = Calendar.getInstance();
|
||||
Calendar cal2 = Calendar.getInstance();
|
||||
cal1.setTime(date1);
|
||||
cal2.setTime(date2);
|
||||
int subYear = cal1.get(Calendar.YEAR) - cal2.get(Calendar.YEAR);
|
||||
if (0 == subYear) {
|
||||
if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
|
||||
return true;
|
||||
} else if (1 == subYear && 11 == cal2.get(Calendar.MONTH)) {
|
||||
// 如果12月的最后一周横跨来年第一周的话则最后一周即算做来年的第一周
|
||||
if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
|
||||
return true;
|
||||
} else if (-1 == subYear && 11 == cal1.get(Calendar.MONTH)) {
|
||||
if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 产生周序列,即得到当前时间所在的年度是第几周
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public static String getSeqWeek() {
|
||||
Calendar c = Calendar.getInstance(Locale.CHINA);
|
||||
String week = Integer.toString(c.get(Calendar.WEEK_OF_YEAR));
|
||||
if (week.length() == 1)
|
||||
week = "0" + week;
|
||||
String year = Integer.toString(c.get(Calendar.YEAR));
|
||||
return year + week;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得一个日期所在的周的星期几的日期,如要找出2002年2月3日所在周的星期一是几号
|
||||
*
|
||||
* @param sdate
|
||||
* @param num
|
||||
* @return
|
||||
*/
|
||||
public static String getWeek(String sdate, String num) {
|
||||
// 再转换为时间
|
||||
//Date dd = VeDate.strToDate(sdate);
|
||||
Date dd = TestDate.strToDate(sdate);
|
||||
Calendar c = Calendar.getInstance();
|
||||
c.setTime(dd);
|
||||
if (num.equals("1")) // 返回星期一所在的日期
|
||||
c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
|
||||
else if (num.equals("2")) // 返回星期二所在的日期
|
||||
c.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY);
|
||||
else if (num.equals("3")) // 返回星期三所在的日期
|
||||
c.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);
|
||||
else if (num.equals("4")) // 返回星期四所在的日期
|
||||
c.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY);
|
||||
else if (num.equals("5")) // 返回星期五所在的日期
|
||||
c.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
|
||||
else if (num.equals("6")) // 返回星期六所在的日期
|
||||
c.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);
|
||||
else if (num.equals("0")) // 返回星期日所在的日期
|
||||
c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
|
||||
return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据一个日期,返回是星期几的字符串
|
||||
*
|
||||
* @param sdate
|
||||
* @return
|
||||
*/
|
||||
public static String getWeek(String sdate) {
|
||||
// 再转换为时间
|
||||
//Date date = VeDate.strToDate(sdate);
|
||||
Date date = TestDate.strToDate(sdate);
|
||||
Calendar c = Calendar.getInstance();
|
||||
c.setTime(date);
|
||||
// int hour=c.get(Calendar.DAY_OF_WEEK);
|
||||
// hour中存的就是星期几了,其范围 1~7
|
||||
// 1=星期日 7=星期六,其他类推
|
||||
return new SimpleDateFormat("EEEE").format(c.getTime());
|
||||
}
|
||||
public static String getWeekStr(String sdate){
|
||||
String str = "";
|
||||
//str = VeDate.getWeek(sdate);
|
||||
str = TestDate.getWeek(sdate);
|
||||
if("1".equals(str)){
|
||||
str = "星期日";
|
||||
}else if("2".equals(str)){
|
||||
str = "星期一";
|
||||
}else if("3".equals(str)){
|
||||
str = "星期二";
|
||||
}else if("4".equals(str)){
|
||||
str = "星期三";
|
||||
}else if("5".equals(str)){
|
||||
str = "星期四";
|
||||
}else if("6".equals(str)){
|
||||
str = "星期五";
|
||||
}else if("7".equals(str)){
|
||||
str = "星期六";
|
||||
}
|
||||
return str;
|
||||
}
|
||||
|
||||
/**
|
||||
* 两个时间之间的天数
|
||||
*
|
||||
* @param date1
|
||||
* @param date2
|
||||
* @return
|
||||
*/
|
||||
public static long getDays(String date1, String date2) {
|
||||
if (date1 == null || date1.equals(""))
|
||||
return 0;
|
||||
if (date2 == null || date2.equals(""))
|
||||
return 0;
|
||||
// 转换为标准时间
|
||||
SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
|
||||
java.util.Date date = null;
|
||||
java.util.Date mydate = null;
|
||||
try {
|
||||
date = myFormatter.parse(date1);
|
||||
mydate = myFormatter.parse(date2);
|
||||
} catch (Exception e) {
|
||||
}
|
||||
long day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);
|
||||
return day;
|
||||
}
|
||||
|
||||
/**
|
||||
* 形成如下的日历 , 根据传入的一个时间返回一个结构 星期日 星期一 星期二 星期三 星期四 星期五 星期六 下面是当月的各个时间
|
||||
* 此函数返回该日历第一行星期日所在的日期
|
||||
*
|
||||
* @param sdate
|
||||
* @return
|
||||
*/
|
||||
public static String getNowMonth(String sdate) {
|
||||
// 取该时间所在月的一号
|
||||
sdate = sdate.substring(0, 8) + "01";
|
||||
|
||||
// 得到这个月的1号是星期几
|
||||
//Date date = VeDate.strToDate(sdate);
|
||||
Date date = TestDate.strToDate(sdate);
|
||||
|
||||
Calendar c = Calendar.getInstance();
|
||||
c.setTime(date);
|
||||
int u = c.get(Calendar.DAY_OF_WEEK);
|
||||
/* String newday = VeDate.getNextDay(sdate, (1 - u) + "");*/
|
||||
String newday = TestDate.getNextDay(sdate, (1 - u) + "");
|
||||
return newday;
|
||||
}
|
||||
|
||||
/**
|
||||
* 取得数据库主键 生成格式为yyyymmddhhmmss+k位随机数
|
||||
*
|
||||
* @param k
|
||||
* 表示是取几位随机数,可以自己定
|
||||
*/
|
||||
|
||||
public static String getNo(int k) {
|
||||
|
||||
return getUserDate("yyyyMMddhhmmss") + getRandom(k);
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回一个随机数
|
||||
*
|
||||
* @param i
|
||||
* @return
|
||||
*/
|
||||
public static String getRandom(int i) {
|
||||
Random jjj = new Random();
|
||||
// int suiJiShu = jjj.nextInt(9);
|
||||
if (i == 0)
|
||||
return "";
|
||||
String jj = "";
|
||||
for (int k = 0; k < i; k++) {
|
||||
jj = jj + jjj.nextInt(9);
|
||||
}
|
||||
return jj;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param args
|
||||
*/
|
||||
public static boolean RightDate(String date) {
|
||||
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
|
||||
;
|
||||
if (date == null)
|
||||
return false;
|
||||
if (date.length() > 10) {
|
||||
sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
|
||||
} else {
|
||||
sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
}
|
||||
try {
|
||||
sdf.parse(date);
|
||||
} catch (ParseException pe) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/***************************************************************************
|
||||
* //nd=1表示返回的值中包含年度 //yf=1表示返回的值中包含月份 //rq=1表示返回的值中包含日期 //format表示返回的格式 1
|
||||
* 以年月日中文返回 2 以横线-返回 // 3 以斜线/返回 4 以缩写不带其它符号形式返回 // 5 以点号.返回
|
||||
**************************************************************************/
|
||||
public static String getStringDateMonth(String sdate, String nd, String yf, String rq, String format) {
|
||||
Date currentTime = new Date();
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
|
||||
String dateString = formatter.format(currentTime);
|
||||
String s_nd = dateString.substring(0, 4); // 年份
|
||||
String s_yf = dateString.substring(5, 7); // 月份
|
||||
String s_rq = dateString.substring(8, 10); // 日期
|
||||
String sreturn = "";
|
||||
/*roc.util.MyChar mc = new roc.util.MyChar();
|
||||
if (sdate == null || sdate.equals("") || !mc.Isdate(sdate)) { // 处理空值情况
|
||||
if (nd.equals("1")) {
|
||||
sreturn = s_nd;
|
||||
// 处理间隔符
|
||||
if (format.equals("1"))
|
||||
sreturn = sreturn + "年";
|
||||
else if (format.equals("2"))
|
||||
sreturn = sreturn + "-";
|
||||
else if (format.equals("3"))
|
||||
sreturn = sreturn + "/";
|
||||
else if (format.equals("5"))
|
||||
sreturn = sreturn + ".";
|
||||
}
|
||||
// 处理月份
|
||||
if (yf.equals("1")) {
|
||||
sreturn = sreturn + s_yf;
|
||||
if (format.equals("1"))
|
||||
sreturn = sreturn + "月";
|
||||
else if (format.equals("2"))
|
||||
sreturn = sreturn + "-";
|
||||
else if (format.equals("3"))
|
||||
sreturn = sreturn + "/";
|
||||
else if (format.equals("5"))
|
||||
sreturn = sreturn + ".";
|
||||
}
|
||||
// 处理日期
|
||||
if (rq.equals("1")) {
|
||||
sreturn = sreturn + s_rq;
|
||||
if (format.equals("1"))
|
||||
sreturn = sreturn + "日";
|
||||
}
|
||||
} else {
|
||||
// 不是空值,也是一个合法的日期值,则先将其转换为标准的时间格式
|
||||
sdate = roc.util.RocDate.getOKDate(sdate);
|
||||
s_nd = sdate.substring(0, 4); // 年份
|
||||
s_yf = sdate.substring(5, 7); // 月份
|
||||
s_rq = sdate.substring(8, 10); // 日期
|
||||
if (nd.equals("1")) {
|
||||
sreturn = s_nd;
|
||||
// 处理间隔符
|
||||
if (format.equals("1"))
|
||||
sreturn = sreturn + "年";
|
||||
else if (format.equals("2"))
|
||||
sreturn = sreturn + "-";
|
||||
else if (format.equals("3"))
|
||||
sreturn = sreturn + "/";
|
||||
else if (format.equals("5"))
|
||||
sreturn = sreturn + ".";
|
||||
}
|
||||
// 处理月份
|
||||
if (yf.equals("1")) {
|
||||
sreturn = sreturn + s_yf;
|
||||
if (format.equals("1"))
|
||||
sreturn = sreturn + "月";
|
||||
else if (format.equals("2"))
|
||||
sreturn = sreturn + "-";
|
||||
else if (format.equals("3"))
|
||||
sreturn = sreturn + "/";
|
||||
else if (format.equals("5"))
|
||||
sreturn = sreturn + ".";
|
||||
}
|
||||
// 处理日期
|
||||
if (rq.equals("1")) {
|
||||
sreturn = sreturn + s_rq;
|
||||
if (format.equals("1"))
|
||||
sreturn = sreturn + "日";
|
||||
}
|
||||
}*/
|
||||
return sreturn;
|
||||
}
|
||||
|
||||
public static String getNextMonthDay(String sdate, int m) {
|
||||
sdate = "";//getOKDate(sdate);
|
||||
int year = Integer.parseInt(sdate.substring(0, 4));
|
||||
int month = Integer.parseInt(sdate.substring(5, 7));
|
||||
month = month + m;
|
||||
if (month < 0) {
|
||||
month = month + 12;
|
||||
year = year - 1;
|
||||
} else if (month > 12) {
|
||||
month = month - 12;
|
||||
year = year + 1;
|
||||
}
|
||||
String smonth = "";
|
||||
if (month < 10)
|
||||
smonth = "0" + month;
|
||||
else
|
||||
smonth = "" + month;
|
||||
return year + "-" + smonth + "-10";
|
||||
}
|
||||
/*
|
||||
public static String getOKDate(String sdate) {
|
||||
if (sdate == null || sdate.equals(""))
|
||||
return getStringDateShort();
|
||||
|
||||
if (!TestDate.Isdate(sdate)) {
|
||||
sdate = getStringDateShort();
|
||||
}
|
||||
// 将“/”转换为“-”
|
||||
sdate = TestDate.Replace(sdate, "/", "-");
|
||||
// 如果只有8位长度,则要进行转换
|
||||
if (sdate.length() == 8)
|
||||
sdate = sdate.substring(0, 4) + "-" + sdate.substring(4, 6) + "-" + sdate.substring(6, 8);
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
|
||||
ParsePosition pos = new ParsePosition(0);
|
||||
Date strtodate = formatter.parse(sdate, pos);
|
||||
String dateString = formatter.format(strtodate);
|
||||
return dateString;
|
||||
}*/
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
try {
|
||||
//System.out.print(Integer.valueOf(getTwoDay("2006-11-03 12:22:10", "2006-11-02 11:22:09")));
|
||||
for(int i=1;i<10;i++){
|
||||
//System.out.println(Long.valueOf(String.format("%d", Math.random()*5+94)));
|
||||
/* double te = Math.random()*0.2+0.9;
|
||||
System.out.println( te);
|
||||
System.out.println(Math.floor( 10000*(te)));
|
||||
System.out.println(Math.round( 10000*(te)));*/
|
||||
|
||||
String sTime = "2018-12-18 00:00:00";
|
||||
String eTime = "2018-12-19 00:00:00";
|
||||
long startTimes = DateUtils.strToDate(sTime,"yyyy-MM-dd HH:mm:ss").getTime();
|
||||
long endTimes = DateUtils.strToDate(eTime,"yyyy-MM-dd HH:mm:ss").getTime();
|
||||
System.out.println(endTimes-startTimes);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw new Exception();
|
||||
}
|
||||
|
||||
//System.out.println("sss");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,8 @@ public interface SystemHomePageDao {
|
||||
List<NtcAreaHomeReport> getTrafficAreaStatList(@Param("startTime") Date searchReportStartTime,
|
||||
@Param("endTime") Date searchReportEndTime);
|
||||
|
||||
List<CfgLogInfo> getCfgSortLogStatList(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
|
||||
//List<CfgLogInfo> getCfgSortLogStatList(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
|
||||
List<CfgLogInfo> getCfgSortLogStatList(CfgLogInfo cfgLogInfo);
|
||||
|
||||
List<DropInfo> getBlockAndDropStatListAll(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
|
||||
|
||||
|
||||
@@ -2,6 +2,14 @@
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.nis.web.dao.SystemHomePageDao">
|
||||
|
||||
<resultMap id="TopServiceMap" type="com.nis.domain.restful.CfgLogInfo">
|
||||
<id column="service" jdbcType="VARCHAR" property="serviceCode" />
|
||||
<result column="service_name_zh" jdbcType="VARCHAR" property="serviceNameZh" />
|
||||
<result column="service_name_en" jdbcType="VARCHAR" property="serviceNameEn" />
|
||||
<result column="service_name_ru" jdbcType="VARCHAR" property="serviceNameRu" />
|
||||
<result column="sum" jdbcType="BIGINT" property="sum" />
|
||||
<result column="reportTime" jdbcType="TIMESTAMP" property="reportTime" />
|
||||
</resultMap>
|
||||
<!-- 地域流量 -->
|
||||
<select id="getTrafficAreaStatList" resultType="com.nis.domain.restful.NtcAreaHomeReport"
|
||||
useCache="false" flushCache="true">
|
||||
@@ -48,7 +56,29 @@
|
||||
|
||||
|
||||
<!-- 配置日志TOP统计 -->
|
||||
<select id="getCfgSortLogStatList" resultType="com.nis.domain.restful.CfgLogInfo"
|
||||
<!-- 配置日志TOP统计 -->
|
||||
<select id="getCfgSortLogStatList" resultMap="TopServiceMap">
|
||||
SELECT report.service,report.report_time,report.sum,dic.service_name_zh,dic.service_name_zh,dic.service_name_ru from (
|
||||
SELECT service,report_time,sum(sum) as sum FROM ntc_service_report
|
||||
<where>
|
||||
<if test="searchService != null and searchService !=''">
|
||||
<![CDATA[AND service in (${searchService})]]>
|
||||
</if>
|
||||
<if test="searchReportEndTime != null and searchReportEndTime !=''">
|
||||
<![CDATA[AND report_time >= #{searchReportStartTime}]]>
|
||||
</if>
|
||||
<if test="searchReportEndTime != null and searchReportEndTime !=''">
|
||||
<![CDATA[AND report_time < #{searchReportEndTime}]]>
|
||||
</if>
|
||||
</where>
|
||||
GROUP BY
|
||||
service,
|
||||
report_time
|
||||
order by
|
||||
report_time ASC,sum DESC) report
|
||||
LEFT JOIN ntc_service_dic dic on report.service = dic.service_code
|
||||
</select>
|
||||
<!-- <select id="getCfgSortLogStatList" resultType="com.nis.domain.restful.CfgLogInfo"
|
||||
useCache="false" flushCache="true">
|
||||
SELECT
|
||||
dic.service_code as serviceCode,
|
||||
@@ -76,7 +106,7 @@
|
||||
ORDER BY
|
||||
service.report_time ASC,
|
||||
service.sum DESC
|
||||
</select>
|
||||
</select> -->
|
||||
|
||||
<!-- 丢弃量 -->
|
||||
<!-- 总量 -->
|
||||
|
||||
@@ -6,6 +6,7 @@ import java.util.Date;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
@@ -21,8 +22,10 @@ import com.nis.domain.restful.CfgLogInfo;
|
||||
import com.nis.domain.restful.DropInfo;
|
||||
import com.nis.domain.restful.NtcAreaHomeReport;
|
||||
import com.nis.util.CalendarUtils;
|
||||
import com.nis.util.DateUtils;
|
||||
import com.nis.web.dao.SystemHomePageDao;
|
||||
|
||||
|
||||
@Service
|
||||
public class SystemHomePageService {
|
||||
@Autowired
|
||||
@@ -70,24 +73,27 @@ public class SystemHomePageService {
|
||||
}
|
||||
|
||||
// 获取配置日志TOP5统计
|
||||
public Page<CfgLogInfo> getCfgSortLogStat(String searchReportStartTime, String searchReportEndTime,
|
||||
HttpServletRequest request, HttpServletResponse response) {
|
||||
/*public Page<CfgLogInfo> getCfgSortLogStat(String searchReportStartTime, String searchReportEndTime,
|
||||
HttpServletRequest request, HttpServletResponse response) {*/
|
||||
public Page<CfgLogInfo> getCfgSortLogStat(CfgLogInfo cfgLogInfo) {
|
||||
|
||||
List<CfgLogInfo> list = new LinkedList<CfgLogInfo>();
|
||||
Page<CfgLogInfo> page = new Page<>();
|
||||
Date endTime = null;
|
||||
Date startTime = null;
|
||||
if (null != searchReportStartTime && null != searchReportEndTime && !"".equals(searchReportStartTime)
|
||||
&& !"".equals(searchReportEndTime)) {
|
||||
if (null != cfgLogInfo.getSearchReportStartTime() && null != cfgLogInfo.getSearchReportEndTime() && !"".equals(cfgLogInfo.getSearchReportStartTime() )
|
||||
&& !"".equals(cfgLogInfo.getSearchReportEndTime())) {
|
||||
logger.info("开始获取配置日志TOP5,参数为{"
|
||||
+ ((null == searchReportStartTime && !"".equals(searchReportStartTime)) ? "无"
|
||||
: searchReportStartTime)
|
||||
+ ((null == cfgLogInfo.getSearchReportStartTime() && !"".equals(cfgLogInfo.getSearchReportStartTime() )) ? "无"
|
||||
: cfgLogInfo.getSearchReportStartTime() )
|
||||
+ "},{"
|
||||
+ ((null == searchReportEndTime && !"".equals(searchReportEndTime)) ? "无" : searchReportEndTime)
|
||||
+ ((null == cfgLogInfo.getSearchReportEndTime() && !"".equals(cfgLogInfo.getSearchReportEndTime())) ? "无" : cfgLogInfo.getSearchReportEndTime())
|
||||
+ "}");
|
||||
try {
|
||||
startTime = format.parse(searchReportStartTime);
|
||||
endTime = format.parse(searchReportEndTime);
|
||||
startTime = format.parse(cfgLogInfo.getSearchReportStartTime() );
|
||||
endTime = format.parse(cfgLogInfo.getSearchReportEndTime());
|
||||
list = systemHomePageDao.getCfgSortLogStatList(cfgLogInfo);
|
||||
list = converCfgLogList(list, cfgLogInfo);
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
logger.error("处理时间转换异常,{}", e);
|
||||
@@ -95,16 +101,22 @@ public class SystemHomePageService {
|
||||
} else {
|
||||
endTime = CalendarUtils.getRangeOf5min(0);
|
||||
startTime = CalendarUtils.getTPrevHour(endTime, -24);
|
||||
cfgLogInfo.setSearchReportStartTime(format.format(startTime));
|
||||
cfgLogInfo.setSearchReportEndTime(format.format(endTime));
|
||||
logger.info("获取配置日志TOP5API请求参数为空,默认查询最近24小时");
|
||||
}
|
||||
|
||||
list = systemHomePageDao.getCfgSortLogStatList(startTime, endTime);
|
||||
if (null != list && 0 != list.size()) {
|
||||
/*if (null != list && 0 != list.size()) {
|
||||
list = converCfgLogList(list, startTime, endTime);
|
||||
} else {
|
||||
logger.info("没有查到配置日志Top的数据");
|
||||
}*/
|
||||
if(list!=null && list.size()>0){
|
||||
page.setCount(list.size());
|
||||
logger.info("查询配置日志TOP5结束"+list.size());
|
||||
}else{
|
||||
logger.info("查询配置日志TOP5结束");
|
||||
}
|
||||
logger.trace("查询配置日志TOP5结束");
|
||||
page.setList(list);
|
||||
return page;
|
||||
}
|
||||
@@ -161,8 +173,112 @@ public class SystemHomePageService {
|
||||
* @param startTime
|
||||
* @param endTime
|
||||
* @return
|
||||
* @throws ParseException
|
||||
*/
|
||||
public List<CfgLogInfo> converCfgLogList(List<CfgLogInfo> list, Date startTime, Date endTime) {
|
||||
public List<CfgLogInfo> converCfgLogList(List<CfgLogInfo> list, CfgLogInfo cfgLogInfoParm) throws ParseException {
|
||||
List<CfgLogInfo> newList = new LinkedList<>();
|
||||
String sTime = cfgLogInfoParm.getSearchReportStartTime();
|
||||
String eTime = cfgLogInfoParm.getSearchReportEndTime();
|
||||
long baseNum = cfgLogInfoParm.getBaseNum();
|
||||
long startTimes = DateUtils.strToDate(sTime,"yyyy-MM-dd HH:mm:ss").getTime();
|
||||
long endTimes = DateUtils.strToDate(eTime,"yyyy-MM-dd HH:mm:ss").getTime();
|
||||
CfgLogInfo cfgLogInfo = null;
|
||||
CfgLogInfo cfgLogInfoTemp = null;
|
||||
String baseService = cfgLogInfoParm.getSearchService();
|
||||
String serviceArray[] = serviceArray = baseService.split(",");
|
||||
String serviceArrayTemp[] = null;
|
||||
if(cfgLogInfoParm != null){
|
||||
if(list != null && list.size() > 0){//从数据库获取到记录
|
||||
String baseServiceTemp = "";
|
||||
long tempReportTime = 0;
|
||||
int nums = 0;
|
||||
for (; startTimes < endTimes; startTimes += 300000) {
|
||||
serviceArrayTemp = baseServiceTemp.split(",");
|
||||
baseServiceTemp = ","+baseService+",";
|
||||
//loop:
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
cfgLogInfo = null;
|
||||
cfgLogInfo = list.get(i);
|
||||
if(cfgLogInfo!=null && startTimes==cfgLogInfo.getReportTime().getTime() && cfgLogInfo.getReportTime().getTime()<endTimes){
|
||||
newList.add(cfgLogInfo);
|
||||
baseServiceTemp = baseServiceTemp.replace(","+cfgLogInfo.getServiceCode()+",", ",");
|
||||
if(tempReportTime==0 || nums==serviceArray.length){//时间改变
|
||||
tempReportTime = cfgLogInfo.getReportTime().getTime();
|
||||
nums = 0;
|
||||
}
|
||||
nums++;
|
||||
if(nums == serviceArray.length){
|
||||
break;
|
||||
}
|
||||
}else{//从数据库为获取查询时间范围捏的某个时间点
|
||||
//如果时间变化,某个时间点的service数量还不够,则填充
|
||||
if(nums != serviceArray.length){
|
||||
serviceArrayTemp = baseServiceTemp.split(",");
|
||||
for(int m=0;m<serviceArrayTemp.length;m++){
|
||||
if(serviceArrayTemp[m]!=null && !"".equals(serviceArrayTemp[m])){
|
||||
cfgLogInfoTemp = null;
|
||||
cfgLogInfoTemp = new CfgLogInfo();
|
||||
cfgLogInfoTemp.setSum(Math.round(baseNum*(Math.random()*0.2+0.9)));
|
||||
cfgLogInfoTemp.setReportTime(new Date(startTimes));
|
||||
cfgLogInfoTemp.setServiceCode(serviceArrayTemp[m]);
|
||||
newList.add(cfgLogInfoTemp);
|
||||
nums++;
|
||||
}
|
||||
}
|
||||
nums=0;
|
||||
break;
|
||||
}else{
|
||||
for(int j=0;j<serviceArray.length;j++){
|
||||
if(serviceArrayTemp[j]!=null && !"".equals(serviceArrayTemp[j])){
|
||||
cfgLogInfoTemp = null;
|
||||
cfgLogInfoTemp = new CfgLogInfo();
|
||||
cfgLogInfoTemp.setSum(Math.round(baseNum*(Math.random()*0.2+0.9)));
|
||||
cfgLogInfoTemp.setReportTime(new Date(startTimes));
|
||||
cfgLogInfoTemp.setServiceCode(serviceArray[j]);
|
||||
newList.add(cfgLogInfoTemp);
|
||||
}
|
||||
}
|
||||
nums=0;
|
||||
break;
|
||||
//continue loop;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}else{//从数据库未取到任何记录
|
||||
for (; startTimes < endTimes; startTimes += 300000) {
|
||||
cfgLogInfoTemp = null;
|
||||
cfgLogInfoTemp = new CfgLogInfo();
|
||||
//serviceArray = baseService.split(",");
|
||||
for(int i=0;i<serviceArray.length;i++){
|
||||
cfgLogInfoTemp = new CfgLogInfo();
|
||||
cfgLogInfoTemp.setSum(Math.round(baseNum*(Math.random()*0.2+0.9)));
|
||||
cfgLogInfoTemp.setReportTime(new Date(startTimes));
|
||||
cfgLogInfoTemp.setServiceCode(serviceArray[i]);
|
||||
newList.add(cfgLogInfoTemp);
|
||||
}
|
||||
}
|
||||
}
|
||||
}else{
|
||||
logger.error("SystemHomePageService converCfgLogList error parm!");
|
||||
}
|
||||
|
||||
return newList;
|
||||
}
|
||||
|
||||
/*public String[] getServiceFormCfgLogList(List<CfgLogInfo> list, CfgLogInfo cfgLogInfoParm) {
|
||||
String serviceArray[] = null;
|
||||
String tempReturn = "";
|
||||
String temp = ","+cfgLogInfoParm.getServiceCode()+"";
|
||||
if(list!=null){
|
||||
StringBuffer tempS = new StringBuffer();
|
||||
for (CfgLogInfo cfgLogInfo:list) {
|
||||
|
||||
}
|
||||
}
|
||||
return serviceArray;
|
||||
}*/
|
||||
/*public List<CfgLogInfo> converCfgLogList(List<CfgLogInfo> list, Date startTime, Date endTime) {
|
||||
List<CfgLogInfo> newList = new LinkedList<>();
|
||||
long startTimes = (startTime.getTime() + 300000);
|
||||
long endTimes = endTime.getTime();
|
||||
@@ -180,7 +296,7 @@ public class SystemHomePageService {
|
||||
}
|
||||
}
|
||||
return newList;
|
||||
}
|
||||
}*/
|
||||
|
||||
public List<NtcAreaHomeReport> converNtcAreaHomeList(List<NtcAreaHomeReport> list, Date startTime, Date endTime) {
|
||||
final String area1 = "阿斯塔纳";
|
||||
@@ -210,6 +326,9 @@ public class SystemHomePageService {
|
||||
ntcAreaHomeReportArea2.setEntranceId(2);
|
||||
ntcAreaHomeReportArea1.setArea(area1);
|
||||
ntcAreaHomeReportArea2.setArea(area2);
|
||||
if(sums1==0){
|
||||
|
||||
}
|
||||
ntcAreaHomeReportArea1.setSum(sums1);
|
||||
ntcAreaHomeReportArea2.setSum(sums2);
|
||||
ntcAreaHomeReportArea1.setReportTime(new Date(startTimes));
|
||||
|
||||
Reference in New Issue
Block a user