From d8650d8976d3882efc6daf9407138186db0fe9e7 Mon Sep 17 00:00:00 2001 From: Lemon Date: Mon, 17 Apr 2023 15:48:12 +0800 Subject: [PATCH] =?UTF-8?q?add=20=20=E6=96=B0=E5=A2=9E=E8=81=94=E8=81=94?= =?UTF-8?q?=20=E6=9F=A5=E8=AF=A2=E7=B4=AF=E8=AE=A1=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jsowell/lianlian/LianLianController.java | 7 +-- .../pile}/dto/QueryStationInfoDTO.java | 2 +- .../pile/mapper/OrderBasicInfoMapper.java | 9 ++++ .../pile/service/IOrderBasicInfoService.java | 13 +++-- .../impl/OrderBasicInfoServiceImpl.java | 17 ++++-- .../pile/vo/lianlian/AccumulativeInfoVO.java | 42 +++++++++++++++ .../mapper/pile/OrderBasicInfoMapper.xml | 17 ++++++ .../thirdparty/domain/StationStatsInfo.java | 6 +++ .../thirdparty/service/LianLianService.java | 6 +-- .../service/impl/LianLianServiceImpl.java | 54 +++++++++++++++++-- .../views/pile/station/components/billing.vue | 3 +- 11 files changed, 150 insertions(+), 26 deletions(-) rename {jsowell-thirdparty/src/main/java/com/jsowell/thirdparty => jsowell-pile/src/main/java/com/jsowell/pile}/dto/QueryStationInfoDTO.java (96%) create mode 100644 jsowell-pile/src/main/java/com/jsowell/pile/vo/lianlian/AccumulativeInfoVO.java diff --git a/jsowell-admin/src/main/java/com/jsowell/lianlian/LianLianController.java b/jsowell-admin/src/main/java/com/jsowell/lianlian/LianLianController.java index 0d2353940..3b06e6a01 100644 --- a/jsowell-admin/src/main/java/com/jsowell/lianlian/LianLianController.java +++ b/jsowell-admin/src/main/java/com/jsowell/lianlian/LianLianController.java @@ -4,19 +4,14 @@ import com.alibaba.fastjson2.JSONObject; import com.jsowell.common.annotation.Anonymous; import com.jsowell.common.core.controller.BaseController; import com.jsowell.common.response.RestApiResponse; -import com.jsowell.common.util.StringUtils; -import com.jsowell.thirdparty.dto.QueryStationInfoDTO; +import com.jsowell.pile.dto.QueryStationInfoDTO; import com.jsowell.thirdparty.service.LianLianService; import com.jsowell.thirdparty.vo.LianLianPageResponse; import org.apache.commons.collections4.CollectionUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; -import java.util.Collections; -import java.util.List; /** * 对接联联平台controller diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/dto/QueryStationInfoDTO.java b/jsowell-pile/src/main/java/com/jsowell/pile/dto/QueryStationInfoDTO.java similarity index 96% rename from jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/dto/QueryStationInfoDTO.java rename to jsowell-pile/src/main/java/com/jsowell/pile/dto/QueryStationInfoDTO.java index 9f9a61834..6b7278e7e 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/dto/QueryStationInfoDTO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/dto/QueryStationInfoDTO.java @@ -1,4 +1,4 @@ -package com.jsowell.thirdparty.dto; +package com.jsowell.pile.dto; import lombok.AllArgsConstructor; import lombok.Builder; 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 90addf337..5a6d72335 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,8 @@ import com.jsowell.pile.domain.OrderDetail; import com.jsowell.pile.dto.IndexQueryDTO; import com.jsowell.pile.dto.QueryOrderDTO; import com.jsowell.pile.dto.QueryPersonPileDTO; +import com.jsowell.pile.dto.QueryStationInfoDTO; +import com.jsowell.pile.vo.lianlian.AccumulativeInfoVO; import com.jsowell.pile.vo.uniapp.OrderVO; import com.jsowell.pile.vo.uniapp.PersonPileConnectorSumInfoVO; import com.jsowell.pile.vo.uniapp.SendMessageVO; @@ -192,4 +194,11 @@ public interface OrderBasicInfoMapper { List getAppointmentOrder(LocalDateTime dateTime); List getListByOrderCodes(@Param("orderCodes") List orderCodes); + + /** + * 联联平台 获取累计数据用 + * @param dto + * @return + */ + List getAccumulativeInfoForLianLian(QueryStationInfoDTO dto); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java index 6aa159ca1..e1fac3631 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java @@ -4,10 +4,8 @@ import com.jsowell.common.core.domain.ykc.RealTimeMonitorData; import com.jsowell.common.core.domain.ykc.TransactionRecordsData; import com.jsowell.pile.domain.OrderBasicInfo; import com.jsowell.pile.domain.OrderDetail; -import com.jsowell.pile.dto.GenerateOrderDTO; -import com.jsowell.pile.dto.IndexQueryDTO; -import com.jsowell.pile.dto.QueryOrderDTO; -import com.jsowell.pile.dto.QueryPersonPileDTO; +import com.jsowell.pile.dto.*; +import com.jsowell.pile.vo.lianlian.AccumulativeInfoVO; import com.jsowell.pile.vo.uniapp.OrderVO; import com.jsowell.pile.vo.uniapp.PersonPileConnectorSumInfoVO; import com.jsowell.pile.vo.uniapp.SendMessageVO; @@ -222,4 +220,11 @@ public interface IOrderBasicInfoService { List getAppointmentOrder(LocalDateTime dateTime); Map generateOrderByCard(GenerateOrderDTO dto); + + /** + * 联联平台 获取累计数据用 + * @param dto + * @return + */ + List getAccumulativeInfoForLianLian(QueryStationInfoDTO 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 ec48e229a..1998c9195 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 @@ -35,11 +35,7 @@ import com.jsowell.pile.domain.PileAuthCard; import com.jsowell.pile.domain.PileBasicInfo; import com.jsowell.pile.domain.WxpayCallbackRecord; import com.jsowell.pile.domain.WxpayRefundCallback; -import com.jsowell.pile.dto.GenerateOrderDTO; -import com.jsowell.pile.dto.IndexQueryDTO; -import com.jsowell.pile.dto.QueryOrderDTO; -import com.jsowell.pile.dto.QueryPersonPileDTO; -import com.jsowell.pile.dto.RefundableWxPayOrderData; +import com.jsowell.pile.dto.*; import com.jsowell.pile.mapper.OrderBasicInfoMapper; import com.jsowell.pile.service.IMemberBasicInfoService; import com.jsowell.pile.service.IOrderAbnormalRecordService; @@ -55,6 +51,7 @@ import com.jsowell.pile.service.WxpayRefundCallbackService; import com.jsowell.pile.transaction.dto.OrderTransactionDTO; import com.jsowell.pile.transaction.service.TransactionService; import com.jsowell.pile.vo.base.PileInfoVO; +import com.jsowell.pile.vo.lianlian.AccumulativeInfoVO; import com.jsowell.pile.vo.uniapp.MemberVO; import com.jsowell.pile.vo.uniapp.OrderVO; import com.jsowell.pile.vo.uniapp.PersonPileConnectorSumInfoVO; @@ -1345,4 +1342,14 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { resultMap.put("accountBalance", totalAccountAmount); return resultMap; } + + /** + * 联联平台 获取累计数据用 + * @param dto + * @return + */ + @Override + public List getAccumulativeInfoForLianLian(QueryStationInfoDTO dto) { + return orderBasicInfoMapper.getAccumulativeInfoForLianLian(dto); + } } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/vo/lianlian/AccumulativeInfoVO.java b/jsowell-pile/src/main/java/com/jsowell/pile/vo/lianlian/AccumulativeInfoVO.java new file mode 100644 index 000000000..cbb35824e --- /dev/null +++ b/jsowell-pile/src/main/java/com/jsowell/pile/vo/lianlian/AccumulativeInfoVO.java @@ -0,0 +1,42 @@ +package com.jsowell.pile.vo.lianlian; + +import lombok.Data; + +/** + * 对接联联平台 获取累计数据 + * + * @author JS-ZZA + * @date 2023/4/17 14:06 + */ +@Data +public class AccumulativeInfoVO { + /** + * 枪口编号 + */ + private String pileConnectorCode; + + /** + * 桩编码 + */ + private String pileSn; + + /** + * 站点id + */ + private String stationId; + + /** + * 开始时间 + */ + private String startTime; + + /** + * 结束时间 + */ + private String endTime; + + /** + * 枪口充电量 + */ + private String connectorElectricity; +} diff --git a/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml index 6a1d44560..d0c770134 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml @@ -922,4 +922,21 @@ #{orderCode,jdbcType=VARCHAR} + + \ No newline at end of file diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/domain/StationStatsInfo.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/domain/StationStatsInfo.java index 096cd70ba..e189c2652 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/domain/StationStatsInfo.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/domain/StationStatsInfo.java @@ -1,6 +1,9 @@ package com.jsowell.thirdparty.domain; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; import java.math.BigDecimal; import java.util.List; @@ -12,6 +15,9 @@ import java.util.List; * @date 2023/4/15 9:29 */ @Data +@NoArgsConstructor +@AllArgsConstructor +@Builder public class StationStatsInfo { /** * 充电站 ID diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/service/LianLianService.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/service/LianLianService.java index e37c3eea9..f54a08434 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/service/LianLianService.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/service/LianLianService.java @@ -1,7 +1,7 @@ package com.jsowell.thirdparty.service; -import com.jsowell.thirdparty.domain.StationInfo; -import com.jsowell.thirdparty.dto.QueryStationInfoDTO; +import com.jsowell.thirdparty.domain.StationStatsInfo; +import com.jsowell.pile.dto.QueryStationInfoDTO; import com.jsowell.thirdparty.vo.LianLianPageResponse; import java.util.List; @@ -31,5 +31,5 @@ public interface LianLianService { LianLianPageResponse query_station_status(List StationIDs); - LianLianPageResponse query_station_stats(QueryStationInfoDTO dto); + StationStatsInfo query_station_stats(QueryStationInfoDTO dto); } diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/service/impl/LianLianServiceImpl.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/service/impl/LianLianServiceImpl.java index 4c6e703da..31135f20a 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/service/impl/LianLianServiceImpl.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/service/impl/LianLianServiceImpl.java @@ -14,9 +14,10 @@ import com.jsowell.pile.domain.PileStationInfo; import com.jsowell.pile.service.*; import com.jsowell.pile.vo.base.ConnectorInfoVO; import com.jsowell.pile.vo.base.MerchantInfoVO; +import com.jsowell.pile.vo.lianlian.AccumulativeInfoVO; import com.jsowell.pile.vo.web.PileModelInfoVO; import com.jsowell.thirdparty.domain.*; -import com.jsowell.thirdparty.dto.QueryStationInfoDTO; +import com.jsowell.pile.dto.QueryStationInfoDTO; import com.jsowell.thirdparty.service.LianLianService; import com.jsowell.thirdparty.vo.LianLianPageResponse; import org.apache.commons.collections4.CollectionUtils; @@ -26,7 +27,7 @@ import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; -import java.util.Objects; +import java.util.Map; import java.util.stream.Collectors; @Service @@ -210,9 +211,52 @@ public class LianLianServiceImpl implements LianLianService { * @return */ @Override - public LianLianPageResponse query_station_stats(QueryStationInfoDTO dto) { - - return null; + public StationStatsInfo query_station_stats(QueryStationInfoDTO dto) { + List equipmentStatsInfoList = new ArrayList<>(); + List connectorStatsInfos = new ArrayList<>(); + BigDecimal stationElectricity = new BigDecimal("0"); + + // 根据站点id 查出这段时间的充电量 + List accumulativeInfoForLianLian = orderBasicInfoService.getAccumulativeInfoForLianLian(dto); + + // 查出站点下所有枪口的充电量 + Map connectorElectricityMap = accumulativeInfoForLianLian.stream() + .collect(Collectors.toMap(AccumulativeInfoVO::getPileConnectorCode, AccumulativeInfoVO::getConnectorElectricity)); + + // 查出设备列表下所有设备列表的充电量 + Map pileElectricityMap = accumulativeInfoForLianLian.stream() + .collect(Collectors.toMap(AccumulativeInfoVO::getPileSn, AccumulativeInfoVO::getConnectorElectricity)); + + // 组装数据并返回 + // 枪口累计数据 + for (Map.Entry entry : connectorElectricityMap.entrySet()) { + ConnectorStatsInfo connectorStatsInfo = ConnectorStatsInfo.builder() + .ConnectorID(entry.getKey()) + .ConnectorElectricity(new BigDecimal(entry.getValue())) + .build(); + connectorStatsInfos.add(connectorStatsInfo); + } + // 桩累计数据 + for (Map.Entry pileEntry : pileElectricityMap.entrySet()) { + BigDecimal pileElectricity = new BigDecimal(pileEntry.getValue()); + EquipmentStatsInfo equipmentStatsInfo = EquipmentStatsInfo.builder() + .EquipmentID(pileEntry.getKey()) + .EquipmentElectricity(new BigDecimal(pileEntry.getValue())) + .ConnectorStatsInfos(connectorStatsInfos) + .build(); + equipmentStatsInfoList.add(equipmentStatsInfo); + stationElectricity = stationElectricity.add(pileElectricity); + } + + StationStatsInfo stationStatsInfo = StationStatsInfo.builder() + .StationID(dto.getStationID()) + .StartTime(dto.getStartTime()) + .EndTime(dto.getEndTime()) + .StationElectricity(stationElectricity) + .equipmentStatsInfos(equipmentStatsInfoList) // 设备列表 + .build(); + + return stationStatsInfo; } /** diff --git a/jsowell-ui/src/views/pile/station/components/billing.vue b/jsowell-ui/src/views/pile/station/components/billing.vue index b25d62f43..e0ffee51e 100644 --- a/jsowell-ui/src/views/pile/station/components/billing.vue +++ b/jsowell-ui/src/views/pile/station/components/billing.vue @@ -65,8 +65,7 @@ size="mini" @click="clickImport" v-has-permi = "['pile:station:edit']" - >导入 + >导入