From d14d20ef35419cf5245bd306ec065aa85a53ea2b Mon Sep 17 00:00:00 2001 From: wangfei <1006884993@qq.com> Date: Tue, 29 Aug 2017 16:45:11 +0800 Subject: [PATCH] 泊位周转率接口 --- src/main/java/com/zteits/irain/portal/vo/parkinglotcloudplatform/datastatistic/LineChartVO.java | 10 ++++++++++ src/main/java/com/zteits/irain/portal/web/parkinglotcloudplatform/datastatistic/AnalysisController.java | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 104 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/zteits/irain/portal/vo/parkinglotcloudplatform/datastatistic/LineChartVO.java b/src/main/java/com/zteits/irain/portal/vo/parkinglotcloudplatform/datastatistic/LineChartVO.java index b0939d0..c5f3639 100644 --- a/src/main/java/com/zteits/irain/portal/vo/parkinglotcloudplatform/datastatistic/LineChartVO.java +++ b/src/main/java/com/zteits/irain/portal/vo/parkinglotcloudplatform/datastatistic/LineChartVO.java @@ -61,6 +61,8 @@ public class LineChartVO { private String name; private List data; + + private List doubleData; public String getName() { return name; @@ -78,5 +80,13 @@ public class LineChartVO { this.data = data; } + public List getDoubleData() { + return doubleData; + } + + public void setDoubleData(List doubleData) { + this.doubleData = doubleData; + } + } } diff --git a/src/main/java/com/zteits/irain/portal/web/parkinglotcloudplatform/datastatistic/AnalysisController.java b/src/main/java/com/zteits/irain/portal/web/parkinglotcloudplatform/datastatistic/AnalysisController.java index 23be1a6..6d1ee59 100644 --- a/src/main/java/com/zteits/irain/portal/web/parkinglotcloudplatform/datastatistic/AnalysisController.java +++ b/src/main/java/com/zteits/irain/portal/web/parkinglotcloudplatform/datastatistic/AnalysisController.java @@ -1,6 +1,8 @@ package com.zteits.irain.portal.web.parkinglotcloudplatform.datastatistic; +import java.sql.Timestamp; import java.util.Calendar; +import java.util.Date; import java.util.List; import org.slf4j.Logger; @@ -13,9 +15,11 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; +import com.clouds.common.utils.DateUtil; import com.clouds.common.web.BizController; import com.clouds.common.web.vo.BizResultVO; import com.clouds.common.web.vo.EasyUIDataGridVO; +import com.google.common.collect.Lists; import com.zteits.clouds.api.apibase.bean.BizResult; import com.zteits.clouds.api.apibase.bean.PageBean; import com.zteits.clouds.api.apibase.constants.ErrorType; @@ -24,6 +28,8 @@ import com.zteits.clouds.api.dto.clouds.param.BerthTurnOverQueryRequest; import com.zteits.clouds.api.dto.park.dto.BerthTurnOverCountDTO; import com.zteits.clouds.api.service.park.EqpBerthsService; import com.zteits.irain.portal.constant.ParkConstant; +import com.zteits.irain.portal.vo.parkinglotcloudplatform.datastatistic.LineChartVO; +import com.zteits.irain.portal.vo.parkinglotcloudplatform.datastatistic.LineChartVO.SerieVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -61,8 +67,12 @@ public class AnalysisController extends BizController { @ApiOperation("泊位周转率-折线图") @PostMapping("queryTurnOverForMap") @ResponseBody - public BizResultVO> queryTurnOverForMap(@RequestBody BerthTurnOverQueryRequest + public BizResultVO queryTurnOverForMap(@RequestBody BerthTurnOverQueryRequest requestObject) { + if (null == requestObject.getBeginTime() || null == requestObject.getEndTime()) { + throw new BizException(ErrorType.PARAMM_NULL, "开始时间和结束时间"); + } + logger.info("根据停车场编号获取泊位周转率折线图"); requestObject.setSysCode(sysCode); Calendar beginc = Calendar.getInstance(); beginc.setTime(requestObject.getBeginTime()); @@ -76,6 +86,11 @@ public class AnalysisController extends BizController { int endMonth = endc.get(Calendar.MONTH) + 1; int endDay = endc.get(Calendar.DAY_OF_MONTH); + String tableName = "tp_p_eqp_log"+endYear+""+endMonth; + if(endMonth < 10){ + tableName = "tp_p_eqp_log"+endYear+"0"+endMonth; + } + requestObject.setTableName(tableName); if (beginYear == endYear && beginMonth == endMonth && beginDay == endDay) { // 2表示按每小时统计 requestObject.setTimeType(ParkConstant.ParkingLotUseStatistic.StatisticType.PER1HOUR); @@ -83,8 +98,73 @@ public class AnalysisController extends BizController { // 3表示按每天统计 requestObject.setTimeType(ParkConstant.ParkingLotUseStatistic.StatisticType.PER1DAY); } - BizResult> respondObject = eqpBerthsService.queryBerthTurnOverForMap(requestObject); - return new BizResultVO<>(respondObject); + BizResult> respondObject = eqpBerthsService. + queryBerthTurnOverForMap(requestObject); + LineChartVO result = toLineChart(respondObject.getData(),requestObject); + return new BizResultVO().setData(result); + } + + private LineChartVO toLineChart(List berthDto,BerthTurnOverQueryRequest request){ + LineChartVO lineChartVO = new LineChartVO(); + List legendData = Lists.newArrayList(); + List xAxisData = Lists.newArrayList(); + List series = Lists.newArrayList(); + List data = Lists.newArrayList(); + Calendar endTime = Calendar.getInstance(); + endTime.setTime(request.getEndTime()); + Long dayDifference = DateUtil.getTimeDifference(new Timestamp(request.getEndTime().getTime()), + new Timestamp(request.getBeginTime().getTime())); + + if (request.getTimeType() == ParkConstant.ParkingLotUseStatistic.StatisticType.PER1HOUR ) { + // 1个小时为一个时间戳 + int totaltimestampCount = endTime.get(Calendar.HOUR_OF_DAY); + for (int j = 0; j <= totaltimestampCount+1; j++) { + String hour = String.format("%02d", (j)); + xAxisData.add(hour+":00"); + data.add(0.0); + } + //dateType = "HH:mm";\ + for (BerthTurnOverCountDTO dto : berthDto) { + Integer integer = Integer.valueOf(dto.getTurnDayTime().substring(11, 13)); + data.set(integer, dto.getTurnOver()); + } + + }else { + // 1天为一个时间戳 + for (int i = 0; i <= dayDifference.intValue(); i++) { + Calendar tempDate = Calendar.getInstance(); + tempDate.setTime(request.getBeginTime()); + tempDate.add(Calendar.DAY_OF_MONTH, i); + int beginMonth = tempDate.get(Calendar.MONTH) + 1; + int beginDay = tempDate.get(Calendar.DAY_OF_MONTH); + String month = String.format("%02d", (beginMonth)); + String day = String.format("%02d", (beginDay)); + xAxisData.add(month + "-" + day); + data.add(0.0); + } + //dateType = "MM-dd"; + for (int k=0;k> respondObject = -- libgit2 0.21.4