| | |
| | | if(null != dataList){ |
| | | //在MongoDB中获取数据 |
| | | SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); |
| | | List<String> time = dataList.stream().map(s -> sdf.format(s.getCreate_time())).collect(Collectors.toList()); |
| | | List<BigDecimal> outputVoltage = dataList.stream().map(UploadRealTimeMonitoringData::getOutput_voltage).collect(Collectors.toList()); |
| | | List<BigDecimal> outputCurrent = dataList.stream().map(UploadRealTimeMonitoringData::getOutput_current).collect(Collectors.toList()); |
| | | List<UploadRealTimeMonitoringData> dataLists = new ArrayList<>(); |
| | | String t = ""; |
| | | for (UploadRealTimeMonitoringData uploadRealTimeMonitoringData : dataList) { |
| | | if(!sdf.format(uploadRealTimeMonitoringData.getCreate_time()).equals(t)){ |
| | | dataLists.add(uploadRealTimeMonitoringData); |
| | | t = sdf.format(uploadRealTimeMonitoringData.getCreate_time()); |
| | | } |
| | | } |
| | | |
| | | List<String> time = dataLists.stream().map(s -> sdf.format(s.getCreate_time())).collect(Collectors.toList()); |
| | | List<BigDecimal> outputVoltage = dataLists.stream().map(UploadRealTimeMonitoringData::getOutput_voltage).collect(Collectors.toList()); |
| | | List<BigDecimal> outputCurrent = dataLists.stream().map(UploadRealTimeMonitoringData::getOutput_current).collect(Collectors.toList()); |
| | | List<Map<String, Object>> currentAndVoltage = new ArrayList<>(); |
| | | for (int i = 0; i < time.size(); i++) { |
| | | Map<String, Object> map = new HashMap<>(); |
| | |
| | | } |
| | | myChargingOrderInfo.setCurrentAndVoltage(currentAndVoltage); |
| | | //在MongoDB中获取数据 |
| | | List<Integer> soc = dataList.stream().map(UploadRealTimeMonitoringData::getSoc).collect(Collectors.toList()); |
| | | List<BigDecimal> po = dataList.stream().map(s -> s.getOutput_current().multiply(s.getOutput_voltage()).divide(new BigDecimal(1000),2, RoundingMode.HALF_DOWN)).collect(Collectors.toList()); |
| | | List<Integer> soc = dataLists.stream().map(UploadRealTimeMonitoringData::getSoc).collect(Collectors.toList()); |
| | | List<BigDecimal> po = dataLists.stream().map(s -> s.getOutput_current().multiply(s.getOutput_voltage()).divide(new BigDecimal(1000),2, RoundingMode.HALF_DOWN)).collect(Collectors.toList()); |
| | | List<Map<String, Object>> power = new ArrayList<>(); |
| | | for (int i = 0; i < time.size(); i++) { |
| | | Map<String, Object> map = new HashMap<>(); |
| | |
| | | chargingOrderListVO.setChargingCapacity(chargingOrderListVO.getElectricity()); |
| | | BigDecimal bigDecimal = new BigDecimal("0.006"); |
| | | if (chargingOrderListVO.getOrderAmount()!=null){ |
| | | chargingOrderListVO.setCommissionAmount(chargingOrderListVO.getOrderAmount().multiply(bigDecimal)); |
| | | chargingOrderListVO.setCommissionAmount(chargingOrderListVO.getPaymentAmount().multiply(bigDecimal)); |
| | | } |
| | | chargingOrderListVO.setPaymentAmount(chargingOrderListVO.getPaymentAmount()); |
| | | chargingOrderListVO.setUid(chargingOrderListVO.getId()+""); |
| | |
| | | // 获取开始SOC 结束soc |
| | | if (chargingOrderListVO.getCode()!=null){ |
| | | List<UploadRealTimeMonitoringData> data6 = uploadRealTimeMonitoringDataClient.getDataByOrderCode(chargingOrderListVO.getCode()).getData(); |
| | | |
| | | if (data6!=null && !data6.isEmpty()){ |
| | | // 第一条数据soc为开始 最后一条数据soc为结束soc |
| | | chargingOrderListVO.setEndSoc(data6.get(0).getSoc().toString()); |
| | | chargingOrderListVO.setStartSoc(data6.get(data6.size()-1).getSoc().toString()); |
| | | int min = 100; |
| | | int max = 0; |
| | | for (UploadRealTimeMonitoringData uploadRealTimeMonitoringData : data6) { |
| | | if (uploadRealTimeMonitoringData.getSoc()>max){ |
| | | max = uploadRealTimeMonitoringData.getSoc(); |
| | | } |
| | | if (uploadRealTimeMonitoringData.getSoc()!=0 &&uploadRealTimeMonitoringData.getSoc()<min){ |
| | | min = uploadRealTimeMonitoringData.getSoc(); |
| | | } |
| | | } |
| | | chargingOrderListVO.setEndSoc(max+""); |
| | | chargingOrderListVO.setStartSoc(min+""); |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | //获取订单的计费策略 |
| | | List<AccountingStrategyDetailOrder> accountingStrategyDetailOrderList = accountingStrategyDetailOrderClient.getAllAccountingStrategyDetailOrder(chargingOrder.getId()).getData(); |
| | | |
| | | accountingStrategyDetailOrderList.get(accountingStrategyDetailOrderList.size() - 1).setEndTime("23:59"); |
| | | //开始处理计费明细数据和优惠数据 |
| | | chargingOrderAccountingStrategyService.remove(new LambdaQueryWrapper<TChargingOrderAccountingStrategy>().eq(TChargingOrderAccountingStrategy::getChargingOrderId, chargingOrder.getId())); |
| | | SimpleDateFormat sdfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | |
| | | if(null != integralRule){ |
| | | TAppUser appUser = appUserClient.getUserById(chargingOrder.getAppUserId()).getData(); |
| | | Integer num1 = JSON.parseObject(integralRule.getChargeCredit()).getInteger("num1"); |
| | | Integer integral = payAmount.multiply(new BigDecimal(num1)).intValue(); |
| | | Integer integral = chargingOrder.getServiceCharge().intValue() * num1; |
| | | if(null != appUser.getVipId()){ |
| | | TVip vip = vipClient.getInfo1(appUser.getVipId()).getData(); |
| | | Integer doubleIntegration = vip.getDoubleIntegration(); |
| | |
| | | } |
| | | |
| | | } |
| | | tSettlementConfirm.setServiceMoney(dto.getServiceCharge().subtract(dto.getVenue()).subtract(dto.getClean()) |
| | | .subtract(dto.getMaintain()).multiply(dto.getServicePartner())); |
| | | // 三方交易手续费 三方收费*0.6% |
| | | commissionAmount = sharingAmount.multiply(new BigDecimal("0.006")); |
| | | // 订单手续费 订单支付金额 - 退款金额*0.6% |
| | |
| | | tSettlementConfirm.setTotalService(dto.getTotalService()); |
| | | tSettlementConfirm.setRemark(dto.getRemark()); |
| | | tSettlementConfirm.setServicePartner(dto.getServicePartner()); |
| | | tSettlementConfirm.setServiceMoney(dto.getServiceMoney()); |
| | | BigDecimal subtract = new BigDecimal("1").subtract(dto.getProportionPartner().multiply(new BigDecimal("0.01"))); |
| | | // 总电损费用 |
| | | BigDecimal divide = tSettlementConfirm.getProportionMoney().divide(subtract, 2, RoundingMode.HALF_DOWN); |
| | |
| | | tSettlementConfirm.setDistribution(dto.getDistribution()); |
| | | tSettlementConfirm.setIncome(dto.getElectrovalence().add(dto.getServiceCharge())); |
| | | tSettlementConfirm.setCost(dto.getVenue().add(dto.getClean()).add(dto.getMaintain()).add(dto.getSupplyElectronic())); |
| | | tSettlementConfirm.setProfitMoney(tSettlementConfirm.getElectrovalence().add(tSettlementConfirm.getServiceCharge()) |
| | | .subtract(tSettlementConfirm.getCost())); |
| | | BigDecimal divide1 = tSettlementConfirm.getProportionMoney().divide(tSettlementConfirm.getProportionPartner(), 2, RoundingMode.HALF_DOWN); |
| | | tSettlementConfirm.setProfitMoney(tSettlementConfirm.getServiceMoney().multiply(tSettlementConfirm.getServicePartner()) |
| | | .subtract(divide1)); |
| | | tSettlementConfirm.setNewSettlement(subtract2.subtract(tSettlementConfirm.getCost())); |
| | | |
| | | |
| | | tSettlementConfirmMapper.insert(tSettlementConfirm); |
| | | } |
| | |
| | | |
| | | @Override |
| | | public PageInfo<TSettlementConfirm> settlementList(SettlementListQuery dto) { |
| | | String startTime = null; |
| | | String endTime = null; |
| | | if (StringUtils.hasLength(dto.getStartTime())){ |
| | | dto.setType(1); |
| | | String[] split = dto.getStartTime().split(" - "); |
| | | dto.setStartTime(split[0]); |
| | | dto.setEndTime(split[1]); |
| | | startTime = split[0]; |
| | | endTime = split[1]; |
| | | } |
| | | if (StringUtils.hasLength(dto.getEndTime())){ |
| | | dto.setType(2); |
| | | String[] split = dto.getStartTime().split(" - "); |
| | | dto.setStartTime(split[0]); |
| | | dto.setEndTime(split[1]); |
| | | String[] split = dto.getEndTime().split(" - "); |
| | | startTime = split[0]; |
| | | endTime = split[1]; |
| | | } |
| | | dto.setStartTime(startTime); |
| | | dto.setEndTime(endTime); |
| | | PageInfo<TSettlementConfirm> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize()); |
| | | List<TSettlementConfirm> list = tSettlementConfirmMapper.settlementList(pageInfo,dto); |
| | | for (TSettlementConfirm tSettlementConfirm : list) { |