|  |  |  | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | import com.ruoyi.order.api.model.TChargingOrderRefund; | 
|---|
|  |  |  | import com.ruoyi.order.api.model.*; | 
|---|
|  |  |  | import com.ruoyi.order.api.vo.ChargingBillListVO; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | 
|---|
|  |  |  | import com.ruoyi.common.core.web.page.PageInfo; | 
|---|
|  |  |  | import com.ruoyi.order.api.model.TChargingBill; | 
|---|
|  |  |  | import com.ruoyi.order.api.vo.ChargingBillVO; | 
|---|
|  |  |  | import com.ruoyi.order.api.model.ChargingListQuery; | 
|---|
|  |  |  | import com.ruoyi.order.mapper.TChargingBillMapper; | 
|---|
|  |  |  | import com.ruoyi.order.mapper.TChargingOrderMapper; | 
|---|
|  |  |  | import com.ruoyi.order.service.TChargingBillService; | 
|---|
|  |  |  | import com.ruoyi.order.service.TChargingOrderAccountingStrategyService; | 
|---|
|  |  |  | import com.ruoyi.order.service.TChargingOrderRefundService; | 
|---|
|  |  |  | import com.ruoyi.system.api.domain.SysUser; | 
|---|
|  |  |  | import com.ruoyi.system.api.feignClient.SysUserClient; | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public ChargingBillVO chargingBillList1(ChargingListQuery dto) { | 
|---|
|  |  |  | if (dto.getState()!=null){ | 
|---|
|  |  |  | if (dto.getState()==1){ | 
|---|
|  |  |  | dto.setState(2); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | dto.setState(1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ChargingBillVO chargingBillVO = new ChargingBillVO(); | 
|---|
|  |  |  | List<TChargingOrder> tChargingOrders1 = new ArrayList<>(); | 
|---|
|  |  |  | String startTime1 = null; | 
|---|
|  |  |  | 
|---|
|  |  |  | startTime1 = split[0]; | 
|---|
|  |  |  | startTime2 = split[1]; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<Site> siteList = siteClient.getSiteAll().getData(); | 
|---|
|  |  |  | List<TChargingGun> gunList = chargingGunClient.getAllGun().getData(); | 
|---|
|  |  |  | 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) | 
|---|
|  |  |  | .isNotNull(TChargingOrder::getPayTime)); | 
|---|
|  |  |  | List<TChargingOrderRefund> totalRefund = chargingOrderRefundService.lambdaQuery().eq(TChargingOrderRefund::getRefundStatus, 2).list(); | 
|---|
|  |  |  | Long userId = tokenService.getLoginUser().getUserid(); | 
|---|
|  |  |  | // 查询当前登陆人按钮权限 | 
|---|
|  |  |  | SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData(); | 
|---|
|  |  |  | Integer roleType = sysUser.getRoleType(); | 
|---|
|  |  |  | //如果没传siteId,获取当前登陆人所有的siteIds | 
|---|
|  |  |  | List<Integer> siteIds = new ArrayList<>(); | 
|---|
|  |  |  | //如果没传siteId,获取当前登陆人所有的siteIds | 
|---|
|  |  |  | if (dto.getSiteId()==null){ | 
|---|
|  |  |  | if (userId != null){ | 
|---|
|  |  |  | List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData(); | 
|---|
|  |  |  | for (GetSiteListDTO datum : data) { | 
|---|
|  |  |  | siteIds.add(datum.getId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 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()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (siteIds.isEmpty()){ | 
|---|
|  |  |  | siteIds.add(-1); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | if (roleType == 2){ | 
|---|
|  |  |  | List<Integer> integers = new ArrayList<>(); | 
|---|
|  |  |  | for (Integer siteId : siteIds) { | 
|---|
|  |  |  | // 校验有没有这个站点的权限 | 
|---|
|  |  |  | List<Boolean> t1= partnerClient.getAccountMenu(sysUser.getObjectId(),siteId).getData(); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | siteIds.add(dto.getSiteId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (siteIds.isEmpty()){ | 
|---|
|  |  |  | siteIds.add(-1); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | if (roleType == 2){ | 
|---|
|  |  |  | List<Integer> integers = new ArrayList<>(); | 
|---|
|  |  |  | for (Integer siteId : siteIds) { | 
|---|
|  |  |  | // 校验有没有这个站点的权限 | 
|---|
|  |  |  | List<Boolean> t1= partnerClient.getChargingOrderMenu(sysUser.getObjectId(),siteId).getData(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Boolean b = t1.get(1); | 
|---|
|  |  |  | if (b){ | 
|---|
|  |  |  | integers.add(siteId); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Boolean b = t1.get(1); | 
|---|
|  |  |  | if (b){ | 
|---|
|  |  |  | integers.add(siteId); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | siteIds = integers; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | siteIds = integers; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (siteIds.isEmpty())siteIds.add(-1); | 
|---|
|  |  |  | dto.setSiteIds(siteIds); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (roleType==1){ | 
|---|
|  |  |  | siteIds.add(0); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (siteIds.isEmpty())siteIds.add(-1); | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | List<ChargingBillListVO> list1 = this.baseMapper.chargingBillList1(pageInfo1,dto,startTime1,startTime2); | 
|---|
|  |  |  | List<ChargingBillListVO> list1 = this.baseMapper.chargingBillList1Nolimt(dto,startTime1,startTime2); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | BigDecimal paymentAmountTotal = new BigDecimal("0"); | 
|---|
|  |  |  | BigDecimal orderAmountTotal = new BigDecimal("0"); | 
|---|
|  |  |  | 
|---|
|  |  |  | BigDecimal sharingAmountTotal = new BigDecimal("0"); | 
|---|
|  |  |  | BigDecimal chargingCapacityTotal = new BigDecimal("0"); | 
|---|
|  |  |  | BigDecimal discountTotal = new BigDecimal("0"); | 
|---|
|  |  |  | int orderCount = 0; | 
|---|
|  |  |  | List<TChargingOrderAccountingStrategy> list3 = chargingOrderAccountingStrategyService.list(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | for (ChargingBillListVO chargingBillListVO : list) { | 
|---|
|  |  |  | if (roleType==2){ | 
|---|
|  |  |  | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 2: | 
|---|
|  |  |  | temp = "各个站点账单"; | 
|---|
|  |  |  | temp1 = siteClient.getSiteByIds(Arrays.asList(chargingBillListVO.getSiteId())).getData().get(0).getName(); | 
|---|
|  |  |  | Site site = siteList.stream().filter(e -> e.getId().equals(chargingBillListVO.getSiteId())).findFirst().orElse(null); | 
|---|
|  |  |  | if (site!=null){ | 
|---|
|  |  |  | temp1 =site.getName(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | chargingBillVO.setCategory(temp); | 
|---|
|  |  |  | 
|---|
|  |  |  | 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 对象 | 
|---|
|  |  |  | LocalDate date = localDate.toLocalDate(); | 
|---|
|  |  |  | //            // 获取该月份的第一天 | 
|---|
|  |  |  | LocalDate firstDayOfMonth = date.withDayOfMonth(1); | 
|---|
|  |  |  | // 获取该月份的最后一天 | 
|---|
|  |  |  | LocalDate lastDayOfMonth = date.with(TemporalAdjusters.lastDayOfMonth()); | 
|---|
|  |  |  | QueryWrapper<TChargingOrder> eq = new QueryWrapper<TChargingOrder>() | 
|---|
|  |  |  | .between("pay_time", firstDayOfMonth.atTime(0, 0, 0), lastDayOfMonth.atTime(23, 59, 59)) | 
|---|
|  |  |  | .eq("status", 5) | 
|---|
|  |  |  | .eq("recharge_payment_status", 2); | 
|---|
|  |  |  | if (chargingBillListVO.getType() == 2) { | 
|---|
|  |  |  | eq.eq("site_id", chargingBillListVO.getSiteId()); | 
|---|
|  |  |  | LocalDateTime lastDayOfMonth = localDate.with(TemporalAdjusters.lastDayOfMonth()); | 
|---|
|  |  |  | LocalDateTime firstDayOfMonth = localDate.with(TemporalAdjusters.firstDayOfMonth()); | 
|---|
|  |  |  | List<TChargingOrder> tChargingOrders = new ArrayList<>(); | 
|---|
|  |  |  | if (chargingBillListVO.getType() == 2){ | 
|---|
|  |  |  | tChargingOrders = total.stream().filter(e -> e.getSiteId().equals(chargingBillListVO.getSiteId()) && e.getPayTime().isBefore(lastDayOfMonth.withHour(23).withMinute(59).withSecond(59)) | 
|---|
|  |  |  | && e.getPayTime().isAfter(firstDayOfMonth.withHour(0).withMinute(0).withSecond(0))).collect(Collectors.toList()); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | tChargingOrders = total.stream().filter(e ->  e.getPayTime().isBefore(lastDayOfMonth.withHour(23).withMinute(59).withSecond(59)) | 
|---|
|  |  |  | && e.getPayTime().isAfter(firstDayOfMonth.withHour(0).withMinute(0).withSecond(0))).collect(Collectors.toList()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<TChargingOrder> tChargingOrders = chargingOrderList.selectList(eq); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | int chargingSecond = 0; | 
|---|
|  |  |  | BigDecimal paymentAmount = new BigDecimal("0"); | 
|---|
|  |  |  | BigDecimal rechargeAmount = new BigDecimal("0"); | 
|---|
|  |  |  | 
|---|
|  |  |  | BigDecimal sharingAmount = new BigDecimal("0"); | 
|---|
|  |  |  | BigDecimal chargingCapacity = new BigDecimal("0"); | 
|---|
|  |  |  | BigDecimal refundAmount = new BigDecimal("0"); | 
|---|
|  |  |  | orderCount+=tChargingOrders.size(); | 
|---|
|  |  |  | chargingBillVO.setCategory(""); | 
|---|
|  |  |  | chargingBillVO.setExportList(tChargingOrders); | 
|---|
|  |  |  | for (TChargingOrder tChargingOrder : tChargingOrders) { | 
|---|
|  |  |  | List<Site> data = siteClient.getSiteByIds(Arrays.asList(tChargingOrder.getSiteId())).getData(); | 
|---|
|  |  |  | if (!data.isEmpty()){ | 
|---|
|  |  |  | chargingBillVO.setSiteName(data.get(0).getName()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Site site1 = siteList.stream().filter(site -> site.getId().equals(tChargingOrder.getSiteId())).findFirst().orElse(null); | 
|---|
|  |  |  | if (site1!=null){ | 
|---|
|  |  |  | chargingBillVO.setSiteName(site1.getName()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | TChargingPile data1 = chargingPileClient.getChargingPileById(tChargingOrder.getChargingPileId()).getData(); | 
|---|
|  |  |  | TChargingGun data2 = chargingGunClient.getChargingGunById(tChargingOrder.getChargingGunId()).getData(); | 
|---|
|  |  |  | TChargingPile data1 = pileList.stream().filter(e -> e.getId().equals(tChargingOrder.getChargingPileId())).findFirst().orElse(null); | 
|---|
|  |  |  | TChargingGun data2 = gunList.stream().filter(e -> e.getId().equals(tChargingOrder.getChargingGunId())).findFirst().orElse(null); | 
|---|
|  |  |  | if (data1!=null && data2!=null){ | 
|---|
|  |  |  | tChargingOrder.setTerminalName(data1.getName()+data2.getName()); | 
|---|
|  |  |  | tChargingOrder.setTerminalCode(data2.getCode()); | 
|---|
|  |  |  | 
|---|
|  |  |  | tChargingOrder.setOrderClassification1("线上订单"); | 
|---|
|  |  |  | tChargingOrder.setRechargePaymentType1("预付"); | 
|---|
|  |  |  | tChargingOrder.setChargingType("充电桩接口充电服务"); | 
|---|
|  |  |  | switch (tChargingOrder.getStatus()){ | 
|---|
|  |  |  | case 1: | 
|---|
|  |  |  | tChargingOrder.setStatus1("等待中"); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 2: | 
|---|
|  |  |  | tChargingOrder.setStatus1("启动中"); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 3: | 
|---|
|  |  |  | tChargingOrder.setStatus1("充电中"); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 4: | 
|---|
|  |  |  | tChargingOrder.setStatus1("停止中"); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 5: | 
|---|
|  |  |  | tChargingOrder.setStatus1("已结束"); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 0: | 
|---|
|  |  |  | tChargingOrder.setStatus1("未知"); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | if (tChargingOrder.getStatus()!=null){ | 
|---|
|  |  |  | switch (tChargingOrder.getStatus()){ | 
|---|
|  |  |  | case 1: | 
|---|
|  |  |  | tChargingOrder.setStatus1("等待中"); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 2: | 
|---|
|  |  |  | tChargingOrder.setStatus1("启动中"); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 3: | 
|---|
|  |  |  | tChargingOrder.setStatus1("充电中"); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 4: | 
|---|
|  |  |  | tChargingOrder.setStatus1("停止中"); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 5: | 
|---|
|  |  |  | tChargingOrder.setStatus1("已结束"); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 0: | 
|---|
|  |  |  | tChargingOrder.setStatus1("未知"); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (tChargingOrder.getEndMode()!=null){ | 
|---|
|  |  |  | switch (tChargingOrder.getEndMode()){ | 
|---|
|  |  |  | case 1: | 
|---|
|  |  |  | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | BigDecimal add = tChargingOrder.getElectrovalence().add(tChargingOrder.getServiceCharge()); | 
|---|
|  |  |  | tChargingOrder.setTotalAmount(add.toString()); | 
|---|
|  |  |  | tChargingOrder.setDiscount(tChargingOrder.getCouponDiscountAmount()!=null?tChargingOrder.getCouponDiscountAmount().toString():"0"); | 
|---|
|  |  |  | UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(tChargingOrder.getCode()).getData(); | 
|---|
|  |  |  | if (data5!=null){ | 
|---|
|  |  |  | if (data5.getTime_remaining()!=null){ | 
|---|
|  |  |  | chargingSecond+=data5.getTime_remaining()*60; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Integer cumulativeChargingTime = data5.getCumulative_charging_time(); | 
|---|
|  |  |  | //                UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(tChargingOrder.getCode()).getData(); | 
|---|
|  |  |  | //                if (data5!=null){ | 
|---|
|  |  |  | //                    tChargingOrder.setEndSoc(data5.getSoc().toString()); | 
|---|
|  |  |  | //                } | 
|---|
|  |  |  | if (tChargingOrder.getStartTime()!=null && tChargingOrder.getEndTime()!=null){ | 
|---|
|  |  |  | LocalDateTime startTime = tChargingOrder.getStartTime(); | 
|---|
|  |  |  | LocalDateTime endTime = tChargingOrder.getEndTime(); | 
|---|
|  |  |  | // 计算时间差 单位秒 | 
|---|
|  |  |  | long between = ChronoUnit.SECONDS.between(startTime, endTime); | 
|---|
|  |  |  | chargingSecond+=between; | 
|---|
|  |  |  | // 将其转化为xx小时xx分钟xx秒显示 如果是0小时则不展示小时 如果是0分钟则不展示分钟 | 
|---|
|  |  |  | if (cumulativeChargingTime!=null){ | 
|---|
|  |  |  | // 计算小时、分钟和秒 | 
|---|
|  |  |  | int hours = cumulativeChargingTime / 60; | 
|---|
|  |  |  | int minutes = cumulativeChargingTime % 60; | 
|---|
|  |  |  | int seconds = 0; // 如果没有秒数,则默认是0 | 
|---|
|  |  |  | StringBuilder result = new StringBuilder(); | 
|---|
|  |  |  | if (hours > 0) { | 
|---|
|  |  |  | result.append(hours).append("小时"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (minutes > 0) { | 
|---|
|  |  |  | result.append(minutes).append("分钟"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (seconds > 0 || result.length() == 0) { // 如果秒数大于0,或者小时和分钟都为0,则显示秒数 | 
|---|
|  |  |  | result.append(seconds).append("秒"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | tChargingOrder.setChargingTime(result.toString()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | tChargingOrder.setEndSoc(data5.getSoc().toString()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | TAppUser data3 = appUserClient.getUserById(tChargingOrder.getAppUserId()).getData(); | 
|---|
|  |  |  | if (tChargingOrder.getAppUserCarId()!=null){ | 
|---|
|  |  |  | List<TAppUserCar> data4 = appUserCarClient.getCarByIds(Arrays.asList(tChargingOrder.getAppUserCarId())).getData(); | 
|---|
|  |  |  | if (!data4.isEmpty()){ | 
|---|
|  |  |  | tChargingOrder.setLicensePlate(data4.get(0).getLicensePlate()); | 
|---|
|  |  |  | tChargingOrder.setVehicleModel(data4.get(0).getVehicleModel()); | 
|---|
|  |  |  | // 计算小时、分钟和秒 | 
|---|
|  |  |  | long hours = between / 60 / 60; | 
|---|
|  |  |  | long minutes = (between % 3600) / 60; | 
|---|
|  |  |  | long seconds = between % 60; // 如果没有秒数,则默认是0 | 
|---|
|  |  |  | StringBuilder result = new StringBuilder(); | 
|---|
|  |  |  | if (hours > 0) { | 
|---|
|  |  |  | result.append(hours).append("小时"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (minutes > 0) { | 
|---|
|  |  |  | result.append(minutes).append("分钟"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (seconds > 0 || result.length() == 0) { // 如果秒数大于0,或者小时和分钟都为0,则显示秒数 | 
|---|
|  |  |  | result.append(seconds).append("秒"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | tChargingOrder.setChargingTime(result.toString()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | TAppUser data3 = userList.stream().filter(e -> e.getId().equals(tChargingOrder.getAppUserId())).findFirst().orElse(null); | 
|---|
|  |  |  | if (data3!=null)tChargingOrder.setUserName(data3.getName()); | 
|---|
|  |  |  | // 累加实收金额 支付结算金额 | 
|---|
|  |  |  | if (tChargingOrder.getChargeAmount()!=null){ | 
|---|
|  |  |  | paymentAmount = paymentAmount.add(tChargingOrder.getRechargeAmount()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (tChargingOrder.getAppUserCarId()!=null){ | 
|---|
|  |  |  | TAppUserCar data4 = carList.stream().filter(e -> e.getId().equals(tChargingOrder.getAppUserCarId())).findFirst().orElse(null); | 
|---|
|  |  |  | if (data4!=null){ | 
|---|
|  |  |  | tChargingOrder.setLicensePlate(data4.getLicensePlate()); | 
|---|
|  |  |  | tChargingOrder.setVehicleModel(data4.getVehicleModel()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | tChargingOrder.setLicensePlate(tChargingOrder.getPlateNum()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<TChargingOrderAccountingStrategy> list4 = list3.stream().filter(e -> e.getChargingOrderId().equals(tChargingOrder.getId())).collect(Collectors.toList()); | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | tChargingOrder.setTotalAmount(electronic_reduce.add(service_reduce)+""); | 
|---|
|  |  |  | // 累加实收金额 支付结算金额 | 
|---|
|  |  |  | if (tChargingOrder.getOrderSource()!=2){ | 
|---|
|  |  |  | paymentAmount = paymentAmount.add(electronic_reduce.add(service_reduce)); | 
|---|
|  |  |  | // 累加累计服务费 | 
|---|
|  |  |  | serviceCharge = serviceCharge.add(service_reduce); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | paymentAmount = paymentAmount.add(electronic_reduce.add(service_reduce.multiply(new BigDecimal("0.8")))); | 
|---|
|  |  |  | // 累加累计服务费 | 
|---|
|  |  |  | serviceCharge = serviceCharge.add(service_reduce.multiply(new BigDecimal("0.8"))); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 总金额 | 
|---|
|  |  |  | if (tChargingOrder.getOrderAmount()!=null){ | 
|---|
|  |  |  | orderAmount = orderAmount.add(tChargingOrder.getOrderAmount()); | 
|---|
|  |  |  | if (tChargingOrder.getRechargeAmount()!=null){ | 
|---|
|  |  |  | orderAmount = orderAmount.add(tChargingOrder.getRechargeAmount()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 累加累计电费 | 
|---|
|  |  |  | if (tChargingOrder.getElectrovalence()!=null){ | 
|---|
|  |  |  | electrovalence = electrovalence.add(tChargingOrder.getElectrovalence()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | electrovalence = electrovalence.add(electronic_reduce); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (tChargingOrder.getRechargeAmount()!=null){ | 
|---|
|  |  |  | rechargeAmount = rechargeAmount.add(tChargingOrder.getRechargeAmount()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<TChargingOrderRefund> list2 = chargingOrderRefundService.lambdaQuery().eq(TChargingOrderRefund::getRefundStatus, 2) | 
|---|
|  |  |  | .eq(TChargingOrderRefund::getChargingOrderId, tChargingOrder.getId()).list(); | 
|---|
|  |  |  | List<TChargingOrderRefund> list2 = totalRefund.stream().filter(e -> e.getChargingOrderId().equals(tChargingOrder.getId())).collect(Collectors.toList()); | 
|---|
|  |  |  | for (TChargingOrderRefund tChargingOrderRefund : list2) { | 
|---|
|  |  |  | if (tChargingOrderRefund.getRefundStatus()==2){ | 
|---|
|  |  |  | refundAmount = refundAmount.add(tChargingOrderRefund.getRefundTotalAmount()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 累加累计服务费 | 
|---|
|  |  |  | if (tChargingOrder.getServiceCharge()!=null){ | 
|---|
|  |  |  | serviceCharge = serviceCharge.add(tChargingOrder.getServiceCharge()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 累加平台手续费 | 
|---|
|  |  |  | if (tChargingOrder.getOrderAmount()!=null){ | 
|---|
|  |  |  | commissionAmount = commissionAmount.add(tChargingOrder.getPaymentAmount().multiply(BigDecimal.valueOf(0.006)) | 
|---|
|  |  |  | commissionAmount = commissionAmount.add(tChargingOrder.getRechargeAmount().multiply(BigDecimal.valueOf(0.006)) | 
|---|
|  |  |  | .setScale(2,BigDecimal.ROUND_DOWN)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 累加平台分佣 | 
|---|
|  |  |  | if (tChargingOrder.getSharingAmount()!=null){ | 
|---|
|  |  |  | sharingAmount = sharingAmount.add(tChargingOrder.getSharingAmount()); | 
|---|
|  |  |  | if (tChargingOrder.getOrderSource()==2){ | 
|---|
|  |  |  | sharingAmount = sharingAmount.add(service_reduce.multiply(BigDecimal.valueOf(0.2)).setScale(2,BigDecimal.ROUND_DOWN)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 累加充电度数 | 
|---|
|  |  |  | if (tChargingOrder.getChargingCapacity()!=null){ | 
|---|
|  |  |  | chargingCapacity = chargingCapacity.add(tChargingOrder.getChargingCapacity()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | chargingCapacity = chargingCapacity.add(charging_capacity); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 将chargingSecond 这是以秒为单位存放的总秒数 将其转化为xx小时xx分钟xx秒 | 
|---|
|  |  |  | int hours = chargingSecond / 3600; | 
|---|
|  |  |  | 
|---|
|  |  |  | chargingBillVO.setPaymentAmount(BigDecimal.ZERO); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | chargingBillListVO.setPaymentAmount(rechargeAmount); | 
|---|
|  |  |  | chargingBillListVO.setOrderAmount(paymentAmount == null?BigDecimal.ZERO:orderAmount.subtract(sharingAmount).subtract(commissionAmount)); | 
|---|
|  |  |  | chargingBillListVO.setPaymentAmount(paymentAmount); | 
|---|
|  |  |  | chargingBillListVO.setOrderAmount(refundAmount); | 
|---|
|  |  |  | chargingBillListVO.setRefundAmount(refundAmount == null?BigDecimal.ZERO:refundAmount); | 
|---|
|  |  |  | chargingBillListVO.setElectrovalence(electrovalence == null?BigDecimal.ZERO:electrovalence); | 
|---|
|  |  |  | chargingBillListVO.setServiceCharge(serviceCharge == null?BigDecimal.ZERO:serviceCharge); | 
|---|
|  |  |  | 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(rechargeAmount.subtract(refundAmount==null?BigDecimal.ZERO:refundAmount) | 
|---|
|  |  |  | chargingBillListVO.setBillMoney(paymentAmount | 
|---|
|  |  |  | .subtract(commissionAmount.setScale(2,BigDecimal.ROUND_DOWN)).subtract(sharingAmount).setScale(2, BigDecimal.ROUND_DOWN)); | 
|---|
|  |  |  | switch (chargingBillListVO.getType()){ | 
|---|
|  |  |  | case 1: | 
|---|
|  |  |  | chargingBillListVO.setSiteName("全站"); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 2: | 
|---|
|  |  |  | Site site = siteClient.getSiteByIds(Arrays.asList(chargingBillListVO.getSiteId())).getData().get(0); | 
|---|
|  |  |  | Site site = siteList.stream().filter(e -> e.getId().equals(chargingBillListVO.getSiteId())).findFirst().orElse(null); | 
|---|
|  |  |  | if (site!=null){ | 
|---|
|  |  |  | chargingBillListVO.setSiteName(site.getName()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | BigDecimal bigDecimal = new BigDecimal("0"); | 
|---|
|  |  |  | int i = 0; | 
|---|
|  |  |  | for (ChargingBillListVO chargingBillListVO : list1) { | 
|---|
|  |  |  | if (chargingBillListVO.getSiteId()!=0&&!siteIds.contains(chargingBillListVO.getSiteId())){ | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (chargingBillListVO.getType()==1){ | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | if (dto.getType() == 1){ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | if (chargingBillListVO.getSiteId()!=0&&!siteIds.contains(chargingBillListVO.getSiteId())){ | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (chargingBillListVO.getType()==1){ | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | i++; | 
|---|
|  |  |  | LocalDateTime billTime = chargingBillListVO.getBillTime(); | 
|---|
|  |  |  | 
|---|
|  |  |  | chargingBillVO.setBillWeek(billTime.minusMonths(1).format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM"))); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | chargingBillListVO.setUid(chargingBillListVO.getId().toString()); | 
|---|
|  |  |  | // 根据账单的出账时间 查询上个月的充电订单 | 
|---|
|  |  |  | LocalDateTime localDate = chargingBillListVO.getBillTime().minusMonths(1); | 
|---|
|  |  |  | // 账单周期 | 
|---|
|  |  |  | chargingBillListVO.setBillWeek(localDate.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM"))); | 
|---|
|  |  |  | // 获取 LocalDate 对象 | 
|---|
|  |  |  | LocalDate date = localDate.toLocalDate(); | 
|---|
|  |  |  | // 获取该月份的第一天 | 
|---|
|  |  |  | LocalDate firstDayOfMonth = date.withDayOfMonth(1); | 
|---|
|  |  |  | //            // 获取该月份的第一天 | 
|---|
|  |  |  | // 获取该月份的最后一天 | 
|---|
|  |  |  | LocalDate lastDayOfMonth = date.with(TemporalAdjusters.lastDayOfMonth()); | 
|---|
|  |  |  | QueryWrapper<TChargingOrder> eq = new QueryWrapper<TChargingOrder>() | 
|---|
|  |  |  | .between("create_time", firstDayOfMonth, lastDayOfMonth) | 
|---|
|  |  |  | .eq("status", 5) | 
|---|
|  |  |  | .eq("recharge_payment_status", 2); | 
|---|
|  |  |  | if (chargingBillListVO.getType() == 2) { | 
|---|
|  |  |  | eq.eq("site_id", chargingBillListVO.getSiteId()); | 
|---|
|  |  |  | LocalDateTime lastDayOfMonth = localDate.with(TemporalAdjusters.lastDayOfMonth()); | 
|---|
|  |  |  | LocalDateTime firstDayOfMonth = localDate.with(TemporalAdjusters.firstDayOfMonth()); | 
|---|
|  |  |  | List<TChargingOrder> tChargingOrders = new ArrayList<>(); | 
|---|
|  |  |  | if (chargingBillListVO.getType() == 2){ | 
|---|
|  |  |  | tChargingOrders = total.stream().filter(e -> e.getSiteId().equals(chargingBillListVO.getSiteId()) && e.getPayTime().isBefore(lastDayOfMonth.withHour(23).withMinute(59).withSecond(59)) | 
|---|
|  |  |  | && e.getPayTime().isAfter(firstDayOfMonth.withHour(0).withMinute(0).withSecond(0))).collect(Collectors.toList()); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | tChargingOrders = total.stream().filter(e ->  e.getPayTime().isBefore(lastDayOfMonth.withHour(23).withMinute(59).withSecond(59)) | 
|---|
|  |  |  | && e.getPayTime().isAfter(firstDayOfMonth.withHour(0).withMinute(0).withSecond(0))).collect(Collectors.toList()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<TChargingOrder> tChargingOrders = chargingOrderList.selectList(eq); | 
|---|
|  |  |  | tChargingOrders1.addAll(tChargingOrders); | 
|---|
|  |  |  | orderCount+=tChargingOrders.size(); | 
|---|
|  |  |  | chargingBillVO.setCategory(""); | 
|---|
|  |  |  | chargingBillVO.setExportList(tChargingOrders); | 
|---|
|  |  |  | for (TChargingOrder tChargingOrder : tChargingOrders) { | 
|---|
|  |  |  | if (tChargingOrder.getOrderAmount()!=null){ | 
|---|
|  |  |  | paymentAmountTotal = paymentAmountTotal.add(tChargingOrder.getRechargeAmount()); | 
|---|
|  |  |  | List<TChargingOrderAccountingStrategy> list4 = list3.stream().filter(e -> e.getChargingOrderId().equals(tChargingOrder.getId())).collect(Collectors.toList()); | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | tChargingOrder.setTotalAmount(electronic_reduce.add(service_reduce)+""); | 
|---|
|  |  |  | if (tChargingOrder.getOrderSource()!=2){ | 
|---|
|  |  |  | paymentAmountTotal = paymentAmountTotal.add(electronic_reduce.add(service_reduce)); | 
|---|
|  |  |  | // 累加累计服务费 | 
|---|
|  |  |  | serviceChargeTotal = serviceChargeTotal.add(service_reduce); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | paymentAmountTotal = paymentAmountTotal.add(electronic_reduce.add(service_reduce.multiply(new BigDecimal("0.8")))); | 
|---|
|  |  |  | // 累加累计服务费 | 
|---|
|  |  |  | serviceChargeTotal = serviceChargeTotal.add(service_reduce.multiply(new BigDecimal("0.8"))); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 累加订单金额 | 
|---|
|  |  |  | if (tChargingOrder.getOrderAmount()!=null){ | 
|---|
|  |  |  | orderAmountTotal = orderAmountTotal.add(tChargingOrder.getOrderAmount()); | 
|---|
|  |  |  | if (tChargingOrder.getRechargeAmount()!=null){ | 
|---|
|  |  |  | orderAmountTotal = orderAmountTotal.add(tChargingOrder.getRechargeAmount()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 累加累计电费 | 
|---|
|  |  |  | if (tChargingOrder.getElectrovalence()!=null){ | 
|---|
|  |  |  | electrovalenceTotal = electrovalenceTotal.add(tChargingOrder.getElectrovalence()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<TChargingOrderRefund> list2 = chargingOrderRefundService.lambdaQuery().eq(TChargingOrderRefund::getChargingOrderId, tChargingOrder.getId()) | 
|---|
|  |  |  | .eq(TChargingOrderRefund::getRefundStatus, 2).list(); | 
|---|
|  |  |  | electrovalenceTotal = electrovalenceTotal.add(electronic_reduce); | 
|---|
|  |  |  | List<TChargingOrderRefund> list2 = totalRefund.stream().filter(e -> e.getChargingOrderId().equals(tChargingOrder.getId())).collect(Collectors.toList()); | 
|---|
|  |  |  | for (TChargingOrderRefund tChargingOrderRefund : list2) { | 
|---|
|  |  |  | refundAmountTotal =refundAmountTotal.add(tChargingOrderRefund.getRefundAmount()); | 
|---|
|  |  |  | tChargingOrder.setRefundAmount(tChargingOrderRefund.getRefundAmount()); | 
|---|
|  |  |  | 
|---|
|  |  |  | tChargingOrder.setRefundTime1(DateUtils.localDateTimeToString(tChargingOrderRefund.getRefundTime())); | 
|---|
|  |  |  | bigDecimal = bigDecimal.add(tChargingOrderRefund.getRefundAmount()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 累加累计服务费 | 
|---|
|  |  |  | if (tChargingOrder.getServiceCharge()!=null){ | 
|---|
|  |  |  | serviceChargeTotal = serviceChargeTotal.add(tChargingOrder.getServiceCharge()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 累加平台手续费 | 
|---|
|  |  |  | if (tChargingOrder.getOrderAmount()!=null){ | 
|---|
|  |  |  | commissionAmountTotal = commissionAmountTotal.add(tChargingOrder.getPaymentAmount().multiply(new BigDecimal("0.006")) | 
|---|
|  |  |  | commissionAmountTotal = commissionAmountTotal.add(tChargingOrder.getRechargeAmount().multiply(new BigDecimal("0.006")) | 
|---|
|  |  |  | .setScale(2,BigDecimal.ROUND_DOWN)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 累加平台分佣 | 
|---|
|  |  |  | if (tChargingOrder.getSharingAmount()!=null){ | 
|---|
|  |  |  | sharingAmountTotal = sharingAmountTotal.add(tChargingOrder.getSharingAmount()); | 
|---|
|  |  |  | if (tChargingOrder.getOrderSource()==2 ){ | 
|---|
|  |  |  | sharingAmountTotal = sharingAmountTotal.add(service_reduce.multiply(BigDecimal.valueOf(0.2)).setScale(2,BigDecimal.ROUND_DOWN)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 累加充电度数 | 
|---|
|  |  |  | if (tChargingOrder.getElectricity()!=null){ | 
|---|
|  |  |  | chargingCapacityTotal = chargingCapacityTotal.add(charging_capacity); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | chargingCapacityTotal = chargingCapacityTotal.add(tChargingOrder.getElectricity()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 累加优惠金额 | 
|---|
|  |  |  | if (tChargingOrder.getCouponDiscountAmount()!=null){ | 
|---|
|  |  |  | discountTotal = discountTotal.add(tChargingOrder.getCouponDiscountAmount()); | 
|---|
|  |  |  | 
|---|
|  |  |  | discountTotal = discountTotal.add(tChargingOrder.getVipDiscountAmount()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | tChargingOrders1.addAll(tChargingOrders); | 
|---|
|  |  |  | chargingBillVO.setExportList(tChargingOrders); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | chargingBillVO.setOrderCount(i); | 
|---|
|  |  |  | chargingBillVO.setChargingCapacity(chargingCapacityTotal); | 
|---|
|  |  |  | chargingBillVO.setPaymentAmount(paymentAmountTotal); | 
|---|
|  |  |  | chargingBillVO.setOrderAmount(paymentAmountTotal.subtract(refundAmountTotal).subtract(commissionAmountTotal).subtract(sharingAmountTotal)); | 
|---|
|  |  |  | chargingBillVO.setOrderAmount(orderAmountTotal); | 
|---|
|  |  |  | chargingBillVO.setElectrovalence(electrovalenceTotal); | 
|---|
|  |  |  | chargingBillVO.setServiceCharge(serviceChargeTotal); | 
|---|
|  |  |  | chargingBillVO.setOrderCount(orderCount); | 
|---|
|  |  |  | chargingBillVO.setCommissionAmount(commissionAmountTotal); | 
|---|
|  |  |  | chargingBillVO.setSharingAmount(sharingAmountTotal); | 
|---|
|  |  |  | chargingBillVO.setDiscount(discountTotal); | 
|---|
|  |  |  | 
|---|
|  |  |  | chargingBillVO.setList(pageInfo); | 
|---|
|  |  |  | return chargingBillVO; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private TChargingOrderAccountingStrategyService chargingOrderAccountingStrategyService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public ChargingBillVO chargingBillList(ChargingListQuery dto) { | 
|---|
|  |  |  | 
|---|
|  |  |  | startTime2 = split[1]; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<TChargingOrder> total = chargingOrderList.selectList(new LambdaQueryWrapper<>(TChargingOrder.class) | 
|---|
|  |  |  | .eq(TChargingOrder::getRechargePaymentStatus, 2)); | 
|---|
|  |  |  | .isNotNull(TChargingOrder::getPayTime)); | 
|---|
|  |  |  | PageInfo<ChargingBillListVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize()); | 
|---|
|  |  |  | List<Site> data6 = siteClient.getSiteAll().getData(); | 
|---|
|  |  |  | List<TChargingGun> gunList = chargingGunClient.getAllGun().getData(); | 
|---|
|  |  |  | List<TChargingPile> pileList = chargingGunClient.getAllPile().getData(); | 
|---|
|  |  |  | List<TAppUser> userList = appUserClient.getAllUser().getData(); | 
|---|
|  |  |  | List<TAppUserCar> carList = appUserCarClient.getAllCar().getData(); | 
|---|
|  |  |  | List<TChargingOrderAccountingStrategy> list3 = chargingOrderAccountingStrategyService.list(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Long userId = tokenService.getLoginUser().getUserid(); | 
|---|
|  |  |  | // 查询当前登陆人按钮权限 | 
|---|
|  |  |  | SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData(); | 
|---|
|  |  |  | 
|---|
|  |  |  | siteIds.add(-1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | dto.setSiteIds(siteIds); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<ChargingBillListVO> list = this.baseMapper.chargingBillList(pageInfo,dto,startTime1,startTime2); | 
|---|
|  |  |  | List<ChargingBillListVO> list1 = this.baseMapper.chargingBillListNoLimit(dto,startTime1,startTime2); | 
|---|
|  |  |  | BigDecimal paymentAmountTotal = new BigDecimal("0"); | 
|---|
|  |  |  | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | 
|---|
|  |  |  | 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 对象 | 
|---|
|  |  |  | 
|---|
|  |  |  | // 获取该月份的最后一天 | 
|---|
|  |  |  | LocalDateTime lastDayOfMonth = localDate.with(TemporalAdjusters.lastDayOfMonth()); | 
|---|
|  |  |  | LocalDateTime firstDayOfMonth = localDate.with(TemporalAdjusters.firstDayOfMonth()); | 
|---|
|  |  |  | //            QueryWrapper<TChargingOrder> eq = new QueryWrapper<TChargingOrder>() | 
|---|
|  |  |  | //                    .between("pay_time", firstDayOfMonth.withHour(0).withMinute(0).withSecond(0), lastDayOfMonth.withHour(23).withMinute(59).withSecond(59)) | 
|---|
|  |  |  | //                    .eq("recharge_payment_status", 2); | 
|---|
|  |  |  | //            if (chargingBillListVO.getType() == 2) { | 
|---|
|  |  |  | //                eq.eq("site_id", chargingBillListVO.getSiteId()); | 
|---|
|  |  |  | //            } | 
|---|
|  |  |  | //            List<TChargingOrder> tChargingOrders = chargingOrderList.selectList(eq); | 
|---|
|  |  |  | List<TChargingOrder> tChargingOrders = total.stream().filter(e -> chargingBillListVO.getType() == 2 ? | 
|---|
|  |  |  | e.getSiteId().equals(chargingBillListVO.getSiteId()) : true && | 
|---|
|  |  |  | e.getPayTime().isBefore(lastDayOfMonth.withHour(23).withMinute(59).withSecond(59)) | 
|---|
|  |  |  | && e.getPayTime().isAfter(firstDayOfMonth.withHour(0).withMinute(0).withSecond(0))).collect(Collectors.toList()); | 
|---|
|  |  |  | List<TChargingOrder> tChargingOrders = new ArrayList<>(); | 
|---|
|  |  |  | if (chargingBillListVO.getType() == 2){ | 
|---|
|  |  |  | tChargingOrders = total.stream().filter(e -> e.getSiteId().equals(chargingBillListVO.getSiteId()) && e.getPayTime().isBefore(lastDayOfMonth.withHour(23).withMinute(59).withSecond(59)) | 
|---|
|  |  |  | && e.getPayTime().isAfter(firstDayOfMonth.withHour(0).withMinute(0).withSecond(0))).collect(Collectors.toList()); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | tChargingOrders = total.stream().filter(e ->  e.getPayTime().isBefore(lastDayOfMonth.withHour(23).withMinute(59).withSecond(59)) | 
|---|
|  |  |  | && e.getPayTime().isAfter(firstDayOfMonth.withHour(0).withMinute(0).withSecond(0))).collect(Collectors.toList()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | int chargingSecond = 0; | 
|---|
|  |  |  | BigDecimal paymentAmount = new BigDecimal("0"); | 
|---|
|  |  |  | BigDecimal orderAmount = new BigDecimal("0"); | 
|---|
|  |  |  | 
|---|
|  |  |  | chargingBillVO.setCategory(""); | 
|---|
|  |  |  | chargingBillListVO.setOrderCount(tChargingOrders.size()); | 
|---|
|  |  |  | chargingBillVO.setExportList(tChargingOrders); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | int t = 1; | 
|---|
|  |  |  | for (TChargingOrder tChargingOrder : tChargingOrders) { | 
|---|
|  |  |  | tChargingOrder.setXuhao(t); | 
|---|
|  |  |  | t++; | 
|---|
|  |  |  | if (tChargingOrder.getRechargePaymentType()!=null && tChargingOrder.getRechargePaymentType()==1){ | 
|---|
|  |  |  | chargingBillListVO.setPayTypeName("微信商户"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | tChargingOrder.setOrderClassification1("线上订单"); | 
|---|
|  |  |  | tChargingOrder.setRechargePaymentType1("预付"); | 
|---|
|  |  |  | tChargingOrder.setChargingType("充电桩接口充电服务"); | 
|---|
|  |  |  | switch (tChargingOrder.getStatus()){ | 
|---|
|  |  |  | case 1: | 
|---|
|  |  |  | tChargingOrder.setStatus1("等待中"); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 2: | 
|---|
|  |  |  | tChargingOrder.setStatus1("启动中"); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 3: | 
|---|
|  |  |  | tChargingOrder.setStatus1("充电中"); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 4: | 
|---|
|  |  |  | tChargingOrder.setStatus1("停止中"); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 5: | 
|---|
|  |  |  | tChargingOrder.setStatus1("已结束"); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 0: | 
|---|
|  |  |  | tChargingOrder.setStatus1("未知"); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | if (tChargingOrder.getStatus()!=null){ | 
|---|
|  |  |  | switch (tChargingOrder.getStatus()){ | 
|---|
|  |  |  | case 1: | 
|---|
|  |  |  | tChargingOrder.setStatus1("等待中"); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 2: | 
|---|
|  |  |  | tChargingOrder.setStatus1("启动中"); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 3: | 
|---|
|  |  |  | tChargingOrder.setStatus1("充电中"); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 4: | 
|---|
|  |  |  | tChargingOrder.setStatus1("停止中"); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 5: | 
|---|
|  |  |  | tChargingOrder.setStatus1("已结束"); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 0: | 
|---|
|  |  |  | tChargingOrder.setStatus1("未知"); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (tChargingOrder.getEndMode()!=null){ | 
|---|
|  |  |  | switch (tChargingOrder.getEndMode()){ | 
|---|
|  |  |  | case 1: | 
|---|
|  |  |  | 
|---|
|  |  |  | 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(); | 
|---|
|  |  |  | 
|---|
|  |  |  | tChargingOrder.setLicensePlate(tAppUserCar.getLicensePlate()); | 
|---|
|  |  |  | tChargingOrder.setVehicleModel(tAppUserCar.getVehicleModel()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | tChargingOrder.setLicensePlate(tChargingOrder.getPlateNum()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (data3!=null)tChargingOrder.setUserName(data3.getName()); | 
|---|
|  |  |  | if ( tChargingOrder.getPaymentAmount()!=null){ | 
|---|
|  |  |  | paymentAmount = paymentAmount.add(tChargingOrder.getPaymentAmount()); | 
|---|
|  |  |  | if (data3!=null){ | 
|---|
|  |  |  | tChargingOrder.setUserName(data3.getName()); | 
|---|
|  |  |  | tChargingOrder.setPhone(data3.getPhone()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<TChargingOrderAccountingStrategy> list4 = list3.stream().filter(e -> e.getChargingOrderId().equals(tChargingOrder.getId())).collect(Collectors.toList()); | 
|---|
|  |  |  | 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){ | 
|---|
|  |  |  | orderAmount = orderAmount.add(tChargingOrder.getRechargeAmount()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 累加累计电费 | 
|---|
|  |  |  | if (tChargingOrder.getElectrovalence()!=null){ | 
|---|
|  |  |  | electrovalence = electrovalence.add(tChargingOrder.getElectrovalence()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | electrovalence = electrovalence.add(electronic_reduce); | 
|---|
|  |  |  | if (tChargingOrder.getRefundAmount()!=null && tChargingOrder.getRefundStatus() !=null && tChargingOrder.getRefundStatus() == 2){ | 
|---|
|  |  |  | refundAmount = refundAmount.add(tChargingOrder.getRefundAmount()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 累加累计服务费 | 
|---|
|  |  |  | if (tChargingOrder.getServiceCharge()!=null){ | 
|---|
|  |  |  | serviceCharge = serviceCharge.add(tChargingOrder.getServiceCharge()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (tChargingOrder.getOrderSource().equals(2)) { | 
|---|
|  |  |  | serviceCharge = serviceCharge.add(service_reduce.multiply(new BigDecimal("0.8")).setScale(2, BigDecimal.ROUND_DOWN)); | 
|---|
|  |  |  | // 累加平台分佣 | 
|---|
|  |  |  | 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.getOrderAmount()!=null){ | 
|---|
|  |  |  | commissionAmount = commissionAmount.add(tChargingOrder.getPaymentAmount().multiply(BigDecimal.valueOf(0.006)) | 
|---|
|  |  |  | .setScale(2,BigDecimal.ROUND_DOWN)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 累加平台分佣 | 
|---|
|  |  |  | if (tChargingOrder.getSharingAmount()!=null){ | 
|---|
|  |  |  | sharingAmount = sharingAmount.add(tChargingOrder.getSharingAmount()); | 
|---|
|  |  |  | if (tChargingOrder.getRechargeAmount()!=null){ | 
|---|
|  |  |  | commissionAmount = commissionAmount.add(tChargingOrder.getRechargeAmount().multiply(BigDecimal.valueOf(0.006)).setScale(2,BigDecimal.ROUND_DOWN)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 累加充电度数 | 
|---|
|  |  |  | if (tChargingOrder.getChargingCapacity()!=null){ | 
|---|
|  |  |  | chargingCapacity = chargingCapacity.add(tChargingOrder.getChargingCapacity()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | chargingCapacity = chargingCapacity.add(charging_capacity); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 将chargingSecond 这是以秒为单位存放的总秒数 将其转化为xx小时xx分钟xx秒 | 
|---|
|  |  |  | int hours = chargingSecond / 3600; | 
|---|
|  |  |  | 
|---|
|  |  |  | // 格式化为字符串 | 
|---|
|  |  |  | String timeString = String.format("%d小时%d分钟%d秒", hours, minutes, seconds); | 
|---|
|  |  |  | chargingBillVO.setChargingTime(timeString); | 
|---|
|  |  |  | chargingBillListVO.setOrderAmount(orderAmount.subtract(refundAmount)); | 
|---|
|  |  |  | chargingBillListVO.setOrderAmount(paymentAmount); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | chargingBillListVO.setPaymentAmount(chargingBillListVO.getOrderAmount().subtract(commissionAmount).subtract(sharingAmount).setScale(2,BigDecimal.ROUND_DOWN)); | 
|---|
|  |  |  | chargingBillListVO.setPaymentAmount(paymentAmount.subtract(sharingAmount).setScale(2,BigDecimal.ROUND_DOWN)); | 
|---|
|  |  |  | chargingBillListVO.setElectrovalence(electrovalence); | 
|---|
|  |  |  | chargingBillListVO.setServiceCharge(serviceCharge.setScale(2,BigDecimal.ROUND_DOWN)); | 
|---|
|  |  |  | chargingBillListVO.setCommissionAmount(commissionAmount.setScale(2,BigDecimal.ROUND_DOWN)); | 
|---|
|  |  |  | 
|---|
|  |  |  | chargingBillListVO.setChargingSecond(chargingSecond); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | for (ChargingBillListVO chargingBillListVO : list1) { | 
|---|
|  |  |  | if (chargingBillListVO.getSiteId()!=0&&!siteIds.contains(chargingBillListVO.getSiteId())){ | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | if (dto.getType() == 1){ | 
|---|
|  |  |  | if (chargingBillListVO.getSiteId()!=0){ | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | if (chargingBillListVO.getSiteId()!=0&&!siteIds.contains(chargingBillListVO.getSiteId())){ | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (chargingBillListVO.getType()==1){ | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (roleType == 2){ | 
|---|
|  |  |  | if (chargingBillListVO.getSiteId()==0){ | 
|---|
|  |  |  | 
|---|
|  |  |  | 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 对象 | 
|---|
|  |  |  | 
|---|
|  |  |  | // 获取该月份的最后一天 | 
|---|
|  |  |  | LocalDateTime lastDayOfMonth = localDate.with(TemporalAdjusters.lastDayOfMonth()); | 
|---|
|  |  |  | LocalDateTime firstDayOfMonth = localDate.with(TemporalAdjusters.firstDayOfMonth()); | 
|---|
|  |  |  | //            QueryWrapper<TChargingOrder> eq = new QueryWrapper<TChargingOrder>() | 
|---|
|  |  |  | //                    .between("pay_time", firstDayOfMonth.withHour(0).withMinute(0).withSecond(0), lastDayOfMonth.withHour(23).withMinute(59).withSecond(59)) | 
|---|
|  |  |  | //                    .eq("recharge_payment_status", 2); | 
|---|
|  |  |  | //            if (chargingBillListVO.getType() == 2) { | 
|---|
|  |  |  | //                eq.eq("site_id", chargingBillListVO.getSiteId()); | 
|---|
|  |  |  | //            } | 
|---|
|  |  |  | //            List<TChargingOrder> tChargingOrders = chargingOrderList.selectList(eq); | 
|---|
|  |  |  | List<TChargingOrder> tChargingOrders = total.stream().filter(e -> chargingBillListVO.getType() == 2 ? | 
|---|
|  |  |  | e.getSiteId().equals(chargingBillListVO.getSiteId()) : true && | 
|---|
|  |  |  | e.getPayTime().isBefore(lastDayOfMonth.withHour(23).withMinute(59).withSecond(59)) | 
|---|
|  |  |  | && e.getPayTime().isAfter(firstDayOfMonth.withHour(0).withMinute(0).withSecond(0))).collect(Collectors.toList()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<TChargingOrder> tChargingOrders = new ArrayList<>(); | 
|---|
|  |  |  | if (chargingBillListVO.getType() == 2){ | 
|---|
|  |  |  | tChargingOrders = total.stream().filter(e -> e.getSiteId().equals(chargingBillListVO.getSiteId()) && e.getPayTime().isBefore(lastDayOfMonth.withHour(23).withMinute(59).withSecond(59)) | 
|---|
|  |  |  | && e.getPayTime().isAfter(firstDayOfMonth.withHour(0).withMinute(0).withSecond(0))).collect(Collectors.toList()); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | tChargingOrders = total.stream().filter(e ->  e.getPayTime().isBefore(lastDayOfMonth.withHour(23).withMinute(59).withSecond(59)) | 
|---|
|  |  |  | && e.getPayTime().isAfter(firstDayOfMonth.withHour(0).withMinute(0).withSecond(0))).collect(Collectors.toList()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | orderCount+=tChargingOrders.size(); | 
|---|
|  |  |  | BigDecimal paymentAmount = new BigDecimal("0"); | 
|---|
|  |  |  | BigDecimal orderAmount = new BigDecimal("0"); | 
|---|
|  |  |  | 
|---|
|  |  |  | BigDecimal chargingCapacity = new BigDecimal("0"); | 
|---|
|  |  |  | chargingBillListVO.setOrderCount(tChargingOrders.size()); | 
|---|
|  |  |  | for (TChargingOrder tChargingOrder : tChargingOrders) { | 
|---|
|  |  |  | // 累加实收金额 支付金额减去退款金额 | 
|---|
|  |  |  | if (tChargingOrder.getPaymentAmount()!=null){ | 
|---|
|  |  |  | paymentAmount = paymentAmount.add(tChargingOrder.getPaymentAmount()); | 
|---|
|  |  |  | paymentAmountTotal = paymentAmountTotal.add(tChargingOrder.getPaymentAmount()); | 
|---|
|  |  |  | List<TChargingOrderAccountingStrategy> list4 = list3.stream().filter(e -> e.getChargingOrderId().equals(tChargingOrder.getId())).collect(Collectors.toList()); | 
|---|
|  |  |  | 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)); | 
|---|
|  |  |  | paymentAmountTotal = paymentAmountTotal.add(electronic_reduce.add(service_reduce)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 累加订单金额 | 
|---|
|  |  |  | if (tChargingOrder.getRechargeAmount()!=null){ | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 累加累计电费 | 
|---|
|  |  |  | if (tChargingOrder.getElectrovalence()!=null){ | 
|---|
|  |  |  | electrovalence = electrovalence.add(tChargingOrder.getElectrovalence()); | 
|---|
|  |  |  | electrovalenceTotal = electrovalenceTotal.add(tChargingOrder.getElectrovalence()); | 
|---|
|  |  |  | electrovalence = electrovalence.add(electronic_reduce); | 
|---|
|  |  |  | electrovalenceTotal = electrovalenceTotal.add(electronic_reduce); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (tChargingOrder.getRefundAmount()!=null && tChargingOrder.getRefundStatus() !=null && tChargingOrder.getRefundStatus() == 2){ | 
|---|
|  |  |  | refundAmountTotal = refundAmountTotal.add(tChargingOrder.getRefundAmount()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 累加累计服务费 | 
|---|
|  |  |  | if (tChargingOrder.getServiceCharge()!=null){ | 
|---|
|  |  |  | serviceCharge = serviceCharge.add(tChargingOrder.getServiceCharge()); | 
|---|
|  |  |  | serviceChargeTotal = serviceChargeTotal.add(tChargingOrder.getServiceCharge()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 累加平台手续费 | 
|---|
|  |  |  | if (tChargingOrder.getOrderSource().equals(2)) { | 
|---|
|  |  |  | serviceCharge = serviceCharge.add(service_reduce.multiply(new BigDecimal("0.8")).setScale(2, BigDecimal.ROUND_DOWN)); | 
|---|
|  |  |  | serviceChargeTotal = serviceChargeTotal.add(service_reduce.multiply(new BigDecimal("0.8")).setScale(2, BigDecimal.ROUND_DOWN)); | 
|---|
|  |  |  | // 累加平台分佣 | 
|---|
|  |  |  | sharingAmount = sharingAmount.add(service_reduce.multiply(new BigDecimal("0.2")).setScale(2, BigDecimal.ROUND_DOWN)); | 
|---|
|  |  |  | sharingAmountTotal = sharingAmountTotal.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))); | 
|---|
|  |  |  | paymentAmountTotal = paymentAmountTotal.add(electronic_reduce.add(service_reduce.multiply(new BigDecimal("0.8")).setScale(2,BigDecimal.ROUND_DOWN))); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | serviceCharge = serviceCharge.add(service_reduce); | 
|---|
|  |  |  | serviceChargeTotal = serviceChargeTotal.add(service_reduce); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 累加平台手续费 | 
|---|
|  |  |  | if (tChargingOrder.getOrderAmount()!=null){ | 
|---|
|  |  |  | commissionAmount = commissionAmount.add(tChargingOrder.getPaymentAmount().multiply(new BigDecimal("0.006")).setScale(2,BigDecimal.ROUND_DOWN)); | 
|---|
|  |  |  | commissionAmountTotal = commissionAmountTotal.add(tChargingOrder.getPaymentAmount().multiply(new BigDecimal("0.006")) | 
|---|
|  |  |  | .setScale(2,BigDecimal.ROUND_DOWN)); | 
|---|
|  |  |  | 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)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 累加平台分佣 | 
|---|
|  |  |  | if (tChargingOrder.getSharingAmount()!=null){ | 
|---|
|  |  |  | sharingAmount = sharingAmount.add(tChargingOrder.getSharingAmount()); | 
|---|
|  |  |  | sharingAmountTotal = sharingAmountTotal.add(tChargingOrder.getSharingAmount()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 累加充电度数 | 
|---|
|  |  |  | if (tChargingOrder.getElectricity()!=null){ | 
|---|
|  |  |  | chargingCapacity = chargingCapacity.add(tChargingOrder.getElectricity()); | 
|---|
|  |  |  | chargingCapacityTotal = chargingCapacityTotal.add(tChargingOrder.getElectricity()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | chargingCapacity = chargingCapacity.add(charging_capacity); | 
|---|
|  |  |  | chargingCapacityTotal = chargingCapacityTotal.add(charging_capacity); | 
|---|
|  |  |  | // 累加优惠金额 | 
|---|
|  |  |  | if (tChargingOrder.getCouponDiscountAmount()!=null){ | 
|---|
|  |  |  | discountTotal = discountTotal.add(tChargingOrder.getCouponDiscountAmount()); | 
|---|