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/DataGeneralizeController.java b/src/main/java/com/zteits/irain/portal/web/govclouds/DataGeneralizeController.java index 47da787..8bb349a 100644 --- a/src/main/java/com/zteits/irain/portal/web/govclouds/DataGeneralizeController.java +++ b/src/main/java/com/zteits/irain/portal/web/govclouds/DataGeneralizeController.java @@ -714,13 +714,12 @@ public class DataGeneralizeController { //分->元 BigDecimal hundred = new BigDecimal("100"); OrderTransDTO o = orderDTO.getData(); - o.setAliTotalAmount(o.getAliTotalAmount() == null ? new BigDecimal("0") : o.getAliTotalAmount().divide(hundred)); - o.setCashTotalAmount(o.getCashTotalAmount() == null ? new BigDecimal("0") : o.getCashTotalAmount().divide(hundred)); - o.setPayedTotalAmount(o.getPayedTotalAmount() == null ? new BigDecimal("0") : o.getPayedTotalAmount().divide(hundred)); - o.setWxTotalAmount(o.getWxTotalAmount() == null ? new BigDecimal("0") : o.getWxTotalAmount().divide(hundred)); - o.setYlTotalAmount(o.getYlTotalAmount() == null ? new BigDecimal("0") : o.getYlTotalAmount().divide(hundred)); + o.setAliTotalAmount(o.getAliTotalAmount()!=null?o.getAliTotalAmount().divide(hundred):new BigDecimal("0")); + o.setCashTotalAmount(o.getCashTotalAmount()!=null?o.getCashTotalAmount().divide(hundred):new BigDecimal("0")); + o.setPayedTotalAmount(o.getPayedTotalAmount()!=null?o.getPayedTotalAmount().divide(hundred):new BigDecimal("0")); + o.setWxTotalAmount(o.getWxTotalAmount()!=null?o.getWxTotalAmount().divide(hundred):new BigDecimal("0")); + o.setYlTotalAmount(o.getYlTotalAmount()!=null?o.getYlTotalAmount().divide(hundred):new BigDecimal("0")); orderDTO.setData(o); - logger.info("调用后场dubbo服务,响应为: result={}", JSONObject.toJSONString(orderDTO)); return orderDTO; } 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/application.properties b/src/main/resources/application.properties index 7634c34..c9f196d 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,12 +1,12 @@ -project.syscode=zteits-gcp-portal -spring.application.name=zteits-gcp-portal +project.syscode=zteits-park-portal +spring.application.name=zteits-park-portal server.port=8094 # logging logging.level.root=info #logging.level.org.springframework.web=DEBUG logging.level.com.zteits.irain.portal=debug -logging.path=./logs/${spring.application.name} +#logging.path=${user.home}/logs logging.file=${spring.application.name}.log logging.config=classpath:logback-spring.xml 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"/> +