无关风月
2025-04-10 424533e2e08a94554e3cd9f434142036c343e705
监管平台
6个文件已修改
248 ■■■■■ 已修改文件
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/Site.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TChargingGunMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECSuperviseUtil.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/SupStationInfoResult.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/util/TCECCJianGuanontroller.java 117 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/Site.java
@@ -286,11 +286,12 @@
    @ApiModelProperty(value = "2.0修改字段-停车费免费时长 单位分钟")
    private Integer parkFeeFree;
    /**
     * 停车费类型
     * 报装类型
     */
    @TableField("business_expand_type")
    @ApiModelProperty(value = "2.0修改字段-报装类型,是否独立报装:0:否1:是")
    private Integer businessExpandType;
    /**
     * 电费类型
     */
@@ -329,10 +330,10 @@
    @ApiModelProperty(value = "2.0修改字段-充换电站方位 1:地面-停车场2:地面-路侧3:地下停车4:立体式停车楼")
    private Integer stationOrientation;
    /**
     *充换电站方位
     *充换电站建设面积
     */
    @TableField("station_area")
    @ApiModelProperty(value = "2.0修改字段-充换电站方位 充换电站建设面积")
    @ApiModelProperty(value = "2.0修改字段-充换电站建设面积 充换电站建设面积")
    private BigDecimal stationArea;
    /**
     *充换电站人
@@ -349,15 +350,13 @@
    @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:有")
@@ -430,11 +429,24 @@
    @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("payment")
    @ApiModelProperty(value = "2.0修改字段-支付方式 1刷卡 2线上 3现金")
    private Integer payment;
    /**
     * 是否支持预约
     */
    @TableField("supportOrder")
    @ApiModelProperty(value = "2.0修改字段-是否支持预约 0不支持1支持")
    private Integer supportOrder;
