| | |
| | | } |
| | | dto.setSiteIds(siteIds); |
| | | PageInfo<ChargingOrderListVO> pageInfo = new PageInfo<>(dto.getPageCurr(), dto.getPageSize()); |
| | | List<ChargingOrderListVO> list = this.baseMapper.chargingList(pageInfo, dto, startTime1, startTime2, endTime1, endTime2); |
| | | List<Site> sites = siteClient.getSiteAll().getData(); |
| | | List<Long> collect1 = list.stream().map(ChargingOrderListVO::getId).collect(Collectors.toList()); |
| | | if(collect1.isEmpty()){ |
| | | collect1.add(-1L); |
| | | } |
| | | List<TChargingOrderAccountingStrategy> chargingOrderAccountingStrategies = chargingOrderAccountingStrategyService.list(); |
| | | for (ChargingOrderListVO chargingOrderListVO : list) { |
| | | // List<ChargingOrderListVO> list = this.baseMapper.chargingList(pageInfo, dto, startTime1, startTime2, endTime1, endTime2); |
| | | // List<Site> sites = siteClient.getSiteAll().getData(); |
| | | // List<Long> collect1 = list.stream().map(ChargingOrderListVO::getId).collect(Collectors.toList()); |
| | | // if(collect1.isEmpty()){ |
| | | // collect1.add(-1L); |
| | | // } |
| | | // List<TChargingOrderAccountingStrategy> chargingOrderAccountingStrategies = chargingOrderAccountingStrategyService.list(); |
| | | // for (ChargingOrderListVO chargingOrderListVO : list) { |
| | | // if (roleType == 2) { |
| | | // List<Boolean> data = partnerClient.getChargingListMenu(sysUser.getObjectId(), chargingOrderListVO.getSiteId()).getData(); |
| | | // chargingOrderListVO.setAuthInfo(data.get(0)); |
| | | // chargingOrderListVO.setAuthCurve(data.get(1)); |
| | | // } |
| | | // chargingOrderListVO.setChargingCapacity(chargingOrderListVO.getElectricity()); |
| | | // BigDecimal bigDecimal = new BigDecimal("0.006"); |
| | | // if (chargingOrderListVO.getOrderAmount() != null) { |
| | | // chargingOrderListVO.setCommissionAmount(chargingOrderListVO.getRechargeAmount().multiply(bigDecimal)); |
| | | // } |
| | | // chargingOrderListVO.setPaymentAmount(chargingOrderListVO.getPaymentAmount()); |
| | | // chargingOrderListVO.setUid(chargingOrderListVO.getId() + ""); |
| | | // List<Integer> integers = new ArrayList<>(); |
| | | // integers.add(chargingOrderListVO.getSiteId()); |
| | | // Site site = sites.stream().filter(e -> e.getId().equals(chargingOrderListVO.getSiteId())).findFirst().orElse(null); |
| | | // if (site != null) { |
| | | // chargingOrderListVO.setSiteName(site.getName()); |
| | | // } |
| | | // if (chargingOrderListVO.getChargingGunId() != null && chargingOrderListVO.getChargingPileId() != null) { |
| | | // TChargingGun data1 = allGun.stream().filter(e -> e.getId().equals(chargingOrderListVO.getChargingGunId())).findFirst().orElse(null); |
| | | // TChargingPile data2 = allPile.stream().filter(e -> e.getId().equals(chargingOrderListVO.getChargingPileId())).findFirst().orElse(null); |
| | | // if (data2 != null && data1 != null) { |
| | | // chargingOrderListVO.setTerminalName(data2.getName() + "-" + data1.getName()); |
| | | // } |
| | | // } |
| | | // if (chargingOrderListVO.getStartTime() != null && chargingOrderListVO.getEndTime() != null) { |
| | | // LocalDateTime startTime = chargingOrderListVO.getStartTime(); |
| | | // LocalDateTime endTime = chargingOrderListVO.getEndTime(); |
| | | // // 计算时间差 单位秒 |
| | | // long between = ChronoUnit.SECONDS.between(startTime, endTime); |
| | | // chargingOrderListVO.setChargingSecond(between); |
| | | // } |
| | | // // 获取开始SOC 结束soc |
| | | // if (chargingOrderListVO.getCode() != null) { |
| | | // UploadRealTimeMonitoringData asc = uploadRealTimeMonitoringDataService.getDataByOrderCode(chargingOrderListVO.getCode(), "asc"); |
| | | // UploadRealTimeMonitoringData desc = uploadRealTimeMonitoringDataService.getDataByOrderCode(chargingOrderListVO.getCode(), "desc"); |
| | | // if(null != asc){ |
| | | // chargingOrderListVO.setStartSoc(asc.getSoc().toString()); |
| | | // } |
| | | // if(null != desc){ |
| | | // chargingOrderListVO.setEndSoc(desc.getSoc().toString()); |
| | | // } |
| | | // } |
| | | // |
| | | // 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()); |
| | | // } |
| | | // } |
| | | // } else { |
| | | // chargingOrderListVO.setLicensePlate(chargingOrderListVO.getPlateNum()); |
| | | // } |
| | | // chargingOrderListVO.setPhone(data3.getPhone()); |
| | | // } |
| | | // } |
| | | // List<TChargingOrderAccountingStrategy> list2 = chargingOrderAccountingStrategies.stream().filter(s->s.getChargingOrderId().equals(chargingOrderListVO.getId())).collect(Collectors.toList()); |
| | | // // 尖峰平谷充电量 度数 |
| | | // BigDecimal jian = new BigDecimal("0"); |
| | | // BigDecimal feng = new BigDecimal("0"); |
| | | // BigDecimal ping = new BigDecimal("0"); |
| | | // BigDecimal gu = new BigDecimal("0"); |
| | | // BigDecimal total = new BigDecimal("0"); |
| | | // for (TChargingOrderAccountingStrategy temp : list2) { |
| | | // if (temp.getChargingCapacity() == null) { |
| | | // temp.setChargingCapacity(BigDecimal.ZERO); |
| | | // } |
| | | // switch (temp.getType()) { |
| | | // case 1: |
| | | // jian = jian.add(temp.getChargingCapacity()); |
| | | // break; |
| | | // case 2: |
| | | // feng = feng.add(temp.getChargingCapacity()); |
| | | // break; |
| | | // case 3: |
| | | // ping = ping.add(temp.getChargingCapacity()); |
| | | // break; |
| | | // case 4: |
| | | // gu = gu.add(temp.getChargingCapacity()); |
| | | // break; |
| | | // } |
| | | // } |
| | | // total = total.add(jian).add(feng).add(ping).add(gu); |
| | | // 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" + "%(谷)"); |
| | | // } |
| | | // if (chargingOrderListVO.getOrderSource().equals(2)) { |
| | | // chargingOrderListVO.setSharingAmount(chargingOrderListVO.getServiceCharge() != null ? |
| | | // chargingOrderListVO.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2, BigDecimal.ROUND_HALF_UP) |
| | | // : new BigDecimal("0")); |
| | | // } else { |
| | | // chargingOrderListVO.setSharingAmount(new BigDecimal("0")); |
| | | // } |
| | | // } |
| | | |
| | | List<ChargingOrderListVO> list = new ArrayList<>(); |
| | | List<Map<String, Object>> maps = this.baseMapper.chargingList1(pageInfo, dto, startTime1, startTime2, endTime1, endTime2); |
| | | for (Map<String, Object> map : maps) { |
| | | ChargingOrderListVO chargingOrderListVO = new ChargingOrderListVO(); |
| | | if (roleType == 2) { |
| | | List<Boolean> data = partnerClient.getChargingListMenu(sysUser.getObjectId(), chargingOrderListVO.getSiteId()).getData(); |
| | | chargingOrderListVO.setAuthInfo(data.get(0)); |
| | | chargingOrderListVO.setAuthCurve(data.get(1)); |
| | | } |
| | | chargingOrderListVO.setCode(map.get("code").toString()); |
| | | chargingOrderListVO.setSiteName(map.get("siteName").toString()); |
| | | chargingOrderListVO.setOrderType(map.get("orderType").toString()); |
| | | chargingOrderListVO.setTerminalName(map.get("terminalName").toString()); |
| | | chargingOrderListVO.setElectricity(null == map.get("electricity") ? BigDecimal.ZERO : new BigDecimal(map.get("electricity").toString())); |
| | | chargingOrderListVO.setChargingCapacity(chargingOrderListVO.getElectricity()); |
| | | Object periodElectricPrice = map.get("periodElectricPrice"); |
| | | Object periodServicePrice = map.get("periodServicePrice"); |
| | | if(null != periodServicePrice){ |
| | | Integer orderSource = Integer.valueOf(map.get("orderSource").toString()); |
| | | if(2 == orderSource){ |
| | | BigDecimal bigDecimal = new BigDecimal(periodServicePrice.toString()).multiply(new BigDecimal(0.8)).setScale(2, RoundingMode.HALF_EVEN); |
| | | chargingOrderListVO.setPaymentAmount(new BigDecimal(periodElectricPrice.toString()).add(bigDecimal)); |
| | | BigDecimal sharingAmount = new BigDecimal(periodServicePrice.toString()).multiply(new BigDecimal(0.2)).setScale(2, RoundingMode.HALF_EVEN); |
| | | chargingOrderListVO.setSharingAmount(sharingAmount); |
| | | }else{ |
| | | chargingOrderListVO.setPaymentAmount(new BigDecimal(periodElectricPrice.toString()).add(new BigDecimal(periodServicePrice.toString())).setScale(2, RoundingMode.HALF_EVEN)); |
| | | chargingOrderListVO.setSharingAmount(BigDecimal.ZERO); |
| | | } |
| | | }else{ |
| | | chargingOrderListVO.setPaymentAmount(BigDecimal.ZERO); |
| | | chargingOrderListVO.setSharingAmount(BigDecimal.ZERO); |
| | | } |
| | | chargingOrderListVO.setElectrovalence(null == map.get("electrovalence") ? BigDecimal.ZERO : new BigDecimal(map.get("electrovalence").toString())); |
| | | chargingOrderListVO.setServiceCharge(null == map.get("serviceCharge") ? BigDecimal.ZERO : new BigDecimal(map.get("serviceCharge").toString())); |
| | | BigDecimal bigDecimal = new BigDecimal("0.006"); |
| | | if (chargingOrderListVO.getOrderAmount() != null) { |
| | | chargingOrderListVO.setCommissionAmount(chargingOrderListVO.getRechargeAmount().multiply(bigDecimal)); |
| | | if (!"0".equals(map.get("rechargePaymentType").toString())) { |
| | | chargingOrderListVO.setCommissionAmount(new BigDecimal(map.get("rechargeAmount").toString()).multiply(bigDecimal)); |
| | | } |
| | | chargingOrderListVO.setPaymentAmount(chargingOrderListVO.getPaymentAmount()); |
| | | chargingOrderListVO.setUid(chargingOrderListVO.getId() + ""); |
| | | List<Integer> integers = new ArrayList<>(); |
| | | integers.add(chargingOrderListVO.getSiteId()); |
| | | Site site = sites.stream().filter(e -> e.getId().equals(chargingOrderListVO.getSiteId())).findFirst().orElse(null); |
| | | if (site != null) { |
| | | chargingOrderListVO.setSiteName(site.getName()); |
| | | if(null != map.get("tripartitePlatformName")){ |
| | | chargingOrderListVO.setTripartitePlatformName(map.get("tripartitePlatformName").toString()); |
| | | } |
| | | if (chargingOrderListVO.getChargingGunId() != null && chargingOrderListVO.getChargingPileId() != null) { |
| | | TChargingGun data1 = allGun.stream().filter(e -> e.getId().equals(chargingOrderListVO.getChargingGunId())).findFirst().orElse(null); |
| | | TChargingPile data2 = allPile.stream().filter(e -> e.getId().equals(chargingOrderListVO.getChargingPileId())).findFirst().orElse(null); |
| | | if (data2 != null && data1 != null) { |
| | | chargingOrderListVO.setTerminalName(data2.getName() + "-" + data1.getName()); |
| | | } |
| | | if(null != map.get("startTime")){ |
| | | chargingOrderListVO.setStartTime(LocalDateTime.parse(map.get("startTime").toString(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); |
| | | } |
| | | if (chargingOrderListVO.getStartTime() != null && chargingOrderListVO.getEndTime() != null) { |
| | | LocalDateTime startTime = chargingOrderListVO.getStartTime(); |
| | | LocalDateTime endTime = chargingOrderListVO.getEndTime(); |
| | | // 计算时间差 单位秒 |
| | | long between = ChronoUnit.SECONDS.between(startTime, endTime); |
| | | chargingOrderListVO.setChargingSecond(between); |
| | | if(null != map.get("endTime")){ |
| | | chargingOrderListVO.setEndTime(LocalDateTime.parse(map.get("endTime").toString(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); |
| | | } |
| | | // 获取开始SOC 结束soc |
| | | if (chargingOrderListVO.getCode() != null) { |
| | | UploadRealTimeMonitoringData asc = uploadRealTimeMonitoringDataService.getDataByOrderCode(chargingOrderListVO.getCode(), "asc"); |
| | | UploadRealTimeMonitoringData desc = uploadRealTimeMonitoringDataService.getDataByOrderCode(chargingOrderListVO.getCode(), "desc"); |
| | | if(null != asc){ |
| | | chargingOrderListVO.setStartSoc(asc.getSoc().toString()); |
| | | } |
| | | if(null != desc){ |
| | | chargingOrderListVO.setEndSoc(desc.getSoc().toString()); |
| | | } |
| | | if(null != map.get("chargingSecond")){ |
| | | chargingOrderListVO.setChargingSecond(Long.valueOf(map.get("chargingSecond").toString())); |
| | | }else{ |
| | | chargingOrderListVO.setChargingSecond(0L); |
| | | } |
| | | |
| | | 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()); |
| | | } |
| | | } |
| | | } else { |
| | | chargingOrderListVO.setLicensePlate(chargingOrderListVO.getPlateNum()); |
| | | } |
| | | chargingOrderListVO.setPhone(data3.getPhone()); |
| | | } |
| | | if(null != map.get("startSoc")){ |
| | | chargingOrderListVO.setEndSoc(map.get("startSoc").toString()); |
| | | } |
| | | List<TChargingOrderAccountingStrategy> list2 = chargingOrderAccountingStrategies.stream().filter(s->s.getChargingOrderId().equals(chargingOrderListVO.getId())).collect(Collectors.toList()); |
| | | // 尖峰平谷充电量 度数 |
| | | BigDecimal jian = new BigDecimal("0"); |
| | | BigDecimal feng = new BigDecimal("0"); |
| | | BigDecimal ping = new BigDecimal("0"); |
| | | BigDecimal gu = new BigDecimal("0"); |
| | | BigDecimal total = new BigDecimal("0"); |
| | | for (TChargingOrderAccountingStrategy temp : list2) { |
| | | if (temp.getChargingCapacity() == null) { |
| | | temp.setChargingCapacity(BigDecimal.ZERO); |
| | | } |
| | | switch (temp.getType()) { |
| | | case 1: |
| | | jian = jian.add(temp.getChargingCapacity()); |
| | | break; |
| | | case 2: |
| | | feng = feng.add(temp.getChargingCapacity()); |
| | | break; |
| | | case 3: |
| | | ping = ping.add(temp.getChargingCapacity()); |
| | | break; |
| | | case 4: |
| | | gu = gu.add(temp.getChargingCapacity()); |
| | | break; |
| | | } |
| | | if(null != map.get("endSoc")){ |
| | | chargingOrderListVO.setEndSoc(map.get("endSoc").toString()); |
| | | } |
| | | total = total.add(jian).add(feng).add(ping).add(gu); |
| | | if(null != map.get("status")){ |
| | | chargingOrderListVO.setStatus(Integer.valueOf(map.get("status").toString())); |
| | | } |
| | | if(null != map.get("endMode")){ |
| | | chargingOrderListVO.setEndMode(Integer.valueOf(map.get("endMode").toString())); |
| | | } |
| | | if(null != map.get("phone")){ |
| | | chargingOrderListVO.setPhone(map.get("phone").toString()); |
| | | } |
| | | if(null != map.get("licensePlate")){ |
| | | chargingOrderListVO.setLicensePlate(map.get("licensePlate").toString()); |
| | | } |
| | | BigDecimal jian = null == map.get("jian") ? BigDecimal.ZERO : new BigDecimal(map.get("jian").toString()); |
| | | BigDecimal feng = null == map.get("feng") ? BigDecimal.ZERO : new BigDecimal(map.get("feng").toString()); |
| | | BigDecimal ping = null == map.get("ping") ? BigDecimal.ZERO : new BigDecimal(map.get("ping").toString()); |
| | | BigDecimal gu = null == map.get("gu") ? BigDecimal.ZERO : new BigDecimal(map.get("gu").toString()); |
| | | BigDecimal total = jian.add(feng).add(ping).add(gu); |
| | | if (total.compareTo(new BigDecimal("0")) != 0) { |
| | | chargingOrderListVO.setElectronicProportion( |
| | | jian.divide(total, 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")) + "%(尖)/" |
| | |
| | | "0" + "%(平)/" + |
| | | "0" + "%(谷)"); |
| | | } |
| | | if (chargingOrderListVO.getOrderSource().equals(2)) { |
| | | chargingOrderListVO.setSharingAmount(chargingOrderListVO.getServiceCharge() != null ? |
| | | chargingOrderListVO.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2, BigDecimal.ROUND_HALF_UP) |
| | | : new BigDecimal("0")); |
| | | } else { |
| | | chargingOrderListVO.setSharingAmount(new BigDecimal("0")); |
| | | } |
| | | list.add(chargingOrderListVO); |
| | | } |
| | | |
| | | |
| | | |
| | | // 不分页 |
| | | PageInfo<ChargingOrderListVO> pageInfo1 = new PageInfo<>(1, 999999999); |
| | | List<ChargingOrderListVO> list1 = this.baseMapper.chargingList(pageInfo1, dto, startTime1, startTime2, endTime1, endTime2); |
| | | for (ChargingOrderListVO chargingOrderListVO : list1) { |
| | | List<Integer> integers = new ArrayList<>(); |
| | | integers.add(chargingOrderListVO.getSiteId()); |
| | | Site site = sites.stream().filter(e -> e.getId().equals(chargingOrderListVO.getSiteId())).findFirst().orElse(null); |
| | | if (site != null) { |
| | | chargingOrderListVO.setSiteName(site.getName()); |
| | | } |
| | | if (chargingOrderListVO.getStartTime() != null && chargingOrderListVO.getEndTime() != null) { |
| | | LocalDateTime startTime = chargingOrderListVO.getStartTime(); |
| | | LocalDateTime endTime = chargingOrderListVO.getEndTime(); |
| | | // 计算时间差 单位秒 |
| | | long between = ChronoUnit.SECONDS.between(startTime, endTime); |
| | | chargingOrderListVO.setChargingSecond(between); |
| | | } |
| | | if (chargingOrderListVO.getChargingGunId() != null && chargingOrderListVO.getChargingPileId() != null) { |
| | | TChargingGun data1 = allGun.stream().filter(e -> e.getId().equals(chargingOrderListVO.getChargingGunId())).findFirst().orElse(null); |
| | | TChargingPile data2 = allPile.stream().filter(e -> e.getId().equals(chargingOrderListVO.getChargingPileId())).findFirst().orElse(null); |
| | | if (data2 != null && data1 != null) { |
| | | chargingOrderListVO.setTerminalName(data2.getName() + "-" + data1.getName()); |
| | | } |
| | | } |
| | | } |
| | | chargingOrderTimeVO.setExportList(list1); |
| | | chargingOrderTimeVO.setOrderCount(list1.size()); |
| | | // 计算充电总度数 |
| | | BigDecimal electronic = new BigDecimal("0"); |
| | | // 支付金额 |
| | |
| | | BigDecimal feng = new BigDecimal("0"); |
| | | BigDecimal ping = new BigDecimal("0"); |
| | | BigDecimal gu = new BigDecimal("0"); |
| | | for (ChargingOrderListVO chargingOrderListVO : list1) { |
| | | List<TChargingOrderAccountingStrategy> collect = chargingOrderAccountingStrategies.stream().filter(s -> s.getChargingOrderId().equals(chargingOrderListVO.getId())).collect(Collectors.toList()); |
| | | BigDecimal periodServicePrice = collect.stream().map(TChargingOrderAccountingStrategy::getPeriodServicePrice).reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | BigDecimal periodElectricPrice = collect.stream().map(TChargingOrderAccountingStrategy::getPeriodElectricPrice).reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | BigDecimal chargingCapacity = collect.stream().map(TChargingOrderAccountingStrategy::getChargingCapacity).reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | electronic = electronic.add(chargingCapacity); |
| | | electrovalence = electrovalence.add(periodElectricPrice); |
| | | if (chargingOrderListVO.getOrderSource().equals(2)) { |
| | | serviceCharge = serviceCharge.add(periodServicePrice.multiply(new BigDecimal("0.8"))); |
| | | paymentAmount = paymentAmount.add(periodElectricPrice).add(periodServicePrice.multiply(new BigDecimal("0.8"))); |
| | | } else { |
| | | serviceCharge = serviceCharge.add(periodServicePrice); |
| | | paymentAmount = paymentAmount.add(periodElectricPrice).add(periodServicePrice); |
| | | } |
| | | if (!chargingOrderListVO.getOrderSource().equals(2)) { |
| | | for (TChargingOrderAccountingStrategy temp : collect) { |
| | | switch (temp.getType()) { |
| | | case 1: |
| | | jian = jian.add(temp.getChargingCapacity()); |
| | | jianElectronic = jianElectronic.add(temp.getPeriodElectricPrice()).add(temp.getPeriodServicePrice()); |
| | | jianService = jianService.add(temp.getPeriodServicePrice()); |
| | | break; |
| | | case 2: |
| | | feng = feng.add(temp.getChargingCapacity()); |
| | | fengElectronic = fengElectronic.add(temp.getPeriodElectricPrice()).add(temp.getPeriodServicePrice()); |
| | | fengService = fengService.add(temp.getPeriodServicePrice()); |
| | | break; |
| | | case 3: |
| | | ping = ping.add(temp.getChargingCapacity()); |
| | | pingElectronic = pingElectronic.add(temp.getPeriodElectricPrice()).add(temp.getPeriodServicePrice()); |
| | | pingService = pingService.add(temp.getPeriodServicePrice()); |
| | | break; |
| | | case 4: |
| | | gu = gu.add(temp.getChargingCapacity()); |
| | | guElectronic = guElectronic.add(temp.getPeriodElectricPrice()).add(temp.getPeriodServicePrice()); |
| | | guService = guService.add(temp.getPeriodServicePrice()); |
| | | break; |
| | | } |
| | | } |
| | | } else { |
| | | for (TChargingOrderAccountingStrategy temp : collect) { |
| | | BigDecimal multiply = temp.getPeriodServicePrice().multiply(new BigDecimal("0.8")); |
| | | switch (temp.getType()) { |
| | | case 1: |
| | | jian = jian.add(temp.getChargingCapacity()); |
| | | jianElectronic = jianElectronic.add(temp.getPeriodElectricPrice()).add(multiply); |
| | | jianService = jianService.add(multiply); |
| | | break; |
| | | case 2: |
| | | feng = feng.add(temp.getChargingCapacity()); |
| | | fengElectronic = fengElectronic.add(temp.getPeriodElectricPrice()).add(multiply); |
| | | fengService = fengService.add(multiply); |
| | | break; |
| | | case 3: |
| | | ping = ping.add(temp.getChargingCapacity()); |
| | | pingElectronic = pingElectronic.add(temp.getPeriodElectricPrice()).add(multiply); |
| | | pingService = pingService.add(multiply); |
| | | break; |
| | | case 4: |
| | | gu = gu.add(temp.getChargingCapacity()); |
| | | guElectronic = guElectronic.add(temp.getPeriodElectricPrice()).add(multiply); |
| | | guService = guService.add(multiply); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | List<Map<String, Object>> list1 = this.baseMapper.chargingListSum(dto, startTime1, startTime2, endTime1, endTime2); |
| | | chargingOrderTimeVO.setOrderCount(list1.size()); |
| | | for (Map<String, Object> map : list1) { |
| | | electronic = electronic.add(new BigDecimal(null == map.get("electronic") ? "0" : map.get("electronic").toString())); |
| | | paymentAmount = paymentAmount.add(new BigDecimal(null == map.get("paymentAmount") ? "0" : map.get("paymentAmount").toString())); |
| | | electrovalence = electrovalence.add(new BigDecimal(null == map.get("electrovalence") ? "0" : map.get("electrovalence").toString())); |
| | | serviceCharge = serviceCharge.add(new BigDecimal(null == map.get("serviceCharge") ? "0" : map.get("serviceCharge").toString())); |
| | | jianElectronic = jianElectronic.add(new BigDecimal(null == map.get("jianElectronic") ? "0" : map.get("jianElectronic").toString())); |
| | | fengElectronic = fengElectronic.add(new BigDecimal(null == map.get("fengElectronic") ? "0" : map.get("fengElectronic").toString())); |
| | | pingElectronic = pingElectronic.add(new BigDecimal(null == map.get("pingElectronic") ? "0" : map.get("pingElectronic").toString())); |
| | | guElectronic = guElectronic.add(new BigDecimal(null == map.get("guElectronic") ? "0" : map.get("guElectronic").toString())); |
| | | jianService = jianService.add(new BigDecimal(null == map.get("jianService") ? "0" : map.get("jianService").toString())); |
| | | fengService = fengService.add(new BigDecimal(null == map.get("fengService") ? "0" : map.get("fengService").toString())); |
| | | pingService = pingService.add(new BigDecimal(null == map.get("pingService") ? "0" : map.get("pingService").toString())); |
| | | guService = guService.add(new BigDecimal(null == map.get("guService") ? "0" : map.get("guService").toString())); |
| | | jian = jian.add(new BigDecimal(null == map.get("jian") ? "0" : map.get("jian").toString())); |
| | | feng = feng.add(new BigDecimal(null == map.get("feng") ? "0" : map.get("feng").toString())); |
| | | ping = ping.add(new BigDecimal(null == map.get("ping") ? "0" : map.get("ping").toString())); |
| | | gu = gu.add(new BigDecimal(null == map.get("gu") ? "0" : map.get("gu").toString())); |
| | | } |
| | | |
| | | chargingOrderTimeVO.setChargingCapacity(electronic.setScale(2, BigDecimal.ROUND_HALF_EVEN)); |
| | |
| | | pageInfo.setRecords(list); |
| | | chargingOrderTimeVO.setList(pageInfo); |
| | | return chargingOrderTimeVO; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public List<ChargingOrderListVO> export(ChargingListQuery dto) { |
| | | String startTime1 = null; |
| | | String startTime2 = null; |
| | | String endTime1 = null; |
| | | String endTime2 = null; |
| | | |
| | | List<TChargingGun> allGun = chargingGunClient.getAllGun().getData(); |
| | | List<TChargingPile> allPile = chargingGunClient.getAllPile().getData(); |
| | | |
| | | if (StringUtils.hasLength(dto.getStartTime())) { |
| | | String[] split = dto.getStartTime().split(" - "); |
| | | startTime1 = split[0]; |
| | | startTime2 = split[1]; |
| | | } |
| | | if (StringUtils.hasLength(dto.getPhone())) { |
| | | List<Long> data = appUserClient.getUserIdsByPhone(dto.getPhone()).getData(); |
| | | if (data != null) { |
| | | if (!data.isEmpty()) { |
| | | dto.setUserIds(data); |
| | | } |
| | | } else { |
| | | dto.setUserIds(new ArrayList<Long>()); |
| | | } |
| | | if (dto.getUserIds().isEmpty()) { |
| | | List<Long> carIds = dto.getUserIds(); |
| | | carIds.add(-1L); |
| | | dto.setUserIds(carIds); |
| | | } |
| | | } |
| | | if (StringUtils.hasLength(dto.getLicensePlate())) { |
| | | List<Long> data = appUserCarClient.getAppUserCarByLicensePlates(dto.getLicensePlate()).getData(); |
| | | if (data != null) { |
| | | if (!data.isEmpty()) { |
| | | dto.setCarIds(data); |
| | | } |
| | | } else { |
| | | dto.setCarIds(new ArrayList<Long>()); |
| | | } |
| | | if (dto.getCarIds().isEmpty()) { |
| | | List<Long> carIds = dto.getCarIds(); |
| | | carIds.add(-1L); |
| | | dto.setCarIds(carIds); |
| | | } |
| | | } |
| | | Long userId = tokenService.getLoginUser().getUserid(); |
| | | // 查询当前登陆人按钮权限 |
| | | SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData(); |
| | | Integer roleType = sysUser.getRoleType(); |
| | | //如果没传siteId,获取当前登陆人所有的siteIds |
| | | List<Integer> siteIds = new ArrayList<>(); |
| | | 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.getChargingOrderMenu(sysUser.getObjectId(), siteId).getData(); |
| | | |
| | | Boolean b = t1.get(1); |
| | | if (b) { |
| | | integers.add(siteId); |
| | | } |
| | | } |
| | | siteIds = integers; |
| | | } |
| | | } |
| | | dto.setSiteIds(siteIds); |
| | | List<Site> sites = siteClient.getSiteAll().getData(); |
| | | // 不分页 |
| | | PageInfo<ChargingOrderListVO> pageInfo1 = new PageInfo<>(1, 999999999); |
| | | List<ChargingOrderListVO> list1 = this.baseMapper.chargingList(pageInfo1, dto, startTime1, startTime2, endTime1, endTime2); |
| | | for (ChargingOrderListVO chargingOrderListVO : list1) { |
| | | List<Integer> integers = new ArrayList<>(); |
| | | integers.add(chargingOrderListVO.getSiteId()); |
| | | Site site = sites.stream().filter(e -> e.getId().equals(chargingOrderListVO.getSiteId())).findFirst().orElse(null); |
| | | if (site != null) { |
| | | chargingOrderListVO.setSiteName(site.getName()); |
| | | } |
| | | if (chargingOrderListVO.getStartTime() != null && chargingOrderListVO.getEndTime() != null) { |
| | | LocalDateTime startTime = chargingOrderListVO.getStartTime(); |
| | | LocalDateTime endTime = chargingOrderListVO.getEndTime(); |
| | | // 计算时间差 单位秒 |
| | | long between = ChronoUnit.SECONDS.between(startTime, endTime); |
| | | chargingOrderListVO.setChargingSecond(between); |
| | | } |
| | | if (chargingOrderListVO.getChargingGunId() != null && chargingOrderListVO.getChargingPileId() != null) { |
| | | TChargingGun data1 = allGun.stream().filter(e -> e.getId().equals(chargingOrderListVO.getChargingGunId())).findFirst().orElse(null); |
| | | TChargingPile data2 = allPile.stream().filter(e -> e.getId().equals(chargingOrderListVO.getChargingPileId())).findFirst().orElse(null); |
| | | if (data2 != null && data1 != null) { |
| | | chargingOrderListVO.setTerminalName(data2.getName() + "-" + data1.getName()); |
| | | } |
| | | } |
| | | } |
| | | return list1; |
| | | } |
| | | |
| | | |
| | |
| | | |
| | | List<UploadRealTimeMonitoringData> dataList = uploadRealTimeMonitoringDataService.getDataByOrderCode(chargingOrder.getCode()); |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | chargingOrder.setStartTime(LocalDateTime.parse(sdf.format(dataList.get(dataList.size() - 1).getCreate_time()), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); |
| | | if(dataList.isEmpty()){ |
| | | chargingOrder.setStartTime(LocalDateTime.parse(vo.getStart_time(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SS"))); |
| | | }else{ |
| | | chargingOrder.setStartTime(LocalDateTime.parse(sdf.format(dataList.get(dataList.size() - 1).getCreate_time()), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); |
| | | } |
| | | chargingOrder.setEndTime(LocalDateTime.parse(vo.getEnd_time(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SS"))); |
| | | chargingOrder.setStatus(5); |
| | | chargingOrder.setOrderAmount(orderAmount.setScale(2, RoundingMode.HALF_EVEN)); |
| | |
| | | chargingOrder.setPaymentAmount(payAmount.setScale(2, RoundingMode.HALF_EVEN)); |
| | | chargingOrder.setRefundAmount(refundAmount.setScale(2, RoundingMode.HALF_EVEN)); |
| | | chargingOrder.setRefundStatus(1); |
| | | UploadRealTimeMonitoringData asc = uploadRealTimeMonitoringDataService.getDataByOrderCode(chargingOrder.getCode(), "asc"); |
| | | UploadRealTimeMonitoringData desc = uploadRealTimeMonitoringDataService.getDataByOrderCode(chargingOrder.getCode(), "desc"); |
| | | if(null != asc){ |
| | | chargingOrder.setStartSoc(new BigDecimal(asc.getSoc())); |
| | | } |
| | | if(null != desc){ |
| | | chargingOrder.setEndSoc(new BigDecimal(desc.getSoc())); |
| | | } |
| | | this.updateById(chargingOrder); |
| | | redisService.setCacheObject("chargingOrderStatus:" + vo.getTransaction_serial_number(), 5, 100L, TimeUnit.SECONDS); |
| | | |