From 1044c9c052907047990625674c4b9702bea2b44f Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期五, 27 九月 2024 09:11:30 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingGunController.java | 155 ++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 134 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..b8db1ec 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,53 @@
package com.ruoyi.chargingPile.controller;
+import cn.hutool.core.img.ImgUtil;
+import cn.hutool.core.io.FileUtil;
+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.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.BufferedReader;
+import java.io.FileInputStream;
+import java.io.FileReader;
+import java.io.PrintWriter;
+import java.net.URLEncoder;
+import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
+import java.util.Map;
/**
* <p>
@@ -36,16 +62,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 +87,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 +97,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 +116,35 @@
/**
* 删除充电枪
*/
- @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) {
+ // 硬件 结束充电
+ chargingOrderClient.stopCharging(id);
return AjaxResult.success();
}
@@ -122,10 +152,48 @@
@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.getId());
+ 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();
+ 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();
+ }catch (Exception e){
+ e.printStackTrace();
+ }
}
-
+
+ /**
+ * 设备状态统计
+ */
+ @ApiOperation(tags = {"后台-工作台"},value = "设备状态统计")
+ @PutMapping(value = "/gunStatusStatistics")
+ public AjaxResult<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 AjaxResult.ok(chargingGunService.gunStatusStatistics(siteIds));
+ }
/**
* 根据id获取充电枪完整名称
@@ -152,5 +220,50 @@
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(id);
+ siteNameVO.setPileName(chargingPile.getName());
+ siteNameVO.setPileNumber(chargingPile.getNumber());
+ Site site = siteService.getById(id);
+ siteNameVO.setSiteName(site.getName());
+ return R.ok(siteNameVO);
+ }
+ /**
+ * 根据枪编号获取充电枪
+ * @param code
+ * @return
+ */
+ @PostMapping("/getChargingGunByCode/{code}")
+ public R<TChargingGun> getChargingGunByCode(@PathVariable("code") String code){
+ return R.ok(chargingGunService.getOne(Wrappers.lambdaQuery(TChargingGun.class)
+ .eq(TChargingGun::getCode, code)
+ .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