From a96c5eddcd63fa6f09e4cdce9e28c7b846068f0c Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期三, 18 九月 2024 16:45:51 +0800 Subject: [PATCH] 9.18 --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 382 +++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 278 insertions(+), 104 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 3dbf5be..85e408c 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 @@ -450,8 +450,14 @@ this.save(chargingOrder); //添加订单的计费策略 - TAccountingStrategy accountingStrategy = accountingStrategyClient.getAccountingStrategyById(tChargingGun.getAccountingStrategyId()).getData(); - List<TAccountingStrategyDetail> strategyDetailList = accountingStrategyDetailClient.getListByAccountingStrategyId(tChargingGun.getAccountingStrategyId()).getData(); + Integer accountingStrategyId = tChargingGun.getAccountingStrategyId(); + if(null == accountingStrategyId){ + //查询站点上面的计费策略 + Site site = siteClient.getSiteByIds(Arrays.asList(tChargingGun.getSiteId())).getData().get(0); + accountingStrategyId = site.getAccountingStrategyId(); + } + TAccountingStrategy accountingStrategy = accountingStrategyClient.getAccountingStrategyById(accountingStrategyId).getData(); + List<TAccountingStrategyDetail> strategyDetailList = accountingStrategyDetailClient.getListByAccountingStrategyId(accountingStrategyId).getData(); AccountingStrategyOrder accountingStrategyOrder = new AccountingStrategyOrder(); BeanUtils.copyProperties(accountingStrategy, accountingStrategyOrder); accountingStrategyOrder.setChargingOrderId(chargingOrder.getId()); @@ -1184,10 +1190,12 @@ if (!data.isEmpty()) { chargingOrderListVO.setSiteName(data.get(0).getName()); } - TChargingGun data1 = chargingGunClient.getChargingGunById(chargingOrderListVO.getChargingGunId()).getData(); - TChargingPile data2 = chargingPileClient.getChargingPileById(chargingOrderListVO.getChargingPileId()).getData(); - if (data2 != null && data1 != null) { - chargingOrderListVO.setTerminalName(data2.getName() + "-" + data1.getName()); + if (chargingOrderListVO.getChargingGunId()!=null && chargingOrderListVO.getChargingPileId()!=null){ + TChargingGun data1 = chargingGunClient.getChargingGunById(chargingOrderListVO.getChargingGunId()).getData(); + TChargingPile data2 = chargingPileClient.getChargingPileById(chargingOrderListVO.getChargingPileId()).getData(); + if (data2 != null && data1 != null) { + chargingOrderListVO.setTerminalName(data2.getName() + "-" + data1.getName()); + } } // 获取充电时间 UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(chargingOrderListVO.getCode()).getData(); @@ -1198,20 +1206,30 @@ } } // 获取开始SOC 结束soc - List<UploadRealTimeMonitoringData> data6 = uploadRealTimeMonitoringDataClient.getDataByOrderCode(chargingOrderListVO.getCode()).getData(); - if (!data6.isEmpty()){ - // 第一条数据soc为开始 最后一条数据soc为结束soc - chargingOrderListVO.setStartSoc(data6.get(0).getSoc().toString()); - chargingOrderListVO.setEndSoc(data6.get(data6.size()-1).getSoc().toString()); + if (chargingOrderListVO.getCode()!=null){ + List<UploadRealTimeMonitoringData> data6 = uploadRealTimeMonitoringDataClient.getDataByOrderCode(chargingOrderListVO.getCode()).getData(); + if (!data6.isEmpty()){ + // 第一条数据soc为开始 最后一条数据soc为结束soc + chargingOrderListVO.setStartSoc(data6.get(0).getSoc().toString()); + chargingOrderListVO.setEndSoc(data6.get(data6.size()-1).getSoc().toString()); + } } - TAppUser data3 = appUserClient.getUserById(chargingOrderListVO.getAppUserId()).getData(); - List<Long> carId = new ArrayList<>(); - if (chargingOrderListVO.getAppUserCarId() != null) { - carId.add(chargingOrderListVO.getAppUserCarId()); - List<TAppUserCar> data4 = appUserCarClient.getCarByIds(carId).getData(); - if (!data4.isEmpty()) chargingOrderListVO.setLicensePlate(data4.get(0).getLicensePlate()); + + if (chargingOrderListVO.getAppUserId()!=null){ + TAppUser data3 = appUserClient.getUserById(chargingOrderListVO.getAppUserId()).getData(); + List<Long> carId = new ArrayList<>(); + if (data3!=null){ + if (chargingOrderListVO.getAppUserCarId() != null) { + carId.add(chargingOrderListVO.getAppUserCarId()); + if (!carId.isEmpty()){ + List<TAppUserCar> data4 = appUserCarClient.getCarByIds(carId).getData(); + if (data4!=null && !data4.isEmpty()) chargingOrderListVO.setLicensePlate(data4.get(0).getLicensePlate()); + } + } + if (data3 != null) chargingOrderListVO.setPhone(data3.getPhone()); + + } } - if (data3 != null) chargingOrderListVO.setPhone(data3.getPhone()); List<TChargingOrderAccountingStrategy> list2 = chargingOrderAccountingStrategyService.lambdaQuery() .eq(TChargingOrderAccountingStrategy::getChargingOrderId, chargingOrderListVO.getId()).list(); // 尖峰平谷充电量 度数 @@ -1237,14 +1255,24 @@ } } total = total.add(jian).add(feng).add(ping).add(gu); - chargingOrderListVO.setElectronicProportion( - jian.divide(total,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%(尖)/" - +feng.divide(total,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%(峰)/" - +ping.divide(total,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%(平)/" - +gu.divide(total,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%(谷)"); + if (total.compareTo(new BigDecimal("0")) != 0){ + chargingOrderListVO.setElectronicProportion( + jian.divide(total,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%(尖)/" + +feng.divide(total,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%(峰)/" + +ping.divide(total,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%(平)/" + +gu.divide(total,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"))+"%(谷)"); + }else{ + chargingOrderListVO.setElectronicProportion( + "0"+"%(尖)/"+ + "0"+"%(峰)/"+ + "0"+"%(平)/"+ + "0"+"%(谷)"); + } + } // 不分页 - List<ChargingOrderListVO> list1 = this.baseMapper.chargingList1(dto,startTime1,startTime2,endTime1,endTime2); + PageInfo<ChargingOrderListVO> pageInfo1 = new PageInfo<>(1,999999999); + List<ChargingOrderListVO> list1 = this.baseMapper.chargingList(pageInfo1,dto,startTime1,startTime2,endTime1,endTime2); chargingOrderTimeVO.setExportList(list1); chargingOrderTimeVO.setOrderCount(list1.size()); // 计算充电总度数 @@ -1271,33 +1299,34 @@ BigDecimal ping = new BigDecimal("0"); BigDecimal gu = new BigDecimal("0"); for (ChargingOrderListVO chargingOrderListVO : list1) { - electronic = electronic.add(chargingOrderListVO.getChargingCapacity()); - paymentAmount = paymentAmount.add(chargingOrderListVO.getPaymentAmount()); - electrovalence = electrovalence.add(chargingOrderListVO.getElectrovalence()); - serviceCharge = serviceCharge.add(chargingOrderListVO.getServiceCharge()); + if (chargingOrderListVO.getChargingCapacity()!=null)electronic = electronic.add(chargingOrderListVO.getChargingCapacity()); + + if (chargingOrderListVO.getPaymentAmount()!=null)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 = chargingOrderAccountingStrategyService.lambdaQuery() .eq(TChargingOrderAccountingStrategy::getChargingOrderId, chargingOrderListVO.getId()).list(); for (TChargingOrderAccountingStrategy temp : list2) { switch (temp.getType()){ case 1: - jian = jian.add(temp.getChargingCapacity()); - jianElectronic = jianElectronic.add(temp.getChargingCapacity()); - jianService = jianService.add(temp.getChargingCapacity()); + 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: - feng = feng.add(temp.getChargingCapacity()); - fengElectronic = fengElectronic.add(temp.getChargingCapacity()); - fengService = fengService.add(temp.getChargingCapacity()); + 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: - ping = ping.add(temp.getChargingCapacity()); - pingElectronic = pingElectronic.add(temp.getChargingCapacity()); - pingService = pingService.add(temp.getChargingCapacity()); + 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: - gu = gu.add(temp.getChargingCapacity()); - guElectronic = guElectronic.add(temp.getChargingCapacity()); - guService = guService.add(temp.getChargingCapacity()); + 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; } } @@ -1313,21 +1342,40 @@ BigDecimal add1 = jianService.add(fengService).add(pingService).add(guService); // 计算尖峰平谷充电到账占比 BigDecimal add2 = jian.add(feng).add(ping).add(gu); - 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.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"))+"%"); + 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.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"))+"%"); + }else{ + chargingOrderTimeVO.setCapacityProportion(jianElectronic+"度/"+fengElectronic+"度/"+pingElectronic+"度/"+guElectronic+"度-" + +"0"+"%/" + +"0"+"%/" + +"0"+"%/" + +"0"+"%"); + chargingOrderTimeVO.setServiceProportion(jianService+"元/"+fengService+"元/"+pingService+"元/"+guService+"元-" + +"0"+"%/" + +"0"+"%/" + +"0"+"%/" + +"0"+"%"); + chargingOrderTimeVO.setElectronicProportion(jian+"元/"+feng+"元/"+ping+"元/"+gu+"元-" + +"0"+"%/" + +"0"+"%/" + +"0"+"%/" + +"0"+"%"); + } + pageInfo.setRecords(list); chargingOrderTimeVO.setList(pageInfo); return chargingOrderTimeVO; } @@ -1342,39 +1390,69 @@ TChargingOrder chargingOrder= this.getById(uid); ChargingOrderListInfoVO chargingOrderListInfoVO = new ChargingOrderListInfoVO(); + chargingOrderListInfoVO.setElectrovalence(chargingOrder.getElectrovalence()); + chargingOrderListInfoVO.setServiceCharge(chargingOrder.getServiceCharge()); + if (chargingOrder.getElectrovalence()!=null && chargingOrder.getServiceCharge()!=null){ + chargingOrderListInfoVO.setTotal(chargingOrder.getElectrovalence().add(chargingOrder.getServiceCharge())); + }else{ + chargingOrderListInfoVO.setTotal(new BigDecimal("0")); + } + if (chargingOrderListInfoVO.getTotal().compareTo(new BigDecimal("0"))>0){ + if (chargingOrder.getCouponDiscountAmount()!=null&& chargingOrder.getVipDiscountAmount()!=null&& chargingOrder.getSharingAmount()!=null&& chargingOrder.getCommissionAmount()!=null){ + chargingOrderListInfoVO.setRealTotal(chargingOrderListInfoVO.getTotal().subtract(chargingOrder.getCouponDiscountAmount()).subtract(chargingOrder.getVipDiscountAmount()).subtract(chargingOrder.getSharingAmount()).subtract(chargingOrder.getCommissionAmount())); + }else{ + chargingOrderListInfoVO.setRealTotal(chargingOrderListInfoVO.getTotal()); + } + }else{ + chargingOrderListInfoVO.setRealTotal(new BigDecimal("0")); + } chargingOrderListInfoVO.setCode(chargingOrder.getCode()); List<Site> data = siteClient.getSiteByIds(Arrays.asList(chargingOrder.getSiteId())).getData(); if (!data.isEmpty()){ chargingOrderListInfoVO.setSiteName(data.get(0).getName()); chargingOrderListInfoVO.setSiteAddress(data.get(0).getAddress()); } - TChargingGun data1 = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData(); - TChargingPile data2 = chargingPileClient.getChargingPileById(data1.getChargingPileId()).getData(); - - if (data1!=null){ - chargingOrderListInfoVO.setGunCode(data1.getCode()); - chargingOrderListInfoVO.setTerminalName(data2.getName()+data1.getName()); + if (chargingOrder.getChargingGunId()!=null){ + TChargingGun data1 = chargingGunClient.getChargingGunById(chargingOrder.getChargingGunId()).getData(); + if (data1!=null){ + TChargingPile data2 = chargingPileClient.getChargingPileById(data1.getChargingPileId()).getData(); + if (data2!=null){ + chargingOrderListInfoVO.setGunCode(data1.getCode()); + chargingOrderListInfoVO.setTerminalName(data2.getName()+data1.getName()); + } + } } + chargingOrderListInfoVO.setEndMode(chargingOrder.getEndMode()); - // 获取开始SOC 结束soc - List<UploadRealTimeMonitoringData> data6 = uploadRealTimeMonitoringDataClient.getDataByOrderCode(chargingOrder.getCode()).getData(); - if (!data6.isEmpty()){ - // 第一条数据soc为开始 最后一条数据soc为结束soc - chargingOrderListInfoVO.setStartSoc(data6.get(0).getSoc().toString()); - chargingOrderListInfoVO.setEndSoc(data6.get(data6.size()-1).getSoc().toString()); - chargingOrderListInfoVO.setChargingCapacity(data6.get(data6.size()-1).getCharging_degree()); - chargingOrderListInfoVO.setChargingSecond(data6.get(data6.size()-1).getCumulative_charging_time()*60+""); + // 获取开始SOC 结束soc + if (chargingOrder.getCode()!=null){ + List<UploadRealTimeMonitoringData> data6 = uploadRealTimeMonitoringDataClient.getDataByOrderCode(chargingOrder.getCode()).getData(); + if (data6!=null){ + if (!data6.isEmpty()){ + // 第一条数据soc为开始 最后一条数据soc为结束soc + chargingOrderListInfoVO.setStartSoc(data6.get(0).getSoc().toString()); + chargingOrderListInfoVO.setEndSoc(data6.get(data6.size()-1).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); } + + if (chargingOrder.getAppUserCarId()!=null){ List<TAppUserCar> data3 = appUserCarClient.getCarByIds(Collections.singletonList(chargingOrder.getAppUserCarId())).getData(); - if (!data3.isEmpty())chargingOrderListInfoVO.setLicensePlate(data3.get(0).getLicensePlate()); + if (data3!=null && !data3.isEmpty())chargingOrderListInfoVO.setLicensePlate(data3.get(0).getLicensePlate()); } chargingOrderListInfoVO.setStartTime(chargingOrder.getStartTime()); chargingOrderListInfoVO.setEndTime(chargingOrder.getEndTime()); chargingOrderListInfoVO.setId(chargingOrder.getId()); chargingOrderListInfoVO.setUid(chargingOrder.getId().toString()); - chargingOrderListInfoVO.setList(data6); chargingOrderListInfoVO.setCouponDiscountAmount(chargingOrder.getCouponDiscountAmount()); chargingOrderListInfoVO.setVipDiscountAmount(chargingOrder.getVipDiscountAmount()); chargingOrderListInfoVO.setSharingAmount(chargingOrder.getSharingAmount()); @@ -1726,18 +1804,25 @@ String startTime = dto.getStartTime(); String endTime = dto.getEndTime(); // 将这两个时间转化为localDateTime - tSettlementConfirm.setStartTime(LocalDateTime.parse(startTime)); - tSettlementConfirm.setEndTime(LocalDateTime.parse(endTime)); + // 创建 DateTimeFormatter 对象,指定格式 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss"); + + // 将字符串解析为 LocalDateTime 对象 + LocalDateTime localDateTime = LocalDateTime.parse(startTime, formatter); + LocalDateTime localDateTime1 = LocalDateTime.parse(endTime, formatter); + tSettlementConfirm.setEndTime(localDateTime1); + tSettlementConfirm.setStartTime(localDateTime); + // 根据站点id和开始时间和结束时间和归属日期 查询充电订单列表 QueryWrapper<TChargingOrder> eq = new QueryWrapper<TChargingOrder>() .eq("site_id", dto.getSiteId()) .eq("recharge_payment_status",2); switch (dto.getType()){ case 1: - eq.between("start_time", startTime, endTime); + eq.between("start_time", localDateTime, localDateTime1); break; case 2: - eq.between("end_time", startTime, endTime); + eq.between("end_time", localDateTime, localDateTime1); break; } List<TChargingOrder> tChargingOrders = this.baseMapper.selectList(eq); @@ -1761,13 +1846,23 @@ BigDecimal paymentAmount = new BigDecimal("0"); for (TChargingOrder tChargingOrder : tChargingOrders) { // 累加充电总度数 - chargingElectronic = chargingElectronic.add(tChargingOrder.getChargingCapacity()); + if (tChargingOrder.getChargingCapacity()!=null){ + chargingElectronic = chargingElectronic.add(tChargingOrder.getChargingCapacity()); + + } // 累加分佣 - sharingAmount = sharingAmount.add(tChargingOrder.getSharingAmount()); + if (tChargingOrder.getSharingAmount()!=null) { + sharingAmount = sharingAmount.add(tChargingOrder.getSharingAmount()); + } // 累加电费 + if (tChargingOrder.getElectrovalence()!=null) { electrovalence = electrovalence.add(tChargingOrder.getElectrovalence()); + } // 累加服务费 - serviceCharge = serviceCharge.add(tChargingOrder.getServiceCharge()); + if (tChargingOrder.getServiceCharge()!=null){ + serviceCharge = serviceCharge.add(tChargingOrder.getServiceCharge()); + + } // 累加会员折扣 if (tChargingOrder.getVipDiscountAmount()!=null){ vipDiscount = vipDiscount.add(tChargingOrder.getVipDiscountAmount()); @@ -1776,11 +1871,13 @@ if (tChargingOrder.getCouponDiscountAmount()!=null){ couponDiscount = couponDiscount.add(tChargingOrder.getCouponDiscountAmount()); } - if (tChargingOrder.getRefundStatus() == 2){ + if (tChargingOrder.getRefundStatus()!=null &&tChargingOrder.getRefundStatus() == 2){ // 如果成功退款 那么减去退款金额 paymentAmount = paymentAmount.add(tChargingOrder.getPaymentAmount().subtract(tChargingOrder.getRefundAmount())); }else{ - paymentAmount = paymentAmount.add(tChargingOrder.getPaymentAmount()); + if (tChargingOrder.getPaymentAmount()!=null){ + paymentAmount = paymentAmount.add(tChargingOrder.getPaymentAmount()); + } } } // 三方交易手续费 三方收费*0.6% @@ -1796,34 +1893,36 @@ tSettlementConfirm.setVipDiscount(vipDiscount); tSettlementConfirm.setCouponDiscount(couponDiscount); tSettlementConfirm.setSiteId(dto.getSiteId()); - tSettlementConfirm.setMeteringElectronic(dto.getData().getMeteringElectronic()); tSettlementConfirm.setChargingElectronic(chargingElectronic); - tSettlementConfirm.setLossElectronic(dto.getData().getLossElectronic()); tSettlementConfirm.setIncome(chargingElectronic.add(serviceCharge)); - tSettlementConfirm.setVenue(dto.getData().getVenue()); - tSettlementConfirm.setMetering(dto.getData().getMetering()); - tSettlementConfirm.setClean(dto.getData().getClean()); - tSettlementConfirm.setMaintain(dto.getData().getMaintain()); - tSettlementConfirm.setCost(dto.getData().getVenue().add(dto.getData().getClean()).add(dto.getData().getMaintain())); tSettlementConfirm.setProfitMoney(new BigDecimal("0")); tSettlementConfirm.setNewMoney(new BigDecimal("0")); tSettlementConfirm.setNewSettlement(new BigDecimal("0")); tSettlementConfirm.setVipDiscount(vipDiscount); tSettlementConfirm.setCouponDiscount(couponDiscount); - tSettlementConfirm.setSupplyElectronic(dto.getData().getSupplyElectronic()); tSettlementConfirm.setType(dto.getType()); - tSettlementConfirm.setProportionPartner(dto.getData().getProportionPartner()); - tSettlementConfirm.setProportionMoney(dto.getData().getProportionMoney()); - tSettlementConfirm.setTotalElectronic(dto.getData().getTotalElectronic()); - tSettlementConfirm.setTotalService(dto.getData().getTotalService()); - tSettlementConfirm.setRemark(dto.getData().getRemark()); - tSettlementConfirm.setServicePartner(dto.getData().getServicePartner()); - tSettlementConfirm.setServiceMoney(dto.getData().getServiceMoney()); - tSettlementConfirm.setTotalService(dto.getData().getTotalService()); - tSettlementConfirm.setServiceRemark(dto.getData().getServiceRemark()); - tSettlementConfirm.setDistribution(dto.getData().getDistribution()); - tSettlementConfirm.setIncome(dto.getData().getElectrovalence().add(dto.getData().getServiceCharge())); + if (dto.getState() == 2){ + tSettlementConfirm.setSupplyElectronic(dto.getSupplyElectronic()); + tSettlementConfirm.setVenue(dto.getVenue()); + tSettlementConfirm.setMetering(dto.getMetering()); + tSettlementConfirm.setClean(dto.getClean()); + tSettlementConfirm.setLossElectronic(dto.getMeteringElectronic().subtract(dto.getChargingElectronic())); + tSettlementConfirm.setMaintain(dto.getMaintain()); + + tSettlementConfirm.setMeteringElectronic(dto.getMeteringElectronic()); + tSettlementConfirm.setProportionPartner(dto.getProportionPartner()); + tSettlementConfirm.setProportionMoney(dto.getProportionMoney()); + tSettlementConfirm.setTotalElectronic(dto.getTotalElectronic()); + tSettlementConfirm.setTotalService(dto.getTotalService()); + tSettlementConfirm.setRemark(dto.getRemark()); + tSettlementConfirm.setServicePartner(dto.getServicePartner()); + tSettlementConfirm.setServiceMoney(dto.getServiceMoney()); + tSettlementConfirm.setTotalService(dto.getTotalService()); + 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())); tSettlementConfirmMapper.insert(tSettlementConfirm); } return tSettlementConfirm; @@ -1850,7 +1949,7 @@ } pageInfo.setRecords(list); - return null; + return pageInfo; } @Override @@ -2010,13 +2109,23 @@ tSettlementConfirm.setVipDiscount(vipDiscount); tSettlementConfirm.setCouponDiscount(couponDiscount); // 本月 - BigDecimal subtract = income.subtract(beforeIncome).divide(beforeIncome).setScale(2, RoundingMode.HALF_DOWN).multiply(new BigDecimal("100")); - tSettlementConfirm.setIncomePercentage(subtract+"%"); + if (beforeIncome.compareTo(new BigDecimal("0")) == 0){ + tSettlementConfirm.setIncomePercentage(0+"%"); + tSettlementConfirm.setIncomePercentage(0+"%"); + }else{ + BigDecimal subtract = income.subtract(beforeIncome).divide(beforeIncome).setScale(2, RoundingMode.HALF_DOWN).multiply(new BigDecimal("100")); + tSettlementConfirm.setIncomePercentage(subtract+"%"); + tSettlementConfirm.setIncomePercentage(subtract+"%"); + + } // 比较总利润 收入合计-成本合计 BigDecimal subtract1 = income.subtract(cost); BigDecimal subtract2 = beforeIncome.subtract(beforeCost); - tSettlementConfirm.setTotalPercentage(subtract1.subtract(subtract2).divide(subtract2).setScale(2, RoundingMode.HALF_DOWN).multiply(new BigDecimal("100"))+"%"); - tSettlementConfirm.setIncomePercentage(subtract+"%"); + if (subtract2.compareTo(new BigDecimal("0")) == 0){ + tSettlementConfirm.setTotalPercentage(0+"%"); + }else{ + tSettlementConfirm.setTotalPercentage(subtract1.subtract(subtract2).divide(subtract2).setScale(2, RoundingMode.HALF_DOWN).multiply(new BigDecimal("100"))+"%"); + } tSettlementConfirm.setElectronicRefund(0); // 查询上次汇报数据 进行比对涨幅跌幅 total.add(tSettlementConfirm); @@ -2025,6 +2134,71 @@ return res; } + @Override + public List<Map<String, Object>> countBySource(List<Integer> siteIds) { + return this.baseMapper.countBySource(siteIds); + } + + @Override + public List<Map<String, Object>> equipmentUserType1(List<Integer> siteIds, ChargingStatisticsQueryDto statisticsQueryDto) { + return this.baseMapper.equipmentUserType1(siteIds,statisticsQueryDto); + } + + @Override + public List<Map<String, Object>> equipmentUserType2(List<Integer> siteIds, ChargingStatisticsQueryDto statisticsQueryDto) { + return this.baseMapper.equipmentUserType2(siteIds,statisticsQueryDto); + } + + @Override + public List<Map<String, Object>> equipmentMapbroke1(List<Integer> siteIds, ChargingStatisticsQueryDto statisticsQueryDto) { + return this.baseMapper.equipmentMapbroke1(siteIds,statisticsQueryDto); + } + + @Override + public List<Map<String, Object>> equipmentMapbroke2(List<Integer> siteIds, ChargingStatisticsQueryDto statisticsQueryDto) { + return this.baseMapper.equipmentMapbroke2(siteIds,statisticsQueryDto); + } + + @Override + public List<Map<String, Object>> equipmentMapOut1(List<Integer> siteIds, ChargingStatisticsQueryDto statisticsQueryDto) { + return this.baseMapper.equipmentMapOut1(siteIds,statisticsQueryDto); + } + + @Override + public List<Map<String, Object>> equipmentMapOut2(List<Integer> siteIds, ChargingStatisticsQueryDto statisticsQueryDto) { + return this.baseMapper.equipmentMapOut2(siteIds,statisticsQueryDto); + } + + @Override + public List<Map<String, Object>> needElec(List<Integer> siteIds, ChargingStatisticsQueryDto statisticsQueryDto) { + return this.baseMapper.needElec(siteIds,statisticsQueryDto); + } + + @Override + public List<Map<String, Object>> getHourType(List<Integer> siteIds, ChargingDetailQueryDto statisticsQueryDto) { + return this.baseMapper.getHourType(siteIds,statisticsQueryDto); + } + + @Override + public List<Map<String, Object>> getDateType(List<Integer> siteIds, ChargingDetailQueryDto statisticsQueryDto) { + return this.baseMapper.getDateType(siteIds,statisticsQueryDto); + } + + @Override + public List<Map<String, Object>> getMonthType(List<Integer> siteIds, ChargingDetailQueryDto statisticsQueryDto) { + return this.baseMapper.getMonthType(siteIds,statisticsQueryDto); + } + + @Override + public List<Map<String, Object>> getchargingCapacity(List<Integer> siteIds, ChargingDetailQueryDto statisticsQueryDto) { + return this.baseMapper.getchargingCapacity(siteIds,statisticsQueryDto); + } + + @Override + public List<Map<String, Object>> countAllUserData() { + return this.baseMapper.countAllUserData(); + } + public static void main(String[] args) { // String format = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy年MM月dd日HH:mm:ss")); // String format1 = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy年MM月dd日HH:mm:ss")); -- Gitblit v1.7.1