From f9e9bd38b2255c5cb201c8ee0123b7dbaec52938 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期二, 22 十月 2024 16:54:06 +0800
Subject: [PATCH] bug修改
---
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingGunController.java | 179 ++++++++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 158 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 e9f4b05..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
@@ -1,27 +1,52 @@
package com.ruoyi.chargingPile.controller;
+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;
+import com.ruoyi.chargingPile.util.QRCodeUtils;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.domain.BaseDelete;
import com.ruoyi.common.core.web.page.PageInfo;
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;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
+import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
+import java.awt.image.BufferedImage;
+import java.io.*;
+import java.net.URLEncoder;
+import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
+import java.util.Map;
/**
* <p>
@@ -36,16 +61,19 @@
@RequestMapping("/t-charging-gun")
public class TChargingGunController {
- private final TChargingGunService chargingGunService;
-
+ @Autowired
+ private TChargingGunService chargingGunService;
+ @Resource
+ private ChargingOrderClient chargingOrderClient;
+
@Resource
private TChargingPileService chargingPileService;
-
- @Autowired
- public TChargingGunController(TChargingGunService chargingGunService) {
- this.chargingGunService = chargingGunService;
- }
+ @Resource
+ private ISiteService siteService;
+ @Autowired
+ private FileUploadConfig fileUploadConfig;
+
/**
* 查询充电枪列表
*/
@@ -58,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) {
@@ -68,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) {
@@ -87,34 +115,37 @@
/**
* 删除充电枪
*/
- @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) {
TChargingGun chargingGun = chargingGunService.getById(id);
- chargingGun.setDelFlag(true);
- chargingGunService.updateById(chargingGun);
+ chargingGunService.removeById(chargingGun);
return AjaxResult.success();
}
/**
* 批量删除充电枪
*/
- @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(@RequestBody List<Integer> ids) {
- return AjaxResult.ok(chargingGunService.removeByIds(ids));
+ public AjaxResult<Boolean> deleteByIds(@RequestParam String ids) {
+ String[] split = ids.split(",");
+ return AjaxResult.ok(chargingGunService.removeByIds(Arrays.asList(split)));
}
/**
* 结束充电
*/
- @Log(title = "结束充电", businessType = BusinessType.UPDATE,operatorType = OperatorType.MANAGE)
+ @Log(title = "【充电桩信息】结束充电", businessType = BusinessType.OTHER,operatorType = OperatorType.MANAGE)
@ApiOperation(tags = {"后台-充电枪"},value = "结束充电")
- @PostMapping(value = "/stopCharging")
- public AjaxResult<String> stopCharging() {
- // TODO 硬件 结束充电
+ @PutMapping(value = "/stopCharging")
+ public AjaxResult<String> stopCharging(@RequestParam("id") String id) {
+ // 根据充电枪id 查询最新的一笔订单
+ String data = chargingOrderClient.queryOrderByGunId(id).getData();
+ // 硬件 结束充电
+ chargingOrderClient.stopCharging(data);
return AjaxResult.success();
}
@@ -122,10 +153,67 @@
@ApiOperation(tags = {"管理后台-充电桩信息"},value = "下载二维码")
@GetMapping(value = "/downloadQRCode/{id}")
+ @Log(title = "【充电桩信息】下载二维码", businessType = BusinessType.OTHER,operatorType = OperatorType.MANAGE)
public void downloadQRCode(@PathVariable Integer id, HttpServletResponse response){
- // todo 待完善
+ try {
+ TChargingGun chargingGun = chargingGunService.getById(id);
+ 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://mxcd.zhinenganguan.com?No=" + code;
+ String filePath = fileUploadConfig.getLocation() + fileName;
+ QRCodeUtils.encode(url, filePath);
+ FileInputStream inputStream = new FileInputStream(filePath);
+ ServletOutputStream out = response.getOutputStream();
+ int len = 0;
+ byte[] buf = new byte[1024];
+ while ((len = inputStream.read(buf, 0, 1024)) != -1) {
+ out.write(buf);
+ }
+ 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获取充电枪完整名称
@@ -152,5 +240,54 @@
TChargingGun chargingGun = chargingGunService.getById(id);
return R.ok(chargingGun);
}
+ /**
+ * 根据id获取充电枪详情
+ * @param id
+ * @return
+ */
+ @ResponseBody
+ @PostMapping(value = "/getAllInfoById/{id}")
+ public R<SiteNameVO> getAllInfoById(@PathVariable Integer id){
+ SiteNameVO siteNameVO = new SiteNameVO();
+ TChargingGun chargingGun = chargingGunService.getById(id);
+ siteNameVO.setGunName(chargingGun.getName());
+ siteNameVO.setGunNumber(chargingGun.getCode());
+ TChargingPile chargingPile = chargingPileService.getById(chargingGun.getChargingPileId());
+ siteNameVO.setPileName(chargingPile.getName());
+ siteNameVO.setPileNumber(chargingPile.getNumber());
+ 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