From 367a503f97ba67a73457f05885d0ea65f2d997fd Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期五, 09 八月 2024 18:19:56 +0800
Subject: [PATCH] 站点详情

---
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/TChargingPileVO.java                |   31 ++++++
 ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/GeodesyUtil.java                        |    6 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TChargingGunService.java           |   10 ++
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TChargingPileMapper.java            |    8 +
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingGunServiceImpl.java  |   42 ++++++++
 ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TChargingPileMapper.xml                  |    4 
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/ChargingGunCountVO.java             |    2 
 ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/status/ChargingGunStatusEnum.java       |   50 ++++++++++
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TChargingPileService.java          |   11 ++
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java             |   40 ++++++-
 ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/status/ChargingGunModeEnum.java         |   46 +++++++++
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java |   16 +++
 12 files changed, 251 insertions(+), 15 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/ChargingGunCountVO.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/ChargingGunCountVO.java
index a5e9f48..890d00c 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/ChargingGunCountVO.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/ChargingGunCountVO.java
@@ -10,7 +10,7 @@
 public class ChargingGunCountVO extends Site {
 
     @ApiModelProperty(value = "充电枪在线数量")
-    private Integer onlineCount;
+    private Integer freeCount;
     @ApiModelProperty(value = "充电枪总数数量")
     private Integer totalCount;
 
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/TChargingPileVO.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/TChargingPileVO.java
new file mode 100644
index 0000000..fc4a5cb
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/vo/TChargingPileVO.java
@@ -0,0 +1,31 @@
+package com.ruoyi.chargingPile.api.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.chargingPile.api.model.TChargingGun;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+@ApiModel(value = "TChargingPileVO对象",description = "充电桩信息")
+public class TChargingPileVO implements Serializable {
+    @ApiModelProperty(value = "充电桩id")
+    private Integer id;
+
+    @ApiModelProperty(value = "设备编号")
+    private String code;
+
+    @ApiModelProperty(value = "充电设备名称")
+    private String name;
+
+    @ApiModelProperty(value = "桩号")
+    private Integer number;
+
+    @ApiModelProperty(value = "充电枪信息列表")
+    private List<TChargingGun> chargingGunList;
+
+}
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/status/ChargingGunModeEnum.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/status/ChargingGunModeEnum.java
new file mode 100644
index 0000000..78f4886
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/status/ChargingGunModeEnum.java
@@ -0,0 +1,46 @@
+package com.ruoyi.common.core.enums.status;
+
+import lombok.Getter;
+
+/**
+ * @Description
+ * @Author xiaochen
+ * @Date 2023/6/8 16:42
+ */
+public enum ChargingGunModeEnum {
+
+
+    SUPER_SUFFICIENT(1, "超级快充"),
+    FAST_SUFFICIENT(2, "快充"),
+    SLOW_SUFFICIENT(3, "慢充");
+
+    @Getter
+    private String desc;
+
+
+    @Getter
+    private int code;
+
+
+    ChargingGunModeEnum(int code, String desc) {
+        this.code = code;
+        this.desc = desc;
+    }
+
+    /**
+     * 通过code获取枚举
+     *
+     * @param code
+     * @return
+     */
+    public static ChargingGunModeEnum fromCode(Integer code) {
+        ChargingGunModeEnum[] resultTypes = ChargingGunModeEnum.values();
+        for (ChargingGunModeEnum resultType : resultTypes) {
+            if (code.equals(resultType.getCode())) {
+                return resultType;
+            }
+        }
+        return null;
+    }
+
+}
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/status/ChargingGunStatusEnum.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/status/ChargingGunStatusEnum.java
new file mode 100644
index 0000000..219aea2
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/status/ChargingGunStatusEnum.java
@@ -0,0 +1,50 @@
+package com.ruoyi.common.core.enums.status;
+
+import lombok.Getter;
+
+/**
+ * @Description
+ * @Author xiaochen
+ * @Date 2023/6/8 16:42
+ */
+public enum ChargingGunStatusEnum {
+
+
+    OFFLINE(1, "离线"),
+    IDLE(2, "空闲"),
+    OCCUPATION_UNCHARGED(3, "占用(未充电)"),
+    OCCUPATION_CHARGING(4, "占用(充电中)"),
+    OCCUPATION_FULL(5, "占用(已充满)"),
+    OCCUPATION_LOCK(6, "占用(预约锁定)"),
+    FAULT(7, "故障");
+
+    @Getter
+    private String desc;
+
+
+    @Getter
+    private int code;
+
+
+    ChargingGunStatusEnum(int code, String desc) {
+        this.code = code;
+        this.desc = desc;
+    }
+
+    /**
+     * 通过code获取枚举
+     *
+     * @param code
+     * @return
+     */
+    public static ChargingGunStatusEnum fromCode(Integer code) {
+        ChargingGunStatusEnum[] resultTypes = ChargingGunStatusEnum.values();
+        for (ChargingGunStatusEnum resultType : resultTypes) {
+            if (code.equals(resultType.getCode())) {
+                return resultType;
+            }
+        }
+        return null;
+    }
+
+}
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/GeodesyUtil.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/GeodesyUtil.java
index 759e585..ff1cfd1 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/GeodesyUtil.java
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/GeodesyUtil.java
@@ -4,7 +4,6 @@
 import org.gavaghan.geodesy.GeodeticCalculator;
 import org.gavaghan.geodesy.GeodeticCurve;
 import org.gavaghan.geodesy.GlobalCoordinates;
-import org.springframework.stereotype.Component;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -12,7 +11,6 @@
 /**
  * 计算两个金纬度坐标之间的直线距离
  */
-@Component
 public class GeodesyUtil {
 
 
@@ -22,7 +20,7 @@
      * @param toLonLat
      * @return
      */
-    public Map<String, Double> getDistance(String fromLonLat, String toLonLat){
+    public static Map<String, Double> getDistance(String fromLonLat, String toLonLat){
         Map<String, Double> map = null;
         if(StringUtils.isNotEmpty(fromLonLat) && StringUtils.isNotEmpty(toLonLat)){
             map = new HashMap<>();
@@ -59,7 +57,7 @@
     }
 
 
-    private double getDistanceMeter(GlobalCoordinates gpsFrom, GlobalCoordinates gpsTo, Ellipsoid ellipsoid){
+    private static double getDistanceMeter(GlobalCoordinates gpsFrom, GlobalCoordinates gpsTo, Ellipsoid ellipsoid){
         //创建GeodeticCalculator,调用计算方法,传入坐标系、经纬度用于计算距离
         GeodeticCurve geoCurve = new GeodeticCalculator().calculateGeodeticCurve(ellipsoid, gpsFrom, gpsTo);
         return geoCurve.getEllipsoidalDistance();
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 33c4558..1b69eef 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
@@ -3,14 +3,21 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ruoyi.chargingPile.api.dto.GetSiteListDTO;
 import com.ruoyi.chargingPile.api.model.Site;
+import com.ruoyi.chargingPile.api.model.TChargingGun;
+import com.ruoyi.chargingPile.api.model.TChargingPile;
 import com.ruoyi.chargingPile.api.query.GetSiteList;
 import com.ruoyi.chargingPile.api.query.SiteDetailQuery;
 import com.ruoyi.chargingPile.api.query.SiteQuery;
+import com.ruoyi.chargingPile.api.vo.ChargingGunCountVO;
 import com.ruoyi.chargingPile.api.vo.SiteDetailVO;
 import com.ruoyi.chargingPile.api.vo.SiteVO;
+import com.ruoyi.chargingPile.api.vo.TChargingPileVO;
 import com.ruoyi.chargingPile.domain.SiteMenu;
 import com.ruoyi.chargingPile.service.IPartnerService;
 import com.ruoyi.chargingPile.service.ISiteService;
+import com.ruoyi.chargingPile.service.TChargingGunService;
+import com.ruoyi.chargingPile.service.TChargingPileService;
+import com.ruoyi.common.core.utils.GeodesyUtil;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.core.web.page.PageInfo;
 import com.ruoyi.common.security.utils.SecurityUtils;
@@ -19,11 +26,13 @@
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author zhibing.pu
@@ -38,15 +47,14 @@
 	
 	@Resource
 	private IPartnerService partnerService;
-	
+
 	@Resource
 	private SysUserClient sysUserClient;
-	
-	
-	
-	
-	
 
+	@Autowired
+	private TChargingPileService chargingPileService;
+	@Autowired
+	private TChargingGunService chargingGunService;
 
 	@ResponseBody
 	@GetMapping("/getSiteList")
@@ -62,15 +70,29 @@
 		return AjaxResult.success(siteService.pageList(query));
 	}
 
-	@ApiOperation(value = "获取站点详细信息", tags = {"小程序-站点管理"})
-	@GetMapping("/getDetailById")
+	@ApiOperation(value = "获取站点详细信息", tags = {"小程序-站点管理-站点详情"})
+	@PostMapping("/getDetailById")
 	public AjaxResult<SiteDetailVO> getDetailById(@Validated @RequestBody SiteDetailQuery query){
 		SiteDetailVO siteDetailVO = siteService.getDetailById(query.getSiteId());
-
+		// 计算距离
+		Map<String, Double> distance = GeodesyUtil.getDistance(query.getLat() + "," + query.getLon(), siteDetailVO.getLat() + "," + siteDetailVO.getLon());
+		siteDetailVO.setDistance(distance.get("WGS84"));
 		// TODO 查询绑定车牌提示文案
 		return AjaxResult.success(siteDetailVO);
 	}
 
+	@ApiOperation(value = "获取站点下充电桩及充电枪列表", tags = {"小程序-站点管理-站点详情"})
+	@GetMapping("/getChargingGunList")
+	public AjaxResult<List<TChargingPileVO>> getChargingGunList(@RequestParam(name = "siteId",value = "站点id")Integer siteId){
+		return AjaxResult.success(chargingPileService.getChargingGunList(siteId));
+	}
+
+	@ApiOperation(value = "获取站点下充电枪数量统计", tags = {"小程序-站点管理-站点详情"})
+	@GetMapping("/getChargingGunCount")
+	public AjaxResult<Map<String,ChargingGunCountVO>> getChargingGunCount(@RequestParam(name = "siteId",value = "站点id")Integer siteId){
+		return AjaxResult.success(chargingGunService.getChargingGunCount(siteId));
+	}
+
 	
 	@ResponseBody
 	@PostMapping("/getSiteList")
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TChargingPileMapper.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TChargingPileMapper.java
index c4b4151..040aa19 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TChargingPileMapper.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TChargingPileMapper.java
@@ -4,6 +4,7 @@
 import com.ruoyi.chargingPile.api.dto.PageChargingPileListDTO;
 import com.ruoyi.chargingPile.api.model.TChargingPile;
 import com.ruoyi.chargingPile.api.query.PageChargingPileList;
+import com.ruoyi.chargingPile.api.vo.TChargingPileVO;
 import com.ruoyi.common.core.web.page.PageInfo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -36,4 +37,11 @@
 	 * @return
 	 */
 	TChargingPile getChargingPile(Integer id);
+
+	/**
+	 * 获取站点下充电桩及充电枪列表
+	 * @param siteId
+	 * @return
+	 */
+    List<TChargingPileVO> getChargingGunList(@Param("siteId")Integer siteId);
 }
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TChargingGunService.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TChargingGunService.java
index 323273d..fab3626 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TChargingGunService.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TChargingGunService.java
@@ -4,10 +4,13 @@
 import com.ruoyi.chargingPile.api.dto.TChargingGunDTO;
 import com.ruoyi.chargingPile.api.model.TChargingGun;
 import com.ruoyi.chargingPile.api.query.TChargingGunQuery;
+import com.ruoyi.chargingPile.api.vo.ChargingGunCountVO;
 import com.ruoyi.chargingPile.api.vo.TChargingGunVO;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.core.web.page.PageInfo;
 import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.Map;
 
 /**
  * <p>
@@ -40,4 +43,11 @@
      * @return
      */
     AjaxResult update(TChargingGunDTO dto);
+
+    /**
+     * 获取站点下充电枪数量统计
+     * @param siteId
+     * @return
+     */
+    Map<String, ChargingGunCountVO> getChargingGunCount(Integer siteId);
 }
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TChargingPileService.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TChargingPileService.java
index b3360ed..7ca7a8d 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TChargingPileService.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TChargingPileService.java
@@ -5,10 +5,13 @@
 import com.ruoyi.chargingPile.api.model.TChargingPile;
 import com.ruoyi.chargingPile.api.query.BatchSetAccountingStrategy;
 import com.ruoyi.chargingPile.api.query.PageChargingPileList;
+import com.ruoyi.chargingPile.api.vo.TChargingPileVO;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.core.web.page.PageInfo;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
 
 /**
  * <p>
@@ -66,4 +69,12 @@
 	 * @param setAccountingStrategy
 	 */
 	void batchSetAccountingStrategy(BatchSetAccountingStrategy setAccountingStrategy);
+
+	/**
+	 * 获取站点下充电桩及充电枪列表
+	 * @param siteId
+	 * @return
+	 */
+	List<TChargingPileVO> getChargingGunList(Integer siteId);
+
 }
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingGunServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingGunServiceImpl.java
index b97602d..3a8e666 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingGunServiceImpl.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingGunServiceImpl.java
@@ -1,16 +1,20 @@
 package com.ruoyi.chargingPile.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.chargingPile.api.dto.TChargingGunDTO;
 import com.ruoyi.chargingPile.api.model.TChargingGun;
 import com.ruoyi.chargingPile.api.query.TChargingGunQuery;
+import com.ruoyi.chargingPile.api.vo.ChargingGunCountVO;
 import com.ruoyi.chargingPile.api.vo.TChargingGunVO;
 import com.ruoyi.chargingPile.api.vo.TMonitoringEquipmentVO;
 import com.ruoyi.chargingPile.domain.SiteMenu;
 import com.ruoyi.chargingPile.mapper.TChargingGunMapper;
 import com.ruoyi.chargingPile.service.IPartnerService;
 import com.ruoyi.chargingPile.service.TChargingGunService;
+import com.ruoyi.common.core.enums.status.ChargingGunModeEnum;
+import com.ruoyi.common.core.enums.status.ChargingGunStatusEnum;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.core.web.page.PageInfo;
@@ -20,7 +24,10 @@
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -106,7 +113,40 @@
         this.updateById(dto);
         return AjaxResult.success();
     }
-    
+
+    @Override
+    public Map<String, ChargingGunCountVO> getChargingGunCount(Integer siteId) {
+        Map<String, ChargingGunCountVO> map = new HashMap<>(4);
+        // 查询全部充电枪
+        List<TChargingGun> list = this.list(Wrappers.lambdaQuery(TChargingGun.class).eq(TChargingGun::getSiteId, siteId));
+        int freeCount = 0;
+        // 超级充
+        ChargingGunCountVO superSufficient = getGunCount(ChargingGunModeEnum.SUPER_SUFFICIENT.getCode(), list);
+        freeCount += superSufficient.getFreeCount();
+        map.put("superSufficient", superSufficient);
+        // 快充
+        ChargingGunCountVO fastSufficient = getGunCount(ChargingGunModeEnum.FAST_SUFFICIENT.getCode(), list);
+        freeCount += fastSufficient.getFreeCount();
+        map.put("fastSufficient", fastSufficient);
+        // 慢充
+        ChargingGunCountVO slowSufficient = getGunCount(ChargingGunModeEnum.SLOW_SUFFICIENT.getCode(), list);
+        freeCount += slowSufficient.getFreeCount();
+        map.put("slowSufficient", slowSufficient);
+        ChargingGunCountVO chargingGunCountVO = new ChargingGunCountVO();
+        chargingGunCountVO.setTotalCount(list.size());
+        chargingGunCountVO.setFreeCount(freeCount);
+        map.put("totalSufficient", chargingGunCountVO);
+        return map;
+    }
+
+    private ChargingGunCountVO getGunCount(Integer chargeMode, List<TChargingGun> list){
+        ChargingGunCountVO chargingGunCountVO = new ChargingGunCountVO();
+        chargingGunCountVO.setTotalCount(list.stream().filter(tChargingGun -> tChargingGun.getChargeMode().equals(chargeMode)).collect(Collectors.toList()).size());
+        chargingGunCountVO.setFreeCount(list.stream().filter(tChargingGun -> tChargingGun.getChargeMode().equals(chargeMode)
+                && tChargingGun.getStatus()== ChargingGunStatusEnum.IDLE.getCode()).collect(Collectors.toList()).size());
+        return chargingGunCountVO;
+    }
+
     /**
      * 校验必填项
      * @param dto
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java
index 055590a..4c2d1e5 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java
@@ -1,12 +1,15 @@
 package com.ruoyi.chargingPile.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.chargingPile.api.dto.PageChargingPileListDTO;
 import com.ruoyi.chargingPile.api.model.TChargingGun;
 import com.ruoyi.chargingPile.api.model.TChargingPile;
 import com.ruoyi.chargingPile.api.query.BatchSetAccountingStrategy;
 import com.ruoyi.chargingPile.api.query.PageChargingPileList;
+import com.ruoyi.chargingPile.api.vo.TChargingGunVO;
+import com.ruoyi.chargingPile.api.vo.TChargingPileVO;
 import com.ruoyi.chargingPile.domain.SiteMenu;
 import com.ruoyi.chargingPile.mapper.TChargingPileMapper;
 import com.ruoyi.chargingPile.service.IPartnerService;
@@ -192,4 +195,17 @@
 		}
 		chargingGunService.updateBatchById(list);
 	}
+
+	@Override
+	public List<TChargingPileVO> getChargingGunList(Integer siteId) {
+		List<TChargingPileVO> chargingPileVOS = this.baseMapper.getChargingGunList(siteId);
+		List<TChargingGun> chargingGuns = chargingGunService.list(Wrappers.lambdaQuery(TChargingGun.class)
+				.eq(TChargingGun::getSiteId, siteId));
+		// 查询充电枪信息
+		chargingPileVOS.forEach(item -> {
+			List<TChargingGun> gunList = chargingGuns.stream().filter(gun -> gun.getChargingPileId().equals(item.getId())).collect(Collectors.toList());
+			item.setChargingGunList(gunList);
+		});
+		return chargingPileVOS;
+	}
 }
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TChargingPileMapper.xml b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TChargingPileMapper.xml
index 6171d5f..2cab472 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TChargingPileMapper.xml
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TChargingPileMapper.xml
@@ -75,4 +75,8 @@
         left join t_site b on (a.site_id = b.id)
         left join t_partner c on (a.partner_id = c.id)
     </select>
+    <select id="getChargingGunList" resultType="com.ruoyi.chargingPile.api.vo.TChargingPileVO">
+        select id,code, `name`, `number` from t_charging_pile
+        where del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()} and site_id = #{siteId}
+    </select>
 </mapper>

--
Gitblit v1.7.1