From c5462d60b99823adb10d9e9eda671920118538f7 Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期四, 12 九月 2024 09:06:35 +0800 Subject: [PATCH] 9.12 --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java | 154 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 153 insertions(+), 1 deletions(-) diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java index 8362c2c..f011021 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java @@ -3,6 +3,7 @@ import com.google.common.collect.Lists; import java.math.BigDecimal; +import java.math.RoundingMode; import java.time.DayOfWeek; import java.time.LocalDate; import java.time.LocalDateTime; @@ -583,6 +584,16 @@ } @ResponseBody + @GetMapping(value = "/work/shop") + @ApiOperation(value = "购物收入", tags = {"后台-工作台"}) + public R workShop(@RequestBody ChargingStatisticsQueryDto statisticsQueryDto) { + //count近6个月的数据 + LocalDate sixBefore = PreviousSixMonths.get(); + List<Map<String,Object >> shopData = shoppingOrderService.getData(statisticsQueryDto); + return R.ok(shopData); + } + + @ResponseBody @GetMapping(value = "/six/vip") @ApiOperation(value = "vip收入", tags = {"后台-数据分析-平台收入分析"}) public R<List<SixVipDto>> vip() { @@ -866,7 +877,7 @@ @ResponseBody @PostMapping(value = "/charging/equipment") @ApiOperation(value = "电站评价", tags = {"管理后台-数据分析-设备运维分析"}) - public R<TCharingUserEvaluateVO> equipment(@RequestBody ChargingStatisticsQueryDto statisticsQueryDto){ + public R<TCharingUserEquimentVO> equipment(@RequestBody ChargingStatisticsQueryDto statisticsQueryDto){ List<Integer> siteIds =new ArrayList<>(); if (statisticsQueryDto.getSiteId()==null) { Long userId = SecurityUtils.getUserId(); @@ -893,11 +904,152 @@ //需求电流满足率 + List<Map<String,Object>> needElec = chargingOrderService.needElec(siteIds,statisticsQueryDto); + TCharingUserEquimentVO tCharingUserEquimentVO = new TCharingUserEquimentVO(); + tCharingUserEquimentVO.setEquipmentMap1(equipmentMap1); + tCharingUserEquimentVO.setEquipmentMap2(equipmentMap2); + tCharingUserEquimentVO.setEquipmentMapbroke1(equipmentMapbroke1); + tCharingUserEquimentVO.setEquipmentMapbroke2(equipmentMapbroke2); + tCharingUserEquimentVO.setEquipmentMapOut1(equipmentMapOut1); + tCharingUserEquimentVO.setEquipmentMapOut2(equipmentMapOut2); + tCharingUserEquimentVO.setNeedElec(needElec); + return R.ok(tCharingUserEquimentVO); + } + + + @ResponseBody + @PostMapping(value = "/work/charge") + @ApiOperation(value = "上方充电数据统计", tags = {"管理后台-工作台"}) + public R<TCharingWorkVO> workCharge(@RequestBody ChargingStatisticsQueryDto statisticsQueryDto) { + List<Integer> siteIds = new ArrayList<>(); + if (statisticsQueryDto.getSiteId() == null) { + Long userId = SecurityUtils.getUserId(); + //获取当前登录的siteIds + List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData(); + for (GetSiteListDTO datum : data) { + siteIds.add(datum.getId()); + } + } else { + siteIds.add(statisticsQueryDto.getSiteId()); + } + List<TChargingOrder> list = chargingOrderService.lambdaQuery().in(!siteIds.isEmpty(), TChargingOrder::getSiteId, siteIds).eq(statisticsQueryDto.getSiteId() != null, TChargingOrder::getSiteId, statisticsQueryDto.getSiteId()).list(); + //当日的订单总数 + int size = list.size(); + //计算list中paymentAmount的总和 + BigDecimal totalPaymentAmount = list.stream().map(TChargingOrder::getOrderAmount).reduce(BigDecimal.ZERO, BigDecimal::add); + //计算list中electrovalence的总和 + BigDecimal totalElectrovalence = list.stream().map(TChargingOrder::getElectrovalence).reduce(BigDecimal.ZERO, BigDecimal::add); + //计算list中serviceCharge的总和 + BigDecimal totalServiceCharge = list.stream().map(TChargingOrder::getServiceCharge).reduce(BigDecimal.ZERO, BigDecimal::add); + //计算list中charging_capacity的总和 + BigDecimal totalChargingCapacity = list.stream().map(TChargingOrder::getChargingCapacity).reduce(BigDecimal.ZERO, BigDecimal::add); + TCharingWorkVO tCharingWorkVO = new TCharingWorkVO(); + tCharingWorkVO.setCount(size); + tCharingWorkVO.setTotalPaymentAmount(totalPaymentAmount); + tCharingWorkVO.setTotalElectrovalence(totalElectrovalence); + tCharingWorkVO.setTotalServiceCharge(totalServiceCharge); + tCharingWorkVO.setTotalChargingCapacity(totalChargingCapacity); + return R.ok(tCharingWorkVO); + } + + + + @ResponseBody + @PostMapping(value = "/work/chargeDetail") + @ApiOperation(value = "运营情况", tags = {"管理后台-工作台"}) + public R workCharge(@RequestBody ChargingDetailQueryDto statisticsQueryDto) { + List<Integer> siteIds = new ArrayList<>(); + if (statisticsQueryDto.getSiteId() == null) { + Long userId = SecurityUtils.getUserId(); + //获取当前登录的siteIds + List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData(); + for (GetSiteListDTO datum : data) { + siteIds.add(datum.getId()); + } + } else { + siteIds.add(statisticsQueryDto.getSiteId()); + } + if (statisticsQueryDto.getDayType()==1) { + List<Map<String,Object>> charMap = chargingOrderService.getHourType(siteIds,statisticsQueryDto); + return R.ok(charMap); + }else if (statisticsQueryDto.getDayType()==2){ + List<Map<String,Object>> charMap = chargingOrderService.getDateType(siteIds,statisticsQueryDto); + return R.ok(charMap); + }else if (statisticsQueryDto.getDayType()==3){ + List<Map<String,Object>> charMap = chargingOrderService.getMonthType(siteIds,statisticsQueryDto); + } + + return R.ok(); } + @ResponseBody + @PostMapping(value = "/work/use") + @ApiOperation(value = "运营情况", tags = {"管理后台-工作台"}) + public R workUse(@RequestBody ChargingDetailQueryDto statisticsQueryDto) { + List<Integer> siteIds = new ArrayList<>(); + if (statisticsQueryDto.getSiteId() == null) { + Long userId = SecurityUtils.getUserId(); + //获取当前登录的siteIds + List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData(); + for (GetSiteListDTO datum : data) { + siteIds.add(datum.getId()); + } + } else { + siteIds.add(statisticsQueryDto.getSiteId()); + } + List<Map<String,Object>> capMap = chargingOrderService.getchargingCapacity(siteIds,statisticsQueryDto); + List<TChargingPile> chargingPiles = chargingPileClient.getChargingPileBySiteIds(siteIds).getData(); + //获取chargingPiles的ratedPower的总和再乘以chargingPiles的数量再乘以24 + BigDecimal totalRatedPower = chargingPiles.stream().map(TChargingPile::getRatedPower).reduce(BigDecimal.ZERO, BigDecimal::add).multiply(new BigDecimal(chargingPiles.size())).multiply(new BigDecimal(24)); + + //将capMap的chargingCapacity除以totalRatedPower保留两位数 + capMap.forEach(map -> { + BigDecimal chargingCapacity = (BigDecimal) map.get("chargingCapacity"); + BigDecimal result = chargingCapacity.divide(totalRatedPower, 2, RoundingMode.HALF_UP); + map.put("chargingCapacity", result); + }); + return R.ok(capMap); + + + } + + @Resource + private TOrderInvoiceService invoiceService; + @ResponseBody + @PostMapping(value = "/work/shopOrder") + @ApiOperation(value = "购物订单统计", tags = {"管理后台-工作台"}) + public R shopOrder(@RequestBody ChargingStatisticsQueryDto statisticsQueryDto) { + Long count = shoppingOrderService.lambdaQuery().eq(TShoppingOrder::getStatus, 1).count(); + Long count1 = shoppingOrderService.lambdaQuery().eq(TShoppingOrder::getStatus, 2).count(); + List<Long> counts = new ArrayList<>(); + counts.add(count); + counts.add(count1); + return R.ok(counts); + } + + @ResponseBody + @PostMapping(value = "/work/invoice") + @ApiOperation(value = "开票统计", tags = {"管理后台-工作台"}) + public R invoice(@RequestBody ChargingStatisticsQueryDto statisticsQueryDto) { + Long count = invoiceService.lambdaQuery().eq(TOrderInvoice::getStatus, 1).count(); + Long count1 = invoiceService.lambdaQuery().eq(TOrderInvoice::getStatus, 3).count(); + List<Long> counts = new ArrayList<>(); + counts.add(count); + counts.add(count1); + return R.ok(counts); + } + + @ResponseBody + @PostMapping(value = "/work/users/count") + @ApiOperation(value = "用户数量", tags = {"管理后台-工作台"}) + public R usersCount(@RequestBody ChargingStatisticsQueryDto statisticsQueryDto) { + List<Map<String,Object>> userMap = chargingOrderService.countAllUserData(); + return R.ok(userMap); + + } public static void main(String[] args) { // 示例数据 List<TChargingOrder> list = getSampleData(); -- Gitblit v1.7.1