From 2f226b5b2d80be1eba34d3c641b7cc08be0c322c Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期五, 09 八月 2024 10:32:15 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyServiceImpl.java |   10 
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/dto/PageChargingPileListDTO.java             |   41 +++
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingGunController.java           |   31 +
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/PartnerController.java                |    2 
 ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml                                 |    5 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TChargingGunService.java                 |   19 +
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingGunServiceImpl.java        |   82 ++++++
 ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TChargingPileMapper.xml                        |   42 +++
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java                   |   24 +
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java    |   20 +
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TChargingPile.java                     |   22 +
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java             |   13 +
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TAccountingStrategyService.java          |    9 
 ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TAccountingStrategyMapper.xml                  |    7 
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/dto/GetSiteListDTO.java                      |    4 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TChargingPileMapper.java                  |   23 +
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TChargingGun.java                      |   26 +-
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/BatchSetAccountingStrategy.java        |   20 +
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/ISiteService.java                        |   13 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java       |  150 +++++++++++
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TAccountingStrategyMapper.java            |    8 
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/PageChargingPileList.java              |   22 +
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TChargingPileService.java                |   55 ++++
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java          |   73 +++++
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java                |   28 ++
 25 files changed, 698 insertions(+), 51 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/dto/GetSiteListDTO.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/dto/GetSiteListDTO.java
index 641f0ff..7fb9ab5 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/dto/GetSiteListDTO.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/dto/GetSiteListDTO.java
@@ -39,4 +39,8 @@
 	private Integer chargingPileNumber;
 	@ApiModelProperty(value = "排序")
 	private Integer sort;
+	@ApiModelProperty("计费策略id")
+	private Integer accountingStrategyId;
+	@ApiModelProperty("计费策略类型(1=平台添加,2=自定义策略)")
+	private Integer accountingStrategyType;
 }
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/dto/PageChargingPileListDTO.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/dto/PageChargingPileListDTO.java
new file mode 100644
index 0000000..b58c94f
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/dto/PageChargingPileListDTO.java
@@ -0,0 +1,41 @@
+package com.ruoyi.chargingPile.api.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/8/8 15:07
+ */
+@Data
+@ApiModel
+public class PageChargingPileListDTO {
+	@ApiModelProperty(value = "充电桩id")
+	private Integer id;
+	@ApiModelProperty(value = "充电桩编号")
+	private String code;
+	@ApiModelProperty(value = "充电桩名称")
+	private String name;
+	@ApiModelProperty(value = "桩号")
+	private String number;
+	@ApiModelProperty(value = "设备类型(0=其他,1=直流设备,2=交流设备,3=交直流一体设备,4=无线设备)")
+	private Integer type;
+	@ApiModelProperty(value = "归属电站id")
+	private Integer siteId;
+	@ApiModelProperty(value = "归属电站名称")
+	private String siteName;
+	@ApiModelProperty(value = "归属合作商id")
+	private String partnerId;
+	@ApiModelProperty(value = "归属合作商名称")
+	private String partnerName;
+	@ApiModelProperty(value = "生产商名称")
+	private String manufacturer;
+	@ApiModelProperty(value = "设备型号")
+	private String equipmentType;
+	@ApiModelProperty(value = "额定功率")
+	private BigDecimal ratedPower;
+	
+}
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TChargingGun.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TChargingGun.java
index 3846d8f..d5d50a2 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TChargingGun.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TChargingGun.java
@@ -35,35 +35,35 @@
     @TableId(value = "id", type = IdType.AUTO)
     private Integer id;
 
-    @ApiModelProperty(value = "充电枪编号")
+    @ApiModelProperty(value = "充电枪编号", required = true)
     @TableField("code")
     private String code;
 
-    @ApiModelProperty(value = "站点id")
+    @ApiModelProperty(value = "站点id", required = true)
     @TableField("site_id")
     private Integer siteId;
 
-    @ApiModelProperty(value = "合作商id")
+    @ApiModelProperty(value = "合作商id", required = true)
     @TableField("partner_id")
     private Integer partnerId;
 
-    @ApiModelProperty(value = "充电桩id")
+    @ApiModelProperty(value = "充电桩id", required = true)
     @TableField("charging_pile_id")
     private Integer chargingPileId;
 
-    @ApiModelProperty(value = "充电枪名称")
+    @ApiModelProperty(value = "充电枪名称", required = true)
     @TableField("name")
     private String name;
 
-    @ApiModelProperty(value = "充电枪类型(0=其他,1=家用插座(模式2),2=交流接口插座(模式3,连接方式B),3=交流接口插头(带枪线,模式3,连接方式C)4=直流接口枪头(带枪线,模式4)5=无线充电座)")
+    @ApiModelProperty(value = "充电枪类型(0=其他,1=家用插座(模式2),2=交流接口插座(模式3,连接方式B),3=交流接口插头(带枪线,模式3,连接方式C)4=直流接口枪头(带枪线,模式4)5=无线充电座)", required = true)
     @TableField("type")
     private Integer type;
 
-    @ApiModelProperty(value = "充电枪状态(1=离线,2=空闲,3=占用(未充电),4=占用(充电中),5=占用(已充满),6=占用(预约锁定),7=故障)")
+    @ApiModelProperty(value = "充电枪状态(1=离线,2=空闲,3=占用(未充电),4=占用(充电中),5=占用(已充满),6=占用(预约锁定),7=故障)", required = true)
     @TableField("status")
     private Integer status;
 
-    @ApiModelProperty(value = "充电模式(1=超级快充,2=快充,3=慢充)")
+    @ApiModelProperty(value = "充电模式(1=超级快充,2=快充,3=慢充)", required = true)
     @TableField("charge_mode")
     private Integer chargeMode;
 
