From 2c74e3e18bc372f33fcc2f4ea4ab1d9d393c2753 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期三, 05 三月 2025 11:35:34 +0800 Subject: [PATCH] 补充管理后台文件上传 --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java | 714 ++++++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 553 insertions(+), 161 deletions(-) diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java index 03dcce4..50c910b 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java @@ -1,4 +1,5 @@ package com.ruoyi.order.controller; +import com.alibaba.fastjson2.JSON; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import java.math.BigDecimal; @@ -12,18 +13,19 @@ import com.ruoyi.account.api.feignClient.AppUserClient; import com.ruoyi.account.api.model.TAppUserCar; import com.ruoyi.chargingPile.api.dto.GetSiteListDTO; -import com.ruoyi.chargingPile.api.feignClient.ChargingGunClient; -import com.ruoyi.chargingPile.api.feignClient.ChargingPileClient; -import com.ruoyi.chargingPile.api.feignClient.ParkingLotClient; -import com.ruoyi.chargingPile.api.feignClient.SiteClient; +import com.ruoyi.chargingPile.api.feignClient.*; import com.ruoyi.chargingPile.api.model.Site; import com.ruoyi.chargingPile.api.model.TChargingGun; import com.ruoyi.chargingPile.api.model.TChargingPile; +import com.ruoyi.chargingPile.api.model.TParkingRecord; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.dto.ChargingOrderGroup; import com.ruoyi.common.core.dto.ChargingPercentProvinceDto; +import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.web.domain.BasePojo; import com.ruoyi.common.redis.service.RedisService; +import com.ruoyi.common.security.annotation.Logical; +import com.ruoyi.common.security.annotation.RequiresPermissions; import com.ruoyi.common.security.service.TokenService; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.PageInfo; @@ -54,6 +56,8 @@ import com.ruoyi.payment.api.feignClient.AliPaymentClient; import com.ruoyi.payment.api.feignClient.WxPaymentClient; import com.ruoyi.payment.api.vo.AliQueryOrder; +import com.ruoyi.system.api.domain.SysUser; +import com.ruoyi.system.api.feignClient.SysUserClient; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -136,6 +140,16 @@ @Resource private TOrderInvoiceService invoiceService; + @Resource + private UploadRealTimeMonitoringDataClient uploadRealTimeMonitoringDataClient; + @Resource + private PartnerClient partnerClient; + @Resource + private SysUserClient sysUserClient; + + + + /** * 远程调用 增加管理后台赠送会员记录 @@ -168,19 +182,99 @@ } return R.ok(); } + + + @RequiresPermissions(value = {"/invoiceManagement/select_order", "/paymentOrder/order"}, logical = Logical.OR) @ResponseBody @PostMapping(value = "/pay/order/list") @ApiOperation(value = "列表", tags = {"管理后台-支付订单-订单信息"}) public R<PageInfo<PayOrderDto>> payOrderList(@RequestBody PayOrderQueryDto payOrderQueryDto) { - return chargingOrderService.payOrderQuery(payOrderQueryDto); + Integer pageCurr = payOrderQueryDto.getPageCurr(); + Integer pageSize = payOrderQueryDto.getPageSize(); + payOrderQueryDto.setPageCurr(1); + payOrderQueryDto.setPageSize(10000999); + PageInfo<PayOrderDto> data = chargingOrderService.payOrderQuery(payOrderQueryDto).getData(); + List<PayOrderDto> res = new ArrayList<>(); + // 查询当前登陆人按钮权限 + SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData(); + Integer roleType = sysUser.getRoleType(); + Long userId = tokenService.getLoginUser().getUserid(); + //如果没传siteId,获取当前登陆人所有的siteIds + List<Integer> siteIds = new ArrayList<>(); + if (userId != null){ + List<GetSiteListDTO> data2 = siteClient.getSiteListByUserId(userId).getData(); + for (GetSiteListDTO datum : data2) { + siteIds.add(datum.getId()); + } + } + 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 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){ + 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)){ + res.add(record); + continue; + } + if (roleType==2 && (record.getType()==1||record.getType()==4) && siteIds.contains(record.getSiteId())){ + res.add(record); + } + + } + List<PayOrderDto> res1 = testing5(res.size(), pageCurr, pageSize, res); + data.setTotal(res.size()); + 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<>(); + //获取初始化分页结构 + com.ruoyi.order.util.Page<PayOrderDto> page = new com.ruoyi.order.util.Page().getPage(total, size, current - 1); + //获取集合下标初始值 + long startIndex = page.getStartIndex(); + //获取集合下标结束值 + long endInddex = 0; + if(startIndex + page.getCurrent() >= total || size > total){ + endInddex = total; + }else { + endInddex = Math.min(startIndex + page.getSize(), total); + } + //如果输入的开始查询下标大于集合大小,则查询为空值 + if(startIndex > total){ + result = Collections.emptyList(); + }else{ + result = str.subList((int)startIndex,(int)endInddex); + } + return result; +} + + + @ResponseBody @PostMapping(value = "/pay/order/refund") @ApiOperation(value = "退款", tags = {"管理后台-支付订单-订单信息"}) public R refund(@RequestBody PayOrderRefundDto payOrderQueryDto) { return chargingOrderService.payRefund(payOrderQueryDto); } - + + + @RequiresPermissions(value = {"/paymentOrder/order"}, logical = Logical.OR) @ResponseBody @GetMapping(value = "/pay/order/pay/detail") @ApiOperation(value = "支付信息", tags = {"管理后台-支付订单-订单信息"}) @@ -226,17 +320,15 @@ payOrderInfoDto2.setFinalAmount(byId2.getPaymentAmount().subtract(byId2.getRefundAmount())); return R.ok(payOrderInfoDto2); //todo luo 停车场订单 -// case 4: -// TParkingRecord byId3 = parkingLotClient.getRecordById(orderId).getData(); -// PayOrderInfoDto payOrderInfoDto3 = new PayOrderInfoDto(); -// payOrderInfoDto3.setOrderId(byId3.getId().toString()); -// payOrderInfoDto3.setCode(byId3.getCode()); -// payOrderInfoDto3.setTradeNo(byId3); -// payOrderInfoDto3.setPayType(0); -// payOrderInfoDto3.setPayAmount(new BigDecimal("0")); -// payOrderInfoDto3.setPayTime(LocalDateTime.now()); -// payOrderInfoDto3.setRefundAmount(new BigDecimal("0")); - + case 4: + R<TParkingRecord> recordById = parkingLotClient.getRecordById(orderId); + TParkingRecord byId3 =recordById.getData(); + PayOrderInfoDto payOrderInfoDto3 = new PayOrderInfoDto(); + payOrderInfoDto3.setOrderId(byId3.getId().toString()); + payOrderInfoDto3.setCode(byId3.getCode()); + payOrderInfoDto3.setPayTime(byId3.getCreateTime()); + payOrderInfoDto3.setRechargeAmount(byId3.getPayment()); + return R.ok(payOrderInfoDto3); @@ -244,6 +336,10 @@ return R.ok(); } + + + + @ResponseBody @GetMapping(value = "/pay/order/refund/detail") @ApiOperation(value = "退款信息", tags = {"管理后台-支付订单-订单信息"}) @@ -279,6 +375,8 @@ if (byId.getAppUserCarId()!=null) { List<TAppUserCar> data3 = appUserCarClient.getCarByIds(Collections.singletonList(byId.getAppUserCarId())).getData(); payOrderChargingInfo.setCarNum(data3.get(0).getLicensePlate()); + }else{ + payOrderChargingInfo.setCarNum(byId.getPlateNum()); } payOrderChargingInfo.setTChargingOrder(byId); @@ -289,6 +387,8 @@ carid.add(byId.getAppUserCarId()); R<List<TAppUserCar>> carByIds = appUserCarClient.getCarByIds(carid); payOrderChargingInfo.setCarNum(carByIds.getData().get(0).getLicensePlate()); + }else{ + payOrderChargingInfo.setCarNum(byId.getPlateNum()); } payOrderChargingInfo.setStartTime(byId.getStartTime()); payOrderChargingInfo.setEndTime(byId.getEndTime()); @@ -311,20 +411,92 @@ return R.ok(list); } - - - + + + + @RequiresPermissions(value = {"/paymentOrder/refund"}, logical = Logical.OR) @ResponseBody @PostMapping(value = "/pay/order/refund/list") @ApiOperation(value = "列表", tags = {"管理后台-支付订单-退款订单"}) public R<PageInfo<TChargingOrderRefund>> refundList(@RequestBody ChargingRefundDto chargingRefundDto) { - R<PageInfo<TChargingOrderRefund>> refundList = chargingOrderService.getRefundList(chargingRefundDto); - for (TChargingOrderRefund record : refundList.getData().getRecords()) { - record.setUid(record.getId().toString()); + Integer pageCurr = chargingRefundDto.getPageCurr(); + Integer pageSize = chargingRefundDto.getPageSize(); +// R<PageInfo<TChargingOrderRefund>> refundList = chargingOrderService.getRefundList(chargingRefundDto); + chargingRefundDto.setPageCurr(1); + chargingRefundDto.setPageSize(199999999); + R<PageInfo<TChargingOrderRefund>> refundList1 = chargingOrderService.getRefundList(chargingRefundDto); + Long userId = tokenService.getLoginUser().getUserid(); + //如果没传siteId,获取当前登陆人所有的siteIds + List<Integer> siteIds = new ArrayList<>(); + if (userId != null){ + List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData(); + for (GetSiteListDTO datum : data) { + siteIds.add(datum.getId()); + } + } + + if (siteIds.isEmpty()){ + siteIds.add(-1); } - return refundList; + // 查询当前登陆人按钮权限 + SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData(); + Integer roleType = sysUser.getRoleType(); + List<TChargingOrderRefund> tChargingOrderRefunds = new ArrayList<>(); + for (TChargingOrderRefund record : refundList1.getData().getRecords()) { + if (roleType==1){ + tChargingOrderRefunds.add(record); + continue; + } + if (record.getType()!=1){ + tChargingOrderRefunds.add(record); + } + TChargingOrder byId = chargingOrderService.getById(record.getOrderId()); + record.setUid(record.getId().toString()); + if (byId==null){ + continue; + } + if (roleType==2&&siteIds.contains(byId.getSiteId())){ + + tChargingOrderRefunds.add(record); + } + } + PageInfo<TChargingOrderRefund> data = refundList1.getData(); + + List<TChargingOrderRefund> res1 = testing4(tChargingOrderRefunds.size(), pageCurr, pageSize, tChargingOrderRefunds); + data.setTotal(tChargingOrderRefunds.size()); + data.setRecords(res1); + return refundList1; } + + + + + public static List<TChargingOrderRefund> testing4(long total, long current, long size, List<TChargingOrderRefund> str){ + List<TChargingOrderRefund> result = new ArrayList<>(); + //获取初始化分页结构 + com.ruoyi.order.util.Page<TChargingOrderRefund> page = new com.ruoyi.order.util.Page().getPage(total, size, current - 1); + //获取集合下标初始值 + long startIndex = page.getStartIndex(); + //获取集合下标结束值 + long endInddex = 0; + if(startIndex + page.getCurrent() >= total || size > total){ + endInddex = total; + }else { + endInddex = Math.min(startIndex + page.getSize(), total); + } + //如果输入的开始查询下标大于集合大小,则查询为空值 + if(startIndex > total){ + result = Collections.emptyList(); + }else{ + result = str.subList((int)startIndex,(int)endInddex); + } + return result; + } + + + + @ResponseBody @PostMapping(value = "/pay/order/refund/list1") @ApiOperation(value = "列表1", tags = {"管理后台-支付订单-退款订单"}) @@ -332,12 +504,13 @@ return chargingOrderService.getRefundList(chargingRefundDto); } - - - - - - + + + + + + + @RequiresPermissions(value = {"/chargingPileOrder"}, logical = Logical.OR) @ResponseBody @PostMapping(value = "/chargingOrder") @ApiOperation(value = "充电桩订单列表", tags = {"管理后台-订单管理"}) @@ -348,6 +521,10 @@ return AjaxResult.success(res); } + + + + @RequiresPermissions(value = {"/chargingPileOrder/monitoring_record"}, logical = Logical.OR) @ResponseBody @GetMapping(value = "/chargingOrderInfo") @ApiOperation(value = "充电桩订单列表查看详情", tags = {"管理后台-订单管理"}) @@ -366,14 +543,34 @@ chargingOrderInfoVO.setVehicleModel(data.getVehicleModel()); chargingOrderInfoVO.setVehicleUse(data.getVehicleUse()); } + }else{ + chargingOrderInfoVO.setLicensePlate(byId.getPlateNum()); } // 时段总服务费 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()); @@ -389,6 +586,9 @@ return AjaxResult.success(chargingOrderInfoVO); } + + + @ResponseBody @PostMapping(value = "/addEvaluate") @ApiOperation(value = "添加评价", tags = {"小程序-扫一扫"}) @@ -397,6 +597,9 @@ orderEvaluateService.addOrderEvaluate(dto); return AjaxResult.success(); } + + + /** * 查询用户最近一次充电记录使用的车辆 * @@ -416,6 +619,9 @@ return R.ok(-1L); } } + + + /** * 查询会员在本月有多少次享受了充电折扣 @@ -430,6 +636,8 @@ .between(TChargingOrder::getStartTime, req.getStartTime(), req.getEndTime())).size(); return R.ok(size); } + + //用户订单数量 @PostMapping(value = "/useOrderCount") public R<Long> useOrderCount(@RequestParam("userId") Long userId) { @@ -438,11 +646,15 @@ 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) { @@ -451,12 +663,35 @@ 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 + * @return + */ + @PostMapping(value = "/getOrderBySiteIdAndTime") + public R<List<TChargingOrder>> getOrderBySiteIdAndTime(@RequestBody ChargingPercentProvinceDto chargingPercentProvinceDto){ + LocalDate date1 = chargingPercentProvinceDto.getDate1(); + LocalDate date2 = chargingPercentProvinceDto.getDate2(); + String tripartitePlatformName = chargingPercentProvinceDto.getTripartitePlatformName(); + List<TChargingOrder> list = chargingOrderService.list(new LambdaQueryWrapper<TChargingOrder>().in(TChargingOrder::getSiteId, chargingPercentProvinceDto.getSiteIds()) + .between(null != date1 && null != date2, TChargingOrder::getPayTime, date1.atTime(0, 0, 0), date2.atTime(23, 59, 59)) + .eq(TChargingOrder::getDelFlag, 0).eq(TChargingOrder::getStatus, 5) + .eq(StringUtils.isNotEmpty(tripartitePlatformName), TChargingOrder::getOrderSource, 2) + .eq(StringUtils.isNotEmpty(tripartitePlatformName), TChargingOrder::getTripartitePlatformName, tripartitePlatformName)); + return R.ok(list); + } + + /** * 根据充电枪id获取正在进行中的订单 @@ -486,6 +721,11 @@ @GetMapping(value = "/getMyChargingOrderInfo") @ApiOperation(value = "获取充电记订单明细", tags = {"小程序-充电记录"}) public AjaxResult<MyChargingOrderInfo> getMyChargingOrderInfo(String id) { + TChargingOrder tChargingOrder = chargingOrderService.getById(id); + Long userId = tokenService.getLoginUserApplet().getUserId(); + if(!tChargingOrder.getAppUserId().equals(userId)){ + return AjaxResult.error("权限不足"); + } MyChargingOrderInfo myChargingOrderInfo = chargingOrderService.getMyChargingOrderInfo(id); return AjaxResult.success(myChargingOrderInfo); } @@ -527,7 +767,7 @@ @ResponseBody @PostMapping(value = "/securityDetection") public void securityDetection(@RequestBody SecurityDetectionVO securityDetection){ - log.error("-------------------安全检测数据-------------------:" + securityDetection); + log.info("-------------------安全检测数据-------------------:" + securityDetection); chargingOrderService.securityDetection(securityDetection); } @@ -538,7 +778,7 @@ @ResponseBody @PostMapping(value = "/startChargeSuccessfully") public void startChargeSuccessfully(@RequestBody PlatformStartChargingReplyMessageVO message){ - log.error("-------------------远程启动充电请求应答-------------------:" + message); + log.info("-------------------远程启动充电请求应答-------------------:" + message); chargingOrderService.startChargeSuccessfully(message); } @@ -549,21 +789,22 @@ */ @ResponseBody @PostMapping(value = "/chargingOrderALICallback") - public void chargingOrderALICallback(@RequestBody AliQueryOrder aliQueryOrder, HttpServletResponse response) { - try { - String out_trade_no = aliQueryOrder.getOutTradeNo(); - String transaction_id = aliQueryOrder.getTradeNo(); - String attach = aliQueryOrder.getPassbackParams(); - AjaxResult ajaxResult = chargingOrderService.chargingOrderCallback(2, out_trade_no, transaction_id, attach); - if (ajaxResult.isSuccess()) { - PrintWriter writer = response.getWriter(); - writer.println("success"); - writer.flush(); - writer.close(); - } - } catch (Exception e) { - e.printStackTrace(); - } + public void chargingOrderALICallback(@RequestParam("out_trade_no") String out_trade_no, + @RequestParam("transaction_id") String transaction_id, + @RequestParam("attach") String attach) { + chargingOrderService.chargingOrderCallback(2, out_trade_no, transaction_id, attach); + } + + + /** + * + * @param code + */ + @ResponseBody + @PostMapping(value = "/refund") + public R refund(@RequestParam(value = "code") String code){ + chargingOrderService.refund(code); + return R.ok(); } @@ -626,7 +867,7 @@ */ @PostMapping("/terminateSuccessfulResponse") public void terminateSuccessfulResponse(@RequestBody PlatformStopChargingReplyVO platformStopChargingReply){ - log.error("-------------------远程停止充电请求应答-------------------:" + platformStopChargingReply); + log.info("-------------------远程停止充电请求应答-------------------:" + platformStopChargingReply); chargingOrderService.terminateSuccessfulResponse(platformStopChargingReply); } @@ -636,19 +877,21 @@ * @param vo */ @PostMapping("/endChargeBillingCharge") - public void endChargeBillingCharge(@RequestBody TransactionRecordMessageVO vo){ - log.error("-------------------停止充电返回账单后计算费用及修改业务状态-------------------:" + vo); - chargingOrderService.endChargeBillingCharge(vo); + public R endChargeBillingCharge(@RequestBody TransactionRecordMessageVO vo){ + log.info("-------------------停止充电返回账单后计算费用及修改业务状态-------------------:" + vo); + return chargingOrderService.endChargeBillingCharge(vo); } - - - + + + + + @RequiresPermissions(value = {"/platformRevenueAnalysis"}, logical = Logical.OR) @ResponseBody @GetMapping(value = "/six/charge") @ApiOperation(value = "电站收入分析", tags = {"后台-数据分析-平台收入分析"}) public R<List<SixChargingDto>> charge(Integer siteId) { - Long userId = SecurityUtils.getUserId(); + Long userId = tokenService.getLoginUser().getUserid(); //如果没传siteId,获取当前登陆人所有的siteIds List<Integer> siteIds = new ArrayList<>(); if (siteId==null){ @@ -658,6 +901,9 @@ } }else { siteIds.add(siteId); + } + if (siteIds.isEmpty()){ + siteIds.add(-1); } LocalDate sixBefore = PreviousSixMonths.get(); //通过siteIds进行sql查询统计 @@ -692,12 +938,13 @@ return months; } - + + @RequiresPermissions(value = {"/platformRevenueAnalysis"}, logical = Logical.OR) @ResponseBody @GetMapping(value = "/six/circle") @ApiOperation(value = "电站收入占比", tags = {"后台-数据分析-平台收入分析"}) public R<List<SixCircleDto>> circle() { - Long userId = SecurityUtils.getUserId(); + Long userId = tokenService.getLoginUser().getUserid(); //获取当前登录的siteIds List<Integer> siteIds = new ArrayList<>(); List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData(); @@ -706,7 +953,9 @@ } //进行统计groupBySiteId LocalDate sixBefore = PreviousSixMonths.get(); - + if (siteIds.isEmpty()){ + siteIds.add(-1); + } List<SixCircleDto> sixCircleDtos = chargingOrderService.circle(siteIds,sixBefore); for (SixCircleDto sixCircleDto : sixCircleDtos) { Site site = siteClient.getSiteByIds(Arrays.asList(sixCircleDto.getSiteId())).getData().get(0); @@ -715,8 +964,9 @@ return R.ok(sixCircleDtos); } - - + + + @RequiresPermissions(value = {"/platformRevenueAnalysis"}, logical = Logical.OR) @ResponseBody @GetMapping(value = "/six/shop") @ApiOperation(value = "购物收入", tags = {"后台-数据分析-平台收入分析"}) @@ -752,7 +1002,9 @@ return months; } - + + + @RequiresPermissions(value = {"/workbench"}, logical = Logical.OR) @ResponseBody @PostMapping(value = "/work/shop") @ApiOperation(value = "购物收入", tags = {"后台-工作台"}) @@ -762,7 +1014,8 @@ List<Map<String,Object >> shopData = shoppingOrderService.getData(statisticsQueryDto); return R.ok(shopData); } - + + @RequiresPermissions(value = {"/platformRevenueAnalysis"}, logical = Logical.OR) @ResponseBody @GetMapping(value = "/six/vip") @ApiOperation(value = "vip收入", tags = {"后台-数据分析-平台收入分析"}) @@ -772,14 +1025,27 @@ List<SixVipDto> vipDtos = vipOrderService.sixBefore(sixBefore); return R.ok(vipDtos); } - + + + @RequiresPermissions(value = {"/platformRevenueAnalysis"}, logical = Logical.OR) @ResponseBody @GetMapping(value = "/six/total") @ApiOperation(value = "底部数据分类", tags = {"后台-数据分析-平台收入分析"}) public R<Map<String,Object>> total() { //count近6个月的数据 LocalDate sixBefore = PreviousSixMonths.get(); - Map<String,Object> map = chargingOrderService.countAll(sixBefore); + Long userId = tokenService.getLoginUser().getUserid(); + //获取当前登录的siteIds + List<Integer> siteIds = new ArrayList<>(); + List<GetSiteListDTO> data9 = siteClient.getSiteListByUserId(userId).getData(); + for (GetSiteListDTO datum : data9) { + siteIds.add(datum.getId()); + } + //进行统计groupBySiteId + if (siteIds.isEmpty()){ + siteIds.add(-1); + } + Map<String,Object> map = chargingOrderService.countAll(sixBefore,siteIds); BigDecimal data = parkingLotClient.getRecordAmount(sixBefore).getData(); if (map ==null){ map = new HashMap<String,Object>(); @@ -789,26 +1055,75 @@ 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); } - @Resource - private UploadRealTimeMonitoringDataClient uploadRealTimeMonitoringDataClient; + + @RequiresPermissions(value = {"/chargeOrderMonitoring"}, logical = Logical.OR) @ResponseBody @PostMapping(value = "/watch/chargingOrder") @ApiOperation(value = "监控订单", tags = {"管理后台-订单管理"}) public R watchChargingOrder(@RequestBody MongoChargingOrderQuery mongoChargingOrderQuery) { - + Long userid = tokenService.getLoginUser().getUserid(); + SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData(); + Integer roleType = sysUser.getRoleType(); + List<Integer> siteIds = new ArrayList<>(); + if (mongoChargingOrderQuery.getSiteId()==null){ + List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userid).getData(); + for (GetSiteListDTO datum : data) { + siteIds.add(datum.getId()); + } + }else { + siteIds.add(mongoChargingOrderQuery.getSiteId()); + } + if (siteIds.isEmpty()){ + siteIds.add(-1); + }else{ + if (roleType == 2){ + List<Integer> integers = new ArrayList<>(); + for (Integer siteId : siteIds) { + // 校验有没有这个站点的权限 + List<Boolean> t1= partnerClient.watchChargingOrder(sysUser.getObjectId(),siteId).getData(); + Boolean b = t1.get(1); + if (b){ + integers.add(siteId); + } + } + siteIds = integers; + } + } + if (siteIds.isEmpty()){ + siteIds.add(-1); + } + mongoChargingOrderQuery.setSiteIds(siteIds); mongoChargingOrderQuery.setPageSize(10); R<UploadRealTimeMonitoringPageData> all = uploadRealTimeMonitoringDataClient.getAll(mongoChargingOrderQuery); UploadRealTimeMonitoringPageData data1 = all.getData(); List<ChargingOrderAndUploadRealTimeMonitoringDataDto> dtos = new ArrayList<>(); Map<String,ChargingOrderVO> map = new HashMap<>(); + for (UploadRealTimeMonitoringData uploadRealTimeMonitoringData : data1.getRecords()) { + if (roleType==2){ + List<Boolean> data = partnerClient.watchChargingOrder(sysUser.getObjectId(), uploadRealTimeMonitoringData.getSiteId()).getData(); + uploadRealTimeMonitoringData.setAuthInfo(data.get(0)); + uploadRealTimeMonitoringData.setAuthDelete(data.get(1)); + } ChargingOrderAndUploadRealTimeMonitoringDataDto dataDto = new ChargingOrderAndUploadRealTimeMonitoringDataDto(); ChargingOrderQuery dto = new ChargingOrderQuery(); dto.setCode(uploadRealTimeMonitoringData.getTransaction_serial_number()); @@ -847,9 +1162,9 @@ return R.ok(page); } - - - + + + @RequiresPermissions(value = {"/chargeOrderMonitoring/del"}, logical = Logical.OR) @ResponseBody @GetMapping(value = "/watch/deletes") @ApiOperation(value = "监控订单-删除", tags = {"管理后台-订单管理"}) @@ -876,18 +1191,18 @@ return R.ok(chargingOrderService.getOne(Wrappers.lambdaQuery(TChargingOrder.class) .eq(TChargingOrder::getCode,code))); } - - - - - + + + + + @RequiresPermissions(value = {"/chargingOperationAnalysis"}, logical = Logical.OR) @ResponseBody @PostMapping(value = "/charging/statistics") @ApiOperation(value = "统计,充电订单分析", tags = {"管理后台-数据分析-充电运营分析"}) public R<TCharingOrderMapVO> watchChargingOrder(@RequestBody ChargingStatisticsQueryDto statisticsQueryDto){ List<Integer> siteIds =new ArrayList<>(); if (statisticsQueryDto.getSiteId()==null) { - Long userId = SecurityUtils.getUserId(); + Long userId = tokenService.getLoginUser().getUserid(); //获取当前登录的siteIds List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData(); for (GetSiteListDTO datum : data) { @@ -896,6 +1211,7 @@ }else { siteIds.add(statisticsQueryDto.getSiteId()); } + if (siteIds.isEmpty())siteIds.add(-1); TCharingOrderMapVO tCharingOrderMapVO = new TCharingOrderMapVO(); @@ -1119,7 +1435,7 @@ public R<TCharingOrderPowerMapVO> power(@RequestBody ChargingStatisticsQueryDto statisticsQueryDto) { List<Integer> siteIds = new ArrayList<>(); if (statisticsQueryDto.getSiteId() == null) { - Long userId = SecurityUtils.getUserId(); + Long userId = tokenService.getLoginUser().getUserid(); //获取当前登录的siteIds List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData(); for (GetSiteListDTO datum : data) { @@ -1141,17 +1457,32 @@ return R.ok(tCharingOrderPowerMapVO); } - - + + + @RequiresPermissions(value = {"/chargingUserAnalysis"}, logical = Logical.OR) @ResponseBody @PostMapping(value = "/charging/users") @ApiOperation(value = "除电站流量外", tags = {"管理后台-数据分析-充电用户分析"}) public R<TCharingUserMapVO> users(@RequestBody ChargingStatisticsQueryDto statisticsQueryDto){ + Long userId = tokenService.getLoginUser().getUserid(); + + List<Integer> siteIds = new ArrayList<>(); + if (statisticsQueryDto.getSiteId()==null){ + List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData(); + for (GetSiteListDTO datum : data) { + siteIds.add(datum.getId()); + } + }else { + siteIds.add(statisticsQueryDto.getSiteId()); + } + if (siteIds.isEmpty())siteIds.add(-1); + statisticsQueryDto.setSiteIds(siteIds); + TCharingUserMapVO tCharingUserMapVO = new TCharingUserMapVO(); //上方折现 if (statisticsQueryDto.getDayType()==1){ - List<Map<String,Object>> map = chargingOrderService.usersDay(); + List<Map<String,Object>> map = chargingOrderService.usersDay(statisticsQueryDto); List<Map<String, Object>> charMap = new ArrayList<>(); // 生成从 "00:00" 到 "23:00" 的时间数据 @@ -1301,13 +1632,16 @@ return R.ok(tCharingUserMapVO); } + + + @RequiresPermissions(value = {"/chargingUserAnalysis"}, logical = Logical.OR) @ResponseBody @PostMapping(value = "/charging/sites") @ApiOperation(value = "电站评价", tags = {"管理后台-数据分析-充电用户分析"}) public R<TCharingUserEvaluateVO> sites(@RequestBody ChargingStatisticsQueryDto statisticsQueryDto){ List<Integer> siteIds =new ArrayList<>(); if (statisticsQueryDto.getSiteId()==null) { - Long userId = SecurityUtils.getUserId(); + Long userId = tokenService.getLoginUser().getUserid(); //获取当前登录的siteIds List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData(); for (GetSiteListDTO datum : data) { @@ -1344,14 +1678,16 @@ //流量 return R.ok(tCharingUserEvaluateVO); } - + + + @RequiresPermissions(value = {"/operationMaintenanceAnalysis"}, logical = Logical.OR) @ResponseBody @PostMapping(value = "/charging/equipment") @ApiOperation(value = "电站评价", tags = {"管理后台-数据分析-设备运维分析"}) public R<TCharingUserEquimentVO> equipment(@RequestBody ChargingStatisticsQueryDto statisticsQueryDto){ List<Integer> siteIds =new ArrayList<>(); if (statisticsQueryDto.getSiteId()==null||statisticsQueryDto.getSiteId()==0) { - Long userId = SecurityUtils.getUserId(); + Long userId = tokenService.getLoginUser().getUserid(); //获取当前登录的siteIds List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData(); for (GetSiteListDTO datum : data) { @@ -1480,14 +1816,16 @@ // 格式化为两位小数 return Double.parseDouble(DF.format(average)); } - + + + @RequiresPermissions(value = {"/workbench"}, logical = Logical.OR) @ResponseBody @PostMapping(value = "/work/charge") @ApiOperation(value = "上方充电数据统计", tags = {"管理后台-工作台"}) public R<TCharingWorkVO> workCharge(@RequestBody ChargingStatisticsQueryDto statisticsQueryDto) { List<Integer> siteIds = new ArrayList<>(); if (statisticsQueryDto.getSiteId() == null) { - Long userId = SecurityUtils.getUserId(); + Long userId = tokenService.getLoginUser().getUserid(); //获取当前登录的siteIds List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData(); for (GetSiteListDTO datum : data) { @@ -1500,11 +1838,9 @@ 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的总和 @@ -1523,16 +1859,17 @@ tCharingWorkVO.setTotalChargingCapacity(totalChargingCapacity); return R.ok(tCharingWorkVO); } - - - + + + + @RequiresPermissions(value = {"/workbench"}, logical = Logical.OR) @ResponseBody @PostMapping(value = "/work/chargeDetail") @ApiOperation(value = "运营情况", tags = {"管理后台-工作台"}) public R workCharge(@RequestBody ChargingDetailQueryDto statisticsQueryDto) { List<Integer> siteIds = new ArrayList<>(); if (statisticsQueryDto.getSiteId() == null) { - Long userId = SecurityUtils.getUserId(); + Long userId = tokenService.getLoginUser().getUserid(); //获取当前登录的siteIds List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData(); for (GetSiteListDTO datum : data) { @@ -1542,7 +1879,7 @@ 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++) { @@ -1647,17 +1984,18 @@ } return null; } - - - - + + + + + @RequiresPermissions(value = {"/workbench"}, logical = Logical.OR) @ResponseBody @PostMapping(value = "/work/use") @ApiOperation(value = "利用率", tags = {"管理后台-工作台"}) public R workUse(@RequestBody ChargingDetailQueryDto statisticsQueryDto) { List<Integer> siteIds = new ArrayList<>(); if (statisticsQueryDto.getSiteId() == null) { - Long userId = SecurityUtils.getUserId(); + Long userId = tokenService.getLoginUser().getUserid(); //获取当前登录的siteIds List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData(); for (GetSiteListDTO datum : data) { @@ -1668,20 +2006,18 @@ } List<Map<String,Object>> capMap = chargingOrderService.getchargingCapacity(siteIds,statisticsQueryDto); List<TChargingPile> chargingPiles = chargingPileClient.getChargingPileBySiteIds(siteIds).getData(); - //获取chargingPiles的ratedPower的总和再乘以chargingPiles的数量再乘以24 - BigDecimal totalRatedPower = chargingPiles.stream().map(TChargingPile::getRatedPower).reduce(BigDecimal.ZERO, BigDecimal::add).multiply(new BigDecimal(chargingPiles.size())).multiply(new BigDecimal(24)); - - //将capMap的chargingCapacity除以totalRatedPower保留两位数 + BigDecimal totalRatedPower = chargingPiles.stream().map(TChargingPile::getRatedPower).reduce(BigDecimal.ZERO, BigDecimal::add); + + //每日利用率=当日充电度数/(桩总功率*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(totalRatedPower, 4, RoundingMode.HALF_UP); + BigDecimal result = chargingCapacity.divide(multiply1, 4, RoundingMode.HALF_UP); BigDecimal multiply = result.multiply(new BigDecimal(100)); map.put("chargingCapacity", multiply); }); - - - // // 解析 startTime 和 endTime 为 LocalDate LocalDate startDate = statisticsQueryDto.getStartTime(); LocalDate endDate = statisticsQueryDto.getEndTime(); @@ -1706,11 +2042,10 @@ startDate = startDate.plusDays(1); } return R.ok(dateRangeStatistics); - - } - + + @RequiresPermissions(value = {"/workbench"}, logical = Logical.OR) @ResponseBody @GetMapping(value = "/work/shopOrder") @ApiOperation(value = "购物订单统计", tags = {"管理后台-工作台"}) @@ -1722,7 +2057,9 @@ counts.add(count1); return R.ok(counts); } - + + + @RequiresPermissions(value = {"/workbench"}, logical = Logical.OR) @ResponseBody @GetMapping(value = "/work/invoice") @ApiOperation(value = "开票统计", tags = {"管理后台-工作台"}) @@ -1734,7 +2071,8 @@ counts.add(count1); return R.ok(counts); } - + + @RequiresPermissions(value = {"/workbench"}, logical = Logical.OR) @ResponseBody @GetMapping(value = "/work/users/count") @ApiOperation(value = "用户数量", tags = {"管理后台-工作台"}) @@ -1757,49 +2095,6 @@ - private static List<TChargingOrder> getSampleData() { - // 这里可以替换为实际查询逻辑 - List<TChargingOrder> list = new ArrayList<>(); - // 示例数据 - for (int i = 0; i < 24; i++) { - TChargingOrder order = new TChargingOrder(); - order.setStartTime(LocalDateTime.now().minusHours(23 - i)); - order.setOrderAmount(BigDecimal.valueOf(i + 1)); - list.add(order); - } - return list; - } - - private static List<Map<String, BigDecimal>> processData(List<TChargingOrder> list) { - Map<LocalDateTime, BigDecimal> hourlySum = new HashMap<>(); - - // 按每个小时分组并求和 - for (TChargingOrder order : list) { - LocalDateTime hour = order.getStartTime().truncatedTo(ChronoUnit.HOURS); - BigDecimal amount = order.getOrderAmount(); - hourlySum.merge(hour, amount, BigDecimal::add); - } - - // 创建结果列表 - List<Map<String, BigDecimal>> resultList = new ArrayList<>(); - for (int i = 1; i <= 23; i++) { - LocalDateTime keyHour = LocalDateTime.now().withHour(i); - BigDecimal sum = BigDecimal.ZERO; - - // 计算键之后的一小时的数据之和 - for (int j = i + 1; j <= 23; j++) { - LocalDateTime nextHour = LocalDateTime.now().withHour(j); - sum = sum.add(hourlySum.getOrDefault(nextHour, BigDecimal.ZERO)); - } - - Map<String, BigDecimal> entry = new HashMap<>(); - entry.put(String.valueOf(i), sum); - resultList.add(entry); - } - - return resultList; - } - /** * 硬件充电结束后的处理逻辑 @@ -1807,9 +2102,11 @@ */ @PostMapping("/endCharge") public void endCharge(@RequestParam("code") String code){ - log.error(code + ":-------------------充电桩自动结束充电-------------------"); + log.info(code + ":-------------------充电桩自动结束充电-------------------"); chargingOrderService.endCharge(code, 2); } + + /** * 硬件异常结束充电后的处理逻辑 @@ -1817,7 +2114,7 @@ */ @PostMapping("/excelEndCharge") public void excelEndCharge(@RequestParam("code") String code){ - log.error(code + ":-------------------充电异常,停止充电-------------------"); + log.info(code + ":-------------------充电异常,停止充电-------------------"); chargingOrderService.excelEndCharge(code); } @@ -1832,6 +2129,8 @@ TChargingOrder chargingOrder = chargingOrderService.getChargingOrderByLicensePlate(query); return R.ok(chargingOrder); } + + /** * 修改充电订单 * @param chargingOrder @@ -1866,4 +2165,97 @@ List<TChargingOrder> chargingOrder = chargingOrderService.getChargingOrder(order); return R.ok(chargingOrder); } + + + /** + * 根据车辆id获取指定时间范围内的数据 + * @param carId + * @param startTime + * @param endTime + * @return + */ + @PostMapping("/getCarChargingOrder") + public R<List<TChargingOrder>> getCarChargingOrder(@RequestParam("carId") Long carId, @RequestParam("startTime") String startTime, @RequestParam("endTime") String endTime){ + List<TChargingOrder> list = chargingOrderService.list(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getAppUserCarId, carId).eq(TChargingOrder::getDelFlag, 0) + .in(TChargingOrder::getStatus, Arrays.asList(4, 5)).between(TChargingOrder::getStartTime, startTime, endTime)); + return R.ok(list); + } + + + /** + * 根据车牌号查询指定时间范围内的数据 + * @param plateNum + * @param startTime + * @param endTime + * @return + */ + @PostMapping("/getCarChargingOrderByPlateNum") + public R<List<TChargingOrder>> getCarChargingOrderByPlateNum(@RequestParam("plateNum") String plateNum, @RequestParam("startTime") String startTime, + @RequestParam("endTime") String endTime){ + List<TChargingOrder> list = chargingOrderService.list(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getPlateNum, plateNum).eq(TChargingOrder::getDelFlag, 0) + .in(TChargingOrder::getStatus, Arrays.asList(4, 5)).between(TChargingOrder::getStartTime, startTime, endTime)); + return R.ok(list); + } + + + /** + * 添加三方平台充电订单数据 + * @return + */ + @PostMapping("/addTripartitePlatformOrder") + public R addTripartitePlatformOrder(@RequestBody AddTripartitePlatformOrder query){ + return chargingOrderService.addTripartitePlatformOrder(query); + } + + + + + + /** + * 根据三方平台订单id获取充电数据 + * @param startChargeSeq + * @return + */ + @PostMapping("/getChargingOrderByStartChargeSeq") + public R<TChargingOrder> getChargingOrderByStartChargeSeq(@RequestParam("startChargeSeq") String startChargeSeq){ + TChargingOrder chargingOrder = chargingOrderService.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getStartChargeSeq, startChargeSeq)); + return R.ok(chargingOrder); + } + + + + + /** + * 根据三方平台订单ids获取充电数据 + * @param startChargeSeqs + * @return + */ + @PostMapping("/getChargingOrderByStartChargeSeqs") + public R<List<TChargingOrder>> getChargingOrderByStartChargeSeqs(@RequestParam("startChargeSeqs") List<String> startChargeSeqs){ + List<TChargingOrder> list = chargingOrderService.list(new LambdaQueryWrapper<TChargingOrder>().in(TChargingOrder::getStartChargeSeq, startChargeSeqs)); + return R.ok(list); + } + + + /** + * 三方平台请求停止充电 + * @param startChargeSeq + * @return + */ + @PostMapping("/tripartitePlatformStopCharge") + public R tripartitePlatformStopCharge(@RequestParam("startChargeSeq") String startChargeSeq){ + return chargingOrderService.tripartitePlatformStopCharge(startChargeSeq); + } + + + /** + * 临时接口 + * 获取充电后没有扣除费用的数据 + * @return + */ + @GetMapping("/getNotPaymentChargingOrder") + public R getNotPaymentChargingOrder(){ + return chargingOrderService.getNotPaymentChargingOrder(); + } + } -- Gitblit v1.7.1