From bcd1ff0c35353f3ea1972073a75debe34d92c392 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期五, 01 十一月 2024 16:14:21 +0800
Subject: [PATCH] bug修改

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java |   68 ++++++++++++++++++++++++++++++----
 1 files changed, 60 insertions(+), 8 deletions(-)

diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java
index dba6fe2..e08be7f 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java
@@ -3,6 +3,7 @@
 
 import cn.afterturn.easypoi.excel.ExcelExportUtil;
 import cn.afterturn.easypoi.excel.entity.ExportParams;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ruoyi.account.api.feignClient.AppUserCarClient;
 import com.ruoyi.account.api.feignClient.AppUserClient;
 import com.ruoyi.account.api.model.TAppUser;
@@ -23,10 +24,10 @@
 import com.ruoyi.common.log.enums.BusinessType;
 import com.ruoyi.common.redis.service.RedisService;
 import com.ruoyi.common.security.service.TokenService;
+import com.ruoyi.integration.api.feignClient.UploadRealTimeMonitoringDataClient;
+import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData;
 import com.ruoyi.order.api.dto.SettlementConfirmAdd;
-import com.ruoyi.order.api.model.ChargingListQuery;
-import com.ruoyi.order.api.model.TChargingOrder;
-import com.ruoyi.order.api.model.TSettlementConfirm;
+import com.ruoyi.order.api.model.*;
 import com.ruoyi.order.api.query.SettlementListQuery;
 import com.ruoyi.order.api.query.TOrderInvoiceQuery;
 import com.ruoyi.order.api.vo.ChargingOrderListVO;
@@ -37,12 +38,15 @@
 import com.ruoyi.order.vo.ChargingOrderListInfoVO;
 import com.ruoyi.order.api.vo.ChargingOrderTimeVO;
 import com.ruoyi.order.service.*;
+import com.ruoyi.other.api.domain.TVip;
+import com.ruoyi.other.api.feignClient.VipClient;
 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 io.swagger.annotations.ApiParam;
 import org.apache.poi.ss.usermodel.Workbook;
+import org.omg.CORBA.PRIVATE_MEMBER;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -52,6 +56,7 @@
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.net.URLEncoder;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
@@ -75,6 +80,8 @@
     private TChargingOrderService chargingOrderService;
     @Resource
     private TSettlementConfirmService tSettlementConfirmService;