//    /**
//     * 换电设备信息
//     */
ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TChargingGunMapper.xml
@@ -34,9 +34,8 @@
    </sql>
    <select id="pageList" resultType="com.ruoyi.chargingPile.api.vo.TChargingGunVO">
        SELECT
        tcg.id, tcg.code, tcg.site_id, tcg.partner_id, tcg.charging_pile_id, tcg.`name`, tcg.`type`, tcg.status, tcg.charge_mode, tcg.accounting_strategy_id,
        tcg.upper_rated_voltage, tcg.lower_limit_of_rated_voltage, tcg.rated_current, tcg.rated_power, tcg.parking_number, tcg.parking_status,
        tcg.parking_lock_state, tcg.national_standard, tcg.remark, tcg.create_time, tcg.del_flag,tas.name AS strategyName
            tcg.*,
        tas.name AS strategyName
        FROM t_charging_gun tcg
        LEFT JOIN t_accounting_strategy tas ON tas.id = tcg.accounting_strategy_id
        <where>
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECController.java
@@ -2122,85 +2122,7 @@
    }
    /**
     * 推送充换电站信息
     * @param id
     * @return
     */
    @PostMapping("/supervise_notification_station_info")
    public R superviseNotificationStationInfo(@RequestParam("id") Integer id){
        String serviceTel = systemConfigurationClient.getServerPhone().getData();
        Site site = siteClient.getSiteAll().getData().stream().filter(e -> e.getId().equals(id)).findFirst().orElse(new Site());
        List<TChargingPile> tChargingPiles = chargingPileClient.getChargingPileBySiteIds(Collections.singletonList(site.getId())).getData();
        List<Integer> collect1 = tChargingPiles.stream().map(TChargingPile::getId).collect(Collectors.toList());
        List<TChargingGun> chargingGunList = chargingGunClient.getChargingGunByChargingPileIds(collect1).getData();
        SupStationInfo supStationInfo = new SupStationInfo();
        supStationInfo.setStationID(site.getId().toString());
        supStationInfo.setStationUniqueNumber(site.getDistrictsCode() + "906171535" + site.getId());
        supStationInfo.setOperatorID("906171535");
        supStationInfo.setEquipmentOwnerID("906171535");
        supStationInfo.setStationName(site.getName());
        supStationInfo.setCountryCode(site.getCountryCode());
        supStationInfo.setAreaCode(site.getCityCode());
        supStationInfo.setAddress(site.getAddress());
        supStationInfo.setAreaCodeCountryside(site.getAreaCodeCountryside());
        supStationInfo.setStationTel(site.getPhone());
        supStationInfo.setServiceTel(serviceTel);
        supStationInfo.setStationClassification(site.getStationClassification());
        supStationInfo.setGeneralApplicationType(site.getGeneralApplicationType());
        supStationInfo.setStationType(site.getSiteType());
        supStationInfo.setStationStatus(site.getStatus());
        supStationInfo.setParkNums(site.getParkingSpace());
        supStationInfo.setStationLat(new BigDecimal(site.getLat()).setScale(6, RoundingMode.DOWN));
        supStationInfo.setStationLng(new BigDecimal(site.getLon()).setScale(6, RoundingMode.DOWN));
        supStationInfo.setSiteGuide(site.getGuide());
        supStationInfo.setConstruction(site.getConstructionSite() == 0 ? ConstructionEnum.OTHER.getType() : site.getConstructionSite());
        supStationInfo.setPictures(StringUtils.isNotEmpty(site.getImgUrl()) ? Arrays.asList(site.getImgUrl().split(",")) : new ArrayList<>());
        supStationInfo.setMatchCars(site.getVehicleDescription());
        if (org.springframework.util.StringUtils.hasLength(site.getSwapMatchCars())){
            supStationInfo.setSwapMatchCars(Arrays.asList(site.getSwapMatchCars().split(",")));
        }
        supStationInfo.setBusineHours(site.getStartServiceTime());
        supStationInfo.setRoundTheClock(site.getRoundTheClock());
        supStationInfo.setParkType(site.getParkType());
        supStationInfo.setParkFee("{\"rules\":"+site.getParkFee()+","+"\"freeDuration\":"+site.getParkFeeFree()+"}");
        supStationInfo.setElectricityType(site.getElectricityType());
        supStationInfo.setBusinessExpandType(site.getBusinessExpandType());
        supStationInfo.setCapacity(site.getCapacity());
        supStationInfo.setRatedPower(site.getRatedPower());
        supStationInfo.setPeriodFee(site.getPeriodFee());
        supStationInfo.setOfficialRunTime(site.getOfficialRunTime());
        supStationInfo.setStationOrientation(site.getStationOrientation());
        supStationInfo.setStationArea(site.getStationArea());
        supStationInfo.setHavePerson(site.getHavePerson());
        supStationInfo.setVideoMonitor(site.getVideoMonitor());
        if (StringUtils.isNotEmpty(site.getSupportingFacilities())){
            String[] split = site.getSupportingFacilities().split(",");
            List<Integer> collect = Arrays.stream(split).map(Integer::parseInt).collect(Collectors.toList());
            supStationInfo.setSupportingFacilities(collect);
        }
        supStationInfo.setPrinterFlag(site.getPrinterFlag());
        supStationInfo.setBarrierFlag(site.getBarrierFlag());
        supStationInfo.setParkingLockFlag(site.getParkingLockFlag());
        supStationInfo.setEquipmentInfos(buildEquipmentInfo(site.getId(), tChargingPiles, chargingGunList));
//        supStationInfo.setSwapEquipmentInfos();
        supStationInfo.setElectricityFee("{"+site.getElectricityFee()+"}");
        supStationInfo.setEquipmentOwnerName(site.getEquipmentOwnerName());
        supStationInfo.setResidentNo(site.getResidentNo());
        supStationInfo.setSupplyType(site.getSupplyType());
        supStationInfo.setWattHourMeterNo(site.getWattHourMeterNo());
        supStationInfo.setForwardPower(site.getForwardPower());
        supStationInfo.setServiceFee("{"+site.getServiceFee()+"}");
        supStationInfo.setRecordUniqueNo(site.getRecordUniqueNo());
        BaseResult baseResult = new BaseResult();
        SupStationInfoResult supStationInfoResult = new SupStationInfoResult();
        supStationInfoResult.setSupStationInfo(supStationInfo);
        tcecSuperviseUtil.superviseNotificationStationInfo(supStationInfoResult);
        return R.ok(baseResult);
    }
