package com.qyft.ms.app.controller; import com.qyft.ms.app.device.spray.SprayTaskExecutor; import com.qyft.ms.app.model.dto.TimeSetDTO; import com.qyft.ms.app.model.vo.TimeResponseVO; import com.qyft.ms.app.service.PositionService; import com.qyft.ms.app.service.SysSettingsService; import com.qyft.ms.app.service.SystemService; import com.qyft.ms.system.common.result.Result; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import java.time.Instant; import java.time.ZoneId; @Tag(name = "系统接口") @RestController @RequestMapping("/api/sys") @RequiredArgsConstructor @Slf4j public class SystemController { private final PositionService positionService; private final SysSettingsService sysSettingsService; private final SprayTaskExecutor sprayTaskExecutor; private final SystemService systemService; @Operation(summary = "还原出厂配置") @GetMapping("/reset") public Result resetFactorySettings() { try { positionService.resetToFactorySettings(); sysSettingsService.resetToFactorySettings(); sprayTaskExecutor.init(); return Result.success(); } catch (Exception e) { log.error("还原出厂配置失败", e); return Result.failed(); } } @Operation(summary = "设置系统时间") @PostMapping("/datetime") public Result setDatetime(@Valid @RequestBody TimeSetDTO timeSetDTO) { systemService.setSystemTime(timeSetDTO.getEpochMilli(), timeSetDTO.getZone()); return Result.success(); } @Operation(summary = "获取系统时间") @GetMapping("/datetime") public Result getDatetime() { long epochMilli = systemService.getCurrentEpochMilli(); ZoneId systemZone = ZoneId.systemDefault(); return Result.success(new TimeResponseVO(epochMilli, systemZone)); } }