From c8cee43365a79b026502908b4aa361f08d59b42a Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期三, 22 一月 2025 09:56:49 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/ConnectorStatusInfo.java                 |   47 +
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/controller/TCECController.java                          |  259 ++++++++
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStationStatus.java                  |   21 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingGunController.java                |   13 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/OperatorInfo.java                        |   45 +
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/enu/StationTypeEnum.java                 |   41 +
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/ConnectorStatsInfo.java                  |   25 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryEquipBusinessPolicy.java            |   25 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/StationStatsInfo.java                    |   43 +
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/enu/StationStatusEnum.java               |   38 +
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/BaseResult.java                          |   41 +
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStationStats.java                   |   31 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStationStatsResult.java             |   19 
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ChargingGunFallbackFactory.java           |   11 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java                        |   14 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/enu/ConstructionEnum.java                |   45 +
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/EquipmentStatsInfo.java                  |   31 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/PolicyInfo.java                          |   31 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/StationInfo.java                         |  154 ++++
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/BaseRequest.java                         |   41 +
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/ConnectorInfo.java                       |   63 +
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECUtil.java                                  |   82 ++
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStationStatusResult.java            |   22 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStationsInfoResult.java             |   30 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/NotificationStationStatusResult.java     |   21 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/enu/EquipmentTypeEnum.java               |   40 +
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/NotificationChargeOrderInfo.java         |   82 ++
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/NotificationChargeOrderInfoResult.java   |   31 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStationsInfo.java                   |   31 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/enu/InterfaceUrlEnum.java                |   39 +
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/EquipmentInfo.java                       |   73 ++
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/StationStatusInfo.java                   |   24 
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingGunClient.java                |   27 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/ChargeDetail.java                        |   53 +
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/NotificationEquipChargeStatusResult.java |   26 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryEquipChargeStatus.java              |   19 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryEquipBusinessPolicyResult.java      |   51 +
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/SiteClient.java                       |   11 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/enu/ConnectorTypeEnum.java               |   39 +
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryEquipChargeStatusResult.java        |  124 +++
 40 files changed, 1,857 insertions(+), 6 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ChargingGunFallbackFactory.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ChargingGunFallbackFactory.java
index 11c4cb6..4da7d9e 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ChargingGunFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ChargingGunFallbackFactory.java
@@ -54,7 +54,16 @@
             public R<String> updateChargingGunById(TChargingGun chargingGun) {
                 return R.fail("编辑充电枪失败:" + throwable.getMessage());
             }
-
+    
+            @Override
+            public R<List<TChargingGun>> getChargingGunByChargingPileId(Integer chargingPileId) {
+                return R.fail("根据充电桩id获取枪失败:" + throwable.getMessage());
+            }
+    
+            @Override
+            public R pushChargingGunStatus(Integer id, Integer status) {
+                return R.fail("接口状态变化后推送给第三方失败:" + throwable.getMessage());
+            }
         };
     }
 }
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingGunClient.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingGunClient.java
index 77548f2..6370e8b 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingGunClient.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ChargingGunClient.java
@@ -8,10 +8,9 @@
 import com.ruoyi.common.core.constant.ServiceNameConstants;
 import com.ruoyi.common.core.domain.R;
 import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
 
 /**
  * @author zhibing.pu
@@ -58,5 +57,23 @@
 	 */
 	@PostMapping("/t-charging-gun/updateChargingGunById")
 	R<String> updateChargingGunById(@RequestBody TChargingGun chargingGun);
-
+	
+	
+	/**
+	 * 根据充电桩id获取枪
+	 * @param chargingPileId
+	 * @return
+	 */
+	@PostMapping("/t-charging-gun/getChargingGunByChargingPileId")
+	R<List<TChargingGun>> getChargingGunByChargingPileId(@RequestParam("chargingPileId") Integer chargingPileId);
+	
+	
+	/**
+	 * 接口状态变化后推送给第三方
+	 * @param id
+	 * @param status
+	 * @return
+	 */
+	@PostMapping("/t-charging-gun/pushChargingGunStatus")
+	R pushChargingGunStatus(@RequestParam("id") Integer id, @RequestParam("status") Integer status);
 }
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/SiteClient.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/SiteClient.java
index 9b3752f..e8b235c 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/SiteClient.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/SiteClient.java
@@ -7,6 +7,7 @@
 import com.ruoyi.chargingPile.api.model.TChargingPile;
 import com.ruoyi.common.core.constant.ServiceNameConstants;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.web.page.PageInfo;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.*;
 
@@ -40,4 +41,14 @@
 	R<List<GetSiteListDTO>> getSiteListByUserId(@RequestParam("userId") Long userId);
 	@GetMapping("/partner/getPartnerR/{id}")
 	R<Partner> getPartnerR(@PathVariable("id") Integer id);
+	
+	
+	/**
+	 * 分页查询站电数据
+	 * @param PageNo
+	 * @param PageSize
+	 * @return
+	 */
+	@PostMapping("/site/getSiteListPaging")
+	PageInfo<Site> getSiteListPaging(@RequestParam("PageNo") Integer PageNo, @RequestParam("PageSize") Integer PageSize);
 }
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java
index a1c138f..ae4c353 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java
@@ -611,4 +611,18 @@
 		List<Site> list = siteService.list(new LambdaQueryWrapper<Site>().eq(Site::getDelFlag, 0));
 		return R.ok(list);
 	}
+	
+	
+	/**
+	 * 分页查询站电数据
+	 * @param PageNo
+	 * @param PageSize
+	 * @return
+	 */
+	@PostMapping("/getSiteListPaging")
+	public PageInfo<Site> getSiteListPaging(@RequestParam("PageNo") Integer PageNo, @RequestParam("PageSize") Integer PageSize){
+		PageInfo<Site> pageInfo = new PageInfo<>(PageNo, PageSize);
+		PageInfo<Site> page = siteService.lambdaQuery().page(pageInfo);
+		return page;
+	}
 }
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingGunController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingGunController.java
index f618ef1..db5974b 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingGunController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingGunController.java
@@ -294,5 +294,18 @@
         chargingGunService.updateById(chargingGun);
         return R.ok();
     }
