解决最近时间段显示为0问题,动作详情时间趋势转为后台运算时间分组
This commit is contained in:
@@ -70,13 +70,20 @@ public class DashboardServiceController extends BaseRestController {
|
|||||||
*/
|
*/
|
||||||
@RequestMapping(value = "ntcActionEntranceReport", method = RequestMethod.GET)
|
@RequestMapping(value = "ntcActionEntranceReport", method = RequestMethod.GET)
|
||||||
@ApiOperation(value = "根据不同动作统计总量汇聚", httpMethod = "GET", notes = "对应流量统计info滚动条动作类型详情数据显示")
|
@ApiOperation(value = "根据不同动作统计总量汇聚", httpMethod = "GET", notes = "对应流量统计info滚动条动作类型详情数据显示")
|
||||||
public Map<String,?> ntcTotalReport(Model model, HttpServletRequest request, HttpServletResponse response,String searchAction) {
|
public Map<String,?> ntcTotalReport(Model model, HttpServletRequest request, HttpServletResponse response,String searchAction,String beginDate,String endDate) {
|
||||||
|
|
||||||
long start = System.currentTimeMillis();
|
long start = System.currentTimeMillis();
|
||||||
AuditLogThread auditLogThread = super.saveRequestLog(servicesRequestLogService, Constants.OPACTION_GET, request, null);
|
AuditLogThread auditLogThread = super.saveRequestLog(servicesRequestLogService, Constants.OPACTION_GET, request, null);
|
||||||
List<HashMap> list = new ArrayList<HashMap>();
|
List<HashMap> list = new ArrayList<HashMap>();
|
||||||
try {
|
try {
|
||||||
List<HashMap> resultList = dashboardService.getActionTrans(searchAction);
|
if(StringUtils.isEmpty(beginDate)||StringUtils.isEmpty(endDate)) {
|
||||||
|
Calendar cal = Calendar. getInstance ();
|
||||||
|
cal.setTime(new Date());
|
||||||
|
endDate = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" ).format(cal.getTime());//获取到完整的时间
|
||||||
|
cal.set(Calendar.HOUR_OF_DAY, cal.get(Calendar.HOUR_OF_DAY) - 1);
|
||||||
|
beginDate = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" ).format(cal.getTime());
|
||||||
|
}
|
||||||
|
List<HashMap> resultList = dashboardService.getActionTrans(beginDate,endDate,searchAction);
|
||||||
if (resultList!=null&&resultList.size() > 0) {
|
if (resultList!=null&&resultList.size() > 0) {
|
||||||
list = resultList;
|
list = resultList;
|
||||||
}
|
}
|
||||||
@@ -206,12 +213,12 @@ public class DashboardServiceController extends BaseRestController {
|
|||||||
*/
|
*/
|
||||||
@RequestMapping(value="trafficProtocolList", method = RequestMethod.GET)
|
@RequestMapping(value="trafficProtocolList", method = RequestMethod.GET)
|
||||||
@ApiOperation(value = "协议统计占比与报表", httpMethod = "GET", notes = "对应协议统计详情占比与报表")
|
@ApiOperation(value = "协议统计占比与报表", httpMethod = "GET", notes = "对应协议统计详情占比与报表")
|
||||||
public Map<String,?> trafficProtocolList(String searchFoundStartTime,String searchFoundEndTime,Model model, HttpServletRequest request, HttpServletResponse response){
|
public Map<String,?> trafficProtocolList(String beginDate,String endDate,Model model, HttpServletRequest request, HttpServletResponse response){
|
||||||
long start = System.currentTimeMillis();
|
long start = System.currentTimeMillis();
|
||||||
AuditLogThread auditLogThread = super.saveRequestLog(servicesRequestLogService, Constants.OPACTION_GET, request, null);
|
AuditLogThread auditLogThread = super.saveRequestLog(servicesRequestLogService, Constants.OPACTION_GET, request, null);
|
||||||
List<HashMap> list = new ArrayList<HashMap>();
|
List<HashMap> list = new ArrayList<HashMap>();
|
||||||
try {
|
try {
|
||||||
List<Map> ipActiveList = dashboardService.getProtocolList(searchFoundStartTime,searchFoundEndTime);
|
List<Map> ipActiveList = dashboardService.getProtocolList(beginDate,endDate);
|
||||||
if (ipActiveList!=null&&ipActiveList.size() > 0) {
|
if (ipActiveList!=null&&ipActiveList.size() > 0) {
|
||||||
String jsonString = JsonMapper.toJsonString(ipActiveList);
|
String jsonString = JsonMapper.toJsonString(ipActiveList);
|
||||||
list = (java.util.List<HashMap>) JsonMapper.fromJsonList(jsonString,HashMap.class);
|
list = (java.util.List<HashMap>) JsonMapper.fromJsonList(jsonString,HashMap.class);
|
||||||
@@ -329,12 +336,12 @@ public class DashboardServiceController extends BaseRestController {
|
|||||||
*/
|
*/
|
||||||
@RequestMapping(value="trafficAppList", method = RequestMethod.GET)
|
@RequestMapping(value="trafficAppList", method = RequestMethod.GET)
|
||||||
@ApiOperation(value = "App统计占比与报表", httpMethod = "GET", notes = "对应App统计详情占比与报表")
|
@ApiOperation(value = "App统计占比与报表", httpMethod = "GET", notes = "对应App统计详情占比与报表")
|
||||||
public Map<String,?> trafficAppList(String searchFoundStartTime,String searchFoundEndTime,Model model, HttpServletRequest request, HttpServletResponse response){
|
public Map<String,?> trafficAppList(String beginDate,String endDate,Model model, HttpServletRequest request, HttpServletResponse response){
|
||||||
long start = System.currentTimeMillis();
|
long start = System.currentTimeMillis();
|
||||||
AuditLogThread auditLogThread = super.saveRequestLog(servicesRequestLogService, Constants.OPACTION_GET, request, null);
|
AuditLogThread auditLogThread = super.saveRequestLog(servicesRequestLogService, Constants.OPACTION_GET, request, null);
|
||||||
List<HashMap> list = new ArrayList<HashMap>();
|
List<HashMap> list = new ArrayList<HashMap>();
|
||||||
try {
|
try {
|
||||||
List<Map> appList = dashboardService.getAppList(searchFoundStartTime,searchFoundEndTime);
|
List<Map> appList = dashboardService.getAppList(beginDate,endDate);
|
||||||
if (appList!=null&&appList.size() > 0) {
|
if (appList!=null&&appList.size() > 0) {
|
||||||
String jsonString = JsonMapper.toJsonString(appList);
|
String jsonString = JsonMapper.toJsonString(appList);
|
||||||
list = (java.util.List<HashMap>) JsonMapper.fromJsonList(jsonString,HashMap.class);
|
list = (java.util.List<HashMap>) JsonMapper.fromJsonList(jsonString,HashMap.class);
|
||||||
|
|||||||
@@ -19,5 +19,5 @@ public interface NtcTotalReportDao {
|
|||||||
List<TrafficTransStatistic> getBandwidthTrans(@Param("entranceId") Integer entranceId,@Param("beginDate") String beginDate,@Param("endDate") String endDate,@Param("addrType") String addrType,@Param("transType") Integer transType);
|
List<TrafficTransStatistic> getBandwidthTrans(@Param("entranceId") Integer entranceId,@Param("beginDate") String beginDate,@Param("endDate") String endDate,@Param("addrType") String addrType,@Param("transType") Integer transType);
|
||||||
|
|
||||||
Map getEntranceMaxReportTime();
|
Map getEntranceMaxReportTime();
|
||||||
List<NtcEntranceReport> getActionTrans(@Param("reportTime") Date reportTime,@Param("entranceId") Integer entranceId,@Param("serviceSql") String serviceSql);
|
List<NtcEntranceReport> getActionTrans(@Param("beginDate") String beginDate,@Param("endDate") String endDate ,@Param("entranceId") Integer entranceId,@Param("serviceSql") String serviceSql);
|
||||||
}
|
}
|
||||||
@@ -89,7 +89,7 @@
|
|||||||
SELECT report_time reportTime FROM ntc_entrance_report order by report_time desc limit 1
|
SELECT report_time reportTime FROM ntc_entrance_report order by report_time desc limit 1
|
||||||
</select>
|
</select>
|
||||||
<!-- entrance 1,2 ,动作为阻断,近五分钟数据 -->
|
<!-- entrance 1,2 ,动作为阻断,近五分钟数据 -->
|
||||||
<select id="getActionTrans" resultType="com.nis.domain.restful.NtcEntranceReport">
|
<!-- <select id="getActionTrans" resultType="com.nis.domain.restful.NtcEntranceReport">
|
||||||
select IFNULL(p.sumNum,0) sum, date_format(a.min5,'%Y-%m-%d %H:%i') time from
|
select IFNULL(p.sumNum,0) sum, date_format(a.min5,'%Y-%m-%d %H:%i') time from
|
||||||
(select date_sub(#{reportTime},interval @mycnt :=@mycnt + 5 MINUTE) min5
|
(select date_sub(#{reportTime},interval @mycnt :=@mycnt + 5 MINUTE) min5
|
||||||
from (SELECT @mycnt:=-5) m, ntc_entrance_report limit 12) a
|
from (SELECT @mycnt:=-5) m, ntc_entrance_report limit 12) a
|
||||||
@@ -103,5 +103,12 @@
|
|||||||
) p
|
) p
|
||||||
on date_format(p.timestamp,'%Y-%m-%d %H:%i')=date_format(a.min5,'%Y-%m-%d %H:%i')
|
on date_format(p.timestamp,'%Y-%m-%d %H:%i')=date_format(a.min5,'%Y-%m-%d %H:%i')
|
||||||
ORDER by time
|
ORDER by time
|
||||||
|
</select> -->
|
||||||
|
<!-- entrance 1,2 ,动作为阻断,近一小时 间隔5分钟数据 -->
|
||||||
|
<select id="getActionTrans" resultType="com.nis.domain.restful.NtcEntranceReport">
|
||||||
|
select sum(sum) sum,report_time time from ntc_entrance_report r where
|
||||||
|
<![CDATA[${serviceSql} and report_time<=#{endDate} and report_time>=#{beginDate}]]>
|
||||||
|
and entrance_id=#{entranceId}
|
||||||
|
group by report_time order by report_time
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
@@ -169,16 +169,16 @@ public class DashboardService extends BaseService {
|
|||||||
Map<String, Comparable> m= new HashMap<String, Comparable>();
|
Map<String, Comparable> m= new HashMap<String, Comparable>();
|
||||||
int inter=1000*60*5;// 间隔时间为五分钟
|
int inter=1000*60*5;// 间隔时间为五分钟
|
||||||
// 开始时间,结束时间 时间戳
|
// 开始时间,结束时间 时间戳
|
||||||
Long b = dateToStamp(endDate);
|
Long b = dateToStamp(beginDate);
|
||||||
Long e = dateToStamp(beginDate);
|
Long e = dateToStamp(endDate);
|
||||||
int num=0;
|
int num=0;
|
||||||
Long pointTime=b;
|
Long pointTime=b;
|
||||||
while(pointTime>e){
|
while(pointTime<e){
|
||||||
Map rm=new HashMap();
|
Map rm=new HashMap();
|
||||||
Long sumL=0l;
|
Long sumL=0l;
|
||||||
Long sumP=0l;
|
Long sumP=0l;
|
||||||
Long sumG=0l;
|
Long sumG=0l;
|
||||||
if(pointTime<e){
|
if(pointTime>=e){
|
||||||
break; //停止
|
break; //停止
|
||||||
}
|
}
|
||||||
for (TrafficTransStatistic tt : bandwidthList) {
|
for (TrafficTransStatistic tt : bandwidthList) {
|
||||||
@@ -192,17 +192,29 @@ public class DashboardService extends BaseService {
|
|||||||
sumG=sumG+ tt.getGbps();
|
sumG=sumG+ tt.getGbps();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
timeList.add(stampToDate(pointTime));
|
// 在结束时间只有当值大于0时才记录数据,防止折线降为0引起误会
|
||||||
linkList.add(sumL);
|
if(pointTime>=e-inter&&sumL>0) {
|
||||||
gbpsList.add(sumG);
|
linkList.add(sumL);
|
||||||
ppsList.add(sumP);
|
}
|
||||||
|
if(pointTime>=e-inter&&sumP>0) {
|
||||||
|
ppsList.add(sumP);
|
||||||
|
}
|
||||||
|
if(pointTime>=e-inter&&sumG>0) {
|
||||||
|
gbpsList.add(sumG);
|
||||||
|
}
|
||||||
|
if(pointTime>=e-inter&&(sumL>0||sumG>0||sumP>0)) {
|
||||||
|
timeList.add(stampToDate(pointTime));
|
||||||
|
}
|
||||||
|
if(pointTime<e-inter) {
|
||||||
|
timeList.add(stampToDate(pointTime));
|
||||||
|
linkList.add(sumL);
|
||||||
|
gbpsList.add(sumG);
|
||||||
|
ppsList.add(sumP);
|
||||||
|
}
|
||||||
|
|
||||||
num=num+1;
|
num=num+1;
|
||||||
pointTime =b-inter*num;
|
pointTime =b+inter*num;
|
||||||
}
|
}
|
||||||
Collections.reverse(linkList);
|
|
||||||
Collections.reverse(gbpsList);
|
|
||||||
Collections.reverse(ppsList);
|
|
||||||
Collections.reverse(timeList);
|
|
||||||
resulMap.put("linkNum", linkList);
|
resulMap.put("linkNum", linkList);
|
||||||
resulMap.put("gbps", gbpsList);
|
resulMap.put("gbps", gbpsList);
|
||||||
resulMap.put("pps", ppsList);
|
resulMap.put("pps", ppsList);
|
||||||
@@ -227,10 +239,10 @@ public class DashboardService extends BaseService {
|
|||||||
Long e = dateToStamp(end);
|
Long e = dateToStamp(end);
|
||||||
int num=0;
|
int num=0;
|
||||||
Long pointTime=b;
|
Long pointTime=b;
|
||||||
while(pointTime>e){
|
while(pointTime<e){
|
||||||
Map rm=new HashMap();
|
Map rm=new HashMap();
|
||||||
Long sum=0l;
|
Long sum=0l;
|
||||||
if(pointTime<e){
|
if(pointTime>=e){
|
||||||
break; //停止
|
break; //停止
|
||||||
}
|
}
|
||||||
for (Map<?, ?> map : li) {
|
for (Map<?, ?> map : li) {
|
||||||
@@ -245,7 +257,7 @@ public class DashboardService extends BaseService {
|
|||||||
rm.put("time", stampToDate(pointTime));
|
rm.put("time", stampToDate(pointTime));
|
||||||
rm.put("sum", sum);
|
rm.put("sum", sum);
|
||||||
num=num+1;
|
num=num+1;
|
||||||
pointTime =b-inter*num;
|
pointTime =b+inter*num;
|
||||||
resList.add(rm);
|
resList.add(rm);
|
||||||
}
|
}
|
||||||
return resList;
|
return resList;
|
||||||
@@ -281,7 +293,7 @@ public class DashboardService extends BaseService {
|
|||||||
/**
|
/**
|
||||||
* 根据service 动作查询近五分钟变化趋势 entrance 默认为1,2
|
* 根据service 动作查询近五分钟变化趋势 entrance 默认为1,2
|
||||||
*/
|
*/
|
||||||
public List<HashMap> getActionTrans(String serviceType) {
|
public List<HashMap> getActionTrans(String begin,String end,String serviceType) {
|
||||||
String sql = "";
|
String sql = "";
|
||||||
String sqlBlock = "((service>=16 and service<=40) or (service>=258 and service<=273) or (service=576))"; // 阻断
|
String sqlBlock = "((service>=16 and service<=40) or (service>=258 and service<=273) or (service=576))"; // 阻断
|
||||||
String sqlMonitor = "((service>=128 and service<=152) or (service>=384 and service<=513) or (service=592) or (service>=848 and service<=1030) or (service=1152))"; // 监测
|
String sqlMonitor = "((service>=128 and service<=152) or (service>=384 and service<=513) or (service=592) or (service>=848 and service<=1030) or (service=1152))"; // 监测
|
||||||
@@ -297,36 +309,65 @@ public class DashboardService extends BaseService {
|
|||||||
ArrayList<HashMap> listMap = new ArrayList<HashMap>();
|
ArrayList<HashMap> listMap = new ArrayList<HashMap>();
|
||||||
List<NtcEntranceReport> entrance1 = new ArrayList<NtcEntranceReport>();
|
List<NtcEntranceReport> entrance1 = new ArrayList<NtcEntranceReport>();
|
||||||
List<NtcEntranceReport> entrance2 = new ArrayList<NtcEntranceReport>();
|
List<NtcEntranceReport> entrance2 = new ArrayList<NtcEntranceReport>();
|
||||||
Map maxReportTime = ntcTotalReportDao.getEntranceMaxReportTime();
|
|
||||||
if (maxReportTime != null && maxReportTime.get("reportTime") != null) {
|
|
||||||
Date reportTime = (Date) maxReportTime.get("reportTime");
|
|
||||||
HashMap m1 = new HashMap();
|
HashMap m1 = new HashMap();
|
||||||
HashMap m2 = new HashMap();
|
HashMap m2 = new HashMap();
|
||||||
entrance1 = ntcTotalReportDao.getActionTrans(reportTime, 1, sql);
|
entrance1 = ntcTotalReportDao.getActionTrans(begin,end, 1, sql);
|
||||||
entrance2 = ntcTotalReportDao.getActionTrans(reportTime, 2, sql);
|
entrance2 = ntcTotalReportDao.getActionTrans(begin,end, 2, sql);
|
||||||
List timeList = new ArrayList();
|
List timeList = new ArrayList();
|
||||||
List sumList1 = new ArrayList();
|
List sumList1 = new ArrayList();
|
||||||
List sumList2 = new ArrayList();
|
List sumList2 = new ArrayList();
|
||||||
// entrance 为1的趋势
|
|
||||||
if (entrance1 != null && entrance1.size() > 0) {
|
Map<String, Comparable> m= new HashMap<String, Comparable>();
|
||||||
for (NtcEntranceReport tt : entrance1) {
|
int inter=1000*60*5;// 间隔时间为五分钟
|
||||||
if (tt.getTime() != null && tt.getSum() != null) {
|
// 开始时间,结束时间 时间戳
|
||||||
timeList.add(tt.getTime());
|
Long b = dateToStamp(begin);
|
||||||
sumList1.add(tt.getSum());
|
Long e = dateToStamp(end);
|
||||||
|
int num=0;
|
||||||
|
Long pointTime=b;
|
||||||
|
while(pointTime<e){
|
||||||
|
Map rm=new HashMap();
|
||||||
|
Long sum1=0l;
|
||||||
|
Long sum2=0l;
|
||||||
|
if(pointTime>=e){
|
||||||
|
break; //停止
|
||||||
|
}
|
||||||
|
for (NtcEntranceReport e1 : entrance1) {
|
||||||
|
// 实际时间
|
||||||
|
String time= e1.getTime();
|
||||||
|
Long t = dateToStamp(time);
|
||||||
|
if(t>=pointTime&&t<pointTime+inter){
|
||||||
|
// 范围之内分到此pointTime组
|
||||||
|
sum1=sum1+ e1.getSum();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
for (NtcEntranceReport e2 : entrance2) {
|
||||||
// entrance 为2的趋势
|
// 实际时间
|
||||||
if (entrance2 != null && entrance2.size() > 0) {
|
String time= e2.getTime();
|
||||||
for (NtcEntranceReport tt : entrance2) {
|
Long t = dateToStamp(time);
|
||||||
if (tt.getTime() != null && tt.getSum() != null) {
|
if(t>=pointTime&&t<pointTime+inter){
|
||||||
// timeList.add(tt.getTime());
|
// 范围之内分到此pointTime组
|
||||||
sumList2.add(tt.getSum());
|
sum2=sum2+ e2.getSum();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 在结束时间只有当值大于0时才记录数据,防止折线降为0引起误会
|
||||||
|
if(pointTime>=e-inter&&sum1>0) {
|
||||||
|
sumList1.add(sum1);
|
||||||
|
}
|
||||||
|
if(pointTime>=e-inter&&sum2>0) {
|
||||||
|
sumList2.add(sum2);
|
||||||
|
}
|
||||||
|
if(pointTime>=e-inter&&(sum1>0||sum2>0)) {
|
||||||
|
timeList.add(stampToDate(pointTime));
|
||||||
|
}
|
||||||
|
if(pointTime<e-inter) {
|
||||||
|
sumList1.add(sum1);
|
||||||
|
sumList2.add(sum2);
|
||||||
|
timeList.add(stampToDate(pointTime));
|
||||||
|
}
|
||||||
|
num=num+1;
|
||||||
|
pointTime =b+inter*num;
|
||||||
}
|
}
|
||||||
m1.put("count", sumList1);// [{time:[],link:[],link2:[]}]
|
m1.put("count", sumList1);
|
||||||
m1.put("statTime", timeList);
|
m1.put("statTime", timeList);
|
||||||
m1.put("entranceId", 1);
|
m1.put("entranceId", 1);
|
||||||
m2.put("count", sumList2);// [{link1:[],time:[],entrance:"1"},]
|
m2.put("count", sumList2);// [{link1:[],time:[],entrance:"1"},]
|
||||||
@@ -334,7 +375,6 @@ public class DashboardService extends BaseService {
|
|||||||
m2.put("entranceId", 2);
|
m2.put("entranceId", 2);
|
||||||
listMap.add(m1);
|
listMap.add(m1);
|
||||||
listMap.add(m2);
|
listMap.add(m2);
|
||||||
}
|
|
||||||
return listMap;
|
return listMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user