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> page(@RequestParam Map params){ PageData page = deviceHealthStateService.page(params); return new CommonResult>().setData(page); } @GetMapping("list") public CommonResult list(){ List list = deviceHealthStateService.list(new HashMap<>()); DeviceHealthStateDTO deviceHealthStateDTO = list.get(0); return new CommonResult().setData(deviceHealthStateDTO); } @GetMapping("{id}") @Operation(summary = "信息") @PreAuthorize("@ss.hasPermission('device:device-health-state:info')") public CommonResult get(@PathVariable("id") Long id){ DeviceHealthStateDTO data = deviceHealthStateService.get(id); return new CommonResult().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 params, HttpServletResponse response) throws Exception { // List list = deviceHealthStateService.list(params); // ExcelUtils.exportExcelToTarget(response, null, list, DeviceHealthStateExcel.class); // } @GetMapping("getDeviceCurrentRate") @Operation(summary = "实时获取设备率") @LogOperation("实时获取设备率") public CommonResult getDeviceCurrentRate() { DeviceCurrentRateDTO deviceCurrentRate = deviceStatUsageService.getDeviceCurrentRate(); return new CommonResult().setData(deviceCurrentRate); } @GetMapping("getDeviceStatCount") @Operation(summary = "实时获取设备数量统计") @LogOperation("实时获取设备数量统计") public CommonResult getDeviceStatCount() { DeviceStatCountDTO deviceStatistics = deviceStatCountService.getDeviceStatCount(); return new CommonResult().setData(deviceStatistics); } @PostMapping("getDeviceStatCountHistory") @Operation(summary = "获取设备数量统计历史") @LogOperation("获取设备数量统计历史") public CommonResult> getDeviceStatCountHistory(@RequestBody Map params) { List list = deviceStatCountService.getHistory(params); return new CommonResult>().setData(list); } @PostMapping("getDeviceRunTimeHistory") @Operation(summary = "获取设备历史使用时间") @LogOperation("获取设备历史使用时间") public CommonResult> getDeviceRunTimeHistory(@RequestBody Map params) { List list = deviceStatUsageService.list(params); return new CommonResult>().setData(list); } }