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 32ae9ab..4ea4249 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 @@ -5,6 +5,7 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; +import org.apache.poi.util.StringUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -15,6 +16,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; +import com.alibaba.druid.util.StringUtils; import com.alibaba.dubbo.common.utils.CollectionUtils; import com.alibaba.fastjson.JSONObject; import com.clouds.common.cache.park.EqpAndPosStatusSyncCacheUtil; @@ -28,6 +30,8 @@ import com.zteits.clouds.api.apibase.bean.BizResult; import com.zteits.clouds.api.apibase.constants.ErrorType; import com.zteits.clouds.api.apibase.exception.BizException; import com.zteits.clouds.api.dto.govclouds.ParkTransactionDTO; +import com.zteits.clouds.api.dto.govclouds.dto.ParkEqpAndPDACountDTO; +import com.zteits.clouds.api.dto.govclouds.param.QueryParkEqpAndPDACountRequest; import com.zteits.clouds.api.dto.park.dto.ParkFreeBerthsCountStatisticByCountryDTO; import com.zteits.clouds.api.dto.park.dto.ParkLotCountStatisticByCountryDTO; import com.zteits.clouds.api.dto.park.dto.ParkLotEqpTypeCountStatisticByCountryDTO; @@ -38,6 +42,7 @@ import com.zteits.clouds.api.service.govclouds.ParkTransactionService; import com.zteits.clouds.api.service.park.ParkFreeBerthService; import com.zteits.clouds.api.service.park.ParkingLotEqpService; import com.zteits.clouds.api.service.park.ParkingLotQueryService; +import com.zteits.clouds.api.service.park.TpPPdaService; import com.zteits.irain.portal.vo.govclouds.StatisticParkLotEqpCountByCountryVO; import com.zteits.irain.portal.vo.parkinglotdatacenter.BerthSpaceRatioVO; import com.zteits.irain.portal.vo.parkinglotdatacenter.BerthSpaceRatioVO.BerthSeriesVO; @@ -77,6 +82,8 @@ public class DataGeneralizeController { private ParkFreeBerthService parkFreeBerthService; @Autowired private ParkTransactionService parkTransactionService; + @Autowired + private TpPPdaService tpPPdaService; /** * 这里用的是@SendToUser,这就是发送给单一客户端的标志。本例中, @@ -176,7 +183,12 @@ public class DataGeneralizeController { } return list; } - + /** + * 分区统计停车场、停车位数量 + * langlw 2017-9-5 + * @param request + * @return + */ @ApiOperation(value="停车场柱图") @PostMapping("parkinglotColumnChart") @ResponseBody @@ -363,7 +375,12 @@ public class DataGeneralizeController { map.entrySet().forEach(e->{displayCountry.add(e.getValue());}); return new BizResultVO>().setData(displayCountry); } - + /** + * 车位配比图 + * langlw 2017-9-5 + * @param request + * @return + */ @ApiOperation(value="车位配比图") @PostMapping("berthSpaceRatioChart") @ResponseBody @@ -388,4 +405,51 @@ public class DataGeneralizeController { return new BizResultVO().setData(berthSpaceRatioVO); } + + + + @ApiOperation(value="获取停车场设备和PDA在线离线总数") + @PostMapping("queryParkEqpAndPDACount") + @ResponseBody + public BizResultVO> queryParkEqpAndPDACount(@RequestBody QueryParkEqpAndPDACountRequest request){ + if(null == request.getEqpType() || null == request.getPdaType() || CollectionUtils.isEmpty(request.getPlNos())){ + throw new BizException(ErrorType.PARAMM_NULL, "入参不能为空"); + } + logger.info("调用dubbo服务,请求入参: request={}", JSONObject.toJSONString(request)); + Map parkEqpAndPDACountMap = Maps.newHashMap(); + //查询停车场设备 + BizResult> result = parkingLotEqpService.queryParkEqpCountByPlNosAndEqpType(request); + logger.info("调用后场dubbo服务,响应为: result={}", JSONObject.toJSONString(result)); + List parkEqpList=result.getData(); + //PDA + if(CollectionUtils.isNotEmpty(parkEqpList)){ + for (ParkEqpAndPDACountDTO dto : parkEqpList) { + if(null != dto){ + String plNo = StringUtils.isEmpty(dto.getPlNo())?"":dto.getPlNo(); + parkEqpAndPDACountMap.put(plNo, dto); + } + } + } + + //查询PDA在线和离线总数 + BizResult> bizResult = tpPPdaService.queryPDACountByPlNosAndPdaType(request); + logger.info("调用后场dubbo服务,响应为: result={}", JSONObject.toJSONString(bizResult)); + List parkPDACountList=bizResult.getData(); + //PDA + if(CollectionUtils.isNotEmpty(parkPDACountList)){ + for (ParkEqpAndPDACountDTO dto : parkPDACountList) { + if(null != dto){ + String plNo = StringUtils.isEmpty(dto.getPlNo())?"":dto.getPlNo(); + if(parkEqpAndPDACountMap.containsKey(plNo)){ + parkEqpAndPDACountMap.get(plNo).setOnlinePDACount(null==dto.getOnlinePDACount()?0:dto.getOnlinePDACount()); + parkEqpAndPDACountMap.get(plNo).setAllPDACount(null==dto.getAllPDACount()?0:dto.getAllPDACount()); + }else{ + parkEqpAndPDACountMap.put(plNo, dto); + } + } + } + } + + return new BizResultVO>().setData(parkEqpAndPDACountMap); + } }