diff --git a/.gitignore b/.gitignore
index 667aaef..92a574b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -31,3 +31,9 @@ build/
### VS Code ###
.vscode/
+
+# 本地密钥(钉钉机器人等),勿提交
+src/main/resources/application-local-dingtalk.yml
+
+# hxrd 订单接口联调 Cookie,勿提交
+src/test/resources/hxr-order-integration.properties
diff --git a/src/main/java/com/rj/AISmartCard20251230Application.java b/src/main/java/com/rj/AISmartCard20251230Application.java
index 5f9c89c..1337f10 100644
--- a/src/main/java/com/rj/AISmartCard20251230Application.java
+++ b/src/main/java/com/rj/AISmartCard20251230Application.java
@@ -1,6 +1,7 @@
package com.rj;
import com.rj.config.AmapProperties;
+import com.rj.config.HxrAdminProperties;
import com.rj.config.LbAssessmentDingTalkProperties;
import com.rj.config.YihangyiVllmAsrProperties;
import org.mybatis.spring.annotation.MapperScan;
@@ -41,7 +42,12 @@ import org.springframework.scheduling.annotation.EnableScheduling;
@MapperScan("com.rj.mapper")
@SpringBootApplication
@EnableScheduling
-@EnableConfigurationProperties({YihangyiVllmAsrProperties.class, AmapProperties.class, LbAssessmentDingTalkProperties.class})
+@EnableConfigurationProperties({
+ YihangyiVllmAsrProperties.class,
+ AmapProperties.class,
+ LbAssessmentDingTalkProperties.class,
+ HxrAdminProperties.class
+})
public class AISmartCard20251230Application {
public static void main(String[] args) {
diff --git a/src/main/java/com/rj/config/AppSchedulingConfiguration.java b/src/main/java/com/rj/config/AppSchedulingConfiguration.java
index fd3a044..b86b6f6 100644
--- a/src/main/java/com/rj/config/AppSchedulingConfiguration.java
+++ b/src/main/java/com/rj/config/AppSchedulingConfiguration.java
@@ -1,10 +1,13 @@
package com.rj.config;
+import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.SchedulingConfigurer;
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
import org.springframework.scheduling.config.ScheduledTaskRegistrar;
+import java.time.Clock;
+
/**
* 显式扩大 {@code @Scheduled} 线程池,避免单个耗时任务(如长时间 HTTP)占满默认单线程后拖死全部定时任务。
*
与 {@code spring.task.scheduling.pool.size} 配置互补;此处代码保证至少 8 个调度线程。
@@ -14,6 +17,11 @@ public class AppSchedulingConfiguration implements SchedulingConfigurer {
private static final int SCHEDULER_POOL_SIZE = 8;
+ @Bean
+ public Clock applicationClock() {
+ return Clock.systemDefaultZone();
+ }
+
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();
diff --git a/src/main/java/com/rj/config/HxrAdminProperties.java b/src/main/java/com/rj/config/HxrAdminProperties.java
new file mode 100644
index 0000000..6cb1e95
--- /dev/null
+++ b/src/main/java/com/rj/config/HxrAdminProperties.java
@@ -0,0 +1,34 @@
+package com.rj.config;
+
+import com.rj.scheduler.LBAdminPullScheduler;
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * hxrd 后台订单列表拉取(供 {@link LBAdminPullScheduler} 使用)。
+ */
+@Data
+@ConfigurationProperties(prefix = "hxr.admin")
+public class HxrAdminProperties {
+
+ /**
+ * 是否启用拉取任务;未启用时不发 HTTP 请求。
+ */
+ private boolean enabled = true;
+
+ /**
+ * 完整请求 URL(含查询串),与浏览器地址栏一致即可。
+ */
+ private String orderSelectUrl =
+ "https://hxrdhoutai.hxrdsm.cn/app/admin/order/select?page=1&limit=90";
+
+ /**
+ * 请求头 Cookie 完整取值,例如 {@code PHPSID=xxxx}。非空时优先于 {@link #phpsid}。
+ */
+ private String cookie = "";
+
+ /**
+ * 仅 PHPSID 会话值(不含 {@code PHPSID=} 前缀);在 {@link #cookie} 为空时使用。
+ */
+ private String phpsid = "";
+}
diff --git a/src/main/java/com/rj/controller/LbOrderRowController.java b/src/main/java/com/rj/controller/LbOrderRowController.java
new file mode 100644
index 0000000..88d6393
--- /dev/null
+++ b/src/main/java/com/rj/controller/LbOrderRowController.java
@@ -0,0 +1,98 @@
+package com.rj.controller;
+
+import com.rj.dto.LbOrderRowSyncFromHxrRequest;
+import com.rj.entity.LbOrderRow;
+import com.rj.service.ILbOrderRowService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Map;
+
+@RestController
+@RequestMapping("/api/lbOrderRow")
+@Tag(name = "LB 订单行", description = "lb_order_row 增删改查与分页")
+public class LbOrderRowController {
+
+ @Autowired
+ private ILbOrderRowService lbOrderRowService;
+
+ @PostMapping("/add")
+ @Operation(summary = "新增")
+ public ResponseEntity