zhanghua
2023-11-13 0eb28afa74627a5ecf7b91de3106df539a09fe46
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
package com.ycl.controller.smoke;
 
 
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<String> 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<String> 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<List<OdsCurAlarm>> findCurAlarm() {
        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 = 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;
        }
    }
 
}