diff --git a/ruoyi-ems/src/main/java/org/dromara/ems/record/controller/IotEnvMonitorDataController.java b/ruoyi-ems/src/main/java/org/dromara/ems/record/controller/IotEnvMonitorDataController.java
new file mode 100644
index 0000000..1ed3108
--- /dev/null
+++ b/ruoyi-ems/src/main/java/org/dromara/ems/record/controller/IotEnvMonitorDataController.java
@@ -0,0 +1,207 @@
+package org.dromara.ems.record.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.core.exception.ServiceException;
+import org.dromara.common.log.annotation.Log;
+import org.dromara.common.log.enums.BusinessType;
+import org.dromara.ems.common.web.EmsBaseController;
+import org.dromara.ems.record.domain.bo.IotEnvMonitorQuery;
+import org.dromara.ems.record.service.IIotEnvMonitorDataService;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 物联网环境监测数据按日分表查询 Controller
+ *
+ *
独立新增,不修改已有 RecordIotenvInstantController。
+ * 提供以下接口能力:
+ * 1. 查询指定日期指定设备最新一条数据(GET /latest)
+ * 2. 查询指定日期设备数据列表,支持多条件过滤(GET /list)
+ * 3. 批量查询指定日期多设备最新数据(POST /latestBatch,支持较大 monitorIds 列表)
+ * 4. 按设备类型查询指定日期数据(GET /byType)
+ *
+ *
+ * 接口权限复用已有权限标识 ems/record:recordIotenvInstant:list,
+ * 待根据项目实际权限体系调整为独立权限标识。
+ *
+ * @author zch
+ * @date 2026-04-09
+ */
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("/ems/record/iotEnvMonitorData")
+public class IotEnvMonitorDataController extends EmsBaseController {
+
+ private final IIotEnvMonitorDataService iotEnvMonitorDataService;
+
+ /**
+ * 无参查询所有设备各自的最新一条监测数据。
+ *
+ * 前端无需传任何参数,后端会自动:
+ * 1. 从设备主数据表收集全部 monitorIds
+ * 2. 回退到最近存在的日分表中取每个设备最新一条
+ * 3. 按 monitor_type 裁剪字段后返回 Map 列表
+ *
+ * @return 所有设备最新值列表;若暂无有效分表则返回设备骨架列表
+ */
+ @SaCheckPermission("ems/record:recordIotenvInstant:list")
+ @Log(title = "物联环境监测-所有设备最新值查询", businessType = BusinessType.OTHER)
+ @GetMapping("/latestAll")
+ public R> getLatestAllMonitorData() {
+ try {
+ List