From 592c8eb4d1fb5b9592f98ef7dea452adf06ccc4b Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期一, 10 三月 2025 11:22:59 +0800 Subject: [PATCH] 引流平台 --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 183 ++++++++++++++++++++++++++++++--------------- 1 files changed, 121 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 fc64e04..e50aeb3 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 @@ -1244,7 +1244,6 @@ List<TChargingPile> allPile = chargingGunClient.getAllPile().getData(); List<Site> data9 = siteClient.getSiteAll().getData(); List<TAppUser> data6 = appUserClient.getAllUser().getData(); - List<Partner> data7 = siteClient.getAllPartner().getData(); List<TAppUserCar> data4 = appUserCarClient.getAllCar().getData(); String startTime1 = null; String startTime2 = null; @@ -1311,14 +1310,12 @@ List<ChargingOrderVO> list1 = this.baseMapper.chargingOrder(pageInfo1,dto,startTime1,startTime2,endTime1,endTime2); BigDecimal total = new BigDecimal("0"); long time = 0L; - BigDecimal income = new BigDecimal("0"); BigDecimal electronicMoney = new BigDecimal("0"); BigDecimal serviceMoney = new BigDecimal("0"); BigDecimal commissionMoney = new BigDecimal("0"); BigDecimal refundMoney = new BigDecimal("0"); BigDecimal paymentMoney = new BigDecimal("0"); - List<String> collect2 = list.stream().map(TChargingOrder::getCode).collect(Collectors.toList()); - List<TChargingOrderAccountingStrategy> list3 = chargingOrderAccountingStrategyService.list(new QueryWrapper<TChargingOrderAccountingStrategy>()); + List<TChargingOrderAccountingStrategy> list3 = chargingOrderAccountingStrategyService.list(); for (ChargingOrderVO chargingOrderVO : list) { if (roleType == 2){ @@ -1327,8 +1324,8 @@ List<Boolean> t1= partnerClient.getChargingOrderMenu(sysUser.getObjectId(),siteId).getData(); chargingOrderVO.setAuthRecord(t1.get(0)); } - } + chargingOrderVO.setSharingAmount(chargingOrderVO.getServiceCharge()!=null?chargingOrderVO.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2,BigDecimal.ROUND_DOWN):new BigDecimal("0")); chargingOrderVO.setCommissionAmount(chargingOrderVO.getRechargeAmount()!=null?chargingOrderVO.getRechargeAmount().multiply(new BigDecimal("0.006")):new BigDecimal("0")); chargingOrderVO.setPlatFormMoney(chargingOrderVO.getRechargeAmount()!=null?chargingOrderVO.getRechargeAmount().multiply(new BigDecimal("0.006")).setScale(2,BigDecimal.ROUND_DOWN):new BigDecimal("0")); chargingOrderVO.setUid(chargingOrderVO.getId()+""); @@ -1376,14 +1373,16 @@ } - List<Long> orderIds = list1.stream().map(TChargingOrder::getId).collect(Collectors.toList()); - if(orderIds.isEmpty())orderIds.add(-1L); List<TChargingOrderRefund> chargingOrderRefunds = chargingOrderRefundService.lambdaQuery() - .in(TChargingOrderRefund::getChargingOrderId, orderIds) .eq(TChargingOrderRefund::getRefundStatus,2).list(); for (ChargingOrderVO chargingOrderVO : list1) { - paymentMoney= paymentMoney.add(chargingOrderVO.getPaymentAmount()!=null?chargingOrderVO.getPaymentAmount():new BigDecimal("0")); + if (!chargingOrderVO.getOrderSource().equals(2)) { + paymentMoney = paymentMoney.add(chargingOrderVO.getPaymentAmount() != null ? chargingOrderVO.getPaymentAmount() : new BigDecimal("0")); + }else{ + paymentMoney = paymentMoney.add(chargingOrderVO.getServiceCharge() != null ? chargingOrderVO.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2, BigDecimal.ROUND_DOWN) : new BigDecimal("0")); + + } if (chargingOrderVO.getRechargeAmount()!=null){ commissionMoney = commissionMoney.add(chargingOrderVO.getRechargeAmount().multiply(new BigDecimal("0.006")).setScale(2,BigDecimal.ROUND_DOWN)); } @@ -1403,7 +1402,11 @@ refundMoney = refundMoney.add(tChargingOrderRefund.getRefundTotalAmount()); } electronicMoney = electronicMoney.add(chargingOrderVO.getElectrovalence()!=null?chargingOrderVO.getElectrovalence():new BigDecimal("0")); - serviceMoney = serviceMoney.add(chargingOrderVO.getServiceCharge()!=null?chargingOrderVO.getServiceCharge():new BigDecimal("0")); + if (!chargingOrderVO.getOrderSource().equals(2)){ + serviceMoney = serviceMoney.add(chargingOrderVO.getServiceCharge()!=null?chargingOrderVO.getServiceCharge():new BigDecimal("0")); + }else{ + serviceMoney = serviceMoney.add(chargingOrderVO.getServiceCharge()!=null?chargingOrderVO.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2,BigDecimal.ROUND_DOWN):new BigDecimal("0")); + } } tCharingOrderVO.setTotal(total); tCharingOrderVO.setTime(time); @@ -1491,6 +1494,8 @@ @Resource private SysUserClient sysUserClient; + + @Override public ChargingOrderTimeVO chargingList(ChargingListQuery dto) { String startTime1 = null; @@ -1689,7 +1694,13 @@ "0"+"%(平)/"+ "0"+"%(谷)"); } - + if (chargingOrderListVO.getOrderSource().equals(2)){ + chargingOrderListVO.setSharingAmount(chargingOrderListVO.getServiceCharge()!=null? + chargingOrderListVO.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2,BigDecimal.ROUND_HALF_UP) + :new BigDecimal("0")); + }else{ + chargingOrderListVO.setSharingAmount(new BigDecimal("0")); + } } // 不分页 PageInfo<ChargingOrderListVO> pageInfo1 = new PageInfo<>(1,999999999); @@ -1741,39 +1752,78 @@ BigDecimal feng = new BigDecimal("0"); BigDecimal ping = new BigDecimal("0"); BigDecimal gu = new BigDecimal("0"); - List<Long> collect = list1.stream().map(ChargingOrderListVO::getId).collect(Collectors.toList()); - List<TChargingOrderAccountingStrategy> chargingOrderAccountingStrategies = chargingOrderAccountingStrategyService.lambdaQuery() - .in(TChargingOrderAccountingStrategy::getChargingOrderId,collect).list(); + List<TChargingOrderAccountingStrategy> chargingOrderAccountingStrategies = chargingOrderAccountingStrategyService.list(); for (ChargingOrderListVO chargingOrderListVO : list1) { if (chargingOrderListVO.getChargingCapacity()!=null)electronic = electronic.add(chargingOrderListVO.getElectricity()); - if (chargingOrderListVO.getPaymentAmount()!=null)paymentAmount = paymentAmount.add(chargingOrderListVO.getPaymentAmount()); + if (chargingOrderListVO.getPaymentAmount()!=null){ + if (chargingOrderListVO.getOrderSource().equals(2)){ + paymentAmount = paymentAmount.add(chargingOrderListVO.getServiceCharge()!=null?chargingOrderListVO.getServiceCharge().multiply(new BigDecimal("0.2").setScale(2,BigDecimal.ROUND_HALF_UP)):new BigDecimal("0")); + }else{ + paymentAmount = paymentAmount.add(chargingOrderListVO.getPaymentAmount()); + } + } if (chargingOrderListVO.getElectrovalence()!=null)electrovalence = electrovalence.add(chargingOrderListVO.getElectrovalence()); - if (chargingOrderListVO.getServiceCharge()!=null)serviceCharge = serviceCharge.add(chargingOrderListVO.getServiceCharge()); - List<TChargingOrderAccountingStrategy> list2 = chargingOrderAccountingStrategies.stream().filter(e -> e.getChargingOrderId().equals(chargingOrderListVO.getId())) - .collect(Collectors.toList()); - for (TChargingOrderAccountingStrategy temp : list2) { - switch (temp.getType()){ - case 1: - if (temp.getChargingCapacity()!=null)jian = jian.add(temp.getChargingCapacity()); - if (temp.getChargingCapacity()!=null)jianElectronic = jianElectronic.add(temp.getElectrovalence()); - if (temp.getChargingCapacity()!=null)jianService = jianService.add(temp.getServiceCharge()); - break; - case 2: - if (temp.getChargingCapacity()!=null)feng = feng.add(temp.getChargingCapacity()); - if (temp.getChargingCapacity()!=null)fengElectronic = fengElectronic.add(temp.getElectrovalence()); - if (temp.getChargingCapacity()!=null)fengService = fengService.add(temp.getServiceCharge()); - break; - case 3: - if (temp.getChargingCapacity()!=null)ping = ping.add(temp.getChargingCapacity()); - if (temp.getChargingCapacity()!=null)pingElectronic = pingElectronic.add(temp.getElectrovalence()); - if (temp.getChargingCapacity()!=null)pingService = pingService.add(temp.getServiceCharge()); - break; - case 4: - if (temp.getChargingCapacity()!=null)gu = gu.add(temp.getChargingCapacity()); - if (temp.getChargingCapacity()!=null)guElectronic = guElectronic.add(temp.getElectrovalence()); - if (temp.getChargingCapacity()!=null)guService = guService.add(temp.getServiceCharge()); - break; + if (chargingOrderListVO.getServiceCharge()!=null){ + if (chargingOrderListVO.getOrderSource().equals(2)){ + serviceCharge = serviceCharge.add(chargingOrderListVO.getServiceCharge().multiply(new BigDecimal("0.2").setScale(2,BigDecimal.ROUND_HALF_UP))); + }else{ + serviceCharge = serviceCharge.add(chargingOrderListVO.getServiceCharge()); + } + } + if (!chargingOrderListVO.getOrderSource().equals(2)){ + List<TChargingOrderAccountingStrategy> list2 = chargingOrderAccountingStrategies.stream().filter(e -> e.getChargingOrderId().equals(chargingOrderListVO.getId())) + .collect(Collectors.toList()); + for (TChargingOrderAccountingStrategy temp : list2) { + switch (temp.getType()){ + case 1: + if (temp.getChargingCapacity()!=null)jian = jian.add(temp.getChargingCapacity()); + if (temp.getElectrovalence()!=null)jianElectronic = jianElectronic.add(temp.getElectrovalence()); + if (temp.getServiceCharge()!=null)jianService = jianService.add(temp.getServiceCharge()); + break; + case 2: + if (temp.getChargingCapacity()!=null)feng = feng.add(temp.getChargingCapacity()); + if (temp.getElectrovalence()!=null)fengElectronic = fengElectronic.add(temp.getElectrovalence()); + if (temp.getServiceCharge()!=null)fengService = fengService.add(temp.getServiceCharge()); + break; + case 3: + if (temp.getChargingCapacity()!=null)ping = ping.add(temp.getChargingCapacity()); + if (temp.getElectrovalence()!=null)pingElectronic = pingElectronic.add(temp.getElectrovalence()); + if (temp.getServiceCharge()!=null)pingService = pingService.add(temp.getServiceCharge()); + break; + case 4: + if (temp.getChargingCapacity()!=null)gu = gu.add(temp.getChargingCapacity()); + if (temp.getElectrovalence()!=null)guElectronic = guElectronic.add(temp.getElectrovalence()); + if (temp.getServiceCharge()!=null)guService = guService.add(temp.getServiceCharge()); + break; + } + } + }else{ + List<TChargingOrderAccountingStrategy> list2 = chargingOrderAccountingStrategies.stream().filter(e -> e.getChargingOrderId().equals(chargingOrderListVO.getId())) + .collect(Collectors.toList()); + for (TChargingOrderAccountingStrategy temp : list2) { + switch (temp.getType()){ + case 1: + if (temp.getChargingCapacity()!=null)jian = jian.add(temp.getChargingCapacity()); + if (temp.getElectrovalence()!=null)jianElectronic = jianElectronic.add(temp.getElectrovalence()); + if (temp.getServiceCharge()!=null)jianService = jianService.add(temp.getServiceCharge().multiply(new BigDecimal("0.2").setScale(2,BigDecimal.ROUND_HALF_UP))); + break; + case 2: + if (temp.getChargingCapacity()!=null)feng = feng.add(temp.getChargingCapacity()); + if (temp.getElectrovalence()!=null)fengElectronic = fengElectronic.add(temp.getElectrovalence()); + if (temp.getServiceCharge()!=null)fengService = fengService.add(temp.getServiceCharge().multiply(new BigDecimal("0.2").setScale(2,BigDecimal.ROUND_HALF_UP))); + break; + case 3: + if (temp.getChargingCapacity()!=null)ping = ping.add(temp.getChargingCapacity()); + if (temp.getElectrovalence()!=null)pingElectronic = pingElectronic.add(temp.getElectrovalence()); + if (temp.getServiceCharge()!=null)pingService = pingService.add(temp.getServiceCharge().multiply(new BigDecimal("0.2").setScale(2,BigDecimal.ROUND_HALF_UP))); + break; + case 4: + if (temp.getChargingCapacity()!=null)gu = gu.add(temp.getChargingCapacity()); + if (temp.getElectrovalence()!=null)guElectronic = guElectronic.add(temp.getElectrovalence()); + if (temp.getServiceCharge()!=null)guService = guService.add(temp.getServiceCharge().multiply(new BigDecimal("0.2").setScale(2,BigDecimal.ROUND_HALF_UP))); + break; + } } } } @@ -1782,28 +1832,29 @@ chargingOrderTimeVO.setPaymentAmount(paymentAmount); chargingOrderTimeVO.setElectrovalence(electrovalence); chargingOrderTimeVO.setServiceCharge(serviceCharge); - // 计算尖峰平谷充电量占比 + // 计算尖峰平谷充电到账占比 + BigDecimal add = jianElectronic.add(fengElectronic).add(pingElectronic).add(guElectronic); // 计算尖峰平谷服务费占比 BigDecimal add1 = jianService.add(fengService).add(pingService).add(guService); - // 计算尖峰平谷充电到账占比 + // 计算尖峰平谷充电量占比 BigDecimal add2 = jian.add(feng).add(ping).add(gu); if (add.compareTo(new BigDecimal("0"))!=0){ - chargingOrderTimeVO.setCapacityProportion(jianElectronic+"度/"+fengElectronic+"度/"+pingElectronic+"度/"+guElectronic+"度-" - +jianElectronic.divide(add,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/" - +fengElectronic.divide(add,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/" - +pingElectronic.divide(add,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/" - +guElectronic.divide(add,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%"); + chargingOrderTimeVO.setCapacityProportion(jian+"度/"+feng+"度/"+ping+"度/"+gu+"度-" + +jian.divide(add2,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/" + +feng.divide(add2,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/" + +ping.divide(add2,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/" + +gu.divide(add2,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%"); chargingOrderTimeVO.setServiceProportion(jianService+"元/"+fengService+"元/"+pingService+"元/"+guService+"元-" +jianService.divide(add1,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/" +fengService.divide(add1,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/" +pingService.divide(add1,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/" +guService.divide(add1,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%"); - chargingOrderTimeVO.setElectronicProportion(jian+"元/"+feng+"元/"+ping+"元/"+gu+"元-" - +jian.divide(add2,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/" - +feng.divide(add2,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/" - +ping.divide(add2,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/" - +gu.divide(add2,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%"); + chargingOrderTimeVO.setElectronicProportion(jianElectronic+"元/"+fengElectronic+"元/"+pingElectronic+"元/"+guElectronic+"元-" + +jianElectronic.divide(add,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/" + +fengElectronic.divide(add,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/" + +pingElectronic.divide(add,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%/" + +guElectronic.divide(add,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%"); }else{ chargingOrderTimeVO.setCapacityProportion(jianElectronic+"度/"+fengElectronic+"度/"+pingElectronic+"度/"+guElectronic+"度-" +"0"+"%/" @@ -1933,7 +1984,12 @@ chargingOrderListInfoVO.setUid(chargingOrder.getId().toString()); chargingOrderListInfoVO.setCouponDiscountAmount(chargingOrder.getCouponDiscountAmount()); chargingOrderListInfoVO.setVipDiscountAmount(chargingOrder.getVipDiscountAmount()); - chargingOrderListInfoVO.setSharingAmount(chargingOrder.getSharingAmount()); + if (chargingOrder.getOrderSource().equals(2)){ + chargingOrderListInfoVO.setSharingAmount(chargingOrder.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2, BigDecimal.ROUND_HALF_UP)); + }else{ + chargingOrderListInfoVO.setSharingAmount(chargingOrder.getSharingAmount()); + + } // 查询费用明细列表 List<TChargingOrderAccountingStrategy> list = chargingOrderAccountingStrategyService.lambdaQuery() .eq(TChargingOrderAccountingStrategy::getChargingOrderId, chargingOrder.getId()) @@ -2019,10 +2075,10 @@ if(null == chargingOrder){ return R.ok(); } - Integer status = chargingOrder.getStatus(); - if(status == 5){ - return R.ok(); - } +// Integer status = chargingOrder.getStatus(); +// if(status == 5){ +// return R.ok(); +// } //如果使用优惠券需要判断优惠券是否满足使用条件 //根据实际的充电金额计算退款金额 退回费用=(原金额/总金额)*(总金额-实际充电金额) @@ -2085,7 +2141,7 @@ AccountingStrategyDetailOrderVo vo1 = new AccountingStrategyDetailOrderVo(); BeanUtils.copyProperties(strategyDetail, vo1); vo1.setChargingCapacity(sharp_peak_charge); - lists.add(vo1); + lists.add(0, vo1); } //第二天的 @@ -2831,8 +2887,8 @@ } // 累加分佣 - if (tChargingOrder.getSharingAmount()!=null) { - sharingAmount = sharingAmount.add(tChargingOrder.getSharingAmount()); + if (tChargingOrder.getOrderSource()==2) { + sharingAmount = sharingAmount.add(tChargingOrder.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2,BigDecimal.ROUND_DOWN)); } // 累加电费 if (tChargingOrder.getElectrovalence()!=null) { @@ -2840,8 +2896,11 @@ } // 累加服务费 if (tChargingOrder.getServiceCharge()!=null){ - serviceCharge = serviceCharge.add(tChargingOrder.getServiceCharge()); - + if (tChargingOrder.getOrderSource()==2) { + serviceCharge = serviceCharge.add(tChargingOrder.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2,BigDecimal.ROUND_DOWN)); + }else{ + serviceCharge = serviceCharge.add(tChargingOrder.getServiceCharge()); + } } // 累加会员折扣 if (tChargingOrder.getVipDiscountAmount()!=null){ -- Gitblit v1.7.1