From 3244b550596e0330031b3f4547356927df83b0ad Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期一, 19 五月 2025 11:48:35 +0800 Subject: [PATCH] 修改bug --- ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java | 157 +++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 123 insertions(+), 34 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 2677245..4b52944 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 @@ -19,7 +19,7 @@ import com.ruoyi.chargingPile.api.query.SiteDetailQuery; import com.ruoyi.chargingPile.api.query.SiteQuery; import com.ruoyi.chargingPile.api.vo.*; -import com.ruoyi.chargingPile.domain.SiteMenu; +import com.ruoyi.chargingPile.api.domain.SiteMenu; import com.ruoyi.chargingPile.dto.ChargingPercentBack; import com.ruoyi.common.core.dto.ChargingOrderGroup; import com.ruoyi.common.core.dto.ChargingPercentProvinceDto; @@ -31,6 +31,9 @@ import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.common.log.annotation.Log; import com.ruoyi.common.log.enums.BusinessType; +import com.ruoyi.common.log.enums.OperatorType; +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.security.utils.SecurityUtils; import com.ruoyi.order.api.feignClient.ChargingOrderClient; @@ -55,7 +58,6 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; -import java.time.LocalDate; import java.time.LocalTime; import java.time.temporal.ChronoUnit; import java.util.*; @@ -84,7 +86,7 @@ @Resource private RoleSiteClient roleSiteClient; @Resource - private ParkingLotClient parkingLotClient; + private SysUserRoleClient sysUserRoleClient; @Resource private TChargingPileService chargingPileService; @Resource @@ -131,9 +133,13 @@ public R<SiteInfoVO> getSiteInfoByNumber(@RequestParam("number") String number){ SiteInfoVO siteInfoVO = new SiteInfoVO(); TChargingGun chargingGun = chargingGunService.getOne(new LambdaQueryWrapper<TChargingGun>().eq(TChargingGun::getFullNumber, number)); + Site site = siteService.getById(chargingGun.getSiteId()); + Integer accountingStrategyId = chargingGun.getAccountingStrategyId(); + if(null == accountingStrategyId){ + accountingStrategyId = site.getAccountingStrategyId(); + } TChargingPile one = chargingPileService.getById(chargingGun.getChargingPileId()); - Site byId = siteService.getById(chargingGun.getSiteId()); - TAccountingStrategy byId1 = accountingStrategyService.getById(chargingGun.getAccountingStrategyId()); + TAccountingStrategy byId1 = accountingStrategyService.getById(accountingStrategyId); List<TAccountingStrategyDetail> list = accountingStrategyDetailService.lambdaQuery().eq(TAccountingStrategyDetail::getAccountingStrategyId, byId1.getId()).list(); list.stream().filter(item -> "00:00".equals(item.getEndTime())).forEach(item -> item.setEndTime("23:59:59")); for (TAccountingStrategyDetail tAccountingStrategyDetail : list) { @@ -169,9 +175,9 @@ } siteInfoVO.setChargingGunId(chargingGun.getId()); siteInfoVO.setChargingPileId(one.getId()); - siteInfoVO.setName(byId.getName()); + siteInfoVO.setName(site.getName()); siteInfoVO.setNumber(one.getNumber().toString()); - siteInfoVO.setSpaceChargeExplain(byId.getSpaceChargeExplain()); + siteInfoVO.setSpaceChargeExplain(site.getSpaceChargeExplain()); return R.ok(siteInfoVO); } /** @@ -183,8 +189,13 @@ 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()); + TChargingGun chargingGun = chargingGunService.getOne(new LambdaQueryWrapper<TChargingGun>().eq(TChargingGun::getChargingPileId, one.getId()).last(" limit 0, 1")); + Site site = siteService.getById(chargingGun.getSiteId()); + Integer accountingStrategyId = chargingGun.getAccountingStrategyId(); + if(null == accountingStrategyId){ + accountingStrategyId = site.getAccountingStrategyId(); + } + TAccountingStrategy byId1 = accountingStrategyService.getById(accountingStrategyId); List<TAccountingStrategyDetail> list = accountingStrategyDetailService.lambdaQuery().eq(TAccountingStrategyDetail::getAccountingStrategyId, byId1.getId()).list(); list.stream().filter(item -> "00:00".equals(item.getEndTime())).forEach(item -> item.setEndTime("23:59:59")); for (TAccountingStrategyDetail tAccountingStrategyDetail : list) { @@ -231,12 +242,15 @@ siteInfoVO.setCouponCount(num); } siteInfoVO.setChargingPileId(one.getId()); - siteInfoVO.setName(byId.getName()); + siteInfoVO.setName(site.getName()); siteInfoVO.setNumber(one.getNumber().toString()); - siteInfoVO.setSpaceChargeExplain(byId.getSpaceChargeExplain()); + siteInfoVO.setSpaceChargeExplain(site.getSpaceChargeExplain()); return R.ok(siteInfoVO); } + @RequiresPermissions(value = {"/systemUserManagement/update", "/site", "/platformRevenueAnalysis", "/chargingOperationAnalysis", + "/chargingUserAnalysis", "/operationMaintenanceAnalysis", "/chargingEquipmentMonitoring", "/activityExpense", "/chargeEvaluation/list", + "/parkingLot", "/workbench"}, logical = Logical.OR) @GetMapping("/getSiteList") @ApiOperation(value = "获取站点列表", tags = {"管理后台-站点管理"}) public AjaxResult<PageInfo<GetSiteListDTO>> getSiteList(GetSiteList siteList){ @@ -251,9 +265,10 @@ PageInfo<GetSiteListDTO> list = siteService.getSiteList1(userId); return R.ok(list.getRecords()); } - - - + + + + @RequiresPermissions(value = {"/chargeDistribution"}, logical = Logical.OR) @GetMapping("/map/getSiteList") @ApiOperation(value = "获取站点", tags = {"管理后台-数据分析-电站分析"}) public R<List<GetSiteListDTO>> getMapSiteList(GetSiteList siteList){ @@ -295,14 +310,15 @@ } BigDecimal multiply = bigDecimal1.multiply(new BigDecimal("24")); - BigDecimal divide = bigDecimal.divide(multiply, 0, BigDecimal.ROUND_HALF_UP); + BigDecimal divide = bigDecimal.divide(multiply, 4, BigDecimal.ROUND_HALF_EVEN).multiply(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_EVEN); record.setP1(divide); } return R.ok(list.getRecords()); } - - + + + @RequiresPermissions(value = {"/chargeDistribution"}, logical = Logical.OR) @GetMapping("/map/getPercent") @ApiOperation(value = "获取该充电站的利用率", tags = {"管理后台-数据分析-电站分析"}) public R getPercent(Integer siteId){ @@ -326,22 +342,39 @@ return R.ok(divide); } - @Resource - private SiteClient siteClient; + + + + + @RequiresPermissions(value = {"/chargeDistribution"}, logical = Logical.OR) @PostMapping("/map/getPercentByprovinceCode") @ApiOperation(value = "获取该充电站的利用率", tags = {"管理后台-数据分析-电站分析"}) public R getPercentByCityCode(@RequestBody ChargingPercentProvinceDto chargingPercentProvinceDto){ - - Long userid = tokenService.getLoginUser().getUserid(); - List<Integer> siteIds = new ArrayList<>(); - - List<GetSiteListDTO> data1 = siteClient.getSiteListByUserId(userid).getData(); - for (GetSiteListDTO datum : data1) { - siteIds.add(datum.getId()); + Set<Integer> ids = null; + //校验合作商权限 + SysUser sysUser = sysUserClient.getSysUser(SecurityUtils.getUserId()).getData(); + Integer roleType = sysUser.getRoleType(); + Integer objectId = sysUser.getObjectId(); + R<Integer> admin = sysUserClient.isAdmin(SecurityUtils.getUserId()); + //合作商 + if(roleType == 2){ + ids = partnerService.authSite(objectId, SiteMenu.SITE_LIST); + }else{ + //非管理员需要根据角色和用户配置查询允许的站点数据 + //改用roleId=1来判断 + if(admin.getData()!=1){ + List<Integer> data = userSiteClient.getSiteIds(sysUser.getUserId()).getData(); + List<SysUserRoleVo> data2 = sysUserRoleClient.getRoleByUserId(sysUser.getUserId()).getData(); + if(data2.size() > 0){ + List<Integer> data1 = roleSiteClient.getSiteIds(data2.get(0).getRoleId()).getData(); + data.addAll(data1); + } + ids = new HashSet<>(data); + } } - chargingPercentProvinceDto.setSiteIds(siteIds); + chargingPercentProvinceDto.setSiteIds(ids); GetSiteList siteList = new GetSiteList(); @@ -357,7 +390,7 @@ if (chargingPercentProvinceDto.getDate1().equals(chargingPercentProvinceDto.getDate2())){ chargingPercentProvinceDto.setDate2(chargingPercentProvinceDto.getDate1().plusDays(1)); } - 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(); @@ -398,31 +431,41 @@ public AjaxResult<List<Site>> getSiteList1(){ return AjaxResult.success(siteService.list(new QueryWrapper<>())); } - + + @RequiresPermissions(value = {"/systemUserManagement", "/site", "/faultInformationList", "/repairRecord", "/balanceSheetRecord", "/chargingPileOrder", + "/chargeOrderMonitoring", "/chargingPile", "/chargingGun"}, logical = Logical.OR) @GetMapping("/getSiteListGun") @ApiOperation(value = "获取站点列表 不分页", tags = {"管理后台-接口信息使用"}) public AjaxResult<List<Site>> getSiteListGun(){ return AjaxResult.success(siteService.getSiteListGun()); } - + + + @RequiresPermissions(value = {"/parkingLot/add", "/parkingLot/select", "/parkingLot/update"}, logical = Logical.OR) @GetMapping("/getSiteListParkLot") @ApiOperation(value = "获取站点列表不分页", tags = {"管理后台-停车场绑定"}) public AjaxResult<List<Site>> getSiteListParkLot(){ return AjaxResult.success(siteService.getSiteListParkLot()); } + + + @ApiOperation(value = "获取站点分页列表", tags = {"小程序-站点管理-首页"}) @PostMapping("/pageList") public AjaxResult<PageInfo<SiteVO>> pageList(@Validated @RequestBody SiteQuery query, HttpServletRequest request){ int isLogin = StringUtils.isEmpty(SecurityUtils.getToken(request)) ? 0 : 1; return AjaxResult.success(siteService.pageList(query,isLogin)); } - + + @ApiOperation(value = "获取站点列表", tags = {"小程序-站点管理-地图导航站点"}) @PostMapping("/getMapSiteList") public AjaxResult<List<SiteVO>> getMapSiteList(@Validated @RequestBody SiteQuery query, HttpServletRequest request){ int isLogin = StringUtils.isEmpty(SecurityUtils.getToken(request)) ? 0 : 1; return AjaxResult.success(siteService.getMapSiteList(query,isLogin)); } + + @ApiOperation(value = "获取站点详细信息", tags = {"小程序-站点管理-站点详情"}) @PostMapping("/getDetailById") public AjaxResult<SiteDetailVO> getDetailById(@Validated @RequestBody SiteDetailQuery query){ @@ -443,7 +486,8 @@ } return AjaxResult.success(siteDetailVO); } - + + @ApiOperation(value = "获取站点下充电桩及充电枪列表", tags = {"小程序-站点管理-站点详情"}) @GetMapping("/getChargingGunList") public AjaxResult<List<TChargingPileVO>> getChargingGunList(@RequestParam(value = "siteId")@ApiParam(value = "站点id", required = true)Integer siteId, @@ -451,13 +495,20 @@ return AjaxResult.success(chargingPileService.getChargingGunList(siteId,type)); } - @ApiOperation(value = "获取站点下充电枪数量统计", tags = {"小程序-站点管理-站点详情","管理后台-数据分析-电站分析"}) + @ApiOperation(value = "获取站点下充电枪数量统计", tags = {"管理后台-数据分析-电站分析"}) @GetMapping("/getChargingGunCount") public AjaxResult<Map<String,ChargingGunCountVO>> getChargingGunCount(@RequestParam(value = "siteId")@ApiParam(value = "站点id", required = true)Integer siteId){ return AjaxResult.success(chargingGunService.getChargingGunCount(siteId)); } - + + @ApiOperation(value = "获取站点下充电枪数量统计", tags = {"小程序-站点管理-站点详情"}) + @GetMapping("/getChargingGunCount1") + public AjaxResult<Map<String,ChargingGunCountVO>> getChargingGunCount1(@RequestParam(value = "siteId")@ApiParam(value = "站点id", required = true)Integer siteId){ + return AjaxResult.success(chargingGunService.getChargingGunCount(siteId)); + } + + @RequiresPermissions(value = {"/site/add"}, logical = Logical.OR) @ResponseBody @PostMapping("/addSite") @ApiOperation(value = "添加站点", tags = {"管理后台-站点管理"}) @@ -468,6 +519,7 @@ + @RequiresPermissions(value = {"/site/update"}, logical = Logical.OR) @ResponseBody @PostMapping("/getSiteInfo/{id}") @ApiOperation(value = "获取站点详情", tags = {"管理后台-站点管理"}) @@ -478,6 +530,7 @@ + @RequiresPermissions(value = {"/site/update"}, logical = Logical.OR) @ResponseBody @PostMapping("/editSite") @ApiOperation(value = "编辑站点", tags = {"管理后台-站点管理"}) @@ -486,6 +539,9 @@ return siteService.editSite(site); } + + + @RequiresPermissions(value = {"/site/del", "/site/batch_del"}, logical = Logical.OR) @ResponseBody @DeleteMapping("/delSite") @ApiOperation(value = "删除站点", tags = {"管理后台-站点管理"}) @@ -498,6 +554,8 @@ } + + @RequiresPermissions(value = {"/site/accounting_strategy"}, logical = Logical.OR) @ResponseBody @PostMapping("/setAccountingStrategy/{id}") @ApiOperation(value = "设置站点计费策略", tags = {"管理后台-站点管理"}) @@ -512,6 +570,8 @@ } + @RequiresPermissions(value = {"/roleManagement/add", "/roleManagement/info", "/roleManagement/update", "/systemNotification", "/chargingPeriodStatistics", + "/parkingPaymentOrder", "/generateStatement", "/chargingPile/add", "/chargingPile/select", "/chargingPile/update"}, logical = Logical.OR) @ResponseBody @GetMapping("/getAllSiteList") @ApiOperation(value = "获取所有站点数据", tags = {"管理后台-充电桩信息", "管理后台-系统用户管理", "管理后台-角色管理", "管理后台-系统通知", "管理后台-充电评价"}) @@ -563,4 +623,33 @@ List<Site> list = siteService.list(new LambdaQueryWrapper<Site>().eq(Site::getDelFlag, 0)); return R.ok(list); } + + + /** + * 分页查询站电数据 + * @param PageNo + * @param PageSize + * @return + */ + @PostMapping("/getSiteListPaging") + public PageInfo<Site> getSiteListPaging(@RequestParam("PageNo") Integer PageNo, @RequestParam("PageSize") Integer PageSize, + @RequestParam("ids") List<String> ids){ + PageInfo<Site> pageInfo = new PageInfo<>(PageNo, PageSize); + PageInfo<Site> page = siteService.lambdaQuery().eq(Site::getStatus, 1).in(ids.size() > 0, Site::getId, ids) + .ne(Site::getSiteType, 2).page(pageInfo); + return page; + } + /** + * 分页查询站电数据 + * @param PageNo + * @param PageSize + * @return + */ + @PostMapping("/getSiteListPagingJianGuan") + public PageInfo<Site> getSiteListPagingJianGuan(@RequestParam("PageNo") Integer PageNo, @RequestParam("PageSize") Integer PageSize, + @RequestParam("ids") List<String> ids){ + PageInfo<Site> pageInfo = new PageInfo<>(PageNo, PageSize); + PageInfo<Site> page = siteService.lambdaQuery().eq(Site::getStatus, 1).in(ids.size() > 0, Site::getId, ids).page(pageInfo); + return page; + } } -- Gitblit v1.7.1