From a1b951afba304affbeee6f8ee6835f0927bbfb68 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期六, 02 十一月 2024 13:59:27 +0800
Subject: [PATCH] 合并代码
---
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 154 ++++++++++++++++++++++++++++++--------------------
1 files changed, 92 insertions(+), 62 deletions(-)
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 7619236..0a7328e 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
@@ -187,6 +187,9 @@
@Resource
private SecurityDetectionClient securityDetectionClient;
+
+ @Resource
+ private BmsDemandAndChargerExportationClient bmsDemandAndChargerExportationClient;
//计数器
private Map<String, Integer> counter_map = new HashMap<>();
@@ -281,9 +284,18 @@
if(null != dataList){
//在MongoDB中获取数据
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
- List<String> time = dataList.stream().map(s -> sdf.format(s.getCreate_time())).collect(Collectors.toList());
- List<BigDecimal> outputVoltage = dataList.stream().map(UploadRealTimeMonitoringData::getOutput_voltage).collect(Collectors.toList());
- List<BigDecimal> outputCurrent = dataList.stream().map(UploadRealTimeMonitoringData::getOutput_current).collect(Collectors.toList());
+ List<UploadRealTimeMonitoringData> dataLists = new ArrayList<>();
+ String t = "";
+ for (UploadRealTimeMonitoringData uploadRealTimeMonitoringData : dataList) {
+ if(!sdf.format(uploadRealTimeMonitoringData.getCreate_time()).equals(t)){
+ dataLists.add(uploadRealTimeMonitoringData);
+ t = sdf.format(uploadRealTimeMonitoringData.getCreate_time());
+ }
+ }
+
+ List<String> time = dataLists.stream().map(s -> sdf.format(s.getCreate_time())).collect(Collectors.toList());
+ List<BigDecimal> outputVoltage = dataLists.stream().map(UploadRealTimeMonitoringData::getOutput_voltage).collect(Collectors.toList());
+ List<BigDecimal> outputCurrent = dataLists.stream().map(UploadRealTimeMonitoringData::getOutput_current).collect(Collectors.toList());
List<Map<String, Object>> currentAndVoltage = new ArrayList<>();
for (int i = 0; i < time.size(); i++) {
Map<String, Object> map = new HashMap<>();
@@ -296,8 +308,8 @@
}
myChargingOrderInfo.setCurrentAndVoltage(currentAndVoltage);
//在MongoDB中获取数据
- List<Integer> soc = dataList.stream().map(UploadRealTimeMonitoringData::getSoc).collect(Collectors.toList());
- List<BigDecimal> po = dataList.stream().map(s -> s.getOutput_current().multiply(s.getOutput_voltage()).divide(new BigDecimal(1000),2, RoundingMode.HALF_DOWN)).collect(Collectors.toList());
+ List<Integer> soc = dataLists.stream().map(UploadRealTimeMonitoringData::getSoc).collect(Collectors.toList());
+ List<BigDecimal> po = dataLists.stream().map(s -> s.getOutput_current().multiply(s.getOutput_voltage()).divide(new BigDecimal(1000),2, RoundingMode.HALF_DOWN)).collect(Collectors.toList());
List<Map<String, Object>> power = new ArrayList<>();
for (int i = 0; i < time.size(); i++) {
Map<String, Object> map = new HashMap<>();
@@ -1103,12 +1115,12 @@
String code = Double.valueOf(Math.random() * 1000).intValue() + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS"));
appUserIntegralChange.setCode(code);
appUserIntegralChange.setAppUserId(appUser1.getId());
- appUserIntegralChange.setChangeType(5);
+ appUserIntegralChange.setChangeType(4);
appUserIntegralChange.setHistoricalIntegral(appUser1.getPoints());
appUserIntegralChange.setCurrentIntegral(appUser1.getPoints() + num1);
appUserIntegralChange.setCreateTime(LocalDateTime.now());
appUserIntegralChange.setOrderCode(chargingOrder.getCode());
- appUserIntegralChange.setExtension(chargingOrder.getId().toString());
+ appUserIntegralChange.setExtension(appUser.getId().toString());
appUserIntegralChangeClient.addAppUserIntegralChange(appUserIntegralChange);
appUser1.setPoints(appUser1.getPoints() + num1);
@@ -1206,8 +1218,8 @@
BigDecimal electronicMoney = new BigDecimal("0");
BigDecimal serviceMoney = new BigDecimal("0");
for (ChargingOrderVO chargingOrderVO : list) {
- chargingOrderVO.setCommissionAmount(chargingOrderVO.getServiceCharge().multiply(new BigDecimal("0.006")));
- chargingOrderVO.setPlatFormMoney(chargingOrderVO.getServiceCharge().multiply(new BigDecimal("0.006")));
+ chargingOrderVO.setCommissionAmount(chargingOrderVO.getOrderAmount().multiply(new BigDecimal("0.006")));
+ chargingOrderVO.setPlatFormMoney(chargingOrderVO.getOrderAmount().multiply(new BigDecimal("0.006")));
chargingOrderVO.setUid(chargingOrderVO.getId()+"");
TChargingGun data3 = chargingGunClient.getChargingGunById(chargingOrderVO.getChargingGunId()).getData();
TChargingPile data2 = chargingPileClient.getChargingPileById(chargingOrderVO.getChargingPileId()).getData();
@@ -1399,12 +1411,11 @@
List<ChargingOrderListVO> list = this.baseMapper.chargingList(pageInfo,dto,startTime1,startTime2,endTime1,endTime2);
for (ChargingOrderListVO chargingOrderListVO : list) {
chargingOrderListVO.setChargingCapacity(chargingOrderListVO.getElectricity());
- chargingOrderListVO.setPaymentAmount(chargingOrderListVO.getPaymentAmount());
BigDecimal bigDecimal = new BigDecimal("0.006");
if (chargingOrderListVO.getOrderAmount()!=null){
- chargingOrderListVO.setCommissionAmount(chargingOrderListVO.getOrderAmount().multiply(bigDecimal));
+ chargingOrderListVO.setCommissionAmount(chargingOrderListVO.getPaymentAmount().multiply(bigDecimal));
}
- chargingOrderListVO.setPaymentAmount(chargingOrderListVO.getResidualAmount()==null?chargingOrderListVO.getPaymentAmount():chargingOrderListVO.getPaymentAmount());
+ chargingOrderListVO.setPaymentAmount(chargingOrderListVO.getPaymentAmount());
chargingOrderListVO.setUid(chargingOrderListVO.getId()+"");
List<Integer> integers = new ArrayList<>();
integers.add(chargingOrderListVO.getSiteId());
@@ -1423,17 +1434,27 @@
UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrderListVO.getCode()).getData();
if (data5!=null){
if (data5.getTime_remaining()!=null){
- chargingOrderListVO.setChargingSecond(data5.getTime_remaining()*60L);
+ chargingOrderListVO.setChargingSecond(data5.getCumulative_charging_time()*60L);
}
}
// 获取开始SOC 结束soc
if (chargingOrderListVO.getCode()!=null){
List<UploadRealTimeMonitoringData> data6 = uploadRealTimeMonitoringDataClient.getDataByOrderCode(chargingOrderListVO.getCode()).getData();
+
if (data6!=null && !data6.isEmpty()){
- // 第一条数据soc为开始 最后一条数据soc为结束soc
- chargingOrderListVO.setStartSoc(data6.get(0).getSoc().toString());
- chargingOrderListVO.setEndSoc(data6.get(data6.size()-1).getSoc().toString());
+ int min = 100;
+ int max = 0;
+ for (UploadRealTimeMonitoringData uploadRealTimeMonitoringData : data6) {
+ if (uploadRealTimeMonitoringData.getSoc()>max){
+ max = uploadRealTimeMonitoringData.getSoc();
+ }
+ if (uploadRealTimeMonitoringData.getSoc()!=0 &&uploadRealTimeMonitoringData.getSoc()<min){
+ min = uploadRealTimeMonitoringData.getSoc();
+ }
+ }
+ chargingOrderListVO.setEndSoc(max+"");
+ chargingOrderListVO.setStartSoc(min+"");
}
}
@@ -1613,9 +1634,7 @@
@Override
public ChargingOrderListInfoVO chargingInfo(String uid) {
TChargingOrder chargingOrder= this.getById(uid);
-
ChargingOrderListInfoVO chargingOrderListInfoVO = new ChargingOrderListInfoVO();
-
chargingOrderListInfoVO.setStatus(chargingOrder.getStatus());
BigDecimal bigDecimal = new BigDecimal("0.006");
if (chargingOrder.getOrderAmount()!=null){
@@ -1664,24 +1683,32 @@
if (uploadRealTimeMonitoringData.getOutput_current()!=null&&
uploadRealTimeMonitoringData.getOutput_voltage()!=null){
uploadRealTimeMonitoringData.setPower(uploadRealTimeMonitoringData.getOutput_voltage()
- .multiply(uploadRealTimeMonitoringData.getOutput_current()));
+ .multiply(uploadRealTimeMonitoringData.getOutput_current()).divide(new BigDecimal(1000),2, BigDecimal.ROUND_HALF_UP));
}
}
if (!data6.isEmpty()){
// 第一条数据soc为开始 最后一条数据soc为结束soc
- chargingOrderListInfoVO.setStartSoc(data6.get(0).getSoc().toString());
- chargingOrderListInfoVO.setEndSoc(data6.get(data6.size()-1).getSoc().toString());
+ chargingOrderListInfoVO.setStartSoc(data6.get(data6.size()-1).getSoc().toString());
+ chargingOrderListInfoVO.setEndSoc(data6.get(0).getSoc().toString());
chargingOrderListInfoVO.setChargingCapacity(data6.get(data6.size()-1).getCharging_degree());
- chargingOrderListInfoVO.setChargingSecond(data6.get(data6.size()-1).getCumulative_charging_time()*60+"");
+
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
for (UploadRealTimeMonitoringData uploadRealTimeMonitoringData : data6) {
uploadRealTimeMonitoringData.setCreateTime(simpleDateFormat.format(uploadRealTimeMonitoringData.getCreate_time()));
}
}
}
+
chargingOrderListInfoVO.setList(data6);
}
+ // 获取充电时间
+ UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrder.getCode()).getData();
+ if (data5!=null){
+ if (data5.getTime_remaining()!=null){
+ chargingOrderListInfoVO.setChargingSecond(data5.getCumulative_charging_time()*60L+"");
+ }
+ }
if (chargingOrder.getAppUserCarId()!=null){
List<TAppUserCar> data3 = appUserCarClient.getCarByIds(Collections.singletonList(chargingOrder.getAppUserCarId())).getData();
@@ -1734,6 +1761,10 @@
chargingOrder.setChargingCapacity(query.getCharging_degree());
chargingOrder.setElectricity(query.getCharging_degree());
chargingOrder.setTotalElectricity(new BigDecimal(100 - query.getSoc()));
+ BmsDemandAndChargerExportation data = bmsDemandAndChargerExportationClient.getBmsDemandAndChargerExportation(chargingOrder.getCode()).getData();
+ if(null != data){
+ chargingOrder.setNeedElec(data.getBms_current_requirements());
+ }
this.updateById(chargingOrder);
}
}
@@ -1786,7 +1817,7 @@
//获取订单的计费策略
List<AccountingStrategyDetailOrder> accountingStrategyDetailOrderList = accountingStrategyDetailOrderClient.getAllAccountingStrategyDetailOrder(chargingOrder.getId()).getData();
-
+ accountingStrategyDetailOrderList.get(accountingStrategyDetailOrderList.size() - 1).setEndTime("23:59");
//开始处理计费明细数据和优惠数据
chargingOrderAccountingStrategyService.remove(new LambdaQueryWrapper<TChargingOrderAccountingStrategy>().eq(TChargingOrderAccountingStrategy::getChargingOrderId, chargingOrder.getId()));
SimpleDateFormat sdfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -1899,16 +1930,16 @@
serviceCharge = serviceCharge.multiply(chargingOrder.getVipDiscount()).setScale(2, RoundingMode.DOWN);
}
chargingOrderAccountingStrategy.setChargingCapacity(sharp_peak_charge);
- chargingOrderAccountingStrategy.setPeriodElectricPrice(electrovalenc);
- chargingOrderAccountingStrategy.setPeriodServicePrice(serviceCharge);
- chargingOrderAccountingStrategy.setPeriodOriginalServicePrice(originalServicePrice);
- chargingOrderAccountingStrategy.setVipDiscountAmount(vipDiscountAmount);
+ chargingOrderAccountingStrategy.setPeriodElectricPrice(electrovalenc.setScale(2, RoundingMode.DOWN));
+ chargingOrderAccountingStrategy.setPeriodServicePrice(serviceCharge.setScale(2, RoundingMode.DOWN));
+ chargingOrderAccountingStrategy.setPeriodOriginalServicePrice(originalServicePrice.setScale(2, RoundingMode.DOWN));
+ chargingOrderAccountingStrategy.setVipDiscountAmount(vipDiscountAmount.setScale(2, RoundingMode.DOWN));
chargingOrderAccountingStrategy.setCreateTime(LocalDateTime.now());
chargingOrderAccountingStrategyService.save(chargingOrderAccountingStrategy);
- periodElectricPrice_total = periodElectricPrice_total.add(electrovalenc);
- periodServicePrice_total = periodServicePrice_total.add(originalServicePrice);
- total = total.add(electrovalenc.add(originalServicePrice));
+ periodElectricPrice_total = periodElectricPrice_total.add(electrovalenc.setScale(2, RoundingMode.DOWN));
+ periodServicePrice_total = periodServicePrice_total.add(originalServicePrice.setScale(2, RoundingMode.DOWN));
+ total = total.add(electrovalenc.add(originalServicePrice.setScale(2, RoundingMode.DOWN)));
}
@@ -1958,13 +1989,13 @@
if(null == chargingOrder.getEndMode()){
order.setEndMode(1);
}
- order.setResidualAmount(rechargeAmount.subtract(total));
+ order.setResidualAmount(rechargeAmount.subtract(total).setScale(2, RoundingMode.DOWN));
order.setStartTime(LocalDateTime.parse(vo.getStart_time(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SS")));
order.setEndTime(LocalDateTime.parse(vo.getEnd_time(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SS")));
order.setStatus(5);
- order.setOrderAmount(orderAmount);
- order.setVipDiscountAmount(discountAmount);
- order.setElectrovalence(periodElectricPrice_total);
+ order.setOrderAmount(orderAmount.setScale(2, RoundingMode.DOWN));
+ order.setVipDiscountAmount(discountAmount.setScale(2, RoundingMode.DOWN));
+ order.setElectrovalence(periodElectricPrice_total.setScale(2, RoundingMode.DOWN));
order.setChargingCapacity(vo.getTotal_electricity());
order.setElectricity(vo.getTotal_electricity());
@@ -2029,9 +2060,9 @@
}
}
- order.setServiceCharge(periodServicePrice_total);
- order.setPaymentAmount(payAmount);
- order.setRefundAmount(refundAmount);
+ order.setServiceCharge(periodServicePrice_total.setScale(2, RoundingMode.DOWN));
+ order.setPaymentAmount(payAmount.setScale(2, RoundingMode.DOWN));
+ order.setRefundAmount(refundAmount.setScale(2, RoundingMode.DOWN));
order.setRefundStatus(1);
this.updateById(order);
chargingOrder = this.getById(order.getId());
@@ -2045,8 +2076,8 @@
BigDecimal periodServicePrice = chargingOrderAccountingStrategy.getPeriodServicePrice();
BigDecimal multiply = couponDiscountAmount.multiply(periodServicePrice.divide(reduce, new MathContext(4, RoundingMode.HALF_EVEN)));
periodServicePrice = periodServicePrice.subtract(multiply);
- chargingOrderAccountingStrategy.setPeriodServicePrice(periodServicePrice);
- chargingOrderAccountingStrategy.setCouponDiscountAmount(multiply);
+ chargingOrderAccountingStrategy.setPeriodServicePrice(periodServicePrice.setScale(2, RoundingMode.DOWN));
+ chargingOrderAccountingStrategy.setCouponDiscountAmount(multiply.setScale(2, RoundingMode.DOWN));
}
chargingOrderAccountingStrategyService.updateBatchById(list);
}
@@ -2063,7 +2094,7 @@
if(null != integralRule){
TAppUser appUser = appUserClient.getUserById(chargingOrder.getAppUserId()).getData();
Integer num1 = JSON.parseObject(integralRule.getChargeCredit()).getInteger("num1");
- Integer integral = payAmount.multiply(new BigDecimal(num1)).intValue();
+ Integer integral = chargingOrder.getServiceCharge().intValue() * num1;
if(null != appUser.getVipId()){
TVip vip = vipClient.getInfo1(appUser.getVipId()).getData();
Integer doubleIntegration = vip.getDoubleIntegration();
@@ -2242,7 +2273,7 @@
if (tChargingOrder.getPaymentAmount().compareTo(payOrderQueryDto.getRefundAmount())==-1){
return R.fail("退款金额需小于支付金额");
}
- if ((tChargingOrder.getRechargeAmount().subtract(payOrderQueryDto.getRefundAmount()).compareTo(tChargingOrder.getPaymentAmount()))==0){
+ if ((tChargingOrder.getRechargeAmount().subtract(tChargingOrder.getRefundAmount()).compareTo(payOrderQueryDto.getRefundAmount()))==0){
tChargingOrder.setStatus(5);
}
@@ -2311,7 +2342,7 @@
if (tChargingOrder.getPaymentAmount().compareTo(payOrderQueryDto.getRefundAmount())==-1){
return R.fail("退款金额需小于支付金额");
}
- if ((tChargingOrder.getPaymentAmount().subtract(payOrderQueryDto.getRefundAmount()).compareTo(tChargingOrder.getPaymentAmount()))==0){
+ if ((tChargingOrder.getPaymentAmount().subtract(tChargingOrder.getRefundAmount()).compareTo(payOrderQueryDto.getRefundAmount()))==0){
tChargingOrder.setStatus(5);
}
@@ -2551,14 +2582,10 @@
if (tChargingOrder.getCouponDiscountAmount()!=null){
couponDiscount = couponDiscount.add(tChargingOrder.getCouponDiscountAmount());
}
- if (tChargingOrder.getRefundStatus()!=null &&tChargingOrder.getRefundStatus() == 2){
- // 如果成功退款 那么减去退款金额
+ if (tChargingOrder.getPaymentAmount()!=null){
paymentAmount = paymentAmount.add(tChargingOrder.getOrderAmount());
- }else{
- if (tChargingOrder.getPaymentAmount()!=null){
- paymentAmount = paymentAmount.add(tChargingOrder.getOrderAmount());
- }
}
+
}
// 三方交易手续费 三方收费*0.6%
commissionAmount = sharingAmount.multiply(new BigDecimal("0.006"));
@@ -2567,7 +2594,7 @@
tSettlementConfirm.setSharingAmount(sharingAmount.setScale(2, RoundingMode.HALF_DOWN));
tSettlementConfirm.setCommissionAmount(commissionAmount.setScale(2, RoundingMode.HALF_DOWN));
tSettlementConfirm.setElectrovalence(electrovalence.setScale(2, RoundingMode.HALF_DOWN));
- tSettlementConfirm.setServiceCharge(serviceCharge.setScale(2, RoundingMode.HALF_DOWN));
+ tSettlementConfirm.setServiceCharge(serviceCharge.subtract(commissionAmount).setScale(2, RoundingMode.HALF_DOWN));
tSettlementConfirm.setOrderCommission(orderCommission);
tSettlementConfirm.setVipDiscount(vipDiscount);
tSettlementConfirm.setCouponDiscount(couponDiscount);
@@ -2607,8 +2634,10 @@
tSettlementConfirm.setServiceRemark(dto.getServiceRemark());
tSettlementConfirm.setDistribution(dto.getDistribution());
tSettlementConfirm.setIncome(dto.getElectrovalence().add(dto.getServiceCharge()));
- tSettlementConfirm.setCost(dto.getVenue().add(dto.getClean()).add(dto.getMaintain()).add(dto.getMetering()));
- tSettlementConfirm.setProfitMoney(chargingElectronic.add(serviceCharge).subtract(tSettlementConfirm.getCost()));
+ tSettlementConfirm.setCost(dto.getVenue().add(dto.getClean()).add(dto.getMaintain()).add(dto.getSupplyElectronic()));
+ BigDecimal divide1 = tSettlementConfirm.getProportionMoney().divide(tSettlementConfirm.getProportionPartner(), 2, RoundingMode.HALF_DOWN);
+ tSettlementConfirm.setProfitMoney(tSettlementConfirm.getServiceCharge().multiply(tSettlementConfirm.getServicePartner())
+ .subtract(divide1));
tSettlementConfirm.setNewSettlement(subtract2.subtract(tSettlementConfirm.getCost()));
tSettlementConfirmMapper.insert(tSettlementConfirm);
@@ -2618,18 +2647,22 @@
@Override
public PageInfo<TSettlementConfirm> settlementList(SettlementListQuery dto) {
+ String startTime = null;
+ String endTime = null;
if (StringUtils.hasLength(dto.getStartTime())){
dto.setType(1);
String[] split = dto.getStartTime().split(" - ");
- dto.setStartTime(split[0]);
- dto.setEndTime(split[1]);
+ startTime = split[0];
+ endTime = split[1];
}
if (StringUtils.hasLength(dto.getEndTime())){
dto.setType(2);
- String[] split = dto.getStartTime().split(" - ");
- dto.setStartTime(split[0]);
- dto.setEndTime(split[1]);
+ String[] split = dto.getEndTime().split(" - ");
+ startTime = split[0];
+ endTime = split[1];
}
+ dto.setStartTime(startTime);
+ dto.setEndTime(endTime);
PageInfo<TSettlementConfirm> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize());
List<TSettlementConfirm> list = tSettlementConfirmMapper.settlementList(pageInfo,dto);
for (TSettlementConfirm tSettlementConfirm : list) {
@@ -2881,8 +2914,8 @@
}
@Override
- public List<Map<String, Object>> countBySource(List<Integer> siteIds) {
- return this.baseMapper.countBySource(siteIds);
+ public List<Map<String, Object>> countBySource(List<Integer> siteIds, ChargingStatisticsQueryDto statisticsQueryDto) {
+ return this.baseMapper.countBySource(siteIds,statisticsQueryDto);
}
@Override
@@ -3001,11 +3034,8 @@
if(null != order.getAppUserId()){
queryWrapper.eq(TChargingOrder::getAppUserId, order.getAppUserId());
}
- if(null != order.getAppUserId()){
- queryWrapper.eq(TChargingOrder::getAppUserId, order.getAppUserId());
- }
if(null != order.getStatusList()){
- queryWrapper.in(TChargingOrder::getAppUserId, order.getStatusList());
+ queryWrapper.in(TChargingOrder::getStatus, order.getStatusList());
}
if(null != order.getEndMode()){
queryWrapper.eq(TChargingOrder::getEndMode, order.getEndMode());
--
Gitblit v1.7.1