|  |  |  | 
|---|
|  |  |  | List<TChargingPile> pileList = chargingGunClient.getAllPile().getData(); | 
|---|
|  |  |  | List<TAppUser> userList = appUserClient.getAllUser().getData(); | 
|---|
|  |  |  | List<TAppUserCar> carList = appUserCarClient.getAllCar().getData(); | 
|---|
|  |  |  | List<TChargingOrder> total = chargingOrderList.selectList(new LambdaQueryWrapper<>(TChargingOrder.class)); | 
|---|
|  |  |  | List<TChargingOrder> total = chargingOrderList.selectList(new LambdaQueryWrapper<>(TChargingOrder.class) | 
|---|
|  |  |  | .isNotNull(TChargingOrder::getPayTime)); | 
|---|
|  |  |  | List<TChargingOrderRefund> totalRefund = chargingOrderRefundService.lambdaQuery().eq(TChargingOrderRefund::getRefundStatus, 2).list(); | 
|---|
|  |  |  | Long userId = tokenService.getLoginUser().getUserid(); | 
|---|
|  |  |  | // 查询当前登陆人按钮权限 | 
|---|
|  |  |  | 
|---|
|  |  |  | chargingBillVO.setPaymentAmount(BigDecimal.ZERO); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | chargingBillListVO.setPaymentAmount(paymentAmount.subtract(sharingAmount)); | 
|---|
|  |  |  | chargingBillListVO.setPaymentAmount(paymentAmount); | 
|---|
|  |  |  | chargingBillListVO.setOrderAmount(refundAmount); | 
|---|
|  |  |  | chargingBillListVO.setRefundAmount(refundAmount == null?BigDecimal.ZERO:refundAmount); | 
|---|
|  |  |  | chargingBillListVO.setElectrovalence(electrovalence == null?BigDecimal.ZERO:electrovalence); | 
|---|
|  |  |  | 
|---|
|  |  |  | chargingBillListVO.setCommissionAmount(commissionAmount == null?BigDecimal.ZERO:commissionAmount.setScale(2,BigDecimal.ROUND_DOWN)); | 
|---|
|  |  |  | chargingBillListVO.setSharingAmount(sharingAmount == null?BigDecimal.ZERO:sharingAmount); | 
|---|
|  |  |  | chargingBillListVO.setChargingCapacity(chargingCapacity == null?BigDecimal.ZERO:chargingCapacity); | 
|---|
|  |  |  | chargingBillListVO.setBillMoney(orderAmount | 
|---|
|  |  |  | chargingBillListVO.setBillMoney(paymentAmount | 
|---|
|  |  |  | .subtract(commissionAmount.setScale(2,BigDecimal.ROUND_DOWN)).subtract(sharingAmount).setScale(2, BigDecimal.ROUND_DOWN)); | 
|---|
|  |  |  | switch (chargingBillListVO.getType()){ | 
|---|
|  |  |  | case 1: | 
|---|
|  |  |  | 
|---|
|  |  |  | startTime1 = split[0]; | 
|---|
|  |  |  | startTime2 = split[1]; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<TChargingOrder> total = chargingOrderList.selectList(new LambdaQueryWrapper<>(TChargingOrder.class)); | 
|---|
|  |  |  | List<TChargingOrder> total = chargingOrderList.selectList(new LambdaQueryWrapper<>(TChargingOrder.class) | 
|---|
|  |  |  | .isNotNull(TChargingOrder::getPayTime)); | 
|---|
|  |  |  | PageInfo<ChargingBillListVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize()); | 
|---|
|  |  |  | List<Site> data6 = siteClient.getSiteAll().getData(); | 
|---|
|  |  |  | List<TChargingGun> gunList = chargingGunClient.getAllGun().getData(); | 
|---|
|  |  |  | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 2: | 
|---|
|  |  |  | temp = "各个站点账单"; | 
|---|
|  |  |  | temp1 = data6.stream().filter(e->e.getId().equals(chargingBillListVO.getSiteId())).findFirst().orElse(new Site()).getName(); | 
|---|
|  |  |  | Site site = data6.stream().filter(e -> e.getId().equals(chargingBillListVO.getSiteId())).findFirst().orElse(null); | 
|---|
|  |  |  | if(site!=null){ | 
|---|
|  |  |  | temp1 = site.getName(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | chargingBillVO.setCategory(temp); | 
|---|
|  |  |  | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | BigDecimal add = tChargingOrder.getElectrovalence().add(tChargingOrder.getServiceCharge()); | 
|---|
|  |  |  | tChargingOrder.setTotalAmount(add.toString()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | tChargingOrder.setDiscount(tChargingOrder.getCouponDiscountAmount()!=null?tChargingOrder.getCouponDiscountAmount().toString():"0"); | 
|---|
|  |  |  | if (tChargingOrder.getStartTime()!=null && tChargingOrder.getEndTime()!=null){ | 
|---|
|  |  |  | LocalDateTime startTime = tChargingOrder.getStartTime(); | 
|---|
|  |  |  | 
|---|
|  |  |  | BigDecimal electronic_reduce = list4.stream().map(TChargingOrderAccountingStrategy::getPeriodElectricPrice).reduce(BigDecimal.ZERO, BigDecimal::add); | 
|---|
|  |  |  | BigDecimal service_reduce = list4.stream().map(TChargingOrderAccountingStrategy::getPeriodServicePrice).reduce(BigDecimal.ZERO, BigDecimal::add); | 
|---|
|  |  |  | BigDecimal charging_capacity = list4.stream().map(TChargingOrderAccountingStrategy::getChargingCapacity).reduce(BigDecimal.ZERO, BigDecimal::add); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if ( !tChargingOrder.getOrderSource().equals(2)){ | 
|---|
|  |  |  | // 实收 | 
|---|
|  |  |  | paymentAmount = paymentAmount.add(electronic_reduce).add(service_reduce); | 
|---|
|  |  |  | BigDecimal add = electronic_reduce.add(service_reduce); | 
|---|
|  |  |  | tChargingOrder.setTotalAmount(add.toString()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 总金额 | 
|---|
|  |  |  | if (tChargingOrder.getRechargeAmount()!=null){ | 
|---|
|  |  |  | 
|---|
|  |  |  | sharingAmount = sharingAmount.add(service_reduce.multiply(new BigDecimal("0.2")).setScale(2,BigDecimal.ROUND_DOWN)); | 
|---|
|  |  |  | // 累加实收 | 
|---|
|  |  |  | paymentAmount = paymentAmount.add(electronic_reduce).add(service_reduce.multiply(new BigDecimal("0.8")).setScale(2,BigDecimal.ROUND_DOWN)); | 
|---|
|  |  |  | BigDecimal add = electronic_reduce.add(service_reduce.multiply(new BigDecimal("0.8"))); | 
|---|
|  |  |  | tChargingOrder.setTotalAmount(add.toString()); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | serviceCharge = serviceCharge.add(service_reduce); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 累加平台手续费 | 
|---|
|  |  |  | if (tChargingOrder.getRechargeAmount()!=null){ | 
|---|
|  |  |  | commissionAmount = commissionAmount.add(tChargingOrder.getRechargeAmount().multiply(BigDecimal.valueOf(0.006)) | 
|---|
|  |  |  | .setScale(2,BigDecimal.ROUND_DOWN)); | 
|---|
|  |  |  | commissionAmount = commissionAmount.add(tChargingOrder.getRechargeAmount().multiply(BigDecimal.valueOf(0.006)).setScale(2,BigDecimal.ROUND_DOWN)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 累加充电度数 | 
|---|
|  |  |  | chargingCapacity = chargingCapacity.add(charging_capacity); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 将chargingSecond 这是以秒为单位存放的总秒数 将其转化为xx小时xx分钟xx秒 | 
|---|
|  |  |  | int hours = chargingSecond / 3600; | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | for (ChargingBillListVO chargingBillListVO : list1) { | 
|---|
|  |  |  | if (dto.getType() == 1){ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (chargingBillListVO.getSiteId()!=0){ | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | if (chargingBillListVO.getSiteId()!=0&&!siteIds.contains(chargingBillListVO.getSiteId())){ | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | 
|---|
|  |  |  | chargingBillListVO.setUid(chargingBillListVO.getId().toString()); | 
|---|
|  |  |  | // 根据账单的出账时间 查询上个月的充电订单 | 
|---|
|  |  |  | LocalDateTime localDate = chargingBillListVO.getBillTime().minusMonths(1); | 
|---|
|  |  |  | //            LocalDateTime localDate = chargingBillListVO.getBillTime().minusDays(1); | 
|---|
|  |  |  | // 账单周期 | 
|---|
|  |  |  | chargingBillListVO.setBillWeek(localDate.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM"))); | 
|---|
|  |  |  | // 获取 LocalDate 对象 | 
|---|
|  |  |  | 
|---|
|  |  |  | // 累加平台手续费 | 
|---|
|  |  |  | if (tChargingOrder.getOrderAmount()!=null){ | 
|---|
|  |  |  | commissionAmount = commissionAmount.add(tChargingOrder.getRechargeAmount().multiply(new BigDecimal("0.006")).setScale(2,BigDecimal.ROUND_DOWN)); | 
|---|
|  |  |  | commissionAmountTotal = commissionAmountTotal.add(tChargingOrder.getRechargeAmount().multiply(new BigDecimal("0.006")) | 
|---|
|  |  |  | .setScale(2,BigDecimal.ROUND_DOWN)); | 
|---|
|  |  |  | commissionAmountTotal = commissionAmountTotal.add(tChargingOrder.getRechargeAmount().multiply(new BigDecimal("0.006")).setScale(2,BigDecimal.ROUND_DOWN)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 累加充电度数 | 
|---|