From 1e7bea1cfadbbbc95b0c0697b13aa9050cf02dc7 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期六, 12 十月 2024 17:00:21 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java | 95 ++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 84 insertions(+), 11 deletions(-) diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java index 9f4183e..dc9f996 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java @@ -16,7 +16,6 @@ import com.ruoyi.common.core.dto.ChargingPercentProvinceDto; import com.ruoyi.chargingPile.service.*; import com.ruoyi.common.core.domain.R; -import com.ruoyi.common.core.utils.GeodesyUtil; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.PageInfo; @@ -107,11 +106,14 @@ * @param number * @return */ - @PostMapping("/getSiteInfoByNumber") + @GetMapping("/getSiteInfoByNumber") @ApiOperation(value = "扫一扫后通过桩编号获取电站信息", tags = {"小程序-扫一扫"}) public R<SiteInfoVO> getSiteInfoByNumber(@RequestParam("number") String number){ SiteInfoVO siteInfoVO = new SiteInfoVO(); - TChargingPile one = chargingPileService.lambdaQuery().eq(TChargingPile::getNumber, number).one(); + String chargingPileCode = number.substring(0, number.length() - 2); + String chargingGunCode = number.substring(number.length() - 2); + TChargingPile one = chargingPileService.lambdaQuery().eq(TChargingPile::getCode, chargingPileCode).one(); + TChargingGun chargingGun = chargingGunService.getOne(new LambdaQueryWrapper<TChargingGun>().eq(TChargingGun::getCode, chargingGunCode).eq(TChargingGun::getChargingPileId, one.getId())); Site byId = siteService.getById(one.getSiteId()); TAccountingStrategy byId1 = accountingStrategyService.getById(byId.getAccountingStrategyId()); List<TAccountingStrategyDetail> list = accountingStrategyDetailService.lambdaQuery().eq(TAccountingStrategyDetail::getAccountingStrategyId, byId1.getId()).list(); @@ -119,9 +121,44 @@ // 当前时间属于那个阶段 取哪个阶段的电价 if(LocalTime.now().isAfter(LocalTime.parse(tAccountingStrategyDetail.getStartTime())) && LocalTime.now().isBefore(LocalTime.parse(tAccountingStrategyDetail.getEndTime()))){ siteInfoVO.setElectrovalence(tAccountingStrategyDetail.getElectrovalence()); - siteInfoVO.setVipElectrovalence(tAccountingStrategyDetail.getElectrovalence().multiply(byId1.getDiscount()).setScale(4, BigDecimal.ROUND_HALF_UP)); + if(null != byId1.getDiscount()){ + siteInfoVO.setVipElectrovalence(tAccountingStrategyDetail.getElectrovalence().multiply(byId1.getDiscount()).setScale(4, BigDecimal.ROUND_HALF_UP)); + }else{ + siteInfoVO.setVipElectrovalence(tAccountingStrategyDetail.getElectrovalence()); + } } } + siteInfoVO.setChargingGunId(chargingGun.getId()); + siteInfoVO.setChargingPileId(one.getId()); + siteInfoVO.setName(byId.getName()); + siteInfoVO.setNumber(one.getNumber().toString()); + siteInfoVO.setSpaceChargeExplain(byId.getSpaceChargeExplain()); + return R.ok(siteInfoVO); + } + /** + * 通过桩编号获取电站信息 遠程調用 + * @param number + * @return + */ + @PostMapping("/getSiteInfoByNumber1") + public R<SiteInfoVO> getSiteInfoByNumber1(@RequestParam("number") String number){ + SiteInfoVO siteInfoVO = new SiteInfoVO(); + TChargingPile one = chargingPileService.lambdaQuery().eq(TChargingPile::getCode, number).one(); + Site byId = siteService.getById(one.getSiteId()); + TAccountingStrategy byId1 = accountingStrategyService.getById(byId.getAccountingStrategyId()); + List<TAccountingStrategyDetail> list = accountingStrategyDetailService.lambdaQuery().eq(TAccountingStrategyDetail::getAccountingStrategyId, byId1.getId()).list(); + for (TAccountingStrategyDetail tAccountingStrategyDetail : list) { + // 当前时间属于那个阶段 取哪个阶段的电价 + if(LocalTime.now().isAfter(LocalTime.parse(tAccountingStrategyDetail.getStartTime())) && LocalTime.now().isBefore(LocalTime.parse(tAccountingStrategyDetail.getEndTime()))){ + siteInfoVO.setElectrovalence(tAccountingStrategyDetail.getElectrovalence()); + if(null != byId1.getDiscount()){ + siteInfoVO.setVipElectrovalence(tAccountingStrategyDetail.getElectrovalence().multiply(byId1.getDiscount()).setScale(4, BigDecimal.ROUND_HALF_UP)); + }else{ + siteInfoVO.setVipElectrovalence(tAccountingStrategyDetail.getElectrovalence()); + } + } + } + siteInfoVO.setChargingPileId(one.getId()); siteInfoVO.setName(byId.getName()); siteInfoVO.setNumber(one.getNumber().toString()); siteInfoVO.setSpaceChargeExplain(byId.getSpaceChargeExplain()); @@ -134,6 +171,8 @@ PageInfo<GetSiteListDTO> list = siteService.getSiteList(siteList); return AjaxResult.success(list); } + + @GetMapping("/getSiteList/byUserId") @ApiOperation(value = "获取站点列表", tags = {"管理后台-站点管理"}) public R<List<GetSiteListDTO>> getSiteListByUserId(@RequestParam("userId") Long userId){ @@ -146,9 +185,43 @@ @GetMapping("/map/getSiteList") @ApiOperation(value = "获取站点", tags = {"管理后台-数据分析-电站分析"}) public R<List<GetSiteListDTO>> getMapSiteList(GetSiteList siteList){ + siteList.setPageCurr(1); - siteList.setPageCurr(99999); + siteList.setPageSize(99999); PageInfo<GetSiteListDTO> list = siteService.getSiteList(siteList); + for (GetSiteListDTO record : list.getRecords()) { + Long count = chargingGunService.lambdaQuery().eq(TChargingGun::getChargingPileId, record.getId()).eq(TChargingGun::getChargeMode, 1).eq(TChargingGun::getStatus, new int[]{3, 4, 5, 6}).count(); + record.setC1(count); + Long count1 = chargingGunService.lambdaQuery().eq(TChargingGun::getChargingPileId, record.getId()).eq(TChargingGun::getChargeMode, 1).eq(TChargingGun::getStatus, 2).count(); + record.setC2(count1); + Long count2 = chargingGunService.lambdaQuery().eq(TChargingGun::getChargingPileId, record.getId()).eq(TChargingGun::getChargeMode, 2).eq(TChargingGun::getStatus, new int[]{3, 4, 5, 6}).count(); + record.setK1(count2); + Long count3 = chargingGunService.lambdaQuery().eq(TChargingGun::getChargingPileId, record.getId()).eq(TChargingGun::getChargeMode, 2).eq(TChargingGun::getStatus, 2).count(); + record.setK2(count3); + Long count4 = chargingGunService.lambdaQuery().eq(TChargingGun::getChargingPileId, record.getId()).eq(TChargingGun::getChargeMode, 3).eq(TChargingGun::getStatus, new int[]{3, 4, 5, 6}).count(); + record.setM1(count4); + Long count5 = chargingGunService.lambdaQuery().eq(TChargingGun::getChargingPileId, record.getId()).eq(TChargingGun::getChargeMode, 3).eq(TChargingGun::getStatus, 2).count(); + record.setM2(count5); + + //利用率 + BigDecimal bigDecimal = new BigDecimal("0"); + //获取该站点的总充电度数 + List<TChargingOrder> chargingOrders = chargingOrderClient.getList(record.getId()).getData(); + for (TChargingOrder chargingOrder : chargingOrders) { + bigDecimal = bigDecimal.add(chargingOrder.getChargingCapacity()); + } + //获取该站点的所有充电桩 + List<TChargingPile> chargingPiles = chargingPileService.lambdaQuery().eq(TChargingPile::getSiteId, record.getId()).list(); + BigDecimal bigDecimal1 = new BigDecimal("0"); + for (TChargingPile chargingPile : chargingPiles) { + bigDecimal1 = bigDecimal1.add(chargingPile.getRatedPower()); + } + BigDecimal multiply = bigDecimal1.multiply(new BigDecimal("24")); + + BigDecimal divide = bigDecimal.divide(multiply, 0, BigDecimal.ROUND_HALF_UP); + record.setP1(divide); + + } return R.ok(list.getRecords()); } @@ -204,7 +277,7 @@ List<GetSiteListDTO> records = siteService.getSiteList(siteList).getRecords(); List<Integer> collect = records.stream().map(GetSiteListDTO::getId).collect(Collectors.toList()); // 通过时间段获取和充电桩id获取各个充电站的充电订单 - List<ChargingOrderGroup> data = chargingOrderClient.getBySiteIdAndTime(chargingPercentProvinceDto).getData(); + List<ChargingOrderGroup> data = chargingOrderClient.getBySiteIdAndTime(chargingPercentProvinceDto).getData(); // 计算利用率展示 for (ChargingOrderGroup datum : data) { List<TChargingPile> chargingPiles = chargingPileService.lambdaQuery().eq(TChargingPile::getSiteId, datum.getSiteId()).list(); @@ -252,7 +325,7 @@ return AjaxResult.success(siteService.getSiteListGun()); } - @PostMapping("/getSiteListParkLot") + @GetMapping("/getSiteListParkLot") @ApiOperation(value = "获取站点列表不分页", tags = {"管理后台-停车场绑定"}) public AjaxResult<List<Site>> getSiteListParkLot(){ return AjaxResult.success(siteService.getSiteListParkLot()); @@ -272,15 +345,15 @@ @ApiOperation(value = "获取站点详细信息", tags = {"小程序-站点管理-站点详情"}) @PostMapping("/getDetailById") public AjaxResult<SiteDetailVO> getDetailById(@Validated @RequestBody SiteDetailQuery query){ - SiteDetailVO siteDetailVO = siteService.getDetailById(query.getSiteId()); + SiteDetailVO siteDetailVO = siteService.getDetailById(query); // 查询合作商名称 Partner partner = partnerService.getById(siteDetailVO.getPartnerId()); if(Objects.nonNull(partner)){ siteDetailVO.setPartnerName(partner.getName()); } // 计算距离 - Map<String, Double> distance = GeodesyUtil.getDistance(query.getLat() + "," + query.getLon(), siteDetailVO.getLat() + "," + siteDetailVO.getLon()); - siteDetailVO.setDistance(distance.get("WGS84")); +// Map<String, Double> distance = GeodesyUtil.getDistance(query.getLat() + "," + query.getLon(), siteDetailVO.getLat() + "," + siteDetailVO.getLon()); +// siteDetailVO.setDistance(distance.get("WGS84")); // 查询绑定车牌提示文案 TParkingLot parkingLot = parkingLotService.getOne(Wrappers.lambdaQuery(TParkingLot.class) .eq(TParkingLot::getSiteId, query.getSiteId())); @@ -394,7 +467,7 @@ @ResponseBody @PostMapping("/getSiteByIds") public R<List<Site>> getSiteByIds(@RequestBody List<Integer> ids){ - List<Site> sites = siteService.listByIds(ids); + List<Site> sites = siteService.list(new LambdaQueryWrapper<Site>().in(Site::getId, ids).eq(Site::getDelFlag, 0)); return R.ok(sites); } -- Gitblit v1.7.1