无关风月
2025-03-16 eaf85b386cf8103755a529b33d8dcc24eeff8f73
监管平台
1个文件已添加
9个文件已修改
676 ■■■■ 已修改文件
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/Site.java 235 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TChargingGun.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TChargingPile.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java 234 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/ConnectorInfo.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/EquipmentInfo.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/StationInfo.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/SuperviseQueryOperatorInfoResultPage.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/enu/EquipmentTypeEnum.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
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")
    ;