From a85b63f3e4d933df586714ea91c69a3fd5d16b99 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期五, 06 十二月 2024 11:56:07 +0800
Subject: [PATCH] 合作商权限
---
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 295 +++++++++++++++++++++++++++++++++++++++++
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java | 29 ++++
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/query/ChargingOrderQuery.java | 2
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TSettlementConfirmMapper.java | 2
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ChargingBillController.java | 1
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/query/SettlementListQuery.java | 2
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java | 2
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TParkingRecordServiceImpl.java | 21 +++
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/ChargingListQuery.java | 2
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java | 1
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TSettlementConfirmMapper.xml | 12 +
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java | 4
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java | 4
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java | 6
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml | 12 +
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingBillMapper.xml | 12 +
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/ParkingRecordQuery.java | 2
17 files changed, 399 insertions(+), 10 deletions(-)
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/ParkingRecordQuery.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/ParkingRecordQuery.java
index 224a867..e47f886 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/ParkingRecordQuery.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/ParkingRecordQuery.java
@@ -22,5 +22,7 @@
@ApiModelProperty(value = "停车场id集合 前端忽略")
private List<Integer> lotIds;
+ @ApiModelProperty(value = "站点id集合 前端忽略")
+ private List<Integer> siteIds;
}
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java
index d838d05..d2656dc 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/ChargingOrderFallbackFactory.java
@@ -109,7 +109,7 @@
}
@Override
- public R<SettlementTotalVO> settlementTotalR(String time) {
+ public R<SettlementTotalVO> settlementTotalR(String time,Long userId) {
return R.fail("查询结算汇总表导出列表失败:" + throwable.getMessage());
}
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java
index 78ef068..2d3875b 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/ChargingOrderClient.java
@@ -120,8 +120,8 @@
@GetMapping(value = "/financial/settlement/downloadSettlement/{uid}")
public R<TSettlementConfirm> downloadSettlement(@PathVariable("uid") String uid);
- @GetMapping(value = "/financial/settlement/settlementTotalR/{time}")
- public R<SettlementTotalVO> settlementTotalR(@PathVariable("time")String time);
+ @GetMapping(value = "/financial/settlement/settlementTotalR/{time}/{userId}")
+ public R<SettlementTotalVO> settlementTotalR(@PathVariable("time")String time,@PathVariable("userId")Long userId);
/**
* 修改充电订单
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/ChargingListQuery.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/ChargingListQuery.java
index 842cad4..255976e 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/ChargingListQuery.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/ChargingListQuery.java
@@ -44,5 +44,7 @@
private List<Long> userIds;
@ApiModelProperty("车辆ids 前端忽略")
private List<Long> carIds;
+ @ApiModelProperty("站点ids 前端忽略")
+ private List<Integer> siteIds;
}
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/query/ChargingOrderQuery.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/query/ChargingOrderQuery.java
index a7ecf9f..523c6b6 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/query/ChargingOrderQuery.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/query/ChargingOrderQuery.java
@@ -33,4 +33,6 @@
private Integer orderSource;
@ApiModelProperty(value = "用户ids 前端忽略")
private List<Long> userIds;
+ @ApiModelProperty(value = "站点ids 前端忽略")
+ private List<Integer> siteIds;
}
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/query/SettlementListQuery.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/query/SettlementListQuery.java
index d85c948..d7ff768 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/query/SettlementListQuery.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/query/SettlementListQuery.java
@@ -15,6 +15,8 @@
private Integer type;
@ApiModelProperty(value = "站点ids 选择全部 不传")
private Integer siteIds;
+ @ApiModelProperty(value = "站点ids 选择全部 不传")
+ private List<Integer> siteIdss;
@ApiModelProperty(value = "合作商id ")
private Integer partnerId;
@ApiModelProperty(value = "开始时间2020-01-01 00:00:00")
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java
index d715cb8..47e41e9 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java
@@ -14,6 +14,7 @@
import com.ruoyi.common.core.utils.WebUtils;
import com.ruoyi.common.core.web.domain.BasePojo;
import com.ruoyi.common.core.web.page.PageInfo;
+import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.integration.api.feignClient.UploadRealTimeMonitoringDataClient;
import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData;
import com.ruoyi.order.api.model.ExportUidDto;
@@ -371,7 +372,8 @@
@Log(title = "【结算汇总表】下载汇总表", businessType = BusinessType.EXPORT)
public R downloadSettlementTotal(@RequestBody ExportUidDto uid,HttpServletResponse response)
{
- SettlementTotalVO data = chargingOrderClient.settlementTotalR(uid.getTime()).getData();
+ Long userId = SecurityUtils.getUserId();
+ SettlementTotalVO data = chargingOrderClient.settlementTotalR(uid.getTime(),userId).getData();
try {
response.setCharacterEncoding(Constants.UTF8);
response.setContentType("application/vnd.ms-excel");
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TParkingRecordServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TParkingRecordServiceImpl.java
index 35ede90..15a9d5b 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TParkingRecordServiceImpl.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TParkingRecordServiceImpl.java
@@ -2,6 +2,8 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.chargingPile.api.dto.GetSiteListDTO;
+import com.ruoyi.chargingPile.api.feignClient.SiteClient;
import com.ruoyi.chargingPile.api.model.Site;
import com.ruoyi.chargingPile.api.model.TParkingLot;
import com.ruoyi.chargingPile.api.model.TParkingRecord;
@@ -16,12 +18,15 @@
import com.ruoyi.chargingPile.mapper.TParkingRecordMapper;
import com.ruoyi.chargingPile.service.TParkingRecordService;
import com.ruoyi.common.core.web.page.PageInfo;
+import com.ruoyi.common.security.utils.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
+import javax.annotation.Resource;
import java.math.BigDecimal;
import java.time.LocalDate;
+import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -42,6 +47,8 @@
private SiteMapper siteMapper;
@Autowired
private TParkingLotMapper parkingLotMapper;
+ @Resource
+ private SiteClient siteClient;
@Override
public BigDecimal getSum(LocalDate sixBefore) {
@@ -50,6 +57,20 @@
@Override
public TParkingRecordPageInfoVO pageList(ParkingRecordQuery query) {
+ Long userId = SecurityUtils.getUserId();
+ //如果没传siteId,获取当前登陆人所有的siteIds
+ List<Integer> siteIds = new ArrayList<>();
+ if (query.getSiteId()==null){
+ if (userId != null){
+ List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData();
+ for (GetSiteListDTO datum : data) {
+ siteIds.add(datum.getId());
+ }
+ }
+ }else {
+ siteIds.add(query.getSiteId());
+ }
+ query.setSiteIds(siteIds);
PageInfo<TParkingRecordVO> pageInfo = new PageInfo<>(query.getPageCurr(),query.getPageSize());
// 查询站点的停车场id
if(Objects.nonNull(query.getSiteId())){
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ChargingBillController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ChargingBillController.java
index 6bee4c0..91b9420 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ChargingBillController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ChargingBillController.java
@@ -174,6 +174,7 @@
@PutMapping("/export")
public void export(@RequestBody ChargingListQuery dto)
{
+
ChargingBillVO res = chargingBillService.chargingBillList(dto);
List<ChargingBillListVO> list = res.getList().getRecords();
List<TChargingBillExport> tChargingBillExports = new ArrayList<>();
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 66b8377..b663fab 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
@@ -282,10 +282,10 @@
SettlementTotalVO res = chargingOrderService.settlementTotal(time);
return AjaxResult.success(res);
}
- @GetMapping(value = "/settlementTotalR/{time}")
- public R<SettlementTotalVO> settlementTotalR(@PathVariable("time")String time) {
+ @GetMapping(value = "/settlementTotalR/{time}/{userId}")
+ public R<SettlementTotalVO> settlementTotalR(@PathVariable("time")String time,@PathVariable("userId")Long userId) {
time = time+"-01 00:00:00";
- SettlementTotalVO res = chargingOrderService.settlementTotal(time);
+ SettlementTotalVO res = chargingOrderService.settlementTotalR(time,userId);
return R.ok(res);
}
@PostMapping(value = "/settlementAdd")
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TSettlementConfirmMapper.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TSettlementConfirmMapper.java
index 260ee56..993c758 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TSettlementConfirmMapper.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TSettlementConfirmMapper.java
@@ -29,5 +29,5 @@
List<TSettlementConfirm> settlementList(@Param("pageInfo") PageInfo<TSettlementConfirm> pageInfo, @Param("req") SettlementListQuery dto);
- List<TSettlementConfirm> settlementTotal(@Param("time") String time);
+ List<TSettlementConfirm> settlementTotal(@Param("time") String time,@Param("siteIds")List<Integer> siteIds);
}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java
index 13f6333..dd6c3c0 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java
@@ -231,6 +231,7 @@
PageInfo<TSettlementConfirm> settlementList(SettlementListQuery dto);
SettlementTotalVO settlementTotal(String time);
+ SettlementTotalVO settlementTotalR(String time,Long userId);
List<Map<String, Object>> countBySource(List<Integer> siteIds,ChargingStatisticsQueryDto statisticsQueryDto);
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java
index 6361e2a..28352ad 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java
@@ -4,6 +4,7 @@
import com.ruoyi.account.api.feignClient.AppUserClient;
import com.ruoyi.account.api.model.TAppUser;
import com.ruoyi.account.api.model.TAppUserCar;
+import com.ruoyi.chargingPile.api.dto.GetSiteListDTO;
import com.ruoyi.chargingPile.api.feignClient.ChargingGunClient;
import com.ruoyi.chargingPile.api.feignClient.ChargingPileClient;
import com.ruoyi.chargingPile.api.feignClient.SiteClient;
@@ -11,6 +12,7 @@
import com.ruoyi.chargingPile.api.model.TChargingGun;
import com.ruoyi.chargingPile.api.model.TChargingPile;
import com.ruoyi.common.core.utils.DateUtils;
+import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.integration.api.feignClient.UploadRealTimeMonitoringDataClient;
import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData;
import com.ruoyi.order.api.model.TChargingOrder;
@@ -88,6 +90,20 @@
startTime1 = split[0];
startTime2 = split[1];
}
+ Long userId = SecurityUtils.getUserId();
+ //如果没传siteId,获取当前登陆人所有的siteIds
+ List<Integer> siteIds = new ArrayList<>();
+ if (dto.getSiteId()==null){
+ if (userId != null){
+ List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData();
+ for (GetSiteListDTO datum : data) {
+ siteIds.add(datum.getId());
+ }
+ }
+ }else {
+ siteIds.add(dto.getSiteId());
+ }
+ dto.setSiteIds(siteIds);
PageInfo<ChargingBillListVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize());
PageInfo<ChargingBillListVO> pageInfo1 = new PageInfo<>(1,9999999);
List<ChargingBillListVO> list = this.baseMapper.chargingBillList1(pageInfo,dto,startTime1,startTime2);
@@ -469,6 +485,19 @@
}
PageInfo<ChargingBillListVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize());
PageInfo<ChargingBillListVO> pageInfo1 = new PageInfo<>(1,9999999);
+ Long userId = SecurityUtils.getUserId();
+ //如果没传siteId,获取当前登陆人所有的siteIds
+ List<Integer> siteIds = new ArrayList<>();
+ if (dto.getSiteId()==null){
+ if (userId != null){
+ List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData();
+ for (GetSiteListDTO datum : data) {
+ siteIds.add(datum.getId());
+ }
+ }
+ }else {
+ siteIds.add(dto.getSiteId());
+ }
List<ChargingBillListVO> list = this.baseMapper.chargingBillList(pageInfo,dto,startTime1,startTime2);
List<ChargingBillListVO> list1 = this.baseMapper.chargingBillList(pageInfo1,dto,startTime1,startTime2);
BigDecimal paymentAmountTotal = new BigDecimal("0");
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
index cf56997..dfd55ed 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -9,6 +9,7 @@
import com.ruoyi.account.api.model.*;
import com.ruoyi.account.api.vo.GetAppUserVipDetail;
import com.ruoyi.account.api.vo.GetInviteUser;
+import com.ruoyi.chargingPile.api.dto.GetSiteListDTO;
import com.ruoyi.chargingPile.api.feignClient.*;
import com.ruoyi.chargingPile.api.model.*;
import com.ruoyi.chargingPile.api.vo.GetChargingGunByCode;
@@ -19,6 +20,7 @@
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.common.security.utils.SecurityUtils;
import com.ruoyi.integration.api.feignClient.ChargingHandshakeClient;
import com.ruoyi.integration.api.feignClient.PlatformStartChargingReplyClient;
import com.ruoyi.integration.api.feignClient.SendMessageClient;
@@ -1206,6 +1208,20 @@
}
dto.setUserIds(data);
}
+ Long userId = SecurityUtils.getUserId();
+ //如果没传siteId,获取当前登陆人所有的siteIds
+ List<Integer> siteIds = new ArrayList<>();
+ if (dto.getSiteId()==null){
+ if (userId != null){
+ List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData();
+ for (GetSiteListDTO datum : data) {
+ siteIds.add(datum.getId());
+ }
+ }
+ }else {
+ siteIds.add(dto.getSiteId());
+ }
+ dto.setSiteIds(siteIds);
List<ChargingOrderVO> list = this.baseMapper.chargingOrder(pageInfo,dto,startTime1,startTime2,endTime1,endTime2);
List<ChargingOrderVO> list1 = this.baseMapper.chargingOrder(pageInfo1,dto,startTime1,startTime2,endTime1,endTime2);
BigDecimal total = new BigDecimal("0");
@@ -1410,6 +1426,20 @@
dto.setCarIds(carIds);
}
}
+ Long userId = SecurityUtils.getUserId();
+ //如果没传siteId,获取当前登陆人所有的siteIds
+ List<Integer> siteIds = new ArrayList<>();
+ if (dto.getSiteId()==null){
+ if (userId != null){
+ List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData();
+ for (GetSiteListDTO datum : data) {
+ siteIds.add(datum.getId());
+ }
+ }
+ }else {
+ siteIds.add(dto.getSiteId());
+ }
+ dto.setSiteIds(siteIds);
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) {
@@ -2679,6 +2709,20 @@
}
dto.setStartTime(startTime);
dto.setEndTime(endTime);
+ Long userId = SecurityUtils.getUserId();
+ //如果没传siteId,获取当前登陆人所有的siteIds
+ List<Integer> siteIds = new ArrayList<>();
+ if (dto.getSiteIds()==null){
+ if (userId != null){
+ List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData();
+ for (GetSiteListDTO datum : data) {
+ siteIds.add(datum.getId());
+ }
+ }
+ }else {
+ siteIds.add(dto.getSiteIds());
+ }
+ dto.setSiteIdss(siteIds);
PageInfo<TSettlementConfirm> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize());
List<TSettlementConfirm> list = tSettlementConfirmMapper.settlementList(pageInfo,dto);
for (TSettlementConfirm tSettlementConfirm : list) {
@@ -2704,12 +2748,259 @@
@Override
public SettlementTotalVO settlementTotal(String time) {
+ Long userId = SecurityUtils.getUserId();
+ //如果没传siteId,获取当前登陆人所有的siteIds
+ List<Integer> siteIds = new ArrayList<>();
+ if (userId != null){
+ List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData();
+ for (GetSiteListDTO datum : data) {
+ siteIds.add(datum.getId());
+ }
+ }
SettlementTotalVO res = new SettlementTotalVO();
- List<TSettlementConfirm> list1 = tSettlementConfirmMapper.settlementTotal(time);
+ List<TSettlementConfirm> list1 = tSettlementConfirmMapper.settlementTotal(time,siteIds);
LocalDateTime parse = LocalDateTime.parse(time, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
// 减少一个月
LocalDateTime minus = parse.minusMonths(1);
- List<TSettlementConfirm> list2 = tSettlementConfirmMapper.settlementTotal(time);
+ List<TSettlementConfirm> list2 = tSettlementConfirmMapper.settlementTotal(time,siteIds);
+ // 合计
+ List<TSettlementConfirm> total = new ArrayList<>();
+
+ TSettlementConfirm tSettlementConfirm1 = new TSettlementConfirm();
+ BigDecimal meteringElectronic = new BigDecimal("0");
+ BigDecimal chargingElectronic = new BigDecimal("0");
+ BigDecimal lossElectronic = new BigDecimal("0");
+ BigDecimal income = new BigDecimal("0");
+ BigDecimal venue = new BigDecimal("0");
+ BigDecimal metering = new BigDecimal("0");
+ BigDecimal clean = new BigDecimal("0");
+ BigDecimal maintain = new BigDecimal("0");
+ BigDecimal cost = new BigDecimal("0");
+ BigDecimal profitMoney = new BigDecimal("0");
+ BigDecimal newMoney = new BigDecimal("0");
+ BigDecimal newSettlement = new BigDecimal("0");
+ BigDecimal supplyElectronic = new BigDecimal("0");
+ BigDecimal proportionPartner = new BigDecimal("0");
+ BigDecimal proportionMoney = new BigDecimal("0");
+ BigDecimal totalElectronic = new BigDecimal("0");
+ BigDecimal totalService = new BigDecimal("0");
+ BigDecimal servicePartner = new BigDecimal("0");
+ BigDecimal serviceMoney = new BigDecimal("0");
+ BigDecimal sharingAmount = new BigDecimal("0");
+ BigDecimal commissionAmount = new BigDecimal("0");
+ BigDecimal electrovalence = new BigDecimal("0");
+ BigDecimal serviceCharge = new BigDecimal("0");
+ BigDecimal orderCommission = new BigDecimal("0");
+ BigDecimal vipDiscount = new BigDecimal("0");
+ BigDecimal couponDiscount = new BigDecimal("0");
+// tSettlementConfirm1.setIncomePercentage();
+// tSettlementConfirm1.setTotalPercentage();
+ tSettlementConfirm1.setElectronicRefund(0);
+ // 上月成本合计
+ BigDecimal beforeCost= new BigDecimal("0");
+ // 上月利润合计
+ BigDecimal beforeIncome= new BigDecimal("0");
+ int i = 1;
+ for (TSettlementConfirm tSettlementConfirm : list1) {
+ tSettlementConfirm.setXuhao(i);
+ tSettlementConfirm.setMetering(tSettlementConfirm.getSupplyElectronic());
+ List<Site> data1 = siteClient.getSiteByIds(Arrays.asList(tSettlementConfirm.getSiteId())).getData();
+ if (!data1.isEmpty()){
+ tSettlementConfirm.setSiteName(data1.get(0).getName());
+ }
+ if (tSettlementConfirm.getMeteringElectronic()!=null){
+ meteringElectronic = meteringElectronic.add(tSettlementConfirm.getMeteringElectronic());
+ chargingElectronic = chargingElectronic.add(tSettlementConfirm.getChargingElectronic());
+ }
+ if (tSettlementConfirm.getLossElectronic()!=null){
+ lossElectronic = lossElectronic.add(tSettlementConfirm.getLossElectronic());
+ }
+ income = income.add(tSettlementConfirm.getIncome());
+ venue = venue.add(tSettlementConfirm.getVenue());
+ metering = metering.add(tSettlementConfirm.getMetering());
+ clean = clean.add(tSettlementConfirm.getClean());
+ maintain = maintain.add(tSettlementConfirm.getMaintain());
+ cost = cost.add(tSettlementConfirm.getCost());
+ profitMoney = profitMoney.add(tSettlementConfirm.getProfitMoney());
+ newMoney = newMoney.add(tSettlementConfirm.getNewMoney());
+ newSettlement = newSettlement.add(tSettlementConfirm.getNewSettlement());
+ supplyElectronic = supplyElectronic.add(tSettlementConfirm.getSupplyElectronic());
+ proportionPartner = proportionPartner.add(tSettlementConfirm.getProportionPartner());
+ proportionMoney = proportionMoney.add(tSettlementConfirm.getProportionMoney());
+ totalElectronic = totalElectronic.add(tSettlementConfirm.getTotalElectronic());
+ totalService = totalService.add(tSettlementConfirm.getTotalService());
+ servicePartner = servicePartner.add(tSettlementConfirm.getServicePartner());
+ serviceMoney = serviceMoney.add(tSettlementConfirm.getServiceMoney());
+ sharingAmount = sharingAmount.add(tSettlementConfirm.getSharingAmount());
+ commissionAmount = commissionAmount.add(tSettlementConfirm.getCommissionAmount());
+ electrovalence = electrovalence.add(tSettlementConfirm.getElectrovalence());
+ serviceCharge = serviceCharge.add(tSettlementConfirm.getServiceCharge());
+ orderCommission = orderCommission.add(tSettlementConfirm.getOrderCommission());
+ vipDiscount = vipDiscount.add(tSettlementConfirm.getVipDiscount());
+ couponDiscount = couponDiscount.add(tSettlementConfirm.getCouponDiscount());
+
+ // 查询结算确认单开始时间和结束时间的单子
+ QueryWrapper<TChargingOrder> eq = new QueryWrapper<TChargingOrder>()
+ .eq("site_id", tSettlementConfirm.getSiteId())
+ .eq("recharge_payment_status",2);
+ switch (tSettlementConfirm.getType()){
+ case 1:
+ eq.between("start_time", tSettlementConfirm.getStartTime(), tSettlementConfirm.getEndTime());
+ break;
+ case 2:
+ eq.between("end_time", tSettlementConfirm.getStartTime(), tSettlementConfirm.getEndTime());
+ break;
+ }
+ List<TChargingOrder> tChargingOrders = this.baseMapper.selectList(eq);
+ Map<String,TChargingOrder> map = new HashMap<>();
+ StringBuilder stringBuilder = new StringBuilder();
+ for (TChargingOrder tChargingOrder : tChargingOrders) {
+ stringBuilder.append(tChargingOrder.getCode()).append(",");
+
+ }
+ // 充电总时长
+
+ Long temp = 1L;
+ if (StringUtils.hasLength(stringBuilder.toString())){
+ String substring = stringBuilder.substring(0, stringBuilder.length() - 1);
+ for (String s : substring.split(",")) {
+ UploadRealTimeMonitoringData data6 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(s).getData();
+ if (data6!=null){
+ temp+=(data6.getCumulative_charging_time()*60);
+
+ }
+
+ }
+ }
+ List<TChargingPile> data = siteClient.getPileListBySiteId(tSettlementConfirm.getSiteId()).getData();
+ // 计算充电桩的功率平均值
+ BigDecimal bigDecimal = new BigDecimal("0");
+ for (TChargingPile datum : data) {
+ bigDecimal = bigDecimal.add(datum.getRatedPower());
+ }
+
+
+ tSettlementConfirm.setIncome(tSettlementConfirm.getElectrovalence().add(tSettlementConfirm.getServiceCharge()));
+ //利用率=充电量/(桩数量*功率*时间)
+ List<TChargingPile> data2 = chargingPileClient.getChargingPileBySiteId(tSettlementConfirm.getSiteId()).getData();
+ BigDecimal bigDecimal2 = new BigDecimal("0");
+
+ if (data2!=null && (!data2.isEmpty())){
+ for (TChargingPile tChargingPile : data2) {
+ bigDecimal2 = bigDecimal2.add(tChargingPile.getRatedPower());
+ }
+ BigDecimal bigDecimal1 = new BigDecimal(data2.size()+"");
+ // 平均功率
+ BigDecimal divide = bigDecimal2.divide(bigDecimal1, 2, RoundingMode.HALF_DOWN);
+ // 充电量
+ BigDecimal chargingElectronic1 = tSettlementConfirm.getChargingElectronic();
+ // 桩数量
+ BigDecimal bigDecimal3 = new BigDecimal(data2.size());
+ BigDecimal multiply = chargingElectronic1.multiply(new BigDecimal("24"));
+ BigDecimal multiply1 = bigDecimal3.multiply(divide).multiply(new BigDecimal(temp));
+ tSettlementConfirm.setRate(chargingElectronic1.divide(multiply1,2,RoundingMode.HALF_DOWN)+"");
+ }else{
+ tSettlementConfirm.setRate("");
+ }
+
+
+ for (TSettlementConfirm settlementConfirm : list2) {
+ int value = parse.getMonth().getValue();
+ settlementConfirm.setMonth(value);
+ settlementConfirm.setIncome(settlementConfirm.getElectrovalence().add(settlementConfirm.getServiceCharge()));
+ tSettlementConfirm.setMetering(tSettlementConfirm.getSupplyElectronic());
+ if (tSettlementConfirm.getSiteId().equals(settlementConfirm.getSiteId())){
+ // 电站相同比较收入涨幅跌幅
+ if (tSettlementConfirm.getIncome().compareTo(BigDecimal.ZERO)>0){
+ BigDecimal subtract = tSettlementConfirm.getIncome().subtract(settlementConfirm.getIncome()).divide(tSettlementConfirm.getIncome(),2, RoundingMode.HALF_DOWN).multiply(new BigDecimal("100"));
+ tSettlementConfirm.setIncomePercentage(subtract+"%");
+ }else {
+ tSettlementConfirm.setIncomePercentage("100"+"%");
+
+ }
+
+ // 比较总利润 收入合计-成本合计
+ BigDecimal subtract1 = tSettlementConfirm.getIncome().subtract(tSettlementConfirm.getCost());
+ BigDecimal subtract2 = settlementConfirm.getIncome().subtract(settlementConfirm.getCost());
+ BigDecimal bigDecimal1 = subtract1.subtract(subtract2)
+ .divide(subtract2, 2, RoundingMode.HALF_DOWN)
+ .multiply(new BigDecimal("100"))
+ .setScale(2, RoundingMode.HALF_DOWN);
+ tSettlementConfirm.setTotalPercentage(bigDecimal1+"%"); }
+ beforeCost = beforeCost.add(settlementConfirm.getCost());
+ beforeIncome = beforeIncome.add(settlementConfirm.getIncome());
+ }
+ i++;
+ }
+ TSettlementConfirm tSettlementConfirm = new TSettlementConfirm();
+ tSettlementConfirm.setMonth(parse.getMonthValue());
+ tSettlementConfirm.setMeteringElectronic(meteringElectronic);
+ tSettlementConfirm.setChargingElectronic(chargingElectronic);
+ tSettlementConfirm.setLossElectronic(lossElectronic);
+ tSettlementConfirm.setIncome(income);
+ tSettlementConfirm.setVenue(venue);
+ tSettlementConfirm.setMetering(metering);
+ tSettlementConfirm.setClean(clean);
+ tSettlementConfirm.setMaintain(maintain);
+ tSettlementConfirm.setCost(cost);
+ tSettlementConfirm.setProfitMoney(profitMoney);
+ tSettlementConfirm.setNewMoney(newMoney);
+ tSettlementConfirm.setNewSettlement(newSettlement);
+ tSettlementConfirm.setSupplyElectronic(supplyElectronic);
+ tSettlementConfirm.setProportionPartner(proportionPartner);
+ tSettlementConfirm.setProportionMoney(proportionMoney);
+ tSettlementConfirm.setTotalElectronic(totalElectronic);
+ tSettlementConfirm.setTotalService(totalService);
+ tSettlementConfirm.setServicePartner(servicePartner);
+ tSettlementConfirm.setServiceMoney(serviceMoney);
+ tSettlementConfirm.setSharingAmount(sharingAmount);
+ tSettlementConfirm.setCommissionAmount(commissionAmount);
+ tSettlementConfirm.setElectrovalence(electrovalence);
+ tSettlementConfirm.setServiceCharge(serviceCharge);
+ tSettlementConfirm.setOrderCommission(orderCommission);
+ tSettlementConfirm.setVipDiscount(vipDiscount);
+ tSettlementConfirm.setCouponDiscount(couponDiscount);
+ // 本月
+ if (beforeIncome.compareTo(new BigDecimal("0")) == 0){
+ tSettlementConfirm.setIncomePercentage(0+"%");
+ tSettlementConfirm.setIncomePercentage(0+"%");
+ }else{
+ BigDecimal subtract = income.subtract(beforeIncome).divide(beforeIncome,2,RoundingMode.HALF_DOWN).multiply(new BigDecimal("100"));
+ tSettlementConfirm.setIncomePercentage(subtract+"%");
+ tSettlementConfirm.setIncomePercentage(subtract+"%");
+
+ }
+ // 比较总利润 收入合计-成本合计
+ BigDecimal subtract1 = income.subtract(cost);
+ BigDecimal subtract2 = beforeIncome.subtract(beforeCost);
+ if (subtract2.compareTo(new BigDecimal("0")) == 0){
+ tSettlementConfirm.setTotalPercentage(0+"%");
+ }else{
+ tSettlementConfirm.setTotalPercentage(subtract1.subtract(subtract2).divide(subtract2,2, RoundingMode.HALF_DOWN).setScale(2, RoundingMode.HALF_DOWN).multiply(new BigDecimal("100"))+"%");
+ }
+ tSettlementConfirm.setElectronicRefund(0);
+ // 查询上次汇报数据 进行比对涨幅跌幅
+ total.add(tSettlementConfirm);
+ res.setList1(list1);
+ res.setList2(total);
+ return res;
+ }
+ @Override
+ public SettlementTotalVO settlementTotalR(String time,Long userId) {
+ //如果没传siteId,获取当前登陆人所有的siteIds
+ List<Integer> siteIds = new ArrayList<>();
+ if (userId != null){
+ List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData();
+ for (GetSiteListDTO datum : data) {
+ siteIds.add(datum.getId());
+ }
+ }
+ SettlementTotalVO res = new SettlementTotalVO();
+ List<TSettlementConfirm> list1 = tSettlementConfirmMapper.settlementTotal(time,siteIds);
+ LocalDateTime parse = LocalDateTime.parse(time, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+ // 减少一个月
+ LocalDateTime minus = parse.minusMonths(1);
+ List<TSettlementConfirm> list2 = tSettlementConfirmMapper.settlementTotal(time,siteIds);
// 合计
List<TSettlementConfirm> total = new ArrayList<>();
diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingBillMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingBillMapper.xml
index da1b20f..f142f6d 100644
--- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingBillMapper.xml
+++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingBillMapper.xml
@@ -18,6 +18,12 @@
<if test="req.uid != null and req.uid!=''">
and t1.id = #{req.uid}
</if>
+ <if test="null != req.siteIds and req.siteIds.size()>0" >
+ and t1.site_id in
+ <foreach collection="req.siteIds" item="item" index="index" separator="," open="(" close=")">
+ #{item}
+ </foreach>
+ </if>
and t1.billType = 1
and t1.del_flag = 0
order by t1.create_time desc
@@ -37,6 +43,12 @@
<if test="req.uid != null and req.uid!=''">
and t1.id = #{req.uid}
</if>
+ <if test="null != req.siteIds and req.siteIds.size()>0" >
+ and t1.site_id in
+ <foreach collection="req.siteIds" item="item" index="index" separator="," open="(" close=")">
+ #{item}
+ </foreach>
+ </if>
and t1.billType = 2
and t1.del_flag = 0
</select>
diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
index bda3e7a..42e6376 100644
--- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
+++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
@@ -86,6 +86,12 @@
#{item}
</foreach>
</if>
+ <if test="null != req.siteIds and req.siteIds.size()>0" >
+ and t1.site_id in
+ <foreach collection="req.siteIds" item="item" index="index" separator="," open="(" close=")">
+ #{item}
+ </foreach>
+ </if>
<if test="req.orderType != null ">
and t1.order_type = #{req.orderType}
</if>
@@ -867,6 +873,12 @@
#{item}
</foreach>
</if>
+ <if test="null != req.siteIds and req.siteIds.size()>0" >
+ and t1.site_id in
+ <foreach collection="req.siteIds" item="item" index="index" separator="," open="(" close=")">
+ #{item}
+ </foreach>
+ </if>
<if test="req.orderType != null ">
and t1.order_type = #{req.orderType}
</if>
diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TSettlementConfirmMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TSettlementConfirmMapper.xml
index f7ed17b..f90db9e 100644
--- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TSettlementConfirmMapper.xml
+++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TSettlementConfirmMapper.xml
@@ -5,6 +5,12 @@
select t1.* from
t_settlement_confirm t1
where 1=1
+ <if test="null != siteIds and siteIds.size()>0" >
+ and t1.site_id in
+ <foreach collection="siteIds" item="item" index="index" separator="," open="(" close=")">
+ #{item}
+ </foreach>
+ </if>
<if test="time != null and time!='' ">
AND DATE_FORMAT(t1.start_time, '%Y-%m') = DATE_FORMAT(#{time}, '%Y-%m')
</if>
@@ -19,6 +25,12 @@
<if test="req.siteIds != null ">
and t1.site_id = #{req.siteIds}
</if>
+ <if test="null != req.siteIdss and req.siteIdss.size()>0" >
+ and t1.site_id in
+ <foreach collection="req.siteIdss" item="item" index="index" separator="," open="(" close=")">
+ #{item}
+ </foreach>
+ </if>
<if test="req.type == 1 ">
<if test="req.startTime != null and req.startTime!=''">
and (t1.start_time between #{req.startTime} and #{req.endTime})
--
Gitblit v1.7.1