Pu Zhibing
2025-05-19 3244b550596e0330031b3f4547356927df83b0ad
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java
@@ -9,27 +9,23 @@
import com.ruoyi.account.api.model.TAppUserVipDetail;
import com.ruoyi.account.api.vo.GetAppUserVipDetail;
import com.ruoyi.chargingPile.api.dto.GetSiteListDTO;
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.model.TParkingLot;
import com.ruoyi.chargingPile.api.model.*;
import com.ruoyi.chargingPile.api.query.GetSiteList;
import com.ruoyi.chargingPile.api.query.SiteDetailQuery;
import com.ruoyi.chargingPile.api.query.SiteQuery;
import com.ruoyi.chargingPile.api.vo.SiteDetailVO;
import com.ruoyi.chargingPile.api.vo.SiteVO;
import com.ruoyi.chargingPile.api.vo.TAccountingStrategyVO;
import com.ruoyi.chargingPile.domain.SiteMenu;
import com.ruoyi.chargingPile.api.domain.SiteMenu;
import com.ruoyi.chargingPile.mapper.SiteMapper;
import com.ruoyi.chargingPile.service.*;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.ServletUtils;
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.IntegrationClient;
import com.ruoyi.integration.api.feignClient.TCECClient;
import com.ruoyi.other.api.domain.TVip;
import com.ruoyi.other.api.feignClient.RoleSiteClient;
import com.ruoyi.other.api.feignClient.UserSiteClient;
@@ -38,8 +34,8 @@
import com.ruoyi.system.api.feignClient.SysUserClient;
import com.ruoyi.system.api.feignClient.SysUserRoleClient;
import com.ruoyi.system.api.model.SysUserRoleVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
@@ -77,8 +73,6 @@
   @Resource
   private AppUserClient appUserClient;
   @Resource
   private VipClient vipClient;
   @Resource
   private SysUserRoleClient sysUserRoleClient;
   @Resource
   private TParkingLotService parkingLotService;
