diff --git a/src/main/java/com/zteits/irain/portal/web/parkinglotcloudplatform/datastatistic/IndexPageStatisticController.java b/src/main/java/com/zteits/irain/portal/web/parkinglotcloudplatform/datastatistic/IndexPageStatisticController.java
index 5add71c..2fbc1af 100644
--- a/src/main/java/com/zteits/irain/portal/web/parkinglotcloudplatform/datastatistic/IndexPageStatisticController.java
+++ b/src/main/java/com/zteits/irain/portal/web/parkinglotcloudplatform/datastatistic/IndexPageStatisticController.java
@@ -2,28 +2,21 @@ package com.zteits.irain.portal.web.parkinglotcloudplatform.datastatistic;
import java.math.BigDecimal;
import java.math.RoundingMode;
+import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import javax.validation.Valid;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
-import org.springframework.web.bind.annotation.RestController;
-
import com.alibaba.dubbo.common.utils.CollectionUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
+
import com.clouds.common.cache.park.ParkingLotCacheUtil;
import com.clouds.common.utils.DateUtil;
import com.clouds.common.utils.ResultUtils;
@@ -41,12 +34,16 @@ import com.zteits.clouds.api.dto.clouds.param.CustIncomeTotalQueryRequset;
import com.zteits.clouds.api.dto.park.dto.ParkLotEqpTypeCountStatisticByCountryDTO;
import com.zteits.clouds.api.dto.park.dto.ParkingLotDTO;
import com.zteits.clouds.api.dto.park.dto.ParkingLotUseStatisticDTO;
+import com.zteits.clouds.api.dto.park.dto.TodayVehicleFlowOccupyRateAndTurnOverDTO;
+import com.zteits.clouds.api.dto.park.param.CommonPlnosQueryRequest;
import com.zteits.clouds.api.dto.park.param.EqpTypeQueryByPlNosRequest;
import com.zteits.clouds.api.dto.park.param.ParkingLotUseStatisticForPageRequest;
import com.zteits.clouds.api.dto.park.param.RealTimeVehicleFlowQueryRequest;
import com.zteits.clouds.api.service.clouds.CustIncomeService;
import com.zteits.clouds.api.service.park.IInOutParkingService;
+import com.zteits.clouds.api.service.park.ParkingLotBerthsService;
import com.zteits.clouds.api.service.park.ParkingLotEqpService;
+import com.zteits.clouds.api.service.park.ParkingLotQueryService;
import com.zteits.clouds.api.service.park.ParkingLotUseStatisticService;
import com.zteits.irain.portal.constant.ParkConstant;
import com.zteits.irain.portal.vo.parkinglotcloudplatform.datastatistic.BerthsAndFlowLineChartVO;
@@ -56,8 +53,16 @@ import com.zteits.irain.portal.vo.parkinglotcloudplatform.datastatistic.CustInco
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.ParkLotEqpTypeCountVO;
-
import io.swagger.annotations.ApiOperation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
/**
* Copyright: Copyright (c) 2017 zteits
@@ -89,7 +94,13 @@ public class IndexPageStatisticController extends BizController {
private ParkingLotUseStatisticService parkingLotStatisticService;
@Autowired
private ParkingLotEqpService parkingLotEqpService;
-
+
+ @Autowired
+ private ParkingLotQueryService parkingLotQueryService;
+
+ @Autowired
+ private ParkingLotBerthsService parkingLotBerthsService;
+
/**
* 云平台首页->企业客户负责所有的停车场汇总.
*
@@ -150,8 +161,6 @@ public class IndexPageStatisticController extends BizController {
BigDecimal escapeAmount = dto.getEscapeAmount();
BigDecimal payedTotalAmount = dto.getPayedTotalAmount();
-
-
CustIncomeTotalParkVO vo = new CustIncomeTotalParkVO();
//金额为分
@@ -160,13 +169,14 @@ public class IndexPageStatisticController extends BizController {
vo.setPayedTotalAmount(payedTotalAmount.setScale(2, BigDecimal.ROUND_HALF_UP).toString());
//占比乘以100取两位小数
//应收
- if (null == amountDueTotal || amountDueTotal.doubleValue()==0) {
+ if (null == amountDueTotal || amountDueTotal.doubleValue() == 0) {
vo.setLoopData(1, "00.00");
vo.setLoopData(2, "00.00");
} else {
//实收
- vo.setLoopData(1, payedTotalAmount.divide(amountDueTotal, 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100.00"))
+ vo.setLoopData(1, payedTotalAmount.divide(amountDueTotal, 4, BigDecimal.ROUND_HALF_UP).multiply(
+ new BigDecimal("100.00"))
.setScale(2, BigDecimal.ROUND_HALF_UP).toString());
//逃逸
vo.setLoopData(2, escapeAmount.divide(amountDueTotal, 4, BigDecimal.ROUND_HALF_UP).multiply(
@@ -233,6 +243,16 @@ public class IndexPageStatisticController extends BizController {
return resResult;
}
+ @ApiOperation("查询今日车流量占用率周转率")
+ @PostMapping("/queryTodayVehicleFlowOccupyRateAndTurnOver")
+ public BizResultVO> queryTodayVehicleFlowOccupyRateAndTurnOver(
+ @RequestBody CommonPlnosQueryRequest request) {
+ BizResult> bizResult = parkingLotStatisticService
+ .queryTodayVehicleFlowOccupyRateAndTurnOver(request);
+ return new BizResultVO<>(bizResult);
+
+ }
+
/**
* 根据停车场编号,获取该停车场今日车流量(当天0:00到操作时间的车流量) 折线图
*
@@ -240,10 +260,11 @@ public class IndexPageStatisticController extends BizController {
* @return 2017年6月19日 zhaowg
*/
@ApiOperation("根据停车场编号获取该停车场今日车流量和车位折线图")
- @PostMapping("getTodayVehicleFlowForLineChart")
+ @PostMapping("/getTodayVehicleFlowForLineChart")
+ @Deprecated
public BizResultVO getTodayVehicleFlowForLineChart(
@RequestBody @Valid ParkingLotUseStatisticForPageRequest request) {
- logger.info("根据停车场编号获取该停车场今日车流量和车位折线图");
+ logger.info("根据停车场编号获取该停车场今日车流量和车位折线图");
//开始时间 今日0点开始
Calendar beginTime = Calendar.getInstance();
beginTime.set(Calendar.HOUR_OF_DAY, 0);
@@ -280,7 +301,7 @@ public class IndexPageStatisticController extends BizController {
//每20分钟统计一次
request.setQueryKind(ParkConstant.ParkingLotUseStatistic.StatisticType.PER20MINUTE);
request.setBaseRequest(new BaseInfo(1, 0));
- logger.info("调用DUBBO服务入参:"+JSON.toJSONString(request));
+ logger.info("调用DUBBO服务入参:" + JSON.toJSONString(request));
BizResult> bizResult = parkingLotStatisticService
.queryParkingLotUseStatisticForPage(request);
PageBean pageBean = ResultUtils.getBizResultData(bizResult);
@@ -312,19 +333,21 @@ public class IndexPageStatisticController extends BizController {
}
//保存固定车流量和临时车流量
- fixVehicleFlowMap.put(statisBeginTime, (fixVehicleFlowMap.get(statisBeginTime)==null?0:fixVehicleFlowMap.get(statisBeginTime))+statisticDTO.getFixVehicleFlow());
- tmpVehicleFlowMap.put(statisBeginTime, (tmpVehicleFlowMap.get(statisBeginTime)==null?0:tmpVehicleFlowMap.get(statisBeginTime))+statisticDTO.getTmpVehicleFlow());
+ fixVehicleFlowMap.put(statisBeginTime, (fixVehicleFlowMap.get(statisBeginTime) == null ? 0
+ : fixVehicleFlowMap.get(statisBeginTime)) + statisticDTO.getFixVehicleFlow());
+ tmpVehicleFlowMap.put(statisBeginTime, (tmpVehicleFlowMap.get(statisBeginTime) == null ? 0
+ : tmpVehicleFlowMap.get(statisBeginTime)) + statisticDTO.getTmpVehicleFlow());
+ }
+ }
+ //判断是否包含所有待查询的停车场信息
+ if (request.getPlNos().size() > parkLotMap.size()) {
+ for (String plNo : request.getPlNos()) {
+ if (!parkLotMap.containsKey(plNo)) {
+ ParkingLotDTO parkingLotDTO = ParkingLotCacheUtil.getParkLotByPlNo(plNo);
+ parkNameMap.put(plNo, parkingLotDTO.getPlName());
+ parkLotMap.put(plNo, Maps.newHashMap());
+ }
}
- }
- //判断是否包含所有待查询的停车场信息
- if(request.getPlNos().size()>parkLotMap.size()){
- for (String plNo:request.getPlNos()) {
- if(!parkLotMap.containsKey(plNo)){
- ParkingLotDTO parkingLotDTO=ParkingLotCacheUtil.getParkLotByPlNo(plNo);
- parkNameMap.put(plNo, parkingLotDTO.getPlName());
- parkLotMap.put(plNo, Maps.newHashMap());
- }
- }
}
//封装车位统计信息
LineChartVO freeBerthRatios = new LineChartVO();
@@ -348,8 +371,8 @@ public class IndexPageStatisticController extends BizController {
for (String timestamp : xAxisData) {
if (freeRatioMaps.containsKey(timestamp)) {
lastFreeRatio = freeRatioMaps.get(timestamp).intValue();
- }else{
- lastFreeRatio = 0;
+ } else {
+ lastFreeRatio = 0;
}
freeRations.add(lastFreeRatio);
}
@@ -381,15 +404,15 @@ public class IndexPageStatisticController extends BizController {
for (String timestamp : xAxisData) {
if (fixVehicleFlowMap.containsKey(timestamp)) {
lastfixFlow = fixVehicleFlowMap.get(timestamp).intValue();
- }else{
- lastfixFlow = 0;
+ } else {
+ lastfixFlow = 0;
}
fixSerieVoData.add(lastfixFlow);
if (tmpVehicleFlowMap.containsKey(timestamp)) {
lasttmpFlow = tmpVehicleFlowMap.get(timestamp).intValue();
- }else{
- lasttmpFlow = 0;
+ } else {
+ lasttmpFlow = 0;
}
tmpSerieVoData.add(lasttmpFlow);
}
@@ -417,6 +440,96 @@ public class IndexPageStatisticController extends BizController {
}
/**
+ * 实时统计今日停车次数,停车次数以出场时间进行统计
+ *
+ * @return
+ */
+ @ApiOperation("实时查询当前停车次数")
+ @PostMapping("/realtimeParkingOutNum")
+ public BizResultVO realtimeParkingOutNum(@RequestBody CommonPlnosQueryRequest request) {
+ BizResult bizResult = iInOutParkingService.queryRealTimeOutParkNumOfPlNos(request);
+ return new BizResultVO<>(bizResult);
+ }
+
+ /**
+ * 今日实时周转率
+ *
+ * @param request
+ * @return
+ * @desc 今日实时进场次数/总车位数
+ */
+ @ApiOperation("实时查询当前周转率")
+ @PostMapping("/realtimeTurnoverRate")
+ public BizResultVO