@@ -71,19 +71,19 @@
     @TableField("accounting_strategy_id")
     private Integer accountingStrategyId;
 
-    @ApiModelProperty(value = "额定电压上限")
+    @ApiModelProperty(value = "额定电压上限", required = true)
     @TableField("upper_rated_voltage")
     private BigDecimal upperRatedVoltage;
 
-    @ApiModelProperty(value = "额定电压下限")
+    @ApiModelProperty(value = "额定电压下限", required = true)
     @TableField("lower_limit_of_rated_voltage")
     private BigDecimal lowerLimitOfRatedVoltage;
 
-    @ApiModelProperty(value = "额定电流")
+    @ApiModelProperty(value = "额定电流", required = true)
     @TableField("rated_current")
     private BigDecimal ratedCurrent;
 
-    @ApiModelProperty(value = "额定功率")
+    @ApiModelProperty(value = "额定功率", required = true)
     @TableField("rated_power")
     private BigDecimal ratedPower;
 
@@ -99,7 +99,7 @@
     @TableField("parking_lock_state")
     private Integer parkingLockState;
 
-    @ApiModelProperty(value = "国家标准")
+    @ApiModelProperty(value = "国家标准", required = true)
     @TableField("national_standard")
     private String nationalStandard;
 
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TChargingPile.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TChargingPile.java
index e59bab3..2a393d9 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TChargingPile.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/TChargingPile.java
@@ -36,29 +36,37 @@
     @TableId(value = "id", type = IdType.AUTO)
     private Integer id;
 
-    @ApiModelProperty(value = "设备编号")
+    @ApiModelProperty(value = "设备编号", required = true)
     @TableField("code")
     private String code;
 
-    @ApiModelProperty(value = "充电设备名称")
+    @ApiModelProperty(value = "充电设备名称", required = true)
     @TableField("name")
     private String name;
 
-    @ApiModelProperty(value = "桩号")
+    @ApiModelProperty(value = "桩号", required = true)
     @TableField("number")
     private Integer number;
 
-    @ApiModelProperty(value = "设备类型(0=其他,1=直流设备,2=交流设备,3=交直流一体设备,4=无线设备)")
+    @ApiModelProperty(value = "设备类型(0=其他,1=直流设备,2=交流设备,3=交直流一体设备,4=无线设备)", required = true)
     @TableField("type")
     private Integer type;
 
-    @ApiModelProperty(value = "站点id")
+    @ApiModelProperty(value = "站点id", required = true)
     @TableField("site_id")
     private Integer siteId;
+    
+    @ApiModelProperty(value = "站点名称")
+    @TableField(exist = false)
+    private Integer siteName;
 
-    @ApiModelProperty(value = "合作商id")
+    @ApiModelProperty(value = "合作商id", required = true)
     @TableField("partner_id")
     private Integer partnerId;
+    
+    @ApiModelProperty(value = "合作商名称")
+    @TableField(exist = false)
+    private Integer partnerName;
 
     @ApiModelProperty(value = "生产商机构代码")
     @TableField("manufacturer_code")
@@ -77,7 +85,7 @@
     @TableField("production_date")
     private LocalDate productionDate;
 
-    @ApiModelProperty(value = "额定功率")
+    @ApiModelProperty(value = "额定功率", required = true)
     @TableField("rated_power")
     private BigDecimal ratedPower;
 
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/BatchSetAccountingStrategy.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/BatchSetAccountingStrategy.java
new file mode 100644
index 0000000..b0b6eb2
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/BatchSetAccountingStrategy.java
@@ -0,0 +1,20 @@
+package com.ruoyi.chargingPile.api.query;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/8/8 16:36
+ */
+@Data
+@ApiModel
+public class BatchSetAccountingStrategy {
+	@ApiModelProperty(value = "充电桩id", required = true)
+	private List<Integer> id;
+	@ApiModelProperty(value = "计费策略id", required = true)
+	private Integer accountingStrategyId;
+}
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/PageChargingPileList.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/PageChargingPileList.java
new file mode 100644
index 0000000..7f04ccd
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/PageChargingPileList.java
@@ -0,0 +1,22 @@
+package com.ruoyi.chargingPile.api.query;
+
+import com.ruoyi.common.core.web.domain.BasePojo;
+import com.ruoyi.common.core.web.page.BasePage;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/8/8 15:04
+ */
+@Data
+@ApiModel
+public class PageChargingPileList extends BasePage {
+	@ApiModelProperty(value = "站点id")
+	private Integer siteId;
+	@ApiModelProperty("充电设备名称")
+	private String name;
+	@ApiModelProperty("设备类型(0=其他,1=直流设备,2=交流设备,3=交直流一体设备,4=无线设备)")
+	private Integer type;
+}
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/PartnerController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/PartnerController.java
index ba93e47..5139fdd 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/PartnerController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/PartnerController.java
@@ -51,7 +51,7 @@
 	
 	@ResponseBody
 	@GetMapping("/getPartner/{id}")
-	@ApiOperation(value = "获取合作商详情", tags = {"管理后台-合作商管理"})
+	@ApiOperation(value = "获取合作商详情", tags = {"管理后台-合作商管理", "管理后台-充电桩信息"})
 	@ApiImplicitParams({
 			@ApiImplicitParam(value = "合作商id", name = "id", dataTypeClass = Integer.class, required = true)
 	})
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 6bb56a7..a6334e3 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
@@ -1,5 +1,6 @@
 package com.ruoyi.chargingPile.controller;
 
