ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingBillVO.java
New file @@ -0,0 +1,33 @@ package com.ruoyi.order.api.vo; import com.ruoyi.common.core.web.page.PageInfo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; @Data @ApiModel(value = "ChargingBillVO对象",description = "充电算帐单") public class ChargingBillVO { @ApiModelProperty(value = "充电总度数") private BigDecimal chargingCapacity; @ApiModelProperty(value = "实收金额") private BigDecimal paymentAmount; @ApiModelProperty(value = "订单总金额") private BigDecimal orderAmount; @ApiModelProperty(value = "累计电费") private BigDecimal electrovalence; @ApiModelProperty(value = "累计服务费") private BigDecimal serviceCharge; @ApiModelProperty(value = "订单数量") private Integer orderCount; @ApiModelProperty(value = "平台手续费") private String commissionAmount; @ApiModelProperty(value = "三方平台分佣") private String sharingAmount; @ApiModelProperty(value = "优惠抵扣") private String discount; @ApiModelProperty(value = "列表数据") private PageInfo<ChargingOrderListVO> list; } ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ChargingOrderVO.java
@@ -30,10 +30,7 @@ @ApiModelProperty(value = "手机号") private String phone; @ApiModelProperty(value = "累计电费") private BigDecimal electrovalence; @ApiModelProperty(value = "累计服务费") private BigDecimal serviceCharge; @ApiModelProperty(value = "时段数") private Integer count; @ApiModelProperty(value = "1明星充电 2快电 3新电途") ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ChargingBillController.java
New file @@ -0,0 +1,91 @@ package com.ruoyi.order.controller; import com.ruoyi.account.api.feignClient.AppUserCarClient; import com.ruoyi.account.api.feignClient.AppUserClient; import com.ruoyi.chargingPile.api.feignClient.ChargingGunClient; 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.web.domain.AjaxResult; import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.common.security.service.TokenService; import com.ruoyi.order.api.vo.ChargingBillVO; import com.ruoyi.order.api.vo.ChargingOrderTimeVO; import com.ruoyi.order.dto.ChargingBillQuery; import com.ruoyi.order.dto.ChargingListQuery; import com.ruoyi.order.service.*; import com.ruoyi.order.vo.ChargingOrderListInfoVO; 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.web.bind.annotation.*; import javax.annotation.Resource; /** * <p> * 前端控制器 * </p> * * @author xiaochen * @since 2024-08-07 */ @Api(tags = "充电算帐单") @RestController @RequestMapping("/chargingBill") public class ChargingBillController { @Resource private TChargingOrderService chargingOrderService; @Autowired private TokenService tokenService; @Autowired private TOrderEvaluateService orderEvaluateService; @Resource private WxPaymentClient wxPaymentClient; @Resource private RedisService redisService; @Resource private AliPaymentClient aliPaymentClient; @Resource private TShoppingOrderService shoppingOrderService; @Resource private AppUserClient appUserClient; @Resource private TVipOrderService vipOrderService; @Resource private ParkingLotClient parkingLotClient; @Resource private TChargingOrderRefundService chargingOrderRefundService; @Resource private TShoppingOrderRefundService shoppingOrderRefundService; @Resource private TVipOrderRefundService vipOrderRefundService; @Resource private SiteClient siteClient; @Resource private ChargingPileClient chargingPileClient; @Resource private ChargingGunClient chargingGunClient; @Resource private AppUserCarClient appUserCarClient; @Resource private TChargingOrderAccountingStrategyService chargingOrderAccountingStrategyService; @ResponseBody @PostMapping(value = "/chargingList") @ApiOperation(value = "充电算帐单列表查询", tags = {"管理后台-充电算账单"}) public AjaxResult<ChargingBillVO> chargingList(@RequestBody ChargingListQuery dto) { return AjaxResult.success(null); } } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/ChargingBillQuery.java
New file @@ -0,0 +1,37 @@ package com.ruoyi.order.dto; import com.ruoyi.common.core.web.page.BasePage; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; @Data public class ChargingBillQuery extends BasePage { @ApiModelProperty("订单编号") private String code; @ApiModelProperty("电站id") private Integer siteId; @ApiModelProperty("状态(0=未知,1=等待中,2=启动中,3=充电中,4=停止中,5=已结束)") private Integer status; @ApiModelProperty("手机号") private String phone; @ApiModelProperty("车牌号") private String licensePlate; @ApiModelProperty("订单类型(1=充电订单(小程序),2=充电订单(刷卡))") private Integer orderType; @ApiModelProperty("开始时间 2020-01-01 12:00:00 - 2020-01-01 23:00:00") private String startTime; @ApiModelProperty("结束时间 2020-01-01 12:00:00 - 2020-01-01 23:00:00") private String endTime; @ApiModelProperty("用户ids 前端忽略") private List<Long> userIds; @ApiModelProperty("车辆ids 前端忽略") private List<Long> carIds; } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/dto/ChargingListQuery.java
@@ -1,6 +1,7 @@ package com.ruoyi.order.dto; import com.ruoyi.common.core.web.page.BasePage; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -8,31 +9,13 @@ import java.util.List; @Data @ApiModel(value = "充电账单列表查询参数") public class ChargingListQuery extends BasePage { @ApiModelProperty("订单编号") private String code; @ApiModelProperty("电站id") private Integer siteId; @ApiModelProperty("状态(0=未知,1=等待中,2=启动中,3=充电中,4=停止中,5=已结束)") private Integer status; @ApiModelProperty("手机号") private String phone; @ApiModelProperty("车牌号") private String licensePlate; @ApiModelProperty("订单类型(1=充电订单(小程序),2=充电订单(刷卡))") private Integer orderType; @ApiModelProperty("开始时间 2020-01-01 12:00:00 - 2020-01-01 23:00:00") @ApiModelProperty("订单分类 1全站 2各个站点") private String category; @ApiModelProperty("账单周期2020-01-01 - 2020-01-01") private String startTime; @ApiModelProperty("结束时间 2020-01-01 12:00:00 - 2020-01-01 23:00:00") private String endTime; @ApiModelProperty("用户ids 前端忽略") private List<Long> userIds; @ApiModelProperty("车辆ids 前端忽略") private List<Long> carIds; @ApiModelProperty("1已出账 2未出账") private Integer state; } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -1080,31 +1080,36 @@ } 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(); // 获取开始SOC 结束soc List<UploadRealTimeMonitoringData> data6 = uploadRealTimeMonitoringDataClient.getDataByOrderCode(chargingOrder.getCode()).getData(); if (!data6.isEmpty()){ // 第一条数据soc为开始 最后一条数据soc为结束soc chargingOrderListInfoVO.setStartSoc(data6.get(0).getSoc().toString()); chargingOrderListInfoVO.setEndSoc(data6.get(data6.size()-1).getSoc().toString()); chargingOrderListInfoVO.setChargingCapacity(data6.get(data6.size()-1).getCharging_degree()); chargingOrderListInfoVO.setChargingSecond(data6.get(data6.size()-1).getCumulative_charging_time()*60+""); return null; } if (chargingOrder.getAppUserCarId()!=null){ List<TAppUserCar> data3 = appUserCarClient.getCarByIds(Collections.singletonList(chargingOrder.getAppUserCarId())).getData(); if (!data3.isEmpty())chargingOrderListInfoVO.setLicensePlate(data3.get(0).getLicensePlate()); } chargingOrderListInfoVO.setStartTime(chargingOrder.getStartTime()); chargingOrderListInfoVO.setEndTime(chargingOrder.getEndTime()); chargingOrderListInfoVO.setId(chargingOrder.getId()); chargingOrderListInfoVO.setUid(chargingOrder.getId().toString()); chargingOrderListInfoVO.setList(data6); chargingOrderListInfoVO.setCouponDiscountAmount(chargingOrder.getCouponDiscountAmount()); chargingOrderListInfoVO.setVipDiscountAmount(chargingOrder.getVipDiscountAmount()); chargingOrderListInfoVO.setSharingAmount(chargingOrder.getSharingAmount()); chargingOrderListInfoVO.setCommissionAmount(chargingOrder.getCommissionAmount()); // 查询费用明细列表 List<TChargingOrderAccountingStrategy> list = chargingOrderAccountingStrategyService.lambdaQuery() .eq(TChargingOrderAccountingStrategy::getChargingOrderId, chargingOrder.getId()) .list(); chargingOrderListInfoVO.setList1(list); return chargingOrderListInfoVO; } /** * 处理充电订单实时监控数据相关的业务逻辑 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/ChargingOrderListInfoVO.java
@@ -2,6 +2,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData; import com.ruoyi.order.api.model.TChargingOrderAccountingStrategy; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -44,7 +45,7 @@ @ApiModelProperty(value = "订单类型(1=充电订单(小程序),2=充电订单(刷卡))") private String orderType; @ApiModelProperty(value = "充电时间 秒") private Long chargingSecond; private String chargingSecond; @ApiModelProperty(value = "车牌号") private String licensePlate; @ApiModelProperty(value = "客户手机号") @@ -65,6 +66,16 @@ private Long id; @ApiModelProperty(value = "订单uid") private String uid; @ApiModelProperty(value = "费用明细-优惠券优惠金额") private BigDecimal couponDiscountAmount; @ApiModelProperty(value = "费用明细-会员优惠金额") private BigDecimal vipDiscountAmount; @ApiModelProperty(value = "费用明细-平台分佣") private BigDecimal sharingAmount; @ApiModelProperty(value = "费用明细-手续费") private BigDecimal commissionAmount; @ApiModelProperty(value = "充电信息") List<UploadRealTimeMonitoringData> list; @ApiModelProperty(value = "费用明细-费用列表") List<TChargingOrderAccountingStrategy> list1; }