//
//
//    /**
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECSuperviseUtil.java
@@ -6,6 +6,9 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.nacos.common.utils.JacksonUtils;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.MapperFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.ruoyi.common.core.utils.HttpUtils;
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.integration.drainage.model.*;
@@ -204,11 +207,22 @@
        baseRequest.setOperatorID(operator.getOurOperatorId());
        baseRequest.setTimeStamp(timeStamp);
        baseRequest.setSeq("0001");
        String jsonString = JacksonUtils.toJson(o);
        // 使用 Jackson 转换为 JSON
        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.enable(MapperFeature.USE_ANNOTATIONS); // 启用注解支持
        String jsonString = null;
        try {
            jsonString = objectMapper.writeValueAsString(o);
        } catch (Exception e) {
            e.printStackTrace();
        }
        String encrypt = AesEncryption.encrypt(jsonString, DataSecret, DataSecretIV);
        baseRequest.setData(encrypt);
        baseRequest.setOperator(operator);
//        baseRequest.setSig(buildSign(baseRequest));
        SequenceGenerator generator = new SequenceGenerator();
        String nextSequence = generator.getNextSequence();
        String hmacMD5 = HMacMD5Util.getHMacMD5(OperatorID,timeStamp+"", encrypt,nextSequence,SigSecret);
        baseRequest.setSig(hmacMD5);
        String request_json = JacksonUtils.toJson(baseRequest);
        post.body(request_json);
        log.info("推送三方平台请求地址:" + post.getUrl());
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/SupStationInfoResult.java
@@ -12,7 +12,7 @@
 */
