无关风月
2024-10-23 ee2bf95f3472a4179ee0fc7c8e4e2a35e1214bc8
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingGunController.java
@@ -3,6 +3,7 @@
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;
@@ -11,6 +12,7 @@
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;
@@ -39,10 +41,7 @@
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;
@@ -143,8 +142,10 @@
    @ApiOperation(tags = {"后台-充电枪"},value = "结束充电")
    @PutMapping(value = "/stopCharging")
    public AjaxResult<String> stopCharging(@RequestParam("id") String id) {
        // 根据充电枪id 查询最新的一笔订单
        String data = chargingOrderClient.queryOrderByGunId(id).getData();
        // 硬件 结束充电
        chargingOrderClient.stopCharging(id);
        chargingOrderClient.stopCharging(data);
        return AjaxResult.success();
    }
    
@@ -156,13 +157,13 @@
    public void downloadQRCode(@PathVariable Integer id, HttpServletResponse response){
        try {
            TChargingGun chargingGun = chargingGunService.getById(id);
            TChargingPile chargingPile = chargingPileService.getById(chargingGun.getId());
            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();
            String filePath = fileUploadConfig.getLocation() + fileName;
            QRCodeUtils.encode(url, filePath);
            FileInputStream inputStream = new FileInputStream(filePath);
            ServletOutputStream out = response.getOutputStream();
@@ -174,6 +175,25 @@
            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();
        }
@@ -232,10 +252,10 @@
        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);
    }
@@ -244,11 +264,15 @@
     * @param code
     * @return
     */
    @PostMapping("/getChargingGunByCode/{code}")
    public R<TChargingGun> getChargingGunByCode(@PathVariable("code") String code){
    @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::getCode, code)
                .last("LIMIT 1")));
                        .eq(TChargingGun::getChargingPileId, chargingPile.getId())
                        .eq(TChargingGun::getCode, code.getCharging_gun_code())
                        .eq(TChargingGun::getDelFlag, 0)
                        .last("LIMIT 1")));
    }
    /**
     * 根据枪编号获取充电枪