+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.query.GetSiteList;
@@ -15,6 +16,7 @@
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.util.List;
 
 /**
  * @author zhibing.pu
@@ -59,7 +61,7 @@
 	
 	@ResponseBody
 	@DeleteMapping("/delSite/{id}")
-	@ApiOperation(value = "编辑站点", tags = {"管理后台-站点管理"})
+	@ApiOperation(value = "删除站点", tags = {"管理后台-站点管理"})
 	@ApiImplicitParams({
 			@ApiImplicitParam(value = "站点id", name = "id", dataTypeClass = Integer.class, required = true)
 	})
@@ -68,7 +70,25 @@
 	}
 	
 	
+	@ResponseBody
+	@PostMapping("/setAccountingStrategy/{id}")
+	@ApiOperation(value = "设置站点计费策略", tags = {"管理后台-站点管理"})
+	@ApiImplicitParams({
+			@ApiImplicitParam(value = "站点id", name = "id", dataTypeClass = Integer.class, required = true),
+			@ApiImplicitParam(value = "计费策略id", name = "accountingStrategyId", dataTypeClass = Integer.class, required = true)
+	})
+	public AjaxResult setAccountingStrategy(@PathVariable("id") Integer id, @RequestParam("accountingStrategyId") Integer accountingStrategyId){
+		siteService.setAccountingStrategy(id, accountingStrategyId);
+		return AjaxResult.success();
+	}
 	
 	
-	
+	@ResponseBody
+	@GetMapping("/getAllSiteList")
+	@ApiOperation(value = "获取所有站点数据", tags = {"管理后台-充电桩信息"})
+	public AjaxResult<List<Site>> getAllSiteList(){
+		List<Site> list = siteService.list(new LambdaQueryWrapper<Site>().eq(Site::getDelFlag, 0)
+				.orderByDesc(Site::getCreateTime));
+		return AjaxResult.success(list);
+	}
 }
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java
index cad73d2..5a00f21 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java
@@ -55,7 +55,7 @@
     /**
      * 查询计费策略明细列表
      */
