From b4b44f2021dbf083b7057fb7e192b72d08b4bf17 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期二, 22 十月 2024 09:23:29 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 86 ++++++++----- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java | 1 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderAppealServiceImpl.java | 14 +- ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TOrderInvoiceMapper.xml | 2 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserCarClient.java | 4 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserCarController.java | 8 + ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java | 7 + ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingGunController.java | 4 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java | 2 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrderAccountingStrategy.java | 6 ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml | 4 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java | 1 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java | 9 ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml | 78 +++++++++--- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java | 76 ++++++++++-- ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderVO.java | 2 16 files changed, 215 insertions(+), 89 deletions(-) diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserCarClient.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserCarClient.java index a0a477c..bce08c1 100644 --- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserCarClient.java +++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserCarClient.java @@ -35,6 +35,8 @@ * @param licensePlate * @return */ - @PostMapping(value = "/t-app-user-car/getAppUserCarByLicensePlate") + @PostMapping(value = "/t-app-user-car/t-app-user-car/getAppUserCarByLicensePlate") R<TAppUserCar> getAppUserCarByLicensePlate(@RequestParam("licensePlate") String licensePlate); + @PostMapping(value = "/t-app-user-car/t-app-user-car/getAppUserCarByLicensePlates") + R<List<Long>> getAppUserCarByLicensePlates(@RequestParam("licensePlate") String licensePlate); } diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrderAccountingStrategy.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrderAccountingStrategy.java index b616194..2318e75 100644 --- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrderAccountingStrategy.java +++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrderAccountingStrategy.java @@ -73,7 +73,7 @@ @TableField("period_electric_price") private BigDecimal periodElectricPrice; - @ApiModelProperty(value = "时段服务费") + @ApiModelProperty(value = "时段服务费(最终服务费 含折扣)") @TableField("period_service_price") private BigDecimal periodServicePrice; @@ -93,9 +93,7 @@ @TableField(exist = false) private BigDecimal couponDiscount; - @ApiModelProperty(value = "最终服务费") - @TableField(exist = false) - private BigDecimal finalService; + } diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderVO.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderVO.java index 61ba66b..f4f6ee2 100644 --- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderVO.java +++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderVO.java @@ -29,6 +29,8 @@ private String licensePlate; @ApiModelProperty(value = "手机号") private String phone; + @ApiModelProperty(value = "uid") + private String uid; @ApiModelProperty(value = "时段数") diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java index fddb374..d407038 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java @@ -103,7 +103,7 @@ { if (StringUtils.isNotEmpty(perm)) { - permsSet.addAll(Arrays.asList(perm.trim().split(","))); + permsSet.add(perm); } } return permsSet; diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml index 583bf3a..75db7c8 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml @@ -96,14 +96,14 @@ </select> <select id="selectMenuPerms" resultType="String"> - select distinct m.perms + select distinct m.path from sys_menu m left join sys_role_menu rm on m.menu_id = rm.menu_id left join sys_user_role ur on rm.role_id = ur.role_id </select> <select id="selectMenuPermsByUserId" parameterType="Long" resultType="String"> - select distinct m.perms + select distinct m.path from sys_menu m left join sys_role_menu rm on m.menu_id = rm.menu_id left join sys_user_role ur on rm.role_id = ur.role_id diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserCarController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserCarController.java index dda013b..97b6d63 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserCarController.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserCarController.java @@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.*; import java.util.List; +import java.util.stream.Collectors; /** * <p> @@ -47,6 +48,13 @@ TAppUserCar one = appUserCarService.getOne(new LambdaQueryWrapper<TAppUserCar>().eq(TAppUserCar::getLicensePlate, licensePlate).eq(TAppUserCar::getDelFlag, 0)); return R.ok(one); } + @PostMapping(value = "/t-app-user-car/getAppUserCarByLicensePlates") + public R<List<Long>> getAppUserCarByLicensePlates(@RequestParam("licensePlate") String licensePlate){ + List<Long> collect = appUserCarService.list(new LambdaQueryWrapper<TAppUserCar>().like(TAppUserCar::getLicensePlate, licensePlate) + .eq(TAppUserCar::getDelFlag, 0)).stream() + .map(TAppUserCar::getId).collect(Collectors.toList()); + return R.ok(collect); + } } diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingGunController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingGunController.java index 1d083c1..1c1442d 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingGunController.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingGunController.java @@ -252,10 +252,10 @@ TChargingGun chargingGun = chargingGunService.getById(id); siteNameVO.setGunName(chargingGun.getName()); siteNameVO.setGunNumber(chargingGun.getCode()); - TChargingPile chargingPile = chargingPileService.getById(id); + TChargingPile chargingPile = chargingPileService.getById(chargingGun.getChargingPileId()); siteNameVO.setPileName(chargingPile.getName()); siteNameVO.setPileNumber(chargingPile.getNumber()); - Site site = siteService.getById(id); + Site site = siteService.getById(chargingGun.getSiteId()); siteNameVO.setSiteName(site.getName()); return R.ok(siteNameVO); } 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 6f1dfab..6b5b491 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 @@ -309,18 +309,38 @@ @ResponseBody @PostMapping(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); } @@ -927,7 +947,39 @@ startDate = startDate.plusDays(1); } - tCharingUserMapVO.setMap(map); + tCharingUserMapVO.setMap(dateRangeStatistics); + + + List<Map<String,Object>> map1 = chargingOrderService.usersByQuery(statisticsQueryDto); + + + + + List<Map<String, Object>> dateRangeStatistics1 = new ArrayList<>(); + + // 遍历日期范围 + while (!startDate.isAfter(endDate)) { + String formattedDate = startDate.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); + } + + // 移动到下一天 + startDate = startDate.plusDays(1); + } + + tCharingUserMapVO.setMap1(dateRangeStatistics1); + + + + } //用户标签 diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java index e6a617c..5c10122 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java @@ -92,6 +92,7 @@ List<Map<String, Object>> usersDay1(); List<Map<String, Object>> usersByQuery(@Param("statisticsQueryDto") ChargingStatisticsQueryDto statisticsQueryDto); + List<Map<String, Object>> usersByQuery1(@Param("statisticsQueryDto") ChargingStatisticsQueryDto statisticsQueryDto); List<Map<String, Object>> getUserTagCount(); diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java index 0593bb3..bd3928f 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java @@ -197,6 +197,7 @@ List<Map<String, Object>> usersDay1(); List<Map<String, Object>> usersByQuery(ChargingStatisticsQueryDto statisticsQueryDto); + List<Map<String, Object>> usersByQuery1(ChargingStatisticsQueryDto statisticsQueryDto); List<Map<String, Object>> getUserTagCount(); diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java index a8351ab..e2e124d 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java @@ -470,7 +470,7 @@ TAppUserVipDetail vipDetail = appUserVipDetailClient.getAppUserVipDetail(getAppUserVipDetail).getData(); if(null != vipDetail){ Integer chargeNum = vipDetail.getChargeNum(); - if(0 > chargeNum){ + if(0 < chargeNum){ chargingOrder.setVipDiscount(discount); } } @@ -582,7 +582,7 @@ Integer start = Integer.valueOf(accountingStrategyDetailOrder.getStartTime().replaceAll(":", "")); Integer end = Integer.valueOf(accountingStrategyDetailOrder.getEndTime().replaceAll(":", "")); String[] split = accountingStrategyDetailOrder.getEndTime().split(":"); - if(sta || now >= start){ + if(sta || (now >= start && now < end)){ sta = true; Calendar end_calendar = Calendar.getInstance(); @@ -604,16 +604,16 @@ //每秒需要支付的服务费金额 BigDecimal s_server_amount = s_degrees.multiply(accountingStrategyDetailOrder.getServiceCharge()); //计算剩余金额能充多长时间的电 - long times = rechargeAmount1.divide(s_server_amount, 0, RoundingMode.DOWN).longValue(); + long times = rechargeAmount1.divide(s_total_amount, 0, RoundingMode.DOWN).longValue(); if(times > m){ //充电时间跨度两个计费策略,需要继续对下一个策略进行计算 serviceCharge = s_server_amount.multiply(new BigDecimal(m)); - discountAmount = discountAmount.add(serviceCharge.multiply((new BigDecimal(10).subtract(discount)).divide(new BigDecimal(10)))); + discountAmount = discountAmount.add(serviceCharge.multiply((new BigDecimal(1).subtract(discount)))); rechargeAmount1 = rechargeAmount1.subtract(s_total_amount.multiply(new BigDecimal(m))); nowTimeMillis = null; }else{ serviceCharge = s_server_amount.multiply(new BigDecimal(times)); - discountAmount = discountAmount.add(serviceCharge.multiply((new BigDecimal(10).subtract(discount)).divide(new BigDecimal(10)))); + discountAmount = discountAmount.add(serviceCharge.multiply((new BigDecimal(1).subtract(discount)))); break; } } @@ -1258,6 +1258,7 @@ BigDecimal electronicMoney = new BigDecimal("0"); BigDecimal serviceMoney = new BigDecimal("0"); for (ChargingOrderVO chargingOrderVO : list) { + chargingOrderVO.setUid(chargingOrderVO.getId()+""); TChargingGun data3 = chargingGunClient.getChargingGunById(chargingOrderVO.getChargingGunId()).getData(); TChargingPile data2 = chargingPileClient.getChargingPileById(chargingOrderVO.getChargingPileId()).getData(); if (chargingOrderVO.getSiteId()!=null){ @@ -1271,38 +1272,24 @@ } if (chargingOrderVO.getChargingCapacity()!=null){ - total = total.add(chargingOrderVO.getChargingCapacity()); + total = total.add(chargingOrderVO.getElectricity()); } // 充电订单 明细记录 List<TChargingOrderAccountingStrategy> chargingOrderId = chargingOrderAccountingStrategyService.list(new QueryWrapper<TChargingOrderAccountingStrategy>() .eq("charging_order_id", chargingOrderVO.getId())); - // 单个订单累计电费 - BigDecimal electronicMoney1 = new BigDecimal("0"); - // 单个订单累计服务费 - BigDecimal serviceMoney1 = new BigDecimal("0"); UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrderVO.getCode()).getData(); if (data5!=null){ - chargingOrderVO.setChargingSecond(data5.getTime_remaining()*60L); + long l = data5.getCumulative_charging_time() * 60L; + chargingOrderVO.setChargingSecond(l); + time+=l; } - // 总收入 - if (chargingOrderVO.getRefundStatus() !=null && chargingOrderVO.getRefundStatus() == 2){ - income = income.add(chargingOrderVO.getPaymentAmount().subtract(chargingOrderVO.getRefundAmount())); - }else{ - if (chargingOrderVO.getPaymentAmount()!=null){ - income = income.add(chargingOrderVO.getPaymentAmount()); - } + electronicMoney = electronicMoney.add(chargingOrderVO.getElectrovalence()); + serviceMoney = serviceMoney.add(chargingOrderVO.getServiceCharge()); + + income = income.add(chargingOrderVO.getServiceCharge().add(chargingOrderVO.getElectrovalence())); + if (chargingOrderVO.getRefundAmount()!=null){ + income = income.subtract(chargingOrderVO.getRefundAmount()); } - for (TChargingOrderAccountingStrategy tChargingOrderAccountingStrategy : chargingOrderId) { - // 累计电费 - electronicMoney1 = electronicMoney1.add(tChargingOrderAccountingStrategy.getElectrovalence() - .multiply(tChargingOrderAccountingStrategy.getChargingCapacity())); - electronicMoney = electronicMoney.add(electronicMoney1); - // 累计服务费 - serviceMoney1 = serviceMoney1.add(tChargingOrderAccountingStrategy.getServiceCharge()); - serviceMoney = serviceMoney.add(serviceMoney1); - } - chargingOrderVO.setServiceCharge(serviceMoney1); - chargingOrderVO.setElectrovalence(electronicMoney1); // 充电时段数 int size = chargingOrderId.size(); chargingOrderVO.setCount(size); @@ -1409,7 +1396,36 @@ startTime2 = split[1]; } ChargingOrderTimeVO chargingOrderTimeVO = new ChargingOrderTimeVO(); - + if (StringUtils.hasLength(dto.getPhone())){ + List<Long> data = appUserClient.getUserIdsByPhone(dto.getPhone()).getData(); + if(data!=null){ + if (!data.isEmpty()){ + dto.setUserIds(data); + } + }else{ + dto.setUserIds(new ArrayList<Long>()); + } + if (dto.getUserIds().isEmpty()){ + List<Long> carIds = dto.getUserIds(); + carIds.add(-1L); + dto.setUserIds(carIds); + } + } + if (StringUtils.hasLength(dto.getPhone())){ + List<Long> data = appUserCarClient.getAppUserCarByLicensePlates(dto.getLicensePlate()).getData(); + if(data!=null){ + if (!data.isEmpty()){ + dto.setCarIds(data); + } + }else{ + dto.setCarIds(new ArrayList<Long>()); + } + if (dto.getCarIds().isEmpty()){ + List<Long> carIds = dto.getCarIds(); + carIds.add(-1L); + dto.setCarIds(carIds); + } + } PageInfo<ChargingOrderListVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize()); List<ChargingOrderListVO> list = this.baseMapper.chargingList(pageInfo,dto,startTime1,startTime2,endTime1,endTime2); for (ChargingOrderListVO chargingOrderListVO : list) { @@ -1439,7 +1455,7 @@ // 获取开始SOC 结束soc if (chargingOrderListVO.getCode()!=null){ List<UploadRealTimeMonitoringData> data6 = uploadRealTimeMonitoringDataClient.getDataByOrderCode(chargingOrderListVO.getCode()).getData(); - if (!data6.isEmpty()){ + if (data6!=null && !data6.isEmpty()){ // 第一条数据soc为开始 最后一条数据soc为结束soc chargingOrderListVO.setStartSoc(data6.get(0).getSoc().toString()); chargingOrderListVO.setEndSoc(data6.get(data6.size()-1).getSoc().toString()); @@ -1804,7 +1820,7 @@ invoke = clazz.getMethod("getValley_charge" + (i + 1)).invoke(vo); break; } - if(null == invoke || Integer.valueOf(invoke.toString()) == 0){ + if(null == invoke || Double.valueOf(invoke.toString()) == 0){ continue; } BigDecimal sharp_peak_charge = new BigDecimal(invoke.toString()); @@ -1860,7 +1876,7 @@ BigDecimal discountAmount = BigDecimal.ZERO; if(null != chargingOrder.getVipDiscount()){ //服务费折扣 - discountAmount = periodServicePrice_total.multiply(new BigDecimal(1).subtract(chargingOrder.getVipDiscount())); + discountAmount = periodServicePrice_total.multiply((new BigDecimal(1).subtract(chargingOrder.getVipDiscount()))); TAppUser appUser = appUserClient.getUserById(chargingOrder.getAppUserId()).getData(); if(null != appUser.getVipId()){ @@ -2068,6 +2084,10 @@ public List<Map<String, Object>> usersByQuery(ChargingStatisticsQueryDto statisticsQueryDto) { return this.baseMapper.usersByQuery(statisticsQueryDto); } + @Override + public List<Map<String, Object>> usersByQuery1(ChargingStatisticsQueryDto statisticsQueryDto) { + return this.baseMapper.usersByQuery(statisticsQueryDto); + } @Override public List<Map<String, Object>> getUserTagCount() { diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderAppealServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderAppealServiceImpl.java index 5273411..544e9ff 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderAppealServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderAppealServiceImpl.java @@ -63,12 +63,14 @@ if(Objects.nonNull(tChargingOrder)){ item.setChargingOrder(tChargingOrder); SiteNameVO siteNameVO = chargingGunClient.getAllInfoById(tChargingOrder.getChargingGunId()).getData(); - item.setGunName(siteNameVO.getGunName()); - item.setGunNumber(siteNameVO.getGunNumber()); - item.setPileName(siteNameVO.getPileName()); - item.setPileNumber(siteNameVO.getPileNumber()); - item.setSiteName(siteNameVO.getSiteName()); - item.setEndMode(tChargingOrder.getEndMode()); + if(Objects.nonNull(siteNameVO)){ + item.setGunName(siteNameVO.getGunName()); + item.setGunNumber(siteNameVO.getGunNumber()); + item.setPileName(siteNameVO.getPileName()); + item.setPileNumber(siteNameVO.getPileNumber()); + item.setSiteName(siteNameVO.getSiteName()); + item.setEndMode(tChargingOrder.getEndMode()); + } } }else if (item.getOrderType() == 2) { TShoppingOrder tShoppingOrder = shoppingOrders.stream().filter(shoppingOrder -> shoppingOrder.getId().equals(item.getOrderId())).findFirst().orElse(null); diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java index c6bd1ea..a3e47c7 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java @@ -272,6 +272,10 @@ .map(TOrderInvoiceDetail::getOrderId).collect(Collectors.toList()); // 将其全部转化为String tOrderInvoiceVO.setIds(collect.stream().map(String::valueOf).collect(Collectors.toList())); + TAppUser appUser = appUserClient.getUserById(tOrderInvoiceVO.getAppUserId()).getData(); + if (appUser!=null){ + tOrderInvoiceVO.setUserPhone(appUser.getPhone()); + } } // 查询这个开票的订单ids @@ -293,11 +297,6 @@ e.setAddedService(orderInvoiceDetailList.stream().filter(t->t.getAddedService()!=null).map(TOrderInvoiceDetail::getAddedService).reduce(BigDecimal::add).get()); e.setElectrovalence(orderInvoiceDetailList.stream().filter(t->t.getElectrovalence()!=null).map(TOrderInvoiceDetail::getElectrovalence).reduce(BigDecimal::add).get()); e.setServiceCharge(orderInvoiceDetailList.stream().filter(t->t.getServiceCharge()!=null).map(TOrderInvoiceDetail::getServiceCharge).reduce(BigDecimal::add).get()); - if (e.getBillingUserId()!=null){ - e.setUserPhone(finalTAppUsers.stream().filter(t->t.getId()!=null).filter(m->m.getId().equals(Long.parseLong(e.getBillingUserId().toString()))).findFirst().get().getPhone()); - } - TAppUser appUser = appUserClient.getUserById(e.getAppUserId()).getData(); - e.setUserPhone(appUser.getPhone()); }); } diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java index 969732b..b6a4265 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java @@ -44,7 +44,12 @@ System.err.println(string); } // 每月2号凌晨12点执行的定时任务 - @Scheduled(cron = "0 0 0 2 * ?") +// @Scheduled(cron = "0 0 0 2 * ?") + // 每天凌晨12点执行的定时任务 + + @Scheduled(cron = "0 0 12 2 * ?") + // 每30秒执行一次的定时任务 + @Scheduled(cron = "0/30 * * * * ?") public void taskMonth() { try { // 获取上个月的开始和结束日期 diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml index dc70af6..bbf1b1c 100644 --- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml +++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml @@ -326,7 +326,7 @@ FROM t_charging_order <where> - del_flag = 0 and recharge_payment_status = 2 and ISNULL(refund_status) + del_flag = 0 and recharge_payment_status = 2 <if test="sixBefore != null"> AND create_time >= #{sixBefore} </if> @@ -349,7 +349,7 @@ FROM t_charging_order <where> - del_flag = 0 and recharge_payment_status = 2 and ISNULL(refund_status) + del_flag = 0 and recharge_payment_status = 2 <if test="siteIds != null and siteIds.size() > 0"> AND site_id IN <foreach collection="siteIds" item="siteId" open="(" separator="," close=")"> @@ -368,7 +368,7 @@ <select id="countAll" resultType="java.util.Map"> select sum(electrovalence) as electrovalence,sum(service_charge) as service_charge,sum(commission_amount) as commission_amount,sum(sharing_amount) as sharing_amount from t_charging_order - where create_time >= #{sixBefore} and del_flag = 0 and recharge_payment_status = 2 and ISNULL(refund_status) + where create_time >= #{sixBefore} and del_flag = 0 and recharge_payment_status = 2 </select> <select id="getSumByType" resultType="java.util.Map"> SELECT @@ -399,13 +399,13 @@ FROM t_charging_order <where> - del_flag = 0 and recharge_payment_status = 2 and ISNULL(refund_status) and DATE(create_time) = CURDATE() - <if test="chargingOrderIds != null and chargingOrderIds.size() > 0"> + del_flag = 0 and recharge_payment_status = 2 and DATE(create_time) = CURDATE() + AND id IN <foreach collection="chargingOrderIds" item="chargingOrderId" open="(" separator="," close=")"> #{chargingOrderId} </foreach> - </if> + </where> GROUP BY time @@ -423,13 +423,13 @@ FROM t_charging_order <where> - del_flag = 0 and recharge_payment_status = 2 and ISNULL(refund_status) and YEARWEEK(DATE_FORMAT(create_time, '%Y-%m-%d'), 1) = YEARWEEK(NOW(), 1) - <if test="chargingOrderIds != null and chargingOrderIds.size() > 0"> + del_flag = 0 and recharge_payment_status = 2 and YEARWEEK(DATE_FORMAT(create_time, '%Y-%m-%d'), 1) = YEARWEEK(NOW(), 1) + AND id IN <foreach collection="chargingOrderIds" item="chargingOrderId" open="(" separator="," close=")"> #{chargingOrderId} </foreach> - </if> + </where> GROUP BY time @@ -447,13 +447,13 @@ FROM t_charging_order <where> - del_flag = 0 and recharge_payment_status = 2 and ISNULL(refund_status) and MONTH(create_time) = MONTH(NOW()) AND YEAR(create_time) = YEAR(NOW()) - <if test="chargingOrderIds != null and chargingOrderIds.size() > 0"> + del_flag = 0 and recharge_payment_status = 2 and MONTH(create_time) = MONTH(NOW()) AND YEAR(create_time) = YEAR(NOW()) + AND id IN <foreach collection="chargingOrderIds" item="chargingOrderId" open="(" separator="," close=")"> #{chargingOrderId} </foreach> - </if> + </where> GROUP BY time @@ -472,13 +472,13 @@ FROM t_charging_order <where> - del_flag = 0 and recharge_payment_status = 2 and ISNULL(refund_status) and YEAR(create_time) = YEAR(NOW()) - <if test="chargingOrderIds != null and chargingOrderIds.size() > 0"> + del_flag = 0 and recharge_payment_status = 2 and YEAR(create_time) = YEAR(NOW()) + AND id IN <foreach collection="chargingOrderIds" item="chargingOrderId" open="(" separator="," close=")"> #{chargingOrderId} </foreach> - </if> + </where> GROUP BY time @@ -496,13 +496,13 @@ FROM t_charging_order <where> - del_flag = 0 and recharge_payment_status = 2 and ISNULL(refund_status) - <if test="chargingOrderIds != null and chargingOrderIds.size() > 0"> + del_flag = 0 and recharge_payment_status = 2 + AND id IN <foreach collection="chargingOrderIds" item="chargingOrderId" open="(" separator="," close=")"> #{chargingOrderId} </foreach> - </if> + </where> GROUP BY time @@ -520,7 +520,6 @@ WHERE del_flag = 0 AND recharge_payment_status = 2 - AND ISNULL(refund_status) AND DATE(create_time) = CURDATE() <if test="siteIds != null and siteIds.size() > 0"> AND site_id IN @@ -542,7 +541,6 @@ WHERE del_flag = 0 AND recharge_payment_status = 2 - AND ISNULL(refund_status) AND DATE(create_time) = CURDATE() - INTERVAL 1 DAY <if test="siteIds != null and siteIds.size() > 0"> AND site_id IN @@ -570,7 +568,6 @@ WHERE del_flag = 0 AND recharge_payment_status = 2 - AND ISNULL(refund_status) <if test="siteIds != null and siteIds.size() > 0"> AND site_id IN <foreach collection="siteIds" item="siteId" open="(" separator="," close=")"> @@ -631,6 +628,45 @@ GROUP BY time </select> + + <select id="usersByQuery1" resultType="java.util.Map"> + + SELECT + 'today' AS data_type, + '1' as type, + DATE_FORMAT( create_time, '%Y-%m-%d' ) AS time, + count(DISTINCT app_user_id) AS counts + FROM + t_charging_order + WHERE + del_flag = 0 + <if test="statisticsQueryDto.dayType ==1 "> + AND DATE(create_time) = CURDATE() + </if> + <if test="statisticsQueryDto.dayType ==2 "> + AND WEEKOFYEAR(create_time) = WEEKOFYEAR(CURDATE()) + </if> + <if test="statisticsQueryDto.dayType ==3 "> + AND MONTH(create_time) = MONTH(CURDATE()) + </if> + <if test="statisticsQueryDto.dayType ==4"> + AND YEAR(create_time) = YEAR(CURDATE()) + </if> + <if test="statisticsQueryDto.dayType ==5"> + <if test="statisticsQueryDto.startTime != null"> + AND create_time >= #{statisticsQueryDto.startTime} + </if> + <if test="statisticsQueryDto.endTime != null"> + AND create_time <= #{statisticsQueryDto.endTime} + </if> + </if> + GROUP BY + time + + + </select> + + <select id="usersByQuery" resultType="java.util.Map"> SELECT diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TOrderInvoiceMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TOrderInvoiceMapper.xml index d9f7cf8..f9050e6 100644 --- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TOrderInvoiceMapper.xml +++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TOrderInvoiceMapper.xml @@ -62,7 +62,7 @@ AND toi.name LIKE concat('%',#{query.name},'%') </if> <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''"> - AND toi.billing_time BETWEEN #{query.startTime} AND #{query.endTime} + AND toi.create_time BETWEEN #{query.startTime} AND #{query.endTime} </if> <if test="query.userIds != null and query.userIds.size()>0"> AND toi.billing_user_id IN -- Gitblit v1.7.1