HealthController.java 2.23 KB
package com.iot.scheduler.controller;

import com.iot.scheduler.service.DevicePullService;
import com.iot.scheduler.service.DeviceSearchService;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.util.Map;

@RestController
public class HealthController {

    @Resource
    private DevicePullService devicePullService;
    @Resource
    private DeviceSearchService deviceSearchService;

    @GetMapping("/health")
    public String health() throws Exception {
        devicePullService.pullDeviceAndPushToIot();
        return "IoT Scheduler is running...";
    }

    @GetMapping("/device/list")
    public Map<String, Object> deviceList(
            @RequestParam(required = false) String deviceName,
            @RequestParam(required = false) String lampState,
            @RequestParam(defaultValue = "1") Integer pageNo,
            @RequestParam(defaultValue = "10") Integer pageSize) {
        return deviceSearchService.queryDeviceList(deviceName, lampState, pageNo, pageSize);
    }

    @GetMapping("/device/stats")
    public Map<String, Object> deviceStats() {
        return deviceSearchService.queryDeviceStats();
    }

    @GetMapping("/device/lampData")
    public Map<String, Object> lampData(
            @RequestParam String dtuSn,
            @RequestParam String date) {
        return deviceSearchService.queryLampData(dtuSn, date);
    }

    @GetMapping("/device/syncDevUtil")
    public String syncDevUtil() {
        devicePullService.pullDevUtilAndSave();
        return "设备利用率数据同步完成";
    }

    @GetMapping("/device/syncOee")
    public String syncOee() {
        devicePullService.pullOeeAndSave();
        return "OEE时序数据同步完成";
    }

    @GetMapping("/device/oeeStats")
    public Map<String, Object> oeeStats(
            @RequestParam String dtuSn,
            @RequestParam(defaultValue = "day") String type,
            @RequestParam(required = false) String startDate,
            @RequestParam(required = false) String endDate) {
        return deviceSearchService.queryOeeStats(dtuSn, type, startDate, endDate);
    }
}