From 3244b550596e0330031b3f4547356927df83b0ad Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期一, 19 五月 2025 11:48:35 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TFaultMessageController.java |   80 +++++++++++++++++++++++++++++++++++++--
 1 files changed, 75 insertions(+), 5 deletions(-)

diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TFaultMessageController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TFaultMessageController.java
index fade8ba..b47e05b 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TFaultMessageController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TFaultMessageController.java
@@ -1,21 +1,31 @@
 package com.ruoyi.chargingPile.controller;
 
 
-import com.ruoyi.chargingPile.api.dto.TChargingGunDTO;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.account.api.dto.SendMessageDTO;
+import com.ruoyi.account.api.feignClient.AppUserClient;
+import com.ruoyi.chargingPile.api.model.Site;
+import com.ruoyi.chargingPile.api.model.TChargingPile;
 import com.ruoyi.chargingPile.api.model.TFaultMessage;
+import com.ruoyi.chargingPile.service.ISiteService;
+import com.ruoyi.chargingPile.service.TChargingPileNotificationService;
 import com.ruoyi.chargingPile.service.TChargingPileService;
 import com.ruoyi.chargingPile.service.TFaultMessageService;
+import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.core.web.page.BasePage;
 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.annotation.Logical;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import java.util.List;
 
 /**
@@ -31,10 +41,17 @@
 public class TFaultMessageController {
 
     private final TFaultMessageService faultMessageService;
-
+    private final ISiteService siteService;
+    private final TChargingPileService chargingPileService;
+    private final TChargingPileNotificationService chargingPileNotificationService;
+    @Resource
+    private AppUserClient appUserClient;
     @Autowired
-    public TFaultMessageController(TFaultMessageService faultMessageService) {
+    public TFaultMessageController(TFaultMessageService faultMessageService, ISiteService siteService, TChargingPileService chargingPileService, TChargingPileNotificationService chargingPileNotificationService) {
         this.faultMessageService = faultMessageService;
+        this.siteService = siteService;
+        this.chargingPileService = chargingPileService;
+        this.chargingPileNotificationService = chargingPileNotificationService;
     }
 
     /**
@@ -47,14 +64,14 @@
         faultMessageService.add(dto);
         return AjaxResult.success();
     }
-    
-    
+
     /**
      * 获取故障信息列表
      * @param siteId
      * @param basePage
      * @return
      */
+    @RequiresPermissions(value = {"/faultInformationList"}, logical = Logical.OR)
     @ResponseBody
     @GetMapping("/getFaultMessageList")
     @ApiOperation(value = "获取故障信息列表数据", tags = {"管理后台-设备监控"})
@@ -66,21 +83,74 @@
     }
     
     
+    @RequiresPermissions(value = {"/faultInformationList/add"}, logical = Logical.OR)
     @ResponseBody
     @PostMapping("/addFaultMessage")
     @ApiOperation(value = "添加故障信息", tags = {"管理后台-设备监控"})
+    @Log(title = "【设备监控】添加故障信息", businessType = BusinessType.INSERT,operatorType = OperatorType.MANAGE)
     public AjaxResult addFaultMessage(@RequestBody TFaultMessage faultMessage){
         faultMessageService.save(faultMessage);
         return AjaxResult.success();
     }
     
     
+    @RequiresPermissions(value = {"/faultInformationList/del"}, logical = Logical.OR)
     @ResponseBody
     @DeleteMapping("/delFaultMessage/{id}")
     @ApiOperation(value = "删除故障信息", tags = {"管理后台-设备监控"})
+    @Log(title = "【设备监控】删除故障信息", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
     public AjaxResult delFaultMessage(@PathVariable Integer id){
         faultMessageService.removeById(id);
         return AjaxResult.success();
     }
+
+    /**
+     * 添加离线故障记录
+     * @param faultMessage
+     * @return
+     */
+    @PostMapping("/createFaultMessage")
+    public R<String> createFaultMessage(@RequestBody TFaultMessage faultMessage){
+        faultMessageService.save(faultMessage);
+
+        Site site = siteService.getById(faultMessage.getSiteId());
+        TChargingPile chargingPile = chargingPileService.getById(faultMessage.getChargingPileId());
+        String siteName = site.getName();
+        SendMessageDTO sendMessageDTO = new SendMessageDTO();
+        sendMessageDTO.setPhone(site.getPhone());
+        sendMessageDTO.setSite(site.getName());
+        sendMessageDTO.setChargeGun(chargingPile.getNumber() + "");
+        sendMessageDTO.setType(3);
+        String result = appUserClient.sendMessage(sendMessageDTO).getData();
+        if(siteName.length()>10){
+            siteName = siteName.substring(0,10);
+        }
+        chargingPileNotificationService.saveData(4,faultMessage.getSiteId(),faultMessage.getChargingPileId(),site.getPhone(),"检测到"+siteName+"..."+chargingPile.getNumber()+"号桩设备离线,请及时查看处理!");
+        return R.ok();
+    }
+    /**
+     * 修改离线故障记录
+     * @param faultMessage
+     * @return
+     */
+    @PostMapping("/updateFaultMessage")
+    public R<String> updateFaultMessage(@RequestBody TFaultMessage faultMessage){
+        faultMessageService.updateById(faultMessage);
+        return R.ok();
+    }
+    /**
+     * 查询枪是否有离线或故障记录
+     * @param gunId
+     * @return
+     */
+    @PostMapping("/getFaultMessageByGunId/{gunId}")
+    public R<TFaultMessage> getFaultMessageByGunId(@PathVariable("gunId") Integer gunId){
+        return R.ok(faultMessageService.getOne(Wrappers.lambdaQuery(TFaultMessage.class)
+                .eq(TFaultMessage::getChargingGunId,gunId)
+                .and(e->e.eq(TFaultMessage::getStatus,1).or().eq(TFaultMessage::getStatus,2))
+                .isNull(TFaultMessage::getEndTime)
+                .orderByDesc(TFaultMessage::getDownTime)
+                .last("LIMIT 1")));
+    }
 }
 

--
Gitblit v1.7.1