+    
+    
+    
+    /**
+     * 根据充电桩id获取枪
+     * @param chargingPileId
+     * @return
+     */
+    @PostMapping("/getChargingGunByChargingPileId")
+    public R<List<TChargingGun>> getChargingGunByChargingPileId(@RequestParam("chargingPileId") Integer chargingPileId){
+        List<TChargingGun> list = chargingGunService.list(new LambdaQueryWrapper<TChargingGun>().eq(TChargingGun::getChargingPileId, chargingPileId).eq(TChargingGun::getDelFlag, 0));
+        return R.ok(list);
+    }
 }
 
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/controller/TCECController.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/controller/TCECController.java
new file mode 100644
index 0000000..2f8cfaa
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/controller/TCECController.java
@@ -0,0 +1,259 @@
+package com.ruoyi.integration.controller;
+
+import com.ruoyi.chargingPile.api.feignClient.ChargingGunClient;
+import com.ruoyi.chargingPile.api.feignClient.ChargingPileClient;
+import com.ruoyi.chargingPile.api.feignClient.SiteClient;
+import com.ruoyi.chargingPile.api.model.Site;
+import com.ruoyi.chargingPile.api.model.TChargingGun;
+import com.ruoyi.chargingPile.api.model.TChargingPile;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.core.web.page.PageInfo;
+import com.ruoyi.integration.drainage.TCECUtil;
+import com.ruoyi.integration.drainage.model.*;
+import com.ruoyi.integration.drainage.model.enu.*;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/1/21 17:52
+ */
+@RestController
+@RequestMapping("")
+public class TCECController {
+	
+	@Resource
+	private SiteClient siteClient;
+	
+	@Resource
+	private ChargingPileClient chargingPileClient;
+	
+	@Resource
+	private ChargingGunClient chargingGunClient;
+	
+	
+	/**
+	 * 查询充电站信息
+	 * @param query
+	 * @return
+	 */
+	@PostMapping("/query_stations_info")
+	public QueryStationsInfoResult queryStationsInfo(@RequestBody QueryStationsInfo query){
+		Integer pageNo = query.getPageNo();
+		Integer pageSize = query.getPageSize();
+		if(null == pageNo){
+			pageNo = 1;
+		}
+		if(null == pageSize){
+			pageSize = 10;
+		}
+		PageInfo<Site> siteListPaging = siteClient.getSiteListPaging(pageNo, pageSize);
+		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());
+		
+		List<StationInfo> StationInfos = new ArrayList<>();
+		for (Site datum : siteListPaging.getRecords()) {
+			StationInfo stationInfo = new StationInfo();
+			stationInfo.setStationID(datum.getId().toString());
+			stationInfo.setOperatorID();
+			stationInfo.setEquipmentOwnerID();
+			stationInfo.setStationName(datum.getName());
+			stationInfo.setCountryCode(datum.getCountryCode());
+			stationInfo.setAreaCode(datum.getDistrictsCode());
+			stationInfo.setAddress(datum.getAddress());
+			stationInfo.setStationTel(datum.getPhone());
+			stationInfo.setServiceTel(datum.getServicePhone());
+			switch (datum.getSiteType()){
+				case 0:
+					stationInfo.setStationType(StationTypeEnum.OTHER.getType());
+					break;
+				case 1:
+					stationInfo.setStationType(StationTypeEnum.PUBLIC.getType());
+					break;
+				case 2:
+					stationInfo.setStationType(StationTypeEnum.PERSONAGE.getType());
+					break;
+				case 3:
+					stationInfo.setStationType(StationTypeEnum.BUS_SPECIFIC.getType());
+					break;
+				case 4:
+					stationInfo.setStationType(StationTypeEnum.SANITATION_SPECIFIC.getType());
+					break;
+				case 5:
+					stationInfo.setStationType(StationTypeEnum.LOGISTICS_SPECIFIC.getType());
+					break;
+				case 6:
+					stationInfo.setStationType(StationTypeEnum.TEXT_SPECIFIC.getType());
+					break;
+			}
+			if(datum.getStatus() == 1){
+				stationInfo.setStationStatus(StationStatusEnum.NORMAL_USE.getStatus());
+			}
+			if(datum.getStatus() == 2){
+				stationInfo.setStationStatus(StationStatusEnum.MAINTAIN.getStatus());
+			}
+			if(datum.getStatus() == 3){
+				stationInfo.setStationStatus(StationStatusEnum.OFF_LINE.getStatus());
+			}
+			stationInfo.setParkNums(datum.getParkingSpace());
+			stationInfo.setStationLat(new BigDecimal(datum.getLat()).setScale(6, RoundingMode.DOWN));
+			stationInfo.setStationLng(new BigDecimal(datum.getLon()).setScale(6, RoundingMode.DOWN));
+			stationInfo.setConstruction(datum.getConstructionSite() == 0 ? ConstructionEnum.OTHER.getType() : datum.getConstructionSite());
+			stationInfo.setPictures(Arrays.asList(datum.getImgUrl().split(",")));
+			stationInfo.setSiteGuide(datum.getGuide());
+			stationInfo.setMatchCars(datum.getVehicleDescription());
+			stationInfo.setBusineHours(datum.getStartServiceTime() + "-" + datum.getEndServiceTime());
+			stationInfo.setElectricityFee(datum.getRateDescription());
+			//构建充电设备信息数据
+			List<TChargingPile> tChargingPiles = chargingPileClient.getChargingPileBySiteId(datum.getId()).getData();
+			stationInfo.setEquipmentInfos(buildEquipmentInfo(tChargingPiles));
+			StationInfos.add(stationInfo);
+		}
+		queryStationsInfoResult.setStationInfos(StationInfos);
+		return queryStationsInfoResult;
+	}
+	
+	
+	/**
+	 * 构建桩数据
+	 * @param tChargingPiles
+	 * @return
+	 */
+	public List<EquipmentInfo> buildEquipmentInfo(List<TChargingPile> tChargingPiles){
+		List<EquipmentInfo> equipmentInfos = new ArrayList<>();
+		for (TChargingPile tChargingPile : tChargingPiles) {
+			EquipmentInfo equipmentInfo = new EquipmentInfo();
+			equipmentInfo.setEquipmentID(tChargingPile.getId().toString());
+			equipmentInfo.setManufacturerID(tChargingPile.getManufacturerCode());
+			equipmentInfo.setManufacturerName(tChargingPile.getManufacturer());
+			equipmentInfo.setEquipmentModel(tChargingPile.getEquipmentType());
+			if(null != tChargingPile.getProductionDate()){
+				equipmentInfo.setProductionDate(tChargingPile.getProductionDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+			}
+			switch (tChargingPile.getType()){
+				case 0:
+					equipmentInfo.setEquipmentType(EquipmentTypeEnum.OTHER.getType());
+					break;
+				case 1:
+					equipmentInfo.setEquipmentType(EquipmentTypeEnum.DIRECT_CURRENT.getType());
+					break;
+				case 2:
+					equipmentInfo.setEquipmentType(EquipmentTypeEnum.ALTERNATING_CURRENT.getType());
+					break;
+				case 3:
+					equipmentInfo.setEquipmentType(EquipmentTypeEnum.ALTERNATING_DIRECT.getType());
+					break;
+				case 4:
+					equipmentInfo.setEquipmentType(EquipmentTypeEnum.WIRELESS_DEVICE.getType());
+					break;
+			}
+			
+			//构建设备接口信息
+			List<TChargingGun> chargingGunList = chargingGunClient.getChargingGunByChargingPileId(tChargingPile.getId()).getData();
+			equipmentInfo.setConnectorInfos(buildConnectorInfos(chargingGunList));
+			equipmentInfos.add(equipmentInfo);
+		}
+		return equipmentInfos;
+	}
+	
+	
+	/**
+	 * 构建接口数据
+	 * @param chargingGunList
+	 * @return
+	 */
+	public List<ConnectorInfo> buildConnectorInfos(List<TChargingGun> chargingGunList){
+		List<ConnectorInfo> connectorInfos = new ArrayList<>();
+		for (TChargingGun chargingGun : chargingGunList) {
+			ConnectorInfo connectorInfo = new ConnectorInfo();
+			connectorInfo.setConnectorID(chargingGun.getId().toString());
+			connectorInfo.setConnectorName(chargingGun.getName());
+			switch (chargingGun.getType()){
+				case 0:
+					connectorInfo.setConnectorType(ConnectorTypeEnum.OTHER.getType());
+					break;
+				case 1:
+					connectorInfo.setConnectorType(ConnectorTypeEnum.HOUSEHOLD_SOCKET.getType());
+					break;
+				case 2:
+					connectorInfo.setConnectorType(ConnectorTypeEnum.AC_SOCKET.getType());
+					break;
+				case 3:
+					connectorInfo.setConnectorType(ConnectorTypeEnum.AC_INTERFACE_PLUG.getType());
+					break;
+				case 4:
+					connectorInfo.setConnectorType(ConnectorTypeEnum.DC_INTERFACE_GUN_HEAD.getType());
+					break;
+				case 5:
+					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());
+			connectorInfo.setNationalStandard(Integer.valueOf(chargingGun.getNationalStandard()));
+			connectorInfos.add(connectorInfo);
+		}
+		return connectorInfos;
+	}
+	
+	
+	/**
+	 * 接口状态变化后推送给第三方
+	 * @return
+	 */
+	@PostMapping("/pushChargingGunStatus")
+	public R pushChargingGunStatus(@RequestParam("id") Integer id, @RequestParam("status") Integer status){
+		ConnectorStatusInfo connectorStatusInfo = new ConnectorStatusInfo();
+		connectorStatusInfo.setConnectorID(id.toString());
+		switch (status){
+			case 1:
+				connectorStatusInfo.setStatus(0);
+				break;
+			case 2:
+				connectorStatusInfo.setStatus(1);
+				break;
+			case 3:
+				connectorStatusInfo.setStatus(2);
+				break;
+			case 4:
+				connectorStatusInfo.setStatus(3);
+				break;
+			case 5:
+				connectorStatusInfo.setStatus(3);
+				break;
+			case 6:
+				connectorStatusInfo.setStatus(4);
+				break;
+			case 7:
+				connectorStatusInfo.setStatus(255);
+				break;
+		}
+		NotificationStationStatusResult result = TCECUtil.notificationStationStatus(connectorStatusInfo);
+		return R.ok();
+	}
+	
+	
+	
+	/**
+	 * 设备接口状态查询
+	 * @param query
+	 * @return
+	 */
+	@PostMapping("/query_station_status")
+	public QueryStationStatusResult queryStationStatus(@RequestBody QueryStationStatus query){
+	
+	}
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECUtil.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECUtil.java
new file mode 100644
index 0000000..428a49e
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/TCECUtil.java
@@ -0,0 +1,82 @@
+package com.ruoyi.integration.drainage;
+
+import cn.hutool.http.*;
+import com.alibaba.fastjson.JSON;
+import com.ruoyi.integration.drainage.model.*;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 中电联TCEC标准
+ * @author zhibing.pu
+ * @Date 2025/1/21 11:48
+ */
+@Slf4j
+public class TCECUtil {
+	
+	
+	
+	/**
+	 * 设备状态变化推送
+	 * @param info
+	 */
+	public static NotificationStationStatusResult notificationStationStatus(ConnectorStatusInfo info) {
+		HttpRequest post = HttpUtil.createPost("");
+		post.contentType(ContentType.JSON.toString());
+		post.body(JSON.toJSONString(info));
+		HttpResponse execute = post.execute();
+		if(200 != execute.getStatus()){
+			log.error("设备状态变化推送失败:" + execute.body());
+			return null;
+		}
+		return JSON.parseObject(execute.body(), NotificationStationStatusResult.class);
+	}
+	
+	
+	
+	
+	/**
+	 * 查询统计信息
+	 * @param query
+	 * @return
+	 */
+	public QueryStationStatsResult queryStationStats(QueryStationStats query){
+	}
+	
+	/**
+	 * 查询业务策略信息
+	 * @param query
+	 * @return
+	 */
+	public BaseResult<QueryEquipBusinessPolicyResult> queryEquipBusinessPolicy(QueryEquipBusinessPolicy query){
+	}
+	
+	
+	/**
+	 * 查询充电状态
+	 * @param query
+	 * @return
+	 */
+	public BaseResult<QueryEquipChargeStatusResult> queryEquipChargeStatus(QueryEquipChargeStatus query){
+	}
+	
+	
+	/**
+	 * 推动充电状态
+	 * @param info
+	 * @return
+	 */
+	public BaseResult<NotificationEquipChargeStatusResult> notificationEquipChargeStatus(QueryEquipChargeStatusResult info){
+	}
+	
+	
+	/**
+	 * 推送充电订单信息
+	 * @param indo
+	 * @return
+	 */
+	public BaseResult<NotificationChargeOrderInfoResult> notificationChargeOrderInfo(NotificationChargeOrderInfo indo){
+	}
+	
+	
+	
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/BaseRequest.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/BaseRequest.java
new file mode 100644
index 0000000..d2a11da
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/BaseRequest.java
@@ -0,0 +1,41 @@
+package com.ruoyi.integration.drainage.model;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * 公共请求
+ * @author zhibing.pu
+ * @Date 2025/1/21 17:08
+ */
+@Data
+public class BaseRequest<T> {
+	/**
+	 * 运营商标识
+	 */
+	@NotNull
+	private String OperatorID;
+	/**
+	 * 参数内容
+	 */
+	@NotNull
+	private T Data;
+	/**
+	 * 时间戳
+	 * yyyyMMddHHmmss
+	 */
+	@NotNull
+	private Long TimeStamp;
+	/**
+	 * 自增序列
+	 * 4位自增序列取自时间戳,同一秒内按序列自增长,新秒重计。如 0001
+	 */
+	@NotNull
+	private String Seq;
+	/**
+	 * 数字签名
+	 */
+	@NotNull
+	private String Sig;
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/BaseResult.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/BaseResult.java
new file mode 100644
index 0000000..0a94794
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/BaseResult.java
@@ -0,0 +1,41 @@
+package com.ruoyi.integration.drainage.model;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * 公共返回结果
+ * @author zhibing.pu
+ * @Date 2025/1/21 15:54
+ */
+@Data
+public class BaseResult<T> {
+	/**
+	 * 参数编码
+	 * -1:系统繁忙,此时请求方稍后重试
+	 * 0:请求成功
+	 * 4001:签名错误
+	 * 4002:Token错误
+	 * 4003:POST参数不合法,缺少必需的
+	 * 4004:请求的业务参数不合法
+	 * 500:系统错误
+	 */
+	@NotNull
+	private Integer Ret;
+	/**
+	 * 错误信息描述
+	 */
+	@NotNull
+	private String Msg;
+	/**
+	 * 参数实体
+	 */
+	@NotNull
+	private T Data;
+	/**
+	 * 签名
+	 */
+	@NotNull
+	private String Sig;
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/ChargeDetail.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/ChargeDetail.java
new file mode 100644
index 0000000..8eabde6
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/ChargeDetail.java
@@ -0,0 +1,53 @@
+package com.ruoyi.integration.drainage.model;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Null;
+import java.math.BigDecimal;
+
+/**
+ * 充电明细信息
+ * @author zhibing.pu
+ * @Date 2025/1/21 16:40
+ */
+@Data
+public class ChargeDetail {
+	/**
+	 * 开始时间
+	 * yyyy-MM-dd HH:mm:ss
+	 */
+	@NotNull
+	private String DetailStartTime;
+	/**
+	 * 结束时间
+	 * yyyy-MM-dd HH:mm:ss
+	 */
+	@NotNull
+	private String DetailEndTime;
+	/**
+	 * 时段电价
+	 */
+	@Null
+	private BigDecimal ElecPrice;
+	/**
+	 * 时段服务费价格
+	 */
+	@Null
+	private BigDecimal SevicePrice;
+	/**
+	 * 时段充电量
+	 */
+	@Null
+	private BigDecimal DetailPower;
+	/**
+	 * 时段电费
+	 */
+	@Null
+	private BigDecimal DetailElecMoney;
+	/**
+	 * 时段服务费
+	 */
+	@Null
+	private BigDecimal DetailSeviceMoney;
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/ConnectorInfo.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/ConnectorInfo.java
new file mode 100644
index 0000000..80af044
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/ConnectorInfo.java
@@ -0,0 +1,63 @@
+package com.ruoyi.integration.drainage.model;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Null;
+import java.math.BigDecimal;
+
+/**
+ * 充电设备接口
+ * @author zhibing.pu
+ * @Date 2025/1/21 14:03
+ */
+@Data
+public class ConnectorInfo {
+	/**
+	 * 充电设备接口编码
+	 */
+	@NotNull
+	private String ConnectorID;
+	/**
+	 * 充电设备接口名称
+	 */
+	@Null
+	private String ConnectorName;
+	/**
+	 * 充电设备接口类型
+	 */
+	@NotNull
+	private Integer ConnectorType;
+	/**
+	 * 额定电压上限
+	 */
+	@NotNull
+	private Integer VoltageUpperLimits;
+	/**
+	 * 额定电压下限
+	 */
+	@NotNull
+	private Integer VoltageLowerLimits;
+	/**
+	 * 额定电流
+	 */
+	@NotNull
+	private Integer Current;
+	/**
+	 * 额定功率
+	 */
+	@NotNull
+	private BigDecimal Power;
+	/**
+	 * 车位号
+	 */
+	@Null
+	private String ParkNo;
+	/**
+	 * 国家标准
+	 * 1:2011
+	 * 2:2015
+	 */
+	@NotNull
+	private Integer NationalStandard;
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/ConnectorStatsInfo.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/ConnectorStatsInfo.java
new file mode 100644
index 0000000..c6671ac
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/ConnectorStatsInfo.java
@@ -0,0 +1,25 @@
+package com.ruoyi.integration.drainage.model;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+
+/**
+ * 充电设备接口统计信息
+ * @author zhibing.pu
+ * @Date 2025/1/21 15:24
+ */
+@Data
+public class ConnectorStatsInfo {
+	/**
+	 * 充电设备接口编码
+	 */
+	@NotNull
+	private String ConnectorID;
+	/**
+	 * 充电设备接口累计电量
+	 */
+	@NotNull
+	private BigDecimal ConnectorElectricity;
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/ConnectorStatusInfo.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/ConnectorStatusInfo.java
new file mode 100644
index 0000000..695d666
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/ConnectorStatusInfo.java
@@ -0,0 +1,47 @@
+package com.ruoyi.integration.drainage.model;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Null;
+
+/**
+ * 充电设备接口状态
+ * @author zhibing.pu
+ * @Date 2025/1/21 14:53
+ */
+@Data
+public class ConnectorStatusInfo {
+	/**
+	 * 充电设备接口编码
+	 */
+	@NotNull
+	private String ConnectorID;
+	/**
+	 * 充电设备接口状态
+	 * 0:离网
+	 * 1:空闲
+	 * 2:占用(未充电)
+	 * 3:占用(充电中)
+	 * 4:占用(预约锁定)
+	 * 255:故障
+	 */
+	@NotNull
+	private Integer Status;
+	/**
+	 * 车位状态
+	 * 0:未知
+	 * 10:空闲
+	 * 50:占用
+	 */
+	@Null
+	private Integer ParkStatus;
+	/**
+	 * 地锁状态
+	 * 0:未知
+	 * 10:已解锁
+	 * 50:已上锁
+	 */
+	@Null
+	private Integer LookStatus;
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/EquipmentInfo.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/EquipmentInfo.java
new file mode 100644
index 0000000..5c64c3b
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/EquipmentInfo.java
@@ -0,0 +1,73 @@
+package com.ruoyi.integration.drainage.model;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Null;
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 充电设备信息
+ * @author zhibing.pu
+ * @Date 2025/1/21 13:51
+ */
+@Data
+public class EquipmentInfo {
+	/**
+	 * 设备编号
+	 */
+	@NotNull
+	private String EquipmentID;
+	/**
+	 * 设备生产商组织机构代码
+	 */
+	@Null
+	private String ManufacturerID;
+	/**
+	 * 设备生产商名称
+	 */
+	@Null
+	private String ManufacturerName;
+	/**
+	 * 设备型号
+	 */
+	@Null
+	private String EquipmentModel;
+	/**
+	 * 设备生产日期
+	 * YYYY-MM-DD
+	 */
+	@Null
+	private String ProductionDate;
+	/**
+	 * 设备类型
+	 */
+	@NotNull
+	private Integer EquipmentType;
+	/**
+	 * 充电设备接口信息列表
+	 */
+	@NotNull
+	private List<ConnectorInfo> ConnectorInfos;
+	/**
+	 * 充电设备经度
+	 */
+	@Null
+	private BigDecimal EquipmentLng;
+	/**
+	 * 充电设备纬度
+	 */
+	@Null
+	private BigDecimal EquipmentLat;
+	/**
+	 * 充电设备总功率
+	 */
+	@NotNull
+	private BigDecimal Power;
+	/**
+	 * 充电设备名称
+	 */
+	@Null
+	private String EquipmentName;
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/EquipmentStatsInfo.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/EquipmentStatsInfo.java
new file mode 100644
index 0000000..ad44200
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/EquipmentStatsInfo.java
@@ -0,0 +1,31 @@
+package com.ruoyi.integration.drainage.model;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 充电设备统计信息
+ * @author zhibing.pu
+ * @Date 2025/1/21 15:22
+ */
+@Data
+public class EquipmentStatsInfo {
+	/**
+	 * 设备编码
+	 */
+	@NotNull
+	private String EquipmentID;
+	/**
+	 * 充电设备接口累计电量
+	 */
+	@NotNull
+	private BigDecimal EquipmentElectricity;
+	/**
+	 * 充电设备接口统计信息列表
+	 */
+	@NotNull
+	private List<ConnectorStatsInfo> ConnectorStatsInfos;
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/NotificationChargeOrderInfo.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/NotificationChargeOrderInfo.java
new file mode 100644
index 0000000..63f2d13
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/NotificationChargeOrderInfo.java
@@ -0,0 +1,82 @@
+package com.ruoyi.integration.drainage.model;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Null;
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 推送充电订单信息
+ * @author zhibing.pu
+ * @Date 2025/1/21 15:39
+ */
+@Data
+public class NotificationChargeOrderInfo {
+	/**
+	 * 充电订单号
+	 */
+	@NotNull
+	private String StartChargeSeq;
+	/**
+	 * 充电设备接口编码
+	 */
+	@NotNull
+	private String ConnectorID;
+	/**
+	 * 开始充电时间
+	 * yyyy-MM-dd HH:mm:ss
+	 */
+	@NotNull
+	private String StartTime;
+	/**
+	 * 结束充电时间
+	 * yyyy-MM-dd HH:mm:ss
+	 */
+	@NotNull
+	private String EndTime;
+	/**
+	 * 累计充电量
+	 */
+	@NotNull
+	private BigDecimal TotalPower;
+	/**
+	 * 总电费
+	 */
+	@NotNull
+	private BigDecimal TotalElecMoney;
+	/**
+	 * 总服务费
+	 */
+	@NotNull
+	private BigDecimal TotalSeviceMoney;
+	/**
+	 * 累计总金额
+	 */
+	@NotNull
+	private BigDecimal TotalMoney;
+	/**
+	 * 充电结束原因
+	 * 0:用户手动停止充电
+	 * 1:客户归属地运营商平台停止充电
+	 * 2:BMS停止充电
+	 * 3:充电机设备故障
+	 * 4:连接器断开
+	 * 5·99:自定义
+	 */
+	@NotNull
+	private Integer StopReason;
+	/**
+	 * 时段数 N
+	 * 0·32
+	 */
+	@Null
+	private Integer SumPeriod;
+	/**
+	 * 充电明细信息
+	 */
+	@Null
+	private List<ChargeDetail> ChargeDetails;
+	
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/NotificationChargeOrderInfoResult.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/NotificationChargeOrderInfoResult.java
new file mode 100644
index 0000000..15ac60c
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/NotificationChargeOrderInfoResult.java
@@ -0,0 +1,31 @@
+package com.ruoyi.integration.drainage.model;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * 推送充电订单信息返回记过
+ * @author zhibing.pu
+ * @Date 2025/1/21 15:49
+ */
+@Data
+public class NotificationChargeOrderInfoResult {
+	/**
+	 * 充电订单号
+	 */
+	@NotNull
+	private String StartChargeSeq;
+	/**
+	 * 充电设备接口编码
+	 */
+	@NotNull
+	private String ConnectorID;
+	/**
+	 * 确认结果
+	 * 0;成功
+	 * 1:争议交易
+	 * 2·99:自定义
+	 */
+	private Integer ConfirmResult;
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/NotificationEquipChargeStatusResult.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/NotificationEquipChargeStatusResult.java
new file mode 100644
index 0000000..8c4f54a
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/NotificationEquipChargeStatusResult.java
@@ -0,0 +1,26 @@
+package com.ruoyi.integration.drainage.model;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * 推送充电状态结果
+ * @author zhibing.pu
+ * @Date 2025/1/21 16:48
+ */
+@Data
+public class NotificationEquipChargeStatusResult {
+	/**
+	 * 充电订单号
+	 */
+	@NotNull
+	private String StartChargeSeq;
+	/**
+	 * 操作结果
+	 * 0:成功
+	 * 1:失败
+	 */
+	@NotNull
+	private Integer SuccStat;
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/NotificationStationStatusResult.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/NotificationStationStatusResult.java
new file mode 100644
index 0000000..527d2d1
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/NotificationStationStatusResult.java
@@ -0,0 +1,21 @@
+package com.ruoyi.integration.drainage.model;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * 设备状态变化推动返回结果
+ * @author zhibing.pu
+ * @Date 2025/1/21 14:58
+ */
+@Data
+public class NotificationStationStatusResult {
+	/**
+	 * 状态
+	 * 0:接收
+	 * 1:丢弃/忽略,不需要重试
+	 */
+	@NotNull
+	private Integer Status;
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/OperatorInfo.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/OperatorInfo.java
new file mode 100644
index 0000000..3def9e6
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/OperatorInfo.java
@@ -0,0 +1,45 @@
+package com.ruoyi.integration.drainage.model;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Null;
+
+/**
+ * 基础设施运营商信息
+ * @author zhibing.pu
+ * @Date 2025/1/21 11:49
+ */
+@Data
+public class OperatorInfo {
+	/**
+	 * 运营商ID
+	 */
+	@NotNull
+	private String OperatorID;
+	/**
+	 * 运营商名称
+	 */
+	@NotNull
+	private String OperatorName;
+	/**
+	 * 运营商电话1
+	 */
+	@NotNull
+	private String OperatorTel1;
+	/**
+	 * 运营商电话2
+	 */
+	@Null
+	private String OperatorTel2;
+	/**
+	 * 运营商注册地址
+	 */
+	@Null
+	private String OperatorRegAddress;
+	/**
+	 * 备注
+	 */
+	@Null
+	private String OperatorNote;
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/PolicyInfo.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/PolicyInfo.java
new file mode 100644
index 0000000..8d0daa3
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/PolicyInfo.java
@@ -0,0 +1,31 @@
+package com.ruoyi.integration.drainage.model;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+
+/**
+ * 计费信息
+ * @author zhibing.pu
+ * @Date 2025/1/21 16:10
+ */
+@Data
+public class PolicyInfo {
+	/**
+	 * 时段起始时间点
+	 * HHmmss
+	 */
+	@NotNull
+	private String StartTime;
+	/**
+	 * 时段电费
+	 */
+	@NotNull
+	private BigDecimal ElecPrice;
+	/**
+	 * 时段服务费
+	 */
+	@NotNull
+	private BigDecimal SevicePrice;
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryEquipBusinessPolicy.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryEquipBusinessPolicy.java
new file mode 100644
index 0000000..0322cc8
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryEquipBusinessPolicy.java
@@ -0,0 +1,25 @@
+package com.ruoyi.integration.drainage.model;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * 查询业务策略信息
+ * @author zhibing.pu
+ * @Date 2025/1/21 16:03
+ */
+@Data
+public class QueryEquipBusinessPolicy {
+	/**
+	 * 业务策略查询流水号
+	 * 格式”运营商ID+唯一编号“。27字符
+	 */
+	@NotNull
+	private String EquipBizSeq;
+	/**
+	 * 充电设备接口编码
+	 */
+	@NotNull
+	private String ConnectorID;
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryEquipBusinessPolicyResult.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryEquipBusinessPolicyResult.java
new file mode 100644
index 0000000..544247d
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryEquipBusinessPolicyResult.java
@@ -0,0 +1,51 @@
+package com.ruoyi.integration.drainage.model;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+ * 查询业务策略信息结果
+ * @author zhibing.pu
+ * @Date 2025/1/21 16:05
+ */
+@Data
+public class QueryEquipBusinessPolicyResult {
+	/**
+	 * 业务策略查询流水号
+	 */
+	@NotNull
+	private String EquipBizSeq;
+	/**
+	 * 充电设备接口编码
+	 */
+	@NotNull
+	private String ConnectorID;
+	/**
+	 * 操作结果
+	 * 0:成功
+	 * 1:失败
+	 */
+	@NotNull
+	private Integer SuccStat;
+	/**
+	 * 失败原因
+	 * 0:无
+	 * 1:此充电桩业务策略不存在
+	 */
+	@NotNull
+	private Integer FailReason;
+	/**
+	 * 时段数N
+	 * 0`32
+	 */
+	@NotNull
+	private Integer SumPeriod;
+	/**
+	 * 计策信息
+	 */
+	@NotNull
+	private List<PolicyInfo> PolicyInfos;
+
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryEquipChargeStatus.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryEquipChargeStatus.java
new file mode 100644
index 0000000..a23736b
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryEquipChargeStatus.java
@@ -0,0 +1,19 @@
+package com.ruoyi.integration.drainage.model;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * 查询充电状态
+ * @author zhibing.pu
+ * @Date 2025/1/21 16:17
+ */
+@Data
+public class QueryEquipChargeStatus {
+	/**
+	 * 充电订单号
+	 */
+	@NotNull
+	private String StartChargeSeq;
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryEquipChargeStatusResult.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryEquipChargeStatusResult.java
new file mode 100644
index 0000000..ae19f5e
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryEquipChargeStatusResult.java
@@ -0,0 +1,124 @@
+package com.ruoyi.integration.drainage.model;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Null;
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 查询充电状态结果
+ * @author zhibing.pu
+ * @Date 2025/1/21 15:58
+ */
+@Data
+public class QueryEquipChargeStatusResult {
+	/**
+	 * 充电订单号
+	 */
+	@NotNull
+	private String StartChargeSeq;
+	/**
+	 * 充电订单状态
+	 * 1:启动中
+	 * 2:充电中
+	 * 3:停止中
+	 * 4:已结束
+	 * 5:未知
+	 */
+	@NotNull
+	private Integer StartChargeSeqStat;
+	/**
+	 * 充电设备接口编号
+	 */
+	@NotNull
+	private String ConnectorID;
+	/**
+	 * 充电设备接口状态
+	 * 1:空闲
+	 * 2:占用(未充电)
+	 * 3:占用(充电中)
+	 * 4:占用(预约锁定)
+	 * 255:故障
+	 */
+	@NotNull
+	private Integer ConnectorStatus;
+	/**
+	 * A相电流
+	 */
+	@NotNull
+	private BigDecimal CurrentA;
+	/**
+	 * B相电流
+	 */
+	@Null
+	private BigDecimal CurrentB;
+	/**
+	 * C相电流
+	 */
+	@Null
+	private BigDecimal CurrentC;
+	/**
+	 * A相电压
+	 */
+	@NotNull
+	private BigDecimal VoltageA;
+	/**
+	 * B相电压
+	 */
+	@Null
+	private BigDecimal VoltageB;
+	/**
+	 * C相电压
+	 */
+	@Null
+	private BigDecimal VoltageC;
+	/**
+	 * 电池剩余电量
+	 */
+	@NotNull
+	private BigDecimal Soc;
+	/**
+	 * 开始充电时间
+	 */
+	@NotNull
+	private String StartTime;
+	/**
+	 * 本次采样时间
+	 */
+	@NotNull
+	private String EndTime;
+	/**
+	 * 累计充电量
+	 */
+	@NotNull
+	private BigDecimal TotalPower;
+	/**
+	 * 累计电费
+	 */
+	@Null
+	private BigDecimal ElecMoney;
+	/**
+	 * 累计服务费
+	 */
+	@Null
+	private BigDecimal SeviceMoney;
+	/**
+	 * 累计总金额
+	 */
+	@Null
+	private BigDecimal TotalMoney;
+	/**
+	 * 时段数N
+	 * 0`32
+	 */
+	@Null
+	private Integer SumPeriod;
+	/**
+	 * 充电明细信息
+	 */
+	@Null
+	private List<ChargeDetail> ChargeDetails;
+	
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStationStats.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStationStats.java
new file mode 100644
index 0000000..fd22d00
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStationStats.java
@@ -0,0 +1,31 @@
+package com.ruoyi.integration.drainage.model;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * 查询统计信息
+ * @author zhibing.pu
+ * @Date 2025/1/21 15:11
+ */
+@Data
+public class QueryStationStats {
+	/**
+	 * 充电站ID
+	 */
+	@NotNull
+	private String StationID;
+	/**
+	 * 统计开始时间
+	 * yyyy-MM-dd
+	 */
+	@NotNull
+	private String StartTime;
+	/**
+	 * 统计结束时间
+	 * yyyy-MM-dd
+	 */
+	@NotNull
+	private String EndTime;
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStationStatsResult.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStationStatsResult.java
new file mode 100644
index 0000000..81c15f5
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStationStatsResult.java
@@ -0,0 +1,19 @@
+package com.ruoyi.integration.drainage.model;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * 查询统计信息结果
+ * @author zhibing.pu
+ * @Date 2025/1/21 15:16
+ */
+@Data
+public class QueryStationStatsResult {
+	/**
+	 * 充电站统计信息
+	 */
+	@NotNull
+	private StationStatsInfo StationStats;
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStationStatus.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStationStatus.java
new file mode 100644
index 0000000..aca7ac0
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStationStatus.java
@@ -0,0 +1,21 @@
+package com.ruoyi.integration.drainage.model;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+ * 设备接口状态查询
+ * @author zhibing.pu
+ * @Date 2025/1/21 15:01
+ */
+@Data
+public class QueryStationStatus {
+	/**
+	 * 充电站ID列表
+	 * 数组长度不超过50
+	 */
+	@NotNull
+	private List<String> StationIDs;
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStationStatusResult.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStationStatusResult.java
new file mode 100644
index 0000000..1ba9870
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStationStatusResult.java
@@ -0,0 +1,22 @@
+package com.ruoyi.integration.drainage.model;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 设备接口状态查询返回结果
+ * @author zhibing.pu
+ * @Date 2025/1/21 15:04
+ */
+@Data
+public class QueryStationStatusResult {
+	/**
+	 * 结果总数
+	 */
+	private Integer Total;
+	/**
+	 * 设备接口状态列表
+	 */
+	private List<StationStatusInfo> StationStatusInfos;
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStationsInfo.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStationsInfo.java
new file mode 100644
index 0000000..048cd1b
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStationsInfo.java
@@ -0,0 +1,31 @@
+package com.ruoyi.integration.drainage.model;
+
+import lombok.Data;
+
+import javax.validation.constraints.Null;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/1/21 14:41
+ */
+@Data
+public class QueryStationsInfo {
+	/**
+	 * 上次查询时间
+	 * yyyy-MM-dd HH:mm:ss
+	 */
+	@Null
+	private String LastQueryTime;
+	/**
+	 * 查询页码
+	 * 默认1
+	 */
+	@Null
+	private Integer PageNo;
+	/**
+	 * 每页数量
+	 * 默认10
+	 */
+	@Null
+	private Integer PageSize;
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStationsInfoResult.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStationsInfoResult.java
new file mode 100644
index 0000000..dced6d5
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/QueryStationsInfoResult.java
@@ -0,0 +1,30 @@
+package com.ruoyi.integration.drainage.model;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 公共返回结果
+ * @author zhibing.pu
+ * @Date 2025/1/21 14:44
+ */
+@Data
+public class QueryStationsInfoResult {
+	/**
+	 * 当前页数
+	 */
+	private Integer PageNo;
+	/**
+	 * 页码总数
+	 */
+	private Integer PageCount;
+	/**
+	 * 总记录条数
+	 */
+	private Integer ItemSize;
+	/**
+	 * 充电站信息列表
+	 */
+	private List<StationInfo> StationInfos;
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/StationInfo.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/StationInfo.java
new file mode 100644
index 0000000..9acbf16
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/StationInfo.java
@@ -0,0 +1,154 @@
+package com.ruoyi.integration.drainage.model;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Null;
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 充电站信息
+ * @author zhibing.pu
+ * @Date 2025/1/21 11:54
+ */
+@Data
+public class StationInfo {
+	/**
+	 * 充电站ID
+	 */
+	@NotNull
+	private String StationID;
+	/**
+	 * 运营商ID
+	 */
+	@NotNull
+	private String OperatorID;
+	/**
+	 * 设备所属方ID
+	 * 设备所属运营平台组织机构代码
+	 */
+	@NotNull
+	private String EquipmentOwnerID;
+	/**
+	 * 充电站名称
+	 */
+	@NotNull
+	private String StationName;
+	/**
+	 * 充电站国家代码
+	 */
+	@NotNull
+	private String CountryCode;
+	/**
+	 * 充电站省市辖区编码
+	 */
+	@NotNull
+	private String AreaCode;
+	/**
+	 * 详细地址
+	 */
+	@NotNull
+	private String Address;
+	/**
+	 * 站点电话
+	 */
+	@Null
+	private String StationTel;
+	/**
+	 * 站点电话
+	 */
+	@NotNull
+	private String ServiceTel;
+	/**
+	 * 站点类型
+	 */
+	@NotNull
+	private Integer StationType;
+	/**
+	 * 站点状态
+	 */
+	@NotNull
+	private Integer StationStatus;
+	/**
+	 * 车位数量,0:未知
+	 */
+	@NotNull
+	private Integer ParkNums;
+	/**
+	 * 经度(保留6位小数)
+	 */
+	@NotNull
+	private BigDecimal StationLng;
+	/**
+	 * 纬度(保留6位小数)
+	 */
+	@NotNull
+	private BigDecimal StationLat;
+	/**
+	 * 站点引导
+	 */
+	@Null
+	private String SiteGuide;
+	/**
+	 * 建设场所
+	 */
+	@NotNull
+	private Integer Construction;
+	/**
+	 * 站点照片
+	 * 字符串数组
+	 */
+	@Null
+	private List<String> Pictures;
+	/**
+	 * 使用车型描述
+	 */
+	@Null
+	private String MatchCars;
+	/**
+	 * 车位楼层及数量描述
+	 */
+	@Null
+	private String ParkInfo;
+	/**
+	 * 营业时间
+	 */
+	@Null
+	private String BusineHours;
+	/**
+	 * 充电电费率描述
+	 */
+	@Null
+	private String ElectricityFee;
+	/**
+	 * 服务费率描述
+	 */
+	@Null
+	private String ServiceFee;
+	/**
+	 * 停车费率描述
+	 */
+	@Null
+	private String ParkFee;
+	/**
+	 * 支付方式:刷卡、线上、现金
+	 */
+	@Null
+	private String Payment;
+	/**
+	 * 是否支持预约
+	 */
+	@Null
+	private Integer SupportOrder;
+	/**
+	 * 备注
+	 */
+	@Null
+	private String Remark;
+	/**
+	 * 充电设备信息列表
+	 */
+	@NotNull
+	private List<EquipmentInfo> EquipmentInfos;
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/StationStatsInfo.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/StationStatsInfo.java
new file mode 100644
index 0000000..b84488e
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/StationStatsInfo.java
@@ -0,0 +1,43 @@
+package com.ruoyi.integration.drainage.model;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 充电站统计信息
+ * @author zhibing.pu
+ * @Date 2025/1/21 15:17
+ */
+@Data
+public class StationStatsInfo {
+	/**
+	 * 充电站ID
+	 */
+	@NotNull
+	private String StationID;
+	/**
+	 * 统计的开始时间
+	 * yyyy-MM-dd
+	 */
+	@NotNull
+	private String StartTime;
+	/**
+	 * 统计的结束时间
+	 * yyyy-MM-dd
+	 */
+	@NotNull
+	private String EndTime;
+	/**
+	 * 充电站累计电量 kw/h
+	 */
+	@NotNull
+	private BigDecimal StationElectricity;
+	/**
+	 * 充电设备统计信息列表
+	 */
+	@NotNull
+	private List<EquipmentStatsInfo> EquipmentStatsInfos;
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/StationStatusInfo.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/StationStatusInfo.java
new file mode 100644
index 0000000..8093976
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/StationStatusInfo.java
@@ -0,0 +1,24 @@
+package com.ruoyi.integration.drainage.model;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+ * 充电站状态信息
+ * @author zhibing.pu
+ * @Date 2025/1/21 15:07
+ */
+@Data
+public class StationStatusInfo {
+	/**
+	 * 充电站ID
+	 */
+	@NotNull
+	private String StationID;
+	/**
+	 * 充电设备接口状态列表
+	 */
+	private List<ConnectorStatusInfo> ConnectorStatusInfos;
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/enu/ConnectorTypeEnum.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/enu/ConnectorTypeEnum.java
new file mode 100644
index 0000000..7e74736
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/enu/ConnectorTypeEnum.java
@@ -0,0 +1,39 @@
+package com.ruoyi.integration.drainage.model.enu;
+
+/**
+ * 充电设备接口类型
+ * @author zhibing.pu
+ * @Date 2025/1/21 14:14
+ */
+public enum ConnectorTypeEnum {
+	HOUSEHOLD_SOCKET(1, "家用插座"),
+	AC_SOCKET(2, "交流接口插座"),
+	AC_INTERFACE_PLUG(3, "交流接口插头"),
+	DC_INTERFACE_GUN_HEAD(4, "直流接口枪头"),
+	WIRELESS_CHARGING_STAND(5, "无线充电座"),
+	OTHER(6, "其他")
+	;
+	private Integer type;
+	private String note;
+	
+	ConnectorTypeEnum(Integer type, String note) {
+		this.type = type;
+		this.note = note;
+	}
+	
+	public Integer getType() {
+		return type;
+	}
+	
+	public void setType(Integer type) {
+		this.type = type;
+	}
+	
+	public String getNote() {
+		return note;
+	}
+	
+	public void setNote(String note) {
+		this.note = note;
+	}
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/enu/ConstructionEnum.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/enu/ConstructionEnum.java
new file mode 100644
index 0000000..f7925c6
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/enu/ConstructionEnum.java
@@ -0,0 +1,45 @@
+package com.ruoyi.integration.drainage.model.enu;
+
+/**
+ * 建设场所
+ * @author zhibing.pu
+ * @Date 2025/1/21 13:25
+ */
+public enum ConstructionEnum {
+	RESIDENTIAL_AREA(1, "居民区"),
+	PUBLIC_INSTITUTION(2, "公共机构"),
+	ENTERPRISE(3, "企事业单位"),
+	OFFICE_BUILDING(4, "写字楼"),
+	INDUSTRIAL_PARK(5, "工业园区"),
+	TRANSPORTATION_JUNCTION(6, "交通枢纽"),
+	CULTURE_AND_SPORTS(7, "大型文体设施"),
+	URBAN_GREEN_SPACE(8, "城市绿地"),
+	ANCILLARY_PARKING_LOT(9, "大型建筑配建停车场"),
+	OFF_STREET_PARKING_SPACE(10, "路边停车位"),
+	HIGH_SPEED_SERVICE_AREA(11, "城际高速服务区"),
+	OTHER(255, "其他");
+	
+	private Integer type;
+	private String note;
+	
+	ConstructionEnum(Integer type, String note) {
+		this.type = type;
+		this.note = note;
+	}
+	
+	public Integer getType() {
+		return type;
+	}
+	
+	public void setType(Integer type) {
+		this.type = type;
+	}
+	
+	public String getNote() {
+		return note;
+	}
+	
+	public void setNote(String note) {
+		this.note = note;
+	}
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/enu/EquipmentTypeEnum.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/enu/EquipmentTypeEnum.java
new file mode 100644
index 0000000..c5630c6
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/enu/EquipmentTypeEnum.java
@@ -0,0 +1,40 @@
+package com.ruoyi.integration.drainage.model.enu;
+
+/**
+ * 设备类型
+ * @author zhibing.pu
+ * @Date 2025/1/21 13:59
+ */
+public enum EquipmentTypeEnum {
+	DIRECT_CURRENT(1, "直流设备"),
+	ALTERNATING_CURRENT(2, "交流设备"),
+	ALTERNATING_DIRECT(3, "交直流一体设备"),
+	WIRELESS_DEVICE(4, "无线设备"),
+	OTHER(5, "其他")
+	;
+	
+	
+	private Integer type;
+	private String note;
+	
+	EquipmentTypeEnum(Integer type, String note) {
+		this.type = type;
+		this.note = note;
+	}
+	
+	public Integer getType() {
+		return type;
+	}
+	
+	public void setType(Integer type) {
+		this.type = type;
+	}
+	
+	public String getNote() {
+		return note;
+	}
+	
+	public void setNote(String note) {
+		this.note = note;
+	}
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/enu/InterfaceUrlEnum.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/enu/InterfaceUrlEnum.java
new file mode 100644
index 0000000..eebc932
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/enu/InterfaceUrlEnum.java
@@ -0,0 +1,39 @@
+package com.ruoyi.integration.drainage.model.enu;
+
+/**
+ * 接口地址枚举
+ * @author zhibing.pu
+ * @Date 2025/1/21 14:38
+ */
+public enum InterfaceUrlEnum {
+	QUERY_STATIONS_INFO("query_stations_info", "查询充电站信息"),
+	NOTIFICATION_STATION_STATUS("notification_stationStatus", "设备状态变化推送"),
+	QUERY_STATION_STATUS("query_station_status", "设备接口状态查询"),
+	
+	;
+	
+	private String url;
+	private String note;
+	
+	InterfaceUrlEnum(String url, String note) {
+		this.url = url;
+		this.note = note;
+	}
+	
+	
+	public String getUrl() {
+		return url;
+	}
+	
+	public void setUrl(String url) {
+		this.url = url;
+	}
+	
+	public String getNote() {
+		return note;
+	}
+	
+	public void setNote(String note) {
+		this.note = note;
+	}
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/enu/StationStatusEnum.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/enu/StationStatusEnum.java
new file mode 100644
index 0000000..17e0cc7
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/enu/StationStatusEnum.java
@@ -0,0 +1,38 @@
+package com.ruoyi.integration.drainage.model.enu;
+
+/**
+ * 站点状态
+ * @author zhibing.pu
+ * @Date 2025/1/21 12:10
+ */
+public enum StationStatusEnum {
+	UNKNOWN(0, "未知"),
+	UNDER_CONSTRUCTION(1, "建设中"),
+	OFF_LINE(5, "关闭下线"),
+	MAINTAIN(6, "维护中"),
+	NORMAL_USE(50, "正常使用")
+	;
+	private Integer status;
+	private String note;
+	
+	StationStatusEnum(Integer status, String note) {
+		this.status = status;
+		this.note = note;
+	}
+	
+	public Integer getStatus() {
+		return status;
+	}
+	
+	public void setStatus(Integer status) {
+		this.status = status;
+	}
+	
+	public String getNote() {
+		return note;
+	}
+	
+	public void setNote(String note) {
+		this.note = note;
+	}
+}
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/enu/StationTypeEnum.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/enu/StationTypeEnum.java
new file mode 100644
index 0000000..05fd085
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/drainage/model/enu/StationTypeEnum.java
@@ -0,0 +1,41 @@
+package com.ruoyi.integration.drainage.model.enu;
+
+/**
+ * 站点类型
+ * @author zhibing.pu
+ * @Date 2025/1/21 12:00
+ */
+public enum StationTypeEnum {
+	PUBLIC(1, "公共"),
+	PERSONAGE(50, "个人"),
+	BUS_SPECIFIC(100, "公交(专用)"),
+	SANITATION_SPECIFIC(101, "环卫(专用)"),
+	LOGISTICS_SPECIFIC(102, "物流(专用)"),
+	TEXT_SPECIFIC(103, "出租车(专用)"),
+	OTHER(255, "其他")
+	;
+	
+	private Integer type;
+	private String note;
+	
+	StationTypeEnum(Integer type, String note) {
+		this.type = type;
+		this.note = note;
+	}
+	
+	public Integer getType() {
+		return type;
+	}
+	
+	public void setType(Integer type) {
+		this.type = type;
+	}
+	
+	public String getNote() {
+		return note;
+	}
+	
+	public void setNote(String note) {
+		this.note = note;
+	}
+}

--
Gitblit v1.7.1