diff --git a/.gitignore b/.gitignore
index 7b281fc..4c07105 100644
--- a/.gitignore
+++ b/.gitignore
@@ -98,3 +98,5 @@ local.properties
.worksheet
.idea
*.iml
+/logging.path_IS_UNDEFINEDlogging.file_IS_UNDEFINED-2017-08-18.0.log
+/logging.path_IS_UNDEFINEDlogging.file_IS_UNDEFINED-2017-08-28.0.log
diff --git a/src/main/java/com/zteits/irain/portal/config/RedisMsgListenerContainer.java b/src/main/java/com/zteits/irain/portal/config/RedisMsgListenerContainer.java
index fd7214e..ce255cd 100644
--- a/src/main/java/com/zteits/irain/portal/config/RedisMsgListenerContainer.java
+++ b/src/main/java/com/zteits/irain/portal/config/RedisMsgListenerContainer.java
@@ -1,4 +1,4 @@
-package com.zteits.irain.portal.config;
+/*package com.zteits.irain.portal.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -9,7 +9,7 @@ import org.springframework.data.redis.listener.RedisMessageListenerContainer;
import com.clouds.common.constants.RedisKeyEnum;
import com.zteits.irain.portal.config.listener.FreeBrethsListener;
-/**
+*//**
* redis 消息队列监听容器
*
* Copyright: Copyright (c) 2017 zteits
@@ -23,17 +23,17 @@ import com.zteits.irain.portal.config.listener.FreeBrethsListener;
* Date Author Version Description
*---------------------------------------------------------*
* 2017年6月7日 zhaowg v1.0.0 创建
- */
+ *//*
@Configuration
public class RedisMsgListenerContainer {
- /**
+ *//**
* 空闲车位监听容器
* @param connectionFactory
* @param brethsListener
* @return
* 2017年6月7日 zhaowg
- */
+ *//*
@Bean
RedisMessageListenerContainer freeBrethscontainer(RedisConnectionFactory connectionFactory,FreeBrethsListener brethsListener) {
RedisMessageListenerContainer container = new RedisMessageListenerContainer();
@@ -42,3 +42,4 @@ public class RedisMsgListenerContainer {
return container;
}
}
+*/
\ No newline at end of file
diff --git a/src/main/java/com/zteits/irain/portal/config/listener/FreeBrethsListener.java b/src/main/java/com/zteits/irain/portal/config/listener/FreeBrethsListener.java
index d2b6837..c89f197 100644
--- a/src/main/java/com/zteits/irain/portal/config/listener/FreeBrethsListener.java
+++ b/src/main/java/com/zteits/irain/portal/config/listener/FreeBrethsListener.java
@@ -1,4 +1,4 @@
-package com.zteits.irain.portal.config.listener;
+/*package com.zteits.irain.portal.config.listener;
import java.util.ArrayList;
import java.util.List;
@@ -20,7 +20,7 @@ import com.zteits.irain.portal.service.interfaces.induction.InductionService;
import com.zteits.irain.portal.service.interfaces.induction.param.DoLevelTwoAndThreeInductionReleaseBatchRequest;
import com.zteits.irain.portal.service.interfaces.induction.param.InductionRelease;
-/**
+*//**
* 空闲车位监听器
*
* Copyright: Copyright (c) 2017 zteits
@@ -34,7 +34,7 @@ import com.zteits.irain.portal.service.interfaces.induction.param.InductionRelea
* Date Author Version Description
*---------------------------------------------------------*
* 2017年6月7日 zhaowg v1.0.0 创建
- */
+ *//*
@Component
public class FreeBrethsListener implements MessageListener{
private static final Logger logger = LoggerFactory.getLogger(FreeBrethsListener.class);
@@ -65,3 +65,4 @@ public class FreeBrethsListener implements MessageListener{
inductionService.doLevelTwoAndThreeInductionReleaseBatch(releaseBatchRequest);
}
}
+*/
\ No newline at end of file
diff --git a/src/main/java/com/zteits/irain/portal/vo/govclouds/ParkingDeviceVO.java b/src/main/java/com/zteits/irain/portal/vo/govclouds/ParkingDeviceVO.java
new file mode 100644
index 0000000..2bb3f5a
--- /dev/null
+++ b/src/main/java/com/zteits/irain/portal/vo/govclouds/ParkingDeviceVO.java
@@ -0,0 +1,37 @@
+package com.zteits.irain.portal.vo.govclouds;
+
+import java.io.Serializable;
+
+public class ParkingDeviceVO implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ /**早先数量*/
+ private Integer onlineCount;
+ /**总量*/
+ private Integer allCount;
+ /**类型*/
+ private Integer type;
+
+ public Integer getOnlineCount() {
+ return onlineCount;
+ }
+ public void setOnlineCount(Integer onlineCount) {
+ this.onlineCount = onlineCount;
+ }
+ public Integer getAllCount() {
+ return allCount;
+ }
+ public void setAllCount(Integer allCount) {
+ this.allCount = allCount;
+ }
+ public Integer getType() {
+ return type;
+ }
+ public void setType(Integer type) {
+ this.type = type;
+ }
+
+}
diff --git a/src/main/java/com/zteits/irain/portal/vo/govclouds/ParkingStatisVO.java b/src/main/java/com/zteits/irain/portal/vo/govclouds/ParkingStatisVO.java
new file mode 100644
index 0000000..022919e
--- /dev/null
+++ b/src/main/java/com/zteits/irain/portal/vo/govclouds/ParkingStatisVO.java
@@ -0,0 +1,58 @@
+package com.zteits.irain.portal.vo.govclouds;
+
+import java.io.Serializable;
+import java.util.List;
+
+import com.zteits.clouds.api.dto.park.dto.ParkingLotUseStatisticDTO;
+
+public class ParkingStatisVO implements Serializable{
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+
+ private List statisList;
+ /**占用率**/
+ private Double avgOccupyRate;
+ /**周转率*/
+ private Double avgTurnoverRate;
+ /**空闲车位*/
+ private Integer freeParkingSpace;
+ /**停车场设备信息**/
+ private List deviceVoList;
+
+
+ public Integer getFreeParkingSpace() {
+ return freeParkingSpace;
+ }
+ public void setFreeParkingSpace(Integer freeParkingSpace) {
+ this.freeParkingSpace = freeParkingSpace;
+ }
+ public List getDeviceVoList() {
+ return deviceVoList;
+ }
+ public void setDeviceVoList(List deviceVoList) {
+ this.deviceVoList = deviceVoList;
+ }
+ public List getStatisList() {
+ return statisList;
+ }
+ public void setStatisList(List statisList) {
+ this.statisList = statisList;
+ }
+ public Double getAvgOccupyRate() {
+ return avgOccupyRate;
+ }
+ public void setAvgOccupyRate(Double avgOccupyRate) {
+ this.avgOccupyRate = avgOccupyRate;
+ }
+ public Double getAvgTurnoverRate() {
+ return avgTurnoverRate;
+ }
+ public void setAvgTurnoverRate(Double avgTurnoverRate) {
+ this.avgTurnoverRate = avgTurnoverRate;
+ }
+
+}
diff --git a/src/main/java/com/zteits/irain/portal/web/govclouds/ParkingContrailController.java b/src/main/java/com/zteits/irain/portal/web/govclouds/ParkingContrailController.java
index 7325ef3..022199d 100644
--- a/src/main/java/com/zteits/irain/portal/web/govclouds/ParkingContrailController.java
+++ b/src/main/java/com/zteits/irain/portal/web/govclouds/ParkingContrailController.java
@@ -18,17 +18,41 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.alibaba.fastjson.JSONObject;
+import com.clouds.common.cache.park.ParkFreeBerthsCacheUtil;
+import com.clouds.common.utils.AppRsesultUtil;
+import com.clouds.common.utils.DateUtil;
import com.clouds.common.web.BizController;
import com.clouds.common.web.vo.BizResultVO;
+import com.google.common.collect.Lists;
+import com.xiaoleilu.hutool.util.CollectionUtil;
import com.zteits.clouds.api.apibase.bean.BizResult;
import com.zteits.clouds.api.apibase.bean.PageBean;
+import com.zteits.clouds.api.apibase.constants.BasicEnum;
+import com.zteits.clouds.api.apibase.constants.ErrorType;
+import com.zteits.clouds.api.dto.govclouds.dto.ParkEqpAndPDACountDTO;
import com.zteits.clouds.api.dto.govclouds.dto.ParkingCountForTypeDTO;
-import com.zteits.clouds.api.dto.govclouds.dto.ParkingTrackDTO;
+import com.zteits.clouds.api.dto.govclouds.param.QueryParkEqpAndPDACountRequest;
import com.zteits.clouds.api.dto.govclouds.param.QueryParkingCountRequest;
-import com.zteits.clouds.api.dto.govclouds.param.QueryParkingTrackRequest;
+import com.zteits.clouds.api.dto.park.dto.BerthsDTO;
+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.ParkingLotUseStatisticForPageRequest;
+import com.zteits.clouds.api.dto.park.param.QueryParkLotInfoByPkNoRequest;
+import com.zteits.clouds.api.dto.pay.TdCFileDTO;
+import com.zteits.clouds.api.dto.pay.param.SysFileGetBySourceIdAndTypeRequest;
import com.zteits.clouds.api.service.govclouds.ParkPreferenceService;
+import com.zteits.clouds.api.service.park.BerthManageService;
+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.clouds.api.service.park.TpPPdaService;
+import com.zteits.clouds.api.service.pay.TdCFileService;
import com.zteits.irain.portal.vo.govclouds.ParkingBusiCircleForTypeVO;
import com.zteits.irain.portal.vo.govclouds.ParkingCountForTypeVO;
+import com.zteits.irain.portal.vo.govclouds.ParkingDeviceVO;
+import com.zteits.irain.portal.vo.govclouds.ParkingStatisVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -55,6 +79,23 @@ public class ParkingContrailController extends BizController{
private static final Logger logger = LoggerFactory.getLogger(ParkingContrailController.class);
@Autowired
private ParkPreferenceService parkPreferenceService;
+ //停车场基本信息查询服务
+ @Autowired
+ private ParkingLotQueryService parkingLotQueryService;
+ //附件查询服务-查询停车场图片
+ @Autowired
+ private TdCFileService tdCFileService;
+ //停车场泊位信息查询
+ @Autowired
+ private BerthManageService berthManageService;
+ //停车场空置率 周转率查询
+ @Autowired
+ private ParkingLotUseStatisticService parkingLotUseStatisticService;
+ @Autowired
+ //硬件设备服务
+ private ParkingLotEqpService parkingLotEqpService;
+ @Autowired
+ private TpPPdaService tpPPdaService;
@ApiOperation("停车编好->饼图")
@PostMapping("/parkingCountForPlType")
@@ -107,20 +148,135 @@ public class ParkingContrailController extends BizController{
return result;
}
- @ApiOperation("停车车轨迹")
- @PostMapping("/queryParkingTrack")
- @ResponseBody
- public BizResultVO queryParkingTrack(@RequestBody QueryParkingTrackRequest queryParkingTrackRequest,HttpServletRequest request, HttpServletResponse response) throws Exception{
- BizResultVO> result = new BizResultVO>();
- logger.info("---begin停车轨迹-->根据车牌查询该车的行车轨迹Controller,入参={}",JSONObject.toJSON(queryParkingTrackRequest));
- BizResult bizResult =parkPreferenceService.queryParkingTrack(queryParkingTrackRequest);
- logger.info("---begin停车轨迹-->根据车牌查询该车的行车轨迹Controller,结果={}",result);
- return new BizResultVO(bizResult);
- }
+ @ApiOperation("停车场基本信息查询")
+ @PostMapping("/queryParkingBaseInfo")
+ @ResponseBody
+ public BizResultVO queryParkingBaseInfo(@RequestBody QueryParkLotInfoByPkNoRequest queryParkLotInfoByPkNoRequest,HttpServletRequest request, HttpServletResponse response) throws Exception{
+ BizResultVO result = new BizResultVO();
+ logger.info("停车场停车资源-基本信息查询 Controller,入参={}",JSONObject.toJSON(queryParkLotInfoByPkNoRequest));
+
+ queryParkLotInfoByPkNoRequest.setSysCode(BasicEnum.SYS_CODE.getValue());
+ logger.debug("开始 查询停车场信息:" + JSONObject.toJSONString(queryParkLotInfoByPkNoRequest));
+ BizResult rtMap = parkingLotQueryService.QueryParkingLotByPkNo(queryParkLotInfoByPkNoRequest);
+ logger.debug("结束 查询停车场信息:" + JSONObject.toJSONString(rtMap));
+ ParkingLotDTO parkingLotDTO = new ParkingLotDTO();
+ if(rtMap.isSuccess()){
+ parkingLotDTO =rtMap.getData();
+ if(parkingLotDTO ==null){
+ AppRsesultUtil.fail(ErrorType.RESOURCE_NOT_EXISTS.getCode(), ErrorType.RESOURCE_NOT_EXISTS.getMsg());
+ }
+ }
+ Integer freeParkingSpace = ParkFreeBerthsCacheUtil.getFreeBerthsByPlNo(queryParkLotInfoByPkNoRequest.getPklNo());
+ rtMap.getData().setBerthNum(freeParkingSpace);
+
+ logger.debug("start 停车场图片查询");
+ SysFileGetBySourceIdAndTypeRequest sysFileGetBySourceIdAndTypeRequest = new SysFileGetBySourceIdAndTypeRequest();
+ sysFileGetBySourceIdAndTypeRequest.setSourceId(queryParkLotInfoByPkNoRequest.getPklNo());
+ sysFileGetBySourceIdAndTypeRequest.setSysCode(queryParkLotInfoByPkNoRequest.getSysCode());
+ BizResult> fileList = tdCFileService.getFilesBySourceIdAndType(sysFileGetBySourceIdAndTypeRequest);
+
+ List picUrls = Lists.newArrayList();
+ if(fileList.isSuccess() && CollectionUtil.isNotEmpty(fileList.getData())){
+ fileList.getData().forEach(file->picUrls.add(file.getFilePath()));
+ }else{
+ /** 如果没有查询停车场的真实图片--则展示默认的停车场图片**/
+ SysFileGetBySourceIdAndTypeRequest sysFileRequest = new SysFileGetBySourceIdAndTypeRequest();
+ /*** '停车场类型:1:路内(占用道路停车位),2-路外',*/
+ if(rtMap.getData().getPlType()==1){
+ sysFileRequest.setSourceId("defaul_park_pic_out");
+ }else{
+ sysFileRequest.setSourceId("defaul_park_pic_in");
+ }
+ sysFileRequest.setFileType(1);
+ sysFileRequest.setSysCode(queryParkLotInfoByPkNoRequest.getSysCode());
+ BizResult> defaultfileList = tdCFileService.getFilesBySourceIdAndType(sysFileRequest);
+ if(defaultfileList.isSuccess() && CollectionUtil.isNotEmpty(defaultfileList.getData())){
+ defaultfileList.getData().forEach(file->picUrls.add(file.getFilePath()));
+ }
+ }
+ logger.debug("end 停车场图片查询:{}",JSONObject.toJSONString(picUrls));
+
+ BizResult> rsMaplist = berthManageService.queryBerthsByPlNo(queryParkLotInfoByPkNoRequest);
+ if(rsMaplist.isSuccess() && CollectionUtil.isNotEmpty(rsMaplist.getData())){
+ rtMap.getData().setBerths(rsMaplist.getData());
+ }
+
+ result.setData(rtMap.getData());
+ result.getData().setPicUrls(picUrls);
+ return result;
+ }
+ @ApiOperation("停车场停车数据查询")
+ @PostMapping("/queryParkingdatas")
+ @ResponseBody
+ public BizResultVO queryParkingdatas(@RequestBody QueryParkLotInfoByPkNoRequest queryParkLotInfoByPkNoRequest,HttpServletRequest request, HttpServletResponse response) throws Exception{
+ BizResultVO result = new BizResultVO();
+
+ List deviceVoList = Lists.newArrayList();
+ logger.info("停车场停车资源-停车场停车数据查询 Controller,入参={}",JSONObject.toJSON(queryParkLotInfoByPkNoRequest));
+ ParkingStatisVO vo = new ParkingStatisVO();
+ List plNos = Lists.newArrayList();
+ plNos.add(queryParkLotInfoByPkNoRequest.getPklNo());
+ CommonPlnosQueryRequest commonPlnosQueryRequest = new CommonPlnosQueryRequest();
+ commonPlnosQueryRequest.setPlNos(plNos);
+ commonPlnosQueryRequest.setSysCode(queryParkLotInfoByPkNoRequest.getSysCode());
+ BizResult> rsList = parkingLotUseStatisticService.queryTodayVehicleFlowOccupyRateAndTurnOver(commonPlnosQueryRequest);
+ if(rsList.isSuccess() && CollectionUtil.isNotEmpty(rsList.getData())){
+ TodayVehicleFlowOccupyRateAndTurnOverDTO dto = rsList.getData().get(0);
+ vo.setAvgOccupyRate(dto.getAvgOccupyRate());
+ vo.setAvgTurnoverRate(dto.getAvgTurnoverRate());
+ }
+
+ ParkingLotUseStatisticForPageRequest staticRequest = new ParkingLotUseStatisticForPageRequest();
+ staticRequest.setBeginTime(DateUtil.getTimeBeforeDay(DateUtil.getSysDate()));
+ staticRequest.setEndTime(DateUtil.getSysDate());
+ //staticRequest.setQueryKind(2);
+ staticRequest.setPlNos(plNos);
+ staticRequest.getBaseRequest().setPageSize(100);
+ staticRequest.setSysCode(queryParkLotInfoByPkNoRequest.getSysCode());
+ BizResult> bizResult = parkingLotUseStatisticService
+ .queryParkingLotUseStatisticForPage(staticRequest);
+ /**周转率,空置率不为空**/
+ if(bizResult.isSuccess() && CollectionUtil.isNotEmpty(bizResult.getData().getDataList())){
+ vo.setStatisList(bizResult.getData().getDataList());
+ }
+
+ QueryParkEqpAndPDACountRequest queryParkEqpAndPDACountRequest = new QueryParkEqpAndPDACountRequest();
+ queryParkEqpAndPDACountRequest.setPlNos(plNos);
+ queryParkEqpAndPDACountRequest.setSysCode(queryParkLotInfoByPkNoRequest.getSysCode());
+ logger.info("停车场停车资源-停车场停车数据查询 -查询硬件设备,入参={}",JSONObject.toJSON(queryParkEqpAndPDACountRequest));
+ BizResult> eqpList = parkingLotEqpService.queryParkEqpCountByPlNos(queryParkEqpAndPDACountRequest);
+ logger.info("停车场停车资源-停车场停车数据查询 -查询硬件设备 地磁,出参={}",JSONObject.toJSON(eqpList));
+ if(eqpList.isSuccess() && CollectionUtil.isNotEmpty(eqpList.getData())){
+ eqpList.getData().forEach(eqp->{
+ ParkingDeviceVO device = new ParkingDeviceVO();
+ device.setType(eqp.getEqpType());
+ device.setAllCount(eqp.getAllEqpCount());
+ device.setOnlineCount(eqp.getOnlineEqpCount());
+ deviceVoList.add(device);
+ });
+ }
+ BizResult> pdaList = tpPPdaService.queryPDACountByPlNosAndPdaType(queryParkEqpAndPDACountRequest);
+ logger.info("停车场停车资源-停车场停车数据查询 -查询硬件设备 PDA等,出参={}",JSONObject.toJSON(pdaList));
+ if(pdaList.isSuccess() && CollectionUtil.isNotEmpty(pdaList.getData())){
+ pdaList.getData().forEach(pda->{
+ ParkingDeviceVO device = new ParkingDeviceVO();
+ device.setType(pda.getEqpType());
+ device.setAllCount(pda.getAllEqpCount());
+ device.setOnlineCount(pda.getOnlineEqpCount());
+ deviceVoList.add(device);
+ });
+ }
+ /**获取停车场的空闲车位*/
+ Integer freeParkingSpace = ParkFreeBerthsCacheUtil.getFreeBerthsByPlNo(queryParkLotInfoByPkNoRequest.getPklNo());
+ vo.setFreeParkingSpace(freeParkingSpace);
+ vo.setDeviceVoList(deviceVoList);
+ result.setData(vo);
+ return result;
+ }
}
diff --git a/src/main/resources/dubbo/dubbo-park-consumer.xml b/src/main/resources/dubbo/dubbo-park-consumer.xml
index d630aba..b169256 100644
--- a/src/main/resources/dubbo/dubbo-park-consumer.xml
+++ b/src/main/resources/dubbo/dubbo-park-consumer.xml
@@ -138,6 +138,9 @@
version="${spring.dubbo.provider.version}"
timeout="30000"/>
+