@@ -87,6 +81,15 @@
   private IntegrationClient integrationClient;
   @Resource
   private AppUserVipDetailClient vipDetailClient;
   @Resource
   private TAccountingStrategyDetailService accountingStrategyDetailService;
   @Resource
   private TPartnerSiteService partnerSiteService;
   @Resource
   private TCECClient tcecClient;
   
   
   /**
@@ -99,10 +102,10 @@
   public PageInfo<GetSiteListDTO> getSiteList(GetSiteList siteList) {
      Set<Integer> ids = null;
      //校验合作商权限
      SysUser sysUser = sysUserClient.getSysUser(SecurityUtils.getUserId()).getData();
      SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData();
      Integer roleType = sysUser.getRoleType();
      Integer objectId = sysUser.getObjectId();
      R<Integer> admin = sysUserClient.isAdmin(SecurityUtils.getUserId());
      R<Integer> admin = sysUserClient.isAdmin(tokenService.getLoginUser().getUserid());
      //合作商
      if(roleType == 2){
         ids = partnerService.authSite(objectId, SiteMenu.SITE_LIST);
@@ -110,7 +113,6 @@
         //非管理员需要根据角色和用户配置查询允许的站点数据
         //改用roleId=1来判断
         if(admin.getData()!=1){
//         if(!SecurityUtils.isAdmin(SecurityUtils.getUserId())){
            List<Integer> data = userSiteClient.getSiteIds(sysUser.getUserId()).getData();
            List<SysUserRoleVo> data2 = sysUserRoleClient.getRoleByUserId(sysUser.getUserId()).getData();
            if(data2.size() > 0){
@@ -134,6 +136,8 @@
   }
   @Override
   public PageInfo<GetSiteListDTO> getSiteList1(Long userId) {
      GetSiteList siteList = new GetSiteList();
@@ -144,7 +148,7 @@
      SysUser sysUser = sysUserClient.getSysUser(userId).getData();
      Integer roleType = sysUser.getRoleType();
      Integer objectId = sysUser.getObjectId();
      R<Integer> admin = sysUserClient.isAdmin(SecurityUtils.getUserId());
      R<Integer> admin = sysUserClient.isAdmin(tokenService.getLoginUser().getUserid());
      //合作商
      if(roleType == 2){
@@ -211,7 +215,19 @@
      if(null != one && !one.getCode().equals(site.getCode())){
         return AjaxResult.error("站点编号重复");
      }
      Site site1 = this.getById(site.getId());
      if(!site1.getPartnerId().equals(site.getPartnerId())){
         List<TPartnerSite> list = partnerSiteService.list(new LambdaQueryWrapper<TPartnerSite>().eq(TPartnerSite::getPartnerId, site1.getPartnerId()).eq(TPartnerSite::getSiteId, site.getId()));
         for (TPartnerSite partnerSite : list) {
            partnerSite.setPartnerId(site.getPartnerId());
            partnerSiteService.updateById(partnerSite);
         }
      }
      this.updateById(site);
      tcecClient.superviseNotificationStationInfo(site.getId());
      return AjaxResult.success();
   }
   
@@ -253,9 +269,9 @@
//      if(StringUtils.isEmpty(site.getLon()) || StringUtils.isEmpty(site.getLat())){
//         return AjaxResult.error("地图位置不能为空");
//      }
      if(StringUtils.isEmpty(site.getPhone())){
         return AjaxResult.error("站点电话不能为空");
      }
//      if(StringUtils.isEmpty(site.getPhone())){
//         return AjaxResult.error("站点电话不能为空");
//      }
      if(StringUtils.isEmpty(site.getServicePhone())){
         return AjaxResult.error("服务电话不能为空");
      }
@@ -265,6 +281,56 @@
      if(null == site.getSort()){
         return AjaxResult.error("排序不能为空");
      }
//      if(StringUtils.isEmpty(site.getAreaCodeCountryside())){
//         return AjaxResult.error("充换电站所在县以下行政区划代码不能为空");
//      }
//      if(null == site.getStationClassification()){
//         return AjaxResult.error("请选择站点分类");
//      }
//      if(null == site.getGeneralApplicationType()){
//         return AjaxResult.error("请选择通用类型");
//      }
//      if(null == site.getParkType()){
//         return AjaxResult.error("请选择停车费类型");
//      }
//      if(null == site.getRoundTheClock()){
//         return AjaxResult.error("请选择是否7*24h营业");
//      }
//      if (site.getStationClassification()!=1&& (!org.springframework.util.StringUtils.hasLength(site.getSwapMatchCars()))){
//         return AjaxResult.error("服务车型描述不能为空");
//      }
//      if(null == site.getElectricityType()){
//         return AjaxResult.error("请选择电费类型");
//      }
//      if(null == site.getBusinessExpandType()){
//         return AjaxResult.error("请选择报装类型");
//      }
//      if(null == site.getCapacity()){
//         return AjaxResult.error("报装电源容量不能为空");
//      }
//      if(null == site.getRatedPower()){
//         return AjaxResult.error("站点额定总功率不能为空");
//      }
//      if(StringUtils.isEmpty(site.getOfficialRunTime())){
//         return AjaxResult.error("请选择正式投运时间");
//      }
//      if(null == site.getPeriodFee()){
//         return AjaxResult.error("请选择峰谷时分");
//      }
//      if(null == site.getVideoMonitor()){
//         return AjaxResult.error("请选择视频监控配套情况");
//      }
//      if(StringUtils.isEmpty(site.getEquipmentOwnerName())){
//         return AjaxResult.error("设备所属方名称不能为空");
//      }
//      if(null == site.getSupplyType()){
//         return AjaxResult.error("请选择供电类型");
//      }
//      if(site.getSupplyType()==1){
//         if (StringUtils.isEmpty(site.getResidentNo())){
//            return AjaxResult.error("供电局用户编号不能为空");
//         }
//      }
      return AjaxResult.success();
   }
   
@@ -334,7 +400,7 @@
   public List<Site> getSiteListParkLot() {
      Set<Integer> ids = null;
      //校验合作商权限
      SysUser sysUser = sysUserClient.getSysUser(SecurityUtils.getUserId()).getData();
      SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData();
      Integer roleType = sysUser.getRoleType();
      Integer objectId = sysUser.getObjectId();
      //合作商
@@ -342,7 +408,7 @@
         ids = partnerService.authSite(objectId, SiteMenu.SITE_LIST);
      }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();
@@ -369,7 +435,7 @@
   public List<Site> getSiteListGun() {
      Set<Integer> ids = null;
      //校验合作商权限
      SysUser sysUser = sysUserClient.getSysUser(SecurityUtils.getUserId()).getData();
      SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData();
      Integer roleType = sysUser.getRoleType();
      Integer objectId = sysUser.getObjectId();
      //合作商
@@ -377,7 +443,7 @@
         ids = partnerService.authSite(objectId, SiteMenu.SITE_LIST);
      }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();
@@ -438,14 +504,20 @@
      this.updateById(site);
      List<TChargingGun> list = chargingGunService.list(new LambdaQueryWrapper<TChargingGun>().in(TChargingGun::getSiteId, id).eq(TChargingGun::getDelFlag, 0));
      for (TChargingGun tChargingGun : list) {
         tChargingGun.setAccountingStrategyId(accountingStrategyId);
         TChargingGun tChargingGun1 = new TChargingGun();
         tChargingGun1.setId(tChargingGun.getId());
         tChargingGun1.setAccountingStrategyId(accountingStrategyId);
         chargingGunService.updateById(tChargingGun1);
      }
      chargingGunService.updateBatchById(list);
      
      //下发硬件数据
      List<TAccountingStrategyDetail> accountingStrategyDetails = accountingStrategyDetailService.list(new LambdaQueryWrapper<TAccountingStrategyDetail>().eq(TAccountingStrategyDetail::getAccountingStrategyId, accountingStrategyId));
      List<TChargingPile> list1 = chargingPileService.lambdaQuery().eq(TChargingPile::getSiteId, id).eq(TChargingPile::getDelFlag, 0).list();
      for (TChargingPile tChargingPile : list1) {
         integrationClient.setupBillingModel1(tChargingPile.getCode());
         integrationClient.setupBillingModel1(tChargingPile.getCode(), JSON.toJSONString(accountingStrategyDetails));
      }
      //推送三方平台
      tcecClient.notificationStationChange(Arrays.asList(id));
   }
}