@Data
public class SupStationInfoResult {
    private SupStationInfo SupStationInfo;
    private StationInfo SupStationInfo;
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/util/TCECCJianGuanontroller.java
@@ -2128,73 +2128,68 @@
    public R superviseNotificationStationInfo(@RequestParam("id") Integer id){
        String serviceTel = systemConfigurationClient.getServerPhone().getData();
        Site site = siteClient.getSiteAll().getData().stream().filter(e -> e.getId().equals(id)).findFirst().orElse(new Site());
        List<Site> sites = new ArrayList<>();
        sites.add(site);
        List<TChargingPile> tChargingPiles = chargingPileClient.getChargingPileBySiteIds(Collections.singletonList(site.getId())).getData();
        List<Integer> collect1 = tChargingPiles.stream().map(TChargingPile::getId).collect(Collectors.toList());
        List<TChargingGun> chargingGunList = chargingGunClient.getChargingGunByChargingPileIds(collect1).getData();
        SupStationInfo supStationInfo = new SupStationInfo();
        supStationInfo.setStationID(site.getId().toString());
        supStationInfo.setStationUniqueNumber(site.getDistrictsCode() + "906171535" + site.getId());
        supStationInfo.setOperatorID("906171535");
        supStationInfo.setEquipmentOwnerID("906171535");
        supStationInfo.setStationName(site.getName());
        supStationInfo.setCountryCode(site.getCountryCode());
        supStationInfo.setAreaCode(site.getCityCode());
        supStationInfo.setAddress(site.getAddress());
        supStationInfo.setAreaCodeCountryside(site.getAreaCodeCountryside());
        supStationInfo.setStationTel(site.getPhone());
        List<TParkingLot> parkingLots = parkingLotClient.getAllParkingLot().getData();
        QueryStationsInfoResult queryStationsInfoResult = new QueryStationsInfoResult();
        queryStationsInfoResult.setStationInfos(buildSite(parkingLots, sites));
        for (StationInfo stationInfo : queryStationsInfoResult.getStationInfos()) {
            stationInfo.setStationClassification(stationInfo.getStationClassification()==null?1:stationInfo.getStationClassification());
            stationInfo.setGeneralApplicationType(stationInfo.getGeneralApplicationType()==null?1:stationInfo.getGeneralApplicationType());
            stationInfo.setSiteGuide(org.springframework.util.StringUtils.hasLength(stationInfo.getSiteGuide()) ?stationInfo.getSiteGuide():"站点引导");
            if (stationInfo.getConstruction()!=null){
                stationInfo.setConstruction(stationInfo.getConstruction() == 0 ? ConstructionEnum.OTHER.getType() : stationInfo.getConstruction());
            }else{
                stationInfo.setConstruction(255);
            }
            stationInfo.setRoundTheClock(stationInfo.getRoundTheClock()==null?1:stationInfo.getRoundTheClock());
            stationInfo.setParkType(stationInfo.getParkType()==null?1:stationInfo.getParkType());
            stationInfo.setElectricityFee("{\"00:00:00-00:30:00\":\"0.4901\",\"00:00:30-01:00:00\":\"0.1234\"}");
            stationInfo.setServiceFee("{"+"\"00:00:00-00:30:00\":\"0.4901\",\"00:00:30-01:00:00\":\"0.1234\""+"}");
            stationInfo.setElectricityType(stationInfo.getElectricityType()==null?1:stationInfo.getElectricityType());
            stationInfo.setBusinessExpandType(stationInfo.getBusinessExpandType()==null?1:stationInfo.getBusinessExpandType());
            stationInfo.setCapacity(stationInfo.getCapacity()==null?new BigDecimal("1.0000"):stationInfo.getCapacity());
            stationInfo.setRatedPower(stationInfo.getCapacity()==null?new BigDecimal("40.0000"):stationInfo.getCapacity());
            stationInfo.setPeriodFee(1);
            stationInfo.setOfficialRunTime(org.springframework.util.StringUtils.hasLength(stationInfo.getOfficialRunTime())?stationInfo.getOfficialRunTime():"2025-01-01");
            stationInfo.setVideoMonitor(stationInfo.getVideoMonitor()==null?1:stationInfo.getVideoMonitor());
            int i = 0;
            for (EquipmentInfo equipmentInfo : stationInfo.getEquipmentInfos()) {
                i++;
                equipmentInfo.setManufacturerID("906171534");
                equipmentInfo.setEquipmentUniqueNumber(org.springframework.util.StringUtils.hasLength(equipmentInfo.getEquipmentUniqueNumber())?equipmentInfo.getEquipmentUniqueNumber():"OIX123"+i);
                equipmentInfo.setManufacturerName(org.springframework.util.StringUtils.hasLength(equipmentInfo.getManufacturerName())?equipmentInfo.getManufacturerName():"生产商");
                equipmentInfo.setEquipmentModel(org.springframework.util.StringUtils.hasLength(equipmentInfo.getEquipmentModel())?equipmentInfo.getEquipmentModel():"DEVICE"+i);
                equipmentInfo.setProductionDate(org.springframework.util.StringUtils.hasLength(equipmentInfo.getProductionDate())?equipmentInfo.getProductionDate():"2024-01-01");
                equipmentInfo.setEquipmentType(equipmentInfo.getEquipmentType()==null?1:equipmentInfo.getEquipmentType());
                for (ConnectorInfo connectorInfo : equipmentInfo.getConnectorInfos()) {
                    connectorInfo.setEquipmentClassification(connectorInfo.getEquipmentClassification()==null?1:connectorInfo.getEquipmentClassification());
                    connectorInfo.setVoltageUpperLimits(connectorInfo.getConstantVoltageUpperLimits()==null?new BigDecimal("1.0000"):connectorInfo.getConstantVoltageUpperLimits());
                    connectorInfo.setVoltageLowerLimits(connectorInfo.getConstantVoltageLowerLimits()==null?new BigDecimal("1.0000"):connectorInfo.getConstantVoltageLowerLimits());
                    connectorInfo.setCurrent(connectorInfo.getCurrent()==null?1:connectorInfo.getCurrent());
                    connectorInfo.setPower(connectorInfo.getPower()==null?new BigDecimal("1.0000"):connectorInfo.getPower());
                    connectorInfo.setNationalStandard(connectorInfo.getNationalStandard()==null?1:connectorInfo.getNationalStandard());
                    connectorInfo.setAuxPower(connectorInfo.getAuxPower()==null?1:connectorInfo.getAuxPower());
                    connectorInfo.setOpreateStatus(connectorInfo.getOpreateStatus()==null?50:connectorInfo.getOpreateStatus());
                }
                equipmentInfo.setPower(equipmentInfo.getPower()==null?new BigDecimal("1.0000"):equipmentInfo.getPower());
                equipmentInfo.setEquipmentClassification(equipmentInfo.getEquipmentClassification()==null?1:equipmentInfo.getEquipmentClassification());
        supStationInfo.setServiceTel(serviceTel);
        supStationInfo.setStationClassification(site.getStationClassification());
        supStationInfo.setGeneralApplicationType(site.getGeneralApplicationType());
        supStationInfo.setStationType(site.getSiteType());
        supStationInfo.setStationStatus(site.getStatus());
        supStationInfo.setParkNums(site.getParkingSpace());
        supStationInfo.setStationLat(new BigDecimal(site.getLat()).setScale(6, RoundingMode.DOWN));
        supStationInfo.setStationLng(new BigDecimal(site.getLon()).setScale(6, RoundingMode.DOWN));
        supStationInfo.setSiteGuide(site.getGuide());
        supStationInfo.setConstruction(site.getConstructionSite() == 0 ? ConstructionEnum.OTHER.getType() : site.getConstructionSite());
        supStationInfo.setPictures(StringUtils.isNotEmpty(site.getImgUrl()) ? Arrays.asList(site.getImgUrl().split(",")) : new ArrayList<>());
            }
            stationInfo.setEquipmentOwnerName("明星新能源");
            stationInfo.setResidentNo("A1234");
            stationInfo.setSupplyType(stationInfo.getSupplyType()==null?1:stationInfo.getSupplyType());
            stationInfo.setWattHourMeterNo(org.springframework.util.StringUtils.hasLength(stationInfo.getWattHourMeterNo())?stationInfo.getWattHourMeterNo():UUID.randomUUID().toString().replaceAll("-", ""));
            stationInfo.setForwardPower(stationInfo.getForwardPower()==null?"1.3654":stationInfo.getForwardPower());
            String uuid = UUID.randomUUID().toString();
            String randomString = uuid.replaceAll("-", ""); // 去除'-'
            stationInfo.setRecordUniqueNo(randomString);
        supStationInfo.setMatchCars(site.getVehicleDescription());
        if (org.springframework.util.StringUtils.hasLength(site.getSwapMatchCars())){
            supStationInfo.setSwapMatchCars(Arrays.asList(site.getSwapMatchCars().split(",")));
        }
        supStationInfo.setBusineHours(site.getStartServiceTime());
        supStationInfo.setRoundTheClock(site.getRoundTheClock());
        supStationInfo.setParkType(site.getParkType());
        supStationInfo.setParkFee("{\"rules\":"+site.getParkFee()+","+"\"freeDuration\":"+site.getParkFeeFree()+"}");
        supStationInfo.setElectricityType(site.getElectricityType());
        supStationInfo.setBusinessExpandType(site.getBusinessExpandType());
        supStationInfo.setCapacity(site.getCapacity());
        supStationInfo.setRatedPower(site.getRatedPower());
        supStationInfo.setPeriodFee(site.getPeriodFee());
        supStationInfo.setOfficialRunTime(site.getOfficialRunTime());
        supStationInfo.setStationOrientation(site.getStationOrientation());
        supStationInfo.setStationArea(site.getStationArea());
        supStationInfo.setHavePerson(site.getHavePerson());
        supStationInfo.setVideoMonitor(site.getVideoMonitor());
        if (StringUtils.isNotEmpty(site.getSupportingFacilities())){
            String[] split = site.getSupportingFacilities().split(",");
            List<Integer> collect = Arrays.stream(split).map(Integer::parseInt).collect(Collectors.toList());
            supStationInfo.setSupportingFacilities(collect);
        }
        supStationInfo.setPrinterFlag(site.getPrinterFlag());
        supStationInfo.setBarrierFlag(site.getBarrierFlag());
        supStationInfo.setParkingLockFlag(site.getParkingLockFlag());
        supStationInfo.setEquipmentInfos(buildEquipmentInfo(site.getId(), tChargingPiles, chargingGunList));
//        supStationInfo.setSwapEquipmentInfos();
        supStationInfo.setElectricityFee("{"+site.getElectricityFee()+"}");
        supStationInfo.setEquipmentOwnerName(site.getEquipmentOwnerName());
        supStationInfo.setResidentNo(site.getResidentNo());
        supStationInfo.setSupplyType(site.getSupplyType());
        supStationInfo.setWattHourMeterNo(site.getWattHourMeterNo());
        supStationInfo.setForwardPower(site.getForwardPower());
        supStationInfo.setServiceFee("{"+site.getServiceFee()+"}");
        supStationInfo.setRecordUniqueNo(site.getRecordUniqueNo());
        BaseResult baseResult = new BaseResult();
        SupStationInfoResult supStationInfoResult = new SupStationInfoResult();
        supStationInfoResult.setSupStationInfo(supStationInfo);
        supStationInfoResult.setSupStationInfo(queryStationsInfoResult.getStationInfos().get(0));
        tcecSuperviseUtil.superviseNotificationStationInfo(supStationInfoResult);
        return R.ok(baseResult);
    }