From 7b94a7463339ff4038e1b3e21e21a1497b648a64 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 25 十月 2024 21:04:23 +0800
Subject: [PATCH] bug修改
---
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingGunController.java | 121 +++++++++++++++++++++++++++++++++-------
1 files changed, 100 insertions(+), 21 deletions(-)
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 029a4e9..1c1442d 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
@@ -3,13 +3,20 @@
import cn.hutool.core.img.ImgUtil;
import cn.hutool.core.io.FileUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.chargingPile.api.dto.GetSiteListDTO;
import com.ruoyi.chargingPile.api.dto.TChargingGunDTO;
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.model.TFaultMessage;
import com.ruoyi.chargingPile.api.query.TChargingGunQuery;
+import com.ruoyi.chargingPile.api.vo.GetChargingGunByCode;
+import com.ruoyi.chargingPile.api.vo.GunStatusStatisticsVO;
import com.ruoyi.chargingPile.api.vo.SiteNameVO;
import com.ruoyi.chargingPile.api.vo.TChargingGunVO;
+import com.ruoyi.chargingPile.config.FileUploadConfig;
import com.ruoyi.chargingPile.service.ISiteService;
import com.ruoyi.chargingPile.service.TChargingGunService;
import com.ruoyi.chargingPile.service.TChargingPileService;
@@ -21,8 +28,10 @@
import com.ruoyi.common.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.log.enums.OperatorType;
+import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.integration.api.feignClient.IntegrationClient;
import com.ruoyi.integration.api.model.EndCharge;
+import com.ruoyi.order.api.feignClient.ChargingOrderClient;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
@@ -32,13 +41,12 @@
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
-import java.io.BufferedReader;
-import java.io.FileInputStream;
-import java.io.FileReader;
-import java.io.PrintWriter;
+import java.io.*;
import java.net.URLEncoder;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+import java.util.Map;
/**
* <p>
@@ -55,13 +63,16 @@
@Autowired
private TChargingGunService chargingGunService;
- @Autowired
- private IntegrationClient integrationClient;
+ @Resource
+ private ChargingOrderClient chargingOrderClient;
@Resource
private TChargingPileService chargingPileService;
@Resource
private ISiteService siteService;
+
+ @Autowired
+ private FileUploadConfig fileUploadConfig;
/**
* 查询充电枪列表
@@ -75,7 +86,7 @@
/**
* 添加充电枪管理
*/
- @Log(title = "添加充电枪", businessType = BusinessType.INSERT,operatorType = OperatorType.MANAGE)
+ @Log(title = "【充电桩信息】添加充电枪", businessType = BusinessType.INSERT,operatorType = OperatorType.MANAGE)
@ApiOperation(tags = {"管理后台-充电桩信息"},value = "添加充电枪")
@PostMapping(value = "/add")
public AjaxResult add(@RequestBody TChargingGunDTO dto) {
@@ -85,7 +96,7 @@
/**
* 修改充电枪
*/
- @Log(title = "修改充电枪", businessType = BusinessType.UPDATE,operatorType = OperatorType.MANAGE)
+ @Log(title = "【充电桩信息】修改充电枪", businessType = BusinessType.UPDATE,operatorType = OperatorType.MANAGE)
@ApiOperation(tags = {"管理后台-充电桩信息"},value = "修改充电枪")
@PostMapping(value = "/update")
public AjaxResult update(@RequestBody TChargingGunDTO dto) {
@@ -104,7 +115,7 @@
/**
* 删除充电枪
*/
- @Log(title = "删除充电枪", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
+ @Log(title = "【充电桩信息】删除充电枪", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
@ApiOperation(tags = {"管理后台-充电桩信息"},value = "删除充电枪")
@DeleteMapping(value = "/deleteById")
public AjaxResult<Boolean> deleteById(@RequestParam("id") Integer id) {
@@ -116,7 +127,7 @@
/**
* 批量删除充电枪
*/
- @Log(title = "批量删除充电枪", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
+ @Log(title = "【充电桩信息】批量删除充电枪", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
@ApiOperation(tags = {"后台-充电枪"},value = "批量删除充电枪")
@DeleteMapping(value = "/deleteByIds")
public AjaxResult<Boolean> deleteByIds(@RequestParam String ids) {
@@ -127,13 +138,14 @@
/**
* 结束充电
*/
- @Log(title = "结束充电", businessType = BusinessType.UPDATE,operatorType = OperatorType.MANAGE)
+ @Log(title = "【充电桩信息】结束充电", businessType = BusinessType.OTHER,operatorType = OperatorType.MANAGE)
@ApiOperation(tags = {"后台-充电枪"},value = "结束充电")
@PutMapping(value = "/stopCharging")
- public AjaxResult<String> stopCharging(@RequestParam("id") Integer id) {
- // TODO 硬件 结束充电
- EndCharge endCharge = new EndCharge();
- integrationClient.endCharge(endCharge);
+ public AjaxResult<String> stopCharging(@RequestParam("id") String id) {
+ // 根据充电枪id 查询最新的一笔订单
+ String data = chargingOrderClient.queryOrderByGunId(id).getData();
+ // 硬件 结束充电
+ chargingOrderClient.stopCharging(data);
return AjaxResult.success();
}
@@ -141,14 +153,17 @@
@ApiOperation(tags = {"管理后台-充电桩信息"},value = "下载二维码")
@GetMapping(value = "/downloadQRCode/{id}")
+ @Log(title = "【充电桩信息】下载二维码", businessType = BusinessType.OTHER,operatorType = OperatorType.MANAGE)
public void downloadQRCode(@PathVariable Integer id, HttpServletResponse response){
try {
TChargingGun chargingGun = chargingGunService.getById(id);
- String fileName = URLEncoder.encode(chargingGun.getCode(), "UTF-8") + ".jpg";
+ TChargingPile chargingPile = chargingPileService.getById(chargingGun.getChargingPileId());
+ String code = chargingPile.getCode() + chargingGun.getCode();
+ String fileName = URLEncoder.encode(code, "UTF-8") + ".jpg";
response.setContentType("application/force-download");
response.addHeader("Content-Disposition", "attachment;fileName=" + fileName);
- String url = "https://www.baidu.com?id=" + id;
- String filePath = "D:/Program Files/nginx-1.20.2/html";
+ String url = "https://mxcd.zhinenganguan.com?No=" + code;
+ String filePath = fileUploadConfig.getLocation() + fileName;
QRCodeUtils.encode(url, filePath);
FileInputStream inputStream = new FileInputStream(filePath);
ServletOutputStream out = response.getOutputStream();
@@ -160,11 +175,45 @@
out.flush();
out.close();
inputStream.close();
+
+ //清除服务器上的文件
+ try {
+ // 使用Runtime执行命令
+ Process process = Runtime.getRuntime().exec("sudo rm -rf " + filePath);
+ // 读取命令的输出
+ BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
+ String line;
+ while ((line = reader.readLine()) != null) {
+ System.out.println(line);
+ }
+ // 等待命令执行完成
+ process.waitFor();
+ // 关闭流
+ reader.close();
+ } catch (IOException | InterruptedException e) {
+ e.printStackTrace();
+ }
+
}catch (Exception e){
e.printStackTrace();
}
}
-
+
+ /**
+ * 设备状态统计
+ */
+ @ApiOperation(tags = {"后台-工作台"},value = "设备状态统计")
+ @PutMapping(value = "/gunStatusStatistics")
+ public R<GunStatusStatisticsVO> gunStatusStatistics() {
+ List<Integer> siteIds = new ArrayList<>();
+ Long userId = SecurityUtils.getUserId();
+ //获取当前登录的siteIds
+ PageInfo<GetSiteListDTO> siteList1 = siteService.getSiteList1(userId);
+ for (GetSiteListDTO datum : siteList1.getRecords()) {
+ siteIds.add(datum.getId());
+ }
+ return R.ok(chargingGunService.gunStatusStatistics(siteIds));
+ }
/**
* 根据id获取充电枪完整名称
@@ -203,12 +252,42 @@
TChargingGun chargingGun = chargingGunService.getById(id);
siteNameVO.setGunName(chargingGun.getName());
siteNameVO.setGunNumber(chargingGun.getCode());
- TChargingPile chargingPile = chargingPileService.getById(id);
+ TChargingPile chargingPile = chargingPileService.getById(chargingGun.getChargingPileId());
siteNameVO.setPileName(chargingPile.getName());
siteNameVO.setPileNumber(chargingPile.getNumber());
- Site site = siteService.getById(id);
+ Site site = siteService.getById(chargingGun.getSiteId());
siteNameVO.setSiteName(site.getName());
return R.ok(siteNameVO);
}
+ /**
+ * 根据枪编号获取充电枪
+ * @param code
+ * @return
+ */
+ @PostMapping("/getChargingGunByCode")
+ public R<TChargingGun> getChargingGunByCode(@RequestBody GetChargingGunByCode code){
+ TChargingPile chargingPile = chargingPileService.getOne(new LambdaQueryWrapper<TChargingPile>()
+ .eq(TChargingPile::getCode, code.getCharging_pile_code()).eq(TChargingPile::getDelFlag, 0));
+ return R.ok(chargingGunService.getOne(Wrappers.lambdaQuery(TChargingGun.class)
+ .eq(TChargingGun::getChargingPileId, chargingPile.getId())
+ .eq(TChargingGun::getCode, code.getCharging_gun_code())
+ .eq(TChargingGun::getDelFlag, 0)
+ .last("LIMIT 1")));
+ }
+ /**
+ * 根据枪编号获取充电枪
+ * @param code
+ * @return
+ */
+ /**
+ * 编辑充电枪
+ * @param chargingGun
+ * @return
+ */
+ @PostMapping("/updateChargingGunById")
+ public R<String> updateChargingGunById(@RequestBody TChargingGun chargingGun){
+ chargingGunService.updateById(chargingGun);
+ return R.ok();
+ }
}
--
Gitblit v1.7.1