From eaf85b386cf8103755a529b33d8dcc24eeff8f73 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期日, 16 三月 2025 12:58:57 +0800
Subject: [PATCH] 监管平台
---
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/ConnectorInfo.java | 40 +++
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/Site.java | 235 +++++++++++++++++++
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java | 234 ++++++++++++++----
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TChargingGun.java | 31 ++
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/SuperviseQueryOperatorInfoResultPage.java | 36 +++
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java | 57 ++++
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TChargingPile.java | 14 +
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/enu/EquipmentTypeEnum.java | 4
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/EquipmentInfo.java | 14 +
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/StationInfo.java | 11
10 files changed, 602 insertions(+), 74 deletions(-)
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/Site.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/Site.java
index 0c380e4..a6e396f 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/Site.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/Site.java
@@ -5,10 +5,12 @@
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonProperty;
import com.ruoyi.common.core.web.domain.BasePojo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
@@ -47,7 +49,7 @@
* 站点类型(0=其他,1=公共,2=个人,3=公交(专业),4=环卫(专用),5=物流(专用),6=出租车(专用))
*/
@TableField("site_type")
- @ApiModelProperty(value = "站点类型(0=其他,1=公共,2=个人,3=公交(专业),4=环卫(专用),5=物流(专用),6=出租车(专用))", required = true)
+ @ApiModelProperty(value = "站点类型(0=其他,1=公共,2=个人,3=公交(专业),4=环卫(专用),5=物流(专用),6=出租车(专用),7=分时租赁(专用),8=小区共享(专用),9=单位(专用),10=私人共享桩(专用))", required = true)
private Integer siteType;
/**
* 经营类型(1=直营,2=非直营)
@@ -65,7 +67,7 @@
* 建设场所(0=其他,1=居民区,2=公共机构,3=企事业单位,4=写字楼,5=工业园区,6=交通枢纽,7=大型文体设施,8=城市绿地,9=大型建筑配建停车场,10=路边停车位,11=城际高速服务区)
*/
@TableField("construction_site")
- @ApiModelProperty(value = "建设场所(0=其他,1=居民区,2=公共机构,3=企事业单位,4=写字楼,5=工业园区,6=交通枢纽,7=大型文体设施,8=城市绿地,9=大型建筑配建停车场,10=路边停车位,11=城际高速服务区)", required = true)
+ @ApiModelProperty(value = "建设场所(0=其他,1=居民区,2=公共机构,3=企事业单位,4=写字楼,5=工业园区,6=交通枢纽,7=大型文体设施,8=城市绿地,9=大型建筑配建停车场,10=路边停车位,11=城际高速服务区),12=风景区,13=公交场站,14=加油加气站,15=出租车", required = true)
private Integer constructionSite;
/**
* 站点环境图
@@ -155,7 +157,7 @@
* 开始服务时间
*/
@TableField("start_service_time")
- @ApiModelProperty(value = "开始服务时间")
+ @ApiModelProperty(value = "2.0修改字段-运营时间,{\"1\":[\"09:00-17:30\",\"19:30-22:00\"],\"2\":[\"09:00-17:30\",\"19:30-22:00\"],\"3\":[\"09:00-17:30,\"19:30-2:00\"],\"4\":[\"09:00-17:30\"],5\":[\"09:00-17:30\"],\"6\":[\"09:00-17:30\"],\"7\":[\"09:00-17:30\"]}")
private String startServiceTime;
/**
* 结束服务时间
@@ -223,5 +225,230 @@
*/
@TableField("mark")
private Integer mark;
-
+ /**
+ * 充换电站所在县以下行政区划代码
+ */
+ @TableField("area_code_countryside")
+ @ApiModelProperty(value = "2.0修改字段-充换电站所在县以下行政区划代码")
+ private String areaCodeCountryside;
+ /**
+ * 站点分类
+ */
+ @TableField("station_classification")
+ @ApiModelProperty(value = "2.0修改字段-站点分类1=充电站 2=换电站 3=充换电一体站")
+ private Integer stationClassification;
+ /**
+ * 通用类型
+ */
+ @TableField("general_application_type")
+ @ApiModelProperty(value = "2.0修改字段-1:通用类型(可为3种及3种以上的换电车型进行换电的换电站)2:非通用 注:站点分类为2或3时,此字段为必填项;站点分类为1时,此字段为非必填项")
+ private Integer generalApplicationType;
+ /**
+ * 服务车型描述
+ */
+ @TableField("swap_match_cars")
+ @ApiModelProperty(value = "2.0修改字段-描述换电站可服务的车系车型(厂牌型号)。注:站点分类为2或3时,此字段为必填项;站点分类为1时,此字段为非必填项逗号拼接")
+ private String swapMatchCars;
+ /**
+ * 7*24小时营业
+ */
+ @TableField("round_the_clock")
+ @ApiModelProperty(value = "2.0修改字段-7*24小时营业,0:否 1:是")
+ private Integer roundTheClock;
+ /**
+ * 停车费类型
+ */
+ @TableField("park_type")
+ @ApiModelProperty(value = "2.0修改字段-停车费类型,0=免费 1=不免费 2=限时免费停车 3=充电限时减免 4=参考场地实际收费标准")
+ private Integer parkType;
+ /**
+ * 停车费描述 示例
+ * {"rules": {
+ * "00:00:00-
+ * 00:30:00":"0.4901",
+ * "00:30:00-
+ * 06:00:00":"0.3602",
+ * "06:00:00-
+ * 08:30:00":"0.0000",
+ * ......,
+ * "23:30:00-
+ * 24:00:00":"0.5603"
+ * },
+ * "freeDuration": 120}
+ */
+ @TableField("park_fee")
+ @ApiModelProperty(value = "2.0修改字段-停车费描述,示例:\"00:00:00-00:30:00\":\"0.4901\",\"00:00:30-01:00:00\":\"0.1234\"")
+ private String parkFee;
+ /**
+ * 停车费免费时长 单位分钟
+ */
+ @TableField("park_fee_free")
+ @ApiModelProperty(value = "2.0修改字段-停车费免费时长 单位分钟")
+ private Integer parkFeeFree;
+ /**
+ * 停车费类型
+ */
+ @TableField("business_expand_type")
+ @ApiModelProperty(value = "2.0修改字段-报装类型,是否独立报装:0:否1:是")
+ private Integer businessExpandType;
+ /**
+ * 电费类型
+ */
+ @TableField("electricity_type")
+ @ApiModelProperty(value = "2.0修改字段-电费类型,1:商业用电2:普通工业用电3:大工业用电0:其他用电")
+ private Integer electricityType;
+ /**
+ * 报装电源容量
+ */
+ @TableField("capacity")
+ @ApiModelProperty(value = "2.0修改字段-报装电源容量:若是独立报装站点,填写“报装电源容量”")
+ private BigDecimal capacity;
+ /**
+ * 站点额定总
+ * 功率
+ */
+ @TableField("rated_power")
+ @ApiModelProperty(value = "2.0修改字段-站点额定总功率")
+ private BigDecimal ratedPower;
+ /**
+ *峰谷分时
+ */
+ @TableField("period_fee")
+ @ApiModelProperty(value = "2.0修改字段-峰谷分时 0否1是")
+ private Integer periodFee;
+ /**
+ *正式投运时间
+ */
+ @TableField("official_runTime")
+ @ApiModelProperty(value = "2.0修改字段-正式投运时间 格式yyyy-MM-dd")
+ private String officialRunTime;
+ /**
+ *充换电站方位
+ */
+ @TableField("station_orientation")
+ @ApiModelProperty(value = "2.0修改字段-充换电站方位 1:地面-停车场2:地面-路侧3:地下停车4:立体式停车楼")
+ private Integer stationOrientation;
+ /**
+ *充换电站方位
+ */
+ @TableField("station_area")
+ @ApiModelProperty(value = "2.0修改字段-充换电站方位 充换电站建设面积")
+ private BigDecimal stationArea;
+ /**
+ *充换电站人
+ * 工值守
+ */
+ @TableField("have_person")
+ @ApiModelProperty(value = "2.0修改字段-充换电站人工值守 0:无1:有")
+ private Integer havePerson;
+ /**
+ 视频监控配
+ 套情况
+ */
+ @TableField("video_monitor")
+ @ApiModelProperty(value = "2.0修改字段-视频监控配套情况 0:无1:有")
+ private Integer videoMonitor;
+ /**
+ 视频监控配
+ 套情况
+ */
+ @TableField("supporting_facilities")
+ @ApiModelProperty(value = "2.0修改字段-周边配套设施 1:卫生间2:便利店3:餐厅4:休息室5:雨棚,多个逗号拼接")
+ private String supportingFacilities;
+ /**
+ 视频监控配
+ 套情况
+ */
+ @TableField("printer_flag")
+ @ApiModelProperty(value = "2.0修改字段-是否有小票机 0:无1:有")
+ private Integer printerFlag;
+ /**
+ 是否有道闸
+ */
+ @TableField("barrier_flag")
+ @ApiModelProperty(value = "2.0修改字段-是否有道闸0:无1:有")
+ private Integer barrierFlag;
+ /**
+ 是否有地锁
+ */
+ @TableField("parking_lock_flag")
+ @ApiModelProperty(value = "2.0修改字段-是否有地锁0:1:有")
+ private Integer parkingLockFlag;
+ // todo 换电设备信息
+ //SwapEquipmentInfos
+ //换电设备信息对象数组,参照
+ //公共对象:换电设备信息
+ //站点分
+ //类为2
+ //或3时
+ //必填
+ //SupSwa
+ //pEquip
+ //mentIn
+ //fo数组
+ /**
+ * 充电电费描
+ * 述
+ */
+ @TableField("electricity_fee")
+ @ApiModelProperty(value = "2.0修改字段-充电电费描述,示例:\"00:00:00-00:30:00\":\"0.4901\",\"00:00:30-01:00:00\":\"0.1234\"")
+ private String electricityFee;
+ /**
+ * 设备所属方名称
+ */
+ @TableField("equipment_owner_name")
+ @ApiModelProperty(value = "2.0修改字段-设备运营商全称")
+ private String equipmentOwnerName;
+ /**
+ * 供电类型
+ */
+ @TableField("supply_type")
+ @ApiModelProperty(value = "2.0修改字段-供电类型,1:直供电2:转供电")
+ private Integer supplyType;
+ /**
+ * 供电局用户编号
+ */
+ @TableField("resident_no")
+ @ApiModelProperty(value = "2.0修改字段-供电局用户编号,直供电必填")
+ private String residentNo;
+ /**
+ * 表号
+ */
+ @TableField("watt_hour_meter_no")
+ @ApiModelProperty(value = "2.0修改字段-表号")
+ private String wattHourMeterNo;
+ /**
+ * 外电功率
+ */
+ @TableField("forward_power")
+ @ApiModelProperty(value = "2.0修改字段-外电功率")
+ private BigDecimal forwardPower;
+ /**
+ * 服务费描述
+ */
+ @TableField("service_fee")
+ @ApiModelProperty(value = "2.0修改字段-服务费描述,示例:\"00:00:00-00:30:00\":\"0.4901\",\"00:00:30-01:00:00\":\"0.1234\"")
+ private String serviceFee;
+ /**
+ * 服务费描述
+ */
+ @TableField("record_unique_no")
+ @ApiModelProperty(value = "2.0修改字段-充电站全省唯一备案号")
+ private String recordUniqueNo;
+// /**
+// * 换电设备信息
+// */
+// @TableField("swap_equipment_infos")
+// @ApiModelProperty(value = "2.0修改字段-换电设备信息 站点分类为2或3时必填 示例:" +
+// "[{" +
+// "\"SwapMechanicalEquipmentID\": \"A564778B\"," +
+// "\"MechanicalEquipmentPower\": 128.0000" +
+// "}," +
+// "{" +
+// "\"SwapMechanicalEquipmentID\": \"A564778C\"," +
+// "\"MechanicalEquipmentPower\": 150.0000" +
+// "}" +
+// "]")
+// private String swapEquipmentInfos;
+
}
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TChargingGun.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TChargingGun.java
index b6f5cbc..acfc5b1 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TChargingGun.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TChargingGun.java
@@ -103,7 +103,9 @@
@TableField("parking_lock_state")
private Integer parkingLockState;
- @ApiModelProperty(value = "国家标准", required = true)
+ @ApiModelProperty(value = "国家标准 1:2011\n" +
+ "2:2015\n" +
+ "3:兼容2011和2015", required = true)
@TableField("national_standard")
private String nationalStandard;
@@ -118,5 +120,32 @@
@ApiModelProperty(value = "完整编号(桩号+抢号)")
@TableField("fullNumber")
private String fullNumber;
+ @ApiModelProperty(value = "2.0修改字段 设备接口分类 1:车辆充电设备接口\n" +
+ "2:换电站内的电池箱充电设备\n" +
+ "接口" , required = true)
+ @TableField("equipment_classification")
+ private Integer equipmentClassification;
+ @ApiModelProperty(value = "2.0修改字段-恒功率电压上限", required = false)
+ @TableField("constant_voltage_upper_limits")
+ private BigDecimal constantVoltageUpperLimits;
+ @ApiModelProperty(value = "2.0修改字段-恒功率电压下限", required = false)
+ @TableField("constant_voltage_lower_limits")
+ private BigDecimal constantVoltageLowerLimits;
+
+ @ApiModelProperty(value = "2.0修改字段-恒功率电流上限", required = false)
+ @TableField("constant_current_upper_limits")
+ private BigDecimal constantCurrentUpperLimits;
+ @ApiModelProperty(value = "2.0修改字段-恒功率电流下限", required = false)
+ @TableField("constant_current_lower_limits")
+ private BigDecimal constantCurrentLowerLimits;
+ @ApiModelProperty(value = "2.0修改字段-辅助电源 1:12V2:24V3:兼容12V和24V",required = true)
+ @TableField("aux_power")
+ private Integer auxPower;
+ @ApiModelProperty(value = "2.0修改字段-运营状态0:未知1:建设中5:关闭下线6:维护中50:正常使用",required = true)
+ @TableField("opreate_status")
+ private Integer opreateStatus;
+ @ApiModelProperty(value = "2.0修改字段-运营时间描述")
+ @TableField("opreate_hours")
+ private String opreateHours;
}
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TChargingPile.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TChargingPile.java
index fe22081..f57b585 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TChargingPile.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TChargingPile.java
@@ -48,7 +48,7 @@
@TableField("number")
private Integer number;
- @ApiModelProperty(value = "设备类型(0=其他,1=直流设备,2=交流设备,3=交直流一体设备,4=无线设备)", required = true)
+ @ApiModelProperty(value = "设备类型(0=其他,1=直流设备,2=交流设备,3=交直流一体设备,4=无线设备 5=有序 6=V2G)", required = true)
@TableField("type")
private Integer type;
@@ -100,4 +100,16 @@
@ApiModelProperty(value = "iotd设备id")
@TableField("iotd_device_id")
private String iotdDeviceId;
+ @ApiModelProperty(value = "设备分类 1:车辆充电设备2:换电站内的电池箱充电设备")
+ @TableField("equipment_classification")
+ private Integer equipmentClassification;
+ @ApiModelProperty(value = "设备唯一编码")
+ @TableField("equipment_unique_number")
+ private String equipmentUniqueNumber;
+ @ApiModelProperty(value = "充电设备经度")
+ @TableField("equipment_lng")
+ private String equipmentLng;
+ @ApiModelProperty(value = "充电设备纬度")
+ @TableField("equipment_lat")
+ private String equipmentLat;
}
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 d46361c..7d58d32 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
@@ -196,6 +196,7 @@
}
site.setMark(0);
this.save(site);
+ // 推送充电站数据给监管平台
return AjaxResult.success();
}
@@ -267,9 +268,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("服务电话不能为空");
}
@@ -279,6 +280,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();
}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java
index 5484a0c..5f4ca19 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java
@@ -276,6 +276,45 @@
List<StationInfo> StationInfos = new ArrayList<>();
for (Site datum : sites) {
StationInfo stationInfo = new StationInfo();
+ stationInfo.setAreaCodeCountryside(datum.getAreaCodeCountryside());
+ stationInfo.setStationClassification(datum.getStationClassification());
+ stationInfo.setGeneralApplicationType(datum.getGeneralApplicationType());
+ if (org.springframework.util.StringUtils.hasLength(datum.getSwapMatchCars())){
+ stationInfo.setSwapMatchCars(Arrays.asList(datum.getSwapMatchCars().split(",")));
+ }
+ stationInfo.setBusineHours(datum.getStartServiceTime());
+ stationInfo.setRoundTheClock(datum.getRoundTheClock());
+ stationInfo.setParkType(datum.getParkType());
+ stationInfo.setElectricityFee("{"+datum.getElectricityFee()+"}");
+ stationInfo.setServiceFee("{"+datum.getServiceFee()+"}");
+ stationInfo.setParkFee("{\"rules\":"+datum.getParkFee()+","+"\"freeDuration\":"+datum.getParkFeeFree()+"}");
+ stationInfo.setElectricityType(datum.getElectricityType());
+ stationInfo.setBusinessExpandType(datum.getBusinessExpandType());
+ stationInfo.setCapacity(datum.getCapacity());
+ stationInfo.setRatedPower(datum.getRatedPower());
+ stationInfo.setPeriodFee(datum.getPeriodFee());
+ stationInfo.setOfficialRunTime(datum.getOfficialRunTime());
+ stationInfo.setStationOrientation(datum.getStationOrientation());
+ stationInfo.setStationArea(datum.getStationArea());
+ stationInfo.setHavePerson(datum.getHavePerson());
+ stationInfo.setVideoMonitor(datum.getVideoMonitor());
+ if (StringUtils.isNotEmpty(datum.getSupportingFacilities())){
+ String[] split = datum.getSupportingFacilities().split(",");
+ List<Integer> collect = Arrays.stream(split).map(Integer::parseInt).collect(Collectors.toList());
+ stationInfo.setSupportingFacilities(collect);
+ }
+ stationInfo.setPrinterFlag(datum.getPrinterFlag());
+ stationInfo.setBarrierFlag(datum.getBarrierFlag());
+ stationInfo.setParkingLockFlag(datum.getParkingLockFlag());
+ stationInfo.setEquipmentOwnerName(datum.getEquipmentOwnerName());
+ stationInfo.setResidentNo(datum.getResidentNo());
+ stationInfo.setSupplyType(datum.getSupplyType());
+ stationInfo.setWattHourMeterNo(datum.getWattHourMeterNo());
+ BigDecimal forwardPower = datum.getForwardPower();
+ if (forwardPower!=null){
+ stationInfo.setForwardPower(forwardPower.setScale(4, BigDecimal.ROUND_HALF_UP).toString());
+ }
+ stationInfo.setRecordUniqueNo(datum.getRecordUniqueNo());
stationInfo.setStationID(datum.getId().toString());
stationInfo.setOperatorID("906171535");
stationInfo.setEquipmentOwnerID("906171535");
@@ -324,7 +363,7 @@
stationInfo.setPictures(StringUtils.isNotEmpty(datum.getImgUrl()) ? Arrays.asList(datum.getImgUrl().split(",")) : new ArrayList<>());
stationInfo.setSiteGuide(datum.getGuide());
stationInfo.setMatchCars(datum.getVehicleDescription());
- stationInfo.setBusineHours(datum.getStartServiceTime() + "-" + datum.getEndServiceTime());
+// stationInfo.setBusineHours(datum.getStartServiceTime() + "-" + datum.getEndServiceTime());
stationInfo.setElectricityFee(datum.getRateDescription());
//添加停车费信息
Optional<TParkingLot> first = parkingLots.stream().filter(s -> s.getSiteId().equals(datum.getId())).findFirst();
@@ -332,7 +371,6 @@
TParkingLot tParkingLot = first.get();
buildPlaceHolder(tParkingLot, stationInfo);
}
-
//构建充电设备信息数据
stationInfo.setEquipmentInfos(buildEquipmentInfo(datum.getId(), tChargingPiles, chargingGunList));
StationInfos.add(stationInfo);
@@ -379,6 +417,8 @@
equipmentInfo.setManufacturerID(tChargingPile.getManufacturerCode());
equipmentInfo.setManufacturerName(tChargingPile.getManufacturer());
equipmentInfo.setEquipmentModel(tChargingPile.getEquipmentType());
+ equipmentInfo.setEquipmentUniqueNumber(tChargingPile.getEquipmentUniqueNumber());
+ equipmentInfo.setEquipmentClassification(tChargingPile.getEquipmentClassification());
if(null != tChargingPile.getProductionDate()){
equipmentInfo.setProductionDate(tChargingPile.getProductionDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
}
@@ -397,6 +437,12 @@
break;
case 4:
equipmentInfo.setEquipmentType(EquipmentTypeEnum.WIRELESS_DEVICE.getType());
+ break;
+ case 5:
+ equipmentInfo.setEquipmentType(EquipmentTypeEnum.ORDER.getType());
+ break;
+ case 6:
+ equipmentInfo.setEquipmentType(EquipmentTypeEnum.V2G.getType());
break;
}
@@ -421,6 +467,14 @@
ConnectorInfo connectorInfo = new ConnectorInfo();
connectorInfo.setConnectorID(chargingGun.getFullNumber());
connectorInfo.setConnectorName(chargingGun.getName());
+ connectorInfo.setEquipmentClassification(chargingGun.getEquipmentClassification());
+ connectorInfo.setConstantVoltageLowerLimits(chargingGun.getConstantVoltageLowerLimits());
+ connectorInfo.setConstantVoltageUpperLimits(chargingGun.getConstantVoltageUpperLimits());
+ connectorInfo.setConstantCurrentLowerLimits(chargingGun.getConstantCurrentLowerLimits());
+ connectorInfo.setConstantCurrentUpperLimits(chargingGun.getConstantCurrentUpperLimits());
+ connectorInfo.setAuxPower(chargingGun.getAuxPower());
+ connectorInfo.setOpreateStatus(chargingGun.getOpreateStatus());
+ connectorInfo.setOpreateHours(chargingGun.getOpreateHours());
switch (chargingGun.getType()){
case 0:
connectorInfo.setConnectorType(ConnectorTypeEnum.OTHER.getType());
@@ -441,8 +495,6 @@
connectorInfo.setConnectorType(ConnectorTypeEnum.WIRELESS_CHARGING_STAND.getType());
break;
}
- connectorInfo.setVoltageUpperLimits(chargingGun.getUpperRatedVoltage().intValue());
- connectorInfo.setVoltageLowerLimits(chargingGun.getLowerLimitOfRatedVoltage().intValue());
connectorInfo.setCurrent(chargingGun.getRatedCurrent().intValue());
connectorInfo.setPower(chargingGun.getRatedPower());
connectorInfo.setParkNo(chargingGun.getParkingNumber());
@@ -1637,8 +1689,6 @@
/*********************数据监管平台接口*********************/
-
-
/**
* 查询运营商信息
* @param baseRequest
@@ -1671,14 +1721,22 @@
pageSize = 50;
}
String operatorTel = systemConfigurationClient.getServerPhone().getData();
+ SuperviseQueryOperatorInfoResultPage superviseQueryOperatorInfoResultPage = new SuperviseQueryOperatorInfoResultPage();
+ superviseQueryOperatorInfoResultPage.setPageNo(1);
+ superviseQueryOperatorInfoResultPage.setPageCount(1);
+ superviseQueryOperatorInfoResultPage.setItemSize(1);
+
SuperviseQueryOperatorInfoResult superviseQueryOperatorInfoResult = new SuperviseQueryOperatorInfoResult();
superviseQueryOperatorInfoResult.setOperatorID("906171535");
superviseQueryOperatorInfoResult.setOperatorUSCID("91510903906171535D");
superviseQueryOperatorInfoResult.setOperatorName("四川明星新能源科技有限公司");
superviseQueryOperatorInfoResult.setOperatorTel1(operatorTel);
-
+ List<SuperviseQueryOperatorInfoResult> superviseQueryOperatorInfoResults = new ArrayList<>();
+ superviseQueryOperatorInfoResults.add(superviseQueryOperatorInfoResult);
+ // 将superviseQueryOperatorInfoResults转化为json数组
+ superviseQueryOperatorInfoResultPage.setOperatorInfos(superviseQueryOperatorInfoResults);
+ String jsonString = JacksonUtils.toJson(superviseQueryOperatorInfoResultPage);
//参数加密
- String jsonString = JacksonUtils.toJson(superviseQueryOperatorInfoResult);
log.info("监管平台查询充电站信息响应Data:" + jsonString);
String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
baseResult.setData(encrypt);
@@ -1686,57 +1744,117 @@
log.info("监管平台查询充电站信息响应参数:" + JacksonUtils.toJson(baseResult));
return baseResult;
}
+
+
-
-
-// /**
-// * 查询充电站信息
-// * @param baseRequest
-// * @param request
-// * @return
-// */
-// @PostMapping("/supervise_query_stations_info")
-// public BaseResult superviseQueryStationsInfo(@RequestBody BaseRequest baseRequest, HttpServletRequest request){
-// log.info("监管平台查询充电站信息请求参数:" + JacksonUtils.toJson(baseRequest));
-// //校验token和签名
-// BaseResult baseResult = requestCheck(true, baseRequest, request);
-// if(0 != baseResult.getRet()){
-// log.info("监管平台查询充电站信息响应Data:");
-// baseResult.setData("");
-// baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
-// log.info("监管平台查询充电站信息响应参数:" + JacksonUtils.toJson(baseResult));
-// return baseResult;
-// }
-// Operator operator = baseResult.getOperator();
-// //解密参数
-// String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getOurDataSecret(), operator.getOurDataSecretIv());
-// log.info("监管平台查询充电站信息请求Data:" + decrypt);
-// QueryStationsInfo queryStationsInfo = JSON.parseObject(decrypt, QueryStationsInfo.class);
-// Integer pageNo = queryStationsInfo.getPageNo();
-// Integer pageSize = queryStationsInfo.getPageSize();
-// List<String> stationIDs = queryStationsInfo.getStationIDs();
-// if(null == pageNo){
-// pageNo = 1;
-// }
-// if(null == pageSize){
-// pageSize = 50;
-// }
-// PageInfo<Site> siteListPaging = siteClient.getSiteListPaging(pageNo, pageSize, stationIDs);
-// List<TParkingLot> parkingLots = parkingLotClient.getAllParkingLot().getData();
-// QueryStationsInfoResult queryStationsInfoResult = new QueryStationsInfoResult();
-// queryStationsInfoResult.setPageNo(pageNo);
-// queryStationsInfoResult.setPageCount((0 == (siteListPaging.getTotal() % pageSize) ? 0 : 1) + Double.valueOf(siteListPaging.getTotal() / pageSize).intValue());
-// queryStationsInfoResult.setItemSize(Long.valueOf(siteListPaging.getTotal()).intValue());
-// queryStationsInfoResult.setStationInfos(superviseBuildSite(parkingLots, siteListPaging.getRecords()));
-// //参数加密
-// String jsonString = JacksonUtils.toJson(queryStationsInfoResult);
-// log.info("监管平台查询充电站信息响应Data:" + jsonString);
-// String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
-// baseResult.setData(encrypt);
-// baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
-// log.info("监管平台查询充电站信息响应参数:" + JacksonUtils.toJson(baseResult));
-// return baseResult;
-// }
+ /**
+ * 查询充电站信息
+ * @param baseRequest
+ * @param request
+ * @return
+ */
+ @PostMapping("/supervise_query_stations_info")
+ public BaseResult superviseQueryStationsInfo(@RequestBody BaseRequest baseRequest, HttpServletRequest request){
+ log.info("监管平台查询充电站信息请求参数:" + JacksonUtils.toJson(baseRequest));
+ //校验token和签名
+ BaseResult baseResult = requestCheck(true, baseRequest, request);
+ if(0 != baseResult.getRet()){
+ log.info("监管平台查询充电站信息响应Data:");
+ baseResult.setData("");
+ baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
+ log.info("监管平台查询充电站信息响应参数:" + JacksonUtils.toJson(baseResult));
+ return baseResult;
+ }
+ Operator operator = baseResult.getOperator();
+ //解密参数
+ String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getOurDataSecret(), operator.getOurDataSecretIv());
+ log.info("监管平台查询充电站信息请求Data:" + decrypt);
+ QueryStationsInfo queryStationsInfo = JSON.parseObject(decrypt, QueryStationsInfo.class);
+ Integer pageNo = queryStationsInfo.getPageNo();
+ Integer pageSize = queryStationsInfo.getPageSize();
+ List<String> stationIDs = queryStationsInfo.getStationIDs();
+ if(null == pageNo){
+ pageNo = 1;
+ }
+ if(null == pageSize){
+ pageSize = 50;
+ }
+ PageInfo<Site> siteListPaging = siteClient.getSiteListPaging(pageNo, pageSize, stationIDs);
+ List<TParkingLot> parkingLots = parkingLotClient.getAllParkingLot().getData();
+ QueryStationsInfoResult queryStationsInfoResult = new QueryStationsInfoResult();
+ queryStationsInfoResult.setPageNo(pageNo);
+ queryStationsInfoResult.setPageCount((0 == (siteListPaging.getTotal() % pageSize) ? 0 : 1) + Double.valueOf(siteListPaging.getTotal() / pageSize).intValue());
+ queryStationsInfoResult.setItemSize(Long.valueOf(siteListPaging.getTotal()).intValue());
+ queryStationsInfoResult.setStationInfos(buildSite(parkingLots, siteListPaging.getRecords()));
+ //参数加密
+ String jsonString = JacksonUtils.toJson(queryStationsInfoResult);
+ log.info("监管平台查询充电站信息响应Data:" + jsonString);
+ String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
+ baseResult.setData(encrypt);
+ baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
+ log.info("监管平台查询充电站信息响应参数:" + JacksonUtils.toJson(baseResult));
+ return baseResult;
+ }
+ /**
+ * 查询充电站信息
+ * @param baseRequest
+ * @param request
+ * @return
+ */
+ @PostMapping("/supervise_notification_operation_stats_info")
+ public BaseResult superviseNotificationOperationStatsInfo(@RequestBody BaseRequest baseRequest, HttpServletRequest request){
+ log.info("监管平台查询充电站信息请求参数:" + JacksonUtils.toJson(baseRequest));
+ //校验token和签名
+ BaseResult baseResult = requestCheck(true, baseRequest, request);
+ if(0 != baseResult.getRet()){
+ log.info("监管平台查询充电站信息响应Data:");
+ baseResult.setData("");
+ baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
+ log.info("监管平台查询充电站信息响应参数:" + JacksonUtils.toJson(baseResult));
+ return baseResult;
+ }
+ Operator operator = baseResult.getOperator();
+ //解密参数
+ String decrypt = AESUtil.decrypt(baseRequest.getData(), operator.getOurDataSecret(), operator.getOurDataSecretIv());
+ log.info("监管平台查询充电站信息请求Data:" + decrypt);
+ QueryStationsInfo queryStationsInfo = JSON.parseObject(decrypt, QueryStationsInfo.class);
+ Integer pageNo = queryStationsInfo.getPageNo();
+ Integer pageSize = queryStationsInfo.getPageSize();
+ List<String> stationIDs = queryStationsInfo.getStationIDs();
+ if(null == pageNo){
+ pageNo = 1;
+ }
+ if(null == pageSize){
+ pageSize = 50;
+ }
+ PageInfo<Site> siteListPaging = siteClient.getSiteListPaging(pageNo, pageSize, stationIDs);
+ List<TParkingLot> parkingLots = parkingLotClient.getAllParkingLot().getData();
+ QueryStationsInfoResult queryStationsInfoResult = new QueryStationsInfoResult();
+ queryStationsInfoResult.setPageNo(pageNo);
+ queryStationsInfoResult.setPageCount((0 == (siteListPaging.getTotal() % pageSize) ? 0 : 1) + Double.valueOf(siteListPaging.getTotal() / pageSize).intValue());
+ queryStationsInfoResult.setItemSize(Long.valueOf(siteListPaging.getTotal()).intValue());
+ queryStationsInfoResult.setStationInfos(buildSite(parkingLots, siteListPaging.getRecords()));
+ //参数加密
+ String jsonString = JacksonUtils.toJson(queryStationsInfoResult);
+ log.info("监管平台查询充电站信息响应Data:" + jsonString);
+ String encrypt = AESUtil.encrypt(jsonString, operator.getOurDataSecret(), operator.getOurDataSecretIv());
+ baseResult.setData(encrypt);
+ baseResult.setSig(TCECUtil.ourBuildSign(baseResult));
+ log.info("监管平台查询充电站信息响应参数:" + JacksonUtils.toJson(baseResult));
+ return baseResult;
+ }
+
+ /**
+ * 推送充换电站信息
+ * @param site
+ * @return
+ */
+ @PostMapping("/supervise_notification_station_info")
+ public BaseResult superviseNotificationStationInfo(@RequestBody Site site){
+ BaseResult baseResult = new BaseResult();
+
+ return baseResult;
+ }
//
//
// /**
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/ConnectorInfo.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/ConnectorInfo.java
index 0bcc566..0c364ea 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/ConnectorInfo.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/ConnectorInfo.java
@@ -1,6 +1,8 @@
package com.ruoyi.integration.drainage.model;
+import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@@ -23,9 +25,16 @@
/**
* 充电设备接口名称
*/
- @Null
+ @NotNull
@JsonProperty("ConnectorName")
private String connectorName;
+ /**
+ * 1:车辆充电设备接口
+ * 2:换电站内的电池箱充电设备接口
+ */
+ @Null
+ @JsonProperty("EquipmentClassification")
+ private Integer equipmentClassification;
/**
* 充电设备接口类型
*/
@@ -37,13 +46,13 @@
*/
@NotNull
@JsonProperty("VoltageUpperLimits")
- private Integer voltageUpperLimits;
+ private BigDecimal voltageUpperLimits;
/**
* 额定电压下限
*/
@NotNull
@JsonProperty("VoltageLowerLimits")
- private Integer voltageLowerLimits;
+ private BigDecimal voltageLowerLimits;
/**
* 额定电流
*/
@@ -66,6 +75,7 @@
* 国家标准
* 1:2011
* 2:2015
+ * 3:兼容2011和2015
*/
@NotNull
@JsonProperty("NationalStandard")
@@ -76,4 +86,28 @@
@Null
@JsonProperty("QRCode")
private String QRCode;
+ @Null
+ @JsonProperty("ConstantVoltageUpperLimits")
+ private BigDecimal constantVoltageUpperLimits;
+ @Null
+ @JsonProperty("ConstantVoltageLowerLimits")
+ private BigDecimal constantVoltageLowerLimits;
+
+ @Null
+ @JsonProperty("ConstantCurrentUpperLimits")
+ private BigDecimal constantCurrentUpperLimits;
+
+ @Null
+ @JsonProperty("ConstantCurrentLowerLimits")
+ private BigDecimal constantCurrentLowerLimits;
+ @NotNull
+ @JsonProperty("AuxPower")
+ private Integer auxPower;
+
+ @NotNull
+ @TableField("OpreateStatus")
+ private Integer opreateStatus;
+ @Null
+ @TableField("OpreateHours")
+ private String opreateHours;
}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/EquipmentInfo.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/EquipmentInfo.java
index f19eddc..775bf7f 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/EquipmentInfo.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/EquipmentInfo.java
@@ -1,6 +1,7 @@
package com.ruoyi.integration.drainage.model;
import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.models.auth.In;
import lombok.Data;
import javax.validation.constraints.NotNull;
@@ -27,6 +28,13 @@
@Null
@JsonProperty("ManufacturerID")
private String manufacturerID;
+ /**
+ * 设备唯一
+ * 编码
+ */
+ @Null
+ @JsonProperty("EquipmentUniqueNumber")
+ private String equipmentUniqueNumber;
/**
* 设备生产商名称
*/
@@ -82,4 +90,10 @@
@Null
@JsonProperty("EquipmentName")
private String equipmentName;
+ /**
+ * 设备分类
+ */
+ @NotNull
+ @JsonProperty("EquipmentClassification")
+ private Integer equipmentClassification;
}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/StationInfo.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/StationInfo.java
index b7561b0..7bcb042 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/StationInfo.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/StationInfo.java
@@ -1,6 +1,8 @@
package com.ruoyi.integration.drainage.model;
+import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@@ -242,12 +244,12 @@
* 报装电源容量
*/
@JsonProperty("Capacity")
- private Double capacity;
+ private BigDecimal capacity;
/**
* 站点额定总功率
*/
@JsonProperty("RatedPower")
- private Double ratedPower;
+ private BigDecimal ratedPower;
/**
* 峰谷分时
* 0:否
@@ -273,7 +275,7 @@
* 充换电站建设面积
*/
@JsonProperty("StationArea")
- private Double stationArea;
+ private BigDecimal stationArea;
/**
* 充换电站人工值守
* 0:无
@@ -369,4 +371,7 @@
*/
@JsonProperty("RecordUniqueNo")
private String recordUniqueNo;
+
+
+
}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/SuperviseQueryOperatorInfoResultPage.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/SuperviseQueryOperatorInfoResultPage.java
new file mode 100644
index 0000000..6f311bf
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/SuperviseQueryOperatorInfoResultPage.java
@@ -0,0 +1,36 @@
+package com.ruoyi.integration.drainage.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Null;
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/2/19 9:39
+ */
+@Data
+public class SuperviseQueryOperatorInfoResultPage {
+ /**
+ * 查询页码
+ */
+ @JsonProperty("PageNo")
+ private Integer pageNo;
+ /**
+ * 每页数量
+ */
+ @JsonProperty("PageCount")
+ private Integer pageCount;
+ /**
+ * 每页数量
+ */
+ @JsonProperty("ItemSize")
+ private Integer itemSize;
+ /**
+ * 数据
+ */
+ @JsonProperty("OperatorInfos")
+ private List<SuperviseQueryOperatorInfoResult> operatorInfos;
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/enu/EquipmentTypeEnum.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/enu/EquipmentTypeEnum.java
index c5630c6..2ce02cc 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/enu/EquipmentTypeEnum.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/enu/EquipmentTypeEnum.java
@@ -10,7 +10,9 @@
ALTERNATING_CURRENT(2, "交流设备"),
ALTERNATING_DIRECT(3, "交直流一体设备"),
WIRELESS_DEVICE(4, "无线设备"),
- OTHER(5, "其他")
+ OTHER(5, "其他"),
+ ORDER(6, "有序"),
+ V2G(7, "V2G")
;
--
Gitblit v1.7.1