| | |
| | | package com.ruoyi.order.controller; |
| | | import com.alibaba.fastjson2.JSON; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | |
| | | import java.math.BigDecimal; |
| | |
| | | if (siteIds.isEmpty()){ |
| | | siteIds.add(-1); |
| | | } |
| | | |
| | | List<TChargingOrder> list = chargingOrderService.list(); |
| | | List<TParkingRecord> parkingRecord = parkingLotClient.getSiteIdAll().getData(); |
| | | for (PayOrderDto record : data.getRecords()) { |
| | | if (record.getType() == 1){ |
| | | TChargingOrder byId = chargingOrderService.getById(record.getId()); |
| | | record.setSiteId(byId.getSiteId()); |
| | | TChargingOrder chargingOrder = list.stream().filter(e -> e.getId().equals(Long.valueOf(record.getId()))).findFirst().orElse(null); |
| | | if (chargingOrder!=null){ |
| | | record.setSiteId(chargingOrder.getSiteId()); |
| | | } |
| | | } |
| | | if (record.getType()==4){ |
| | | Integer siteId=parkingLotClient.getSiteIdByOrderId(Long.valueOf(record.getId())).getData(); |
| | | if (siteId!=null){ |
| | | record.setSiteId(siteId); |
| | | TParkingRecord tParkingRecord = parkingRecord.stream().filter(e -> e.getId().equals(Long.valueOf(record.getId()))).findFirst().orElse(null); |
| | | if (tParkingRecord!=null){ |
| | | record.setSiteId(tParkingRecord.getSiteId()); |
| | | } |
| | | } |
| | | if (roleType==1||(record.getType()!=1&&record.getType()!=4)){ |
| | |
| | | data.setRecords(res1); |
| | | return R.ok(data); |
| | | } |
| | | |
| | | |
| | | |
| | | public static List<PayOrderDto> testing5(long total, long current, long size, List<PayOrderDto> str){ |
| | | List<PayOrderDto> result = new ArrayList<>(); |
| | | //获取初始化分页结构 |
| | |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | |
| | | |
| | | @ResponseBody |
| | | @PostMapping(value = "/pay/order/refund") |
| | | @ApiOperation(value = "退款", tags = {"管理后台-支付订单-订单信息"}) |
| | |
| | | return R.ok(); |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | @ResponseBody |
| | | @GetMapping(value = "/pay/order/refund/detail") |
| | | @ApiOperation(value = "退款信息", tags = {"管理后台-支付订单-订单信息"}) |
| | |
| | | return refundList1; |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | public static List<TChargingOrderRefund> testing4(long total, long current, long size, List<TChargingOrderRefund> str){ |
| | | List<TChargingOrderRefund> result = new ArrayList<>(); |
| | | //获取初始化分页结构 |
| | |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | @ResponseBody |
| | | @PostMapping(value = "/pay/order/refund/list1") |
| | | @ApiOperation(value = "列表1", tags = {"管理后台-支付订单-退款订单"}) |
| | |
| | | TCharingOrderVO res = chargingOrderService.chargingOrder(dto); |
| | | return AjaxResult.success(res); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | @RequiresPermissions(value = {"/chargingPileOrder/monitoring_record"}, logical = Logical.OR) |
| | |
| | | List<TChargingOrderAccountingStrategy> list = chargingOrderAccountingStrategyService.lambdaQuery().eq(TChargingOrderAccountingStrategy::getChargingOrderId, strategyId).orderByDesc(TChargingOrderAccountingStrategy::getStartTime).list(); |
| | | DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); |
| | | for (TChargingOrderAccountingStrategy tChargingOrderAccountingStrategy : list) { |
| | | String format = tChargingOrderAccountingStrategy.getCreateTime().format(formatter); |
| | | String format = ""; |
| | | String format1 = ""; |
| | | // String temp1=list.get(0).getStartTime().split(":")[0]; |
| | | System.err.println("订单详情时间第一条"+list.get(0).getStartTime()); |
| | | System.err.println("订单详情时间开始"+tChargingOrderAccountingStrategy.getStartTime()); |
| | | System.err.println("订单详情时间结束"+tChargingOrderAccountingStrategy.getEndTime()); |
| | | String temp1=list.get(0).getStartTime().split(" ")[1].split(":")[0]; |
| | | String[] split = tChargingOrderAccountingStrategy.getStartTime().split(" ")[1].split(":"); |
| | | if (Integer.parseInt(split[0])>=Integer.valueOf(temp1)){ |
| | | format = byId.getCreateTime().format(formatter); |
| | | }else { |
| | | format = byId.getEndTime().format(formatter); |
| | | } |
| | | String[] split1 = tChargingOrderAccountingStrategy.getEndTime().split(" ")[1].split(":"); |
| | | if (Integer.parseInt(split1[0])<Integer.valueOf(temp1)){ |
| | | format1 = byId.getCreateTime().format(formatter); |
| | | }else { |
| | | format1 = byId.getEndTime().format(formatter); |
| | | } |
| | | tChargingOrderAccountingStrategy.setStartTime(format+" "+tChargingOrderAccountingStrategy.getStartTime()); |
| | | tChargingOrderAccountingStrategy.setEndTime(format+" "+tChargingOrderAccountingStrategy.getEndTime()); |
| | | tChargingOrderAccountingStrategy.setEndTime(format1+" "+tChargingOrderAccountingStrategy.getEndTime()); |
| | | if (byId.getVipDiscountAmount()!=null && byId.getServiceCharge().compareTo(BigDecimal.ZERO) != 0){ |
| | | BigDecimal multiply = byId.getVipDiscountAmount().divide(byId.getServiceCharge(), 2) |
| | | .multiply(tChargingOrderAccountingStrategy.getPeriodOriginalServicePrice()); |
| | |
| | | return AjaxResult.success(chargingOrderInfoVO); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | @ResponseBody |
| | | @PostMapping(value = "/addEvaluate") |
| | | @ApiOperation(value = "添加评价", tags = {"小程序-扫一扫"}) |
| | |
| | | orderEvaluateService.addOrderEvaluate(dto); |
| | | return AjaxResult.success(); |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * 查询用户最近一次充电记录使用的车辆 |
| | | * |
| | |
| | | return R.ok(-1L); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 查询会员在本月有多少次享受了充电折扣 |
| | |
| | | .between(TChargingOrder::getStartTime, req.getStartTime(), req.getEndTime())).size(); |
| | | return R.ok(size); |
| | | } |
| | | |
| | | |
| | | //用户订单数量 |
| | | @PostMapping(value = "/useOrderCount") |
| | | public R<Long> useOrderCount(@RequestParam("userId") Long userId) { |
| | |
| | | return R.ok(count); |
| | | } |
| | | |
| | | |
| | | |
| | | //订单详情 |
| | | @PostMapping(value = "/detail") |
| | | public R<TChargingOrder> detail(@RequestParam("orderId") Long orderId) { |
| | | return R.ok(chargingOrderService.getById(orderId)); |
| | | } |
| | | |
| | | |
| | | |
| | | @PostMapping(value = "/getList") |
| | | public R<List<TChargingOrder>> getList(@RequestParam("siteId") Integer siteId) { |
| | |
| | | return R.ok(list); |
| | | } |
| | | |
| | | |
| | | |
| | | @PostMapping(value = "/getBySiteIdAndTime") |
| | | public R<List<ChargingOrderGroup>> getBySiteIdAndTime(@RequestBody ChargingPercentProvinceDto chargingPercentProvinceDto) { |
| | | |
| | | List<ChargingOrderGroup> groups = chargingOrderService.chargingOrderGroup(chargingPercentProvinceDto); |
| | | return R.ok(groups); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 根据站点id和时间区间查询订单数据 |
| | | * @param chargingPercentProvinceDto |
| | |
| | | .eq(StringUtils.isNotEmpty(tripartitePlatformName), TChargingOrder::getTripartitePlatformName, tripartitePlatformName)); |
| | | return R.ok(list); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 根据充电枪id获取正在进行中的订单 |
| | |
| | | |
| | | |
| | | /** |
| | | * |
| | | * @param code |
| | | */ |
| | | @ResponseBody |
| | | @PostMapping(value = "/refund") |
| | | public R refund(@RequestParam(value = "code") String code){ |
| | | chargingOrderService.refund(code); |
| | | return R.ok(); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 远程启动失败后退款回调 |
| | | */ |
| | | @ResponseBody |
| | |
| | | * @param vo |
| | | */ |
| | | @PostMapping("/endChargeBillingCharge") |
| | | public void endChargeBillingCharge(@RequestBody TransactionRecordMessageVO vo){ |
| | | public R endChargeBillingCharge(@RequestBody TransactionRecordMessageVO vo){ |
| | | log.info("-------------------停止充电返回账单后计算费用及修改业务状态-------------------:" + vo); |
| | | chargingOrderService.endChargeBillingCharge(vo); |
| | | return chargingOrderService.endChargeBillingCharge(vo); |
| | | } |
| | | |
| | | |
| | | // @PostMapping("/endChargeBillingCharge1") |
| | | // public void endChargeBillingCharge1(@RequestBody TransactionRecordMessageVO vo){ |
| | | // log.info("-------------------停止充电返回账单后计算费用及修改业务状态-------------------:" + vo); |
| | | // chargingOrderService.endChargeBillingCharge1(vo); |
| | | // } |
| | | |
| | | |
| | | |
| | | |
| | |
| | | map.put("shopAmount",data1); |
| | | BigDecimal data2 = vipOrderService.getSumAmout(sixBefore); |
| | | map.put("vipAmount",data2); |
| | | List<TChargingOrder> list = chargingOrderService.lambdaQuery().between(TChargingOrder::getCreateTime, sixBefore, LocalDate.now()).list(); |
| | | BigDecimal serviceCharge = new BigDecimal("0"); |
| | | BigDecimal commissionAmount = new BigDecimal("0"); |
| | | |
| | | for (TChargingOrder chargingOrder : list) { |
| | | if (chargingOrder.getOrderSource().equals(2)){ |
| | | serviceCharge = serviceCharge.add(chargingOrder.getServiceCharge()!=null?chargingOrder.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2,BigDecimal.ROUND_DOWN):new BigDecimal("0")); |
| | | commissionAmount = commissionAmount.add(chargingOrder.getServiceCharge()!=null?chargingOrder.getServiceCharge().multiply(new BigDecimal("0.2")).setScale(2,BigDecimal.ROUND_DOWN):new BigDecimal("0")); |
| | | }else{ |
| | | serviceCharge = serviceCharge.add(chargingOrder.getServiceCharge()); |
| | | } |
| | | |
| | | |
| | | } |
| | | map.put("service_charge",serviceCharge); |
| | | map.put("commission_amount",commissionAmount); |
| | | return R.ok(map); |
| | | } |
| | | |
| | |
| | | LocalDateTime min = selectDate.with(LocalTime.MIN); |
| | | LocalDateTime max = selectDate.with(LocalTime.MAX); |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | List<TChargingOrder> list = chargingOrderService.lambdaQuery().in(!siteIds.isEmpty(), TChargingOrder::getSiteId, siteIds).ge( TChargingOrder::getCreateTime,min).le(BasePojo::getCreateTime,max).eq(TChargingOrder::getStatus,5).eq(statisticsQueryDto.getSiteId() != null, TChargingOrder::getSiteId, statisticsQueryDto.getSiteId()).list(); |
| | | List<TChargingOrder> list = chargingOrderService.lambdaQuery().in(!siteIds.isEmpty(), TChargingOrder::getSiteId, siteIds) |
| | | .ge( TChargingOrder::getCreateTime,min).le(BasePojo::getCreateTime,max).eq(TChargingOrder::getStatus,5) |
| | | .eq(statisticsQueryDto.getSiteId() != null, TChargingOrder::getSiteId, statisticsQueryDto.getSiteId()).list(); |
| | | //当日的订单总数 |
| | | int size = list.size(); |
| | | //计算list中paymentAmount的总和 |
| | |
| | | siteIds.add(statisticsQueryDto.getSiteId()); |
| | | } |
| | | if (statisticsQueryDto.getDayType()==1) { |
| | | List<Map<String,Object>> charMap1 = chargingOrderService.getHourType(siteIds,statisticsQueryDto); |
| | | List<Map<String,Object>> charMap1 = chargingOrderService.getHourType(siteIds,statisticsQueryDto); |
| | | List<Map<String, Object>> charMap = new ArrayList<>(); |
| | | // 生成从 "00:00" 到 "23:00" 的时间数据 |
| | | for (int hour = 0; hour < 24; hour++) { |
| | |
| | | } |
| | | List<Map<String,Object>> capMap = chargingOrderService.getchargingCapacity(siteIds,statisticsQueryDto); |
| | | List<TChargingPile> chargingPiles = chargingPileClient.getChargingPileBySiteIds(siteIds).getData(); |
| | | BigDecimal totalRatedPower = chargingPiles.stream().map(TChargingPile::getRatedPower).reduce(BigDecimal.ZERO, BigDecimal::add).multiply(new BigDecimal(chargingPiles.size())).multiply(new BigDecimal(24)); |
| | | BigDecimal totalRatedPower = chargingPiles.stream().map(TChargingPile::getRatedPower).reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | |
| | | //每日利用率=当日充电度数/(总桩数量*桩总功率*24小时) |
| | | BigDecimal multiply1 = new BigDecimal(chargingPiles.size()).multiply(totalRatedPower).multiply(new BigDecimal(24)); |
| | | //每日利用率=当日充电度数/(桩总功率*24小时) |
| | | BigDecimal multiply1 = totalRatedPower.multiply(new BigDecimal(24)); |
| | | System.err.println(JSON.toJSONString(capMap) + "---" + chargingPiles.size() + "---" + totalRatedPower + "---" + multiply1); |
| | | capMap.forEach(map -> { |
| | | BigDecimal chargingCapacity = (BigDecimal) map.get("chargingCapacity"); |
| | | BigDecimal result = chargingCapacity.divide(multiply1, 4, RoundingMode.HALF_UP); |
| | |
| | | List<Integer> gunIds = list.stream().map(TChargingOrder::getChargingGunId).collect(Collectors.toList()); |
| | | return R.ok(gunIds); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | |
| | | log.info(code + ":-------------------充电桩自动结束充电-------------------"); |
| | | chargingOrderService.endCharge(code, 2); |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * 硬件异常结束充电后的处理逻辑 |
| | |
| | | TChargingOrder chargingOrder = chargingOrderService.getChargingOrderByLicensePlate(query); |
| | | return R.ok(chargingOrder); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 修改充电订单 |
| | | * @param chargingOrder |
| | |
| | | return R.ok(list); |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * 根据车牌号查询指定时间范围内的数据 |
| | | * @param plateNum |
| | |
| | | .in(TChargingOrder::getStatus, Arrays.asList(4, 5)).between(TChargingOrder::getStartTime, startTime, endTime)); |
| | | return R.ok(list); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 添加三方平台充电订单数据 |
| | | * @return |
| | |
| | | public R addTripartitePlatformOrder(@RequestBody AddTripartitePlatformOrder query){ |
| | | return chargingOrderService.addTripartitePlatformOrder(query); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 根据三方平台订单id获取充电数据 |
| | | * @param startChargeSeq |
| | |
| | | TChargingOrder chargingOrder = chargingOrderService.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getStartChargeSeq, startChargeSeq)); |
| | | return R.ok(chargingOrder); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 根据三方平台订单ids获取充电数据 |
| | | * @param startChargeSeqs |
| | |
| | | List<TChargingOrder> list = chargingOrderService.list(new LambdaQueryWrapper<TChargingOrder>().in(TChargingOrder::getStartChargeSeq, startChargeSeqs)); |
| | | return R.ok(list); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 三方平台请求停止充电 |
| | | * @param startChargeSeq |
| | |
| | | public R tripartitePlatformStopCharge(@RequestParam("startChargeSeq") String startChargeSeq){ |
| | | return chargingOrderService.tripartitePlatformStopCharge(startChargeSeq); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 临时接口 |
| | | * 获取充电后没有扣除费用的数据 |
| | | * @return |
| | | */ |
| | | @GetMapping("/getNotPaymentChargingOrder") |
| | | public R getNotPaymentChargingOrder(){ |
| | | return chargingOrderService.getNotPaymentChargingOrder(); |
| | | } |
| | | |
| | | } |