package com.ycl.controller.smoke; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ycl.annotation.LogSave; import com.ycl.api.CommonPage; import com.ycl.api.CommonResult; import com.ycl.controller.BaseController; import com.ycl.entity.smoke.OdsCurAlarm; import com.ycl.entity.smoke.OdsCustomer; import com.ycl.entity.smoke.OdsLocaleDocument; import com.ycl.entity.smoke.OdsStatistics; import com.ycl.service.smoke.IOdsCurAlarmService; import com.ycl.service.smoke.IOdsLocaleDocumentService; import com.ycl.service.smoke.IOdsStatisticsService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.lang.reflect.Field; import java.util.List; @RestController @RequestMapping("/smoke") @Api(tags = "油烟管理管理-统计数据数据") public class OdsStatisticsController extends BaseController { IOdsStatisticsService odsStatisticsService; IOdsCurAlarmService curAlarmService; IOdsLocaleDocumentService documentService; @Autowired public void setOdsStatisticsService(IOdsStatisticsService odsStatisticsService) { this.odsStatisticsService = odsStatisticsService; } @Autowired public void setCurAlarmService(IOdsCurAlarmService curAlarmService) { this.curAlarmService = curAlarmService; } @Autowired public void setDocumentService(IOdsLocaleDocumentService documentService) { this.documentService = documentService; } @ApiOperation("检测仪总体情况报表") @RequestMapping(value = "/statistics/listDataDetectorDailyStats", method = RequestMethod.GET) @ResponseBody @LogSave(operationType = "油烟模块", contain = "检测仪总体情况报表") public CommonResult findDataDetectorDailyStats() { OdsStatistics odsStatistics = odsStatisticsService.getByType("listDataDetectorDailyStats"); return CommonResult.success(odsStatistics.getContent()); } @ApiOperation("油烟减排统计") @RequestMapping(value = "/statistics/listDetectorDaily", method = RequestMethod.GET) @ResponseBody @LogSave(operationType = "油烟模块", contain = "油烟减排统计") public CommonResult findDetectorDaily() { OdsStatistics odsStatistics = odsStatisticsService.getByType("listDetectorDaily"); return CommonResult.success(odsStatistics.getContent()); } @ApiOperation("监测报警统计&运维情况报表") @RequestMapping(value = "/statistics/listCurAlarm", method = RequestMethod.GET) @ResponseBody @LogSave(operationType = "油烟模块", contain = "监测报警统计&运维情况报表") public CommonResult> findCurAlarm() { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper().orderByDesc(OdsCurAlarm::getId); List list = curAlarmService.list(queryWrapper); return CommonResult.success(list); } @ApiOperation("检测仪总体情况报表---档案") @RequestMapping(value = "/statistics/detectorDailyStats/document", method = RequestMethod.GET) @ResponseBody @LogSave(operationType = "油烟模块", contain = "监测报警统计&运维情况报表") public CommonResult getDetectorDailyStatsDocument(@RequestParam(value = "field", required = false) String field, @RequestParam(value = "localeId", required = false) String localeId) { OdsLocaleDocument odsLocaleDocument = documentService.getByLocaleId(localeId); String value = ""; if ("detectorDailySumDays".equals(field)) { odsLocaleDocument.setTenHourData(""); odsLocaleDocument.setDevices(""); odsLocaleDocument.setMaintenance(""); value = JSON.toJSONString(odsLocaleDocument); } else { value = getFieldValueByFieldName(field, odsLocaleDocument); } return CommonResult.success(value); } /** * 根据属性名获取属性值 * * @param fieldName * @param object * @return */ private String getFieldValueByFieldName(String fieldName, Object object) { try { Field field = object.getClass().getDeclaredField(fieldName); //设置对象的访问权限,保证对private的属性的访问 field.setAccessible(true); return (String) field.get(object); } catch (Exception e) { return null; } } }