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 |   70 ++++++++++++++++++++++++++++-------
 1 files changed, 56 insertions(+), 14 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 f182bc8..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
@@ -6,17 +6,14 @@
 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.TAccountingStrategy;
-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.TAccountingStrategyService;
 import com.ruoyi.chargingPile.service.TChargingGunService;
 import com.ruoyi.chargingPile.service.TChargingPileService;
 import com.ruoyi.common.core.enums.status.ChargingGunModeEnum;
@@ -24,8 +21,10 @@
 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;
@@ -75,14 +74,16 @@
     @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();
         //合作商
@@ -90,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();
@@ -109,14 +110,19 @@
             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()){
-                Site site = siteClient.getSiteByIds(Arrays.asList(tChargingGunVO.getSiteId())).getData().get(0);
-                tChargingGunVO.setAccountingStrategyId(site.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
@@ -133,18 +139,22 @@
         if(count > 0){
             return AjaxResult.error("接口编码已存在");
         }
-        this.save(dto);
         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();
     }
     
@@ -169,18 +179,22 @@
         if(null != one && !dto.getId().equals(one.getId())){
             return AjaxResult.error("接口编码已存在");
         }
-        this.updateById(dto);
         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();
     }
 
@@ -299,8 +313,36 @@
         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