From a146097a15d719c60af3cdeb4de1f21aa7b5ca8d Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期五, 20 九月 2024 10:47:53 +0800 Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile --- ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingGunController.java | 119 ++++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 100 insertions(+), 19 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 6e83cb0..ecb1330 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,12 +1,20 @@ 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.service.ISiteService; import com.ruoyi.chargingPile.service.TChargingGunService; import com.ruoyi.chargingPile.service.TChargingPileService; import com.ruoyi.chargingPile.util.QRCodeUtils; @@ -17,18 +25,28 @@ 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> @@ -43,16 +61,16 @@ @RequestMapping("/t-charging-gun") public class TChargingGunController { - private final TChargingGunService chargingGunService; - + @Autowired + private TChargingGunService chargingGunService; + @Autowired + private ChargingOrderClient chargingOrderClient; + @Resource private TChargingPileService chargingPileService; + @Resource + private ISiteService siteService; - @Autowired - public TChargingGunController(TChargingGunService chargingGunService) { - this.chargingGunService = chargingGunService; - } - /** * 查询充电枪列表 */ @@ -65,7 +83,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) { @@ -75,7 +93,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) { @@ -94,7 +112,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) { @@ -106,7 +124,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) { @@ -117,11 +135,12 @@ /** * 结束充电 */ - @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 硬件 结束充电 + public AjaxResult<String> stopCharging(@RequestParam("id") String id) { + // 硬件 结束充电 + chargingOrderClient.stopCharging(id); return AjaxResult.success(); } @@ -129,20 +148,22 @@ @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); - response.setContentType("image/jpeg"); - response.setHeader("Content-Disposition","attachment; filename=" + URLEncoder.encode(chargingGun.getName(), "UTF-8") + ".jpeg"); + String fileName = URLEncoder.encode(chargingGun.getCode(), "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"; QRCodeUtils.encode(url, filePath); FileInputStream inputStream = new FileInputStream(filePath); - PrintWriter out = response.getWriter(); + ServletOutputStream out = response.getOutputStream(); int len = 0; byte[] buf = new byte[1024]; while ((len = inputStream.read(buf, 0, 1024)) != -1) { - out.println(buf); + out.write(buf); } out.flush(); out.close(); @@ -151,7 +172,22 @@ 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获取充电枪完整名称 @@ -178,5 +214,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