From ee2bf95f3472a4179ee0fc7c8e4e2a35e1214bc8 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期三, 23 十月 2024 10:15:08 +0800 Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java | 139 ++++++++++++++++++++++++++++++++++----------- 1 files changed, 104 insertions(+), 35 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 c38aabe..0e6df06 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,9 +3,7 @@ import java.math.BigDecimal; import java.math.RoundingMode; -import java.time.DayOfWeek; -import java.time.LocalDate; -import java.time.LocalDateTime; +import java.time.*; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -23,6 +21,7 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.dto.ChargingOrderGroup; import com.ruoyi.common.core.dto.ChargingPercentProvinceDto; +import com.ruoyi.common.core.web.domain.BasePojo; import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.common.security.service.TokenService; import com.ruoyi.common.core.web.domain.AjaxResult; @@ -65,7 +64,6 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.PrintWriter; -import java.time.YearMonth; import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; import java.time.temporal.TemporalAdjusters; @@ -183,7 +181,7 @@ payOrderInfoDto.setTradeNo(byId.getRechargeSerialNumber()); payOrderInfoDto.setPayType(byId.getRechargePaymentType()); payOrderInfoDto.setPayAmount(byId.getPaymentAmount()); - payOrderInfoDto.setPayTime(byId.getPayTime()); + payOrderInfoDto.setPayTime(byId.getCreateTime()); payOrderInfoDto.setRefundAmount(byId.getRefundAmount()); return R.ok(payOrderInfoDto); case 2: @@ -194,7 +192,7 @@ payOrderInfoDto1.setTradeNo(byId1.getSerialNumber()); payOrderInfoDto1.setPayType(byId1.getPaymentType()); payOrderInfoDto1.setPayAmount(byId1.getPaymentAmount()); - payOrderInfoDto1.setPayTime(byId1.getPayTime()); + payOrderInfoDto1.setPayTime(byId1.getCreateTime()); payOrderInfoDto1.setRefundAmount(byId1.getRefundAmount()); return R.ok(payOrderInfoDto1); case 3: @@ -205,7 +203,7 @@ payOrderInfoDto2.setTradeNo(byId2.getSerialNumber()); payOrderInfoDto2.setPayType(byId2.getPaymentType()); payOrderInfoDto2.setPayAmount(byId2.getPaymentAmount()); - payOrderInfoDto2.setPayTime(byId2.getPayTime()); + payOrderInfoDto2.setPayTime(byId2.getCreateTime()); payOrderInfoDto2.setRefundAmount(byId2.getRefundAmount()); return R.ok(payOrderInfoDto2); //todo luo 停车场订单 @@ -280,7 +278,11 @@ @PostMapping(value = "/pay/order/refund/list") @ApiOperation(value = "列表", tags = {"管理后台-支付订单-退款订单"}) public R<PageInfo<TChargingOrderRefund>> refundList(@RequestBody ChargingRefundDto chargingRefundDto) { - return chargingOrderService.getRefundList(chargingRefundDto); + R<PageInfo<TChargingOrderRefund>> refundList = chargingOrderService.getRefundList(chargingRefundDto); + for (TChargingOrderRefund record : refundList.getData().getRecords()) { + record.setUid(record.getId().toString()); + } + return refundList; } @ResponseBody @@ -307,20 +309,40 @@ } @ResponseBody - @PostMapping(value = "/chargingOrderInfo") + @GetMapping(value = "/chargingOrderInfo") @ApiOperation(value = "充电桩订单列表查看详情", tags = {"管理后台-订单管理"}) - public AjaxResult<ChargingOrderInfoVO> chargingOrderInfo(String orderId) { + public AjaxResult<ChargingOrderInfoVO> chargingOrderInfo(String strategyId) { + TChargingOrder byId = chargingOrderService.getById(strategyId); ChargingOrderInfoVO chargingOrderInfoVO = new ChargingOrderInfoVO(); - chargingOrderInfoVO.setCdElectronic(""); - chargingOrderInfoVO.setCdVoltage(""); - chargingOrderInfoVO.setSurplus(""); - chargingOrderInfoVO.setTotalPower(""); - chargingOrderInfoVO.setLicensePlate(""); - chargingOrderInfoVO.setVehicleBrand(""); - chargingOrderInfoVO.setVehicleModel(""); - chargingOrderInfoVO.setVehicleUse(""); - List<TChargingOrderAccountingStrategy> tChargingOrderAccountingStrategies = new ArrayList<>(); - chargingOrderInfoVO.setList(tChargingOrderAccountingStrategies); + + chargingOrderInfoVO.setCdElectronic(byId.getCurrent()!=null?byId.getCurrent()+"":""); + chargingOrderInfoVO.setCdVoltage(byId.getVoltage()!=null?byId.getVoltage()+"":""); + chargingOrderInfoVO.setSurplus(byId.getTotalElectricity()!=null?byId.getTotalElectricity()+"":""); + chargingOrderInfoVO.setTotalPower(byId.getPower()!=null?byId.getPower()+"":""); + if (byId.getAppUserCarId()!=null){ + List<TAppUserCar> data = appUserCarClient.getCarByIds(Collections.singletonList(byId.getAppUserCarId())).getData(); + if (!data.isEmpty()){ + chargingOrderInfoVO.setLicensePlate(data.get(0).getLicensePlate()); + chargingOrderInfoVO.setVehicleBrand(data.get(0).getVehicleBrand()); + chargingOrderInfoVO.setVehicleModel(data.get(0).getVehicleModel()); + chargingOrderInfoVO.setVehicleUse(data.get(0).getVehicleUse()); + } + } + // 时段总服务费 + BigDecimal bigDecimal = new BigDecimal("0"); + List<TChargingOrderAccountingStrategy> list = chargingOrderAccountingStrategyService.lambdaQuery().eq(TChargingOrderAccountingStrategy::getChargingOrderId, strategyId).orderByDesc(TChargingOrderAccountingStrategy::getStartTime).list(); + for (TChargingOrderAccountingStrategy tChargingOrderAccountingStrategy : list) { + bigDecimal = bigDecimal.add(tChargingOrderAccountingStrategy.getPeriodOriginalServicePrice()); + tChargingOrderAccountingStrategy.setVipDiscount( + tChargingOrderAccountingStrategy.getPeriodOriginalServicePrice() + .subtract(tChargingOrderAccountingStrategy.getPeriodServicePrice()) + ); + tChargingOrderAccountingStrategy.setCouponDiscount( + tChargingOrderAccountingStrategy.getPeriodOriginalServicePrice() + .subtract(tChargingOrderAccountingStrategy.getPeriodServicePrice()) + ); + } + chargingOrderInfoVO.setList(list); return AjaxResult.success(chargingOrderInfoVO); } @@ -670,7 +692,9 @@ BigDecimal data2 = vipOrderService.getSumAmout(sixBefore); map.put("vipAmount",data2); - return R.ok(map); + + + return R.ok(map); } @Resource @@ -685,7 +709,7 @@ // dto.setUserIds(data); // dto.setPageCurr(1); // dto.setPageSize(99999); -// TCharingOrderVO res = chargingOrderService.chargingOrder(dto); + // Map<String,TChargingOrder> map = new HashMap<>(); // //吧list放入map中 // for (ChargingOrderVO record : res.getList().getRecords()) { @@ -696,19 +720,21 @@ List<UploadRealTimeMonitoringData> data1 = uploadRealTimeMonitoringDataClient.getAll(mongoChargingOrderQuery).getData(); -// List<ChargingOrderAndUploadRealTimeMonitoringDataDto> dtos = new ArrayList<>(); -// for (UploadRealTimeMonitoringData uploadRealTimeMonitoringData : data1) { -// ChargingOrderAndUploadRealTimeMonitoringDataDto dataDto = new ChargingOrderAndUploadRealTimeMonitoringDataDto(); -// BeanUtils.copyProperties(uploadRealTimeMonitoringData,dataDto); -// TChargingOrder tChargingOrder = map.get(uploadRealTimeMonitoringData.getCharging_pile_code()); -// if (tChargingOrder!=null) { -// BeanUtils.copyProperties(tChargingOrder, dataDto); -// } -// dtos.add(dataDto); -// } + List<ChargingOrderAndUploadRealTimeMonitoringDataDto> dtos = new ArrayList<>(); + for (UploadRealTimeMonitoringData uploadRealTimeMonitoringData : data1) { + ChargingOrderAndUploadRealTimeMonitoringDataDto dataDto = new ChargingOrderAndUploadRealTimeMonitoringDataDto(); + BeanUtils.copyProperties(uploadRealTimeMonitoringData,dataDto); + ChargingOrderQuery dto = new ChargingOrderQuery(); + TCharingOrderVO vo = chargingOrderService.chargingOrder(dto); + ChargingOrderVO chargingOrderVO = vo.getList().getRecords().get(0); + if (chargingOrderVO!=null) { + BeanUtils.copyProperties(chargingOrderVO, dataDto); + } + dtos.add(dataDto); + } - return R.ok(data1); + return R.ok(dtos); } @@ -792,6 +818,7 @@ } List<TChargingOrder> list = chargingOrderService.lambdaQuery().ge(TChargingOrder::getStartTime, start).le(TChargingOrder::getEndTime, end).in(TChargingOrder::getSiteId, siteIds).list(); List<Long> chargingOrderIds = list.stream().map(TChargingOrder::getId).collect(Collectors.toList()); + chargingOrderIds.add(-1L); //上方饼图 List<Map<String,Object>> maps = chargingOrderService.getSumByType(chargingOrderIds); @@ -925,7 +952,41 @@ startDate = startDate.plusDays(1); } - tCharingUserMapVO.setMap(map); + tCharingUserMapVO.setMap(dateRangeStatistics); + + + List<Map<String,Object>> map1 = chargingOrderService.usersByQuery1(statisticsQueryDto); + + + + LocalDate startDate1 = statisticsQueryDto.getStartTime(); + LocalDate endDate1 = statisticsQueryDto.getEndTime(); + + List<Map<String, Object>> dateRangeStatistics1 = new ArrayList<>(); + + // 遍历日期范围 + while (!startDate1.isAfter(endDate1)) { + String formattedDate = startDate1.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); + Map<String, Object> dailyStats = findMapWithDateValue(map1, formattedDate); + + if (dailyStats != null) { + dateRangeStatistics1.add(dailyStats); + } else { + Map<String, Object> dateMap = new HashMap<>(); + dateMap.put("time", formattedDate); + dateMap.put("counts", 0); + dateRangeStatistics1.add(dateMap); + } + + // 移动到下一天 + startDate1 = startDate1.plusDays(1); + } + + tCharingUserMapVO.setMap1(dateRangeStatistics1); + + + + } //用户标签 @@ -1102,7 +1163,15 @@ } 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(); + LocalDateTime selectDate = statisticsQueryDto.getSelectDate(); + LocalDateTime min = selectDate.with(LocalTime.MIN); + LocalDateTime max = selectDate.with(LocalTime.MAX); + + + + + + List<TChargingOrder> list = chargingOrderService.lambdaQuery().in(!siteIds.isEmpty(), TChargingOrder::getSiteId, siteIds).ge( TChargingOrder::getCreateTime,min).le(BasePojo::getCreateTime,max).eq(statisticsQueryDto.getSiteId() != null, TChargingOrder::getSiteId, statisticsQueryDto.getSiteId()).list(); //当日的订单总数 int size = list.size(); //计算list中paymentAmount的总和 -- Gitblit v1.7.1