//package com.ruoyi.order; // //import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; //import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; //import com.ruoyi.account.api.feignClient.AppCouponClient; //import com.ruoyi.account.api.feignClient.AppUserClient; //import com.ruoyi.account.api.feignClient.AppUserIntegralChangeClient; //import com.ruoyi.account.api.model.TAppCoupon; //import com.ruoyi.account.api.model.TAppUser; //import com.ruoyi.account.api.model.TAppUserIntegralChange; //import com.ruoyi.chargingPile.api.feignClient.ChargingGunClient; //import com.ruoyi.chargingPile.api.feignClient.SiteClient; //import com.ruoyi.chargingPile.api.model.TChargingGun; //import com.ruoyi.common.core.domain.R; //import com.ruoyi.integration.api.feignClient.ChargingMessageClient; //import com.ruoyi.integration.api.feignClient.TCECClient; //import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData; //import com.ruoyi.integration.api.vo.ChargingOrderVo; //import com.ruoyi.order.api.model.*; //import com.ruoyi.order.service.*; //import com.ruoyi.order.util.mongodb.service.TransactionRecordService; //import com.ruoyi.order.util.mongodb.service.UploadRealTimeMonitoringDataService; //import com.ruoyi.order.util.task.TaskUtil; //import com.ruoyi.other.api.domain.TCoupon; //import com.ruoyi.other.api.domain.TIntegralRule; //import com.ruoyi.other.api.domain.TVip; //import com.ruoyi.other.api.feignClient.IntegralRuleClient; //import com.ruoyi.other.api.feignClient.VipClient; //import com.ruoyi.payment.api.feignClient.AliPaymentClient; //import com.ruoyi.payment.api.feignClient.H5AliPaymentClient; //import com.ruoyi.payment.api.feignClient.WxPaymentClient; //import com.ruoyi.payment.api.model.RefundReq; //import com.ruoyi.payment.api.model.RefundResp; //import com.ruoyi.payment.api.model.WxPaymentRefundModel; //import org.junit.jupiter.api.Test; //import org.springframework.beans.BeanUtils; //import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.boot.test.context.SpringBootTest; // //import javax.annotation.Resource; //import java.math.BigDecimal; //import java.math.MathContext; //import java.math.RoundingMode; //import java.text.SimpleDateFormat; //import java.time.LocalDateTime; //import java.time.format.DateTimeFormatter; //import java.time.temporal.ChronoUnit; //import java.util.*; //import java.util.stream.Collectors; // //@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = RuoYiOrderApplication.class) //public class RuoYiOrderApplicationTests { // // @Resource // private TChargingBillService chargingBillService; // @Resource // private SiteClient siteClient; // @Resource // private TChargingOrderService chargingOrderService; // // @Resource // private TChargingOrderRefundService chargingOrderRefundService; // // @Resource // private UploadRealTimeMonitoringDataService uploadRealTimeMonitoringDataService; // // @Resource // private TransactionRecordService transactionRecordService; // // @Resource // private ChargingMessageClient chargingMessageClient; // // @Resource // private AccountingStrategyDetailOrderService accountingStrategyDetailOrderService; // // @Resource // private TChargingOrderAccountingStrategyService chargingOrderAccountingStrategyService; // // @Resource // private AppCouponClient appCouponClient; // // @Resource // private TCECClient tcecClient; // // @Resource // private VipClient vipClient; // // @Resource // private ChargingGunClient chargingGunClient; // // @Resource // private IntegralRuleClient integralRuleClient; // @Resource // private AppUserClient appUserClient; // // @Resource // private AppUserIntegralChangeClient appUserIntegralChangeClient; // // @Resource // private WxPaymentClient wxPaymentClient; // // @Resource // private AliPaymentClient aliPaymentClient; // @Resource // private H5AliPaymentClient h5AliPaymentClient; // // @Resource // private ITChargingOrderSummaryDataService chargingOrderSummaryDataService; // // // @Test // public void test(){ // TChargingOrder order = chargingOrderService.getOne(new QueryWrapper().eq("code", "CD61220250714235257688")); // List dataList = uploadRealTimeMonitoringDataService.getDataByOrderCode(order.getCode()); // if(!dataList.isEmpty()){ // //获取当前订单的计费规则,然后分段计算总的度数和充电金额 // List detailOrders = accountingStrategyDetailOrderService.list(new LambdaQueryWrapper() // .eq(AccountingStrategyDetailOrder::getChargingOrderId, order.getId()).last(" order by start_time")); // detailOrders.get(detailOrders.size() - 1).setEndTime("23:59"); // SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); // //开始解析每个时段的充电度数 // BigDecimal decimal = BigDecimal.ZERO; // //如果使用优惠券需要判断优惠券是否满足使用条件 // //退款金额=优惠券金额+剩余充电金额 // BigDecimal periodElectricPrice_total = BigDecimal.ZERO; // BigDecimal periodServicePrice_total = BigDecimal.ZERO; // BigDecimal vipDiscountAmount_total = BigDecimal.ZERO; // BigDecimal serviceCharge_total = BigDecimal.ZERO; // BigDecimal total = BigDecimal.ZERO; // //判断实时数据是否跨天 // SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd"); // Date end_time = dataList.get(0).getCreate_time(); // String end = sdf2.format(end_time); // Date start_time = dataList.get(dataList.size() - 1).getCreate_time(); // String start = sdf2.format(start_time); // if(!end.equals(start)){ // List list = detailOrders.stream().map(s->{ // AccountingStrategyDetailOrder accountingStrategyDetailOrder = new AccountingStrategyDetailOrder(); // BeanUtils.copyProperties(s, accountingStrategyDetailOrder); // return accountingStrategyDetailOrder; // }).collect(Collectors.toList()); // for (AccountingStrategyDetailOrder detailOrder : detailOrders) { // detailOrder.setStartTime(start + " " + detailOrder.getStartTime()); // detailOrder.setEndTime(start + " " + detailOrder.getEndTime()); // } // for (AccountingStrategyDetailOrder detailOrder : list) { // detailOrder.setStartTime(end + " " + detailOrder.getStartTime()); // detailOrder.setEndTime(end + " " + detailOrder.getEndTime()); // } // detailOrders.addAll(list); // }else{ // for (AccountingStrategyDetailOrder detailOrder : detailOrders) { // detailOrder.setStartTime(start + " " + detailOrder.getStartTime()); // detailOrder.setEndTime(start + " " + detailOrder.getEndTime()); // } // } // // SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMddHHmm"); // List list = new ArrayList<>(); // for (AccountingStrategyDetailOrder detailOrder : detailOrders) { // long startTime = Long.parseLong(detailOrder.getStartTime().replaceAll("-", "").replaceAll(" ", "").replaceAll(":", "")); // long endTime = Long.parseLong(detailOrder.getEndTime().replaceAll("-", "").replaceAll(" ", "").replaceAll(":", "")); // List collect = dataList.stream().filter(s -> Long.parseLong(sdf1.format(s.getCreate_time())) > startTime && Long.parseLong(sdf1.format(s.getCreate_time())) <= endTime).collect(Collectors.toList()); // // if(!collect.isEmpty()){ // //升序排序 // collect.sort(new Comparator(){ // @Override // public int compare(UploadRealTimeMonitoringData o1, UploadRealTimeMonitoringData o2) { // return o1.getCharging_degree().compareTo(o2.getCharging_degree()); // } // }); // UploadRealTimeMonitoringData uploadRealTimeMonitoringData = collect.get(collect.size() - 1); // BigDecimal chargingDegree = uploadRealTimeMonitoringData.getCharging_degree(); // BigDecimal subtract = chargingDegree.subtract(decimal); // decimal = chargingDegree; // if(subtract.compareTo(BigDecimal.ZERO) > 0){ // //组装充电明细数据 // TChargingOrderAccountingStrategy chargingOrderAccountingStrategy = new TChargingOrderAccountingStrategy(); // chargingOrderAccountingStrategy.setChargingOrderId(order.getId()); // chargingOrderAccountingStrategy.setAccountingStrategyDetailId(detailOrder.getId()); // chargingOrderAccountingStrategy.setType(detailOrder.getType()); // chargingOrderAccountingStrategy.setElectrovalence(detailOrder.getElectrovalence()); // chargingOrderAccountingStrategy.setServiceCharge(detailOrder.getServiceCharge()); // chargingOrderAccountingStrategy.setCostServiceCharge(detailOrder.getCostServiceCharge()); // chargingOrderAccountingStrategy.setChargingCapacity(subtract); // chargingOrderAccountingStrategy.setCreateTime(LocalDateTime.now()); // // if (list.size() == 0) { // String time = sdf.format(collect.get(0).getCreate_time()); // chargingOrderAccountingStrategy.setStartTime(time); // } else { // chargingOrderAccountingStrategy.setStartTime(detailOrder.getStartTime().split(" ")[1]); // } // chargingOrderAccountingStrategy.setEndTime(detailOrder.getEndTime().split(" ")[1]); // // //已充电总度数 // BigDecimal electrovalenc = detailOrder.getElectrovalence().multiply(subtract); // BigDecimal originalServicePrice = detailOrder.getServiceCharge().multiply(subtract); // BigDecimal serviceCharge = originalServicePrice; // BigDecimal vipDiscountAmount = BigDecimal.ZERO; // //计算优惠金额 // if (null != order.getVipDiscount()) { // //0.58折 // vipDiscountAmount = serviceCharge.multiply(new BigDecimal(1).subtract(order.getVipDiscount())); // serviceCharge = serviceCharge.multiply(order.getVipDiscount()); // } // chargingOrderAccountingStrategy.setPeriodElectricPrice(electrovalenc.setScale(4, RoundingMode.HALF_EVEN)); // chargingOrderAccountingStrategy.setPeriodServicePrice(serviceCharge.setScale(4, RoundingMode.HALF_EVEN)); // chargingOrderAccountingStrategy.setPeriodOriginalServicePrice(originalServicePrice.setScale(4, RoundingMode.HALF_EVEN)); // chargingOrderAccountingStrategy.setVipDiscountAmount(vipDiscountAmount.setScale(4, RoundingMode.HALF_EVEN)); // chargingOrderAccountingStrategy.setCreateTime(LocalDateTime.now()); // list.add(chargingOrderAccountingStrategy); // //电费 // periodElectricPrice_total = periodElectricPrice_total.add(electrovalenc); // //服务费(含折扣) // serviceCharge_total = serviceCharge_total.add(serviceCharge); // //服务费(不含折扣) // periodServicePrice_total = periodServicePrice_total.add(originalServicePrice); // //会员折扣优惠金额 // vipDiscountAmount_total = vipDiscountAmount_total.add(vipDiscountAmount); // //原始总金额(不含折扣) // total = total.add(electrovalenc.add(originalServicePrice)); // } // } // // } // list.get(list.size() - 1).setEndTime(sdf.format(dataList.get(0).getCreate_time())); // chargingOrderAccountingStrategyService.saveBatch(list); // // BigDecimal orderAmount = BigDecimal.valueOf(total.doubleValue()); // //原金额 // BigDecimal rechargeAmount = order.getRechargeAmount(); // //支付金额 // BigDecimal payAmount = periodElectricPrice_total.add(serviceCharge_total); // //退款金额=充值金额-实际支付金额 // BigDecimal refundAmount = rechargeAmount.subtract(payAmount); // // UploadRealTimeMonitoringData uploadRealTimeMonitoringData = uploadRealTimeMonitoringDataService.getLastDataById(order.getCode()); // if (null != uploadRealTimeMonitoringData && null == order.getEndMode()) { // Integer soc = uploadRealTimeMonitoringData.getSoc(); // if (soc >= 98) { // order.setEndMode(2); // } else if (null != order.getResidualAmount() && order.getResidualAmount().compareTo(new BigDecimal(1)) <= 0) { // order.setEndMode(3); // } else { // order.setEndMode(1); // } // } // // order.setResidualAmount(rechargeAmount.subtract(total).setScale(2, RoundingMode.HALF_EVEN)); // order.setStartTime(list.get(0).getCreateTime()); // order.setEndTime(list.get(list.size() - 1).getCreateTime()); // order.setStatus(5); // order.setOrderAmount(orderAmount.setScale(2, RoundingMode.HALF_EVEN)); // order.setElectrovalence(periodElectricPrice_total.setScale(2, RoundingMode.HALF_EVEN)); // order.setChargingCapacity(list.get(list.size() - 1).getChargingCapacity()); // order.setElectricity(list.get(list.size() - 1).getChargingCapacity()); // order.setVipDiscountAmount(vipDiscountAmount_total); // if (vipDiscountAmount_total.compareTo(BigDecimal.ZERO) == 0) { // order.setVipDiscount(BigDecimal.valueOf(1)); // } // // //计算优惠券 // BigDecimal couponDiscount = BigDecimal.ZERO; // if (null != order.getAppCouponId()) { // //判断实际充电金额是否满足优惠券使用条件,如果不满足则不适用优惠券。 // TAppCoupon appCoupon = appCouponClient.getAppCouponById(order.getAppCouponId()).getData(); // String couponJson = appCoupon.getCouponJson(); // TCoupon tCoupon = com.alibaba.fastjson2.JSON.parseObject(couponJson, TCoupon.class); // Integer preferentialMode = tCoupon.getPreferentialMode(); // if (1 == preferentialMode) { // //满减 // if (payAmount.compareTo(tCoupon.getMeetTheConditions()) >= 0) { // BigDecimal couponDiscountAmount = tCoupon.getDiscountAmount(); // //如果优惠金额大于服务费金额,以服务费作为最大限制 // if (serviceCharge_total.compareTo(couponDiscountAmount) < 0) { // couponDiscount = serviceCharge_total; // serviceCharge_total = BigDecimal.ZERO; // } else { // couponDiscount = couponDiscountAmount; // } // appCoupon.setStatus(2); // appCouponClient.updateAppCoupon(appCoupon); // } else { // appCouponClient.refund(order.getAppCouponId().toString()); // order.setAppCouponId(null); // order.setCouponDiscountAmount(BigDecimal.ZERO); // } // } // if (2 == preferentialMode) { // //抵扣 // if (payAmount.compareTo(tCoupon.getMeetTheConditions()) >= 0) { // //折扣金额 // BigDecimal divide = payAmount.multiply(new BigDecimal(10).subtract(tCoupon.getDiscount())).divide(new BigDecimal(10)); // divide = divide.compareTo(tCoupon.getMaximumDiscountAmount()) > 0 ? tCoupon.getMaximumDiscountAmount() : divide; // //如果优惠金额大于服务费金额,以服务费作为最大限制 // if (serviceCharge_total.compareTo(divide) < 0) { // couponDiscount = serviceCharge_total; // serviceCharge_total = BigDecimal.ZERO; // } else { // couponDiscount = divide; // } // // appCoupon.setStatus(2); // appCouponClient.updateAppCoupon(appCoupon); // } else { // order.setAppCouponId(null); // order.setCouponDiscountAmount(BigDecimal.ZERO); // appCouponClient.refund(order.getAppCouponId().toString()); // } // } // } // //优惠券优惠金额 // couponDiscount = couponDiscount.setScale(4, RoundingMode.HALF_EVEN); // //退款金额+优惠券 // refundAmount = refundAmount.add(couponDiscount); // //实际支付金额-优惠券 // payAmount = payAmount.subtract(couponDiscount); // if (serviceCharge_total.compareTo(BigDecimal.ZERO) > 0) { // serviceCharge_total = serviceCharge_total.subtract(couponDiscount); // } // order.setCouponDiscountAmount(couponDiscount.setScale(2, RoundingMode.HALF_EVEN)); // order.setServiceCharge(serviceCharge_total.setScale(2, RoundingMode.HALF_EVEN)); // order.setPaymentAmount(payAmount.setScale(2, RoundingMode.HALF_EVEN)); // order.setRefundAmount(refundAmount.setScale(2, RoundingMode.HALF_EVEN)); // order.setRefundStatus(1); // chargingOrderService.updateById(order); // // order = chargingOrderService.getById(order.getId()); // // //推送三方平台 // if (2 == order.getOrderSource()) { // TChargingOrder finalChargingOrder = order; // new Thread(new Runnable() { // @Override // public void run() { // tcecClient.notificationEquipChargeStatus(finalChargingOrder.getStartChargeSeq(), finalChargingOrder.getOperatorId()); // tcecClient.notificationStopChargeResult(finalChargingOrder.getStartChargeSeq(), finalChargingOrder.getChargingGunId().toString(), // finalChargingOrder.getOperatorId()); // tcecClient.notificationChargeOrderInfo(finalChargingOrder.getStartChargeSeq(), finalChargingOrder.getOperatorId()); // } // }).start(); // } // // //开始将优惠券优惠的金额添加到明细中 // BigDecimal couponDiscountAmount = order.getCouponDiscountAmount(); // if (null != couponDiscountAmount && couponDiscountAmount.compareTo(BigDecimal.ZERO) > 0) { // List list1 = chargingOrderAccountingStrategyService.list(new LambdaQueryWrapper().eq(TChargingOrderAccountingStrategy::getChargingOrderId, order.getId())); // BigDecimal reduce = list1.stream().map(TChargingOrderAccountingStrategy::getPeriodServicePrice).reduce(BigDecimal.ZERO, BigDecimal::add); // for (TChargingOrderAccountingStrategy chargingOrderAccountingStrategy : list1) { // BigDecimal periodServicePrice = chargingOrderAccountingStrategy.getPeriodServicePrice(); // BigDecimal multiply = couponDiscountAmount.multiply(periodServicePrice.divide(reduce, new MathContext(4, RoundingMode.HALF_EVEN))); // periodServicePrice = periodServicePrice.subtract(multiply); // chargingOrderAccountingStrategy.setPeriodServicePrice(periodServicePrice.setScale(2, RoundingMode.HALF_EVEN)); // chargingOrderAccountingStrategy.setCouponDiscountAmount(multiply.setScale(2, RoundingMode.HALF_EVEN)); // } // chargingOrderAccountingStrategyService.updateBatchById(list1); // } // // // 将枪状态重置为空闲 // TChargingGun chargingGun = new TChargingGun(); // chargingGun.setId(order.getChargingGunId()); // chargingGun.setStatus(2); // chargingGun.setChargingPower(BigDecimal.ZERO); // chargingGunClient.updateChargingGunById(chargingGun); // //推送状态给三方平台 // if (2 == order.getOrderSource()) { // tcecClient.pushChargingGunStatus(chargingGun.getFullNumber(), chargingGun.getStatus()); // } // // //添加积分 // if (1 == order.getOrderSource()) { // TIntegralRule integralRule = integralRuleClient.getSet().getData(); // if (null != integralRule) { // TAppUser appUser = appUserClient.getUserById(order.getAppUserId()).getData(); // Integer num1 = com.alibaba.fastjson2.JSON.parseObject(integralRule.getChargeCredit()).getInteger("num1"); // Integer integral = order.getServiceCharge().intValue() * num1; // if (null != appUser.getVipId()) { // TVip vip = vipClient.getInfo1(appUser.getVipId()).getData(); // Integer doubleIntegration = vip.getDoubleIntegration(); // //双倍积分 // if (1 == doubleIntegration) { // integral *= 2; // } // } // // if (integral > 0) { // TAppUserIntegralChange appUserIntegralChange = new TAppUserIntegralChange(); // appUserIntegralChange.setAppUserId(appUser.getId()); // appUserIntegralChange.setChangeType(2); // appUserIntegralChange.setHistoricalIntegral(appUser.getPoints()); // appUser.setPoints(appUser.getPoints() + integral); // appUserIntegralChange.setCurrentIntegral(appUser.getPoints()); // appUserIntegralChange.setCreateTime(LocalDateTime.now()); // appUserIntegralChange.setOrderCode(order.getCode()); // appUserIntegralChange.setExtension(order.getId().toString()); // appUserClient.updateAppUser(appUser); // appUserIntegralChangeClient.addAppUserIntegralChange(appUserIntegralChange); // } // } // // //计算用户标签 // chargingOrderService.editUserTag(order); // //用户推荐奖励 // chargingOrderService.referralReward(order); // // //开始构建退款费用 // refundAmount = refundAmount.setScale(2, RoundingMode.HALF_EVEN); // if (refundAmount.compareTo(BigDecimal.ZERO) > 0) { // Integer rechargePaymentType = order.getRechargePaymentType(); // //构建退款明细 // TChargingOrderRefund chargingOrderRefund = new TChargingOrderRefund(); // chargingOrderRefund.setChargingOrderId(order.getId()); // SimpleDateFormat sdfaa = new SimpleDateFormat("yyyyMMddHHmmssSSS"); // chargingOrderRefund.setRefundCode("CDF" + sdfaa.format(new Date()) + (Double.valueOf(Math.random() * 1000).intValue())); // chargingOrderRefund.setRefundAmount(refundAmount); // chargingOrderRefund.setRefundStatus(1); // chargingOrderRefund.setPayType(rechargePaymentType); // chargingOrderRefund.setRefundStatus(1); // chargingOrderRefund.setCode(order.getCode()); // chargingOrderRefund.setRefundTitle("充电完成退款"); // chargingOrderRefund.setRefundContent("充电完成退款"); // chargingOrderRefund.setRefundReason("充电完成退款"); // chargingOrderRefund.setRefundRemark("实际充电消费金额:" + order.getPaymentAmount()); // chargingOrderRefund.setRefundTotalAmount(refundAmount); // chargingOrderRefund.setPayAmount(rechargeAmount); // if (1 == rechargePaymentType) { // WxPaymentRefundModel model = new WxPaymentRefundModel(); // model.setOut_trade_no(order.getCode()); // model.setOut_refund_no(chargingOrderRefund.getRefundCode()); // model.setReason("充电完成退款"); // model.setNotify_url("/payment/wx/refund/notify"); // WxPaymentRefundModel.RefundAmount amount = new WxPaymentRefundModel.RefundAmount(); // amount.setRefund(refundAmount.multiply(new BigDecimal(100)).intValue()); // amount.setTotal(rechargeAmount.multiply(new BigDecimal(100)).intValue()); // amount.setCurrency("CNY"); // model.setAmount(amount); // R> result = wxPaymentClient.refundOrderR(model); // if (200 == result.getCode()) { // chargingOrderRefundService.save(chargingOrderRefund); // //手续费 // Map amount1 = (Map) result.getData().get("amount"); // Object refund_fee1 = amount1.get("refund_fee"); // BigDecimal refund_fee = new BigDecimal(null == refund_fee1 ? "0" : refund_fee1.toString()).divide(new BigDecimal(100)); // chargingOrderRefund.setRefundFee(refund_fee); // chargingOrderRefundService.updateById(chargingOrderRefund); // } // } // if (2 == rechargePaymentType) { // RefundReq dto = new RefundReq(); // dto.setOutTradeNo(order.getCode()); // dto.setOutRequestNo(chargingOrderRefund.getRefundCode()); // dto.setRefundAmount(refundAmount.toString()); // dto.setRefundReason("充电完成退款"); // RefundResp resp = aliPaymentClient.refund(dto).getData(); // if (null != resp) { // chargingOrderRefundService.save(chargingOrderRefund); // chargingOrderService.chargingOrderStartupFailureWxRefund(chargingOrderRefund.getRefundCode(), resp.getTradeNo(), "SUCCESS", null); // } // } // if (3 == rechargePaymentType) { // RefundReq dto = new RefundReq(); // dto.setOutTradeNo(order.getRechargeSerialNumber()); // dto.setOutRequestNo(chargingOrderRefund.getRefundCode()); // dto.setRefundAmount(refundAmount.toString()); // dto.setRefundReason("充电完成退款"); // RefundResp resp = h5AliPaymentClient.refund(dto).getData(); // if (null != resp && "10000".equals(resp.getCode())) { // chargingOrderRefundService.save(chargingOrderRefund); // chargingOrderService.chargingOrderStartupFailureWxRefund(chargingOrderRefund.getRefundCode(), resp.getTradeNo(), "SUCCESS", null); // } // } // } // } // // //添加汇总统计数据 // List list4 = chargingOrderAccountingStrategyService.list(new QueryWrapper().eq("charging_order_id", order.getId())); // 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 chargingCapacity = list4.stream().map(TChargingOrderAccountingStrategy::getChargingCapacity).reduce(BigDecimal.ZERO, BigDecimal::add); // BigDecimal serviceMoney = BigDecimal.ZERO; // BigDecimal paymentMoney = BigDecimal.ZERO; // long time = 0; // if (!order.getOrderSource().equals(2)) { // serviceMoney = serviceMoney.add(service_reduce); // paymentMoney = paymentMoney.add(electronic_reduce).add(service_reduce); // } else { // serviceMoney = serviceMoney.add(service_reduce.multiply(new BigDecimal("0.8"))); // paymentMoney = paymentMoney.add(electronic_reduce).add(service_reduce.multiply(new BigDecimal("0.8"))); // } // if (order.getStartTime() != null && order.getEndTime() != null) { // time = ChronoUnit.SECONDS.between(order.getStartTime(), order.getEndTime()); // } // TChargingOrderSummaryData summaryData = new TChargingOrderSummaryData(); // summaryData.setChargingOrderId(order.getId()); // summaryData.setChargingCapacity(chargingCapacity); // summaryData.setChargingDuration(time); // summaryData.setIncome(paymentMoney.setScale(2, BigDecimal.ROUND_HALF_EVEN)); // summaryData.setElectricPrice(electronic_reduce.setScale(2, BigDecimal.ROUND_HALF_EVEN)); // summaryData.setServicePrice(serviceMoney.setScale(2, BigDecimal.ROUND_HALF_EVEN)); // chargingOrderSummaryDataService.save(summaryData); // // //推送监管平台订单状态和订单详情 // ChargingOrderVo chargingOrderVo = new ChargingOrderVo(); // BeanUtils.copyProperties(order, chargingOrderVo); // chargingMessageClient.pushOrderInfo(chargingOrderVo); // chargingMessageClient.pushOrderStatus(chargingOrderVo); // } // } //}