From c05a14bba4b86d83918d7cdc01635785bf5694c2 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期二, 03 六月 2025 00:26:08 +0800 Subject: [PATCH] 拆分mongodb查询服务 --- ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingGunServiceImpl.java | 158 ++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 134 insertions(+), 24 deletions(-) diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingGunServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingGunServiceImpl.java index 1918cc5..3e0bc3c 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingGunServiceImpl.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingGunServiceImpl.java @@ -4,11 +4,14 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.chargingPile.api.dto.TChargingGunDTO; +import com.ruoyi.chargingPile.api.feignClient.SiteClient; +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.query.TChargingGunQuery; import com.ruoyi.chargingPile.api.vo.*; -import com.ruoyi.chargingPile.domain.SiteMenu; +import com.ruoyi.chargingPile.api.domain.SiteMenu; +import com.ruoyi.chargingPile.mapper.SiteMapper; import com.ruoyi.chargingPile.mapper.TChargingGunMapper; import com.ruoyi.chargingPile.service.IPartnerService; import com.ruoyi.chargingPile.service.TChargingGunService; @@ -18,7 +21,11 @@ import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.PageInfo; +import com.ruoyi.common.security.service.TokenService; import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.integration.api.feignClient.SendMessageClient; +import com.ruoyi.integration.api.feignClient.TCECClient; +import com.ruoyi.integration.api.model.QrCodeDelivery; import com.ruoyi.other.api.feignClient.RoleSiteClient; import com.ruoyi.other.api.feignClient.UserSiteClient; import com.ruoyi.system.api.domain.SysUser; @@ -60,15 +67,23 @@ @Resource private SysUserRoleClient sysUserRoleClient; + + @Resource + private SendMessageClient sendMessageClient; - - + @Resource + private SiteClient siteClient; + + @Autowired + private TCECClient tcecClient; + @Resource + private TokenService tokenService; @Override public PageInfo<TChargingGunVO> pageList(TChargingGunQuery query) { Set<Integer> siteIds = null; //校验合作商权限 - SysUser sysUser = sysUserClient.getSysUser(SecurityUtils.getUserId()).getData(); + SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData(); Integer roleType = sysUser.getRoleType(); Integer objectId = sysUser.getObjectId(); //合作商 @@ -76,7 +91,7 @@ siteIds = partnerService.authSite(objectId, SiteMenu.CHARGING_GUN); }else{ //非管理员需要根据角色和用户配置查询允许的站点数据 - if(!SecurityUtils.isAdmin(SecurityUtils.getUserId())){ + if(!SecurityUtils.isAdmin(tokenService.getLoginUser().getUserid())){ List<Integer> data = userSiteClient.getSiteIds(sysUser.getUserId()).getData(); List<SysUserRoleVo> data2 = sysUserRoleClient.getRoleByUserId(sysUser.getUserId()).getData(); List<Integer> data1 = roleSiteClient.getSiteIds(data2.get(0).getRoleId()).getData(); @@ -94,11 +109,20 @@ tChargingGunVO.setAuthQueryInfo(roleType == 1 ? true : partnerService.authMenu(objectId, siteId, SiteMenu.CHARGING_GUN_QUERY_INFO)); tChargingGunVO.setAuthUpdate(roleType == 1 ? true : partnerService.authMenu(objectId, siteId, SiteMenu.CHARGING_GUN_UPDATE)); tChargingGunVO.setAuthViewRates(roleType == 1 ? true : partnerService.authMenu(objectId, siteId, SiteMenu.CHARGING_GUN_VIEW_RATES)); + if(null == tChargingGunVO.getAccountingStrategyId()){ + List<Site> data = siteClient.getSiteByIds(Arrays.asList(tChargingGunVO.getSiteId())).getData(); + if(data.size() > 0){ + Site site = data.get(0); + tChargingGunVO.setAccountingStrategyId(site.getAccountingStrategyId()); + } + } } pageInfo.setRecords(list); return pageInfo; } - + +@Autowired +private SiteMapper siteMapper; /** * 添加充电枪 * @param dto @@ -111,11 +135,26 @@ return ajaxResult; } long count = this.count(new LambdaQueryWrapper<TChargingGun>().eq(TChargingGun::getCode, dto.getCode()) - .eq(TChargingGun::getDelFlag, 0)); + .eq(TChargingGun::getDelFlag, 0).eq(TChargingGun::getChargingPileId, dto.getChargingPileId())); if(count > 0){ return AjaxResult.error("接口编码已存在"); } + TChargingPile chargingPile = chargingPileService.getById(dto.getChargingPileId()); + dto.setFullNumber(chargingPile.getCode() + dto.getCode()); this.save(dto); + + //下发硬件充电二维码 + String code_prefix = "https://mxcd.zhinenganguan.com?No="; + QrCodeDelivery qrCodeDelivery = new QrCodeDelivery(); + qrCodeDelivery.setCharging_pile_code(chargingPile.getCode()); + qrCodeDelivery.setCharging_gun_code(dto.getCode()); + qrCodeDelivery.setCode_format(1); + qrCodeDelivery.setPrefix_length(code_prefix.length()); + qrCodeDelivery.setCode_prefix(code_prefix); + qrCodeDelivery.setQr_code(code_prefix + chargingPile.getCode() + dto.getCode()); + sendMessageClient.qrCodeDelivery(qrCodeDelivery); + Site site = siteMapper.selectById(chargingPile.getSiteId()); + // 推送充换电站信息 return AjaxResult.success(); } @@ -136,11 +175,26 @@ return ajaxResult; } TChargingGun one = this.getOne(new LambdaQueryWrapper<TChargingGun>().eq(TChargingGun::getCode, dto.getCode()) - .eq(TChargingGun::getDelFlag, 0)); + .eq(TChargingGun::getDelFlag, 0).eq(TChargingGun::getChargingPileId, dto.getChargingPileId())); if(null != one && !dto.getId().equals(one.getId())){ return AjaxResult.error("接口编码已存在"); } + TChargingPile chargingPile = chargingPileService.getById(dto.getChargingPileId()); + dto.setFullNumber(chargingPile.getCode() + dto.getCode()); this.updateById(dto); + + //下发硬件充电二维码 + String code_prefix = "https://mxcd.zhinenganguan.com?No="; + QrCodeDelivery qrCodeDelivery = new QrCodeDelivery(); + qrCodeDelivery.setCharging_pile_code(chargingPile.getCode()); + qrCodeDelivery.setCharging_gun_code(dto.getCode()); + qrCodeDelivery.setCode_format(1); + qrCodeDelivery.setPrefix_length(code_prefix.length()); + qrCodeDelivery.setCode_prefix(code_prefix); + qrCodeDelivery.setQr_code(code_prefix + chargingPile.getCode() + dto.getCode()); + sendMessageClient.qrCodeDelivery(qrCodeDelivery); + tcecClient.superviseNotificationStationInfo(one.getSiteId()); + return AjaxResult.success(); } @@ -186,16 +240,22 @@ GunStatusStatisticsVO gunStatusStatisticsVO = new GunStatusStatisticsVO(); if(CollectionUtils.isEmpty(siteIds)){ - Map<Integer, Integer> modeStatisticsNull = new HashMap<>(); - modeStatisticsNull.put(1, 0); - modeStatisticsNull.put(2, 0); - modeStatisticsNull.put(3, 0); - gunStatusStatisticsVO.setModeStatistics(modeStatisticsNull); - Map<Integer, Integer> statusStatisticsNull = new HashMap<>(); - statusStatisticsNull.put(1, 0); - statusStatisticsNull.put(2, 0); - statusStatisticsNull.put(3, 0); - gunStatusStatisticsVO.setStatusStatistics(statusStatisticsNull); +// List<Map<Integer, Integer>> modeStatisticsNull = new ArrayList<>(); +// HashMap<Integer, Integer> objectObjectHashMap1 = new HashMap<>(); +// objectObjectHashMap1.put(1, 0); +// modeStatisticsNull.add(objectObjectHashMap1); +// HashMap<Integer, Integer> objectObjectHashMap2= new HashMap<>(); +// objectObjectHashMap2.put(2, 0); +// modeStatisticsNull.add(objectObjectHashMap2); +// HashMap<Integer, Integer> objectObjectHashMap3= new HashMap<>(); +// objectObjectHashMap3.put(3, 0); +// modeStatisticsNull.add(objectObjectHashMap3); +// gunStatusStatisticsVO.setModeStatistics(modeStatisticsNull); +// Map<Integer, Integer> statusStatisticsNull = new HashMap<>(); +// statusStatisticsNull.put(1, 0); +// statusStatisticsNull.put(2, 0); +// statusStatisticsNull.put(3, 0); +// gunStatusStatisticsVO.setStatusStatistics(statusStatisticsNull); List<StatusModeStatisticsVO> statusModeStatistics = new ArrayList<>(); for (int i = 1; i < 4; i++) { StatusModeStatisticsVO statusModeStatisticsVO = new StatusModeStatisticsVO(); @@ -209,30 +269,80 @@ gunStatusStatisticsVO.setStatusModeStatistics(statusModeStatistics); } - Map<Integer, Integer> modeStatistics = this.baseMapper.getModeStatistics(siteIds); + List<Map<String, Object>> modeStatistics = this.baseMapper.getModeStatistics(siteIds); + if(CollectionUtils.isEmpty(modeStatistics)){ + Map<String, Object> modeStatistics1 = new HashMap<>(); + modeStatistics1.put("1", "0"); + modeStatistics1.put("2", "0"); + modeStatistics1.put("3", "0"); + modeStatistics.add(modeStatistics1); + } gunStatusStatisticsVO.setModeStatistics(modeStatistics); - Map<Integer, Integer> statusStatistics = new HashMap<>(); + List<Map<String, Integer>> statusStatistics = new ArrayList<>(); // 离线 Long count = this.baseMapper.selectCount(Wrappers.lambdaQuery(TChargingGun.class) .eq(TChargingGun::getStatus, 1)); - statusStatistics.put(1, count.intValue()); + HashMap<String, Integer> objectObjectHashMap1 = new HashMap<>(); + objectObjectHashMap1.put("charge_mode",1); + objectObjectHashMap1.put("modeCount", count.intValue()); + statusStatistics.add(objectObjectHashMap1); +// statusStatistics.put(1, count.intValue()); // 故障 count = this.baseMapper.selectCount(Wrappers.lambdaQuery(TChargingGun.class) .eq(TChargingGun::getStatus, 7)); - statusStatistics.put(2, count.intValue()); + HashMap<String, Integer> objectObjectHashMap2 = new HashMap<>(); +// objectObjectHashMap2.put("2", count.intValue()); + objectObjectHashMap2.put("charge_mode",2); + objectObjectHashMap2.put("modeCount", count.intValue()); + statusStatistics.add(objectObjectHashMap2); + +// statusStatistics.put(2, count.intValue()); // 充电中 count = this.baseMapper.selectCount(Wrappers.lambdaQuery(TChargingGun.class) .in(TChargingGun::getStatus, Arrays.asList(3,4,5,6))); - statusStatistics.put(3, count.intValue()); - gunStatusStatisticsVO.setModeStatistics(statusStatistics); + HashMap<String, Integer> objectObjectHashMap = new HashMap<>(); + objectObjectHashMap.put("charge_mode",3); + objectObjectHashMap.put("modeCount", count.intValue()); + statusStatistics.add(objectObjectHashMap); + +// statusStatistics.put(3, count.intValue()); + gunStatusStatisticsVO.setStatusStatistics(statusStatistics); List<StatusModeStatisticsVO> statusModeStatisticsVOS = new ArrayList<>(); StatusModeStatisticsVO statusModeStatistics1 = this.baseMapper.getStatusModeStatistics(siteIds,1); StatusModeStatisticsVO statusModeStatistics2 = this.baseMapper.getStatusModeStatistics(siteIds,2); StatusModeStatisticsVO statusModeStatistics3 = this.baseMapper.getStatusModeStatistics(siteIds,3); + if (statusModeStatistics1==null){ + StatusModeStatisticsVO vo = new StatusModeStatisticsVO(); + vo.setChargeMode(1); + vo.setFreeCount(0); + vo.setFilledCount(0); + vo.setInsertCount(0); + vo.setChargingCount(0); + statusModeStatistics1 =vo; + } statusModeStatisticsVOS.add(statusModeStatistics1); + if (statusModeStatistics2==null){ + StatusModeStatisticsVO vo = new StatusModeStatisticsVO(); + vo.setChargeMode(2); + vo.setFreeCount(0); + vo.setFilledCount(0); + vo.setInsertCount(0); + vo.setChargingCount(0); + statusModeStatistics2 =vo; + } statusModeStatisticsVOS.add(statusModeStatistics2); + + if (statusModeStatistics3==null){ + StatusModeStatisticsVO vo = new StatusModeStatisticsVO(); + vo.setChargeMode(3); + vo.setFreeCount(0); + vo.setFilledCount(0); + vo.setInsertCount(0); + vo.setChargingCount(0); + statusModeStatistics3 =vo; + } statusModeStatisticsVOS.add(statusModeStatistics3); gunStatusStatisticsVO.setStatusModeStatistics(statusModeStatisticsVOS); return gunStatusStatisticsVO; -- Gitblit v1.7.1