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; } 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; } 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; } 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(); } 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; } // // // /** 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; } 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; } 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; } ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/SuperviseQueryOperatorInfoResultPage.java
New file @@ -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; } 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") ;