From 15dcbd07dfb421e81bf2401cc37b8a6bca6d4211 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期五, 24 十月 2025 18:34:49 +0800
Subject: [PATCH] 修改bug
---
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java | 322 ++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 268 insertions(+), 54 deletions(-)
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java
index 7d58d32..9cf18a7 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java
@@ -18,12 +18,15 @@
import com.ruoyi.chargingPile.api.domain.SiteMenu;
import com.ruoyi.chargingPile.mapper.SiteMapper;
import com.ruoyi.chargingPile.service.*;
+import com.ruoyi.chargingPile.util.UUIDUtil;
import com.ruoyi.common.core.domain.R;
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.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 +44,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 +97,8 @@
@Resource
private TCECClient tcecClient;
+
+ @Resource ELuTongClient eLuTongClient;
/**
@@ -196,10 +205,188 @@
}
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.getCode());
+ OperatorInfo operatorInfo = new OperatorInfo();
+ operatorInfo.setOperatorId("91510903906171535D");
+ operatorInfo.setOperatorName("四川明星新能源科技有限公司");
+ operatorInfo.setOperatorTel1("18683346252");
+ operatorInfo.setOperatorTel2("13982508784");
+ operatorInfo.setOperatorRegAddress("遂宁市船山区渠河南路18号");
+ operatorInfo.setOperatorNote("");
+ 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.getCode());
+ 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.setBusinessHours(site.getStartServiceTime() + " - " + site.getEndServiceTime());
+ stationInfo.setSiteGuide("");
+ stationInfo.setPictures(new ArrayList<>());
+ stationInfo.setMatchCars("");
+ stationInfo.setElectricityFee(BigDecimal.ZERO);
+ stationInfo.setServiceFee(BigDecimal.ZERO);
+ stationInfo.setParkFee(BigDecimal.ZERO);
+ stationInfo.setPayment("2");
+ stationInfo.setSupportOrder(0);
+ 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.getCode());
+ equipmentInfo.setEquipmentName(chargingPile.getName());
+ equipmentInfo.setManufacturerId(StringUtils.isNotEmpty(chargingPile.getManufacturerCode()) ? chargingPile.getManufacturerCode() : "91510900MACPB4NJ4E");
+ equipmentInfo.setManufacturerName(StringUtils.isNotEmpty(chargingPile.getManufacturer()) ? chargingPile.getManufacturer() : "");
+ equipmentInfo.setEquipmentModel(StringUtils.isNotEmpty(chargingPile.getEquipmentType()) ? chargingPile.getEquipmentType() : "");
+ if(null != chargingPile.getProductionDate()){
+ equipmentInfo.setProductionDate(chargingPile.getProductionDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+ }else{
+ equipmentInfo.setProductionDate("");
+ }
+ 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.getFullNumber());
+ 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()));
+ connectorInfo.setParkNo("");
+ add(connectorInfo);
+ }
+ }};
+ }
/**
* 编辑站点
@@ -227,6 +414,31 @@
}
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.getCode());
+ OperatorInfo operatorInfo = new OperatorInfo();
+ operatorInfo.setOperatorId("91510903906171535D");
+ operatorInfo.setOperatorName("四川明星新能源科技有限公司");
+ operatorInfo.setOperatorTel1("18683346252");
+ operatorInfo.setOperatorTel2("13982508784");
+ operatorInfo.setOperatorRegAddress("遂宁市船山区渠河南路18号");
+ operatorInfo.setOperatorNote("");
+ 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();
}
@@ -280,56 +492,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("供电局用户编号不能为空");
- }
- }
+// 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();
}
@@ -516,7 +728,9 @@
integrationClient.setupBillingModel1(tChargingPile.getCode(), JSON.toJSONString(accountingStrategyDetails));
}
- //推送三方平台
- tcecClient.notificationStationChange(Arrays.asList(id));
+ if(1 == site.getIsOpenSynchronization()){
+ //推送三方平台
+ tcecClient.notificationStationChange(Arrays.asList(id));
+ }
}
}
--
Gitblit v1.7.1