From 6141ee0dc9f1834713b25132a6f5f28fee2e74fb Mon Sep 17 00:00:00 2001 From: "YAS\\29473" <2947326429@qq.com> Date: Fri, 31 Oct 2025 13:39:35 +0800 Subject: [PATCH 1/2] =?UTF-8?q?update=20=E5=86=85=E8=92=99=E5=8F=A4?= =?UTF-8?q?=E6=8E=A8=E9=80=81=E6=95=B0=E6=8D=AE=E5=AD=97=E6=AE=B5=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E6=9B=B4=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/NMG/NMGSupConnectorInfo.java | 165 ++++++++++++++ .../domain/NMG/NMGSupEquipmentInfo.java | 215 ++++++++++++++++++ .../domain/NMG/NMGSupStationInfo.java | 182 +++++++++++++++ .../impl/NeiMengGuPlatformServiceImpl.java | 157 +++++++++++-- 4 files changed, 700 insertions(+), 19 deletions(-) create mode 100644 jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/NMG/NMGSupConnectorInfo.java create mode 100644 jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/NMG/NMGSupEquipmentInfo.java create mode 100644 jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/NMG/NMGSupStationInfo.java diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/NMG/NMGSupConnectorInfo.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/NMG/NMGSupConnectorInfo.java new file mode 100644 index 000000000..0ae66ae2d --- /dev/null +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/NMG/NMGSupConnectorInfo.java @@ -0,0 +1,165 @@ +package com.jsowell.thirdparty.platform.domain.NMG; + +import com.alibaba.fastjson2.annotation.JSONField; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +/** + * 内蒙古-修正-充电设备接口信息 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class NMGSupConnectorInfo{ + + + /** + * 充电设备接口编码 Y + * 充电设备接口编码,同一对接平台内唯一 + */ + @JSONField(name = "ConnectorID") + private String connectorID; + + /** + * 设备接口分类 + * 1:车辆充电设备接口 + * 2:换电站内的电池箱 充电设备接口 + */ + @JSONField(name = "EquipmentClassification") + private Integer equipmentClassification; + + /** + * 充电设备接口名称 N + */ + @JSONField(name = "ConnectorName") + private String connectorName; + + /** + * 充电设备接口类型 Y + * 1:家用插座(模式2) + * 2:交流接口插座(模式3,连接方式B ) + * 3:交流接口插头(带枪线,模式3,连接方式C) + * 4:直流接口枪头(带枪线,模式4) + */ + @JSONField(name = "ConnectorType") + private Integer connectorType; + + /** + * 枪口状态 + */ + @JSONField(name = "Status") + private Integer status; + + + /** + *恒功率电压上限 + */ + @JSONField(name = "ConstantVoltageUpperLimits") + private Integer constantVoltageUpperLimits; + + /** + *恒功率电压下限 + */ + @JSONField(name = "ConstantVoltageLowerLimits") + private Integer constantVoltageLowerLimits; + + + /** + *恒功率电流上限 + */ + @JSONField(name = "ConstantCurrentUpperLimits") + private Integer ConstantCurrentUpperLimits; + + /** + * 额 定 电 流 上限 + */ + @JSONField(name = "CurrentUpperLimits") + private Integer currentUpperLimits; + + /** + * 额 定 电 流 下限 + */ + @JSONField(name = "CurrentLowerLimits") + private Integer currentLowerLimits; + + /** + *恒功率电流下限 + */ + @JSONField(name = "ConstantCurrentLowerLimits") + private Integer ConstantCurrentLowerLimits; + + /** + * 额定功率(单位:kW) Y + */ + @JSONField(name = "Power") + private BigDecimal power; + + /** + * 接口功率类型 + */ + @JSONField(name = "PowerType") + private Integer powerType; + + /** + * 车位号 N + * 停车场车位编号 + */ + @JSONField(name = "ParkNo") + private String parkNo; + + + /** + * 运营状态 + * 0-未知 + * 1-建设中 + * 5-关闭下线 + * 6-维护中 + * 50-正常使用 + */ + @JSONField(name = "OperateStatus") + private Integer operateStatus; + + /** + * 运营状态 + * 0-未知 + * 1-建设中 + * 5-关闭下线 + * 6-维护中 + * 50-正常使用 + */ + @JSONField(name = "OpreateStatus") + private Integer opreateStatus; + + /** + * 国家标准 + */ + @JSONField(name = "NationalStandard") + private Integer nationalStandard; + + /** + * 辅助电源 + */ + @JSONField(name = "AuxPower") + private Integer auxPower; + + /** + * 运营时间 + */ + @JSONField(name = "OpreateHours") + private String opreateHours; + + + @JSONField(name = "VoltageUpperLimits") + private BigDecimal voltageUpperLimits; + + + @JSONField(name = "VoltageLowerLimits") + private BigDecimal voltageLowerLimits; + + @JSONField(name = "Current") + private BigDecimal current; + +} diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/NMG/NMGSupEquipmentInfo.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/NMG/NMGSupEquipmentInfo.java new file mode 100644 index 000000000..e8bcb5d32 --- /dev/null +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/NMG/NMGSupEquipmentInfo.java @@ -0,0 +1,215 @@ +package com.jsowell.thirdparty.platform.domain.NMG; + +import com.alibaba.fastjson2.annotation.JSONField; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.util.List; + +/** + * 内蒙古-修正-充电设备信息 + */ +@Builder +@AllArgsConstructor +@NoArgsConstructor +@Data +public class NMGSupEquipmentInfo { + /** + * 设备编码 Y + * 设备唯一编码,对同一对接平台,保证唯一 + */ + @JSONField(name = "EquipmentID") + private String equipmentID; + + /** + * 设备唯一编码 + *设备生产商组织机构代 码 9 位+设备出厂唯一 编码 + */ + @JSONField(name = "EquipmentUniqueNumber") + private String equipmentUniqueNumber; + + /** + * 设备生产商组织机构代码 Y + */ + @JSONField(name = "ManufacturerID") + private String manufacturerID; + + /** + * 设备生产商名称 + */ + @JSONField(name = "ManufacturerName") + private String manufacturerName; + + /** + * 设备型号 N + * 由设备生厂商定义的设备型号 + */ + @JSONField(name = "EquipmentModel") + private String equipmentModel; + + /** + * 设备名称 N + */ + @JSONField(name = "EquipmentName") + private String equipmentName; + + /** + * 设备生产日期 N + * YYYY-MM-DD + */ + @JSONField(name = "ProductionDate") + private String productionDate; + + /** + * 建设时间 Y + * YYYY-MM-DD + */ + @JSONField(name = "ConstructionTime") + private String constructionTime; + + /** + * 设备类型(1-直流设备;2-交流设备;3-交直流一体设备) Y + */ + @JSONField(name = "EquipmentType") + private Integer equipmentType; + + /** + * 设备分类 + * 1:车辆充电设备 2:换电站内的电池箱 充电设备 + */ + @JSONField(name = "EquipmentClassification") + private Integer equipmentClassification; + + /** + * 设备状态 Y + * 0:未知 + * 1:建设中 + * 5:关闭下线 + * 6:维护中 + * 50:正常使用 + */ + @JSONField(name = "EquipmentStatus") + private Integer equipmentStatus; + + /** + * 充电设备用途 + * 1:公用; + * 2:专用; + * 3:个人分时共享; + * 4:限制类公用; + * 9:其他 + */ + @JSONField(name = "EquipmentApplication") + private String equipmentApplication; + + /** + * 额定功率(单位:kW) Y + */ + @JSONField(name = "EquipmentPower") + private BigDecimal equipmentPower; + + /** + * 新国标(0-否;1-是) Y + * 是否新国标 + */ + @JSONField(name = "NewNationalStandard") + private Integer newNationalStandard; + + /** + * 充电设备接口列表 Y + * 该充电设备所有的充电设备接口的信息对象集合 + */ + @JSONField(name = "ConnectorInfos") + private List connectorInfos; + + /** + * 充电设备经度 N + * GCJ-02坐标系 + */ + @JSONField(name = "EquipmentLng") + private BigDecimal equipmentLng; + + /** + * 充电设备纬度 N + * GCJ-02坐标系 + */ + @JSONField(name = "EquipmentLat") + private BigDecimal equipmentLat; + + /** + * 是否支持VIN码识别(0-否;1-是) Y + */ + @JSONField(name = "VinFlag") + private Integer vinFlag; + + /** + * 设备总功率 + */ + @JSONField(name = "Power") + private BigDecimal power; + + /** + * 设备开通时间 + */ + @JSONField(name = "OpenDate") + private String openDate; + + /** + * 设备投资金额 + */ + @JSONField(name = "EquipmentInvestment") + private BigDecimal equipmentInvestment; + + /** + * 设备出厂序号 + */ + @JSONField(name = "ProductSN") + private String productSN; + + /** + * 是否支持自动识别VIN码 + */ + @JSONField(name = "SVIN") + private Integer svin; + + /** + * 是否支持有序充电 + */ + @JSONField(name = "SautoPower") + private Integer sautoPower; + + /** + * 额定电压上限 + */ + @JSONField(name = "VoltageUpperLimits") + private BigDecimal voltageUpperLimits; + + /** + * 额定电压下限 + */ + @JSONField(name = "VoltageLowerLimits") + private BigDecimal voltageLowerLimits; + + /** + * 额定电流 + */ + @JSONField(name = "Current") + private BigDecimal current; + + + /** + * 站点额定功率 + */ + private BigDecimal stationRatedPower; + + + /** + *报装户号 + * 如整个站按一个户号立户的,则站内所以设备的户号为同一个,如果是桩立户,则为桩实际立户户号。20 字符。 + */ + private String ConsNo; + +} diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/NMG/NMGSupStationInfo.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/NMG/NMGSupStationInfo.java new file mode 100644 index 000000000..b31197aa4 --- /dev/null +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/NMG/NMGSupStationInfo.java @@ -0,0 +1,182 @@ +package com.jsowell.thirdparty.platform.domain.NMG; + +import com.alibaba.fastjson2.annotation.JSONField; + +import com.jsowell.pile.thirdparty.EquipmentInfo; +import com.jsowell.thirdparty.platform.common.StationInfo; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.List; + +/** + * 内蒙古平台站点信息 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@SuperBuilder +public class NMGSupStationInfo extends StationInfo { + /** + * 充换电站唯一编码 + * 行政区划代码,区县地区码(6位)+运营商ID(9位)+充换电站ID + */ + @JSONField(name = "StationUniqueNumber") + private String stationUniqueNumber; + + /** + * 充换电站所在县以下行政区划代码 + * 填写内容为12位行政区划代码,1-6位为县及以上行政区划代码,7-12位为县以下区划代码; + * 参考地址:http://www.stats.gov.cn/sj/tjbz/tjyqhdmhcxhfdm/2022/ + */ + @JSONField(name = "AreaCodeCountryside") + private String areaCodeCountryside; + + + @JSONField(name = "TownCode") + private String townCode; + + /** + * 站点分类 + * 1:充电站 + * 2:换电站 + * 3:充换电一体站 + */ + @JSONField(name = "StationClassification") + private Integer stationClassification; + + /** + * 7*24小时营业 + * 0:否 + * 1:是 + */ + @JSONField(name = "RoundTheClock") + private Integer roundTheClock; + + /** + * 停车费类型 + * 0:免费 + * 1:不免费 + * 2:限时免费停车 + * 3:充电限时减免 + * 255:参考场地实际收费标准 + */ + @JSONField(name = "ParkType") + private String parkType; + + /** + * 电费类型 + * 1:商业用电 + * 2:普通工业用电 + * 3:大工业用电 + * 4:其它用电 + */ + @JSONField(name = "ElectricityType") + private Integer electricityType; + + /** + * 报装类型 + * 是否独立报装: + * 0:否 + * 1:是 + */ + @JSONField(name = "BusinessExpandType") + private Integer businessExpandType; + + /** + * 正式投运时间 + */ + @JSONField(name = "OfficialRunTime") + private String officialRunTime; + + /** + * 建站时间 + */ + @JSONField(name = "BuildTime") + private String buildTime; + + /** + * 充换电站方位 + * 1:地面-停车场 + * 2:地面-路侧 + * 3:地下停车场 + * 4:立体式停车楼 + */ + @JSONField(name = "StationOrientation") + private String stationOrientation; + + /** + * 充换电站建筑面积 + * 该充电场站建设用 地面积 + */ + @JSONField(name = "StationArea") + private String stationArea; + + /** + * 充换电站人工值守 + * 0:无 + * 1:有 + */ + @JSONField(name = "HavePerson") + private String havePerson; + + /** + * 周边配套设施 + * 1:卫生间 + * 2:便利店 + * 3:餐厅 + * 4:休息室 + * 5:雨棚 + */ + @JSONField(name = "SupportingFacilities") + private String supportingFacilities; + + /** + * 设备所属方名称 + */ + @JSONField(name = "EquipmentOwnerName") + private String equipmentOwnerName; + + /** + * 供电类型 + * 1:直供电 2:转供电 + */ + @JSONField(name = "SupplyType") + private Integer supplyType; + + /** + * 供电局用户编号 + */ + @JSONField(name = "ResidentNo") + private String residentNo; + + /** + * 表号 + */ + @JSONField(name = "WattHourMeterNo") + private String wattHourMeterNo; + + /** + * 外电功率 + */ + @JSONField(name = "ForwardPower") + private String forwardPower; + + /** + * 充电站全省 唯一备案号 + */ + @JSONField(name = "RecordUniqueNo") + private String recordUniqueNo; + + private List PolicyInfos; + + + /** + * 充电设备信息列表 Y + * 该充电站所有充电设备信息对象集合 + */ + @JSONField(name = "EquipmentInfos") + private List equipmentInfos; +} diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/NeiMengGuPlatformServiceImpl.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/NeiMengGuPlatformServiceImpl.java index 445a16f98..73613abf0 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/NeiMengGuPlatformServiceImpl.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/NeiMengGuPlatformServiceImpl.java @@ -12,34 +12,28 @@ import com.jsowell.common.constant.CacheConstants; import com.jsowell.common.constant.Constants; import com.jsowell.common.core.domain.ykc.RealTimeMonitorData; import com.jsowell.common.core.redis.RedisCache; +import com.jsowell.common.enums.lianlian.LianLianPileStatusEnum; import com.jsowell.common.enums.thirdparty.BusinessInformationExchangeEnum; -import com.jsowell.common.enums.thirdparty.ThirdPartyOperatorIdEnum; import com.jsowell.common.enums.thirdparty.ThirdPlatformTypeEnum; -import com.jsowell.common.enums.ykc.BillingTimeTypeEnum; -import com.jsowell.common.enums.ykc.OrderStatusEnum; -import com.jsowell.common.enums.ykc.PileConnectorDataBaseStatusEnum; -import com.jsowell.common.enums.ykc.ReturnCodeEnum; +import com.jsowell.common.enums.ykc.*; import com.jsowell.common.exception.BusinessException; import com.jsowell.common.util.*; import com.jsowell.common.util.bean.BeanUtils; -import com.jsowell.pile.domain.OrderBasicInfo; -import com.jsowell.pile.domain.OrderDetail; -import com.jsowell.pile.domain.ThirdPartyPlatformConfig; -import com.jsowell.pile.domain.ThirdPartyStationRelation; +import com.jsowell.pile.domain.*; import com.jsowell.pile.dto.PushRealTimeInfoDTO; -import com.jsowell.pile.dto.QueryEquipChargeStatusDTO; import com.jsowell.pile.dto.QueryOperatorInfoDTO; import com.jsowell.pile.dto.QueryStationInfoDTO; import com.jsowell.pile.service.*; -import com.jsowell.pile.thirdparty.CommonParamsDTO; -import com.jsowell.pile.thirdparty.EquipmentInfo; +import com.jsowell.pile.thirdparty.*; +import com.jsowell.thirdparty.platform.domain.NMG.NMGSupConnectorInfo; +import com.jsowell.thirdparty.platform.domain.NMG.NMGSupEquipmentInfo; +import com.jsowell.thirdparty.platform.domain.NMG.NMGSupStationInfo; import com.jsowell.pile.util.MerchantUtils; import com.jsowell.pile.vo.SupStationStatsVO; import com.jsowell.pile.vo.ThirdPartySecretInfoVO; import com.jsowell.pile.vo.base.ConnectorInfoVO; import com.jsowell.pile.vo.base.MerchantInfoVO; import com.jsowell.pile.vo.base.ThirdPartyStationInfoVO; -import com.jsowell.pile.vo.base.ThirdPartyStationRelationVO; import com.jsowell.pile.vo.uniapp.customer.BillingPriceVO; import com.jsowell.pile.vo.web.PileConnectorInfoVO; import com.jsowell.pile.vo.web.PileMerchantInfoVO; @@ -49,7 +43,6 @@ import com.jsowell.thirdparty.lianlian.domain.ConnectorStatusInfo; import com.jsowell.thirdparty.lianlian.domain.StationStatusInfo; import com.jsowell.thirdparty.lianlian.vo.AccessTokenVO; import com.jsowell.thirdparty.lianlian.vo.LianLianResultVO; -import com.jsowell.thirdparty.lianlian.vo.QueryChargingStatusVO; import com.jsowell.thirdparty.platform.domain.*; import com.jsowell.thirdparty.platform.service.ThirdPartyPlatformService; import com.jsowell.thirdparty.platform.factory.ThirdPartyPlatformFactory; @@ -67,7 +60,6 @@ import java.math.RoundingMode; import java.nio.charset.StandardCharsets; import java.util.*; import java.util.concurrent.TimeUnit; -import java.util.function.Function; import java.util.stream.Collectors; /** @@ -236,9 +228,9 @@ public class NeiMengGuPlatformServiceImpl implements ThirdPartyPlatformService { ThirdPartySecretInfoVO thirdPartySecretInfoVO = getNeiMengGuPlatformSecretInfo(); PageInfo pageInfo = new PageInfo<>(stationInfos); - List resultList = new ArrayList<>(); + List resultList = new ArrayList<>(); for (ThirdPartyStationInfoVO pileStationInfo : pageInfo.getList()) { - SupStationInfo stationInfo = new SupStationInfo(); + NMGSupStationInfo stationInfo = new NMGSupStationInfo(); String stationId = String.valueOf(pileStationInfo.getId()); stationInfo.setStationID(stationId); stationInfo.setOperatorID(Constants.JSOWELL_OPERATORID); // 组织机构代码 @@ -302,13 +294,13 @@ public class NeiMengGuPlatformServiceImpl implements ThirdPartyPlatformService { stationInfo.setPrinterFlag(Integer.valueOf(pileStationInfo.getPrinterFlag())); stationInfo.setBarrierFlag(Integer.valueOf(pileStationInfo.getBarrierFlag())); stationInfo.setParkingLockFlag(Integer.valueOf(pileStationInfo.getParkingLockFlag())); - List pileList = pileBasicInfoService.getPileListForLianLian(stationId); + List pileList = getPileEquipmentList(stationId); if (CollectionUtils.isNotEmpty(pileList)) { stationInfo.setEquipmentInfos(pileList); // 充电设备信息列表 } // 额定功率 BigDecimal stationRatedPower = pileList.stream() - .map(EquipmentInfo::getEquipmentPower) + .map(NMGSupEquipmentInfo::getEquipmentPower) .reduce(BigDecimal.ZERO, BigDecimal::add); stationInfo.setRatedPower(stationRatedPower); @@ -324,6 +316,133 @@ public class NeiMengGuPlatformServiceImpl implements ThirdPartyPlatformService { return resultMap; } + + + + public List getPileEquipmentList(String stationId) { + List resultList = new ArrayList<>(); + // 通过站点id查询桩基本信息 + List list = pileBasicInfoService.getPileDetailInfoList(stationId); + // 封装成联联平台对象 + for (PileDetailInfoVO pileDetailInfoVO : list) { + NMGSupEquipmentInfo equipmentInfo = new NMGSupEquipmentInfo(); + String pileSn = pileDetailInfoVO.getPileSn(); + + equipmentInfo.setEquipmentID(pileSn); + equipmentInfo.setEquipmentClassification(1); + equipmentInfo.setManufacturerID(Constants.OPERATORID_LIANLIAN); + equipmentInfo.setManufacturerName(Constants.MANUFACTURER_NAME); + equipmentInfo.setConstructionTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, pileDetailInfoVO.getCreateTime())); + equipmentInfo.setProductionDate(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, pileDetailInfoVO.getCreateTime())); + + // PileModelInfoVO modelInfo = pileModelInfoService.getPileModelInfoByPileSn(pileSn); + if (StringUtils.isBlank(pileDetailInfoVO.getSpeedType())) { + continue; + } + equipmentInfo.setEquipmentType(Integer.valueOf(pileDetailInfoVO.getSpeedType())); + equipmentInfo.setEquipmentModel(pileDetailInfoVO.getModelName()); + + String pileStatus = pileDetailInfoVO.getPileStatus(); + if (StringUtils.equals(PileStatusEnum.ON_LINE.getValue(), pileStatus)) { + // 1-在线 + pileStatus = LianLianPileStatusEnum.NORMAL.getCode(); + } else if (StringUtils.equals(PileStatusEnum.OFF_LINE.getValue(), pileStatus)) { + // 2-离线 + pileStatus = LianLianPileStatusEnum.CLOSE_OFFLINE.getCode(); + } else if (StringUtils.equals(PileStatusEnum.FAULT.getValue(), pileStatus)) { + // 3-故障 + pileStatus = LianLianPileStatusEnum.UNDER_MAINTENANCE.getCode(); + } + equipmentInfo.setEquipmentStatus(Integer.valueOf(pileStatus)); + equipmentInfo.setEquipmentPower(new BigDecimal(pileDetailInfoVO.getRatedPower()).setScale(1, BigDecimal.ROUND_HALF_UP)); + equipmentInfo.setNewNationalStandard(1); + equipmentInfo.setVinFlag(1); + equipmentInfo.setSvin(1); + equipmentInfo.setSautoPower(1); + equipmentInfo.setVoltageUpperLimits(new BigDecimal(pileDetailInfoVO.getRatedPower()).setScale(1, BigDecimal.ROUND_HALF_UP)); + equipmentInfo.setVoltageLowerLimits(new BigDecimal(pileDetailInfoVO.getRatedPower()).setScale(1, BigDecimal.ROUND_HALF_UP)); + equipmentInfo.setCurrent(new BigDecimal(pileDetailInfoVO.getRatedCurrent()).setScale(1, BigDecimal.ROUND_HALF_UP)); + equipmentInfo.setEquipmentName(pileSn); + equipmentInfo.setEquipmentApplication(Constants.ONE); + equipmentInfo.setEquipmentInvestment(new BigDecimal("0.0")); + equipmentInfo.setProductSN(pileSn); + equipmentInfo.setOpenDate(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, pileDetailInfoVO.getCreateTime())); + equipmentInfo.setPower(new BigDecimal(pileDetailInfoVO.getRatedPower()).setScale(1, BigDecimal.ROUND_HALF_UP)); + + // 枪口列表 + List connectorList = getConnectorList(pileDetailInfoVO); + equipmentInfo.setConnectorInfos(connectorList); + + resultList.add(equipmentInfo); + } + + return resultList; + } + + + public List getConnectorList(PileDetailInfoVO pileDetailInfoVO) { + List resultList = new ArrayList<>(); + + List list = pileConnectorInfoService.selectPileConnectorInfoList(pileDetailInfoVO.getPileSn()); + for (PileConnectorInfo pileConnectorInfo : list) { + NMGSupConnectorInfo connectorInfo = new NMGSupConnectorInfo(); + connectorInfo.setConnectorID(pileConnectorInfo.getPileConnectorCode()); + int connectorType = StringUtils.equals("1", pileDetailInfoVO.getSpeedType()) ? 4 : 3; + connectorInfo.setConnectorType(connectorType); + // 车位号 + if (StringUtils.isNotBlank(pileConnectorInfo.getParkNo())) { + connectorInfo.setParkNo(pileConnectorInfo.getParkNo()); + } + + + BigDecimal voltageUpperLimits = pileDetailInfoVO.getRatedVoltage() != null + ? new BigDecimal(pileDetailInfoVO.getRatedVoltage()).setScale(1, BigDecimal.ROUND_DOWN) + : BigDecimal.ZERO; + + BigDecimal voltageLowerLimits = pileDetailInfoVO.getRatedVoltage() != null + ? new BigDecimal(pileDetailInfoVO.getRatedVoltage()).setScale(1, BigDecimal.ROUND_DOWN) + : BigDecimal.ZERO; + + BigDecimal current = pileDetailInfoVO.getRatedCurrent() != null + ? new BigDecimal(pileDetailInfoVO.getRatedCurrent()).setScale(1, BigDecimal.ROUND_DOWN) + : BigDecimal.ZERO; + + + connectorInfo.setVoltageUpperLimits(voltageUpperLimits); + connectorInfo.setVoltageLowerLimits(voltageLowerLimits); + connectorInfo.setCurrent(current); + connectorInfo.setNationalStandard(2); + + connectorInfo.setEquipmentClassification(1); + connectorInfo.setConnectorName(pileConnectorInfo.getPileConnectorCode()); + connectorInfo.setOperateStatus(50); // 50-正常使用 + connectorInfo.setOpreateStatus(50); // 50-正常使用 +// connectorInfo.setNationalStandard(StringUtils.equals("1", pileDetailInfoVO.getSpeedType()) ? 12 : 11); // 2-2015 + connectorInfo.setAuxPower(3); // 3-兼容12V和24V + connectorInfo.setStatus(Integer.parseInt(pileConnectorInfo.getStatus())); + connectorInfo.setCurrentUpperLimits(Integer.parseInt(pileDetailInfoVO.getRatedCurrent())); + connectorInfo.setCurrentLowerLimits(Integer.parseInt(pileDetailInfoVO.getRatedCurrent())); + connectorInfo.setPowerType(StringUtils.equals(Constants.ONE, pileDetailInfoVO.getSpeedType()) ? 2 : 1); + +// if (!StringUtils.equals(pileDetailInfoVO.getConnectorNum(), "1")) { +// // 如果不是单枪,则枪口功率需要除以枪口数量 +// String ratedPowerStr = pileDetailInfoVO.getRatedPower(); +// BigDecimal ratedPower = new BigDecimal(ratedPowerStr); +// connectorInfo.setPower(ratedPower.divide(new BigDecimal(pileDetailInfoVO.getConnectorNum()), 1, RoundingMode.HALF_UP)); +// }else { + + BigDecimal power = pileDetailInfoVO.getRatedPower() != null + ? new BigDecimal(pileDetailInfoVO.getRatedPower()).setScale(1, BigDecimal.ROUND_DOWN) + : BigDecimal.ZERO; + connectorInfo.setPower(power); +// } + resultList.add(connectorInfo); + } + return resultList; + } + + + private String getBusineHours() { Map map = new LinkedHashMap<>(); map.put("1", "[\"00:00-24:00\"]"); From 2028391d3a46a334f2fba5544447fdebdee50452 Mon Sep 17 00:00:00 2001 From: "YAS\\29473" <2947326429@qq.com> Date: Fri, 31 Oct 2025 13:45:25 +0800 Subject: [PATCH 2/2] update --- .../thirdparty/platform/domain/NMG/NMGSupStationInfo.java | 4 ++-- .../platform/service/impl/NeiMengGuPlatformServiceImpl.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/NMG/NMGSupStationInfo.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/NMG/NMGSupStationInfo.java index b31197aa4..8565fe76d 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/NMG/NMGSupStationInfo.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/domain/NMG/NMGSupStationInfo.java @@ -17,7 +17,7 @@ import java.util.List; @Data @NoArgsConstructor @AllArgsConstructor -@SuperBuilder +//@SuperBuilder public class NMGSupStationInfo extends StationInfo { /** * 充换电站唯一编码 @@ -178,5 +178,5 @@ public class NMGSupStationInfo extends StationInfo { * 该充电站所有充电设备信息对象集合 */ @JSONField(name = "EquipmentInfos") - private List equipmentInfos; + private List supEquipmentInfos; } diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/NeiMengGuPlatformServiceImpl.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/NeiMengGuPlatformServiceImpl.java index 73613abf0..f33a80084 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/NeiMengGuPlatformServiceImpl.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/NeiMengGuPlatformServiceImpl.java @@ -296,7 +296,7 @@ public class NeiMengGuPlatformServiceImpl implements ThirdPartyPlatformService { stationInfo.setParkingLockFlag(Integer.valueOf(pileStationInfo.getParkingLockFlag())); List pileList = getPileEquipmentList(stationId); if (CollectionUtils.isNotEmpty(pileList)) { - stationInfo.setEquipmentInfos(pileList); // 充电设备信息列表 + stationInfo.setSupEquipmentInfos(pileList); // 充电设备信息列表 } // 额定功率 BigDecimal stationRatedPower = pileList.stream()