zhanghua
2023-12-12 bc2da7908a227c09e5cc7b6d8dab3e9c94b784a1
ycl-platform/src/main/java/com/ycl/controller/smoke/OdsStatisticsController.java
@@ -1,6 +1,9 @@
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;
@@ -8,14 +11,17 @@
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
@@ -26,6 +32,8 @@
    IOdsStatisticsService odsStatisticsService;
    IOdsCurAlarmService curAlarmService;
    IOdsLocaleDocumentService documentService;
    @Autowired
    public void setOdsStatisticsService(IOdsStatisticsService odsStatisticsService) {
        this.odsStatisticsService = odsStatisticsService;
@@ -34,6 +42,11 @@
    @Autowired
    public void setCurAlarmService(IOdsCurAlarmService curAlarmService) {
        this.curAlarmService = curAlarmService;
    }
    @Autowired
    public void setDocumentService(IOdsLocaleDocumentService documentService) {
        this.documentService = documentService;
    }
    @ApiOperation("检测仪总体情况报表")
@@ -60,7 +73,46 @@
    @ResponseBody
    @LogSave(operationType = "油烟模块", contain = "监测报警统计&运维情况报表")
    public CommonResult<List<OdsCurAlarm>> findCurAlarm() {
        List<OdsCurAlarm> list = curAlarmService.list();
        LambdaQueryWrapper<OdsCurAlarm> queryWrapper = new LambdaQueryWrapper<OdsCurAlarm>().orderByDesc(OdsCurAlarm::getId);
        List<OdsCurAlarm> list = curAlarmService.list(queryWrapper);
        return CommonResult.success(list);
    }
    @ApiOperation("检测仪总体情况报表---档案")
    @RequestMapping(value = "/statistics/detectorDailyStats/document", method = RequestMethod.GET)
    @ResponseBody
    @LogSave(operationType = "油烟模块", contain = "监测报警统计&运维情况报表")
    public CommonResult<String> 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;
        }
    }
}