From ec9945afd93415bdb755eb8a61d7ff6324b3f97f Mon Sep 17 00:00:00 2001 From: llw <18235445130@163.com> Date: Thu, 24 Aug 2017 18:56:34 +0800 Subject: [PATCH] 提交 --- src/main/java/com/zteits/irain/portal/web/parkinglotcloudplatform/datastatistic/BerthsStatisticController.java | 188 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------- 1 file changed, 125 insertions(+), 63 deletions(-) diff --git a/src/main/java/com/zteits/irain/portal/web/parkinglotcloudplatform/datastatistic/BerthsStatisticController.java b/src/main/java/com/zteits/irain/portal/web/parkinglotcloudplatform/datastatistic/BerthsStatisticController.java index fc8921c..af2acef 100644 --- a/src/main/java/com/zteits/irain/portal/web/parkinglotcloudplatform/datastatistic/BerthsStatisticController.java +++ b/src/main/java/com/zteits/irain/portal/web/parkinglotcloudplatform/datastatistic/BerthsStatisticController.java @@ -2,6 +2,7 @@ package com.zteits.irain.portal.web.parkinglotcloudplatform.datastatistic; import java.math.BigDecimal; import java.sql.Timestamp; +import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; @@ -30,8 +31,6 @@ import org.springframework.web.bind.annotation.ResponseBody; import com.alibaba.dubbo.common.utils.CollectionUtils; import com.alibaba.fastjson.JSON; import com.clouds.common.cache.park.ParkingLotCacheUtil; -import com.clouds.common.entity.UserInfo; -import com.clouds.common.redis.RedisCacheUtil; import com.clouds.common.utils.DateUtil; import com.clouds.common.utils.ResultUtils; import com.clouds.common.utils.excle.ExcelUtil; @@ -54,14 +53,12 @@ import com.zteits.clouds.api.dto.park.dto.ParkingLotUseStatisticMaxAndMinDTO; import com.zteits.clouds.api.dto.park.param.ParkFreeBerthGetByPlnoRequest; import com.zteits.clouds.api.dto.park.param.ParkingLotUseStatisticForPageRequest; import com.zteits.clouds.api.dto.park.param.QueryParkLotInfoByPkNoRequest; -import com.zteits.clouds.api.dto.pay.TdBOrderDTO; import com.zteits.clouds.api.dto.pay.param.QueryTodayOrderRequest; import com.zteits.clouds.api.service.park.ParkFreeBerthService; import com.zteits.clouds.api.service.park.ParkingLotQueryService; import com.zteits.clouds.api.service.park.ParkingLotUseStatisticService; import com.zteits.clouds.api.service.pay.TdBOrderService; import com.zteits.irain.portal.constant.ParkConstant; -import com.zteits.irain.portal.vo.govclouds.ParkLotStatisticVO; import com.zteits.irain.portal.vo.parkinglotcloudplatform.datastatistic.LineChartVO; import com.zteits.irain.portal.vo.parkinglotcloudplatform.datastatistic.LineChartVO.SerieVO; import com.zteits.irain.portal.vo.parkinglotcloudplatform.datastatistic.ParkStaticsticAndTodayAmountVO; @@ -94,8 +91,6 @@ public class BerthsStatisticController extends BizController { @Autowired private ParkingLotUseStatisticService parkingLotStatisticService; @Autowired - private SessionCommUtil sessionCommUtil; - @Autowired private TdBOrderService tdBOrderService; @Autowired private ParkFreeBerthService parkFreeBerthService; @@ -137,6 +132,13 @@ public class BerthsStatisticController extends BizController { return new BizResultVO<>(respondObject); } + /** + * langlw 2017-8-24 + * @param requestObject + * @return + * @throws InstantiationException + * @throws IllegalAccessException + */ @ApiOperation("获取车位使用情况统计列表") @PostMapping("getstatisticlist") @ResponseBody @@ -146,68 +148,36 @@ public class BerthsStatisticController extends BizController { if (null == requestObject.getBeginTime() || null == requestObject.getEndTime()) { throw new BizException(ErrorType.PARAMM_NULL, "开始时间和结束时间"); } - - Calendar beginc = Calendar.getInstance(); - beginc.setTime(requestObject.getBeginTime()); - int beginYear = beginc.get(Calendar.YEAR); - int beginMonth = beginc.get(Calendar.MONTH) + 1; - int beginDay = beginc.get(Calendar.DAY_OF_MONTH); - - Calendar endc = Calendar.getInstance(); - endc.setTime(requestObject.getEndTime()); - int endYear = endc.get(Calendar.YEAR); - int endMonth = endc.get(Calendar.MONTH) + 1; - int endDay = endc.get(Calendar.DAY_OF_MONTH); - - if (beginYear == endYear && beginMonth == endMonth && beginDay == endDay) { - // 2表示按每小时统计 - requestObject.setQueryKind(ParkConstant.ParkingLotUseStatistic.StatisticType.PER1HOUR); - } else { - // 3表示按每天统计 - requestObject.setQueryKind(ParkConstant.ParkingLotUseStatistic.StatisticType.PER1DAY); - } + requestObject.setQueryKind(ParkConstant.ParkingLotUseStatistic.StatisticType.PER1DAY); BizResult> respondObject = parkingLotStatisticService .queryParkingLotUseStatisticForPage(requestObject); return returnJqGridData(respondObject, ParkingLotUseStatisticDTO.class); } - @ApiOperation("导出车流量数据统计excel") + /** + * langlw 2017-8-24 + * @param beginTime + * @param endTime + * @param plNos + * @param requests + * @param response + */ + @ApiOperation("导出车位数据统计excel") @GetMapping("exportBerthStatisticExcel") public void excelParkingLotUseStatistic(@RequestParam String beginTime, @RequestParam String endTime, - @RequestParam String plNos, HttpServletRequest requests, HttpServletResponse response) { + @RequestParam List plNos, HttpServletRequest requests, HttpServletResponse response) { ParkingLotUseStatisticForPageRequest request = new ParkingLotUseStatisticForPageRequest(); request.setSysCode(sysCode); request.setBeginTime(DateUtil.to_date(beginTime, DateUtil.DATETIME_FORMAT)); request.setEndTime(DateUtil.to_date(endTime, DateUtil.DATETIME_FORMAT)); - List plNoslist = new ArrayList<>(); - plNoslist.add(plNos); - request.setPlNos(plNoslist); + request.setPlNos(plNos); request.setBaseRequest(new BaseInfo(1, 0)); - - Calendar beginc = Calendar.getInstance(); - beginc.setTime(request.getBeginTime()); - int beginYear = beginc.get(Calendar.YEAR); - int beginMonth = beginc.get(Calendar.MONTH) + 1; - int beginDay = beginc.get(Calendar.DAY_OF_MONTH); - - Calendar endc = Calendar.getInstance(); - endc.setTime(request.getEndTime()); - int endYear = endc.get(Calendar.YEAR); - int endMonth = endc.get(Calendar.MONTH) + 1; - int endDay = endc.get(Calendar.DAY_OF_MONTH); - - if (beginYear == endYear && beginMonth == endMonth && beginDay == endDay) { - // 2表示按每小时统计 - request.setQueryKind(ParkConstant.ParkingLotUseStatistic.StatisticType.PER1HOUR); - } else { - // 3表示按每天统计 - request.setQueryKind(ParkConstant.ParkingLotUseStatistic.StatisticType.PER1DAY); - } + request.setQueryKind(ParkConstant.ParkingLotUseStatistic.StatisticType.PER1DAY); BizResult> bizResult = parkingLotStatisticService .queryParkingLotUseStatisticForPage(request); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM-dd"); - String[] title = new String[] { "时间", "空置率", "周转率" }; + String[] title = new String[] { "时间","停车场名称", "占用率", "周转率" }; String sheetName = "车位管理"; String fileName = "车位管理" + format2.format(new Date()); // 1.创建excel信息 @@ -220,11 +190,15 @@ public class BerthsStatisticController extends BizController { if (CollectionUtils.isNotEmpty(bizResult.getData().getDataList())) { list = bizResult.getData().getDataList(); } + DecimalFormat df=new DecimalFormat(".##"); + for (ParkingLotUseStatisticDTO e : list) { Object[] obj = new Object[title.length]; int index = 0; obj[index++] = format.format(e.getStatisticBeginTime()); - obj[index++] = e.getFreeRatio() * 100 + "%"; + obj[index++] = e.getPlName(); + double d=100-e.getFreeRatio()* 100; + obj[index++] = df.format(d) + "%"; obj[index++] = e.getTurnoverRatio(); contentList.add(obj); } @@ -236,7 +210,7 @@ public class BerthsStatisticController extends BizController { /** * 根据时间获取车位空置率折线图 - * + * langlw 2017-8-24 * @param request * @return */ @@ -252,7 +226,6 @@ public class BerthsStatisticController extends BizController { logger.info("根据停车场编号获取该停车场车位空置率折线图"); Calendar beginTime = Calendar.getInstance(); beginTime.setTime(request.getBeginTime()); -// int year = beginTime.get(Calendar.YEAR); Calendar endTime = Calendar.getInstance(); endTime.setTime(request.getEndTime()); @@ -335,7 +308,6 @@ public class BerthsStatisticController extends BizController { throw new BizException(ErrorType.PARAMM_NULL, "开始时间和结束时间"); } Calendar beginTime = Calendar.getInstance(); -// int year = beginTime.get(Calendar.YEAR); beginTime.setTime(request.getBeginTime()); Calendar endTime = Calendar.getInstance(); @@ -398,22 +370,22 @@ public class BerthsStatisticController extends BizController { for (ParkingLotUseStatisticDTO statisticDTO : useStatisticDTOs) { String key = statisticDTO.getPlNo(); parkNameMap.put(key, statisticDTO.getPlName()); - String statisBeginTime = DateUtil.getDateString(statisticDTO.getStatisticBeginTime(), dateType); - // 保存空置率 + String statisEndTime = DateUtil.getDateString(statisticDTO.getStatisticEndTime(), dateType); + // 保存占用率 if (!parkLotMap.containsKey(key)) { Map timeAndVal = Maps.newHashMap(); if (ParkConstant.ParkingLotUseStatistic.BerthRatioType.FREE == berthRatio) { - timeAndVal.put(statisBeginTime, statisticDTO.getFreeRatio() * 100); + timeAndVal.put(statisEndTime, statisticDTO.getFreeRatio() * 100); parkLotMap.put(key, timeAndVal); } else if (ParkConstant.ParkingLotUseStatistic.BerthRatioType.TURNOVER == berthRatio) { - timeAndVal.put(statisBeginTime, statisticDTO.getTurnoverRatio() * 100); + timeAndVal.put(statisEndTime, statisticDTO.getTurnoverRatio() * 100); parkLotMap.put(key, timeAndVal); } } else { if (ParkConstant.ParkingLotUseStatistic.BerthRatioType.FREE == berthRatio) { - parkLotMap.get(key).put(statisBeginTime, statisticDTO.getFreeRatio() * 100); + parkLotMap.get(key).put(statisEndTime, statisticDTO.getFreeRatio() * 100); } else if (ParkConstant.ParkingLotUseStatistic.BerthRatioType.TURNOVER == berthRatio) { - parkLotMap.get(key).put(statisBeginTime, statisticDTO.getTurnoverRatio() * 100); + parkLotMap.get(key).put(statisEndTime, statisticDTO.getTurnoverRatio() * 100); } } @@ -466,7 +438,12 @@ public class BerthsStatisticController extends BizController { } - + /** + * langlw 2017-8-23 + * @param request + * @return + * @throws Exception + */ @ApiOperation("获取停车场信息统计和今日收益") @PostMapping("getParkStaticsticAndTodayAmount") @ResponseBody @@ -512,5 +489,90 @@ public class BerthsStatisticController extends BizController { + /** + * langlw 2017-8-24 + * @param beginTime + * @param endTime + * @param plNos + * @param requests + * @param response + */ + @ApiOperation("下载车位数据统计详情excel") + @GetMapping("downloadBerthStatisticExcel") + public void downloadBerthStatisticExcel(@RequestParam String beginTime, @RequestParam String endTime, + @RequestParam List plNos, @RequestParam String parkName, + HttpServletRequest requests, HttpServletResponse response) { + ParkingLotUseStatisticForPageRequest request = new ParkingLotUseStatisticForPageRequest(); + request.setSysCode(sysCode); + request.setBeginTime(DateUtil.to_date(beginTime, DateUtil.DATETIME_FORMAT)); + request.setEndTime(DateUtil.to_date(endTime, DateUtil.DATETIME_FORMAT)); + request.setPlNos(plNos); + request.setBaseRequest(new BaseInfo(1, 0)); + request.setQueryKind(ParkConstant.ParkingLotUseStatistic.StatisticType.PER1HOUR); + + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM-dd"); + + List xAxisData = Lists.newArrayList(); + String[] title = new String[26]; + title[0]=""; + for (int j = 0; j <= 24; j++) { + String hour = String.format("%02d", (j)); + title[j+1]=hour+":00"; + xAxisData.add(hour+":00"); + } + + + String dateType ="HH:mm"; + int berthRatio = ParkConstant.ParkingLotUseStatistic.BerthRatioType.TURNOVER; + LineChartVO turnOverBerthRatios = getFreeBerthRatios(request, xAxisData, dateType, berthRatio); + int berthFreeRatio = ParkConstant.ParkingLotUseStatistic.BerthRatioType.FREE; + LineChartVO freeBerthRatios = getFreeBerthRatios(request, xAxisData, dateType, berthFreeRatio); + + + + String sheetName = "日报表车位使用统计"; + String fileName = "日报表车位使用统计" + format2.format(new Date()); + // 1.创建excel信息 + XSSFSheet workSheet = ExcelUtil.createExcel(sheetName); + // 2.设置excel表头和表体 + Layouter.buildReport(workSheet, title, 0, 0); + // 3.填充数据 + List contentList = new ArrayList(); + + + for (SerieVO e : freeBerthRatios.getSeries()) { + + Object[] obj = new Object[title.length]; + obj[0]="占用率"; + int index = 1; + for (Integer i : e.getData()) { + obj[index++] = 100-i+"%"; + } + contentList.add(obj); + } + + for (SerieVO e : turnOverBerthRatios.getSeries()) { + + Object[] obj = new Object[title.length]; + obj[0]="周转率率"; + int index = 1; + for (Integer i : e.getData()) { + obj[index++] = i ; + } + + + contentList.add(obj); + } + + ExcleFillDateManager fillUserManager = new ExcleFillDateManager(); + fillUserManager.fillSalesOrga(workSheet, title, contentList, 2); + // 4.excel输出配置 + ExcelUtil.write(response, workSheet, fileName); + } + + + + } -- libgit2 0.21.4