add 新增联联 查询累计数据接口

This commit is contained in:
Lemon
2023-04-17 15:48:12 +08:00
parent 23935565a9
commit d8650d8976
11 changed files with 150 additions and 26 deletions

View File

@@ -4,19 +4,14 @@ import com.alibaba.fastjson2.JSONObject;
import com.jsowell.common.annotation.Anonymous; import com.jsowell.common.annotation.Anonymous;
import com.jsowell.common.core.controller.BaseController; import com.jsowell.common.core.controller.BaseController;
import com.jsowell.common.response.RestApiResponse; import com.jsowell.common.response.RestApiResponse;
import com.jsowell.common.util.StringUtils; import com.jsowell.pile.dto.QueryStationInfoDTO;
import com.jsowell.thirdparty.dto.QueryStationInfoDTO;
import com.jsowell.thirdparty.service.LianLianService; import com.jsowell.thirdparty.service.LianLianService;
import com.jsowell.thirdparty.vo.LianLianPageResponse; import com.jsowell.thirdparty.vo.LianLianPageResponse;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/** /**
* 对接联联平台controller * 对接联联平台controller

View File

@@ -1,4 +1,4 @@
package com.jsowell.thirdparty.dto; package com.jsowell.pile.dto;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;

View File

@@ -5,6 +5,8 @@ import com.jsowell.pile.domain.OrderDetail;
import com.jsowell.pile.dto.IndexQueryDTO; import com.jsowell.pile.dto.IndexQueryDTO;
import com.jsowell.pile.dto.QueryOrderDTO; import com.jsowell.pile.dto.QueryOrderDTO;
import com.jsowell.pile.dto.QueryPersonPileDTO; 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.OrderVO;
import com.jsowell.pile.vo.uniapp.PersonPileConnectorSumInfoVO; import com.jsowell.pile.vo.uniapp.PersonPileConnectorSumInfoVO;
import com.jsowell.pile.vo.uniapp.SendMessageVO; import com.jsowell.pile.vo.uniapp.SendMessageVO;
@@ -192,4 +194,11 @@ public interface OrderBasicInfoMapper {
List<OrderBasicInfo> getAppointmentOrder(LocalDateTime dateTime); List<OrderBasicInfo> getAppointmentOrder(LocalDateTime dateTime);
List<OrderVO> getListByOrderCodes(@Param("orderCodes") List<String> orderCodes); List<OrderVO> getListByOrderCodes(@Param("orderCodes") List<String> orderCodes);
/**
* 联联平台 获取累计数据用
* @param dto
* @return
*/
List<AccumulativeInfoVO> getAccumulativeInfoForLianLian(QueryStationInfoDTO dto);
} }

View File

@@ -4,10 +4,8 @@ import com.jsowell.common.core.domain.ykc.RealTimeMonitorData;
import com.jsowell.common.core.domain.ykc.TransactionRecordsData; import com.jsowell.common.core.domain.ykc.TransactionRecordsData;
import com.jsowell.pile.domain.OrderBasicInfo; import com.jsowell.pile.domain.OrderBasicInfo;
import com.jsowell.pile.domain.OrderDetail; import com.jsowell.pile.domain.OrderDetail;
import com.jsowell.pile.dto.GenerateOrderDTO; import com.jsowell.pile.dto.*;
import com.jsowell.pile.dto.IndexQueryDTO; import com.jsowell.pile.vo.lianlian.AccumulativeInfoVO;
import com.jsowell.pile.dto.QueryOrderDTO;
import com.jsowell.pile.dto.QueryPersonPileDTO;
import com.jsowell.pile.vo.uniapp.OrderVO; import com.jsowell.pile.vo.uniapp.OrderVO;
import com.jsowell.pile.vo.uniapp.PersonPileConnectorSumInfoVO; import com.jsowell.pile.vo.uniapp.PersonPileConnectorSumInfoVO;
import com.jsowell.pile.vo.uniapp.SendMessageVO; import com.jsowell.pile.vo.uniapp.SendMessageVO;
@@ -222,4 +220,11 @@ public interface IOrderBasicInfoService {
List<OrderBasicInfo> getAppointmentOrder(LocalDateTime dateTime); List<OrderBasicInfo> getAppointmentOrder(LocalDateTime dateTime);
Map<String, Object> generateOrderByCard(GenerateOrderDTO dto); Map<String, Object> generateOrderByCard(GenerateOrderDTO dto);
/**
* 联联平台 获取累计数据用
* @param dto
* @return
*/
List<AccumulativeInfoVO> getAccumulativeInfoForLianLian(QueryStationInfoDTO dto);
} }

