实时车辆进出数据和今日车位统计中利用率修改
This commit is contained in:
parent
3021ea045a
commit
9306b3b653
@ -16,11 +16,13 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
|||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.math.RoundingMode;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.LocalTime;
|
import java.time.LocalTime;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
@Tag(name = "大屏服务 - 停车场接口")
|
@Tag(name = "大屏服务 - 停车场接口")
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/datacenter/h5/vehicleAccess")
|
@RequestMapping("/datacenter/h5/vehicleAccess")
|
||||||
@ -45,7 +47,7 @@ public class VehicleAccessApi {
|
|||||||
RevenueRepository revenueRepository;
|
RevenueRepository revenueRepository;
|
||||||
|
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
public ResponseVO list(){
|
public ResponseVO list() {
|
||||||
// 获取今天的日期
|
// 获取今天的日期
|
||||||
LocalDate today = LocalDate.now();
|
LocalDate today = LocalDate.now();
|
||||||
LocalDateTime startOfDay = LocalDateTime.of(today, LocalTime.MIN);
|
LocalDateTime startOfDay = LocalDateTime.of(today, LocalTime.MIN);
|
||||||
@ -61,13 +63,13 @@ public class VehicleAccessApi {
|
|||||||
revenue.setPlate("京A 88888");
|
revenue.setPlate("京A 88888");
|
||||||
revenueRepository.insert(revenue);
|
revenueRepository.insert(revenue);
|
||||||
|
|
||||||
return ResponseVO.success(200,"添加成功",null,0);
|
return ResponseVO.success(200, "添加成功", null, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//获取实时车辆进出数据和今日车位统计
|
//获取实时车辆进出数据和今日车位统计
|
||||||
@GetMapping("/parkingLotData")
|
@GetMapping("/parkingLotData")
|
||||||
public ResponseVO parkAndVacancy(){
|
public ResponseVO parkAndVacancy() {
|
||||||
|
|
||||||
|
|
||||||
//时间最新的一条数据
|
//时间最新的一条数据
|
||||||
@ -79,7 +81,7 @@ public class VehicleAccessApi {
|
|||||||
ParkingLotDataVO parkingLotDataVO = new ParkingLotDataVO();
|
ParkingLotDataVO parkingLotDataVO = new ParkingLotDataVO();
|
||||||
|
|
||||||
int parkingNum = heartbeat.getSpaceCount() - heartbeat.getFreeSpaceCount();
|
int parkingNum = heartbeat.getSpaceCount() - heartbeat.getFreeSpaceCount();
|
||||||
int residualStopNum = heartbeat.getSpaceCount() - parkingNum ;
|
int residualStopNum = heartbeat.getSpaceCount() - parkingNum;
|
||||||
|
|
||||||
//车辆进出实时数据
|
//车辆进出实时数据
|
||||||
parkingLotDataVO.setParkingNum(parkingNum);//实时停车数
|
parkingLotDataVO.setParkingNum(parkingNum);//实时停车数
|
||||||
@ -99,28 +101,28 @@ public class VehicleAccessApi {
|
|||||||
parkingLotDataVO.setTotalParkingSpace(heartbeat.getSpaceCount());//车位总数
|
parkingLotDataVO.setTotalParkingSpace(heartbeat.getSpaceCount());//车位总数
|
||||||
parkingLotDataVO.setResidualTotal(residualStopNum);//余位总数
|
parkingLotDataVO.setResidualTotal(residualStopNum);//余位总数
|
||||||
// 计算利用率
|
// 计算利用率
|
||||||
int useRatio = (parkingNum / residualStopNum) * 100;
|
Double useRatio = Math.round(((parkingNum * 1.0 / heartbeat.getSpaceCount()) * 10000)) / 100.0;
|
||||||
parkingLotDataVO.setUseRatio(useRatio);//总利用率
|
parkingLotDataVO.setUseRatio(useRatio);//总利用率
|
||||||
|
|
||||||
//设置区域停车场数据
|
//设置区域停车场数据
|
||||||
for (int i = 0; i < heartbeat.getAreaList().size(); i++) {
|
for (int i = 0; i < heartbeat.getAreaList().size(); i++) {
|
||||||
AreaDataVO areaDataVO = new AreaDataVO();
|
AreaDataVO areaDataVO = new AreaDataVO();
|
||||||
areaDataVO.setAreaName(heartbeat.getAreaList().get(i).getAreaName());
|
areaDataVO.setAreaName(heartbeat.getAreaList().get(i).getAreaName());
|
||||||
areaDataVO.setParkingCount(heartbeat.getAreaList().get(i).getSpaceCount());
|
areaDataVO.setParkingCount(heartbeat.getAreaList().get(i).getSpaceCount());
|
||||||
areaDataVO.setLastSpaceCount(heartbeat.getAreaList().get(i).getLastSpaceCount());
|
areaDataVO.setLastSpaceCount(heartbeat.getAreaList().get(i).getLastSpaceCount());
|
||||||
areaDataVO.setUseRatio((heartbeat.getAreaList().get(i).getLastSpaceCount() / heartbeat.getAreaList().get(i).getSpaceCount()) * 100);
|
// 计算利用率
|
||||||
|
areaDataVO.setUseRatio(Math.round((heartbeat.getAreaList().get(i).getLastSpaceCount() * 1.0 / heartbeat.getAreaList().get(i).getSpaceCount()) * 10000) / 100.0);
|
||||||
parkingLotDataVO.getAreaDataVOList().add(areaDataVO);
|
parkingLotDataVO.getAreaDataVOList().add(areaDataVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
return ResponseVO.success(200,"",parkingLotDataVO,0);
|
return ResponseVO.success(200, "", parkingLotDataVO, 0);
|
||||||
}
|
}
|
||||||
return ResponseVO.error(500,"");
|
return ResponseVO.error(500, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//车辆进出趋势数据
|
//车辆进出趋势数据
|
||||||
@GetMapping("/tendencyChart")
|
@GetMapping("/tendencyChart")
|
||||||
public ResponseVO tendencyChart(){
|
public ResponseVO tendencyChart() {
|
||||||
|
|
||||||
ParkingLotDataVO parkingLotDataVO = new ParkingLotDataVO();
|
ParkingLotDataVO parkingLotDataVO = new ParkingLotDataVO();
|
||||||
|
|
||||||
@ -156,27 +158,27 @@ public class VehicleAccessApi {
|
|||||||
for (int i = 0; i < entryRecordList.size(); i++) {
|
for (int i = 0; i < entryRecordList.size(); i++) {
|
||||||
EntryRecord entryRecord = entryRecordList.get(i);
|
EntryRecord entryRecord = entryRecordList.get(i);
|
||||||
|
|
||||||
if (entryRecord.getCreateTime().isAfter(startTime1) && entryRecord.getCreateTime().isBefore(endTime1)){
|
if (entryRecord.getCreateTime().isAfter(startTime1) && entryRecord.getCreateTime().isBefore(endTime1)) {
|
||||||
count1++;
|
count1++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (entryRecord.getCreateTime().isAfter(startTime2) && entryRecord.getCreateTime().isBefore(endTime2)){
|
if (entryRecord.getCreateTime().isAfter(startTime2) && entryRecord.getCreateTime().isBefore(endTime2)) {
|
||||||
count2++;
|
count2++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (entryRecord.getCreateTime().isAfter(startTime3) && entryRecord.getCreateTime().isBefore(endTime3)){
|
if (entryRecord.getCreateTime().isAfter(startTime3) && entryRecord.getCreateTime().isBefore(endTime3)) {
|
||||||
count3++;
|
count3++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (entryRecord.getCreateTime().isAfter(startTime4) && entryRecord.getCreateTime().isBefore(endTime4)){
|
if (entryRecord.getCreateTime().isAfter(startTime4) && entryRecord.getCreateTime().isBefore(endTime4)) {
|
||||||
count4++;
|
count4++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (entryRecord.getCreateTime().isAfter(startTime5) && entryRecord.getCreateTime().isBefore(endTime5)){
|
if (entryRecord.getCreateTime().isAfter(startTime5) && entryRecord.getCreateTime().isBefore(endTime5)) {
|
||||||
count5++;
|
count5++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (entryRecord.getCreateTime().isAfter(startTime6) && entryRecord.getCreateTime().isBefore(endTime6)){
|
if (entryRecord.getCreateTime().isAfter(startTime6) && entryRecord.getCreateTime().isBefore(endTime6)) {
|
||||||
count6++;
|
count6++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -198,27 +200,27 @@ public class VehicleAccessApi {
|
|||||||
for (int i = 0; i < appearanceRecordList.size(); i++) {
|
for (int i = 0; i < appearanceRecordList.size(); i++) {
|
||||||
AppearanceRecord appearanceRecord = appearanceRecordList.get(i);
|
AppearanceRecord appearanceRecord = appearanceRecordList.get(i);
|
||||||
|
|
||||||
if (appearanceRecord.getCreateTime().isAfter(startTime1) && appearanceRecord.getCreateTime().isBefore(endTime1)){
|
if (appearanceRecord.getCreateTime().isAfter(startTime1) && appearanceRecord.getCreateTime().isBefore(endTime1)) {
|
||||||
count1++;
|
count1++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (appearanceRecord.getCreateTime().isAfter(startTime2) && appearanceRecord.getCreateTime().isBefore(endTime2)){
|
if (appearanceRecord.getCreateTime().isAfter(startTime2) && appearanceRecord.getCreateTime().isBefore(endTime2)) {
|
||||||
count2++;
|
count2++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (appearanceRecord.getCreateTime().isAfter(startTime3) && appearanceRecord.getCreateTime().isBefore(endTime3)){
|
if (appearanceRecord.getCreateTime().isAfter(startTime3) && appearanceRecord.getCreateTime().isBefore(endTime3)) {
|
||||||
count3++;
|
count3++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (appearanceRecord.getCreateTime().isAfter(startTime4) && appearanceRecord.getCreateTime().isBefore(endTime4)){
|
if (appearanceRecord.getCreateTime().isAfter(startTime4) && appearanceRecord.getCreateTime().isBefore(endTime4)) {
|
||||||
count4++;
|
count4++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (appearanceRecord.getCreateTime().isAfter(startTime5) && appearanceRecord.getCreateTime().isBefore(endTime5)){
|
if (appearanceRecord.getCreateTime().isAfter(startTime5) && appearanceRecord.getCreateTime().isBefore(endTime5)) {
|
||||||
count5++;
|
count5++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (appearanceRecord.getCreateTime().isAfter(startTime6) && appearanceRecord.getCreateTime().isBefore(endTime6)){
|
if (appearanceRecord.getCreateTime().isAfter(startTime6) && appearanceRecord.getCreateTime().isBefore(endTime6)) {
|
||||||
count6++;
|
count6++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -230,13 +232,13 @@ public class VehicleAccessApi {
|
|||||||
parkingLotDataVO.getOutCount().add(count5);
|
parkingLotDataVO.getOutCount().add(count5);
|
||||||
parkingLotDataVO.getOutCount().add(count6);
|
parkingLotDataVO.getOutCount().add(count6);
|
||||||
|
|
||||||
return ResponseVO.success(200,"",parkingLotDataVO,0);
|
return ResponseVO.success(200, "", parkingLotDataVO, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//车辆出入实时记录图
|
//车辆出入实时记录图
|
||||||
@GetMapping("/recordOfAccess")
|
@GetMapping("/recordOfAccess")
|
||||||
public ResponseVO recordOfAccess(int page){
|
public ResponseVO recordOfAccess(int page) {
|
||||||
|
|
||||||
// 获取今天的日期
|
// 获取今天的日期
|
||||||
LocalDate today = LocalDate.now();
|
LocalDate today = LocalDate.now();
|
||||||
@ -249,13 +251,13 @@ public class VehicleAccessApi {
|
|||||||
Pageable pageable = PageRequest.of(page, 4);
|
Pageable pageable = PageRequest.of(page, 4);
|
||||||
// Page<VehicleRecord> recordOfAccessList = vehicleRecordRepository.findByCreateTimeBetweenOrderByCreateTimeAsc(startOfDay, endOfDay, pageable);
|
// Page<VehicleRecord> recordOfAccessList = vehicleRecordRepository.findByCreateTimeBetweenOrderByCreateTimeAsc(startOfDay, endOfDay, pageable);
|
||||||
Page<VehicleRecord> recordOfAccessList = vehicleRecordRepository.findAll(pageable); // TODO 暂时获取全部数据分页
|
Page<VehicleRecord> recordOfAccessList = vehicleRecordRepository.findAll(pageable); // TODO 暂时获取全部数据分页
|
||||||
return ResponseVO.success(200,"",recordOfAccessList,total);
|
return ResponseVO.success(200, "", recordOfAccessList, total);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//车辆营收统计
|
//车辆营收统计
|
||||||
@GetMapping("/revenue")
|
@GetMapping("/revenue")
|
||||||
public ResponseVO revenue(String date,String areaName){
|
public ResponseVO revenue(String date, String areaName) {
|
||||||
|
|
||||||
List<Revenue> revenueList;
|
List<Revenue> revenueList;
|
||||||
|
|
||||||
@ -263,25 +265,25 @@ public class VehicleAccessApi {
|
|||||||
LocalDateTime endOfDay = null;
|
LocalDateTime endOfDay = null;
|
||||||
|
|
||||||
|
|
||||||
if (date.equals("今日")){
|
if (date.equals("今日")) {
|
||||||
// 获取今天的日期
|
// 获取今天的日期
|
||||||
LocalDate today = LocalDate.now();
|
LocalDate today = LocalDate.now();
|
||||||
startOfDay = LocalDateTime.of(today, LocalTime.MIN);
|
startOfDay = LocalDateTime.of(today, LocalTime.MIN);
|
||||||
endOfDay = LocalDateTime.of(today, LocalTime.MAX);
|
endOfDay = LocalDateTime.of(today, LocalTime.MAX);
|
||||||
}
|
}
|
||||||
if (date.equals("近一周")){
|
if (date.equals("近一周")) {
|
||||||
endOfDay = LocalDateTime.now(); // 结束时间为当前时间
|
endOfDay = LocalDateTime.now(); // 结束时间为当前时间
|
||||||
startOfDay = endOfDay.minusDays(7); // 开始时间为当前时间的前7天
|
startOfDay = endOfDay.minusDays(7); // 开始时间为当前时间的前7天
|
||||||
|
|
||||||
}
|
}
|
||||||
if (date.equals("近一月")){
|
if (date.equals("近一月")) {
|
||||||
endOfDay = LocalDateTime.now(); // 结束时间为当前时间
|
endOfDay = LocalDateTime.now(); // 结束时间为当前时间
|
||||||
startOfDay = endOfDay.minusMonths(1); // 开始时间为当前时间的前一个月
|
startOfDay = endOfDay.minusMonths(1); // 开始时间为当前时间的前一个月
|
||||||
}
|
}
|
||||||
|
|
||||||
if (areaName.equals("全部")){
|
if (areaName.equals("全部")) {
|
||||||
revenueList = revenueRepository.findByCreateTimeBetween(startOfDay, endOfDay);
|
revenueList = revenueRepository.findByCreateTimeBetween(startOfDay, endOfDay);
|
||||||
}else {
|
} else {
|
||||||
revenueList = revenueRepository.findByCreateTimeAndAreaName(startOfDay, endOfDay, areaName);
|
revenueList = revenueRepository.findByCreateTimeAndAreaName(startOfDay, endOfDay, areaName);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -297,15 +299,15 @@ public class VehicleAccessApi {
|
|||||||
for (int i = 0; i < revenueList.size(); i++) {
|
for (int i = 0; i < revenueList.size(); i++) {
|
||||||
Revenue revenue = revenueList.get(i);
|
Revenue revenue = revenueList.get(i);
|
||||||
BigDecimal charge = new BigDecimal(revenue.getPayCharge());
|
BigDecimal charge = new BigDecimal(revenue.getPayCharge());
|
||||||
if (revenue.getPayKind().equals("现金")){
|
if (revenue.getPayKind().equals("现金")) {
|
||||||
xj = xj.add(charge);
|
xj = xj.add(charge);
|
||||||
} else if (revenue.getPayKind().equals("微信")){
|
} else if (revenue.getPayKind().equals("微信")) {
|
||||||
wx = wx.add(charge);
|
wx = wx.add(charge);
|
||||||
} else if (revenue.getPayKind().equals("支付宝")){
|
} else if (revenue.getPayKind().equals("支付宝")) {
|
||||||
zfb = zfb.add(charge);
|
zfb = zfb.add(charge);
|
||||||
} else if (revenue.getPayKind().equals("银联")){
|
} else if (revenue.getPayKind().equals("银联")) {
|
||||||
yl = yl.add(charge);
|
yl = yl.add(charge);
|
||||||
} else if (revenue.getPayKind().equals("公交卡")){
|
} else if (revenue.getPayKind().equals("公交卡")) {
|
||||||
gjk = gjk.add(charge);
|
gjk = gjk.add(charge);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -322,18 +324,15 @@ public class VehicleAccessApi {
|
|||||||
revenueVO.setZfb(zfb);
|
revenueVO.setZfb(zfb);
|
||||||
|
|
||||||
|
|
||||||
|
return ResponseVO.success(200, "", revenueVO, 0);
|
||||||
return ResponseVO.success(200,"",revenueVO ,0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//预警信息栏
|
//预警信息栏
|
||||||
@GetMapping("/warning_information_bar")
|
@GetMapping("/warning_information_bar")
|
||||||
public ResponseVO warningInformation(){
|
public ResponseVO warningInformation() {
|
||||||
return ResponseVO.success(200,"今日实时客流人数125,同比上月实时人数提升12%。今日车辆数量135,同比上月实时人数提升13%。今日沿海阵风3级.....",null ,0);
|
return ResponseVO.success(200, "今日实时客流人数125,同比上月实时人数提升12%。今日车辆数量135,同比上月实时人数提升13%。今日沿海阵风3级.....", null, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,8 @@ package cn.iocoder.yudao.module.datacenter.controller.admin.vehicleaccess.vo;
|
|||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class AreaDataVO {
|
public class AreaDataVO {
|
||||||
|
|
||||||
@ -15,5 +17,5 @@ public class AreaDataVO {
|
|||||||
private int lastSpaceCount;
|
private int lastSpaceCount;
|
||||||
|
|
||||||
//区域利用率
|
//区域利用率
|
||||||
private int useRatio;
|
private Double useRatio;
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.datacenter.controller.admin.vehicleaccess.vo;
|
|||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -30,7 +31,7 @@ public class ParkingLotDataVO {
|
|||||||
private int residualTotal;
|
private int residualTotal;
|
||||||
|
|
||||||
//总利用率
|
//总利用率
|
||||||
private int useRatio;
|
private Double useRatio;
|
||||||
|
|
||||||
//区域停车场数据集合
|
//区域停车场数据集合
|
||||||
private List<AreaDataVO> areaDataVOList = new ArrayList<>();
|
private List<AreaDataVO> areaDataVOList = new ArrayList<>();
|
||||||
|
Loading…
Reference in New Issue
Block a user