| | |
| | | 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) { |
| | | if (roleType == 2) { |
| | | List<Boolean> data = partnerClient.getChargingListMenu(sysUser.getObjectId(), chargingOrderListVO.getSiteId()).getData(); |
| | |
| | | } |
| | | // 获取开始SOC 结束soc |
| | | if (chargingOrderListVO.getCode() != null) { |
| | | List<UploadRealTimeMonitoringData> data6 = uploadRealTimeMonitoringDataService.getDataByOrderCode(chargingOrderListVO.getCode()); |
| | | |
| | | if (data6 != null && !data6.isEmpty()) { |
| | | int min = 100; |
| | | int max = 0; |
| | | for (UploadRealTimeMonitoringData uploadRealTimeMonitoringData : data6) { |
| | | if (uploadRealTimeMonitoringData.getSoc() > max) { |
| | | max = uploadRealTimeMonitoringData.getSoc(); |
| | | UploadRealTimeMonitoringData asc = uploadRealTimeMonitoringDataService.getDataByOrderCode(chargingOrderListVO.getCode(), "asc"); |
| | | UploadRealTimeMonitoringData desc = uploadRealTimeMonitoringDataService.getDataByOrderCode(chargingOrderListVO.getCode(), "desc"); |
| | | if(null != asc){ |
| | | chargingOrderListVO.setStartSoc(asc.getSoc().toString()); |
| | | } |
| | | if (uploadRealTimeMonitoringData.getSoc() != 0 && uploadRealTimeMonitoringData.getSoc() < min) { |
| | | min = uploadRealTimeMonitoringData.getSoc(); |
| | | } |
| | | } |
| | | chargingOrderListVO.setEndSoc(max + ""); |
| | | chargingOrderListVO.setStartSoc(min + ""); |
| | | if(null != desc){ |
| | | chargingOrderListVO.setEndSoc(desc.getSoc().toString()); |
| | | } |
| | | } |
| | | |
| | |
| | | chargingOrderListVO.setPhone(data3.getPhone()); |
| | | } |
| | | } |
| | | List<TChargingOrderAccountingStrategy> list2 = chargingOrderAccountingStrategyService.lambdaQuery() |
| | | .eq(TChargingOrderAccountingStrategy::getChargingOrderId, chargingOrderListVO.getId()).list(); |
| | | 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"); |
| | |
| | | chargingOrderListVO.setSharingAmount(new BigDecimal("0")); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | // 不分页 |
| | | PageInfo<ChargingOrderListVO> pageInfo1 = new PageInfo<>(1, 999999999); |
| | | List<ChargingOrderListVO> list1 = this.baseMapper.chargingList(pageInfo1, dto, startTime1, startTime2, endTime1, endTime2); |
| | |
| | | BigDecimal feng = new BigDecimal("0"); |
| | | BigDecimal ping = new BigDecimal("0"); |
| | | BigDecimal gu = new BigDecimal("0"); |
| | | List<TChargingOrderAccountingStrategy> chargingOrderAccountingStrategies = chargingOrderAccountingStrategyService.list(); |
| | | 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); |
| | |
| | | paymentAmount = paymentAmount.add(periodElectricPrice).add(periodServicePrice); |
| | | } |
| | | if (!chargingOrderListVO.getOrderSource().equals(2)) { |
| | | List<TChargingOrderAccountingStrategy> list2 = chargingOrderAccountingStrategies.stream().filter(e -> e.getChargingOrderId().equals(chargingOrderListVO.getId())) |
| | | .collect(Collectors.toList()); |
| | | for (TChargingOrderAccountingStrategy temp : list2) { |
| | | for (TChargingOrderAccountingStrategy temp : collect) { |
| | | switch (temp.getType()) { |
| | | case 1: |
| | | jian = jian.add(temp.getChargingCapacity()); |
| | |
| | | } |
| | | } |
| | | } else { |
| | | List<TChargingOrderAccountingStrategy> list2 = chargingOrderAccountingStrategies.stream().filter(e -> e.getChargingOrderId().equals(chargingOrderListVO.getId())) |
| | | .collect(Collectors.toList()); |
| | | for (TChargingOrderAccountingStrategy temp : list2) { |
| | | for (TChargingOrderAccountingStrategy temp : collect) { |
| | | BigDecimal multiply = temp.getPeriodServicePrice().multiply(new BigDecimal("0.8")); |
| | | switch (temp.getType()) { |
| | | case 1: |
| | |
| | | |
| | | //开始构建退款费用 |
| | | refundAmount = refundAmount.setScale(2, RoundingMode.HALF_EVEN); |
| | | if (refundAmount.compareTo(BigDecimal.ZERO) > 0) { |
| | | Integer rechargePaymentType = chargingOrder.getRechargePaymentType(); |
| | | if (refundAmount.compareTo(BigDecimal.ZERO) > 0) { |
| | | //构建退款明细 |
| | | TChargingOrderRefund chargingOrderRefund = new TChargingOrderRefund(); |
| | | chargingOrderRefund.setChargingOrderId(chargingOrder.getId()); |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); |
| | | chargingOrderRefund.setRefundCode("CDF" + sdf.format(new Date()) + (Double.valueOf(Math.random() * 1000).intValue())); |
| | | chargingOrderRefund.setRefundAmount(refundAmount); |
| | | chargingOrderRefund.setRefundStatus(1); |
| | | chargingOrderRefund.setPayType(rechargePaymentType); |
| | | chargingOrderRefund.setRefundStatus(1); |
| | | chargingOrderRefund.setCode(chargingOrder.getCode()); |
| | |
| | | this.chargingOrderStartupFailureWxRefund(chargingOrderRefund.getRefundCode(), resp.getTradeNo(), "SUCCESS", null); |
| | | } |
| | | } |
| | | }else{ |
| | | //构建退款明细 |
| | | TChargingOrderRefund chargingOrderRefund = new TChargingOrderRefund(); |
| | | chargingOrderRefund.setChargingOrderId(chargingOrder.getId()); |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); |
| | | chargingOrderRefund.setRefundCode("CDF" + sdf.format(new Date()) + (Double.valueOf(Math.random() * 1000).intValue())); |
| | | chargingOrderRefund.setRefundAmount(refundAmount); |
| | | chargingOrderRefund.setRefundStatus(2); |
| | | chargingOrderRefund.setPayType(rechargePaymentType); |
| | | chargingOrderRefund.setCode(chargingOrder.getCode()); |
| | | chargingOrderRefund.setRefundTitle("充电完成退款"); |
| | | chargingOrderRefund.setRefundContent("充电完成退款"); |
| | | chargingOrderRefund.setRefundReason("充电完成退款"); |
| | | chargingOrderRefund.setRefundRemark("实际充电消费金额:" + chargingOrder.getPaymentAmount()); |
| | | chargingOrderRefund.setRefundTotalAmount(refundAmount); |
| | | chargingOrderRefund.setPayAmount(rechargeAmount); |
| | | chargingOrderRefund.setRefundTime(LocalDateTime.now()); |
| | | chargingOrderRefundService.save(chargingOrderRefund); |
| | | |
| | | chargingOrder.setRefundStatus(2); |
| | | chargingOrder.setRefundTime(LocalDateTime.now()); |
| | | this.updateById(chargingOrder); |
| | | } |
| | | } |
| | | |