+    @Resource
+    private VipClient vipClient;
     @PostMapping(value = "/chargingList")
     @ApiOperation(value = "充电时段统计列表", tags = {"管理后台-财务结算"})
     public AjaxResult<ChargingOrderTimeVO> chargingList(@RequestBody ChargingListQuery dto) {
@@ -95,6 +102,13 @@
     private ChargingGunClient chargingGunClient;
     @Autowired
     private AppUserCarClient appUserCarClient;
+    @Resource
+    private AccountingStrategyOrderService accountingStrategyOrderService;
+    @Resource
+    private TChargingOrderAccountingStrategyService tChargingOrderAccountingStrategyService;
+    @Resource
+    private UploadRealTimeMonitoringDataClient uploadRealTimeMonitoringDataClient;
+
     @ApiOperation(value = "充电时段统计-导出", tags = {"管理后台-财务结算"})
     @PutMapping("/export")
     public void export(@RequestBody ChargingListQuery dto) {
@@ -125,7 +139,13 @@
             tChargingOrderExport.setId(i);
             tChargingOrderExport.setCode(chargingOrderListVO.getCode());
             tChargingOrderExport.setTerminalName(chargingOrderListVO.getTerminalName());
-//            tChargingOrderExport.setName();
+            // 查询这笔订单的计费策略名称
+            List<AccountingStrategyOrder> list = accountingStrategyOrderService.lambdaQuery()
+                    .eq(AccountingStrategyOrder::getChargingOrderId, chargingOrderListVO.getId())
+                    .list();
+            if (!list.isEmpty()){
+                tChargingOrderExport.setName(list.get(0).getName());
+            }
             tChargingOrderExport.setOrderClassification("1");
             tChargingOrderExport.setStartType("扫码");
             tChargingOrderExport.setOne("小程序");
@@ -143,16 +163,48 @@
             tChargingOrderExport.setServiceCharge(chargingOrderListVO.getServiceCharge()+"");
             tChargingOrderExport.setTotal(chargingOrderListVO.getPaymentAmount()+"");
             tChargingOrderExport.setChargingCapacity(chargingOrderListVO.getElectricity()+"");
-//            tChargingOrderExport.setElectrovalencePrice();
-//            tChargingOrderExport.setServiceChargePrice();
-//            tChargingOrderExport.setServiceChargePriceLook();
-//            tChargingOrderExport.setCumulativeChargingTime();
+            List<TChargingOrderAccountingStrategy> stageCost = tChargingOrderAccountingStrategyService.list(
+                    new LambdaQueryWrapper<TChargingOrderAccountingStrategy>()
+                            .eq(TChargingOrderAccountingStrategy::getChargingOrderId, chargingOrderListVO.getId()));
+            if (!stageCost.isEmpty()){
+                // 累加时段电费单价 取平均值
+                BigDecimal bigDecimal1 = new BigDecimal("0");
+                BigDecimal bigDecimal2 = new BigDecimal("0");
+                BigDecimal bigDecimal3 = new BigDecimal("0");
+                BigDecimal size = new BigDecimal(stageCost.size());
+
+                for (TChargingOrderAccountingStrategy tChargingOrderAccountingStrategy : stageCost) {
+                    bigDecimal1 = bigDecimal1.add(tChargingOrderAccountingStrategy.getElectrovalence());
+                    bigDecimal2 = bigDecimal2.add(tChargingOrderAccountingStrategy.getPeriodServicePrice());
+                    bigDecimal3 = bigDecimal3.add(tChargingOrderAccountingStrategy.getPeriodOriginalServicePrice());
+                }
+                BigDecimal divide1 = bigDecimal1.divide(size, 2, RoundingMode.HALF_DOWN);
+                BigDecimal divide2 = bigDecimal2.divide(size, 2, RoundingMode.HALF_DOWN);
+                BigDecimal divide3 = bigDecimal3.divide(size, 2, RoundingMode.HALF_DOWN);
+                tChargingOrderExport.setElectrovalencePrice(divide1+"");
+                tChargingOrderExport.setServiceChargePrice(divide2+"");
+                tChargingOrderExport.setServiceChargePriceLook(divide3+"");
+            }
+            // 获取充电时间
+            UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrderListVO.getCode()).getData();
+            if (data5!=null){
+                if (data5.getTime_remaining()!=null){
+                    tChargingOrderExport.setCumulativeChargingTime(data5.getCumulative_charging_time()+"");
+                }
+            }
             tChargingOrderExport.setStartSoc(chargingOrderListVO.getStartSoc());
             tChargingOrderExport.setEndtSoc(chargingOrderListVO.getEndSoc());
             tChargingOrderExport.setIsSoc("否");
             tChargingOrderExport.setIsSocType("");
             tChargingOrderExport.setIsSocNum("0");
             tChargingOrderExport.setUserType("普通个人用户");
+            TAppUser data2 = appUserClient.getUserById(chargingOrderListVO.getAppUserId()).getData();
+            if (data2!=null&&data2.getVipId()!=null){
+                TVip data1 = vipClient.getInfo1(data2.getVipId()).getData();
+                if (data1!=null){
+                    tChargingOrderExport.setVipType(data1.getName());
+                }
+            }
 //            tChargingOrderExport.setVipType();
             tChargingOrderExport.setIsPlus(chargingOrderListVO.getVipDiscountAmount().compareTo(BigDecimal.ZERO)>0?"是":"否");
             if (data3!=null){

--
Gitblit v1.7.1