无关风月
2024-08-31 1d4407945510f717f1d3e8892387e473277de5c7
代码提交
1个文件已添加
3个文件已修改
158 ■■■■■ 已修改文件
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/ChargingOrderListInfoVO.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
}