package com.ruoyi.chargingPile.controller;
|
|
|
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;
|
|
/**
|
* <p>
|
* 前端控制器
|
* </p>
|
*
|
* @author xiaochen
|
* @since 2024-08-08
|
*/
|
@RestController
|
@RequestMapping("/t-fault-message")
|
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, ISiteService siteService, TChargingPileService chargingPileService, TChargingPileNotificationService chargingPileNotificationService) {
|
this.faultMessageService = faultMessageService;
|
this.siteService = siteService;
|
this.chargingPileService = chargingPileService;
|
this.chargingPileNotificationService = chargingPileNotificationService;
|
}
|
|
/**
|
* 添加故障报修管理
|
*/
|
@Log(title = "添加故障报修管理", businessType = BusinessType.INSERT,operatorType = OperatorType.MOBILE)
|
@ApiOperation(tags = {"小程序-故障报修"},value = "添加故障报修管理")
|
@PostMapping(value = "/add")
|
public AjaxResult<String> add(@Validated @RequestBody TFaultMessage dto) {
|
faultMessageService.add(dto);
|
return AjaxResult.success();
|
}
|
|
/**
|
* 获取故障信息列表
|
* @param siteId
|
* @param basePage
|
* @return
|
*/
|
@RequiresPermissions(value = {"/faultInformationList"}, logical = Logical.OR)
|
@ResponseBody
|
@GetMapping("/getFaultMessageList")
|
@ApiOperation(value = "获取故障信息列表数据", tags = {"管理后台-设备监控"})
|
public AjaxResult<PageInfo<TFaultMessage>> getFaultMessageList(Integer siteId, BasePage basePage){
|
PageInfo<TFaultMessage> pageInfo = new PageInfo<>(basePage.getPageCurr(), basePage.getPageSize());
|
List<TFaultMessage> faultMessageList = faultMessageService.getFaultMessageList(pageInfo, siteId);
|
pageInfo.setRecords(faultMessageList);
|
return AjaxResult.success(pageInfo);
|
}
|
|
|
@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")));
|
}
|
}
|