package com.iailab.module.device.controller;
|
|
import com.iailab.common.annotation.LogOperation;
|
import com.iailab.framework.common.constant.Constant;
|
import com.iailab.framework.common.page.PageData;
|
import com.iailab.framework.common.pojo.CommonResult;
|
|
import com.iailab.framework.common.util.validation.ValidationUtils;
|
import com.iailab.framework.common.validation.group.AddGroup;
|
import com.iailab.framework.common.validation.group.DefaultGroup;
|
import com.iailab.framework.common.validation.group.UpdateGroup;
|
import com.iailab.module.device.dto.DeviceCurrentRateDTO;
|
import com.iailab.module.device.dto.DeviceHealthStateDTO;
|
import com.iailab.module.device.dto.DeviceStatCountDTO;
|
import com.iailab.module.device.entity.DeviceStatUsageEntity;
|
import com.iailab.module.device.service.DeviceStatCountService;
|
import com.iailab.module.device.service.DeviceHealthStateService;
|
import com.iailab.module.device.service.DeviceStatUsageService;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Parameter;
|
import io.swagger.v3.oas.annotations.Parameters;
|
import javax.annotation.Resource;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.web.bind.annotation.*;
|
|
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
|
/**
|
* 设备健康状态表
|
*
|
* @author lirm ${email}
|
* @since 1.0.0 2024-05-22
|
*/
|
@RestController
|
@RequestMapping("device/device-health-state")
|
@Tag(name = "设备健康状态表")
|
public class DeviceHealthStateController {
|
@Resource
|
private DeviceHealthStateService deviceHealthStateService;
|
@Resource
|
private DeviceStatCountService deviceStatCountService;
|
@Resource
|
private DeviceStatUsageService deviceStatUsageService;
|
|
@GetMapping("page")
|
@Operation(summary = "分页")
|
@Parameters({
|
@Parameter(name = Constant.PAGE, description = "当前页码,从1开始", required = true) ,
|
@Parameter(name = Constant.LIMIT, description = "每页显示记录数", required = true) ,
|
@Parameter(name = Constant.ORDER_FIELD, description = "排序字段") ,
|
@Parameter(name = Constant.ORDER, description = "排序方式,可选值(asc、desc)")
|
})
|
@PreAuthorize("@ss.hasPermission('device:device-health-state:page')")
|
public CommonResult<PageData<DeviceHealthStateDTO>> page(@RequestParam Map<String, Object> params){
|
PageData<DeviceHealthStateDTO> page = deviceHealthStateService.page(params);
|
|
return new CommonResult<PageData<DeviceHealthStateDTO>>().setData(page);
|
}
|
|
|
@GetMapping("list")
|
public CommonResult<DeviceHealthStateDTO> list(){
|
List<DeviceHealthStateDTO> list = deviceHealthStateService.list(new HashMap<>());
|
DeviceHealthStateDTO deviceHealthStateDTO = list.get(0);
|
return new CommonResult<DeviceHealthStateDTO>().setData(deviceHealthStateDTO);
|
}
|
|
@GetMapping("{id}")
|
@Operation(summary = "信息")
|
@PreAuthorize("@ss.hasPermission('device:device-health-state:info')")
|
public CommonResult<DeviceHealthStateDTO> get(@PathVariable("id") Long id){
|
DeviceHealthStateDTO data = deviceHealthStateService.get(id);
|
|
return new CommonResult<DeviceHealthStateDTO>().setData(data);
|
}
|
|
@PostMapping
|
@Operation(summary = "保存")
|
@LogOperation("保存")
|
@PreAuthorize("@ss.hasPermission('device:device-health-state:save')")
|
public CommonResult save(@RequestBody DeviceHealthStateDTO dto){
|
//效验数据
|
ValidationUtils.validate(dto, AddGroup.class, DefaultGroup.class);
|
|
deviceHealthStateService.save(dto);
|
|
return new CommonResult();
|
}
|
|
@PutMapping
|
@Operation(summary = "修改")
|
@LogOperation("修改")
|
@PreAuthorize("@ss.hasPermission('device:device-health-state:update')")
|
public CommonResult update(@RequestBody DeviceHealthStateDTO dto){
|
//效验数据
|
ValidationUtils.validate(dto, UpdateGroup.class, DefaultGroup.class);
|
|
deviceHealthStateService.update(dto);
|
|
return new CommonResult();
|
}
|
|
@DeleteMapping
|
@Operation(summary = "删除")
|
@LogOperation("删除")
|
@PreAuthorize("@ss.hasPermission('device:device-health-state:delete')")
|
public CommonResult delete(@RequestBody Long[] ids){
|
deviceHealthStateService.delete(ids);
|
return new CommonResult();
|
}
|
|
// @GetMapping("export")
|
// @Operation(summary = "导出")
|
// @LogOperation("导出")
|
// @PreAuthorize("@ss.hasPermission('device:device-health-state:export')")
|
// public void export(@RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
|
// List<DeviceHealthStateDTO> list = deviceHealthStateService.list(params);
|
// ExcelUtils.exportExcelToTarget(response, null, list, DeviceHealthStateExcel.class);
|
// }
|
|
@GetMapping("getDeviceCurrentRate")
|
@Operation(summary = "实时获取设备率")
|
@LogOperation("实时获取设备率")
|
public CommonResult<DeviceCurrentRateDTO> getDeviceCurrentRate() {
|
DeviceCurrentRateDTO deviceCurrentRate = deviceStatUsageService.getDeviceCurrentRate();
|
return new CommonResult<DeviceCurrentRateDTO>().setData(deviceCurrentRate);
|
}
|
|
@GetMapping("getDeviceStatCount")
|
@Operation(summary = "实时获取设备数量统计")
|
@LogOperation("实时获取设备数量统计")
|
public CommonResult<DeviceStatCountDTO> getDeviceStatCount() {
|
DeviceStatCountDTO deviceStatistics = deviceStatCountService.getDeviceStatCount();
|
return new CommonResult<DeviceStatCountDTO>().setData(deviceStatistics);
|
}
|
|
@PostMapping("getDeviceStatCountHistory")
|
@Operation(summary = "获取设备数量统计历史")
|
@LogOperation("获取设备数量统计历史")
|
public CommonResult<List<DeviceStatCountDTO>> getDeviceStatCountHistory(@RequestBody Map<String, Object> params) {
|
List<DeviceStatCountDTO> list = deviceStatCountService.getHistory(params);
|
return new CommonResult<List<DeviceStatCountDTO>>().setData(list);
|
}
|
|
@PostMapping("getDeviceRunTimeHistory")
|
@Operation(summary = "获取设备历史使用时间")
|
@LogOperation("获取设备历史使用时间")
|
public CommonResult<List<DeviceStatUsageEntity>> getDeviceRunTimeHistory(@RequestBody Map<String, Object> params) {
|
List<DeviceStatUsageEntity> list = deviceStatUsageService.list(params);
|
return new CommonResult<List<DeviceStatUsageEntity>>().setData(list);
|
}
|
}
|