Commit 8a73bc9c04260a31a6604e941ba12016ec7d4b91

Authored by llw
2 parents 3168235e 7d45aebd

Merge branch 'branch_0808' of http://192.168.1.195:9998/ZTEITS-Developers/zteits…

…-bcp-portal.git into branch_0808
.gitignore
1 # Created by .ignore support plugin (hsz.mobi) 1 # Created by .ignore support plugin (hsz.mobi)
  2 +### JetBrains template
  3 +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
  4 +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
  5 +
  6 +# User-specific stuff:
  7 +.idea/**/workspace.xml
  8 +.idea/**/tasks.xml
  9 +.idea/dictionaries
  10 +
  11 +# Sensitive or high-churn files:
  12 +.idea/**/dataSources/
  13 +.idea/**/dataSources.ids
  14 +.idea/**/dataSources.xml
  15 +.idea/**/dataSources.local.xml
  16 +.idea/**/sqlDataSources.xml
  17 +.idea/**/dynamic.xml
  18 +.idea/**/uiDesigner.xml
  19 +
  20 +# Gradle:
  21 +.idea/**/gradle.xml
  22 +.idea/**/libraries
  23 +
  24 +# Mongo Explorer plugin:
  25 +.idea/**/mongoSettings.xml
  26 +
  27 +## File-based project format:
  28 +*.iws
  29 +
  30 +## Plugin-specific files:
  31 +
  32 +# IntelliJ
  33 +/out/
  34 +
  35 +# mpeltonen/sbt-idea plugin
  36 +.idea_modules/
  37 +
  38 +# JIRA plugin
  39 +atlassian-ide-plugin.xml
  40 +
  41 +# Crashlytics plugin (for Android Studio and IntelliJ)
  42 +com_crashlytics_export_strings.xml
  43 +crashlytics.properties
  44 +crashlytics-build.properties
  45 +fabric.properties
  46 +### Maven template
  47 +target/
  48 +pom.xml.tag
  49 +pom.xml.releaseBackup
  50 +pom.xml.versionsBackup
  51 +pom.xml.next
  52 +release.properties
  53 +dependency-reduced-pom.xml
  54 +buildNumber.properties
  55 +.mvn/timing.properties
  56 +
  57 +# Avoid ignoring Maven wrapper jar file (.jar files are usually ignored)
  58 +!/.mvn/wrapper/maven-wrapper.jar
2 ### macOS template 59 ### macOS template
3 *.DS_Store 60 *.DS_Store
4 .AppleDouble 61 .AppleDouble
@@ -26,75 +83,5 @@ Icon @@ -26,75 +83,5 @@ Icon
26 Network Trash Folder 83 Network Trash Folder
27 Temporary Items 84 Temporary Items
28 .apdisk 85 .apdisk
29 -### Maven template  
30 -target/  
31 -pom.xml.tag  
32 -pom.xml.releaseBackup  
33 -pom.xml.versionsBackup  
34 -pom.xml.next  
35 -release.properties  
36 -dependency-reduced-pom.xml  
37 -buildNumber.properties  
38 -.mvn/timing.properties  
39 -  
40 -# Avoid ignoring Maven wrapper jar file (.jar files are usually ignored)  
41 -!/.mvn/wrapper/maven-wrapper.jar  
42 -### Eclipse template  
43 -  
44 -.metadata  
45 -bin/  
46 -tmp/  
47 -*.tmp  
48 -*.bak  
49 -*.swp  
50 -*~.nib  
51 -local.properties  
52 -.settings/  
53 -.loadpath  
54 -.recommenders  
55 -  
56 -# Eclipse Core  
57 -.project  
58 -  
59 -# External tool builders  
60 -.externalToolBuilders/  
61 -  
62 -# Locally stored "Eclipse launch configurations"  
63 -*.launch  
64 -  
65 -# PyDev specific (Python IDE for Eclipse)  
66 -*.pydevproject  
67 -  
68 -# CDT-specific (C/C++ Development Tooling)  
69 -.cproject  
70 -  
71 -# JDT-specific (Eclipse Java Development Tools)  
72 -.classpath  
73 -  
74 -# Java annotation processor (APT)  
75 -.factorypath  
76 -  
77 -# PDT-specific (PHP Development Tools)  
78 -.buildpath  
79 -  
80 -# sbteclipse plugin  
81 -.target  
82 -  
83 -# Tern plugin  
84 -.tern-project  
85 -  
86 -# TeXlipse plugin  
87 -.texlipse  
88 -  
89 -# STS (Spring Tool Suite)  
90 -.springBeans  
91 -  
92 -# Code Recommenders  
93 -.recommenders/  
94 86
95 -# Scala IDE specific (Scala & Java development for Eclipse)  
96 -.cache-main  
97 -.scala_dependencies  
98 -.worksheet  
99 -.idea  
100 *.iml 87 *.iml
src/main/java/com/zteits/irain/portal/vo/fangle/BerthStateRequest.java 0 → 100644
  1 +package com.zteits.irain.portal.vo.fangle;
  2 +
  3 +import com.zteits.clouds.api.apibase.bean.BaseRequest;
  4 +
  5 +public class BerthStateRequest extends BaseRequest{
  6 +
  7 + private static final long serialVersionUID = 1L;
  8 +
  9 + /**记录编号*/
  10 + private String log_id;
  11 +
  12 + /**泊位编码*/
  13 + private String berthcode;
  14 +
  15 + /**状态变更时间*/
  16 + private String changetime;
  17 +
  18 + /**泊位状态*/
  19 + private String berthstatus;
  20 +
  21 + /**电量*/
  22 + private String electricity;
  23 +
  24 + /**电压值*/
  25 + private String voltage;
  26 +
  27 + public String getLog_id() {
  28 + return log_id;
  29 + }
  30 +
  31 + public void setLog_id(String log_id) {
  32 + this.log_id = log_id;
  33 + }
  34 +
  35 + public String getBerthcode() {
  36 + return berthcode;
  37 + }
  38 +
  39 + public void setBerthcode(String berthcode) {
  40 + this.berthcode = berthcode;
  41 + }
  42 +
  43 + public String getChangetime() {
  44 + return changetime;
  45 + }
  46 +
  47 + public void setChangetime(String changetime) {
  48 + this.changetime = changetime;
  49 + }
  50 +
  51 + public String getBerthstatus() {
  52 + return berthstatus;
  53 + }
  54 +
  55 + public void setBerthstatus(String berthstatus) {
  56 + this.berthstatus = berthstatus;
  57 + }
  58 +
  59 + public String getElectricity() {
  60 + return electricity;
  61 + }
  62 +
  63 + public void setElectricity(String electricity) {
  64 + this.electricity = electricity;
  65 + }
  66 +
  67 + public String getVoltage() {
  68 + return voltage;
  69 + }
  70 +
  71 + public void setVoltage(String voltage) {
  72 + this.voltage = voltage;
  73 + }
  74 +
  75 + @Override
  76 + public String toString() {
  77 + return "BerthStateRequest [log_id=" + log_id + ", berthcode=" + berthcode + ", changetime=" + changetime
  78 + + ", berthstatus=" + berthstatus + ", electricity=" + electricity + ", voltage=" + voltage + "]";
  79 + }
  80 +
  81 +
  82 +}
