ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppCouponFallbackFactory.java
@@ -32,12 +32,12 @@ @Override public R<List<Integer>> getCountByCouponIds(String couponIds) { return null; return R.fail("获取数据失败:" + throwable.getMessage()); } @Override public R<Integer> getUseCountByCouponId(Integer couponId) { return null; return R.fail("获取数据失败:" + throwable.getMessage()); } @Override ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserCarFallbackFactory.java
@@ -34,7 +34,7 @@ @Override public R<List<TAppUserCar>> getAllCar() { return null; return R.fail("获取所有车辆失败:"+throwable.getMessage()); } @Override @@ -49,7 +49,7 @@ @Override public R<List<Long>> getAppUserCarByLicensePlates(String licensePlate) { return null; return R.fail("获取数据失败:" + throwable.getMessage()); } }; } ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/factory/AppUserFallbackFactory.java
@@ -48,7 +48,7 @@ @Override public R<List<TAppUser>> getAllUser() { return null; return R.fail("根据所有用户失败:"+throwable.getMessage()); } @Override @@ -65,7 +65,7 @@ @Override public R changeDown(PointChangeDto points) { return null; return R.fail("获取数据失败:" + throwable.getMessage()); } @Override @@ -85,7 +85,7 @@ @Override public R giveVip(GiveVipDto giveVipDto) { return null; return R.fail("获取数据失败:" + throwable.getMessage()); } @Override ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ChargingGunFallbackFactory.java
@@ -32,12 +32,12 @@ @Override public R<List<TChargingGun>> getAllGun() { return null; return R.fail("获取数据失败:" + throwable.getMessage()); } @Override public R<List<TChargingPile>> getAllPile() { return null; return R.fail("获取所有桩失败:" + throwable.getMessage()); } @Override ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ChargingPileFallbackFactory.java
@@ -35,7 +35,7 @@ @Override public R<List<TChargingPile>> getChargingPileBySiteIds(List<Integer> siteIds) { return null; return R.fail("获取数据失败:" + throwable.getMessage()); } @Override ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ParkingLotFallbackFactory.java
@@ -48,7 +48,7 @@ @Override public R<BigDecimal> getRecordAmount(String sixBefore) { return null; return R.fail("获取数据失败:" + throwable.getMessage()); } @Override @@ -58,12 +58,12 @@ @Override public R<Integer> getSiteIdByOrderId(Long id) { return null; return R.fail("获取数据失败:" + throwable.getMessage()); } @Override public R<List<TParkingRecord>> getSiteIdAll() { return null; return R.fail("获取数据失败:" + throwable.getMessage()); } }; } ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/PartnerFallbackFactory.java
@@ -48,42 +48,42 @@ @Override public R<List<Boolean>> getChargingOrderMenu(Integer partnerId, Integer siteId) { return null; return R.fail("获取数据失败:" + throwable.getMessage()); } @Override public R<List<Boolean>> getChargingListMenu(Integer partnerId, Integer siteId) { return null; return R.fail("获取数据失败:" + throwable.getMessage()); } @Override public R<List<Boolean>> getSettlementListMenu(Integer partnerId, Integer siteId) { return null; return R.fail("获取数据失败:" + throwable.getMessage()); } @Override public R<List<Boolean>> getAccountMenu(Integer partnerId, Integer siteId) { return null; return R.fail("获取数据失败:" + throwable.getMessage()); } @Override public R<List<Boolean>> managePageListMenu(Integer partnerId, Integer siteId) { return null; return R.fail("获取数据失败:" + throwable.getMessage()); } @Override public R<List<Boolean>> parkingRecordListMenu(Integer partnerId, Integer siteId) { return null; return R.fail("获取数据失败:" + throwable.getMessage()); } @Override public R<List<Boolean>> watchChargingOrder(Integer partnerId, Integer siteId) { return null; return R.fail("获取数据失败:" + throwable.getMessage()); } @Override public R<List<Boolean>> chargeEvaluation(Integer partnerId, Integer siteId) { return null; return R.fail("获取数据失败:" + throwable.getMessage()); } }; } ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/SiteFallbackFactory.java
@@ -46,7 +46,7 @@ @Override public R<List<GetSiteListDTO>> getSiteListByUserId(Long userId) { return R.fail("获取数据失败"); return R.fail("获取数据失败" + throwable.getMessage()); } @Override @@ -57,7 +57,7 @@ @Override public R<List<Partner>> getAllPartner() { return null; return R.fail("获取数据失败:" + throwable.getMessage()); } @Override ruoyi-api/ruoyi-api-integration/src/main/java/com/ruoyi/integration/api/factory/UploadRealTimeMonitoringDataFallbackFactory.java
@@ -51,7 +51,7 @@ @Override public R delete(String id) { return null; return R.fail("获取数据失败:" + throwable.getMessage()); } }; } ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java
@@ -62,7 +62,7 @@ @Override public R<List<ChargingOrderGroup>> getBySiteIdAndTime(ChargingPercentProvinceDto chargingPercentProvinceDto) { return null; return R.fail("获取数据失败:" + throwable.getMessage()); } @Override ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ExchangeOrderFallbackFactory.java
@@ -30,7 +30,7 @@ @Override public R<TExchangeOrder> orderDetail(Long orderId) { return null; return R.fail("获取数据失败:" + cause.getMessage()); } }; } ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java
@@ -47,7 +47,7 @@ @Override public R<Integer> getSalesCountByGoodsIdgetCount(Integer goodId, Integer goodeType, Integer buyType) { return null; return R.fail("获取数据失败:" + cause.getMessage()); } @@ -68,7 +68,7 @@ @Override public R<Long> addVipOrder(TVipOrder vipOrder) { return null; return R.fail("获取数据失败:" + cause.getMessage()); } ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/VipFallbackFactory.java
@@ -34,7 +34,7 @@ } @Override public R<TVip> getInfo(Integer type) { return null; return R.fail("获取数据失败:" + throwable.getMessage()); } @Override @@ -54,7 +54,7 @@ @Override public R<List<TVip>> getAllVip() { return null; return R.fail("获取数据失败:" + throwable.getMessage()); } }; } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteLogFallbackFactory.java
@@ -27,7 +27,7 @@ @Override public R<Boolean> saveLog(SysOperLog sysOperLog, String source) { return null; return R.fail("获取数据失败:" + throwable.getMessage()); } }; ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
@@ -1063,7 +1063,7 @@ @ApiOperation(value = "底部数据分类", tags = {"后台-数据分析-平台收入分析"}) public R<Map<String,Object>> total() { //count近6个月的数据 LocalDate sixBefore = PreviousSixMonths.get(); LocalDateTime sixBefore = LocalDate.now().minusMonths(6).atTime(0, 0, 0); Long userId = tokenService.getLoginUser().getUserid(); //获取当前登录的siteIds List<Integer> siteIds = new ArrayList<>(); @@ -1085,21 +1085,32 @@ map.put("shopAmount",data1); BigDecimal data2 = vipOrderService.getSumAmout(sixBefore); map.put("vipAmount",data2); List<TChargingOrder> list = chargingOrderService.lambdaQuery().between(TChargingOrder::getCreateTime, sixBefore, LocalDate.now()).list(); BigDecimal serviceCharge = new BigDecimal("0"); BigDecimal commissionAmount = new BigDecimal("0"); for (TChargingOrder chargingOrder : list) { if (chargingOrder.getOrderSource().equals(2)){ serviceCharge = serviceCharge.add(chargingOrder.getServiceCharge()!=null?chargingOrder.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2,BigDecimal.ROUND_DOWN):new BigDecimal("0")); commissionAmount = commissionAmount.add(chargingOrder.getServiceCharge()!=null?chargingOrder.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2,BigDecimal.ROUND_DOWN):new BigDecimal("0")); }else if (chargingOrder.getServiceCharge()!=null){ serviceCharge = serviceCharge.add(chargingOrder.getServiceCharge()); List<TChargingOrder> list = chargingOrderService.lambdaQuery().eq(TChargingOrder::getStatus, 5).eq(TChargingOrder::getDelFlag, 0) .eq(TChargingOrder::getRechargePaymentStatus, 2).between(TChargingOrder::getCreateTime, sixBefore, LocalDateTime.now()).list(); BigDecimal sharingAmount = BigDecimal.ZERO; BigDecimal commissionAmount = BigDecimal.ZERO; //计算list中electrovalence的总和 BigDecimal totalElectrovalence = BigDecimal.ZERO; //计算list中serviceCharge的总和 BigDecimal totalServiceCharge = BigDecimal.ZERO; List<TChargingOrderAccountingStrategy> accountingStrategyList = chargingOrderAccountingStrategyService.list(); for (TChargingOrder order : list) { List<TChargingOrderAccountingStrategy> collect = accountingStrategyList.stream().filter(s -> s.getChargingOrderId().equals(order.getId())).collect(Collectors.toList()); BigDecimal periodElectricPrice = collect.stream().map(TChargingOrderAccountingStrategy::getPeriodElectricPrice).reduce(BigDecimal.ZERO, BigDecimal::add); BigDecimal periodServicePrice = collect.stream().map(TChargingOrderAccountingStrategy::getPeriodServicePrice).reduce(BigDecimal.ZERO, BigDecimal::add); totalElectrovalence = totalElectrovalence.add(periodElectricPrice); commissionAmount = commissionAmount.add(order.getRechargeAmount().multiply(new BigDecimal("0.006"))); if(2 != order.getOrderSource()){ totalServiceCharge = totalServiceCharge.add(periodServicePrice); }else{ totalServiceCharge = totalServiceCharge.add(periodServicePrice.multiply(new BigDecimal("0.8"))); sharingAmount = sharingAmount.add(periodServicePrice.multiply(new BigDecimal("0.2"))); } } map.put("service_charge",serviceCharge); map.put("commission_amount",commissionAmount); map.put("service_charge",totalServiceCharge.setScale(2, BigDecimal.ROUND_HALF_EVEN)); map.put("electrovalence",totalElectrovalence.setScale(2, BigDecimal.ROUND_HALF_EVEN)); map.put("commission_amount",commissionAmount.setScale(2, BigDecimal.ROUND_HALF_EVEN)); map.put("sharing_amount",sharingAmount.setScale(2, BigDecimal.ROUND_HALF_EVEN)); return R.ok(map); } @@ -1248,38 +1259,25 @@ if (siteIds.isEmpty())siteIds.add(-1); TCharingOrderMapVO tCharingOrderMapVO = new TCharingOrderMapVO(); LocalDate start = null; LocalDate end = null; if (statisticsQueryDto.getDayType()==1){ start = LocalDate.now(); end = LocalDate.now().plusDays(1); }else if (statisticsQueryDto.getDayType()==2){ LocalDate today = LocalDate.now(); // 获取本周一的日期 LocalDate mondayThisWeek = today.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY)); start = statisticsQueryDto.getStartTime(); end = statisticsQueryDto.getEndTime(); System.out.println("本周一是: " + mondayThisWeek); } else if (statisticsQueryDto.getDayType()==3){ } else if (statisticsQueryDto.getDayType()==3){ // 获取当前日期 LocalDate today = LocalDate.now(); start = statisticsQueryDto.getStartTime(); end = statisticsQueryDto.getEndTime().plusDays(1); // 获取本月1号的日期 // start = yearMonth.atDay(1); // // System.out.println("本月1号是: " + start); end = statisticsQueryDto.getEndTime(); }else if (statisticsQueryDto.getDayType()==4){ // 获取今年1月1日的日期 start = statisticsQueryDto.getStartTime(); end = statisticsQueryDto.getEndTime(); }else if (statisticsQueryDto.getDayType()==5){ // 获取今年1月1日的日期 start = statisticsQueryDto.getStartTime(); end = statisticsQueryDto.getEndTime(); @@ -1287,10 +1285,6 @@ end = end.plusDays(1); } } // List<TChargingOrder> list = chargingOrderService.lambdaQuery().ge(TChargingOrder::getCreateTime, start).le(TChargingOrder::getCreateTime, 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(start,end, siteIds); @@ -1319,10 +1313,7 @@ tCharingOrderMapVO.setMaps1(charMap); }else if (statisticsQueryDto.getDayType()==2){ List<Map<String,Object>> maps1 = chargingOrderService.getWeekData(start,end); List<Map<String,Object>> maps1 = chargingOrderService.getWeekData(start,end, siteIds); LocalDate startDate = statisticsQueryDto.getStartTime(); LocalDate endDate = statisticsQueryDto.getEndTime(); @@ -1352,7 +1343,7 @@ } tCharingOrderMapVO.setMaps1(dateRangeStatistics); }else if (statisticsQueryDto.getDayType()==3){ List<Map<String,Object>> maps1 = chargingOrderService.getMonthData(start,end); List<Map<String,Object>> maps1 = chargingOrderService.getMonthData(start,end, siteIds); LocalDate startDate = statisticsQueryDto.getStartTime(); LocalDate endDate = statisticsQueryDto.getEndTime(); @@ -1382,7 +1373,7 @@ } tCharingOrderMapVO.setMaps1(dateRangeStatistics); }else if (statisticsQueryDto.getDayType()==4){ List<Map<String,Object>> maps1 = chargingOrderService.getYearData(start,end); List<Map<String,Object>> maps1 = chargingOrderService.getYearData(start,end, siteIds); LocalDate startDate = statisticsQueryDto.getStartTime(); LocalDate endDate = statisticsQueryDto.getEndTime(); @@ -1413,7 +1404,7 @@ } tCharingOrderMapVO.setMaps1(dateRangeStatistics); }else if (statisticsQueryDto.getDayType()==5){ List<Map<String,Object>> maps1 = chargingOrderService.getByDate(start,end); List<Map<String,Object>> maps1 = chargingOrderService.getByDate(start,end, siteIds); LocalDate startDate = statisticsQueryDto.getStartTime(); LocalDate endDate = statisticsQueryDto.getEndTime(); @@ -1873,18 +1864,35 @@ 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(TChargingOrder::getStatus,5) .between(TChargingOrder::getCreateTime, min, max).eq(TChargingOrder::getStatus,5) .eq(statisticsQueryDto.getSiteId() != null, TChargingOrder::getSiteId, statisticsQueryDto.getSiteId()).list(); //当日的订单总数 int size = list.size(); //计算list中paymentAmount的总和 BigDecimal totalPaymentAmount = list.stream().map(TChargingOrder::getPaymentAmount).reduce(BigDecimal.ZERO, BigDecimal::add); BigDecimal totalPaymentAmount = BigDecimal.ZERO; //计算list中electrovalence的总和 BigDecimal totalElectrovalence = list.stream().map(TChargingOrder::getElectrovalence).reduce(BigDecimal.ZERO, BigDecimal::add); BigDecimal totalElectrovalence = BigDecimal.ZERO; //计算list中serviceCharge的总和 BigDecimal totalServiceCharge = list.stream().map(TChargingOrder::getServiceCharge).reduce(BigDecimal.ZERO, BigDecimal::add); BigDecimal totalServiceCharge = BigDecimal.ZERO; //计算list中charging_capacity的总和 BigDecimal totalChargingCapacity = list.stream().map(TChargingOrder::getChargingCapacity).reduce(BigDecimal.ZERO, BigDecimal::add); BigDecimal totalChargingCapacity = BigDecimal.ZERO; List<TChargingOrderAccountingStrategy> accountingStrategyList = chargingOrderAccountingStrategyService.list(); for (TChargingOrder order : list) { List<TChargingOrderAccountingStrategy> collect = accountingStrategyList.stream().filter(s -> s.getChargingOrderId().equals(order.getId())).collect(Collectors.toList()); BigDecimal periodElectricPrice = collect.stream().map(TChargingOrderAccountingStrategy::getPeriodElectricPrice).reduce(BigDecimal.ZERO, BigDecimal::add); BigDecimal periodServicePrice = collect.stream().map(TChargingOrderAccountingStrategy::getPeriodServicePrice).reduce(BigDecimal.ZERO, BigDecimal::add); BigDecimal chargingCapacity = collect.stream().map(TChargingOrderAccountingStrategy::getChargingCapacity).reduce(BigDecimal.ZERO, BigDecimal::add); totalElectrovalence = totalElectrovalence.add(periodElectricPrice); totalChargingCapacity = totalChargingCapacity.add(chargingCapacity); if(2 != order.getOrderSource()){ totalServiceCharge = totalServiceCharge.add(periodServicePrice); totalPaymentAmount = totalPaymentAmount.add(periodElectricPrice).add(periodServicePrice); }else{ totalServiceCharge = totalServiceCharge.add(periodServicePrice.multiply(new BigDecimal("0.8"))); totalPaymentAmount = totalPaymentAmount.add(periodElectricPrice).add(periodServicePrice.multiply(new BigDecimal("0.8"))); } } TCharingWorkVO tCharingWorkVO = new TCharingWorkVO(); tCharingWorkVO.setCount(size); tCharingWorkVO.setTotalPaymentAmount(totalPaymentAmount); ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java
@@ -66,22 +66,22 @@ List<SixCircleDto> circle(@Param("siteIds")List<Integer> siteIds,@Param("sixBefore")LocalDate sixBefore); Map<String, Object> countAll(@Param("sixBefore")LocalDate sixBefore,@Param("siteIds")List<Integer> siteIds); Map<String, Object> countAll(@Param("sixBefore")LocalDateTime sixBefore,@Param("siteIds")List<Integer> siteIds); List<Map<String, Object>> getSumByType(@Param("start")LocalDateTime start,@Param("end")LocalDateTime end,@Param("siteIds")List<Integer> siteIds); List<Map<String, Object>> getDateData(@Param("start")LocalDateTime start,@Param("end")LocalDateTime end,@Param("siteIds")List<Integer> siteIds); List<Map<String, Object>> getWeekData(@Param("start")LocalDateTime start,@Param("end")LocalDateTime end); List<Map<String, Object>> getWeekData(@Param("start")LocalDateTime start,@Param("end")LocalDateTime end,@Param("siteIds")List<Integer> siteIds); List<Map<String, Object>> getMonthData(@Param("start")LocalDateTime start,@Param("end")LocalDateTime end); List<Map<String, Object>> getMonthData(@Param("start")LocalDateTime start,@Param("end")LocalDateTime end,@Param("siteIds")List<Integer> siteIds); List<Map<String, Object>> getYearData(@Param("start")LocalDateTime start,@Param("end")LocalDateTime end); List<Map<String, Object>> getYearData(@Param("start")LocalDateTime start,@Param("end")LocalDateTime end,@Param("siteIds")List<Integer> siteIds); List<ChargingOrderListVO> chargingList(@Param("pageInfo")PageInfo<ChargingOrderListVO> pageInfo, @Param("req") ChargingListQuery dto, @Param("startTime1")String startTime1, @Param("startTime2")String startTime2, @Param("endTime1")String endTime1, @Param("endTime2")String endTime2); List<ChargingOrderListVO> chargingListNoPage( @Param("req")ChargingListQuery dto, @Param("startTime1")String startTime1, @Param("startTime2")String startTime2, @Param("endTime1")String endTime1, @Param("endTime2")String endTime2); List<Map<String, Object>> getByDate(@Param("start")LocalDateTime start,@Param("end")LocalDateTime end); List<Map<String, Object>> getByDate(@Param("start")LocalDateTime start,@Param("end")LocalDateTime end,List<Integer> siteIds); List<Map<String, Object>> queryPower(@Param("siteIds")List<Integer> siteIds); ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TVipOrderMapper.java
@@ -12,6 +12,7 @@ import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.List; /** @@ -30,5 +31,5 @@ List<SixVipDto> sixBefore(@Param("sixBefore")LocalDate sixBefore); BigDecimal getSumAmout(@Param("sixBefore")LocalDate sixBefore); BigDecimal getSumAmout(@Param("sixBefore") LocalDateTime sixBefore); } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java
@@ -20,6 +20,7 @@ import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.List; import java.util.Map; @@ -144,17 +145,17 @@ List<SixCircleDto> circle(List<Integer> siteIds,LocalDate sixBefore); Map<String, Object> countAll(LocalDate sixBefore,List<Integer> siteIds); Map<String, Object> countAll(LocalDateTime sixBefore, List<Integer> siteIds); List<Map<String, Object>> getSumByType(LocalDate start,LocalDate end,List<Integer> siteIds); List<Map<String, Object>> getDateData(LocalDate start,LocalDate end,List<Integer> siteIds); List<Map<String, Object>> getWeekData(LocalDate start,LocalDate end); List<Map<String, Object>> getWeekData(LocalDate start,LocalDate end,List<Integer> siteIds); List<Map<String, Object>> getMonthData(LocalDate start,LocalDate end); List<Map<String, Object>> getMonthData(LocalDate start,LocalDate end,List<Integer> siteIds); List<Map<String, Object>> getYearData(LocalDate start,LocalDate end); List<Map<String, Object>> getYearData(LocalDate start,LocalDate end,List<Integer> siteIds); ChargingOrderTimeVO chargingList(ChargingListQuery dto); @@ -190,7 +191,7 @@ */ void excelEndCharge(String orderCode); List<Map<String, Object>> getByDate(LocalDate start,LocalDate end); List<Map<String, Object>> getByDate(LocalDate start,LocalDate end, List<Integer> siteIds); List<Map<String, Object>> queryPower(List<Integer> siteIds); ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TShoppingOrderService.java
@@ -14,6 +14,7 @@ import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.List; import java.util.Map; @@ -79,7 +80,7 @@ List<SixShopDto> sixBefore(LocalDate sixBefore, Integer status); BigDecimal getSumAmount(LocalDate sixBefore); BigDecimal getSumAmount(LocalDateTime sixBefore); List<Map<String, Object>> getData(ChargingStatisticsQueryDto statisticsQueryDto); } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TVipOrderService.java
@@ -8,6 +8,7 @@ import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.List; /** @@ -24,7 +25,7 @@ List<SixVipDto> sixBefore(LocalDate sixBefore); BigDecimal getSumAmout(LocalDate sixBefore); BigDecimal getSumAmout(LocalDateTime sixBefore); void payBack(String outTradeNo); } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java
@@ -88,7 +88,6 @@ @Override public ChargingBillVO chargingBillList1(ChargingListQuery dto) { ChargingBillVO chargingBillVO = new ChargingBillVO(); List<TChargingOrder> tChargingOrders1 = new ArrayList<>(); String startTime1 = null; @@ -105,7 +104,7 @@ List<TAppUser> userList = appUserClient.getAllUser().getData(); List<TAppUserCar> carList = appUserCarClient.getAllCar().getData(); List<TChargingOrder> total = chargingOrderList.selectList(new LambdaQueryWrapper<>(TChargingOrder.class) .eq(TChargingOrder::getRechargePaymentStatus, 2)); .eq(TChargingOrder::getRechargePaymentStatus, 2).eq(TChargingOrder::getStatus, 5)); List<TChargingOrderRefund> totalRefund = chargingOrderRefundService.lambdaQuery().eq(TChargingOrderRefund::getRefundStatus, 2).list(); Long userId = tokenService.getLoginUser().getUserid(); // 查询当前登陆人按钮权限 @@ -521,7 +520,7 @@ startTime2 = split[1]; } List<TChargingOrder> total = chargingOrderList.selectList(new LambdaQueryWrapper<>(TChargingOrder.class) .eq(TChargingOrder::getRechargePaymentStatus, 2)); .eq(TChargingOrder::getRechargePaymentStatus, 2).eq(TChargingOrder::getStatus, 5)); PageInfo<ChargingBillListVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize()); List<Site> data6 = siteClient.getSiteAll().getData(); List<TChargingGun> gunList = chargingGunClient.getAllGun().getData(); ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -1334,13 +1334,6 @@ dto.setSiteIds(siteIds); List<ChargingOrderVO> list = this.baseMapper.chargingOrder(pageInfo,dto,startTime1,startTime2,endTime1,endTime2); List<ChargingOrderVO> list1 = this.baseMapper.chargingOrder(pageInfo1,dto,startTime1,startTime2,endTime1,endTime2); BigDecimal total = new BigDecimal("0"); long time = 0L; BigDecimal electronicMoney = new BigDecimal("0"); BigDecimal serviceMoney = new BigDecimal("0"); BigDecimal commissionMoney = new BigDecimal("0"); BigDecimal refundMoney = new BigDecimal("0"); BigDecimal paymentMoney = new BigDecimal("0"); List<TChargingOrderAccountingStrategy> list3 = chargingOrderAccountingStrategyService.list(); for (ChargingOrderVO chargingOrderVO : list) { @@ -1407,24 +1400,31 @@ } } List<TChargingOrderRefund> chargingOrderRefunds = chargingOrderRefundService.lambdaQuery() .eq(TChargingOrderRefund::getRefundStatus,2).list(); BigDecimal total = new BigDecimal("0"); long time = 0L; BigDecimal electronicMoney = new BigDecimal("0"); BigDecimal serviceMoney = new BigDecimal("0"); BigDecimal refundMoney = new BigDecimal("0"); BigDecimal paymentMoney = new BigDecimal("0"); for (ChargingOrderVO chargingOrderVO : list1) { if(null == chargingOrderVO.getStatus() || 5 != chargingOrderVO.getStatus()){ continue; } List<TChargingOrderAccountingStrategy> list4 = list3.stream().filter(e -> e.getChargingOrderId().equals(chargingOrderVO.getId())).collect(Collectors.toList()); BigDecimal electronic_reduce = list4.stream().map(TChargingOrderAccountingStrategy::getPeriodElectricPrice).reduce(BigDecimal.ZERO, BigDecimal::add); BigDecimal service_reduce = list4.stream().map(TChargingOrderAccountingStrategy::getPeriodServicePrice).reduce(BigDecimal.ZERO, BigDecimal::add); BigDecimal chargingCapacity = list4.stream().map(TChargingOrderAccountingStrategy::getChargingCapacity).reduce(BigDecimal.ZERO, BigDecimal::add); electronicMoney = electronicMoney.add(electronic_reduce); total = total.add(chargingCapacity); if (!chargingOrderVO.getOrderSource().equals(2)) { paymentMoney = paymentMoney.add(chargingOrderVO.getPaymentAmount() != null ? chargingOrderVO.getPaymentAmount() : new BigDecimal("0")); serviceMoney = serviceMoney.add(service_reduce); paymentMoney = paymentMoney.add(electronic_reduce).add(service_reduce); }else{ paymentMoney = paymentMoney.add(electronic_reduce).add(service_reduce.multiply(new BigDecimal("0.8")).setScale(2, BigDecimal.ROUND_DOWN)); } // if (chargingOrderVO.getRechargeAmount()!=null){ // commissionMoney = commissionMoney.add(chargingOrderVO.getRechargeAmount().multiply(new BigDecimal("0.006")).setScale(2,BigDecimal.ROUND_DOWN)); // } if (chargingOrderVO.getChargingCapacity()!=null){ total = total.add(chargingOrderVO.getElectricity()!=null?chargingOrderVO.getElectricity():new BigDecimal("0")); serviceMoney = serviceMoney.add(service_reduce.multiply(new BigDecimal("0.8"))); paymentMoney = paymentMoney.add(electronic_reduce).add(service_reduce.multiply(new BigDecimal("0.8"))); } if (chargingOrderVO.getStartTime()!=null && chargingOrderVO.getEndTime()!=null){ LocalDateTime startTime = chargingOrderVO.getStartTime(); @@ -1438,20 +1438,12 @@ for (TChargingOrderRefund tChargingOrderRefund : list2) { refundMoney = refundMoney.add(tChargingOrderRefund.getRefundTotalAmount()); } //充电明细 electronicMoney = electronicMoney.add(electronic_reduce); if (!chargingOrderVO.getOrderSource().equals(2)){ serviceMoney = serviceMoney.add(service_reduce); }else{ serviceMoney = serviceMoney.add(service_reduce.multiply(new BigDecimal("0.8"))); } } tCharingOrderVO.setTotal(total); tCharingOrderVO.setTime(time); tCharingOrderVO.setIncome(paymentMoney); tCharingOrderVO.setElectronicMoney(electronicMoney); tCharingOrderVO.setServiceMoney(serviceMoney); tCharingOrderVO.setIncome(paymentMoney.setScale(2, BigDecimal.ROUND_HALF_EVEN)); tCharingOrderVO.setElectronicMoney(electronicMoney.setScale(2, BigDecimal.ROUND_HALF_EVEN)); tCharingOrderVO.setServiceMoney(serviceMoney.setScale(2, BigDecimal.ROUND_HALF_EVEN)); pageInfo.setRecords(list); tCharingOrderVO.setList(pageInfo); return tCharingOrderVO; @@ -1501,7 +1493,7 @@ } @Override public Map<String, Object> countAll(LocalDate sixBefore,List<Integer> siteIds) { public Map<String, Object> countAll(LocalDateTime sixBefore,List<Integer> siteIds) { return this.baseMapper.countAll(sixBefore,siteIds); } @@ -1520,24 +1512,24 @@ } @Override public List<Map<String, Object>> getWeekData(LocalDate start,LocalDate end) { public List<Map<String, Object>> getWeekData(LocalDate start,LocalDate end,List<Integer> siteIds) { LocalDateTime start1 = start.atStartOfDay(); LocalDateTime end1 = end.atTime(LocalTime.MAX); return this.baseMapper.getWeekData(start1,end1); return this.baseMapper.getWeekData(start1,end1,siteIds); } @Override public List<Map<String, Object>> getMonthData(LocalDate start,LocalDate end) { public List<Map<String, Object>> getMonthData(LocalDate start,LocalDate end,List<Integer> siteIds) { LocalDateTime start1 = start.atStartOfDay(); LocalDateTime end1 = end.atTime(LocalTime.MAX); return this.baseMapper.getMonthData(start1,end1); return this.baseMapper.getMonthData(start1,end1,siteIds); } @Override public List<Map<String, Object>> getYearData(LocalDate start,LocalDate end) { public List<Map<String, Object>> getYearData(LocalDate start,LocalDate end,List<Integer> siteIds) { LocalDateTime start1 = start.atStartOfDay(); LocalDateTime end1 = end.atTime(LocalTime.MAX); return this.baseMapper.getYearData(start1,end1); return this.baseMapper.getYearData(start1,end1,siteIds); } @Resource @@ -1802,22 +1794,18 @@ BigDecimal gu = new BigDecimal("0"); List<TChargingOrderAccountingStrategy> chargingOrderAccountingStrategies = chargingOrderAccountingStrategyService.list(); for (ChargingOrderListVO chargingOrderListVO : list1) { if (chargingOrderListVO.getChargingCapacity()!=null)electronic = electronic.add(chargingOrderListVO.getElectricity()); if (chargingOrderListVO.getPaymentAmount()!=null){ if (chargingOrderListVO.getOrderSource().equals(2)){ paymentAmount = paymentAmount.add(chargingOrderListVO.getServiceCharge()!=null?chargingOrderListVO.getServiceCharge().multiply(new BigDecimal("0.2").setScale(2,BigDecimal.ROUND_HALF_UP)):new BigDecimal("0")); }else{ paymentAmount = paymentAmount.add(chargingOrderListVO.getPaymentAmount()); } } if (chargingOrderListVO.getElectrovalence()!=null)electrovalence = electrovalence.add(chargingOrderListVO.getElectrovalence()); if (chargingOrderListVO.getServiceCharge()!=null){ if (chargingOrderListVO.getOrderSource().equals(2)){ serviceCharge = serviceCharge.add(chargingOrderListVO.getServiceCharge().multiply(new BigDecimal("0.2").setScale(2,BigDecimal.ROUND_HALF_UP))); }else{ serviceCharge = serviceCharge.add(chargingOrderListVO.getServiceCharge()); } List<TChargingOrderAccountingStrategy> collect = chargingOrderAccountingStrategies.stream().filter(s -> s.getChargingOrderId().equals(chargingOrderListVO.getId())).collect(Collectors.toList()); BigDecimal periodServicePrice = collect.stream().map(TChargingOrderAccountingStrategy::getPeriodServicePrice).reduce(BigDecimal.ZERO, BigDecimal::add); BigDecimal periodElectricPrice = collect.stream().map(TChargingOrderAccountingStrategy::getPeriodElectricPrice).reduce(BigDecimal.ZERO, BigDecimal::add); BigDecimal chargingCapacity = collect.stream().map(TChargingOrderAccountingStrategy::getChargingCapacity).reduce(BigDecimal.ZERO, BigDecimal::add); electronic = electronic.add(chargingCapacity); electrovalence = electrovalence.add(periodElectricPrice); if (chargingOrderListVO.getOrderSource().equals(2)){ serviceCharge = serviceCharge.add(periodServicePrice.multiply(new BigDecimal("0.8"))); paymentAmount = paymentAmount.add(periodElectricPrice).add(periodServicePrice.multiply(new BigDecimal("0.8"))); }else{ serviceCharge = serviceCharge.add(periodServicePrice); paymentAmount = paymentAmount.add(periodElectricPrice).add(periodServicePrice); } if (!chargingOrderListVO.getOrderSource().equals(2)){ List<TChargingOrderAccountingStrategy> list2 = chargingOrderAccountingStrategies.stream().filter(e -> e.getChargingOrderId().equals(chargingOrderListVO.getId())) @@ -1825,24 +1813,48 @@ for (TChargingOrderAccountingStrategy temp : list2) { switch (temp.getType()){ case 1: if (temp.getChargingCapacity()!=null)jian = jian.add(temp.getChargingCapacity()); if (temp.getElectrovalence()!=null)jianElectronic = jianElectronic.add(temp.getElectrovalence()); if (temp.getServiceCharge()!=null)jianService = jianService.add(temp.getServiceCharge()); if (temp.getChargingCapacity()!=null){ jian = jian.add(temp.getChargingCapacity()); } if (temp.getElectrovalence()!=null){ jianElectronic = jianElectronic.add(temp.getElectrovalence()); } if (temp.getServiceCharge()!=null){ jianService = jianService.add(temp.getServiceCharge()); } break; case 2: if (temp.getChargingCapacity()!=null)feng = feng.add(temp.getChargingCapacity()); if (temp.getElectrovalence()!=null)fengElectronic = fengElectronic.add(temp.getElectrovalence()); if (temp.getServiceCharge()!=null)fengService = fengService.add(temp.getServiceCharge()); if (temp.getChargingCapacity()!=null){ feng = feng.add(temp.getChargingCapacity()); } if (temp.getElectrovalence()!=null){ fengElectronic = fengElectronic.add(temp.getElectrovalence()); } if (temp.getServiceCharge()!=null){ fengService = fengService.add(temp.getServiceCharge()); } break; case 3: if (temp.getChargingCapacity()!=null)ping = ping.add(temp.getChargingCapacity()); if (temp.getElectrovalence()!=null)pingElectronic = pingElectronic.add(temp.getElectrovalence()); if (temp.getServiceCharge()!=null)pingService = pingService.add(temp.getServiceCharge()); if (temp.getChargingCapacity()!=null){ ping = ping.add(temp.getChargingCapacity()); } if (temp.getElectrovalence()!=null){ pingElectronic = pingElectronic.add(temp.getElectrovalence()); } if (temp.getServiceCharge()!=null){ pingService = pingService.add(temp.getServiceCharge()); } break; case 4: if (temp.getChargingCapacity()!=null)gu = gu.add(temp.getChargingCapacity()); if (temp.getElectrovalence()!=null)guElectronic = guElectronic.add(temp.getElectrovalence()); if (temp.getServiceCharge()!=null)guService = guService.add(temp.getServiceCharge()); if (temp.getChargingCapacity()!=null){ gu = gu.add(temp.getChargingCapacity()); } if (temp.getElectrovalence()!=null){ guElectronic = guElectronic.add(temp.getElectrovalence()); } if (temp.getServiceCharge()!=null){ guService = guService.add(temp.getServiceCharge()); } break; } } @@ -1852,34 +1864,58 @@ for (TChargingOrderAccountingStrategy temp : list2) { switch (temp.getType()){ case 1: if (temp.getChargingCapacity()!=null)jian = jian.add(temp.getChargingCapacity()); if (temp.getElectrovalence()!=null)jianElectronic = jianElectronic.add(temp.getElectrovalence()); if (temp.getServiceCharge()!=null)jianService = jianService.add(temp.getServiceCharge().multiply(new BigDecimal("0.2").setScale(2,BigDecimal.ROUND_HALF_UP))); if (temp.getChargingCapacity()!=null){ jian = jian.add(temp.getChargingCapacity()); } if (temp.getElectrovalence()!=null){ jianElectronic = jianElectronic.add(temp.getElectrovalence()); } if (temp.getServiceCharge()!=null){ jianService = jianService.add(temp.getServiceCharge().multiply(new BigDecimal("0.2").setScale(2,BigDecimal.ROUND_HALF_UP))); } break; case 2: if (temp.getChargingCapacity()!=null)feng = feng.add(temp.getChargingCapacity()); if (temp.getElectrovalence()!=null)fengElectronic = fengElectronic.add(temp.getElectrovalence()); if (temp.getServiceCharge()!=null)fengService = fengService.add(temp.getServiceCharge().multiply(new BigDecimal("0.2").setScale(2,BigDecimal.ROUND_HALF_UP))); if (temp.getChargingCapacity()!=null){ feng = feng.add(temp.getChargingCapacity()); } if (temp.getElectrovalence()!=null){ fengElectronic = fengElectronic.add(temp.getElectrovalence()); } if (temp.getServiceCharge()!=null){ fengService = fengService.add(temp.getServiceCharge().multiply(new BigDecimal("0.2").setScale(2,BigDecimal.ROUND_HALF_UP))); } break; case 3: if (temp.getChargingCapacity()!=null)ping = ping.add(temp.getChargingCapacity()); if (temp.getElectrovalence()!=null)pingElectronic = pingElectronic.add(temp.getElectrovalence()); if (temp.getServiceCharge()!=null)pingService = pingService.add(temp.getServiceCharge().multiply(new BigDecimal("0.2").setScale(2,BigDecimal.ROUND_HALF_UP))); if (temp.getChargingCapacity()!=null){ ping = ping.add(temp.getChargingCapacity()); } if (temp.getElectrovalence()!=null){ pingElectronic = pingElectronic.add(temp.getElectrovalence()); } if (temp.getServiceCharge()!=null){ pingService = pingService.add(temp.getServiceCharge().multiply(new BigDecimal("0.2").setScale(2,BigDecimal.ROUND_HALF_UP))); } break; case 4: if (temp.getChargingCapacity()!=null)gu = gu.add(temp.getChargingCapacity()); if (temp.getElectrovalence()!=null)guElectronic = guElectronic.add(temp.getElectrovalence()); if (temp.getServiceCharge()!=null)guService = guService.add(temp.getServiceCharge().multiply(new BigDecimal("0.2").setScale(2,BigDecimal.ROUND_HALF_UP))); if (temp.getChargingCapacity()!=null){ gu = gu.add(temp.getChargingCapacity()); } if (temp.getElectrovalence()!=null){ guElectronic = guElectronic.add(temp.getElectrovalence()); } if (temp.getServiceCharge()!=null){ guService = guService.add(temp.getServiceCharge().multiply(new BigDecimal("0.2").setScale(2,BigDecimal.ROUND_HALF_UP))); } break; } } } } chargingOrderTimeVO.setChargingCapacity(electronic); chargingOrderTimeVO.setPaymentAmount(paymentAmount); chargingOrderTimeVO.setElectrovalence(electrovalence); chargingOrderTimeVO.setServiceCharge(serviceCharge); chargingOrderTimeVO.setChargingCapacity(electronic.setScale(2, BigDecimal.ROUND_HALF_EVEN)); chargingOrderTimeVO.setPaymentAmount(paymentAmount.setScale(2, BigDecimal.ROUND_HALF_EVEN)); chargingOrderTimeVO.setElectrovalence(electrovalence.setScale(2, BigDecimal.ROUND_HALF_EVEN)); chargingOrderTimeVO.setServiceCharge(serviceCharge.setScale(2, BigDecimal.ROUND_HALF_EVEN)); // 计算尖峰平谷充电到账占比 BigDecimal add = jianElectronic.add(fengElectronic).add(pingElectronic).add(guElectronic); @@ -2559,11 +2595,11 @@ @Override public List<Map<String, Object>> getByDate(LocalDate start,LocalDate end) { public List<Map<String, Object>> getByDate(LocalDate start,LocalDate end,List<Integer> siteIds) { LocalDateTime start1 = start.atStartOfDay(); LocalDateTime end1 = end.atTime(LocalTime.MAX); return this.baseMapper.getByDate(start1,end1); return this.baseMapper.getByDate(start1,end1,siteIds); } @Override @@ -3126,13 +3162,9 @@ siteIds.add(-1); } List<Site> siteList = siteClient.getSiteAll().getData(); List<TChargingGun> gunList = chargingGunClient.getAllGun().getData(); List<TChargingPile> pileList = chargingGunClient.getAllPile().getData(); List<TAppUser> userList = appUserClient.getAllUser().getData(); List<TAppUserCar> carList = appUserCarClient.getAllCar().getData(); List<TChargingOrder> totalOrder = chargingOrderService.list(new LambdaQueryWrapper<>(TChargingOrder.class) .eq(TChargingOrder::getRechargePaymentStatus, 2)); List<TChargingOrderRefund> totalRefund = chargingOrderRefundService.lambdaQuery().eq(TChargingOrderRefund::getRefundStatus, 2).list(); .eq(TChargingOrder::getRechargePaymentStatus, 2).eq(TChargingOrder::getStatus, 5)); SettlementTotalVO res = new SettlementTotalVO(); List<TSettlementConfirm> list1 = tSettlementConfirmMapper.settlementTotal(time,siteIds); LocalDateTime parse = LocalDateTime.parse(time, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); @@ -3169,8 +3201,6 @@ BigDecimal orderCommission = new BigDecimal("0"); BigDecimal vipDiscount = new BigDecimal("0"); BigDecimal couponDiscount = new BigDecimal("0"); // tSettlementConfirm1.setIncomePercentage(); // tSettlementConfirm1.setTotalPercentage(); tSettlementConfirm1.setElectronicRefund(0); // 上月成本合计 BigDecimal beforeCost= new BigDecimal("0"); @@ -3245,7 +3275,6 @@ for (TChargingPile datum : data) { bigDecimal = bigDecimal.add(datum.getRatedPower()); } tSettlementConfirm.setIncome(tSettlementConfirm.getElectrovalence().add(tSettlementConfirm.getServiceCharge())); //利用率=充电量/(桩数量*功率*时间) @@ -3335,7 +3364,6 @@ BigDecimal subtract = income.subtract(beforeIncome).divide(beforeIncome,2,RoundingMode.HALF_DOWN).multiply(new BigDecimal("100")); tSettlementConfirm.setIncomePercentage(subtract+"%"); tSettlementConfirm.setIncomePercentage(subtract+"%"); } // 比较总利润 收入合计-成本合计 BigDecimal subtract1 = income.subtract(cost); ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TVipOrderServiceImpl.java
@@ -20,6 +20,7 @@ import java.math.BigDecimal; import java.time.LocalDate; import javax.annotation.Resource; import java.time.LocalDateTime; import java.util.List; /** @@ -75,7 +76,7 @@ } @Override public BigDecimal getSumAmout(LocalDate sixBefore) { public BigDecimal getSumAmout(LocalDateTime sixBefore) { return this.baseMapper.getSumAmout(sixBefore); } ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
@@ -76,7 +76,7 @@ <select id="chargingOrder" resultType="com.ruoyi.order.api.vo.ChargingOrderVO"> select t1.* from t_charging_order t1 where 1=1 where t1.del_flag = 0 <if test="null != req.code and req.code!=''"> and t1.code LIKE CONCAT('%',#{req.code},'%') </if> @@ -446,26 +446,32 @@ </select> <select id="getDateData" resultType="java.util.Map"> SELECT DATE_FORMAT( create_time, '%H:00' ) as time, CAST( SUM( CASE WHEN order_source = 0 THEN service_charge WHEN order_source = 1 THEN service_charge ELSE service_charge * 0.2 END )AS DECIMAL(20, 6)) as servicecharge, CAST(SUM(charging_capacity) AS DECIMAL(20, 6)) as electrovalence, CAST(SUM(electrovalence) AS DECIMAL(20, 4)) AS paymentAmount, SUM(payment_amount) AS paymoney, DATE_FORMAT(a.create_time, '%H:00' ) as time, SUM(CASE WHEN a.order_source = 0 THEN b.period_service_price WHEN a.order_source = 1 THEN b.period_service_price ELSE b.period_service_price * 0.8 END) as servicecharge, SUM(a.charging_capacity) as electrovalence, SUM(a.electrovalence) AS paymentAmount, ROUND(SUM(CASE WHEN a.order_source = 0 THEN b.money WHEN a.order_source = 1 THEN b.money ELSE (b.period_electric_price + b.period_service_price * 0.8) END), 2) AS paymoney, count(1) as orderCount FROM t_charging_order t_charging_order a left join (select charging_order_id, sum(period_electric_price) as period_electric_price, sum(period_service_price) as period_service_price, sum(period_electric_price + period_service_price) as money from t_charging_order_accounting_strategy group by charging_order_id) b on (a.id = b.charging_order_id) <where> del_flag = 0 and recharge_payment_status = 2 and DATE(create_time) = CURDATE() and create_time between #{start} and #{end} a.del_flag = 0 and a.status = 5 and a.recharge_payment_status = 2 and DATE(a.create_time) = CURDATE() and a.create_time between #{start} and #{end} <if test="null != siteIds and siteIds.size() > 0"> and a.site_id in <foreach collection="siteIds" separator="," open="(" close=")" item="item" index="index"> #{item} </foreach> </if> </where> GROUP BY time @@ -475,23 +481,32 @@ </select> <select id="getWeekData" resultType="java.util.Map"> SELECT DATE_FORMAT( create_time, '%Y-%m-%d' ) as time, DATE_FORMAT(a.create_time, '%Y-%m-%d' ) as time, SUM(CASE WHEN order_source = 0 THEN service_charge WHEN order_source = 1 THEN service_charge ELSE service_charge * 0.2 WHEN a.order_source = 0 THEN b.period_service_price WHEN a.order_source = 1 THEN b.period_service_price ELSE b.period_service_price * 0.8 END) as servicecharge, SUM(charging_capacity) as electrovalence, SUM(electrovalence) AS paymentAmount, SUM(payment_amount) AS paymoney, SUM(a.charging_capacity) as electrovalence, SUM(a.electrovalence) AS paymentAmount, ROUND(SUM(CASE WHEN a.order_source = 0 THEN b.money WHEN a.order_source = 1 THEN b.money ELSE (b.period_electric_price + b.period_service_price * 0.8) END), 2) AS paymoney, count(1) as orderCount FROM t_charging_order t_charging_order a left join (select charging_order_id, sum(period_electric_price) as period_electric_price, sum(period_service_price) as period_service_price, sum(period_electric_price + period_service_price) as money from t_charging_order_accounting_strategy group by charging_order_id) b on (a.id = b.charging_order_id) <where> del_flag = 0 and recharge_payment_status = 2 and YEARWEEK(DATE_FORMAT(create_time, '%Y-%m-%d'), 1) = YEARWEEK(NOW(), 1) and create_time between #{start} and #{end} a.del_flag = 0 and a.status = 5 and a.recharge_payment_status = 2 and YEARWEEK(DATE_FORMAT(a.create_time, '%Y-%m-%d'), 1) = YEARWEEK(NOW(), 1) and a.create_time between #{start} and #{end} <if test="null != siteIds and siteIds.size() > 0"> and a.site_id in <foreach collection="siteIds" separator="," open="(" close=")" item="item" index="index"> #{item} </foreach> </if> </where> GROUP BY time @@ -501,28 +516,32 @@ </select> <select id="getMonthData" resultType="java.util.Map"> SELECT DATE_FORMAT( create_time, '%Y-%m-%d' ) as time, DATE_FORMAT(a.create_time, '%Y-%m-%d' ) as time, SUM(CASE WHEN order_source = 0 THEN service_charge WHEN order_source = 1 THEN service_charge ELSE service_charge * 0.2 WHEN a.order_source = 0 THEN b.period_service_price WHEN a.order_source = 1 THEN b.period_service_price ELSE b.period_service_price * 0.8 END) as servicecharge, SUM(charging_capacity) as electrovalence, SUM(electrovalence) AS paymentAmount, SUM( CASE WHEN order_source = 0 THEN payment_amount WHEN order_source = 1 THEN payment_amount ELSE service_charge * 0.2 END) AS paymoney, SUM(a.charging_capacity) as electrovalence, SUM(a.electrovalence) AS paymentAmount, ROUND(SUM(CASE WHEN a.order_source = 0 THEN b.money WHEN a.order_source = 1 THEN b.money ELSE (b.period_electric_price + b.period_service_price * 0.8) END), 2) AS paymoney, count(1) as orderCount FROM t_charging_order t_charging_order a left join (select charging_order_id, sum(period_electric_price) as period_electric_price, sum(period_service_price) as period_service_price, sum(period_electric_price + period_service_price) as money from t_charging_order_accounting_strategy group by charging_order_id) b on (a.id = b.charging_order_id) <where> del_flag = 0 and recharge_payment_status = 2 and MONTH(create_time) = MONTH(NOW()) AND YEAR(create_time) = YEAR(NOW()) and create_time between #{start} and #{end} a.del_flag = 0 and a.status = 5 and a.recharge_payment_status = 2 and MONTH(a.create_time) = MONTH(NOW()) AND YEAR(a.create_time) = YEAR(NOW()) and a.create_time between #{start} and #{end} <if test="null != siteIds and siteIds.size() > 0"> and a.site_id in <foreach collection="siteIds" separator="," open="(" close=")" item="item" index="index"> #{item} </foreach> </if> </where> GROUP BY time @@ -532,50 +551,66 @@ </select> <select id="getYearData" resultType="java.util.Map"> SELECT DATE_FORMAT( create_time, '%Y-%m-%d' ) as time, DATE_FORMAT(a.create_time, '%Y-%m-%d' ) as time, SUM(CASE WHEN order_source = 0 THEN service_charge WHEN order_source = 1 THEN service_charge ELSE service_charge * 0.2 WHEN a.order_source = 0 THEN b.period_service_price WHEN a.order_source = 1 THEN b.period_service_price ELSE b.period_service_price * 0.8 END) as servicecharge, SUM(charging_capacity) as electrovalence, SUM(electrovalence) AS paymentAmount, SUM(payment_amount) AS paymoney, SUM(a.charging_capacity) as electrovalence, SUM(a.electrovalence) AS paymentAmount, ROUND(SUM(CASE WHEN a.order_source = 0 THEN b.money WHEN a.order_source = 1 THEN b.money ELSE (b.period_electric_price + b.period_service_price * 0.8) END), 2) AS paymoney, count(1) as orderCount FROM t_charging_order t_charging_order a left join (select charging_order_id, sum(period_electric_price) as period_electric_price, sum(period_service_price) as period_service_price, sum(period_electric_price + period_service_price) as money from t_charging_order_accounting_strategy group by charging_order_id) b on (a.id = b.charging_order_id) <where> del_flag = 0 and recharge_payment_status = 2 and YEAR(create_time) = YEAR(NOW()) and create_time between #{start} and #{end} a.del_flag = 0 and a.status = 5 and a.recharge_payment_status = 2 and YEAR(a.create_time) = YEAR(NOW()) and a.create_time between #{start} and #{end} <if test="null != siteIds and siteIds.size() > 0"> and a.site_id in <foreach collection="siteIds" separator="," open="(" close=")" item="item" index="index"> #{item} </foreach> </if> </where> GROUP BY time ORDER BY time </select> <select id="getByDate" resultType="java.util.Map"> SELECT DATE_FORMAT( create_time, '%Y-%m-%d' ) as time, DATE_FORMAT(a.create_time, '%Y-%m-%d' ) as time, SUM(CASE WHEN order_source = 0 THEN service_charge WHEN order_source = 1 THEN service_charge ELSE service_charge * 0.2 WHEN a.order_source = 0 THEN b.period_service_price WHEN a.order_source = 1 THEN b.period_service_price ELSE b.period_service_price * 0.2 END) as servicecharge, SUM(charging_capacity) as electrovalence, SUM(electrovalence) AS paymentAmount, SUM(payment_amount) AS paymoney, SUM(a.charging_capacity) as electrovalence, SUM(a.electrovalence) AS paymentAmount, ROUND(SUM(CASE WHEN a.order_source = 0 THEN b.money WHEN a.order_source = 1 THEN b.money ELSE (b.period_electric_price + b.period_service_price * 0.8) END), 2) AS paymoney, count(1) as orderCount FROM t_charging_order t_charging_order a left join (select charging_order_id, sum(period_electric_price) as period_electric_price, sum(period_service_price) as period_service_price, sum(period_electric_price + period_service_price) as money from t_charging_order_accounting_strategy group by charging_order_id) b on (a.id = b.charging_order_id) <where> del_flag = 0 and recharge_payment_status = 2 and create_time between #{start} and #{end} a.del_flag = 0 and a.status = 5 and a.recharge_payment_status = 2 and a.create_time between #{start} and #{end} <if test="null != siteIds and siteIds.size() > 0"> and a.site_id in <foreach collection="siteIds" separator="," open="(" close=")" item="item" index="index"> #{item} </foreach> </if> </where> GROUP BY time @@ -912,7 +947,7 @@ <select id="chargingList" resultType="com.ruoyi.order.api.vo.ChargingOrderListVO"> select t1.*, t1.current as chargingCapacity,t1.payment_amount as paymentAmount,t1.electricity as chargingCapacity from t_charging_order t1 where 1=1 where t1.del_flag = 0 and t1.status = 5 and t1.recharge_payment_status = 2 <if test="null != req.code and req.code!=''"> and t1.code LIKE CONCAT('%',#{req.code},'%') </if> @@ -952,7 +987,6 @@ <if test="endTime1 != null and endTime1!=''"> and (t1.end_time between #{endTime1} and #{endTime2}) </if> AND t1.del_flag = 0 and t1.start_time IS NOT NULL order by t1.create_time desc </select>