Files
MiddlePlatform/maibu-netty-server/src/main/java/com/maibu/controller/DeviceTaskController.java

151 lines
6.0 KiB
Java
Raw Normal View History

2026-04-17 17:12:41 +08:00
package com.maibu.controller;
2026-04-17 10:42:16 +08:00
2026-06-11 17:12:55 +08:00
import com.github.pagehelper.PageHelper;
2026-04-30 15:25:58 +08:00
import com.maibu.core.business.DevicePlan;
2026-04-17 17:12:41 +08:00
import com.maibu.core.controller.BaseController;
import com.maibu.core.domain.AjaxResult;
import com.maibu.core.domain.model.LoginUser;
2026-06-03 16:53:02 +08:00
import com.maibu.core.enums.DeviceTaskStaus;
import com.maibu.core.page.TableDataInfo;
import com.maibu.dto.DeviceTaskCommandDTO;
2026-04-17 17:12:41 +08:00
import com.maibu.dto.DeviceTaskQueryDTO;
2026-06-03 16:53:02 +08:00
import com.maibu.memory.GlobalMemory;
import com.maibu.memory.SiteMemory;
2026-04-17 17:12:41 +08:00
import com.maibu.service.DeviceTaskService;
import com.maibu.utils.SecurityUtils;
2026-06-03 16:53:02 +08:00
import org.apache.commons.lang3.StringUtils;
2026-04-17 10:42:16 +08:00
import org.springframework.beans.factory.annotation.Autowired;
2026-06-03 16:53:02 +08:00
import org.springframework.format.annotation.DateTimeFormat;
2026-04-17 10:42:16 +08:00
import org.springframework.web.bind.annotation.*;
2026-06-03 16:53:02 +08:00
import java.time.LocalDate;
2026-04-17 10:42:16 +08:00
@RestController
@RequestMapping("/iot/deviceTask")
public class DeviceTaskController extends BaseController {
@Autowired
private DeviceTaskService deviceTaskService;
@PostMapping("/save")
public AjaxResult insertOrUpdate(@RequestBody DevicePlan devicePlan) {
LoginUser loginUser = SecurityUtils.getLoginUser();
return AjaxResult.success(deviceTaskService.insertOrUpdate(devicePlan, loginUser));
}
@GetMapping("/getAllDeviceTaskByUser")
public AjaxResult getAllDeviceTaskByUser(@RequestParam Long userId) {
return AjaxResult.success(deviceTaskService.getDeviceTaskByUser(userId));
}
2026-06-03 16:53:02 +08:00
@GetMapping("/getSiteDevicePlan")
public AjaxResult getSiteDevicePlan(@RequestParam Long siteId,
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate startTime,
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate endTime,
@RequestParam(required = false) String deviceId,
@RequestParam(required = false) DeviceTaskStaus taskStaus) {
return AjaxResult.success(deviceTaskService.getSiteDevicePlan(siteId, startTime, endTime, deviceId, taskStaus));
}
2026-04-17 10:42:16 +08:00
@PostMapping("/getDevicePlan")
public AjaxResult getDevicePlan(@RequestBody DeviceTaskQueryDTO dto) {
return AjaxResult.success(deviceTaskService.getDeviceTask(dto));
}
@GetMapping("/delete")
public AjaxResult delete(@RequestParam Long id) {
return AjaxResult.success(deviceTaskService.delete(id));
}
@GetMapping("/start")
public AjaxResult start(@RequestParam Long id) {
LoginUser loginUser = SecurityUtils.getLoginUser();
deviceTaskService.start(id, loginUser);
return AjaxResult.success();
}
@GetMapping("/devicePlanStatistics")
public AjaxResult devicePlanStatistics(@RequestParam Long userId) {
return AjaxResult.success(deviceTaskService.getDevicePlanStatistics(userId));
}
@GetMapping("/devicePlanTaskStatistics")
public AjaxResult devicePlanTaskStatistics(@RequestParam Long userId) {
return AjaxResult.success(deviceTaskService.getDevicePlanTaskStatistics(userId));
}
@GetMapping("/concurrentDeviceRoute")
public AjaxResult concurrentDeviceRoute(@RequestParam String deviceId) {
return AjaxResult.success(deviceTaskService.concurrentDevicePlanTask(deviceId));
}
@GetMapping("/workStatistics")
public AjaxResult workStatistics(@RequestParam Long userId) {
return AjaxResult.success(deviceTaskService.workStatistics(userId));
}
@PostMapping("/deviceTaskPool")
2026-06-03 16:53:02 +08:00
public TableDataInfo deviceTaskPool(@RequestBody DeviceTaskQueryDTO dto) {
2026-06-11 17:12:55 +08:00
startPostPage(dto.getPageNum(),dto.getPageSize());
2026-06-03 16:53:02 +08:00
return getDataTable(deviceTaskService.deviceTaskPool(dto));
}
@PostMapping("/getSiteDeviceTaskHistory")
public TableDataInfo getSiteDeviceTaskHistory(@RequestBody DeviceTaskQueryDTO dto) {
2026-06-11 17:12:55 +08:00
startPostPage(dto.getPageNum(),dto.getPageSize());
2026-06-03 16:53:02 +08:00
return getDataTable(deviceTaskService.getSiteDeviceTaskHistory(dto));
}
@PostMapping("/createDeviceTask")
public AjaxResult createDeviceTask(@RequestBody DeviceTaskCommandDTO dto) {
String deviceId = dto.getDeviceId();
Long siteId = dto.getSiteId();
Long orgId = dto.getOrgId();
if (StringUtils.isEmpty(deviceId)) {
return AjaxResult.error("deviceId为空!");
}
if (siteId == null) {
return AjaxResult.error("siteId为空!");
}
if (orgId == null) {
return AjaxResult.error("orgId为空!");
}
SiteMemory siteMemory = GlobalMemory.getSiteMemory(orgId, siteId);
if (siteMemory.hasTask(deviceId)) {
return AjaxResult.error("当前设备存在任务!");
}
return AjaxResult.success(deviceTaskService.createDeviceTask(dto, getLoginUser().getUsername()));
}
@PostMapping("/cancelTask")
public AjaxResult cancelTask(@RequestBody DeviceTaskCommandDTO dto) {
String deviceId = dto.getDeviceId();
if (StringUtils.isEmpty(deviceId) && dto.getTaskId() == null) {
return AjaxResult.error("deviceId或taskId为空!");
}
return AjaxResult.success(deviceTaskService.cancelTask(dto, getUsername()));
}
@PostMapping("/pauseTask")
public AjaxResult pauseTask(@RequestBody DeviceTaskCommandDTO dto) {
String deviceId = dto.getDeviceId();
if (StringUtils.isEmpty(deviceId) && dto.getTaskId() == null) {
return AjaxResult.error("deviceId或taskId为空!");
}
return AjaxResult.success(deviceTaskService.pauseTask(dto, getUsername()));
}
@PostMapping("/recoveryTask")
2026-06-10 16:31:39 +08:00
public AjaxResult recoveryTask(@RequestBody DeviceTaskCommandDTO dto) throws InterruptedException {
2026-06-03 16:53:02 +08:00
String deviceId = dto.getDeviceId();
if (StringUtils.isEmpty(deviceId) && dto.getTaskId() == null) {
return AjaxResult.error("deviceId或taskId为空!");
}
return AjaxResult.success(deviceTaskService.recoveryTask(dto, getUsername()));
2026-04-17 10:42:16 +08:00
}
}