src/main/java/com/zteits/irain/portal/vo/fangle/EqpHeartBeatRequest.java 0 → 100644
  1 +package com.zteits.irain.portal.vo.fangle;
  2 +
  3 +import com.zteits.clouds.api.apibase.bean.BaseRequest;
  4 +
  5 +public class EqpHeartBeatRequest extends BaseRequest{
  6 +
  7 + private static final long serialVersionUID = 1L;
  8 +
  9 + /**设备类型*/
  10 + private String EquipmentType;
  11 +
  12 + /**设备编号*/
  13 + private String EquipmentCode;
  14 +
  15 + /**设备状态*/
  16 + private String EquipmentStatus;
  17 +
  18 + /**推送时间*/
  19 + private String PushTime;
  20 +
  21 + public String getEquipmentType() {
  22 + return EquipmentType;
  23 + }
  24 +
  25 + public void setEquipmentType(String equipmentType) {
  26 + EquipmentType = equipmentType;
  27 + }
  28 +
  29 + public String getEquipmentCode() {
  30 + return EquipmentCode;
  31 + }
  32 +
  33 + public void setEquipmentCode(String equipmentCode) {
  34 + EquipmentCode = equipmentCode;
  35 + }
  36 +
  37 + public String getEquipmentStatus() {
  38 + return EquipmentStatus;
  39 + }
  40 +
  41 + public void setEquipmentStatus(String equipmentStatus) {
  42 + EquipmentStatus = equipmentStatus;
  43 + }
  44 +
  45 + public String getPushTime() {
  46 + return PushTime;
  47 + }
  48 +
  49 + public void setPushTime(String pushTime) {
  50 + PushTime = pushTime;
  51 + }
  52 +
  53 + @Override
  54 + public String toString() {
  55 + return "EqpHeartBeatRequest [EquipmentType=" + EquipmentType + ", EquipmentCode=" + EquipmentCode
  56 + + ", EquipmentStatus=" + EquipmentStatus + ", PushTime=" + PushTime + "]";
  57 + }
  58 +
  59 +
  60 +}
src/main/java/com/zteits/irain/portal/web/fangle/FangleEqpController.java
@@ -3,9 +3,7 @@ package com.zteits.irain.portal.web.fangle; @@ -3,9 +3,7 @@ package com.zteits.irain.portal.web.fangle;
3 import java.text.ParseException; 3 import java.text.ParseException;
4 import java.text.SimpleDateFormat; 4 import java.text.SimpleDateFormat;
5 import java.util.Date; 5 import java.util.Date;
6 -import java.util.HashMap;  
7 import java.util.Map; 6 import java.util.Map;
8 -import java.util.Map.Entry;  
9 7
10 import org.slf4j.Logger; 8 import org.slf4j.Logger;
11 import org.slf4j.LoggerFactory; 9 import org.slf4j.LoggerFactory;
@@ -15,35 +13,18 @@ import org.springframework.beans.factory.annotation.Value; @@ -15,35 +13,18 @@ import org.springframework.beans.factory.annotation.Value;
15 import org.springframework.web.bind.annotation.RequestBody; 13 import org.springframework.web.bind.annotation.RequestBody;
16 import org.springframework.web.bind.annotation.RequestMapping; 14 import org.springframework.web.bind.annotation.RequestMapping;
17 import org.springframework.web.bind.annotation.RequestMethod; 15 import org.springframework.web.bind.annotation.RequestMethod;
18 -import org.springframework.web.bind.annotation.RequestParam;  
19 import org.springframework.web.bind.annotation.RestController; 16 import org.springframework.web.bind.annotation.RestController;
20 17
21 -import com.alibaba.dubbo.common.utils.StringUtils;  
22 import com.alibaba.fastjson.JSON; 18 import com.alibaba.fastjson.JSON;
23 import com.alibaba.fastjson.JSONArray; 19 import com.alibaba.fastjson.JSONArray;
24 import com.alibaba.fastjson.JSONObject; 20 import com.alibaba.fastjson.JSONObject;
25 -import com.clouds.common.utils.ExceptionUtil;  
26 import com.clouds.common.web.BizController; 21 import com.clouds.common.web.BizController;
27 import com.zteits.clouds.api.apibase.bean.BaseInfo; 22 import com.zteits.clouds.api.apibase.bean.BaseInfo;
28 import com.zteits.clouds.api.apibase.bean.BizResult; 23 import com.zteits.clouds.api.apibase.bean.BizResult;
29 -import com.zteits.clouds.api.apibase.constants.ErrorType;  
30 -import com.zteits.clouds.api.apibase.exception.BizException;  
31 -import com.zteits.clouds.api.dto.park.param.BerthStateRequest;  
32 -import com.zteits.clouds.api.dto.park.param.EqpHeartBeatRequest;  
33 import com.zteits.clouds.api.dto.park.param.EqpLogRequest; 24 import com.zteits.clouds.api.dto.park.param.EqpLogRequest;
34 -import com.zteits.clouds.api.dto.park.param.InParkingRequest;  
35 -import com.zteits.clouds.api.dto.park.param.OutParkingRequest;  
36 -import com.zteits.clouds.api.dto.park.param.InterfaceLogSaveRequest;  
37 import com.zteits.clouds.api.service.park.EqpBerthsService; 25 import com.zteits.clouds.api.service.park.EqpBerthsService;
38 -import com.zteits.clouds.api.service.park.InterfaceLogService;  
39 -import com.zteits.irain.portal.common.AESPlus;  
40 -import com.zteits.irain.portal.common.HttpClientTutorial;  
41 -import com.zteits.irain.portal.constant.IRainResultEnum;  
42 -import com.zteits.irain.portal.constant.ParkConstant.InterfaceLog;  
43 -import com.zteits.irain.portal.service.interfaces.inoutparklot.InOutParkLotReportService;  
44 -import com.zteits.irain.portal.service.interfaces.inoutparklot.param.RecordInParkLotRequest;  
45 -import com.zteits.irain.portal.service.interfaces.inoutparklot.param.RecordOutParkLotRequest;  
46 -import com.zteits.irain.portal.vo.irain.IRainResponseVO; 26 +import com.zteits.irain.portal.vo.fangle.BerthStateRequest;
  27 +import com.zteits.irain.portal.vo.fangle.EqpHeartBeatRequest;
