(1)境内源IP报表加入对界面时间字段的处理

(2)时间字段的处理放到baseController中
(3)界面ajax函数缩减为1个公用的函数
This commit is contained in:
wangxin
2018-07-10 13:33:28 +08:00
parent 86fa5f0000
commit 0e05e2a0e4
6 changed files with 255 additions and 142 deletions

View File

@@ -1,7 +1,10 @@
package com.nis.web.controller;
import java.beans.PropertyEditorSupport;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@@ -45,6 +48,7 @@ import com.nis.exceptions.MaatConvertException;
import com.nis.util.Configurations;
//import com.nis.main.ConvertTool;
import com.nis.util.Constants;
import com.nis.util.DateUtil;
import com.nis.util.DateUtils;
import com.nis.util.DictUtils;
import com.nis.util.JsonMapper;
@@ -1001,5 +1005,114 @@ public class BaseController {
}
return msg.toString();
}
/**
*
* setReportSearchTime(报表查询设置开始时间与结束时间)
* (这里描述这个方法适用条件 可选)
* @param bean
* @throws ParseException
*void
* @exception
* @since 1.0.0
*/
public void setReportSearchTime(SearchReport bean) throws ParseException{
SimpleDateFormat sdf=new SimpleDateFormat(Constants.SEARCH_DATEFORMAT);
String reportTime=bean.getReportTime();
if(StringUtils.isNotBlank(reportTime)){
Calendar startCal=Calendar.getInstance();
startCal.setTime(getReportTime(reportTime));
startCal.set(Calendar.MINUTE, 0);
startCal.set(Calendar.SECOND, 0);
startCal.set(Calendar.MILLISECOND, 0);
Calendar endCal=Calendar.getInstance();
endCal.setTime(getReportTime(reportTime));
endCal.set(Calendar.MINUTE, 59);
endCal.set(Calendar.SECOND, 59);
endCal.set(Calendar.MILLISECOND, 0);
if(bean.getReportType()==Constants.REPORT_TYPE_HOUR){
startCal.set(Calendar.HOUR_OF_DAY, 0);
endCal.set(Calendar.HOUR_OF_DAY, 23);
}else if(bean.getReportType()==Constants.REPORT_TYPE_DAY){
startCal.set(Calendar.HOUR_OF_DAY, 0);
startCal.set(Calendar.DAY_OF_MONTH, 1);
endCal.set(Calendar.HOUR_OF_DAY, 23);
DateUtils.setLastDayOfMonth(endCal);
}else if(bean.getReportType()==Constants.REPORT_TYPE_MONTH){
startCal.set(Calendar.HOUR_OF_DAY, 0);
startCal.set(Calendar.DAY_OF_MONTH, 1);
startCal.set(Calendar.MONTH, 0);
endCal.set(Calendar.HOUR_OF_DAY, 23);
DateUtils.setLastDayOfMonth(endCal);
endCal.set(Calendar.MONTH, 11);
}
bean.setReportStartTime(startCal.getTime());
bean.setReportEndTime(endCal.getTime());
bean.setSearchReportStartTime(sdf.format(startCal.getTime()));
bean.setSearchReportEndTime(sdf.format(endCal.getTime()));
}else{
Date date=new Date();
bean.setReportEndTime(date);
bean.setSearchReportEndTime(sdf.format(date));
Calendar startCal=Calendar.getInstance();
startCal.setTime(date);
startCal.set(Calendar.MINUTE, 0);
startCal.set(Calendar.SECOND, 0);
startCal.set(Calendar.MILLISECOND, 0);
if(bean.getReportType()==Constants.REPORT_TYPE_HOUR){
startCal.set(Calendar.HOUR_OF_DAY, 0);
}else if(bean.getReportType()==Constants.REPORT_TYPE_DAY){
startCal.set(Calendar.HOUR_OF_DAY, 0);
startCal.set(Calendar.DAY_OF_MONTH, 1);
}else if(bean.getReportType()==Constants.REPORT_TYPE_MONTH){
startCal.set(Calendar.HOUR_OF_DAY, 0);
startCal.set(Calendar.DAY_OF_MONTH, 1);
startCal.set(Calendar.MONTH, 0);
}
bean.setReportStartTime(startCal.getTime());
bean.setSearchReportStartTime(sdf.format(startCal.getTime()));
}
logger.info("search start time "+bean.getSearchReportStartTime());
logger.info("search end time "+bean.getSearchReportEndTime());
}
public List<String> getDateTitiles(SearchReport bean){
SimpleDateFormat sdf=new SimpleDateFormat(Constants.SEARCH_DATEFORMAT);
List<String> titles=new ArrayList<String>();
Calendar cal=Calendar.getInstance();
cal.setTime(bean.getReportStartTime());
while(cal.getTimeInMillis()<bean.getReportEndTime().getTime()){//构造标题
//报表时间单位加一
if(bean.getReportType()==Constants.REPORT_TYPE_HOUR){
titles.add(sdf.format(cal.getTime()).substring(0,13));
cal.add(Calendar.HOUR_OF_DAY, 1);
}else if(bean.getReportType()==Constants.REPORT_TYPE_DAY){
titles.add(sdf.format(cal.getTime()).substring(0,10));
cal.add(Calendar.DAY_OF_MONTH, 1);
}else if(bean.getReportType()==Constants.REPORT_TYPE_MONTH){
titles.add(sdf.format(cal.getTime()).substring(0,7));
cal.add(Calendar.MONTH, 1);
}
}
return titles;
}
public Date getReportTime(String reportTime) throws ParseException{
Pattern datePattern=Pattern.compile("^[0-9]{4}-[0-9]{2}-[0-9]{2}$");
Pattern monthPattern=Pattern.compile("^[0-9]{4}-[0-9]{2}$");
Pattern yearPattern=Pattern.compile("^[0-9]{4}$");
Matcher matcher=datePattern.matcher(reportTime);
if(matcher.matches()){
return new SimpleDateFormat("yyyy-MM-dd").parse(reportTime);
}else{
matcher=monthPattern.matcher(reportTime);
if(matcher.matches()){
return new SimpleDateFormat("yyyy-MM").parse(reportTime);
}else{
matcher=yearPattern.matcher(reportTime);
if(matcher.matches()){
return new SimpleDateFormat("yyyy").parse(reportTime);
}
}
}
return null;
}
}