Pu Zhibing
4 天以前 db0b7644a9a5a62ac2da3cf571fee41bb8b6974f
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java
@@ -24,6 +24,8 @@
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.elutong.model.*;
import com.ruoyi.integration.api.feignClient.ELuTongClient;
import com.ruoyi.integration.api.feignClient.IntegrationClient;
import com.ruoyi.integration.api.feignClient.TCECClient;
import com.ruoyi.other.api.domain.TVip;
@@ -41,7 +43,11 @@
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.LinkedBlockingDeque;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/**
@@ -90,6 +96,8 @@
   
   @Resource
   private TCECClient tcecClient;
   @Resource ELuTongClient eLuTongClient;
   
   
   /**
@@ -196,9 +204,176 @@
      }
      site.setMark(0);
      this.save(site);
      if(StringUtils.isNotEmpty(site.getSerAreaCode())){
         ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(1, 1, 0L, TimeUnit.SECONDS, new LinkedBlockingDeque<>());
         threadPoolExecutor.execute(()->{
            StationInfoReq stationInfoReq = new StationInfoReq();
            stationInfoReq.setOperatorId("91510903906171535D");
            stationInfoReq.setStationId(site.getId().toString());
            OperatorInfo operatorInfo = new OperatorInfo();
            operatorInfo.setOperatorId("91510903906171535D");
            operatorInfo.setOperatorName("四川明星新能源科技有限公司");
            operatorInfo.setOperatorTel1("18683346252");
            operatorInfo.setOperatorTel2("13982508784");
            operatorInfo.setOperatorRegAddress("遂宁市船山区渠河南路18号");
            stationInfoReq.setOperatorInfo(operatorInfo);
            List<StationInfo> stationInfos = new ArrayList<>();
            stationInfos.add(buildStationInfo(site));
            stationInfoReq.setItemSize(stationInfos.size());
            stationInfoReq.setStationInfos(stationInfos);
            R r = eLuTongClient.pushStationInfo(stationInfoReq);
            if(200 != r.getCode()){
               System.out.println(r.getMsg());
            }
         });
      }
      return AjaxResult.success();
   }
   
   private StationInfo buildStationInfo(Site site){
      StationInfo stationInfo = new StationInfo();
      stationInfo.setSerAreaCode(site.getSerAreaCode());
      stationInfo.setOperatorId("91510903906171535D");
      stationInfo.setStationId(site.getId().toString());
      stationInfo.setStationName(site.getName());
      stationInfo.setStationMode("CD");
      stationInfo.setAreaCode(site.getDistrictsCode());
      stationInfo.setServiceTel(site.getServicePhone());
      switch (site.getSiteType()){
         case 0:
            stationInfo.setStationType(255);
            break;
         case 1:
            stationInfo.setStationType(1);
            break;
         case 2:
            stationInfo.setStationType(50);
            break;
         case 3:
            stationInfo.setStationType(100);
            break;
         case 4:
            stationInfo.setStationType(101);
            break;
         case 5:
            stationInfo.setStationType(102);
            break;
         case 6:
            stationInfo.setStationType(103);
            break;
      }
      switch (site.getStatus()){
         case 3:
            stationInfo.setStationStatus(5);
            break;
         case 2:
            stationInfo.setStationStatus(6);
            break;
         case 1:
            stationInfo.setStationStatus(50);
            break;
      }
      stationInfo.setParkNums(site.getParkingSpace());
      stationInfo.setStationLng(Double.parseDouble(site.getLon()));
      stationInfo.setStationLat(Double.parseDouble(site.getLat()));
      stationInfo.setSiteGuide(site.getGuide());
      switch (site.getConstructionSite()){
         case 1:
            stationInfo.setConstruction(1);
            break;
         case 2:
            stationInfo.setConstruction(2);
            break;
         case 3:
            stationInfo.setConstruction(3);
            break;
         case 4:
            stationInfo.setConstruction(4);
            break;
         case 5:
            stationInfo.setConstruction(5);
            break;
         case 6:
            stationInfo.setConstruction(6);
            break;
         case 7:
            stationInfo.setConstruction(7);
            break;
         case 8:
            stationInfo.setConstruction(8);
            break;
         case 9:
            stationInfo.setConstruction(9);
            break;
         case 10:
            stationInfo.setConstruction(10);
            break;
         case 11:
            stationInfo.setConstruction(11);
            break;
         case 0:
            stationInfo.setConstruction(255);
            break;
      }
      if(StringUtils.isNotEmpty(site.getImgUrl())){
         stationInfo.setPictures(Arrays.asList(site.getImgUrl().split(",")));
      }
      stationInfo.setMatchCars(site.getVehicleDescription());
      stationInfo.setBusineHours(site.getStartServiceTime() + " - " + site.getEndServiceTime());
      stationInfo.setEquipmentInfos(buildEquipmentInfo(site));
      return stationInfo;
   }
   private List<EquipmentInfo> buildEquipmentInfo(Site site){
      List<TChargingPile> list = chargingPileService.list(new LambdaQueryWrapper<TChargingPile>()
            .eq(TChargingPile::getSiteId, site.getId()).eq(TChargingPile::getDelFlag, 0));
      return new ArrayList<EquipmentInfo>(){{
         for (TChargingPile chargingPile : list) {
            EquipmentInfo equipmentInfo = new EquipmentInfo();
            equipmentInfo.setEquipmentId(chargingPile.getId().toString());
            equipmentInfo.setEquipmentName(chargingPile.getName());
            equipmentInfo.setManufacturerId(chargingPile.getManufacturerCode());
            equipmentInfo.setManufacturerName(chargingPile.getManufacturer());
            equipmentInfo.setEquipmentModel(chargingPile.getEquipmentType());
            if(null != chargingPile.getProductionDate()){
               equipmentInfo.setProductionDate(chargingPile.getProductionDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
            }
            equipmentInfo.setEquipmentType(0 == chargingPile.getType() ? 5 : chargingPile.getType());
            if(StringUtils.isNotEmpty(chargingPile.getEquipmentLng())){
               equipmentInfo.setEquipmentLng(Double.parseDouble(chargingPile.getEquipmentLng()));
            }
            if(StringUtils.isNotEmpty(chargingPile.getEquipmentLat())){
               equipmentInfo.setEquipmentLat(Double.parseDouble(chargingPile.getEquipmentLat()));
            }
            equipmentInfo.setPower(chargingPile.getRatedPower().doubleValue());
            equipmentInfo.setConnectorInfos(buildConnectorInfo(chargingPile));
            add(equipmentInfo);
         }
      }};
   }
   private List<ConnectorInfo> buildConnectorInfo(TChargingPile chargingPile){
      List<TChargingGun> list = chargingGunService.list(new LambdaQueryWrapper<TChargingGun>()
            .eq(TChargingGun::getChargingPileId, chargingPile.getId()).eq(TChargingGun::getDelFlag, 0));
      return new ArrayList<ConnectorInfo>(){{
         for (TChargingGun chargingGun : list) {
            ConnectorInfo connectorInfo = new ConnectorInfo();
            connectorInfo.setConnectorId(chargingGun.getId().toString());
            connectorInfo.setConnectorName(chargingGun.getName());
            connectorInfo.setConnectorType(0 == chargingGun.getType() ? 6 : chargingGun.getType());
            connectorInfo.setVoltageUpperLimits(chargingGun.getUpperRatedVoltage().intValue());
            connectorInfo.setVoltageLowerLimits(chargingGun.getLowerLimitOfRatedVoltage().intValue());
            connectorInfo.setCurrent(chargingGun.getRatedCurrent().intValue());
            connectorInfo.setPower(chargingGun.getRatedPower().doubleValue());
            connectorInfo.setParkNo(chargingGun.getParkingNumber());
            connectorInfo.setNationalStandard(Integer.parseInt(chargingGun.getNationalStandard()));
            add(connectorInfo);
         }
      }};
   }
   
   /**
    * 编辑站点
@@ -227,7 +402,29 @@
      
      this.updateById(site);
      tcecClient.superviseNotificationStationInfo(site.getId());
      if(StringUtils.isNotEmpty(site.getSerAreaCode())){
         ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(1, 1, 0L, TimeUnit.SECONDS, new LinkedBlockingDeque<>());
         threadPoolExecutor.execute(()->{
            StationInfoReq stationInfoReq = new StationInfoReq();
            stationInfoReq.setOperatorId("91510903906171535D");
            stationInfoReq.setStationId(site.getId().toString());
            OperatorInfo operatorInfo = new OperatorInfo();
            operatorInfo.setOperatorId("91510903906171535D");
            operatorInfo.setOperatorName("四川明星新能源科技有限公司");
            operatorInfo.setOperatorTel1("18683346252");
            operatorInfo.setOperatorTel2("13982508784");
            operatorInfo.setOperatorRegAddress("遂宁市船山区渠河南路18号");
            stationInfoReq.setOperatorInfo(operatorInfo);
            List<StationInfo> stationInfos = new ArrayList<>();
            stationInfos.add(buildStationInfo(site));
            stationInfoReq.setItemSize(stationInfos.size());
            stationInfoReq.setStationInfos(stationInfos);
            R r = eLuTongClient.pushStationInfo(stationInfoReq);
            if(200 != r.getCode()){
               System.out.println(r.getMsg());
            }
         });
      }
      return AjaxResult.success();
   }