47 28
48 import io.swagger.annotations.Api; 29 import io.swagger.annotations.Api;
49 import io.swagger.annotations.ApiOperation; 30 import io.swagger.annotations.ApiOperation;
@@ -105,7 +86,7 @@ public class FangleEqpController extends BizController{ @@ -105,7 +86,7 @@ public class FangleEqpController extends BizController{
105 eqpLogRequest.setElectricity(request.getElectricity()); 86 eqpLogRequest.setElectricity(request.getElectricity());
106 eqpLogRequest.setVoltag(request.getVoltage()); 87 eqpLogRequest.setVoltag(request.getVoltage());
107 88
108 - BizResult<Map<String, String>> result = eqpBerthsService.synBerthState(eqpLogRequest); 89 + BizResult<Map<String, String>> result = eqpBerthsService.synEqpInfo(eqpLogRequest);
109 return result; 90 return result;
110 } 91 }
111 92
@@ -149,7 +130,7 @@ public class FangleEqpController extends BizController{ @@ -149,7 +130,7 @@ public class FangleEqpController extends BizController{
149 } catch (ParseException e) { 130 } catch (ParseException e) {
150 e.printStackTrace(); 131 e.printStackTrace();
151 } 132 }
152 - BizResult<Map<String, String>> result = eqpBerthsService.synBerthState(eqpLogRequest); 133 + BizResult<Map<String, String>> result = eqpBerthsService.synEqpInfo(eqpLogRequest);
153 return result; 134 return result;
154 } 135 }
155 136
src/main/java/com/zteits/irain/portal/web/parkinglotcloudplatform/datastatistic/BillManageController.java
@@ -83,21 +83,17 @@ public class BillManageController extends BizController { @@ -83,21 +83,17 @@ public class BillManageController extends BizController {
83 HttpServletResponse response) throws Exception { 83 HttpServletResponse response) throws Exception {
84 TdCustCompanyService sert = map.get("tdCustCompanyService"); 84 TdCustCompanyService sert = map.get("tdCustCompanyService");
85 logger.info("---begin--日账汇总单查询调用后场dubbo服务,入参={}", JSONObject.toJSON(billQueryRequest)); 85 logger.info("---begin--日账汇总单查询调用后场dubbo服务,入参={}", JSONObject.toJSON(billQueryRequest));
86 -// System.out.println("seesionId="+request.getSession().getId());  
87 -// UserInfo userInfo = sessionCommUtil.getUserInfo();  
88 -// logger.info("从session中获取的用户信息={}" + JSONObject.toJSONString(userInfo));  
89 -// TdCompanyParkQueryRequest tdCompanyParkQueryRequest = new TdCompanyParkQueryRequest();  
90 -// if (userInfo != null) {  
91 -//  
92 -// tdCompanyParkQueryRequest.setSysCode(billQueryRequest.getSysCode());  
93 -// tdCompanyParkQueryRequest.setCustIdList(userInfo.getOrgIds());  
94 -// tdCompanyParkQueryRequest.setSessionId(request.getSession().getId());  
95 -// billQueryRequest.setParkIdList(this.queryParkNoByCustIds(tdCompanyParkQueryRequest));  
96 -// }  
97 - // 2.调用接口查询当前登录人管辖的停车场名称  
98 - UserInfo userInfo = sessionCommUtil.getUserInfo();  
99 - List<String> plNos = userInfo.getOrgIds();  
100 - billQueryRequest.setParkIdList(plNos); 86 + System.out.println("seesionId="+request.getSession().getId());
  87 + UserInfo userInfo = sessionCommUtil.getUserInfo();
  88 + logger.info("从session中获取的用户信息={}" + JSONObject.toJSONString(userInfo));
  89 + TdCompanyParkQueryRequest tdCompanyParkQueryRequest = new TdCompanyParkQueryRequest();
  90 + if (userInfo != null) {
  91 +
  92 + tdCompanyParkQueryRequest.setSysCode(billQueryRequest.getSysCode());
  93 + tdCompanyParkQueryRequest.setCustIdList(userInfo.getOrgIds());
  94 + tdCompanyParkQueryRequest.setSessionId(request.getSession().getId());
  95 + billQueryRequest.setParkIdList(userInfo.getOrgIds());
  96 + }
101 97
102 BizResult<PageBean<BillManageDTO>> result = billManageForDayService.queryBillforDayTotalForPage(billQueryRequest); 98 BizResult<PageBean<BillManageDTO>> result = billManageForDayService.queryBillforDayTotalForPage(billQueryRequest);
103 result.setErrMsg(billQueryRequest.getParkIdList().toString()); 99 result.setErrMsg(billQueryRequest.getParkIdList().toString());
@@ -119,25 +115,18 @@ public class BillManageController extends BizController { @@ -119,25 +115,18 @@ public class BillManageController extends BizController {
119 HttpServletResponse response) throws Exception { 115 HttpServletResponse response) throws Exception {
120 BizResult<PageBean<BillManageDTO>> result = new BizResult<PageBean<BillManageDTO>>(); 116 BizResult<PageBean<BillManageDTO>> result = new BizResult<PageBean<BillManageDTO>>();
121 logger.info("---begin---日账单查看调用后场dubbo服务,入参={}", JSONObject.toJSONString(billQueryRequest)); 117 logger.info("---begin---日账单查看调用后场dubbo服务,入参={}", JSONObject.toJSONString(billQueryRequest));
122 -// TdCompanyParkQueryRequest tdCompanyParkQueryRequest = new TdCompanyParkQueryRequest();  
123 -// UserInfo userInfo = (UserInfo) request.getSession().getAttribute(SessionEnum.USER_INFO.key());  
124 -// logger.info("从session中获取的用户信息={}" + JSONObject.toJSONString(userInfo));  
125 -// if (userInfo != null) {  
126 -//  
127 -// tdCompanyParkQueryRequest.setSysCode(billQueryRequest.getSysCode());  
128 -// tdCompanyParkQueryRequest.setCustIdList(userInfo.getOrgIds());  
129 -// tdCompanyParkQueryRequest.setSessionId(request.getSession().getId());  
130 -// billQueryRequest.setUserName(userInfo.getName());  
131 -// billQueryRequest.setParkIdList(this.queryParkNoByCustIds(tdCompanyParkQueryRequest));  
132 -//  
133 -// }  
134 -  
135 - // 2.调用接口查询当前登录人管辖的停车场名称  
136 - UserInfo userInfo = sessionCommUtil.getUserInfo();  
137 - List<String> plNos = userInfo.getOrgIds();  
138 - billQueryRequest.setParkIdList(plNos);  
139 - billQueryRequest.setUserName(userInfo.getName());  
140 - 118 + TdCompanyParkQueryRequest tdCompanyParkQueryRequest = new TdCompanyParkQueryRequest();
  119 + UserInfo userInfo = (UserInfo) request.getSession().getAttribute(SessionEnum.USER_INFO.key());
  120 + logger.info("从session中获取的用户信息={}" + JSONObject.toJSONString(userInfo));
  121 + if (userInfo != null) {
  122 +
  123 + tdCompanyParkQueryRequest.setSysCode(billQueryRequest.getSysCode());
  124 + tdCompanyParkQueryRequest.setCustIdList(userInfo.getOrgIds());
  125 + tdCompanyParkQueryRequest.setSessionId(request.getSession().getId());
  126 + billQueryRequest.setUserName(userInfo.getName());
  127 + billQueryRequest.setParkIdList(this.queryParkNoByCustIds(tdCompanyParkQueryRequest));
  128 +
  129 + }
141 result = billManageForDayService.queryBillforDayDeatilPage(billQueryRequest); 130 result = billManageForDayService.queryBillforDayDeatilPage(billQueryRequest);
142 logger.info("---end---日账单查看调用后场dubbo服务,结果={}", JSONObject.toJSON(result)); 131 logger.info("---end---日账单查看调用后场dubbo服务,结果={}", JSONObject.toJSON(result));
143 132
src/main/java/com/zteits/irain/portal/web/parkinglotcloudplatform/datastatistic/IndexPageStatisticController.java
@@ -2,28 +2,21 @@ package com.zteits.irain.portal.web.parkinglotcloudplatform.datastatistic; @@ -2,28 +2,21 @@ package com.zteits.irain.portal.web.parkinglotcloudplatform.datastatistic;
2 2
3 import java.math.BigDecimal; 3 import java.math.BigDecimal;
4 import java.math.RoundingMode; 4 import java.math.RoundingMode;
  5 +import java.text.DecimalFormat;
5 import java.util.ArrayList; 6 import java.util.ArrayList;
6 import java.util.Calendar; 7 import java.util.Calendar;
7 import java.util.Date; 8 import java.util.Date;
  9 +import java.util.HashMap;
8 import java.util.List; 10 import java.util.List;
9 import java.util.Map; 11 import java.util.Map;
10 import java.util.Map.Entry; 12 import java.util.Map.Entry;
11 13
12 import javax.validation.Valid; 14 import javax.validation.Valid;
13 15
14 -import org.slf4j.Logger;  
15 -import org.slf4j.LoggerFactory;  
16 -import org.springframework.beans.BeanUtils;  
17 -import org.springframework.beans.factory.annotation.Autowired;  
18 -import org.springframework.web.bind.annotation.PostMapping;  
19 -import org.springframework.web.bind.annotation.RequestBody;  
20 -import org.springframework.web.bind.annotation.RequestMapping;  
21 -import org.springframework.web.bind.annotation.ResponseBody;  
22 -import org.springframework.web.bind.annotation.RestController;  
23 -  
24 import com.alibaba.dubbo.common.utils.CollectionUtils; 16 import com.alibaba.dubbo.common.utils.CollectionUtils;
25 import com.alibaba.fastjson.JSON; 17 import com.alibaba.fastjson.JSON;
26 import com.alibaba.fastjson.JSONObject; 18 import com.alibaba.fastjson.JSONObject;
  19 +
27 import com.clouds.common.cache.park.ParkingLotCacheUtil; 20 import com.clouds.common.cache.park.ParkingLotCacheUtil;
28 import com.clouds.common.utils.DateUtil; 21 import com.clouds.common.utils.DateUtil;
29 import com.clouds.common.utils.ResultUtils; 22 import com.clouds.common.utils.ResultUtils;
@@ -37,16 +30,21 @@ import com.zteits.clouds.api.apibase.bean.PageBean; @@ -37,16 +30,21 @@ import com.zteits.clouds.api.apibase.bean.PageBean;
37 import com.zteits.clouds.api.dto.clouds.dto.CustIncomeForPayTypeDTO; 30 import com.zteits.clouds.api.dto.clouds.dto.CustIncomeForPayTypeDTO;
38 import com.zteits.clouds.api.dto.clouds.dto.CustIncomeTotalDTO; 31 import com.zteits.clouds.api.dto.clouds.dto.CustIncomeTotalDTO;
39 import com.zteits.clouds.api.dto.clouds.dto.CustIncomeTotalParkDTO; 32 import com.zteits.clouds.api.dto.clouds.dto.CustIncomeTotalParkDTO;
  33 +import com.zteits.clouds.api.dto.clouds.dto.ParkingCountDTO;
40 import com.zteits.clouds.api.dto.clouds.param.CustIncomeTotalQueryRequset; 34 import com.zteits.clouds.api.dto.clouds.param.CustIncomeTotalQueryRequset;
41 import com.zteits.clouds.api.dto.park.dto.ParkLotEqpTypeCountStatisticByCountryDTO; 35 import com.zteits.clouds.api.dto.park.dto.ParkLotEqpTypeCountStatisticByCountryDTO;
42 import com.zteits.clouds.api.dto.park.dto.ParkingLotDTO; 36 import com.zteits.clouds.api.dto.park.dto.ParkingLotDTO;
43 import com.zteits.clouds.api.dto.park.dto.ParkingLotUseStatisticDTO; 37 import com.zteits.clouds.api.dto.park.dto.ParkingLotUseStatisticDTO;
  38 +import com.zteits.clouds.api.dto.park.dto.TodayVehicleFlowOccupyRateAndTurnOverDTO;
  39 +import com.zteits.clouds.api.dto.park.param.CommonPlnosQueryRequest;
44 import com.zteits.clouds.api.dto.park.param.EqpTypeQueryByPlNosRequest; 40 import com.zteits.clouds.api.dto.park.param.EqpTypeQueryByPlNosRequest;
45 import com.zteits.clouds.api.dto.park.param.ParkingLotUseStatisticForPageRequest; 41 import com.zteits.clouds.api.dto.park.param.ParkingLotUseStatisticForPageRequest;
46 import com.zteits.clouds.api.dto.park.param.RealTimeVehicleFlowQueryRequest; 42 import com.zteits.clouds.api.dto.park.param.RealTimeVehicleFlowQueryRequest;
47 import com.zteits.clouds.api.service.clouds.CustIncomeService; 43 import com.zteits.clouds.api.service.clouds.CustIncomeService;
48 import com.zteits.clouds.api.service.park.IInOutParkingService; 44 import com.zteits.clouds.api.service.park.IInOutParkingService;
  45 +import com.zteits.clouds.api.service.park.ParkingLotBerthsService;
49 import com.zteits.clouds.api.service.park.ParkingLotEqpService; 46 import com.zteits.clouds.api.service.park.ParkingLotEqpService;
  47 +import com.zteits.clouds.api.service.park.ParkingLotQueryService;
50 import com.zteits.clouds.api.service.park.ParkingLotUseStatisticService; 48 import com.zteits.clouds.api.service.park.ParkingLotUseStatisticService;
51 import com.zteits.irain.portal.constant.ParkConstant; 49 import com.zteits.irain.portal.constant.ParkConstant;
52 import com.zteits.irain.portal.vo.parkinglotcloudplatform.datastatistic.BerthsAndFlowLineChartVO; 50 import com.zteits.irain.portal.vo.parkinglotcloudplatform.datastatistic.BerthsAndFlowLineChartVO;
@@ -56,8 +54,16 @@ import com.zteits.irain.portal.vo.parkinglotcloudplatform.datastatistic.CustInco @@ -56,8 +54,16 @@ import com.zteits.irain.portal.vo.parkinglotcloudplatform.datastatistic.CustInco
56 import com.zteits.irain.portal.vo.parkinglotcloudplatform.datastatistic.LineChartVO; 54 import com.zteits.irain.portal.vo.parkinglotcloudplatform.datastatistic.LineChartVO;
57 import com.zteits.irain.portal.vo.parkinglotcloudplatform.datastatistic.LineChartVO.SerieVO; 55 import com.zteits.irain.portal.vo.parkinglotcloudplatform.datastatistic.LineChartVO.SerieVO;
58 import com.zteits.irain.portal.vo.parkinglotcloudplatform.datastatistic.ParkLotEqpTypeCountVO; 56 import com.zteits.irain.portal.vo.parkinglotcloudplatform.datastatistic.ParkLotEqpTypeCountVO;
59 -  
60 import io.swagger.annotations.ApiOperation; 57 import io.swagger.annotations.ApiOperation;
  58 +import org.slf4j.Logger;
  59 +import org.slf4j.LoggerFactory;
  60 +import org.springframework.beans.BeanUtils;
  61 +import org.springframework.beans.factory.annotation.Autowired;
  62 +import org.springframework.web.bind.annotation.PostMapping;
  63 +import org.springframework.web.bind.annotation.RequestBody;
  64 +import org.springframework.web.bind.annotation.RequestMapping;
  65 +import org.springframework.web.bind.annotation.ResponseBody;
  66 +import org.springframework.web.bind.annotation.RestController;
61 67
62 /** 68 /**
63 * Copyright: Copyright (c) 2017 zteits 69 * Copyright: Copyright (c) 2017 zteits
@@ -89,7 +95,13 @@ public class IndexPageStatisticController extends BizController { @@ -89,7 +95,13 @@ public class IndexPageStatisticController extends BizController {
89 private ParkingLotUseStatisticService parkingLotStatisticService; 95 private ParkingLotUseStatisticService parkingLotStatisticService;
90 @Autowired 96 @Autowired
91 private ParkingLotEqpService parkingLotEqpService; 97 private ParkingLotEqpService parkingLotEqpService;
92 - 98 +
  99 + @Autowired
  100 + private ParkingLotQueryService parkingLotQueryService;
  101 +
  102 + @Autowired
  103 + private ParkingLotBerthsService parkingLotBerthsService;
  104 +
93 /** 105 /**
94 * 云平台首页->企业客户负责所有的停车场汇总.<br/> 106 * 云平台首页->企业客户负责所有的停车场汇总.<br/>
95 * 107 *
@@ -101,7 +113,7 @@ public class IndexPageStatisticController extends BizController { @@ -101,7 +113,7 @@ public class IndexPageStatisticController extends BizController {
101 public BizResultVO<CustIncomeTotalVO> queryCustIncomeTotal( 113 public BizResultVO<CustIncomeTotalVO> queryCustIncomeTotal(
102 @RequestBody CustIncomeTotalQueryRequset custIncomeTotalQueryRequset) 114 @RequestBody CustIncomeTotalQueryRequset custIncomeTotalQueryRequset)
103 throws Exception { 115 throws Exception {
104 - 116 + logger.info("---begin企业云平台首页-实际收入查询,入参={}",JSONObject.toJSON(custIncomeTotalQueryRequset));
105 BizResultVO<CustIncomeTotalVO> bizResultVO = new BizResultVO<>(); 117 BizResultVO<CustIncomeTotalVO> bizResultVO = new BizResultVO<>();
106 118
107 BizResult<CustIncomeTotalDTO> result = cusIncomeService.queryCustIncomeTotal(custIncomeTotalQueryRequset); 119 BizResult<CustIncomeTotalDTO> result = cusIncomeService.queryCustIncomeTotal(custIncomeTotalQueryRequset);
@@ -118,13 +130,13 @@ public class IndexPageStatisticController extends BizController { @@ -118,13 +130,13 @@ public class IndexPageStatisticController extends BizController {
118 vo.setPayedTotalAmount(result.getData().getPayedTotalAmount().setScale(2, BigDecimal.ROUND_HALF_UP).toString()); 130 vo.setPayedTotalAmount(result.getData().getPayedTotalAmount().setScale(2, BigDecimal.ROUND_HALF_UP).toString());
119 131
120 bizResultVO.setData(vo); 132 bizResultVO.setData(vo);
121 - 133 + logger.info("---end企业云平台首页-实际收入查询");
122 return bizResultVO; 134 return bizResultVO;
123 } 135 }
124 136
125 /** 137 /**
126 * 云平台首页->企业客户负责某个停车收入情况.<br/> 138 * 云平台首页->企业客户负责某个停车收入情况.<br/>
127 - * 139 + *
128 * @return 140 * @return
129 * @throws Exception 141 * @throws Exception
130 */ 142 */
@@ -150,8 +162,6 @@ public class IndexPageStatisticController extends BizController { @@ -150,8 +162,6 @@ public class IndexPageStatisticController extends BizController {
150 BigDecimal escapeAmount = dto.getEscapeAmount(); 162 BigDecimal escapeAmount = dto.getEscapeAmount();
151 BigDecimal payedTotalAmount = dto.getPayedTotalAmount(); 163 BigDecimal payedTotalAmount = dto.getPayedTotalAmount();
152 164
153 -  
154 -  
155 CustIncomeTotalParkVO vo = new CustIncomeTotalParkVO(); 165 CustIncomeTotalParkVO vo = new CustIncomeTotalParkVO();
156 166
157 //金额为分 167 //金额为分
@@ -160,13 +170,14 @@ public class IndexPageStatisticController extends BizController { @@ -160,13 +170,14 @@ public class IndexPageStatisticController extends BizController {
160 vo.setPayedTotalAmount(payedTotalAmount.setScale(2, BigDecimal.ROUND_HALF_UP).toString()); 170 vo.setPayedTotalAmount(payedTotalAmount.setScale(2, BigDecimal.ROUND_HALF_UP).toString());
161 //占比乘以100取两位小数 171 //占比乘以100取两位小数
162 //应收 172 //应收
163 - if (null == amountDueTotal || amountDueTotal.doubleValue()==0) { 173 + if (null == amountDueTotal || amountDueTotal.doubleValue() == 0) {
164 vo.setLoopData(1, "00.00"); 174 vo.setLoopData(1, "00.00");
165 vo.setLoopData(2, "00.00"); 175 vo.setLoopData(2, "00.00");
166 176
167 } else { 177 } else {
168 //实收 178 //实收
169 - vo.setLoopData(1, payedTotalAmount.divide(amountDueTotal, 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100.00")) 179 + vo.setLoopData(1, payedTotalAmount.divide(amountDueTotal, 4, BigDecimal.ROUND_HALF_UP).multiply(
  180 + new BigDecimal("100.00"))
170 .setScale(2, BigDecimal.ROUND_HALF_UP).toString()); 181 .setScale(2, BigDecimal.ROUND_HALF_UP).toString());
171 //逃逸 182 //逃逸
172 vo.setLoopData(2, escapeAmount.divide(amountDueTotal, 4, BigDecimal.ROUND_HALF_UP).multiply( 183 vo.setLoopData(2, escapeAmount.divide(amountDueTotal, 4, BigDecimal.ROUND_HALF_UP).multiply(
@@ -180,57 +191,31 @@ public class IndexPageStatisticController extends BizController { @@ -180,57 +191,31 @@ public class IndexPageStatisticController extends BizController {
180 191
181 /** 192 /**
182 * 云平台首页->企业客户负责某个停车不同的支付方式收入情况.<br/> 193 * 云平台首页->企业客户负责某个停车不同的支付方式收入情况.<br/>
183 - * 194 + * 说明:
  195 + * 1.2017-08-22将支付方式更改为饼图.<br/>
184 * @return 196 * @return
185 * @throws Exception 197 * @throws Exception
186 */ 198 */
  199 +
187 @ApiOperation("企业客户负责某个停车不同的支付方式收入情况") 200 @ApiOperation("企业客户负责某个停车不同的支付方式收入情况")
188 @PostMapping("/queryCustIncomeForPayType") 201 @PostMapping("/queryCustIncomeForPayType")
189 - public BizResultVO<CustIncomeForPayTypeResVO> queryCustIncomeForPayType( 202 + public BizResultVO<List<CustIncomeForPayTypeDTO>> queryCustIncomeForPayType(
190 @RequestBody CustIncomeTotalQueryRequset custIncomeTotalQueryRequset) throws Exception { 203 @RequestBody CustIncomeTotalQueryRequset custIncomeTotalQueryRequset) throws Exception {
191 - logger.info("调用后场dubbo服务,入参为: request={}", JSONObject.toJSONString(custIncomeTotalQueryRequset)); 204 + logger.info("...begin企业客户负责某个停车不同的支付方式收入情况,入参为: request={}", JSONObject.toJSONString(custIncomeTotalQueryRequset));
192 BizResult<List<CustIncomeForPayTypeDTO>> result = cusIncomeService.queryCustIncomeForPayType( 205 BizResult<List<CustIncomeForPayTypeDTO>> result = cusIncomeService.queryCustIncomeForPayType(
193 custIncomeTotalQueryRequset); 206 custIncomeTotalQueryRequset);
  207 + logger.info("...end企业客户负责某个停车不同的支付方式收入情况,响应为: result={}", JSONObject.toJSONString(result));
  208 + return new BizResultVO<List<CustIncomeForPayTypeDTO>>(result);
  209 + }
194 210
195 - logger.info("调用后场dubbo服务,响应为: result={}", JSONObject.toJSONString(result));  
196 - //如果不成功  
197 - if (!ResultUtils.isSuccess(result)) {  
198 - return new BizResultVO<>(result.getErrCode(), result.getErrMsg());  
199 - }  
200 - List<CustIncomeForPayTypeDTO> data = result.getData();  
201 -  
202 - CustIncomeForPayTypeResVO res = new CustIncomeForPayTypeResVO();  
203 - res.addLegendData("费用", "占比");  
204 -  
205 - BigDecimal total = BigDecimal.ZERO;  
206 - List<String> amount = new ArrayList<>();  
207 - for (CustIncomeForPayTypeDTO dto : data) {  
208 - //添加X轴数据  
209 - res.addXAxisData(dto.getPayTypeName());  
210 - total = total.add(dto.getPayedTotalAmount());  
211 - logger.info("返回的类型 和 数据为: payTypeName={},payedTotalAmount={},total={}", dto.getPayTypeName(),  
212 - dto.getPayedTotalAmount().toString(), total.toString());  
213 - amount.add(dto.getPayedTotalAmount().setScale(2, BigDecimal.ROUND_HALF_UP)  
214 - .doubleValue() + "");  
215 - }  
216 - //计算占比  
217 - List<String> zb = new ArrayList<>();  
218 - for (CustIncomeForPayTypeDTO dto : data) {  
219 - logger.info("计算占比 total={}", total.toString());  
220 - if (BigDecimal.ZERO.equals(total) || total.doubleValue() == 0.00) {  
221 - zb.add("0.00");  
222 - } else {  
223 - zb.add(dto.getPayedTotalAmount().divide(total, 4, RoundingMode.HALF_UP)  
224 - .multiply(new BigDecimal("100.00")).doubleValue() + "");  
225 - } 211 + @ApiOperation("查询今日车流量占用率周转率")
  212 + @PostMapping("/queryTodayVehicleFlowOccupyRateAndTurnOver")
  213 + public BizResultVO<List<TodayVehicleFlowOccupyRateAndTurnOverDTO>> queryTodayVehicleFlowOccupyRateAndTurnOver(
  214 + @RequestBody CommonPlnosQueryRequest request) {
  215 + BizResult<List<TodayVehicleFlowOccupyRateAndTurnOverDTO>> bizResult = parkingLotStatisticService
  216 + .queryTodayVehicleFlowOccupyRateAndTurnOver(request);
  217 + return new BizResultVO<>(bizResult);
226 218
227 - }  
228 - res.addChildData("费用", amount);  
229 - res.addChildData("占比", zb);  
230 - BizResultVO<CustIncomeForPayTypeResVO> resResult = new BizResultVO<>();  
231 - resResult.setData(res);  
232 - logger.info("返回到前台的数据为: res={}", JSONObject.toJSONString(res));  
233 - return resResult;  
234 } 219 }
235 220
236 /** 221 /**
@@ -240,10 +225,11 @@ public class IndexPageStatisticController extends BizController { @@ -240,10 +225,11 @@ public class IndexPageStatisticController extends BizController {
240 * @return 2017年6月19日 zhaowg 225 * @return 2017年6月19日 zhaowg
241 */ 226 */
242 @ApiOperation("根据停车场编号获取该停车场今日车流量和车位折线图") 227 @ApiOperation("根据停车场编号获取该停车场今日车流量和车位折线图")
243 - @PostMapping("getTodayVehicleFlowForLineChart") 228 + @PostMapping("/getTodayVehicleFlowForLineChart")
  229 + @Deprecated
244 public BizResultVO<BerthsAndFlowLineChartVO> getTodayVehicleFlowForLineChart( 230 public BizResultVO<BerthsAndFlowLineChartVO> getTodayVehicleFlowForLineChart(
245 @RequestBody @Valid ParkingLotUseStatisticForPageRequest request) { 231 @RequestBody @Valid ParkingLotUseStatisticForPageRequest request) {
246 - logger.info("根据停车场编号获取该停车场今日车流量和车位折线图"); 232 + logger.info("根据停车场编号获取该停车场今日车流量和车位折线图");
247 //开始时间 今日0点开始 233 //开始时间 今日0点开始
248 Calendar beginTime = Calendar.getInstance(); 234 Calendar beginTime = Calendar.getInstance();
249 beginTime.set(Calendar.HOUR_OF_DAY, 0); 235 beginTime.set(Calendar.HOUR_OF_DAY, 0);
@@ -280,7 +266,7 @@ public class IndexPageStatisticController extends BizController { @@ -280,7 +266,7 @@ public class IndexPageStatisticController extends BizController {
280 //每20分钟统计一次 266 //每20分钟统计一次
281 request.setQueryKind(ParkConstant.ParkingLotUseStatistic.StatisticType.PER20MINUTE); 267 request.setQueryKind(ParkConstant.ParkingLotUseStatistic.StatisticType.PER20MINUTE);
282 request.setBaseRequest(new BaseInfo(1, 0)); 268 request.setBaseRequest(new BaseInfo(1, 0));
283 - logger.info("调用DUBBO服务入参:"+JSON.toJSONString(request)); 269 + logger.info("调用DUBBO服务入参:" + JSON.toJSONString(request));
284 BizResult<PageBean<ParkingLotUseStatisticDTO>> bizResult = parkingLotStatisticService 270 BizResult<PageBean<ParkingLotUseStatisticDTO>> bizResult = parkingLotStatisticService
285 .queryParkingLotUseStatisticForPage(request); 271 .queryParkingLotUseStatisticForPage(request);
286 PageBean<ParkingLotUseStatisticDTO> pageBean = ResultUtils.getBizResultData(bizResult); 272 PageBean<ParkingLotUseStatisticDTO> pageBean = ResultUtils.getBizResultData(bizResult);
@@ -312,19 +298,21 @@ public class IndexPageStatisticController extends BizController { @@ -312,19 +298,21 @@ public class IndexPageStatisticController extends BizController {
312 } 298 }
313 299
314 //保存固定车流量和临时车流量 300 //保存固定车流量和临时车流量
315 - fixVehicleFlowMap.put(statisBeginTime, (fixVehicleFlowMap.get(statisBeginTime)==null?0:fixVehicleFlowMap.get(statisBeginTime))+statisticDTO.getFixVehicleFlow());  
316 - tmpVehicleFlowMap.put(statisBeginTime, (tmpVehicleFlowMap.get(statisBeginTime)==null?0:tmpVehicleFlowMap.get(statisBeginTime))+statisticDTO.getTmpVehicleFlow()); 301 + fixVehicleFlowMap.put(statisBeginTime, (fixVehicleFlowMap.get(statisBeginTime) == null ? 0
  302 + : fixVehicleFlowMap.get(statisBeginTime)) + statisticDTO.getFixVehicleFlow());
  303 + tmpVehicleFlowMap.put(statisBeginTime, (tmpVehicleFlowMap.get(statisBeginTime) == null ? 0
  304 + : tmpVehicleFlowMap.get(statisBeginTime)) + statisticDTO.getTmpVehicleFlow());
  305 + }
  306 + }
  307 + //判断是否包含所有待查询的停车场信息
  308 + if (request.getPlNos().size() > parkLotMap.size()) {
  309 + for (String plNo : request.getPlNos()) {
  310 + if (!parkLotMap.containsKey(plNo)) {
  311 + ParkingLotDTO parkingLotDTO = ParkingLotCacheUtil.getParkLotByPlNo(plNo);
  312 + parkNameMap.put(plNo, parkingLotDTO.getPlName());
  313 + parkLotMap.put(plNo, Maps.newHashMap());
  314 + }
317 } 315 }
318 - }  
319 - //判断是否包含所有待查询的停车场信息  
320 - if(request.getPlNos().size()>parkLotMap.size()){  
321 - for (String plNo:request.getPlNos()) {  
322 - if(!parkLotMap.containsKey(plNo)){  
323 - ParkingLotDTO parkingLotDTO=ParkingLotCacheUtil.getParkLotByPlNo(plNo);  
324 - parkNameMap.put(plNo, parkingLotDTO.getPlName());  
325 - parkLotMap.put(plNo, Maps.newHashMap());  
326 - }  
327 - }  
328 } 316 }
329 //封装车位统计信息 317 //封装车位统计信息
330 LineChartVO freeBerthRatios = new LineChartVO(); 318 LineChartVO freeBerthRatios = new LineChartVO();
@@ -348,8 +336,8 @@ public class IndexPageStatisticController extends BizController { @@ -348,8 +336,8 @@ public class IndexPageStatisticController extends BizController {
348 for (String timestamp : xAxisData) { 336 for (String timestamp : xAxisData) {
349 if (freeRatioMaps.containsKey(timestamp)) { 337 if (freeRatioMaps.containsKey(timestamp)) {
350 lastFreeRatio = freeRatioMaps.get(timestamp).intValue(); 338 lastFreeRatio = freeRatioMaps.get(timestamp).intValue();
351 - }else{  
352 - lastFreeRatio = 0; 339 + } else {
  340 + lastFreeRatio = 0;
353 } 341 }
354 freeRations.add(lastFreeRatio); 342 freeRations.add(lastFreeRatio);
355 } 343 }
@@ -381,15 +369,15 @@ public class IndexPageStatisticController extends BizController { @@ -381,15 +369,15 @@ public class IndexPageStatisticController extends BizController {
381 for (String timestamp : xAxisData) { 369 for (String timestamp : xAxisData) {
382 if (fixVehicleFlowMap.containsKey(timestamp)) { 370 if (fixVehicleFlowMap.containsKey(timestamp)) {
383 lastfixFlow = fixVehicleFlowMap.get(timestamp).intValue(); 371 lastfixFlow = fixVehicleFlowMap.get(timestamp).intValue();
384 - }else{  
385 - lastfixFlow = 0; 372 + } else {
  373 + lastfixFlow = 0;
386 } 374 }
387 fixSerieVoData.add(lastfixFlow); 375 fixSerieVoData.add(lastfixFlow);
388 376
389 if (tmpVehicleFlowMap.containsKey(timestamp)) { 377 if (tmpVehicleFlowMap.containsKey(timestamp)) {
390 lasttmpFlow = tmpVehicleFlowMap.get(timestamp).intValue(); 378 lasttmpFlow = tmpVehicleFlowMap.get(timestamp).intValue();
391 - }else{  
392 - lasttmpFlow = 0; 379 + } else {
  380 + lasttmpFlow = 0;
393 } 381 }
394 tmpSerieVoData.add(lasttmpFlow); 382 tmpSerieVoData.add(lasttmpFlow);
395 } 383 }
@@ -417,6 +405,102 @@ public class IndexPageStatisticController extends BizController { @@ -417,6 +405,102 @@ public class IndexPageStatisticController extends BizController {
417 } 405 }
418 406
419 /** 407 /**
  408 + * 实时统计今日停车次数,停车次数以出场时间进行统计
  409 + *
  410 + * @return
  411 + */
  412 + @ApiOperation("实时查询当前停车次数")
  413 + @PostMapping("/realtimeParkingOutNum")
  414 + public BizResultVO<Long> realtimeParkingOutNum(@RequestBody CommonPlnosQueryRequest request) {
  415 + BizResult<Long> bizResult = iInOutParkingService.queryRealTimeOutParkNumOfPlNos(request);
  416 + return new BizResultVO<>(bizResult);
  417 + }
  418 +
  419 + /**
  420 + * 今日实时周转率
  421 + *
  422 + * @param request
  423 + * @return
  424 + * @desc 今日实时进场次数/总车位数
  425 + */
  426 + @ApiOperation("实时查询当前周转率")
  427 + @PostMapping("/realtimeTurnoverRate")
  428 + public BizResultVO<Map<String,Object>> realtimeTurnoverRate(@RequestBody CommonPlnosQueryRequest request) {
  429 + BizResultVO<Map<String,Object>> res = new BizResultVO<>();
  430 + Map<String,Object> resMap = new HashMap<>();
  431 + //1、查询截止当前进场停车次数
  432 + BizResult<Long> bizResult = iInOutParkingService.queryRealTimeInParkNumOfPlNos(request);
  433 + if(ResultUtils.isError(bizResult)){
  434 + res.setCode(bizResult.getErrCode().getCode());
  435 + res.setMsg(bizResult.getErrMsg());
  436 + return res;
  437 + }
  438 + //2、根据停车场编号查询停车场总车位数
  439 + BizResult<Long> berthResult = parkingLotQueryService.queryBerthNumByPlNos(request);
  440 + if(ResultUtils.isError(berthResult)){
  441 + res.setCode(berthResult.getErrCode().getCode());
  442 + res.setMsg(berthResult.getErrMsg());
  443 + return res;
  444 + }
  445 +
  446 + //停车次数
  447 + resMap.put("parkNum",bizResult.getData());
  448 + //总车位数
  449 + resMap.put("allBerthNum",berthResult.getData());
  450 + double rate = bizResult.getData() * 1.0 / berthResult.getData() * 100;
  451 + String rateStr = new DecimalFormat("#.00").format(rate);
  452 + if(rate == 0){
  453 + rateStr = "0.00";
  454 + }
  455 + resMap.put("rate",rateStr);
  456 + res.setData(resMap);
  457 + return res;
  458 + }
  459 +
  460 + /**
  461 + * 今日实时占用率
  462 + *
  463 + * @param request
  464 + * @return
  465 + * @desc 1-(今日实时空余车位数/总车位数)
  466 + */
  467 + @ApiOperation("实时查询当前占用率")
  468 + @PostMapping("/realtimeoccupationRate")
  469 + public BizResultVO<Map<String,Object>> realtimeoccupationRate(@RequestBody CommonPlnosQueryRequest request) {
  470 + BizResultVO<Map<String,Object>> res = new BizResultVO<>();
  471 + Map<String,Object> resMap = new HashMap<>();
  472 +
  473 + //1、查询截止当前空余车位数
  474 + BizResult<Long> bizResult = parkingLotBerthsService.queryAllFreeBerthNum(request);
  475 + if(ResultUtils.isError(bizResult)){
  476 + res.setCode(bizResult.getErrCode().getCode());
  477 + res.setMsg(bizResult.getErrMsg());
  478 + return res;
  479 + }
  480 + //2、根据停车场编号查询停车场总车位数
  481 + BizResult<Long> berthResult = parkingLotQueryService.queryBerthNumByPlNos(request);
  482 + if(ResultUtils.isError(berthResult)){
  483 + res.setCode(berthResult.getErrCode().getCode());
  484 + res.setMsg(berthResult.getErrMsg());
  485 + return res;
  486 + }
  487 + //空余车位数
  488 + resMap.put("freeBerthNum",bizResult.getData());
  489 + //总车位数
  490 + resMap.put("allBerthNum",berthResult.getData());
  491 +
  492 + double rate = (1-bizResult.getData() * 1.0 / berthResult.getData()) * 100;
  493 + String rateStr = new DecimalFormat("#.00").format(rate);
  494 + if(rate == 0){
  495 + rateStr = "0.00";
  496 + }
  497 + resMap.put("rate",rateStr);
  498 + res.setData(resMap);
  499 + return res;
  500 +
  501 + }
  502 +
  503 + /**
420 * 实时查询今日空置率<br> 504 * 实时查询今日空置率<br>
421 * 今日空置率:当天0:00到操作时间的每个时间戳的空置率做加权算法,<br> 505 * 今日空置率:当天0:00到操作时间的每个时间戳的空置率做加权算法,<br>
422 * 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%,加权后的空置率之和除以时间戳数,得到“今日空置率” 506 * 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 { @@ -447,13 +531,13 @@ public class IndexPageStatisticController extends BizController {
447 Double totalfreeRatio = 0.00; 531 Double totalfreeRatio = 0.00;
448 for (ParkingLotUseStatisticDTO statisticDTO : pageBean.getDataList()) { 532 for (ParkingLotUseStatisticDTO statisticDTO : pageBean.getDataList()) {
449 totalfreeRatio += statisticDTO.getFreeRatio(); 533 totalfreeRatio += statisticDTO.getFreeRatio();
450 - //暂时不加权  
451 - //this.weightForFreeRation(statisticDTO.getStatisticBeginTime(),  
452 - //statisticDTO.getFreeRatio(), statisticDTO.getPlNo()); 534 + //暂时不加权
  535 + //this.weightForFreeRation(statisticDTO.getStatisticBeginTime(),
  536 + //statisticDTO.getFreeRatio(), statisticDTO.getPlNo());
453 } 537 }
454 logger.info("加权后的空置率之和:" + totalfreeRatio + " 时间戳个数:" + pageBean.getDataList().size()); 538 logger.info("加权后的空置率之和:" + totalfreeRatio + " 时间戳个数:" + pageBean.getDataList().size());
455 Double avgFreeRation = totalfreeRatio / pageBean.getDataList().size(); 539 Double avgFreeRation = totalfreeRatio / pageBean.getDataList().size();
456 - String result = String.format("%.2f", avgFreeRation*100); 540 + String result = String.format("%.2f", avgFreeRation * 100);
457 return new BizResultVO<String>().setData(result); 541 return new BizResultVO<String>().setData(result);
458 } 542 }
459 543
@@ -485,33 +569,42 @@ public class IndexPageStatisticController extends BizController { @@ -485,33 +569,42 @@ public class IndexPageStatisticController extends BizController {
485 } 569 }
486 } 570 }
487 571
488 - public static void main(String[] args) {  
489 - BigDecimal m = BigDecimal.ZERO;  
490 - BigDecimal n = m.add(BigDecimal.TEN);  
491 - System.out.println(new BigDecimal("00.0").doubleValue() == 0);  
492 - }  
493 -  
494 /** 572 /**
495 - * @param request 573 + * 企业云平台首页-->停车次数统计(饼图).<br/>
  574 + * 说明:从订单表中统计(逃逸,免费,月卡年卡,临时)停车次数.<br/>
  575 + * @param custIncomeTotalQueryRequset
496 * @return 576 * @return
497 - * 2017年8月18日 wangfei 577 + * @throws Exception
498 */ 578 */
499 - @ApiOperation(value="根据停车场编号统计设备数量")  
500 - @PostMapping("statisticParkLotEqpCountByPlNos")  
501 - @ResponseBody  
502 - public BizResult<List<ParkLotEqpTypeCountVO>> statisticParkLotEqpCountByPlNos(@RequestBody  
503 - EqpTypeQueryByPlNosRequest request){  
504 - logger.info("停车场编号:"+request.getPlNos()+" 统计设备数量等信息");  
505 - List<ParkLotEqpTypeCountVO> resultList = new ArrayList<>(); 579 + @ApiOperation("企业云平台首页-->停车次数统计(饼图)")
  580 + @PostMapping("/queryParingCount")
  581 + public BizResultVO<List<ParkingCountDTO>> queryParingCount(@RequestBody CustIncomeTotalQueryRequset custIncomeTotalQueryRequset) throws Exception{
  582 + logger.info("...begin停车次数统计->调用后场dubbo服务,入参为: request={}", JSONObject.toJSONString(custIncomeTotalQueryRequset));
  583 + BizResult<List<ParkingCountDTO>> result =cusIncomeService.queryParingCount(custIncomeTotalQueryRequset);
  584 + logger.info("...end停车次数统计->调用后场dubbo服务...");
  585 + return new BizResultVO<List<ParkingCountDTO>>(result);
  586 + }
  587 +
  588 + /**
  589 + * @param request
  590 + * @return 2017年8月18日 wangfei
  591 + */
  592 + @ApiOperation(value = "根据停车场编号统计设备数量")
  593 + @PostMapping("statisticParkLotEqpCountByPlNos")
  594 + @ResponseBody
  595 + public BizResult<List<ParkLotEqpTypeCountVO>> statisticParkLotEqpCountByPlNos(@RequestBody
  596 + EqpTypeQueryByPlNosRequest request) {
  597 + logger.info("停车场编号:" + request.getPlNos() + " 统计设备数量等信息");
  598 + List<ParkLotEqpTypeCountVO> resultList = new ArrayList<>();
506 BizResult<List<ParkLotEqpTypeCountStatisticByCountryDTO>> result = parkingLotEqpService 599 BizResult<List<ParkLotEqpTypeCountStatisticByCountryDTO>> result = parkingLotEqpService
507 - .StatisticParkLotEqpCountByPlNos(request); 600 + .StatisticParkLotEqpCountByPlNos(request);
508 if (!CollectionUtils.isEmpty(result.getData())) { 601 if (!CollectionUtils.isEmpty(result.getData())) {
509 - for (ParkLotEqpTypeCountStatisticByCountryDTO i :result.getData()) {  
510 - ParkLotEqpTypeCountVO vo = new ParkLotEqpTypeCountVO(); 602 + for (ParkLotEqpTypeCountStatisticByCountryDTO i : result.getData()) {
  603 + ParkLotEqpTypeCountVO vo = new ParkLotEqpTypeCountVO();
511 BeanUtils.copyProperties(i, vo); 604 BeanUtils.copyProperties(i, vo);
512 resultList.add(vo); 605 resultList.add(vo);
513 } 606 }
514 } 607 }
515 return new BizResult<>(resultList); 608 return new BizResult<>(resultList);
516 - } 609 + }
517 } 610 }
src/main/resources/application.properties
1 -project.syscode=zteits-park-portal  
2 -spring.application.name=zteits-park-portal 1 +project.syscode=zteits-bcp-portal
  2 +spring.application.name=zteits-bcp-portal
3 server.port=8099 3 server.port=8099
4 4
5 # logging 5 # logging
@@ -7,6 +7,7 @@ logging.level.root=info @@ -7,6 +7,7 @@ logging.level.root=info
7 #logging.level.org.springframework.web=DEBUG 7 #logging.level.org.springframework.web=DEBUG
8 logging.level.com.zteits.irain.portal=debug 8 logging.level.com.zteits.irain.portal=debug
9 #logging.path=${user.home}/logs 9 #logging.path=${user.home}/logs
  10 +logging.path=./logs/${spring.application.name}
10 logging.file=${spring.application.name}.log 11 logging.file=${spring.application.name}.log
11 logging.config=classpath:logback-spring.xml 12 logging.config=classpath:logback-spring.xml
12 13