1、java曲线图统计


1、按照天数的曲线

1、曲线图的实体类相关类

 

1、解释:如果下面的y2list 其实没有用到,因为上面只有一个曲线

 

public class UserAppsComplateData implements Serializable {
    
private List<Stringxlist;
    private 
List<Longy1list;
    private 
List<Longy2list;

    public 
List<StringgetXlist() {
        
return xlist;
    
}

    
public void setXlist(List<Stringxlist) {
        
this.xlist xlist;
    
}

    
public List<LonggetY1list() {
        
return y1list;
    
}

    
public void setY1list(List<Longy1list) {
        
this.y1list y1list;
    
}

    
public List<LonggetY2list() {
        
return y2list;
    
}

    
public void setY2list(List<Longy2list) {
        
this.y2list y2list;
    
}
}

 

2、js调用controller

 

/**
 * 
获取商务在投产品数量列表
 * 
@return
 
*/
@RequestMapping("getAppPutInList")
@ResponseBody
public ResponseBean getAppPutInList(Long adminId,String startDateString endDate){
    
try {
        
if(adminId == nulladminId CasConfig.RemoteUserUtil.getRemoteUserId();
        return 
ResponseBean.buildSuccess(saleService.getAppPutInList(adminId,startDate,endDate));
    
catch (AppException e) {
        
return ResponseBean.buildFailure(e.getMessage());
    
}
}

 

3、服务层开始实现吧,朋友

 

@Override
public UserAppsComplateData getAppPutInList(Long adminIdString startDateString endDate) {
    
UserAppsComplateData complateData = new UserAppsComplateData();
    
List<Stringxlist = new ArrayList<>();
    
List<Longy1list = new ArrayList<>();
    
List<DatelDate findDates(DateHelper.convertString2Date(startDate,DateHelper.YYYY_MM_DD)DateHelper.convertString2Date(endDate,DateHelper.YYYY_MM_DD));
    for 
(Date date lDate) {
        
xlist.add(DateHelper.convertDate2String(date, DateHelper.YYYY_MM_DD));
        
String sdate DateHelper.convertDate2String(dateDateHelper.YYYY_MM_DD" 00:00:00";
        
String edate DateHelper.convertDate2String(dateDateHelper.YYYY_MM_DD" 23:59:59";
        
Date stime DateHelper.convertString2Date(sdateDateHelper.YYYY_MM_DD_HH_MM_SS);
        
Date etime DateHelper.convertString2Date(edateDateHelper.YYYY_MM_DD_HH_MM_SS);
        
List<UserAppsSpreadData> spreadIdsList = userAppMapper.getSpreadIdsList(4l, stime, etime);
        
y1list.add(Long.valueOf(spreadIdsList.size()));
    
}
   
 complateData.setXlist(xlist);
    complateData.setY1list(y1list);

    return 
complateData;
}

2、获取一段时间内的日期

 

/**
 * 
获取一段时间之内的日期
 * 
@param dBegin
 
@param dEnd
 
@return
 
*/
private  List<DatefindDates(Date dBeginDate dEnd) {
    
List lDate = new ArrayList();
    
lDate.add(dBegin);
    
Calendar calBegin Calendar.getInstance();
    
calBegin.setTime(dBegin);
    
Calendar calEnd Calendar.getInstance();
    
calEnd.setTime(dEnd);
    
// 测试此日期是否在指定日期之后
    
while (dEnd.after(calBegin.getTime()))
    {
        
// 根据日历的规则,为给定的日历字段添加或减去指定的时间量
        
calBegin.add(Calendar.DAY_OF_MONTH1);
        
lDate.add(calBegin.getTime());
    
}
    
return lDate;
}

 

2、按照月份的曲线

1、曲线图

2.、设置曲线实体类

 

public class UserAppsData implements Serializable {
    
private List<AppsAppDataappDataList;
    private 
List<Stringxlist;
    private 
List<Integerylist;
    private 
String ym//当月月份

    
public List<AppsAppDatagetAppDataList() {
        
return appDataList;
    
}

    
public void setAppDataList(List<AppsAppDataappDataList) {
        
this.appDataList appDataList;
    
}

    
public List<StringgetXlist() {
        
return xlist;
    
}

    
public void setXlist(List<Stringxlist) {
        
this.xlist xlist;
    
}

    
public List<IntegergetYlist() {
        
return ylist;
    
}

    
public void setYlist(List<Integerylist) {
        
this.ylist ylist;
    
}

    
public String getYm() {
        
return ym;
    
}

    
public void setYm(String ym) {
        
this.ym ym;
    
}
}

 

 

3、controller

 


/**
 * 
获取商务新增应用列表
 * 
@return
 
*/
@RequestMapping("getNewAddAppList")
@ResponseBody
public ResponseBean getNewAddAppList(Long adminId){
    
try {
        
if(adminId == nulladminId CasConfig.RemoteUserUtil.getRemoteUserId();
        return 
ResponseBean.buildSuccess(saleService.getNewAddAppList(adminId));
    
catch (AppException e) {
        
return ResponseBean.buildFailure(e.getMessage());
    
}
}

 

4、服务层真正实现

 

@Override
public UserAppsData getNewAddAppList(Long adminId) {
    
List<Stringxlist = new ArrayList<>();
    
List<Integerylist = new ArrayList<>();
    
UserAppsData appsData = new UserAppsData();
    
Date startDate DateHelper.convertString2Date(getMonthFirstDay(),DateHelper.YYYY_MM_DD);
    
List<AppsAppDatalist userAppMapper.getUserAppAddList(adminIdstartDate,new Date());
    
appsData.setYm(DateHelper.convertDate2String(new Date(),DateHelper.YYYY_MM));
    
appsData.setAppDataList(list);
    for 
(int 6i--){
      
  xlist.add(StringUtils.substringAfter(getYm(-i),"-"));  2017-08 取出08

        List<AppsAppDataappAddListLast userAppMapper.getUserAppAddList(adminIdgetFirstYMDHMS(-i-1),getLastYMDHMS(-i-1));
        
List<AppsAppDataappAddListNew userAppMapper.getUserAppAddList(adminIdgetFirstYMDHMS(-i),getLastYMDHMS(-i));
        int 
sum 0;
        
appAddListNew.remove(appAddListLast);
        
ylist.add(appAddListNew.size());
    
}
    
appsData.setXlist(xlist);
    
appsData.setYlist(ylist);
    return 
appsData;
}

 

1、getYm(-i)当前月份的接触上减去(6,5,4,3,2,1) 也就是显示8,9,10,11,12,1 月的曲线

 

private String  getYm(int num) {
    
Date date = new Date();
    
Calendar calendar Calendar.getInstance();
    
calendar.setTime(date);
    
calendar.add(Calendar.MONTHnum);
    return 
DateHelper.convertDate2String(calendar.getTime()DateHelper.YYYY_MM);
}

 

 

2、取得上个月的第一天,和上个月的最后一天(这里是28号,不过也差不多就是个这) 减去几就是上几个月的值

 

private  Date  getFirstYMDHMS(int num) {
    
Calendar calendar Calendar.getInstance();
    
calendar.set(Calendar.DAY_OF_MONTH,
            
calendar.getActualMinimum(Calendar.DAY_OF_MONTH));
    
calendar.add(Calendar.MONTHnum);
    
String time DateHelper.convertDate2String(calendar.getTime()DateHelper.YYYY_MM_DD)+" 00:00:00";
    return 
DateHelper.convertString2Date(timeDateHelper.YYYY_MM_DD_HH_MM_SS);
}

private  Date  getLastYMDHMS(int num) {
    
Date date = new Date();
    
Calendar calendar Calendar.getInstance();
    
calendar.set(Calendar.DAY_OF_MONTH,
            
calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
    
calendar.add(Calendar.MONTHnum);
    
String time DateHelper.convertDate2String(calendar.getTime()DateHelper.YYYY_MM_DD)+" 23:59:59";
    return 
DateHelper.convertString2Date(timeDateHelper.YYYY_MM_DD_HH_MM_SS);
}

 

posted @ 2018-03-08 10:14  HealerJean  阅读(169)  评论(0编辑  收藏  举报