View File

@@ -35,11 +35,7 @@ import com.jsowell.pile.domain.PileAuthCard;
import com.jsowell.pile.domain.PileBasicInfo; import com.jsowell.pile.domain.PileBasicInfo;
import com.jsowell.pile.domain.WxpayCallbackRecord; import com.jsowell.pile.domain.WxpayCallbackRecord;
import com.jsowell.pile.domain.WxpayRefundCallback; import com.jsowell.pile.domain.WxpayRefundCallback;
import com.jsowell.pile.dto.GenerateOrderDTO; import com.jsowell.pile.dto.*;
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.mapper.OrderBasicInfoMapper; import com.jsowell.pile.mapper.OrderBasicInfoMapper;
import com.jsowell.pile.service.IMemberBasicInfoService; import com.jsowell.pile.service.IMemberBasicInfoService;
import com.jsowell.pile.service.IOrderAbnormalRecordService; 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.dto.OrderTransactionDTO;
import com.jsowell.pile.transaction.service.TransactionService; import com.jsowell.pile.transaction.service.TransactionService;
import com.jsowell.pile.vo.base.PileInfoVO; 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.MemberVO;
import com.jsowell.pile.vo.uniapp.OrderVO; import com.jsowell.pile.vo.uniapp.OrderVO;
import com.jsowell.pile.vo.uniapp.PersonPileConnectorSumInfoVO; import com.jsowell.pile.vo.uniapp.PersonPileConnectorSumInfoVO;
@@ -1345,4 +1342,14 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
resultMap.put("accountBalance", totalAccountAmount); resultMap.put("accountBalance", totalAccountAmount);
return resultMap; return resultMap;
} }
/**
* 联联平台 获取累计数据用
* @param dto
* @return
*/
@Override
public List<AccumulativeInfoVO> getAccumulativeInfoForLianLian(QueryStationInfoDTO dto) {
return orderBasicInfoMapper.getAccumulativeInfoForLianLian(dto);
}
} }

View File

@@ -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;
}

View File

@@ -922,4 +922,21 @@
#{orderCode,jdbcType=VARCHAR} #{orderCode,jdbcType=VARCHAR}
</foreach> </foreach>
</select> </select>
<select id="getAccumulativeInfoForLianLian" resultType="com.jsowell.pile.vo.lianlian.AccumulativeInfoVO">
SELECT
t1.pile_connector_code as pileConnectorCode,
t1.pile_sn as pileSn,
t1.station_id as stationId,
t2.total_used_electricity as connectorElectricity
FROM
order_basic_info t1
JOIN order_detail t2 ON t1.order_code = t2.order_code
WHERE
t1.del_flag = '0'
AND t1.station_id = #{stationID,jdbcType=VARCHAR}
AND t1.create_time <![CDATA[ >= ]]> #{startTime,jdbcType=VARCHAR}
AND t1.create_time <![CDATA[ <= ]]> #{endTime,jdbcType=VARCHAR}
</select>
</mapper> </mapper>

View File

