ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java
@@ -7,29 +7,21 @@ import com.ruoyi.chargingPile.api.feignClient.ChargingPileClient; import com.ruoyi.chargingPile.api.feignClient.ParkingLotClient; import com.ruoyi.chargingPile.api.feignClient.SiteClient; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.common.security.service.TokenService; import com.ruoyi.order.api.model.TVipOrder; import com.ruoyi.order.api.query.VipShoppingOrderQuery; import com.ruoyi.order.vo.ChargingOrderListInfoVO; import com.ruoyi.order.api.vo.ChargingOrderTimeVO; import com.ruoyi.order.dto.ChargingListQuery; import com.ruoyi.order.dto.PayOrderDto; import com.ruoyi.order.dto.PayOrderQueryDto; import com.ruoyi.order.service.*; import com.ruoyi.payment.api.feignClient.AliPaymentClient; import com.ruoyi.payment.api.feignClient.WxPaymentClient; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.Arrays; import java.util.List; /** * <p> @@ -93,5 +85,12 @@ ChargingOrderTimeVO res = chargingOrderService.chargingList(dto); return AjaxResult.success(res); } @ResponseBody @GetMapping(value = "/chargingInfo") @ApiOperation(value = "充电时段统计列表-查看详情", tags = {"管理后台-财务结算"}) public AjaxResult<ChargingOrderListInfoVO> chargingInfo(String uid) { ChargingOrderListInfoVO res = chargingOrderService.chargingInfo(uid); return AjaxResult.success(res); } } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java
@@ -12,6 +12,7 @@ import com.ruoyi.order.api.vo.ChargingOrderVO; import com.ruoyi.order.api.vo.TCharingOrderVO; import com.ruoyi.order.dto.*; import com.ruoyi.order.vo.ChargingOrderListInfoVO; import org.springframework.web.bind.annotation.RequestBody; import java.util.List; @@ -93,4 +94,6 @@ R<PageInfo<TChargingOrderRefund>> getRefundList(ChargingRefundDto chargingRefundDto); ChargingOrderTimeVO chargingList(ChargingListQuery dto); ChargingOrderListInfoVO chargingInfo(String uid); } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -42,6 +42,7 @@ import com.ruoyi.order.service.TChargingOrderAccountingStrategyService; import com.ruoyi.order.service.TChargingOrderService; import com.ruoyi.order.service.TOrderEvaluateService; import com.ruoyi.order.vo.ChargingOrderListInfoVO; import com.ruoyi.payment.api.feignClient.AliPaymentClient; import com.ruoyi.payment.api.feignClient.WxPaymentClient; import com.ruoyi.payment.api.vo.*; @@ -588,8 +589,8 @@ BigDecimal electronicMoney1 = new BigDecimal("0"); // 单个订单累计服务费 BigDecimal serviceMoney1 = new BigDecimal("0"); // todo 调用第三方获取充电时长 秒 UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrderVO.getCode()).getData(); chargingOrderVO.setChargingSecond(data5.getTime_remaining()*60L); // 总收入 if (chargingOrderVO.getRefundStatus() !=null && chargingOrderVO.getRefundStatus() == 2){ income = income.add(chargingOrderVO.getPaymentAmount().subtract(chargingOrderVO.getRefundAmount())); @@ -655,6 +656,7 @@ return R.ok(pageInfo); } @Override public ChargingOrderTimeVO chargingList(ChargingListQuery dto) { String startTime1 = null; @@ -678,6 +680,7 @@ 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) { chargingOrderListVO.setUid(chargingOrderListVO.getId()+""); List<Integer> integers = new ArrayList<>(); integers.add(chargingOrderListVO.getSiteId()); List<Site> data = siteClient.getSiteByIds(integers).getData(); @@ -689,7 +692,21 @@ if (data2 != null && data1 != null) { chargingOrderListVO.setTerminalName(data2.getName() + "-" + data1.getName()); } // todo 充电时长 调用第三方获取 // 获取充电时间 UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrderListVO.getCode()).getData(); if (data5!=null){ if (data5.getTime_remaining()!=null){ chargingOrderListVO.setChargingSecond(data5.getTime_remaining()*60L); } } // 获取开始SOC 结束soc List<UploadRealTimeMonitoringData> data6 = uploadRealTimeMonitoringDataClient.getDataByOrderCode(chargingOrderListVO.getCode()).getData(); if (!data6.isEmpty()){ // 第一条数据soc为开始 最后一条数据soc为结束soc chargingOrderListVO.setStartSoc(data6.get(0).getSoc().toString()); chargingOrderListVO.setEndSoc(data6.get(data6.size()-1).getSoc().toString()); } TAppUser data3 = appUserClient.getUserById(chargingOrderListVO.getAppUserId()).getData(); List<Long> carId = new ArrayList<>(); if (chargingOrderListVO.getAppUserCarId() != null) { @@ -816,4 +833,49 @@ chargingOrderTimeVO.setList(pageInfo); return chargingOrderTimeVO; } @Override public ChargingOrderListInfoVO chargingInfo(String uid) { TChargingOrder chargingOrder= this.getById(uid); ChargingOrderListInfoVO chargingOrderListInfoVO = new ChargingOrderListInfoVO(); chargingOrderListInfoVO.setCode(chargingOrder.getCode()); List<Site> data = siteClient.getSiteByIds(Arrays.asList(chargingOrder.getSiteId())).getData(); if (!data.isEmpty()){ chargingOrderListInfoVO.setSiteName(data.get(0).getName()); chargingOrderListInfoVO.setSiteAddress(data.get(0).getAddress()); } TChargingGun data1 = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData(); TChargingPile data2 = chargingPileClient.getChargingPileById(data1.getChargingPileId()).getData(); if (data1!=null){ chargingOrderListInfoVO.setGunCode(data1.getCode()); chargingOrderListInfoVO.setTerminalName(data2.getName()+data1.getName()); } chargingOrderListInfoVO.setEndMode(chargingOrder.getEndMode()); // todo 周一完善 // chargingOrderListInfoVO.setStartSoc(); // chargingOrderListInfoVO.setEndSoc(); // chargingOrderListInfoVO.setChargingCapacity(); // chargingOrderListInfoVO.setSiteId(); // chargingOrderListInfoVO.setChargingPileId(); // chargingOrderListInfoVO.setAppUserId(); // chargingOrderListInfoVO.setAppUserCarId(); // chargingOrderListInfoVO.setChargingGunId(); // chargingOrderListInfoVO.setOrderType(); // chargingOrderListInfoVO.setChargingSecond(); // chargingOrderListInfoVO.setLicensePlate(); // chargingOrderListInfoVO.setPhone(); // chargingOrderListInfoVO.setPaymentAmount(); // chargingOrderListInfoVO.setElectrovalence(); // chargingOrderListInfoVO.setServiceCharge(); // chargingOrderListInfoVO.setStartTime(); // chargingOrderListInfoVO.setEndTime(); // chargingOrderListInfoVO.setId(); // chargingOrderListInfoVO.setUid(); // chargingOrderListInfoVO.setList(); return null; } } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/ChargingOrderListInfoVO.java
New file @@ -0,0 +1,70 @@ package com.ruoyi.order.vo; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; @Data @ApiModel(value = "ChargingOrderListInfoVO对象",description = "充电时段统计列表查看详情VO") public class ChargingOrderListInfoVO { @ApiModelProperty(value = "订单编号") private String code; @ApiModelProperty(value = "电站名称") private String siteName; @ApiModelProperty(value = "电站地址") private String siteAddress; @ApiModelProperty(value = "终端编号") private String gunCode; @ApiModelProperty(value = "充电终端名称 桩+枪") private String terminalName; @ApiModelProperty(value = "结束原因 (0=异常终止,1=主动终止,2=满电终止,3=费用不足终止)") private Integer endMode; @ApiModelProperty(value = "开始soc") private String startSoc; @ApiModelProperty(value = "结束soc") private String endSoc; @ApiModelProperty(value = "充电电流 度") private BigDecimal chargingCapacity; @ApiModelProperty(value = "电站id") private Integer siteId; @ApiModelProperty(value = "充电桩id") private Integer chargingPileId; @ApiModelProperty(value = "用户id") private Long appUserId; @ApiModelProperty(value = "用户车辆id") private Long appUserCarId; @ApiModelProperty(value = "充电枪id") private Integer chargingGunId; @ApiModelProperty(value = "订单类型(1=充电订单(小程序),2=充电订单(刷卡))") private String orderType; @ApiModelProperty(value = "充电时间 秒") private Long chargingSecond; @ApiModelProperty(value = "车牌号") private String licensePlate; @ApiModelProperty(value = "客户手机号") private String phone; @ApiModelProperty(value = "充电到账金额") private BigDecimal paymentAmount; @ApiModelProperty(value = "累计电费") private BigDecimal electrovalence; @ApiModelProperty(value = "累计服务费") private BigDecimal serviceCharge; @ApiModelProperty(value = "开始时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime startTime; @ApiModelProperty(value = "结束时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime endTime; @ApiModelProperty(value = "订单id") private Long id; @ApiModelProperty(value = "订单uid") private String uid; @ApiModelProperty(value = "充电信息") List<UploadRealTimeMonitoringData> list; }