diff --git a/.gitignore b/.gitignore index 7b281fc..5a38882 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,61 @@ # Created by .ignore support plugin (hsz.mobi) +### JetBrains template +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff: +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/dictionaries + +# Sensitive or high-churn files: +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.xml +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml + +# Gradle: +.idea/**/gradle.xml +.idea/**/libraries + +# Mongo Explorer plugin: +.idea/**/mongoSettings.xml + +## File-based project format: +*.iws + +## Plugin-specific files: + +# IntelliJ +/out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties +### Maven template +target/ +pom.xml.tag +pom.xml.releaseBackup +pom.xml.versionsBackup +pom.xml.next +release.properties +dependency-reduced-pom.xml +buildNumber.properties +.mvn/timing.properties + +# Avoid ignoring Maven wrapper jar file (.jar files are usually ignored) +!/.mvn/wrapper/maven-wrapper.jar ### macOS template *.DS_Store .AppleDouble @@ -26,75 +83,5 @@ Icon Network Trash Folder Temporary Items .apdisk -### Maven template -target/ -pom.xml.tag -pom.xml.releaseBackup -pom.xml.versionsBackup -pom.xml.next -release.properties -dependency-reduced-pom.xml -buildNumber.properties -.mvn/timing.properties - -# Avoid ignoring Maven wrapper jar file (.jar files are usually ignored) -!/.mvn/wrapper/maven-wrapper.jar -### Eclipse template - -.metadata -bin/ -tmp/ -*.tmp -*.bak -*.swp -*~.nib -local.properties -.settings/ -.loadpath -.recommenders - -# Eclipse Core -.project - -# External tool builders -.externalToolBuilders/ - -# Locally stored "Eclipse launch configurations" -*.launch - -# PyDev specific (Python IDE for Eclipse) -*.pydevproject - -# CDT-specific (C/C++ Development Tooling) -.cproject - -# JDT-specific (Eclipse Java Development Tools) -.classpath - -# Java annotation processor (APT) -.factorypath - -# PDT-specific (PHP Development Tools) -.buildpath - -# sbteclipse plugin -.target - -# Tern plugin -.tern-project - -# TeXlipse plugin -.texlipse - -# STS (Spring Tool Suite) -.springBeans - -# Code Recommenders -.recommenders/ -# Scala IDE specific (Scala & Java development for Eclipse) -.cache-main -.scala_dependencies -.worksheet -.idea *.iml diff --git a/src/main/java/com/zteits/irain/portal/vo/fangle/BerthStateRequest.java b/src/main/java/com/zteits/irain/portal/vo/fangle/BerthStateRequest.java new file mode 100644 index 0000000..e5b8fa9 --- /dev/null +++ b/src/main/java/com/zteits/irain/portal/vo/fangle/BerthStateRequest.java @@ -0,0 +1,82 @@ +package com.zteits.irain.portal.vo.fangle; + +import com.zteits.clouds.api.apibase.bean.BaseRequest; + +public class BerthStateRequest extends BaseRequest{ + + private static final long serialVersionUID = 1L; + + /**记录编号*/ + private String log_id; + + /**泊位编码*/ + private String berthcode; + + /**状态变更时间*/ + private String changetime; + + /**泊位状态*/ + private String berthstatus; + + /**电量*/ + private String electricity; + + /**电压值*/ + private String voltage; + + public String getLog_id() { + return log_id; + } + + public void setLog_id(String log_id) { + this.log_id = log_id; + } + + public String getBerthcode() { + return berthcode; + } + + public void setBerthcode(String berthcode) { + this.berthcode = berthcode; + } + + public String getChangetime() { + return changetime; + } + + public void setChangetime(String changetime) { + this.changetime = changetime; + } + + public String getBerthstatus() { + return berthstatus; + } + + public void setBerthstatus(String berthstatus) { + this.berthstatus = berthstatus; + } + + public String getElectricity() { + return electricity; + } + + public void setElectricity(String electricity) { + this.electricity = electricity; + } + + public String getVoltage() { + return voltage; + } + + public void setVoltage(String voltage) { + this.voltage = voltage; + } + + @Override + public String toString() { + return "BerthStateRequest [log_id=" + log_id + ", berthcode=" + berthcode + ", changetime=" + changetime + + ", berthstatus=" + berthstatus + ", electricity=" + electricity + ", voltage=" + voltage + "]"; + } + + +} diff --git a/src/main/java/com/zteits/irain/portal/vo/fangle/EqpHeartBeatRequest.java b/src/main/java/com/zteits/irain/portal/vo/fangle/EqpHeartBeatRequest.java new file mode 100644 index 0000000..cbd5d18 --- /dev/null +++ b/src/main/java/com/zteits/irain/portal/vo/fangle/EqpHeartBeatRequest.java @@ -0,0 +1,60 @@ +package com.zteits.irain.portal.vo.fangle; + +import com.zteits.clouds.api.apibase.bean.BaseRequest; + +public class EqpHeartBeatRequest extends BaseRequest{ + + private static final long serialVersionUID = 1L; + + /**设备类型*/ + private String EquipmentType; + + /**设备编号*/ + private String EquipmentCode; + + /**设备状态*/ + private String EquipmentStatus; + + /**推送时间*/ + private String PushTime; + + public String getEquipmentType() { + return EquipmentType; + } + + public void setEquipmentType(String equipmentType) { + EquipmentType = equipmentType; + } + + public String getEquipmentCode() { + return EquipmentCode; + } + + public void setEquipmentCode(String equipmentCode) { + EquipmentCode = equipmentCode; + } + + public String getEquipmentStatus() { + return EquipmentStatus; + } + + public void setEquipmentStatus(String equipmentStatus) { + EquipmentStatus = equipmentStatus; + } + + public String getPushTime() { + return PushTime; + } + + public void setPushTime(String pushTime) { + PushTime = pushTime; + } + + @Override + public String toString() { + return "EqpHeartBeatRequest [EquipmentType=" + EquipmentType + ", EquipmentCode=" + EquipmentCode + + ", EquipmentStatus=" + EquipmentStatus + ", PushTime=" + PushTime + "]"; + } + + +} diff --git a/src/main/java/com/zteits/irain/portal/web/fangle/FangleEqpController.java b/src/main/java/com/zteits/irain/portal/web/fangle/FangleEqpController.java index 235a050..8583f9d 100644 --- a/src/main/java/com/zteits/irain/portal/web/fangle/FangleEqpController.java +++ b/src/main/java/com/zteits/irain/portal/web/fangle/FangleEqpController.java @@ -3,9 +3,7 @@ package com.zteits.irain.portal.web.fangle; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; -import java.util.HashMap; import java.util.Map; -import java.util.Map.Entry; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -15,35 +13,18 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import com.alibaba.dubbo.common.utils.StringUtils; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.clouds.common.utils.ExceptionUtil; import com.clouds.common.web.BizController; import com.zteits.clouds.api.apibase.bean.BaseInfo; 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.park.param.BerthStateRequest; -import com.zteits.clouds.api.dto.park.param.EqpHeartBeatRequest; import com.zteits.clouds.api.dto.park.param.EqpLogRequest; -import com.zteits.clouds.api.dto.park.param.InParkingRequest; -import com.zteits.clouds.api.dto.park.param.OutParkingRequest; -import com.zteits.clouds.api.dto.park.param.InterfaceLogSaveRequest; import com.zteits.clouds.api.service.park.EqpBerthsService; -import com.zteits.clouds.api.service.park.InterfaceLogService; -import com.zteits.irain.portal.common.AESPlus; -import com.zteits.irain.portal.common.HttpClientTutorial; -import com.zteits.irain.portal.constant.IRainResultEnum; -import com.zteits.irain.portal.constant.ParkConstant.InterfaceLog; -import com.zteits.irain.portal.service.interfaces.inoutparklot.InOutParkLotReportService; -import com.zteits.irain.portal.service.interfaces.inoutparklot.param.RecordInParkLotRequest; -import com.zteits.irain.portal.service.interfaces.inoutparklot.param.RecordOutParkLotRequest; -import com.zteits.irain.portal.vo.irain.IRainResponseVO; +import com.zteits.irain.portal.vo.fangle.BerthStateRequest; +import com.zteits.irain.portal.vo.fangle.EqpHeartBeatRequest; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -105,7 +86,7 @@ public class FangleEqpController extends BizController{ eqpLogRequest.setElectricity(request.getElectricity()); eqpLogRequest.setVoltag(request.getVoltage()); - BizResult> result = eqpBerthsService.synBerthState(eqpLogRequest); + BizResult> result = eqpBerthsService.synEqpInfo(eqpLogRequest); return result; } @@ -149,7 +130,7 @@ public class FangleEqpController extends BizController{ } catch (ParseException e) { e.printStackTrace(); } - BizResult> result = eqpBerthsService.synBerthState(eqpLogRequest); + BizResult> result = eqpBerthsService.synEqpInfo(eqpLogRequest); return result; } diff --git a/src/main/java/com/zteits/irain/portal/web/parkinglotcloudplatform/datastatistic/BillManageController.java b/src/main/java/com/zteits/irain/portal/web/parkinglotcloudplatform/datastatistic/BillManageController.java index f422fe0..cf80470 100644 --- a/src/main/java/com/zteits/irain/portal/web/parkinglotcloudplatform/datastatistic/BillManageController.java +++ b/src/main/java/com/zteits/irain/portal/web/parkinglotcloudplatform/datastatistic/BillManageController.java @@ -83,21 +83,17 @@ public class BillManageController extends BizController { HttpServletResponse response) throws Exception { TdCustCompanyService sert = map.get("tdCustCompanyService"); logger.info("---begin--日账汇总单查询调用后场dubbo服务,入参={}", JSONObject.toJSON(billQueryRequest)); -// System.out.println("seesionId="+request.getSession().getId()); -// UserInfo userInfo = sessionCommUtil.getUserInfo(); -// logger.info("从session中获取的用户信息={}" + JSONObject.toJSONString(userInfo)); -// TdCompanyParkQueryRequest tdCompanyParkQueryRequest = new TdCompanyParkQueryRequest(); -// if (userInfo != null) { -// -// tdCompanyParkQueryRequest.setSysCode(billQueryRequest.getSysCode()); -// tdCompanyParkQueryRequest.setCustIdList(userInfo.getOrgIds()); -// tdCompanyParkQueryRequest.setSessionId(request.getSession().getId()); -// billQueryRequest.setParkIdList(this.queryParkNoByCustIds(tdCompanyParkQueryRequest)); -// } - // 2.调用接口查询当前登录人管辖的停车场名称 - UserInfo userInfo = sessionCommUtil.getUserInfo(); - List plNos = userInfo.getOrgIds(); - billQueryRequest.setParkIdList(plNos); + System.out.println("seesionId="+request.getSession().getId()); + UserInfo userInfo = sessionCommUtil.getUserInfo(); + logger.info("从session中获取的用户信息={}" + JSONObject.toJSONString(userInfo)); + TdCompanyParkQueryRequest tdCompanyParkQueryRequest = new TdCompanyParkQueryRequest(); + if (userInfo != null) { + + tdCompanyParkQueryRequest.setSysCode(billQueryRequest.getSysCode()); + tdCompanyParkQueryRequest.setCustIdList(userInfo.getOrgIds()); + tdCompanyParkQueryRequest.setSessionId(request.getSession().getId()); + billQueryRequest.setParkIdList(userInfo.getOrgIds()); + } BizResult> result = billManageForDayService.queryBillforDayTotalForPage(billQueryRequest); result.setErrMsg(billQueryRequest.getParkIdList().toString()); @@ -119,25 +115,18 @@ public class BillManageController extends BizController { HttpServletResponse response) throws Exception { BizResult> result = new BizResult>(); logger.info("---begin---日账单查看调用后场dubbo服务,入参={}", JSONObject.toJSONString(billQueryRequest)); -// TdCompanyParkQueryRequest tdCompanyParkQueryRequest = new TdCompanyParkQueryRequest(); -// UserInfo userInfo = (UserInfo) request.getSession().getAttribute(SessionEnum.USER_INFO.key()); -// logger.info("从session中获取的用户信息={}" + JSONObject.toJSONString(userInfo)); -// if (userInfo != null) { -// -// tdCompanyParkQueryRequest.setSysCode(billQueryRequest.getSysCode()); -// tdCompanyParkQueryRequest.setCustIdList(userInfo.getOrgIds()); -// tdCompanyParkQueryRequest.setSessionId(request.getSession().getId()); -// billQueryRequest.setUserName(userInfo.getName()); -// billQueryRequest.setParkIdList(this.queryParkNoByCustIds(tdCompanyParkQueryRequest)); -// -// } - - // 2.调用接口查询当前登录人管辖的停车场名称 - UserInfo userInfo = sessionCommUtil.getUserInfo(); - List plNos = userInfo.getOrgIds(); - billQueryRequest.setParkIdList(plNos); - billQueryRequest.setUserName(userInfo.getName()); - + TdCompanyParkQueryRequest tdCompanyParkQueryRequest = new TdCompanyParkQueryRequest(); + UserInfo userInfo = (UserInfo) request.getSession().getAttribute(SessionEnum.USER_INFO.key()); + logger.info("从session中获取的用户信息={}" + JSONObject.toJSONString(userInfo)); + if (userInfo != null) { + + tdCompanyParkQueryRequest.setSysCode(billQueryRequest.getSysCode()); + tdCompanyParkQueryRequest.setCustIdList(userInfo.getOrgIds()); + tdCompanyParkQueryRequest.setSessionId(request.getSession().getId()); + billQueryRequest.setUserName(userInfo.getName()); + billQueryRequest.setParkIdList(this.queryParkNoByCustIds(tdCompanyParkQueryRequest)); + + } result = billManageForDayService.queryBillforDayDeatilPage(billQueryRequest); logger.info("---end---日账单查看调用后场dubbo服务,结果={}", JSONObject.toJSON(result)); 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..6c00315 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; @@ -37,16 +30,21 @@ import com.zteits.clouds.api.apibase.bean.PageBean; import com.zteits.clouds.api.dto.clouds.dto.CustIncomeForPayTypeDTO; import com.zteits.clouds.api.dto.clouds.dto.CustIncomeTotalDTO; import com.zteits.clouds.api.dto.clouds.dto.CustIncomeTotalParkDTO; +import com.zteits.clouds.api.dto.clouds.dto.ParkingCountDTO; 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 +54,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 +95,13 @@ public class IndexPageStatisticController extends BizController { private ParkingLotUseStatisticService parkingLotStatisticService; @Autowired private ParkingLotEqpService parkingLotEqpService; - + + @Autowired + private ParkingLotQueryService parkingLotQueryService; + + @Autowired + private ParkingLotBerthsService parkingLotBerthsService; + /** * 云平台首页->企业客户负责所有的停车场汇总.
* @@ -101,7 +113,7 @@ public class IndexPageStatisticController extends BizController { public BizResultVO queryCustIncomeTotal( @RequestBody CustIncomeTotalQueryRequset custIncomeTotalQueryRequset) throws Exception { - + logger.info("---begin企业云平台首页-实际收入查询,入参={}",JSONObject.toJSON(custIncomeTotalQueryRequset)); BizResultVO bizResultVO = new BizResultVO<>(); BizResult result = cusIncomeService.queryCustIncomeTotal(custIncomeTotalQueryRequset); @@ -118,13 +130,13 @@ public class IndexPageStatisticController extends BizController { vo.setPayedTotalAmount(result.getData().getPayedTotalAmount().setScale(2, BigDecimal.ROUND_HALF_UP).toString()); bizResultVO.setData(vo); - + logger.info("---end企业云平台首页-实际收入查询"); return bizResultVO; } /** * 云平台首页->企业客户负责某个停车收入情况.
- * + * * @return * @throws Exception */ @@ -150,8 +162,6 @@ public class IndexPageStatisticController extends BizController { BigDecimal escapeAmount = dto.getEscapeAmount(); BigDecimal payedTotalAmount = dto.getPayedTotalAmount(); - - CustIncomeTotalParkVO vo = new CustIncomeTotalParkVO(); //金额为分 @@ -160,13 +170,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( @@ -180,57 +191,31 @@ public class IndexPageStatisticController extends BizController { /** * 云平台首页->企业客户负责某个停车不同的支付方式收入情况.
- * + * 说明: + * 1.2017-08-22将支付方式更改为饼图.
* @return * @throws Exception */ + @ApiOperation("企业客户负责某个停车不同的支付方式收入情况") @PostMapping("/queryCustIncomeForPayType") - public BizResultVO queryCustIncomeForPayType( + public BizResultVO> queryCustIncomeForPayType( @RequestBody CustIncomeTotalQueryRequset custIncomeTotalQueryRequset) throws Exception { - logger.info("调用后场dubbo服务,入参为: request={}", JSONObject.toJSONString(custIncomeTotalQueryRequset)); + logger.info("...begin企业客户负责某个停车不同的支付方式收入情况,入参为: request={}", JSONObject.toJSONString(custIncomeTotalQueryRequset)); BizResult> result = cusIncomeService.queryCustIncomeForPayType( custIncomeTotalQueryRequset); + logger.info("...end企业客户负责某个停车不同的支付方式收入情况,响应为: result={}", JSONObject.toJSONString(result)); + return new BizResultVO>(result); + } - logger.info("调用后场dubbo服务,响应为: result={}", JSONObject.toJSONString(result)); - //如果不成功 - if (!ResultUtils.isSuccess(result)) { - return new BizResultVO<>(result.getErrCode(), result.getErrMsg()); - } - List data = result.getData(); - - CustIncomeForPayTypeResVO res = new CustIncomeForPayTypeResVO(); - res.addLegendData("费用", "占比"); - - BigDecimal total = BigDecimal.ZERO; - List amount = new ArrayList<>(); - for (CustIncomeForPayTypeDTO dto : data) { - //添加X轴数据 - res.addXAxisData(dto.getPayTypeName()); - total = total.add(dto.getPayedTotalAmount()); - logger.info("返回的类型 和 数据为: payTypeName={},payedTotalAmount={},total={}", dto.getPayTypeName(), - dto.getPayedTotalAmount().toString(), total.toString()); - amount.add(dto.getPayedTotalAmount().setScale(2, BigDecimal.ROUND_HALF_UP) - .doubleValue() + ""); - } - //计算占比 - List zb = new ArrayList<>(); - for (CustIncomeForPayTypeDTO dto : data) { - logger.info("计算占比 total={}", total.toString()); - if (BigDecimal.ZERO.equals(total) || total.doubleValue() == 0.00) { - zb.add("0.00"); - } else { - zb.add(dto.getPayedTotalAmount().divide(total, 4, RoundingMode.HALF_UP) - .multiply(new BigDecimal("100.00")).doubleValue() + ""); - } + @ApiOperation("查询今日车流量占用率周转率") + @PostMapping("/queryTodayVehicleFlowOccupyRateAndTurnOver") + public BizResultVO> queryTodayVehicleFlowOccupyRateAndTurnOver( + @RequestBody CommonPlnosQueryRequest request) { + BizResult> bizResult = parkingLotStatisticService + .queryTodayVehicleFlowOccupyRateAndTurnOver(request); + return new BizResultVO<>(bizResult); - } - res.addChildData("费用", amount); - res.addChildData("占比", zb); - BizResultVO resResult = new BizResultVO<>(); - resResult.setData(res); - logger.info("返回到前台的数据为: res={}", JSONObject.toJSONString(res)); - return resResult; } /** @@ -240,10 +225,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 +266,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 +298,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 +336,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 +369,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 +405,102 @@ 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> realtimeTurnoverRate(@RequestBody CommonPlnosQueryRequest request) { + BizResultVO> res = new BizResultVO<>(); + Map resMap = new HashMap<>(); + //1、查询截止当前进场停车次数 + BizResult bizResult = iInOutParkingService.queryRealTimeInParkNumOfPlNos(request); + if(ResultUtils.isError(bizResult)){ + res.setCode(bizResult.getErrCode().getCode()); + res.setMsg(bizResult.getErrMsg()); + return res; + } + //2、根据停车场编号查询停车场总车位数 + BizResult berthResult = parkingLotQueryService.queryBerthNumByPlNos(request); + if(ResultUtils.isError(berthResult)){ + res.setCode(berthResult.getErrCode().getCode()); + res.setMsg(berthResult.getErrMsg()); + return res; + } + + //停车次数 + resMap.put("parkNum",bizResult.getData()); + //总车位数 + resMap.put("allBerthNum",berthResult.getData()); + double rate = bizResult.getData() * 1.0 / berthResult.getData() * 100; + String rateStr = new DecimalFormat("#.00").format(rate); + if(rate == 0){ + rateStr = "0.00"; + } + resMap.put("rate",rateStr); + res.setData(resMap); + return res; + } + + /** + * 今日实时占用率 + * + * @param request + * @return + * @desc 1-(今日实时空余车位数/总车位数) + */ + @ApiOperation("实时查询当前占用率") + @PostMapping("/realtimeoccupationRate") + public BizResultVO> realtimeoccupationRate(@RequestBody CommonPlnosQueryRequest request) { + BizResultVO> res = new BizResultVO<>(); + Map resMap = new HashMap<>(); + + //1、查询截止当前空余车位数 + BizResult bizResult = parkingLotBerthsService.queryAllFreeBerthNum(request); + if(ResultUtils.isError(bizResult)){ + res.setCode(bizResult.getErrCode().getCode()); + res.setMsg(bizResult.getErrMsg()); + return res; + } + //2、根据停车场编号查询停车场总车位数 + BizResult berthResult = parkingLotQueryService.queryBerthNumByPlNos(request); + if(ResultUtils.isError(berthResult)){ + res.setCode(berthResult.getErrCode().getCode()); + res.setMsg(berthResult.getErrMsg()); + return res; + } + //空余车位数 + resMap.put("freeBerthNum",bizResult.getData()); + //总车位数 + resMap.put("allBerthNum",berthResult.getData()); + + double rate = (1-bizResult.getData() * 1.0 / berthResult.getData()) * 100; + String rateStr = new DecimalFormat("#.00").format(rate); + if(rate == 0){ + rateStr = "0.00"; + } + resMap.put("rate",rateStr); + res.setData(resMap); + return res; + + } + + /** * 实时查询今日空置率
* 今日空置率:当天0:00到操作时间的每个时间戳的空置率做加权算法,
* 0:00-7:00加权10%,7:00-9:00加权40%,9:00-17:00加权15%,17:00-21:00加权25%,21:00-24:00加权10%,加权后的空置率之和除以时间戳数,得到“今日空置率” @@ -447,13 +531,13 @@ public class IndexPageStatisticController extends BizController { Double totalfreeRatio = 0.00; for (ParkingLotUseStatisticDTO statisticDTO : pageBean.getDataList()) { totalfreeRatio += statisticDTO.getFreeRatio(); - //暂时不加权 - //this.weightForFreeRation(statisticDTO.getStatisticBeginTime(), - //statisticDTO.getFreeRatio(), statisticDTO.getPlNo()); + //暂时不加权 + //this.weightForFreeRation(statisticDTO.getStatisticBeginTime(), + //statisticDTO.getFreeRatio(), statisticDTO.getPlNo()); } logger.info("加权后的空置率之和:" + totalfreeRatio + " 时间戳个数:" + pageBean.getDataList().size()); Double avgFreeRation = totalfreeRatio / pageBean.getDataList().size(); - String result = String.format("%.2f", avgFreeRation*100); + String result = String.format("%.2f", avgFreeRation * 100); return new BizResultVO().setData(result); } @@ -485,33 +569,42 @@ public class IndexPageStatisticController extends BizController { } } - public static void main(String[] args) { - BigDecimal m = BigDecimal.ZERO; - BigDecimal n = m.add(BigDecimal.TEN); - System.out.println(new BigDecimal("00.0").doubleValue() == 0); - } - /** - * @param request + * 企业云平台首页-->停车次数统计(饼图).
+ * 说明:从订单表中统计(逃逸,免费,月卡年卡,临时)停车次数.
+ * @param custIncomeTotalQueryRequset * @return - * 2017年8月18日 wangfei + * @throws Exception */ - @ApiOperation(value="根据停车场编号统计设备数量") - @PostMapping("statisticParkLotEqpCountByPlNos") - @ResponseBody - public BizResult> statisticParkLotEqpCountByPlNos(@RequestBody - EqpTypeQueryByPlNosRequest request){ - logger.info("停车场编号:"+request.getPlNos()+" 统计设备数量等信息"); - List resultList = new ArrayList<>(); + @ApiOperation("企业云平台首页-->停车次数统计(饼图)") + @PostMapping("/queryParingCount") + public BizResultVO> queryParingCount(@RequestBody CustIncomeTotalQueryRequset custIncomeTotalQueryRequset) throws Exception{ + logger.info("...begin停车次数统计->调用后场dubbo服务,入参为: request={}", JSONObject.toJSONString(custIncomeTotalQueryRequset)); + BizResult> result =cusIncomeService.queryParingCount(custIncomeTotalQueryRequset); + logger.info("...end停车次数统计->调用后场dubbo服务..."); + return new BizResultVO>(result); + } + + /** + * @param request + * @return 2017年8月18日 wangfei + */ + @ApiOperation(value = "根据停车场编号统计设备数量") + @PostMapping("statisticParkLotEqpCountByPlNos") + @ResponseBody + public BizResult> statisticParkLotEqpCountByPlNos(@RequestBody + EqpTypeQueryByPlNosRequest request) { + logger.info("停车场编号:" + request.getPlNos() + " 统计设备数量等信息"); + List resultList = new ArrayList<>(); BizResult> result = parkingLotEqpService - .StatisticParkLotEqpCountByPlNos(request); + .StatisticParkLotEqpCountByPlNos(request); if (!CollectionUtils.isEmpty(result.getData())) { - for (ParkLotEqpTypeCountStatisticByCountryDTO i :result.getData()) { - ParkLotEqpTypeCountVO vo = new ParkLotEqpTypeCountVO(); + for (ParkLotEqpTypeCountStatisticByCountryDTO i : result.getData()) { + ParkLotEqpTypeCountVO vo = new ParkLotEqpTypeCountVO(); BeanUtils.copyProperties(i, vo); resultList.add(vo); } } return new BizResult<>(resultList); - } + } } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 7b7ac06..d086d1f 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,5 +1,5 @@ -project.syscode=zteits-park-portal -spring.application.name=zteits-park-portal +project.syscode=zteits-bcp-portal +spring.application.name=zteits-bcp-portal server.port=8099 # logging @@ -7,6 +7,7 @@ logging.level.root=info #logging.level.org.springframework.web=DEBUG logging.level.com.zteits.irain.portal=debug #logging.path=${user.home}/logs +logging.path=./logs/${spring.application.name} logging.file=${spring.application.name}.log logging.config=classpath:logback-spring.xml