@@ -1,6 +1,9 @@
package com.jsowell.thirdparty.domain; package com.jsowell.thirdparty.domain;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List; import java.util.List;
@@ -12,6 +15,9 @@ import java.util.List;
* @date 2023/4/15 9:29 * @date 2023/4/15 9:29
*/ */
@Data @Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class StationStatsInfo { public class StationStatsInfo {
/** /**
* 充电站 ID * 充电站 ID

View File

@@ -1,7 +1,7 @@
package com.jsowell.thirdparty.service; package com.jsowell.thirdparty.service;
import com.jsowell.thirdparty.domain.StationInfo; import com.jsowell.thirdparty.domain.StationStatsInfo;
import com.jsowell.thirdparty.dto.QueryStationInfoDTO; import com.jsowell.pile.dto.QueryStationInfoDTO;
import com.jsowell.thirdparty.vo.LianLianPageResponse; import com.jsowell.thirdparty.vo.LianLianPageResponse;
import java.util.List; import java.util.List;
@@ -31,5 +31,5 @@ public interface LianLianService {
LianLianPageResponse query_station_status(List<String> StationIDs); LianLianPageResponse query_station_status(List<String> StationIDs);
LianLianPageResponse query_station_stats(QueryStationInfoDTO dto); StationStatsInfo query_station_stats(QueryStationInfoDTO dto);
} }

View File

@@ -14,9 +14,10 @@ import com.jsowell.pile.domain.PileStationInfo;
import com.jsowell.pile.service.*; import com.jsowell.pile.service.*;
import com.jsowell.pile.vo.base.ConnectorInfoVO; import com.jsowell.pile.vo.base.ConnectorInfoVO;
import com.jsowell.pile.vo.base.MerchantInfoVO; import com.jsowell.pile.vo.base.MerchantInfoVO;
import com.jsowell.pile.vo.lianlian.AccumulativeInfoVO;
import com.jsowell.pile.vo.web.PileModelInfoVO; import com.jsowell.pile.vo.web.PileModelInfoVO;
import com.jsowell.thirdparty.domain.*; 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.service.LianLianService;
import com.jsowell.thirdparty.vo.LianLianPageResponse; import com.jsowell.thirdparty.vo.LianLianPageResponse;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
@@ -26,7 +27,7 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Service @Service
@@ -210,9 +211,52 @@ public class LianLianServiceImpl implements LianLianService {
* @return * @return
*/ */
@Override @Override
public LianLianPageResponse query_station_stats(QueryStationInfoDTO dto) { public StationStatsInfo query_station_stats(QueryStationInfoDTO dto) {
List<EquipmentStatsInfo> equipmentStatsInfoList = new ArrayList<>();
List<ConnectorStatsInfo> connectorStatsInfos = new ArrayList<>();
BigDecimal stationElectricity = new BigDecimal("0");
return null; // 根据站点id 查出这段时间的充电量
List<AccumulativeInfoVO> accumulativeInfoForLianLian = orderBasicInfoService.getAccumulativeInfoForLianLian(dto);
// 查出站点下所有枪口的充电量
Map<String, String> connectorElectricityMap = accumulativeInfoForLianLian.stream()
.collect(Collectors.toMap(AccumulativeInfoVO::getPileConnectorCode, AccumulativeInfoVO::getConnectorElectricity));
// 查出设备列表下所有设备列表的充电量
Map<String, String> pileElectricityMap = accumulativeInfoForLianLian.stream()
.collect(Collectors.toMap(AccumulativeInfoVO::getPileSn, AccumulativeInfoVO::getConnectorElectricity));
// 组装数据并返回
// 枪口累计数据
for (Map.Entry<String, String> entry : connectorElectricityMap.entrySet()) {
ConnectorStatsInfo connectorStatsInfo = ConnectorStatsInfo.builder()
.ConnectorID(entry.getKey())
.ConnectorElectricity(new BigDecimal(entry.getValue()))
.build();
connectorStatsInfos.add(connectorStatsInfo);
}
// 桩累计数据
for (Map.Entry<String, String> 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;
} }
/** /**

View File

@@ -65,8 +65,7 @@
size="mini" size="mini"
@click="clickImport" @click="clickImport"
v-has-permi = "['pile:station:edit']" v-has-permi = "['pile:station:edit']"
>导入</el-button >导入</el-button>
>
</el-col> </el-col>
<!--<el-col :span="1.5"> <!--<el-col :span="1.5">
<el-button <el-button