ApiController.java 3.95 KB
package com.huaheng.control.management.controller;

import java.util.List;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;

import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import com.huaheng.control.management.dto.EquipmentStatus;
import com.huaheng.control.management.dto.Task;
import com.huaheng.control.management.dto.TaskExecutionOrder;
import com.huaheng.control.management.dto.TaskStatusEnum;
import com.huaheng.control.management.service.ApiService;
import com.huaheng.control.management.utils.constant.CommonConstant;
import com.huaheng.control.management.vo.Result;

import io.swagger.v3.oas.annotations.Operation;

@RestController
@RequestMapping("/api")
public class ApiController {

    @Resource
    private ApiService apiService;

    @ResponseBody
    @PostMapping("/reportTask")
    @Operation(summary = "任务信息上报")
    public Result<?> reportTask(@RequestBody @Validated Task task, HttpServletRequest request) {
        task.setReporter(request.getAttribute("audience").toString());
        if (!apiService.saveTask(task)) {
            return Result.error("任务信息上报异常");
        }
        return Result.OK("任务信息上报成功");
    }

    @ResponseBody
    @PostMapping("/reportEquipmentStatus")
    @Operation(summary = "设备状态上报")
    public Result<?> reportEquipmentStatus(@RequestBody @Validated EquipmentStatus equipmentStatus, HttpServletRequest request) {
        if (!apiService.saveEquipmentStatus(equipmentStatus)) {
            return Result.error("设备状态上报异常");
        }
        return Result.OK("设备状态上报成功");
    }

    @ResponseBody
    @PostMapping("/reportTaskExecutionOrder")
    @Operation(summary = "任务执行顺序上报")
    public Result<?> reportTaskExecutionOrder(@RequestBody @Validated List<TaskExecutionOrder> taskExecutionOrders, HttpServletRequest request) {
        apiService.saveTaskExecutionOrders(taskExecutionOrders);
        return Result.OK();
    }

    @ResponseBody
    @PostMapping("/queryNextTaskPackage")
    @Operation(summary = "获取下一个任务信息")
    public Result<?> queryNextTaskPackage(HttpServletRequest request) {
        return Result.OK("获取下一个任务信息成功", apiService.getNextTaskPackage());
    }

    @ResponseBody
    @PostMapping("/queryTaskDetails")
    @Operation(summary = "任务信息查询")
    public Result<?> queryTaskDetails(HttpServletRequest request) {
        return Result.OK("任务信息查询成功", apiService.queryTaskDetails());
    }

    @ResponseBody
    @PostMapping("/queryPackageTasks")
    @Operation(summary = "任务信息查询(已封装)")
    public Result<?> queryPackageTasks(HttpServletRequest request) {
        return Result.OK("任务信息查询成功", apiService.queryTaskPackages());
    }

    @ResponseBody
    @PostMapping("/queryHistoryTaskPackages")
    @Operation(summary = "历史任务信息查询(已封装)")
    public Result<?> queryHistoryTaskPackages(@RequestParam(required = false, defaultValue = "10") Long count, HttpServletRequest request) {
        return Result.OK("历史任务信息查询成功", apiService.queryHistoryTaskPackages(count));
    }

    @ResponseBody
    @PostMapping("/queryEquipmentStatus")
    @Operation(summary = "设备状态查询")
    public Result<?> queryEquipmentStatus(@RequestParam(required = false) String equipmentId, HttpServletRequest request) {
        return Result.OK("设备状态查询成功", apiService.queryEquipmentStatus(equipmentId));
    }
}