From 643cccdfd2c00285cfdce0be609f7cd909207ad6 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期五, 07 二月 2025 16:07:21 +0800 Subject: [PATCH] bug修改 --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java | 197 +++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 174 insertions(+), 23 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 f9031b0..0db7e43 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 @@ -140,6 +140,10 @@ private TOrderInvoiceService invoiceService; @Resource private UploadRealTimeMonitoringDataClient uploadRealTimeMonitoringDataClient; + @Resource + private PartnerClient partnerClient; + @Resource + private SysUserClient sysUserClient; @@ -176,15 +180,87 @@ } 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); + } + + for (PayOrderDto record : data.getRecords()) { + if (record.getType() == 1){ + TChargingOrder byId = chargingOrderService.getById(record.getId()); + record.setSiteId(byId.getSiteId()); + } + if (record.getType()==4){ + Integer siteId=parkingLotClient.getSiteIdByOrderId(Long.valueOf(record.getId())).getData(); + if (siteId!=null){ + record.setSiteId(siteId); + } + } + 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 = {"管理后台-支付订单-订单信息"}) @@ -255,6 +331,10 @@ return R.ok(); } + + + + @ResponseBody @GetMapping(value = "/pay/order/refund/detail") @ApiOperation(value = "退款信息", tags = {"管理后台-支付订单-订单信息"}) @@ -330,7 +410,12 @@ @PostMapping(value = "/pay/order/refund/list") @ApiOperation(value = "列表", tags = {"管理后台-支付订单-退款订单"}) public R<PageInfo<TChargingOrderRefund>> refundList(@RequestBody ChargingRefundDto chargingRefundDto) { - R<PageInfo<TChargingOrderRefund>> refundList = chargingOrderService.getRefundList(chargingRefundDto); + 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<>(); @@ -344,18 +429,61 @@ if (siteIds.isEmpty()){ siteIds.add(-1); } + // 查询当前登陆人按钮权限 + SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData(); + Integer roleType = sysUser.getRoleType(); List<TChargingOrderRefund> tChargingOrderRefunds = new ArrayList<>(); - for (TChargingOrderRefund record : refundList.getData().getRecords()) { - TChargingOrder byId = chargingOrderService.getById(record.getChargingOrderId()); + 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 (siteIds.contains(byId.getSiteId())){ + if (byId==null){ + continue; + } + if (roleType==2&&siteIds.contains(byId.getSiteId())){ + tChargingOrderRefunds.add(record); } } - refundList.getData().setRecords(tChargingOrderRefunds); - return refundList; + 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 = {"管理后台-支付订单-退款订单"}) @@ -464,6 +592,8 @@ .between(TChargingOrder::getStartTime, req.getStartTime(), req.getEndTime())).size(); return R.ok(size); } + + //用户订单数量 @PostMapping(value = "/useOrderCount") public R<Long> useOrderCount(@RequestParam("userId") Long userId) { @@ -472,12 +602,16 @@ 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) { @@ -485,6 +619,8 @@ return R.ok(list); } + + @PostMapping(value = "/getBySiteIdAndTime") public R<List<ChargingOrderGroup>> getBySiteIdAndTime(@RequestBody ChargingPercentProvinceDto chargingPercentProvinceDto) { @@ -672,6 +808,7 @@ + @RequiresPermissions(value = {"/platformRevenueAnalysis"}, logical = Logical.OR) @ResponseBody @GetMapping(value = "/six/charge") @@ -847,16 +984,15 @@ return R.ok(map); } - @Resource - private PartnerClient partnerClient; - @Resource - private SysUserClient sysUserClient; + @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(); @@ -866,6 +1002,25 @@ }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); @@ -873,8 +1028,7 @@ List<ChargingOrderAndUploadRealTimeMonitoringDataDto> dtos = new ArrayList<>(); Map<String,ChargingOrderVO> map = new HashMap<>(); - SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData(); - Integer roleType = sysUser.getRoleType(); + for (UploadRealTimeMonitoringData uploadRealTimeMonitoringData : data1.getRecords()) { if (roleType==2){ List<Boolean> data = partnerClient.watchChargingOrder(sysUser.getObjectId(), uploadRealTimeMonitoringData.getSiteId()).getData(); @@ -968,6 +1122,7 @@ }else { siteIds.add(statisticsQueryDto.getSiteId()); } + if (siteIds.isEmpty())siteIds.add(-1); TCharingOrderMapVO tCharingOrderMapVO = new TCharingOrderMapVO(); @@ -1231,6 +1386,7 @@ }else { siteIds.add(statisticsQueryDto.getSiteId()); } + if (siteIds.isEmpty())siteIds.add(-1); statisticsQueryDto.setSiteIds(siteIds); @@ -1763,20 +1919,17 @@ } 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保留两位数 + + //每日利用率=当日充电度数/(总桩数量*桩总功率*24小时) + BigDecimal multiply1 = new BigDecimal(chargingPiles.size()).multiply(totalRatedPower).multiply(new BigDecimal(24)); 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(); @@ -1801,8 +1954,6 @@ startDate = startDate.plusDays(1); } return R.ok(dateRangeStatistics); - - } -- Gitblit v1.7.1