-    @ApiOperation(tags = {"后台-计费策略"},value = "查询计费策略明细列表")
+    @ApiOperation(tags = {"后台-计费策略", "管理后台-站点管理", "管理后台-充电桩信息"},value = "查询计费策略明细列表")
     @GetMapping(value = "/queryAccountingStrategyDetailByStrategyId")
     public AjaxResult<List<TAccountingStrategyDetailVO>> queryAccountingStrategyDetailByStrategyId(@RequestParam Integer strategyId) {
         List<TAccountingStrategyDetailVO> list = accountingStrategyDetailService.queryAccountingStrategyDetailByStrategyId(strategyId);
@@ -68,20 +68,21 @@
     /**
      * 添加计费策略管理
      */
-    @ApiOperation(tags = {"后台-计费策略"},value = "添加计费策略")
+    @ApiOperation(tags = {"后台-计费策略", "管理后台-站点管理"},value = "添加计费策略")
     @PostMapping(value = "/add")
-    public AjaxResult<Boolean> add(@RequestBody TAccountingStrategyDTO dto) {
+    public AjaxResult<Integer> add(@RequestBody TAccountingStrategyDTO dto) {
         accountingStrategyService.save(dto);
         // 添加明细
         dto.getAccountingStrategyDetails().forEach(detail -> detail.setAccountingStrategyId(dto.getId()));
+        accountingStrategyDetailService.saveBatch(dto.getAccountingStrategyDetails());
         // TODO 硬件 同步策略到充电桩
-        return AjaxResult.ok(accountingStrategyDetailService.saveBatch(dto.getAccountingStrategyDetails()));
+        return AjaxResult.ok(dto.getId());
     }
 
     /**
      * 修改计费策略
      */
-    @ApiOperation(tags = {"后台-计费策略"},value = "修改计费策略")
+    @ApiOperation(tags = {"后台-计费策略", "管理后台-站点管理"},value = "修改计费策略")
     @PostMapping(value = "/update")
     public AjaxResult<Boolean> update(@RequestBody TAccountingStrategyDTO dto) {
         // 删除计费策略明细信息
@@ -97,7 +98,7 @@
     /**
      * 查看计费策略详情
      */
-    @ApiOperation(tags = {"后台-计费策略"},value = "查看计费策略详情")
+    @ApiOperation(tags = {"后台-计费策略", "管理后台-站点管理"},value = "查看计费策略详情")
     @GetMapping(value = "/getDetailById")
     public AjaxResult<TAccountingStrategy> getDetailById(@RequestParam Integer id) {
         return AjaxResult.ok(accountingStrategyService.getById(id));
@@ -127,5 +128,12 @@
         return AjaxResult.ok(accountingStrategyService.removeByIds(ids));
     }
     
+    
+    @ApiOperation(tags = {"管理后台-站点管理"},value = "获取平台添加的计费策略")
+    @DeleteMapping(value = "/getPlatformAccountingStrategy")
+    public AjaxResult<List<TAccountingStrategyVO>> getPlatformAccountingStrategy(){
+        List<TAccountingStrategyVO> list = accountingStrategyService.getPlatformAccountingStrategy();
+        return AjaxResult.success(list);
+    }
 }
 
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 6bb855e..60ecce0 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
@@ -13,6 +13,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletResponse;
 import java.util.List;
 
 /**
@@ -38,7 +39,7 @@
     /**
      * 查询充电枪列表
      */
-    @ApiOperation(tags = {"后台-充电枪"},value = "查询充电枪分页列表")
+    @ApiOperation(tags = {"后台-充电枪", "管理后台-充电桩信息"},value = "查询充电枪分页列表")
     @PostMapping(value = "/pageList")
     public AjaxResult<PageInfo<TChargingGunVO>> pageList(@RequestBody TChargingGunQuery query) {
         return AjaxResult.ok(chargingGunService.pageList(query));
@@ -47,25 +48,25 @@
     /**
      * 添加充电枪管理
      */
-    @ApiOperation(tags = {"后台-充电枪"},value = "添加充电枪")
+    @ApiOperation(tags = {"管理后台-充电桩信息"},value = "添加充电枪")
     @PostMapping(value = "/add")
-    public AjaxResult<Boolean> add(@RequestBody TChargingGunDTO dto) {
-        return AjaxResult.ok(chargingGunService.save(dto));
+    public AjaxResult add(@RequestBody TChargingGunDTO dto) {
+        return chargingGunService.add(dto);
     }
 
     /**
      * 修改充电枪
      */
-    @ApiOperation(tags = {"后台-充电枪"},value = "修改充电枪")
+    @ApiOperation(tags = {"管理后台-充电桩信息"},value = "修改充电枪")
     @PostMapping(value = "/update")
-    public AjaxResult<Boolean> update(@RequestBody TChargingGunDTO dto) {
-        return AjaxResult.ok(chargingGunService.updateById(dto));
+    public AjaxResult update(@RequestBody TChargingGunDTO dto) {
+        return chargingGunService.update(dto);
     }
 
     /**
      * 查看充电枪详情
      */
-    @ApiOperation(tags = {"后台-充电枪"},value = "查看充电枪详情")
+    @ApiOperation(tags = {"后台-充电枪", "管理后台-充电桩信息"},value = "查看充电枪详情")
     @GetMapping(value = "/getDetailById")
     public AjaxResult<TChargingGun> getDetailById(@RequestParam Integer id) {
         return AjaxResult.ok(chargingGunService.getById(id));
@@ -74,10 +75,13 @@
     /**
      * 删除充电枪
      */
-    @ApiOperation(tags = {"后台-充电枪"},value = "删除充电枪")
+    @ApiOperation(tags = {"管理后台-充电桩信息"},value = "删除充电枪")
     @DeleteMapping(value = "/deleteById")
     public AjaxResult<Boolean> deleteById(@RequestParam Integer id) {
-        return AjaxResult.ok(chargingGunService.removeById(id));
+        TChargingGun chargingGun = chargingGunService.getById(id);
+        chargingGun.setDelFlag(true);
+        chargingGunService.updateById(chargingGun);
+        return AjaxResult.success();
     }
 
     /**
@@ -99,5 +103,12 @@
         return AjaxResult.success();
     }
     
+    
+    
+    @ApiOperation(tags = {"管理后台-充电桩信息"},value = "下载二维码")
+    @GetMapping(value = "/downloadQRCode/{id}")
+    public void downloadQRCode(@PathVariable Integer id, HttpServletResponse response){
+        // todo 待完善
+    }
 }
 
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java
index 66777e4..34f88b6 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java
@@ -9,7 +9,20 @@
 import com.ruoyi.chargingPile.service.TChargingPileService;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.core.web.page.PageInfo;
+import com.ruoyi.chargingPile.api.dto.PageChargingPileListDTO;
+import com.ruoyi.chargingPile.api.model.TChargingPile;
+import com.ruoyi.chargingPile.api.query.BatchSetAccountingStrategy;
+import com.ruoyi.chargingPile.service.TChargingPileService;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageInfo;
+import com.ruoyi.chargingPile.api.query.PageChargingPileList;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -45,6 +58,64 @@
         return AjaxResult.ok(chargingPileService.list(Wrappers.lambdaQuery(TChargingPile.class)
                 .eq(TChargingPile::getSiteId,siteId)));
     }
-
+	
+	
+	
+	@ResponseBody
+	@GetMapping("/pageChargingPileList")
+	@ApiOperation(value = "获取充电桩列表数据", tags = {"管理后台-充电桩信息"})
+	public AjaxResult<PageInfo<PageChargingPileListDTO>> pageChargingPileList(@RequestBody PageChargingPileList page){
+		PageInfo<PageChargingPileListDTO> list = chargingPileService.pageChargingPileList(page);
+		return AjaxResult.success(list);
+	}
+	
+	@ResponseBody
+	@PostMapping("/addChargingPile")
+	@ApiOperation(value = "添加充电桩数据", tags = {"管理后台-充电桩信息"})
+	public AjaxResult addChargingPile(@RequestBody TChargingPile chargingPile){
+		return chargingPileService.addChargingPile(chargingPile);
+	}
+	
+	
+	@ResponseBody
+	@GetMapping("/getChargingPile/{id}")
+	@ApiOperation(value = "获取充电桩详情数据", tags = {"管理后台-充电桩信息"})
+	public AjaxResult<TChargingPile> getChargingPile(@PathVariable Integer id){
+		TChargingPile chargingPile = chargingPileService.getChargingPile(id);
+		return AjaxResult.success(chargingPile);
+	}
+	
+	
+	@ResponseBody
+	@PostMapping("/editChargingPile")
+	@ApiOperation(value = "编辑充电桩数据", tags = {"管理后台-充电桩信息"})
+	public AjaxResult editChargingPile(@RequestBody TChargingPile chargingPile){
+		return chargingPileService.editChargingPile(chargingPile);
+	}
+	
+	
+	
+	@ResponseBody
+	@DeleteMapping("/delChargingPile/{id}")
+	@ApiOperation(value = "删除充电桩", tags = {"管理后台-充电桩信息"})
+	@ApiImplicitParams({
+			@ApiImplicitParam(value = "充电桩id", name = "id", dataTypeClass = Integer.class, required = true)
+	})
+	public AjaxResult delChargingPile(@PathVariable Integer id){
+		return chargingPileService.delChargingPile(id);
+	}
+	
+	
+	@ResponseBody
+	@PostMapping("/batchSetAccountingStrategy")
+	@ApiOperation(value = "批量设置计费策略", tags = {"管理后台-充电桩信息"})
+	public AjaxResult batchSetAccountingStrategy(@RequestBody BatchSetAccountingStrategy setAccountingStrategy){
+		chargingPileService.batchSetAccountingStrategy(setAccountingStrategy);
+		return AjaxResult.success();
+	}
+	
+	
+	
+	
 }
 
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TAccountingStrategyMapper.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TAccountingStrategyMapper.java
index 972b1ae..6b3ce5d 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TAccountingStrategyMapper.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TAccountingStrategyMapper.java
@@ -28,5 +28,11 @@
      * @return
      */
     List<TAccountingStrategyVO> pageList(@Param("query") TAccountingStrategyQuery query, @Param("pageInfo")PageInfo<TAccountingStrategyVO> pageInfo);
-
+    
+    
+    /**
+     * 获取平台添加的计费策略
+     * @return
+     */
+    List<TAccountingStrategyVO> getPlatformAccountingStrategy();
 }
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 520513f..f254d0a 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
@@ -1,8 +1,14 @@
 package com.ruoyi.chargingPile.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.chargingPile.api.dto.PageChargingPileListDTO;
 import com.ruoyi.chargingPile.api.model.TChargingPile;
+import com.ruoyi.chargingPile.api.query.PageChargingPileList;
+import com.ruoyi.common.core.web.page.PageInfo;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -14,5 +20,20 @@
  */
 @Mapper
 public interface TChargingPileMapper extends BaseMapper<TChargingPile> {
-
+	
+	
+	/**
+	 * 获取充电桩列表数据
+	 * @param page
+	 * @return
+	 */
+	List<PageChargingPileListDTO> pageChargingPileList(PageInfo<PageChargingPileListDTO> pageInfo, @Param("item") PageChargingPileList page);
+	
+	
+	/**
+	 * 获取充电桩详情
+	 * @param id
+	 * @return
+	 */
+	TChargingPile getChargingPile(Integer id);
 }
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/ISiteService.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/ISiteService.java
index 96259c2..722b578 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/ISiteService.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/ISiteService.java
@@ -10,6 +10,7 @@
 import com.ruoyi.common.core.web.page.PageInfo;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
 
 /**
  * @author zhibing.pu
@@ -48,11 +49,15 @@
 	 * @return
 	 */
 	AjaxResult delSite(Integer id);
-
+	
+	
 	/**
-	 * 获取站点分页列表
-	 * @param query
-	 * @return
+	 * 设置站点计费策略
+	 * @param id 站点id
+	 * @param accountingStrategyId 计费策略id
 	 */
+	void setAccountingStrategy(Integer id, Integer accountingStrategyId);
+	
+	
 	PageInfo<SiteVO> pageList(SiteQuery query);
 }
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TAccountingStrategyService.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TAccountingStrategyService.java
index 9ca6f67..06834ef 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TAccountingStrategyService.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TAccountingStrategyService.java
@@ -6,6 +6,8 @@
 import com.ruoyi.chargingPile.api.vo.TAccountingStrategyVO;
 import com.ruoyi.common.core.web.page.PageInfo;
 
+import java.util.List;
+
 /**
  * <p>
  * 计费策略 服务类
@@ -22,5 +24,10 @@
      * @return
      */
     PageInfo<TAccountingStrategyVO> pageList(TAccountingStrategyQuery query);
-
+    
+    /**
+     * 获取平台添加的计费策略
+     * @return
+     */
+    List<TAccountingStrategyVO> getPlatformAccountingStrategy();
 }
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 2c779c2..323273d 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
@@ -1,10 +1,13 @@
 package com.ruoyi.chargingPile.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+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.TChargingGunVO;
+import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.core.web.page.PageInfo;
+import org.springframework.web.bind.annotation.RequestBody;
 
 /**
  * <p>
@@ -22,5 +25,19 @@
      * @return
      */
     PageInfo<TChargingGunVO> pageList(TChargingGunQuery query);
-
+    
+    /**
+     * 添加充电枪
+     * @param dto
+     * @return
+     */
+    AjaxResult add(TChargingGunDTO dto);
+    
+    
+    /**
+     * 编辑充电枪
+     * @param dto
+     * @return
+     */
+    AjaxResult update(TChargingGunDTO dto);
 }
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 1937f50..b3360ed 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
@@ -1,7 +1,14 @@
 package com.ruoyi.chargingPile.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.chargingPile.api.dto.PageChargingPileListDTO;
 import com.ruoyi.chargingPile.api.model.TChargingPile;
+import com.ruoyi.chargingPile.api.query.BatchSetAccountingStrategy;
+import com.ruoyi.chargingPile.api.query.PageChargingPileList;
+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;
 
 /**
  * <p>
@@ -12,5 +19,51 @@
  * @since 2024-08-06
  */
 public interface TChargingPileService extends IService<TChargingPile> {
-
+	
+	
+	/**
+	 * 获取充电桩列表
+	 * @param page
+	 * @return
+	 */
+	PageInfo<PageChargingPileListDTO> pageChargingPileList(PageChargingPileList page);
+	
+	
+	/**
+	 * 添加充电桩
+	 * @param chargingPile
+	 * @return
+	 */
+	AjaxResult addChargingPile(TChargingPile chargingPile);
+	
+	
+	/**
+	 * 获取充电桩详情
+	 * @param id 充电桩id
+	 * @return
+	 */
+	TChargingPile getChargingPile(Integer id);
+	
+	
+	/**
+	 * 编辑充电桩
+	 * @param chargingPile
+	 * @return
+	 */
+	AjaxResult editChargingPile(TChargingPile chargingPile);
+	
+	
+	/**
+	 * 删除充电桩
+	 * @param id
+	 * @return
+	 */
+	AjaxResult delChargingPile(Integer id);
+	
+	
+	/**
+	 * 批量设置计费策略
+	 * @param setAccountingStrategy
+	 */
+	void batchSetAccountingStrategy(BatchSetAccountingStrategy setAccountingStrategy);
 }
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java
index 3e8b420..4b0e2ca 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java
@@ -4,10 +4,12 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.chargingPile.api.dto.PartnerListDTO;
 import com.ruoyi.chargingPile.api.model.Partner;
+import com.ruoyi.chargingPile.api.model.Site;
 import com.ruoyi.chargingPile.api.query.GetPartnerList;
 import com.ruoyi.chargingPile.dto.ResetPassword;
 import com.ruoyi.chargingPile.mapper.PartnerMapper;
 import com.ruoyi.chargingPile.service.IPartnerService;
+import com.ruoyi.chargingPile.service.ISiteService;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.web.domain.AjaxResult;
@@ -38,6 +40,9 @@
 	
 	@Resource
 	private SysUserClient sysUserClient;
+	
+	@Resource
+	private ISiteService siteService;
 	
 	
 	
@@ -114,6 +119,8 @@
 		user.setStatus("0");
 		user.setDelFlag("0");
 		user.setRoleId(partner.getRoleId().longValue());
+		user.setRoleType(2);
+		user.setObjectId(partner.getId());
 		R r = sysUserClient.addSysUser(user);
 		if(200 != r.getCode()){
 			throw new RuntimeException(r.getMsg());
@@ -220,6 +227,8 @@
 			user.setAvatar(partner.getLogoUrl());
 			user.setPassword(partner.getPassword());
 			user.setRoleId(partner.getRoleId().longValue());
+			user.setRoleType(2);
+			user.setObjectId(partner.getId());
 			R r = sysUserClient.addSysUser(user);
 			if(200 != r.getCode()){
 				throw new RuntimeException(r.getMsg());
@@ -250,6 +259,10 @@
 	public AjaxResult delPartner(Integer id) {
 		//查询有无关联数据
 		//站点
+		long count = siteService.count(new LambdaQueryWrapper<Site>().eq(Site::getPartnerId, id).eq(Site::getDelFlag, 0));
+		if(count > 0){
+			return AjaxResult.error("当前合作商有关联得站点,删除失败!");
+		}
 		// todo 代码完善
 		//充电桩
 		
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java
index d07b067..98220eb 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java
@@ -4,17 +4,22 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 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.query.GetSiteList;
 import com.ruoyi.chargingPile.api.query.SiteQuery;
 import com.ruoyi.chargingPile.api.vo.SiteVO;
 import com.ruoyi.chargingPile.api.vo.TAccountingStrategyVO;
 import com.ruoyi.chargingPile.mapper.SiteMapper;
 import com.ruoyi.chargingPile.service.ISiteService;
+import com.ruoyi.chargingPile.service.TChargingGunService;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.core.web.page.PageInfo;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
 
+import javax.annotation.Resource;
 import java.util.List;
 
 /**
@@ -23,6 +28,10 @@
  */
 @Service
 public class SiteServiceImpl extends ServiceImpl<SiteMapper, Site> implements ISiteService {
+	
+	@Resource
+	private TChargingGunService chargingGunService;
+	
 	
 	
 	/**
@@ -153,4 +162,23 @@
 		pageInfo.setRecords(list);
 		return pageInfo;
 	}
+	
+	
+	/**
+	 * 设置站点计费策略
+	 * @param id 站点id
+	 * @param accountingStrategyId 计费策略id
+	 */
+	@Override
+	@Transactional(propagation = Propagation.REQUIRES_NEW)
+	public void setAccountingStrategy(Integer id, Integer accountingStrategyId) {
+		Site site = this.getById(id);
+		site.setAccountingStrategyId(accountingStrategyId);
+		this.updateById(site);
+		List<TChargingGun> list = chargingGunService.list(new LambdaQueryWrapper<TChargingGun>().in(TChargingGun::getChargingPileId, id).eq(TChargingGun::getDelFlag, 0));
+		for (TChargingGun tChargingGun : list) {
+			tChargingGun.setChargingPileId(accountingStrategyId);
+		}
+		chargingGunService.updateBatchById(list);
+	}
 }
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyServiceImpl.java
index 9b5232e..fd43fd1 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyServiceImpl.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyServiceImpl.java
@@ -30,4 +30,14 @@
         pageInfo.setRecords(list);
         return pageInfo;
     }
+    
+    
+    /**
+     * 获取平台添加的计费策略
+     * @return
+     */
+    @Override
+    public List<TAccountingStrategyVO> getPlatformAccountingStrategy() {
+        return this.baseMapper.getPlatformAccountingStrategy();
+    }
 }
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 d4db51a..73709a5 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,12 +1,16 @@
 package com.ruoyi.chargingPile.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 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.TChargingGunVO;
 import com.ruoyi.chargingPile.api.vo.TMonitoringEquipmentVO;
 import com.ruoyi.chargingPile.mapper.TChargingGunMapper;
 import com.ruoyi.chargingPile.service.TChargingGunService;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.core.web.page.PageInfo;
 import org.springframework.stereotype.Service;
 
@@ -30,4 +34,82 @@
         pageInfo.setRecords(list);
         return pageInfo;
     }
+    
+    /**
+     * 添加充电枪
+     * @param dto
+     * @return
+     */
+    @Override
+    public AjaxResult add(TChargingGunDTO dto) {
+        AjaxResult ajaxResult = addVerify(dto);
+        if(ajaxResult.isError()){
+            return ajaxResult;
+        }
+        long count = this.count(new LambdaQueryWrapper<TChargingGun>().eq(TChargingGun::getCode, dto.getCode()).eq(TChargingGun::getDelFlag, 0));
+        if(count > 0){
+            return AjaxResult.error("接口编码已存在");
+        }
+        this.save(dto);
+        return AjaxResult.success();
+    }
+    
+    
+    /**
+     * 编辑充电枪
+     * @param dto
+     * @return
+     */
+    @Override
+    public AjaxResult update(TChargingGunDTO dto) {
+        AjaxResult ajaxResult = addVerify(dto);
+        if(ajaxResult.isError()){
+            return ajaxResult;
+        }
+        TChargingGun one = this.getOne(new LambdaQueryWrapper<TChargingGun>().eq(TChargingGun::getCode, dto.getCode()).eq(TChargingGun::getDelFlag, 0));
+        if(null != one && !dto.getId().equals(one.getId())){
+            return AjaxResult.error("接口编码已存在");
+        }
+        this.updateById(dto);
+        return AjaxResult.success();
+    }
+    
+    /**
+     * 校验必填项
+     * @param dto
+     * @return
+     */
+    AjaxResult addVerify(TChargingGunDTO dto){
+        if(StringUtils.isEmpty(dto.getCode())){
+            return AjaxResult.error("接口编码不能为空");
+        }
+        if(StringUtils.isEmpty(dto.getName())){
+            return AjaxResult.error("接口名称不能为空");
+        }
+        if(null == dto.getType()){
+            return AjaxResult.error("接口类型不能为空");
+        }
+        if(null == dto.getStatus()){
+            return AjaxResult.error("接口状态不能为空");
+        }
+        if(null == dto.getChargeMode()){
+            return AjaxResult.error("充电方式不能为空");
+        }
+        if(null == dto.getUpperRatedVoltage()){
+            return AjaxResult.error("额定电压上限不能为空");
+        }
+        if(null == dto.getLowerLimitOfRatedVoltage()){
+            return AjaxResult.error("额定电压下限不能为空");
+        }
+        if(null == dto.getRatedCurrent()){
+            return AjaxResult.error("额定电流不能为空");
+        }
+        if(null == dto.getRatedPower()){
+            return AjaxResult.error("额定功率不能为空");
+        }
+        if(StringUtils.isEmpty(dto.getNationalStandard())){
+            return AjaxResult.error("国家标准不能为空");
+        }
+        return AjaxResult.success();
+    }
 }
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 80b75f6..0442587 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,10 +1,23 @@
 package com.ruoyi.chargingPile.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 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.mapper.TChargingPileMapper;
+import com.ruoyi.chargingPile.service.TChargingGunService;
 import com.ruoyi.chargingPile.service.TChargingPileService;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageInfo;
 import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -16,5 +29,140 @@
  */
 @Service
 public class TChargingPileServiceImpl extends ServiceImpl<TChargingPileMapper, TChargingPile> implements TChargingPileService {
-
+	
+	@Resource
+	private TChargingGunService chargingGunService;
+	
+	
+	
+	
+	/**
+	 * 获取充电桩列表数据
+	 * @param page
+	 * @return
+	 */
+	@Override
+	public PageInfo<PageChargingPileListDTO> pageChargingPileList(PageChargingPileList page) {
+		PageInfo<PageChargingPileListDTO> pageInfo = new PageInfo<>(page.getPageCurr(), page.getPageSize());
+		List<PageChargingPileListDTO> list = this.baseMapper.pageChargingPileList(pageInfo, page);
+		return pageInfo.setRecords(list);
+	}
+	
+	
+	/**
+	 * 添加充电桩
+	 * @param chargingPile
+	 * @return
+	 */
+	@Override
+	public AjaxResult addChargingPile(TChargingPile chargingPile) {
+		AjaxResult ajaxResult = addChargingPileVerify(chargingPile);
+		if(ajaxResult.isError()){
+			return ajaxResult;
+		}
+		long count = this.count(new LambdaQueryWrapper<TChargingPile>().eq(TChargingPile::getCode, chargingPile.getCode())
+				.eq(TChargingPile::getDelFlag, 0));
+		if(count > 0){
+			return AjaxResult.error("设备编号已存在");
+		}
+		this.save(chargingPile);
+		return AjaxResult.success();
+	}
+	
+	
+	/**
+	 * 校验必填项
+	 * @param chargingPile
+	 * @return
+	 */
+	AjaxResult addChargingPileVerify(TChargingPile chargingPile){
+		if(StringUtils.isEmpty(chargingPile.getCode())){
+			return AjaxResult.error("设备编号不能为空");
+		}
+		if(StringUtils.isEmpty(chargingPile.getName())){
+			return AjaxResult.error("充电设备名称不能为空");
+		}
+		if(null == chargingPile.getNumber()){
+			return AjaxResult.error("桩号不能为空");
+		}
+		if(null == chargingPile.getType()){
+			return AjaxResult.error("设备类型不能为空");
+		}
+		if(null == chargingPile.getSiteId()){
+			return AjaxResult.error("归属电站不能为空");
+		}
+		if(null == chargingPile.getPartnerId()){
+			return AjaxResult.error("归属合作商不能为空");
+		}
+		if(null == chargingPile.getRatedPower()){
+			return AjaxResult.error("额定功率不能为空");
+		}
+		return AjaxResult.success();
+	}
+	
+	
+	/**
+	 * 获取充电桩详情
+	 * @param id 充电桩id
+	 * @return
+	 */
+	@Override
+	public TChargingPile getChargingPile(Integer id) {
+		return this.baseMapper.getChargingPile(id);
+	}
+	
+	
+	/**
+	 * 编辑充电桩
+	 * @param chargingPile
+	 * @return
+	 */
+	@Override
+	public AjaxResult editChargingPile(TChargingPile chargingPile) {
+		AjaxResult ajaxResult = addChargingPileVerify(chargingPile);
+		if(ajaxResult.isError()){
+			return ajaxResult;
+		}
+		TChargingPile one = this.getOne(new LambdaQueryWrapper<TChargingPile>().eq(TChargingPile::getCode, chargingPile.getCode())
+				.eq(TChargingPile::getDelFlag, 0));
+		if(null != one && !one.getId().equals(chargingPile.getId())){
+			return AjaxResult.error("设备编号已存在");
+		}
+		this.updateById(chargingPile);
+		return AjaxResult.success();
+	}
+	
+	
+	/**
+	 * 删除充电桩
+	 * @param id
+	 * @return
+	 */
+	@Override
+	public AjaxResult delChargingPile(Integer id) {
+		//检查是否有关联数据
+		//接口
+		long count = chargingGunService.count(new LambdaQueryWrapper<TChargingGun>().eq(TChargingGun::getChargingPileId, id).eq(TChargingGun::getDelFlag, 0));
+		if(count > 0){
+			return AjaxResult.error("该充电桩有关联的接口数据,删除失败!");
+		}
+		TChargingPile chargingPile = this.getById(id);
+		chargingPile.setDelFlag(true);
+		this.updateById(chargingPile);
+		return AjaxResult.success();
+	}
+	
+	/**
+	 * 批量设置计费策略
+	 * @param setAccountingStrategy
+	 */
+	@Override
+	public void batchSetAccountingStrategy(BatchSetAccountingStrategy setAccountingStrategy) {
+		List<Integer> id = setAccountingStrategy.getId();
+		List<TChargingGun> list = chargingGunService.list(new LambdaQueryWrapper<TChargingGun>().in(TChargingGun::getChargingPileId, id).eq(TChargingGun::getDelFlag, 0));
+		for (TChargingGun tChargingGun : list) {
+			tChargingGun.setChargingPileId(setAccountingStrategy.getAccountingStrategyId());
+		}
+		chargingGunService.updateBatchById(list);
+	}
 }
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml
index 3e354b3..ba0802e 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml
@@ -62,10 +62,13 @@
 		a.parking_space as parkingSpace,
 		DATE_FORMAT('%Y-%m-%d %H:%i:%s', a.establishment_time) as establishmentTime,
 		c.num as chargingPileNumber,
-		a.sort
+		a.sort,
+		a.accounting_strategy_id as accountingStrategyId,
+		if(a.accounting_strategy_id is null, 1, if(d.site_id is null, 1, 2)) as accountingStrategyType
 		from t_site a
 		left join t_partner b on (a.partner_id = b.id)
 		left join (select site_id, count(1) as num from t_charging_pile where del_flag = 0 group by site_id) c on (a.id = c.site_id)
+		left join t_accounting_strategy d on (a.accounting_strategy_id = d.id)
 		WHERE a.del_flag = 0
 		<if test="null != item.name and '' != item.name">
 			and a.name like CONCAT('%', #{item.name}, '%')
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TAccountingStrategyMapper.xml b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TAccountingStrategyMapper.xml
index ff7cbf7..7a8dc6f 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TAccountingStrategyMapper.xml
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TAccountingStrategyMapper.xml
@@ -37,4 +37,11 @@
         ORDER BY create_time DESC
     </select>
 
+    
+    
+    <select id="getPlatformAccountingStrategy" resultType="com.ruoyi.chargingPile.api.vo.TAccountingStrategyVO">
+        SELECT
+            id,  site_id,  `name`,  description,  discount,  create_time,  del_flag
+        FROM t_accounting_strategy where del_flag = 0 and site_id is not null order by create_time desc
+    </select>
 </mapper>
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 2c128d3..d09f3e1 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
@@ -27,4 +27,46 @@
         id, code, `name`, `number`, `type`, site_id, partner_id, manufacturer_code, manufacturer, equipment_type, production_date, rated_power, charging_station_number, status, create_time, del_flag
     </sql>
 
+    
+    
+    <select id="pageChargingPileList" resultType="com.ruoyi.chargingPile.api.dto.PageChargingPileListDTO">
+        select
+        id,
+        code,
+        name,
+        number,
+        type,
+        a.site_id as siteId,
+        b.name as siteName,
+        a.partner_id as partnerId,
+        c.name as partnerName,
+        a.manufacturer,
+        a.equipment_type as equipmentType,
+        a.ratedPower
+        from t_charging_pile a
+        left join t_site b on (a.site_id = b.id)
+        left join t_partner c on (a.partner_id = c.id)
+        where del_flag = 0
+        <if test="null != item.siteId">
+            and a.site_id = #{item.siteId}
+        </if>
+        <if test="null != item.name and '' != item.name">
+            and a.name like CONCAT('%', #{item.name}, '%')
+        </if>
+        <if test="null != item.type">
+            and a.type = #{item.type}
+        </if>
+        order by a.create_time desc limit #{item.pageCurr}, #{item.pageSize}
+    </select>
+    
+    
+    <select id="getChargingPile" resultMap="BaseResultMap">
+        select
+        a.*,
+        b.name as siteName,
+        c.name as partnerName
+        from t_charging_pile a
+        left join t_site b on (a.site_id = b.id)
+        left join t_partner c on (a.partner_id = c.id)
+    </select>
 </mapper>

--
Gitblit v1.7.1