diff --git a/wm-production/pom.xml b/wm-production/pom.xml
index 7c7b09d1..f81b1a8b 100644
--- a/wm-production/pom.xml
+++ b/wm-production/pom.xml
@@ -12,5 +12,7 @@
com.baomidoumybatis-plus-spring-boot3-starter
cn.dev33sa-token-spring-boot3-starter
org.postgresqlpostgresql
+ com.alibabaeasyexcel
+ com.github.xiaoyminknife4j-openapi3-jakarta-spring-boot-starter
\ No newline at end of file
diff --git a/wm-production/src/main/java/com/water/production/controller/QualityLedgerController.java b/wm-production/src/main/java/com/water/production/controller/QualityLedgerController.java
new file mode 100644
index 00000000..af5049f5
--- /dev/null
+++ b/wm-production/src/main/java/com/water/production/controller/QualityLedgerController.java
@@ -0,0 +1,214 @@
+package com.water.production.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.water.common.core.result.R;
+import com.water.production.dto.QualityQueryRequest;
+import com.water.production.dto.QualityStatVO;
+import com.water.production.entity.QualityStandard;
+import com.water.production.entity.QualityTestPlan;
+import com.water.production.entity.QualityTestRecord;
+import com.water.production.service.QualityLedgerService;
+import com.water.production.service.QualityStandardService;
+import com.water.production.service.QualityTestPlanService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.servlet.http.HttpServletResponse;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+
+@Tag(name = "水质检测台账管理")
+@RestController
+@RequestMapping("/api/production/quality")
+@RequiredArgsConstructor
+public class QualityLedgerController {
+
+ private final QualityLedgerService ledgerService;
+ private final QualityStandardService standardService;
+ private final QualityTestPlanService planService;
+
+ // ==================== 记录 CRUD ====================
+
+ @Operation(summary = "查询检测记录(分页)")
+ @GetMapping("/records")
+ public R