diff --git a/jsowell-admin/src/main/java/com/jsowell/api/thirdparty/DianXingPlatformController.java b/jsowell-admin/src/main/java/com/jsowell/api/thirdparty/DianXingPlatformController.java index 2c765664d..7cabbe8f0 100644 --- a/jsowell-admin/src/main/java/com/jsowell/api/thirdparty/DianXingPlatformController.java +++ b/jsowell-admin/src/main/java/com/jsowell/api/thirdparty/DianXingPlatformController.java @@ -10,7 +10,7 @@ import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.web.bind.annotation.*; /** - * 宁波电刑平台 + * 宁波点行平台 * * @author Lemon * @Date 2024/5/10 9:21:59 diff --git a/jsowell-admin/src/test/java/SpringBootTestController.java b/jsowell-admin/src/test/java/SpringBootTestController.java index c7bb08a7e..324bd1617 100644 --- a/jsowell-admin/src/test/java/SpringBootTestController.java +++ b/jsowell-admin/src/test/java/SpringBootTestController.java @@ -2402,7 +2402,9 @@ public class SpringBootTestController { GetStationInfoDTO dto = new GetStationInfoDTO(); dto.setType("page"); - dto.setIdList(Lists.newArrayList("395")); + dto.setCurrentPage(12); + dto.setPageSize(10); + // dto.setIdList(Lists.newArrayList("395")); aMapService.getStationInfosV2(dto); } 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 8a5b4b5dc..96af673cf 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 @@ -37,6 +37,8 @@ import com.jsowell.pile.vo.uniapp.business.StationBusinessAnalyzeInfoVO; import com.jsowell.pile.vo.uniapp.business.StationOrderQuantityInfoVO; import com.jsowell.pile.vo.uniapp.business.StationStatisticsInfosVO; import com.jsowell.pile.vo.uniapp.customer.CurrentTimePriceDetails; +import com.jsowell.pile.vo.web.OrderDetailInfoVO; +import com.jsowell.pile.vo.web.PileConnectorInfoVO; import com.jsowell.pile.vo.web.PileStationVO; import com.jsowell.system.service.SysDeptService; import com.jsowell.system.service.SysUserService; @@ -1183,6 +1185,8 @@ public class PileStationInfoServiceImpl implements PileStationInfoService { */ @Override public StationBusinessAnalyzeInfoVO getStationConnectorUsedInfo(StationBusinessAnalyzeInfoDTO dto) { + StationBusinessAnalyzeInfoVO vo = new StationBusinessAnalyzeInfoVO(); + List list = new ArrayList<>(); List stationIds = dto.getStationIds(); String type = dto.getType(); String dateTime = dto.getDateTime(); @@ -1202,8 +1206,53 @@ public class PileStationInfoServiceImpl implements PileStationInfoService { if (CollectionUtils.isEmpty(orderDetailByStationIds)) { throw new BusinessException(ReturnCodeEnum.CODE_SELECT_INFO_IS_NULL); } + // 统计每天有多少把充电枪口有过充电记录 + // (key:日期,value:有充电记录的枪口数量) + Map collect = orderDetailByStationIds.stream() + .sorted(Comparator.comparing(BusinessOrderDetailInfoVO::getTradeDate)) + .collect(Collectors.groupingBy( + BusinessOrderDetailInfoVO::getTradeDate, // 按日期分组 + Collectors.mapping( + BusinessOrderDetailInfoVO::getPileConnectorCode, // 提取充电枪口编号 + Collectors.collectingAndThen( + Collectors.toSet(), // 使用Set去重 + Set::size // 计算不同枪口编号的数量 + ) + ) + )); + TreeMap map = new TreeMap<>(collect); + List values = new ArrayList<>(map.values()); - // 分组出来key为日期,value为订单信息 - return null; + Integer lastDayNum = Constants.zero; + Integer yesterdayNum = Constants.zero; + int riseRate = Constants.zero; + if (dateTime == null) { + // 默认最后一天对比前一天 + lastDayNum = values.get(values.size() - 1); + yesterdayNum = values.get(values.size() - 2); + }else { + // 目标日期对比目标日期前一天 + String yesterday = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.addDays(DateUtils.parseDate(dateTime), -1)); + lastDayNum = map.get(dateTime); + yesterdayNum = map.get(yesterday); + } + // 计算增长率 + if (yesterdayNum != Constants.zero){ + riseRate = (lastDayNum - yesterdayNum) / yesterdayNum * 100; + } + String connectorUsedRiseRate = String.valueOf(riseRate); + vo.setConnectorUsedRiseRate(connectorUsedRiseRate); + + for (Map.Entry entry : map.entrySet()) { + String tradeDate = entry.getKey(); + Integer chargeNum = entry.getValue(); + BusinessOrderDetailInfoVO orderDetailInfoVO = new BusinessOrderDetailInfoVO(); + orderDetailInfoVO.setTradeDate(tradeDate); + orderDetailInfoVO.setChargeNum(chargeNum); + + list.add(orderDetailInfoVO); + } + vo.setBusinessOrderDetailInfoVOList(list); + return vo; } } \ No newline at end of file diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/business/BusinessOrderDetailInfoVO.java b/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/business/BusinessOrderDetailInfoVO.java index ad48763c5..b60b5fbb6 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/business/BusinessOrderDetailInfoVO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/business/BusinessOrderDetailInfoVO.java @@ -23,6 +23,13 @@ public class BusinessOrderDetailInfoVO { */ private String tradeDate; + private String pileConnectorCode; + + /** + * 充电次数 + */ + private Integer chargeNum; + /** * 订单号 */ diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/business/StationBusinessAnalyzeInfoVO.java b/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/business/StationBusinessAnalyzeInfoVO.java index 5e2b90fbd..5e1af021a 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/business/StationBusinessAnalyzeInfoVO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/business/StationBusinessAnalyzeInfoVO.java @@ -1,6 +1,7 @@ package com.jsowell.pile.vo.uniapp.business; import com.jsowell.pile.domain.SettleOrderReport; +import com.jsowell.pile.vo.web.OrderDetailInfoVO; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -40,6 +41,11 @@ public class StationBusinessAnalyzeInfoVO { */ private String orderNumRateGrowthRate; + /** + * 枪口利用增长率 + */ + private String connectorUsedRiseRate; + /** * 运营端小程序订单详情VO */ diff --git a/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml index 4e10f5b83..df913b945 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml @@ -2959,6 +2959,7 @@ DATE_FORMAT( t1.create_time, '%Y-%m-%d' ) AS tradeDate, + t1.pile_connector_code as pileConnectorCode, t2.sharp_used_electricity AS sharpUsedElectricity, t2.sharp_amount AS sharpAmount, t2.sharp_electricity_price AS sharpElectricityPrice,