diff --git a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/business/BusinessStationInfoController.java b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/business/BusinessStationInfoController.java index 1004783b0..65dc53c3e 100644 --- a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/business/BusinessStationInfoController.java +++ b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/business/BusinessStationInfoController.java @@ -4,8 +4,10 @@ import com.alibaba.fastjson2.JSONObject; import com.google.common.collect.ImmutableMap; import com.jsowell.common.core.controller.BaseController; import com.jsowell.common.response.RestApiResponse; +import com.jsowell.pile.dto.StationBusinessAnalyzeInfoDTO; import com.jsowell.pile.dto.StationStatisticsInfoDTO; import com.jsowell.pile.service.PileStationInfoService; +import com.jsowell.pile.vo.StationBusinessAnalyzeInfoVO; import com.jsowell.pile.vo.uniapp.business.StationStatisticsInfosVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -43,4 +45,24 @@ public class BusinessStationInfoController extends BaseController { logger.info("获取站点统计信息 params:{}, result:{}", JSONObject.toJSONString(dto), response); return response; } + + + /** + * 获取站点运营分析信息 + * @param dto + * @return + */ + @PostMapping("/getStationBusinessAnalyzeInfo") + public RestApiResponse getStationBusinessAnalyzeInfo(@RequestBody StationBusinessAnalyzeInfoDTO dto){ + RestApiResponse response = null; + try { + StationBusinessAnalyzeInfoVO vo = pileStationInfoService.getStationBusinessAnalyzeInfo(dto); + response = new RestApiResponse<>(ImmutableMap.of("stationBusinessAnalyzeInfoVO", vo)); + } catch (Exception e) { + logger.error("获取站点运营分析信息 error", e); + response = new RestApiResponse<>(e); + } + logger.info("获取站点运营分析信息 params:{}, result:{}", JSONObject.toJSONString(dto), response); + return response; + } } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/dto/StationBusinessAnalyzeInfoDTO.java b/jsowell-pile/src/main/java/com/jsowell/pile/dto/StationBusinessAnalyzeInfoDTO.java new file mode 100644 index 000000000..4105ee661 --- /dev/null +++ b/jsowell-pile/src/main/java/com/jsowell/pile/dto/StationBusinessAnalyzeInfoDTO.java @@ -0,0 +1,40 @@ +package com.jsowell.pile.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * 获取站点运营分析信息DTO + * + * @author Lemon + * @Date 2024/7/24 15:36:29 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class StationBusinessAnalyzeInfoDTO { + /** + * 日期类型 + * 1-近7天 + * 2-近30天 + * 3-近12个月 + */ + private String type; + + /** + * 选中日期 + */ + private String dateTime; + + /** + * 站点id + */ + private String stationId; + + private List stationIds; +} diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/dto/StationStatisticsInfoDTO.java b/jsowell-pile/src/main/java/com/jsowell/pile/dto/StationStatisticsInfoDTO.java index 76767bb8a..ea304b528 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/dto/StationStatisticsInfoDTO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/dto/StationStatisticsInfoDTO.java @@ -5,8 +5,10 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.List; + /** - * TODO + * 站点统计信息DTO * * @author Lemon * @Date 2024/7/23 15:52:34 @@ -18,6 +20,8 @@ import lombok.NoArgsConstructor; public class StationStatisticsInfoDTO { private String merchantId; + private List stationIds; + private String startTime; private String endTime; diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderBasicInfoMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderBasicInfoMapper.java index d99508514..1c36cf1dc 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderBasicInfoMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderBasicInfoMapper.java @@ -5,6 +5,7 @@ import com.jsowell.pile.domain.OrderDetail; import com.jsowell.pile.dto.*; import com.jsowell.pile.dto.nanrui.NRQueryOrderDTO; import com.jsowell.pile.dto.ningxiajiaotou.NXJTQueryOrdersInfoDTO; +import com.jsowell.pile.vo.BusinessOrderDetailInfoVO; import com.jsowell.pile.vo.SupStationStatsVO; import com.jsowell.pile.vo.base.MerchantOrderInfoVO; import com.jsowell.pile.vo.lianlian.AccumulativeInfoVO; @@ -368,4 +369,13 @@ public interface OrderBasicInfoMapper { List queryOrderListByStationId(String stationId); List queryOrderByOccupyTime(QueryOrderDTO dto); + + /** + * 通过站点id查询订单详情 + * @param stationIds + * @param startTime + * @param endTime + * @return + */ + List getOrderDetailByStationIds(@Param("stationIds") List stationIds, @Param("startTime") String startTime, @Param("endTime") String endTime); } \ No newline at end of file diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderBasicInfoService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderBasicInfoService.java index 5aeecd75a..4b3c75194 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderBasicInfoService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderBasicInfoService.java @@ -12,6 +12,7 @@ import com.jsowell.pile.domain.SettleOrderReport; import com.jsowell.pile.dto.*; import com.jsowell.pile.dto.nanrui.NRQueryOrderDTO; import com.jsowell.pile.dto.ningxiajiaotou.NXJTQueryOrdersInfoDTO; +import com.jsowell.pile.vo.BusinessOrderDetailInfoVO; import com.jsowell.pile.vo.SupStationStatsVO; import com.jsowell.pile.vo.base.MerchantOrderInfoVO; import com.jsowell.pile.vo.base.OrderAmountDetailVO; @@ -460,4 +461,12 @@ public interface OrderBasicInfoService{ * @return */ List queryOrderByOccupyTime(QueryOrderDTO dto); + + /** + * 通过站点idList,创建时间查询订单数据详情 + * @param stationIds + * @param startTime + * @param endTime + */ + List getOrderDetailByStationIds(List stationIds, String startTime, String endTime); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/PileStationInfoService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/PileStationInfoService.java index 0fd4880b4..4c01b5851 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/PileStationInfoService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/PileStationInfoService.java @@ -2,13 +2,11 @@ package com.jsowell.pile.service; import com.jsowell.common.core.page.PageResponse; import com.jsowell.pile.domain.PileStationInfo; -import com.jsowell.pile.dto.FastCreateStationDTO; -import com.jsowell.pile.dto.QueryStationDTO; -import com.jsowell.pile.dto.QueryStationInfoDTO; -import com.jsowell.pile.dto.StationStatisticsInfoDTO; +import com.jsowell.pile.dto.*; import com.jsowell.pile.dto.amap.GetStationInfoDTO; import com.jsowell.pile.dto.lutongyunting.BindParkingPlatformDTO; import com.jsowell.pile.dto.ningxiajiaotou.NXJTQueryStationInfoDTO; +import com.jsowell.pile.vo.StationBusinessAnalyzeInfoVO; import com.jsowell.pile.vo.base.ThirdPartyStationInfoVO; import com.jsowell.pile.vo.ningxiajiaotou.NXJTStationInfoVO; import com.jsowell.pile.vo.uniapp.business.StationStatisticsInfosVO; @@ -160,4 +158,10 @@ public interface PileStationInfoService { * @param dto */ List getStationStatisticsInfos(StationStatisticsInfoDTO dto); + + /** + * 获取站点运营分析信息 + * @param dto + */ + StationBusinessAnalyzeInfoVO getStationBusinessAnalyzeInfo(StationBusinessAnalyzeInfoDTO dto); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index d291404ad..e272679d0 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -49,6 +49,7 @@ import com.jsowell.pile.transaction.dto.ClearingBillTransactionDTO; import com.jsowell.pile.transaction.dto.OrderTransactionDTO; import com.jsowell.pile.transaction.service.TransactionService; import com.jsowell.pile.util.UserUtils; +import com.jsowell.pile.vo.BusinessOrderDetailInfoVO; import com.jsowell.pile.vo.SupStationStatsVO; import com.jsowell.pile.vo.base.PileInfoVO; import com.jsowell.pile.vo.base.*; @@ -3732,5 +3733,17 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { return orderBasicInfoMapper.queryOrderByOccupyTime(dto); } + /** + * 通过站点id查询订单详情 + * @param stationIds + * @param startTime + * @param endTime + * @return + */ + @Override + public List getOrderDetailByStationIds(List stationIds, String startTime, String endTime) { + return orderBasicInfoMapper.getOrderDetailByStationIds(stationIds, startTime, endTime); + } + } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileStationInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileStationInfoServiceImpl.java index d1e1d4d84..2d4f2774f 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileStationInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileStationInfoServiceImpl.java @@ -27,6 +27,8 @@ import com.jsowell.pile.dto.ningxiajiaotou.NXJTQueryStationInfoDTO; import com.jsowell.pile.mapper.PileStationInfoMapper; import com.jsowell.pile.service.*; import com.jsowell.pile.util.UserUtils; +import com.jsowell.pile.vo.BusinessOrderDetailInfoVO; +import com.jsowell.pile.vo.StationBusinessAnalyzeInfoVO; import com.jsowell.pile.vo.SupStationStatsVO; import com.jsowell.pile.vo.base.*; import com.jsowell.pile.vo.ningxiajiaotou.NXJTStationInfoVO; @@ -45,10 +47,7 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.text.DecimalFormat; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.concurrent.TimeUnit; import java.util.function.Function; import java.util.stream.Collectors; @@ -642,6 +641,7 @@ public class PileStationInfoServiceImpl implements PileStationInfoService { @Override public List getStationStatisticsInfos(StationStatisticsInfoDTO dto) { String merchantId = dto.getMerchantId(); + List stationIds = dto.getStationIds(); // 获取当前登录账号的运营商权限 List merchantInfoVOList = UserUtils.getMerchantInfoVOList(); List merchantIds = new ArrayList<>(); @@ -653,15 +653,17 @@ public class PileStationInfoServiceImpl implements PileStationInfoService { }else { merchantIds.add(merchantId); } - // 根据运营商ids查出所有站点id - List pileStationInfos = getStationInfosByMerchantIds(merchantIds); - if (CollectionUtils.isEmpty(pileStationInfos)) { - // 未查到该运营商下的站点 - throw new BusinessException(ReturnCodeEnum.CODE_SELECT_INFO_IS_NULL); + if (CollectionUtils.isEmpty(stationIds)) { + // 根据运营商ids查出所有站点id + List pileStationInfos = getStationInfosByMerchantIds(merchantIds); + if (CollectionUtils.isEmpty(pileStationInfos)) { + // 未查到该运营商下的站点 + throw new BusinessException(ReturnCodeEnum.CODE_SELECT_INFO_IS_NULL); + } + stationIds = pileStationInfos.stream() + .map(x -> String.valueOf(x.getId())) + .collect(Collectors.toList()); } - List stationIds = pileStationInfos.stream() - .map(x -> String.valueOf(x.getId())) - .collect(Collectors.toList()); // 创建DecimalFormat对象并设置格式 DecimalFormat df = new DecimalFormat("0.00%"); // 根据站点ids查询站点营收报表 @@ -741,5 +743,188 @@ public class PileStationInfoServiceImpl implements PileStationInfoService { return resultList; } + /** + * 获取站点运营分析信息 + * @param dto + */ + @Override + public StationBusinessAnalyzeInfoVO getStationBusinessAnalyzeInfo(StationBusinessAnalyzeInfoDTO dto) { + StationBusinessAnalyzeInfoVO vo = new StationBusinessAnalyzeInfoVO(); + + String dateTime = dto.getDateTime(); + // 获取type类型 + String type = dto.getType(); + // 获取站点id,如果为空,则默认查询该账号下所有站点 + String stationId = dto.getStationId(); + List stationIds = new ArrayList<>(); + if (stationId == null) { + List merchantInfoVOList = UserUtils.getMerchantInfoVOList(); + List merchantIds = merchantInfoVOList.stream() + .map(MerchantInfoVO::getMerchantId) + .collect(Collectors.toList()); + // 根据运营商ids查出所有站点id + List pileStationInfos = getStationInfosByMerchantIds(merchantIds); + stationIds = pileStationInfos.stream() + .map(x -> String.valueOf(x.getId())) + .collect(Collectors.toList()); + if (CollectionUtils.isEmpty(pileStationInfos)) { + // 未查到该运营商下的站点 + throw new BusinessException(ReturnCodeEnum.CODE_SELECT_INFO_IS_NULL); + } + } else { + stationIds.add(stationId); + } + // 日期区间 + String startTime = null; + String endTime = null; + if (dateTime == null) { + // 用户未选中某天时 + Date date = null; + if (StringUtils.equals(Constants.ONE, type)) { + // 7天 + date = DateUtils.addDays(new Date(), -7); + }else if (StringUtils.equals(Constants.TWO, type)) { + // 30天 + date = DateUtils.addDays(new Date(), -30); + } + startTime = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, date); + endTime = DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD); + + } else { + // 用户选中某天的数据时↓ + startTime = dateTime; + endTime = dateTime; + } + + // 根据站点ids和日期区间查询订单详情 + List orderDetails = orderBasicInfoService.getOrderDetailByStationIds(stationIds, startTime, endTime); + + for (BusinessOrderDetailInfoVO orderDetail : orderDetails) { + if (orderDetail.getSharpAmount() == null) { + orderDetail.setSharpAmount(BigDecimal.ZERO); + } + if (orderDetail.getPeakAmount() == null) { + orderDetail.setPeakAmount(BigDecimal.ZERO); + } + if (orderDetail.getFlatAmount() == null) { + orderDetail.setFlatAmount(BigDecimal.ZERO); + } + if (orderDetail.getValleyAmount() == null) { + orderDetail.setValleyAmount(BigDecimal.ZERO); + } + if (orderDetail.getSharpUsedElectricity() == null) { + orderDetail.setSharpUsedElectricity(BigDecimal.ZERO); + } + if (orderDetail.getPeakUsedElectricity() == null) { + orderDetail.setPeakUsedElectricity(BigDecimal.ZERO); + } + if (orderDetail.getFlatUsedElectricity() == null) { + orderDetail.setFlatUsedElectricity(BigDecimal.ZERO); + } + if (orderDetail.getValleyUsedElectricity() == null) { + orderDetail.setValleyUsedElectricity(BigDecimal.ZERO); + } + if (orderDetail.getTotalServiceAmount() == null) { + orderDetail.setTotalServiceAmount(BigDecimal.ZERO); + } + if (orderDetail.getSettleAmount() == null) { + orderDetail.setSettleAmount(BigDecimal.ZERO); + } + } + + // 根据日期进行分组汇总 + Map collect = orderDetails.stream() + .sorted(Comparator.comparing(BusinessOrderDetailInfoVO::getTradeDate)) + .collect(Collectors.toMap(BusinessOrderDetailInfoVO::getTradeDate, Function.identity(), + (a, b) -> { + a.setSharpUsedElectricity(a.getSharpUsedElectricity().add(b.getSharpUsedElectricity())); + a.setSharpAmount(a.getSharpAmount().add(b.getSharpAmount())); + a.setPeakUsedElectricity(a.getPeakUsedElectricity().add(b.getPeakUsedElectricity())); + a.setPeakAmount(a.getPeakAmount().add(b.getPeakAmount())); + a.setFlatUsedElectricity(a.getFlatUsedElectricity().add(b.getFlatUsedElectricity())); + a.setFlatAmount(a.getFlatAmount().add(b.getFlatAmount())); + a.setValleyUsedElectricity(a.getValleyUsedElectricity().add(b.getValleyUsedElectricity())); + a.setValleyAmount(a.getValleyAmount().add(b.getValleyAmount())); + a.setTotalServiceAmount(a.getTotalServiceAmount().add(b.getTotalServiceAmount())); + a.setSettleAmount(a.getSettleAmount().add(b.getSettleAmount())); + a.setTotalUsedElectricity(a.getSharpUsedElectricity().add(a.getPeakUsedElectricity()).add(a.getFlatUsedElectricity()).add(a.getValleyUsedElectricity())); + return a; + })); + // 通过TreeMap排序 + TreeMap map = new TreeMap<>(collect); + List businessOrderDetailInfoVOS = new ArrayList<>(map.values()); + + String usedElectricityRiseRate = "-"; + String orderAmountRiseRate = "-"; + String serviceAmountRiseRate = "-"; + BigDecimal todayUsedElectricity = BigDecimal.ZERO; + BigDecimal yesterdayUsedElectricity = BigDecimal.ZERO; + BigDecimal todaySettleAmount = BigDecimal.ZERO; + BigDecimal yesterdaySettleAmount = BigDecimal.ZERO; + BigDecimal todayServiceAmount = BigDecimal.ZERO; + BigDecimal yesterdayServiceAmount = BigDecimal.ZERO; + if (dateTime != null) { + // 如果指定日期不为空,则将指定日期与指定日期的前一天进行数据对比 + BusinessOrderDetailInfoVO orderDetailToday = map.get(dateTime); // 指定日期 + // 指定日期前一天 + String dateTimeYesterday = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.addDays(DateUtils.parseDate(dateTime), -1)); + BusinessOrderDetailInfoVO orderDetailYesterday = collect.get(dateTimeYesterday); + if (orderDetailYesterday == null) { + // 如果为空,为第一天数据,默认置空 + vo.setElectricityGrowthRate("-"); + vo.setOrderAmountGrowthRate("-"); + vo.setServiceAmountGrowthRate("-"); + // vo.setBusinessOrderDetailInfoVOList(); + }else { + // 充电量增长率 + todayUsedElectricity = orderDetailToday.getTotalUsedElectricity(); + yesterdayUsedElectricity = orderDetailYesterday.getTotalUsedElectricity(); + // 订单金额增长率 + todaySettleAmount = orderDetailToday.getSettleAmount(); + yesterdaySettleAmount = orderDetailYesterday.getSettleAmount(); + // 服务费增长率 + todayServiceAmount = orderDetailToday.getTotalServiceAmount(); + yesterdayServiceAmount = orderDetailYesterday.getTotalServiceAmount(); + } + }else { + // 如果指定日期为空,则默认最后一天(当天)与前一天做对比 + BusinessOrderDetailInfoVO orderDetailToday = businessOrderDetailInfoVOS.get(businessOrderDetailInfoVOS.size() - 1); + BusinessOrderDetailInfoVO orderDetailYesterday = businessOrderDetailInfoVOS.get(businessOrderDetailInfoVOS.size() - 2); + // 充电量增长率 + todayUsedElectricity = orderDetailToday.getTotalUsedElectricity(); + yesterdayUsedElectricity = orderDetailYesterday.getTotalUsedElectricity(); + // 订单金额增长率 + todaySettleAmount = orderDetailToday.getSettleAmount(); + yesterdaySettleAmount = orderDetailYesterday.getSettleAmount(); + // 服务费增长率 + todayServiceAmount = orderDetailToday.getTotalServiceAmount(); + yesterdayServiceAmount = orderDetailYesterday.getTotalServiceAmount(); + } + if (yesterdayUsedElectricity.compareTo(BigDecimal.ZERO) == 0) { + usedElectricityRiseRate = "0%"; + }else { + BigDecimal divideUsedElectricity = todayUsedElectricity.subtract(yesterdayUsedElectricity).divide(yesterdayUsedElectricity, 2, BigDecimal.ROUND_HALF_UP); + usedElectricityRiseRate = divideUsedElectricity.multiply(new BigDecimal("100")) + "%"; + } + if (yesterdaySettleAmount.compareTo(BigDecimal.ZERO) == 0) { + orderAmountRiseRate = "0%"; + }else { + BigDecimal divideSettleAmount = todaySettleAmount.subtract(yesterdaySettleAmount).divide(yesterdaySettleAmount, 2, BigDecimal.ROUND_HALF_UP); + orderAmountRiseRate = divideSettleAmount.multiply(new BigDecimal("100")) + "%"; + } + if (yesterdayServiceAmount.compareTo(BigDecimal.ZERO) == 0) { + serviceAmountRiseRate = "0%"; + }else { + BigDecimal divideServiceAmount = todayServiceAmount.subtract(yesterdayServiceAmount).divide(yesterdayServiceAmount, 2, BigDecimal.ROUND_HALF_UP); + serviceAmountRiseRate = divideServiceAmount.multiply(new BigDecimal("100")) + "%"; + } + + vo.setElectricityGrowthRate(usedElectricityRiseRate); + vo.setServiceAmountGrowthRate(serviceAmountRiseRate); + vo.setOrderAmountGrowthRate(orderAmountRiseRate); + vo.setBusinessOrderDetailInfoVOList(businessOrderDetailInfoVOS); + return vo; + } + } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/vo/BusinessOrderDetailInfoVO.java b/jsowell-pile/src/main/java/com/jsowell/pile/vo/BusinessOrderDetailInfoVO.java new file mode 100644 index 000000000..c6f60d845 --- /dev/null +++ b/jsowell-pile/src/main/java/com/jsowell/pile/vo/BusinessOrderDetailInfoVO.java @@ -0,0 +1,110 @@ +package com.jsowell.pile.vo; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +/** + * 运营端小程序订单详情VO + * + * @author Lemon + * @Date 2024/7/27 15:05:00 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class BusinessOrderDetailInfoVO { + /** + * 交易日期 + */ + private String tradeDate; + + /** + * 订单号 + */ + // private String orderCode; + + /** + * 站点id + */ + private String stationId; + + /** + * 尖时段用电量 + */ + private BigDecimal sharpUsedElectricity; + + /** + * 尖时段总金额 + */ + private BigDecimal sharpAmount; + + /** + * 尖时段电费 + */ + private BigDecimal sharpElectricityPrice; + + /** + * 峰时段用电量 + */ + private BigDecimal peakUsedElectricity; + + /** + * 峰时段总金额 + */ + private BigDecimal peakAmount; + + /** + * 峰时段电费 + */ + private BigDecimal peakElectricityPrice; + + /** + * 平时段用电量 + */ + private BigDecimal flatUsedElectricity; + + /** + * 平时段总金额 + */ + private BigDecimal flatAmount; + + /** + * 平时段电费 + */ + private BigDecimal flatElectricityPrice; + + /** + * 谷时段用电量 + */ + private BigDecimal valleyUsedElectricity; + + /** + * 谷时段总金额 + */ + private BigDecimal valleyAmount; + + /** + * 谷时段电费 + */ + private BigDecimal valleyElectricityPrice; + + /** + * 总服务费 + */ + private BigDecimal totalServiceAmount; + + /** + * 结算金额 + */ + private BigDecimal settleAmount; + + /** + * 总充电量 + */ + private BigDecimal totalUsedElectricity; +} diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/vo/StationBusinessAnalyzeInfoVO.java b/jsowell-pile/src/main/java/com/jsowell/pile/vo/StationBusinessAnalyzeInfoVO.java new file mode 100644 index 000000000..a38c22c6f --- /dev/null +++ b/jsowell-pile/src/main/java/com/jsowell/pile/vo/StationBusinessAnalyzeInfoVO.java @@ -0,0 +1,38 @@ +package com.jsowell.pile.vo; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * 运营端小程序站点运营统计数据VO + * + * @author Lemon + * @Date 2024/7/24 15:42:47 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class StationBusinessAnalyzeInfoVO { + + /** + * 充电量增长率 + */ + private String electricityGrowthRate; + + /** + * 订单金额增长率 + */ + private String orderAmountGrowthRate; + + /** + * 服务费增长率 + */ + private String serviceAmountGrowthRate; + + private List businessOrderDetailInfoVOList; +} diff --git a/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml index 428d84dc0..ba6bbbd10 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml @@ -2953,4 +2953,36 @@ and `t1`.`create_time` = ]]> #{endTime,jdbcType=VARCHAR} and `t1`.`update_time` #{startTime,jdbcType=VARCHAR} + + \ No newline at end of file