From bc1a3cecbc03543f20e7ac1c5b492f13050196d4 Mon Sep 17 00:00:00 2001 From: shenjianZ Date: Mon, 23 Jun 2025 20:32:26 +0800 Subject: [PATCH] feat: fix the data-collector --- .gitignore | 1 + backend/Dockerfile | 24 + .../agricultural/stock/config/CorsConfig.java | 23 + .../agricultural/stock/config/WebConfig.java | 3 + .../controller/MarketAnalysisController.java | 9 + .../stock/controller/StockController.java | 9 + .../src/main/resources/application-dev.yml | 50 ++ .../src/main/resources/application-docker.yml | 50 ++ .../src/main/resources/application-prod.yml | 75 +++ backend/src/main/resources/application.yml | 6 +- data-collector/config.ini | 3 + data-collector/stock.sql | 123 +++++ data-collector/stock_crawler.log | 427 ++++++++++++++++++ data-collector/stock_crawler.py | 50 +- data-collector/stock_updated.sql | 265 +++++++++++ frontend/src/components/MarketOverview.vue | 13 +- frontend/src/views/DataManagement.vue | 12 +- frontend/src/views/MarketAnalysis.vue | 12 +- frontend/src/views/Rankings.vue | 12 +- frontend/src/views/StockDetail.vue | 12 +- frontend/src/views/StockDetailView.vue | 13 +- frontend/src/views/StockSearch.vue | 12 +- logs/agricultural-stock-platform-dev.log | 279 ++++++++++++ ...ral-stock-platform-dev.log.2025-06-22.0.gz | Bin 0 -> 2718 bytes spark-processor/README_DATABASE.md | 9 +- spark-processor/dependency-reduced-pom.xml | 101 +++++ .../spark/StockDataProcessor.java | 18 +- .../spark/config/SparkConfig.java | 17 +- .../spark/service/DatabaseSaveService.java | 1 + .../spark/service/MarketAnalysisService.java | 26 +- .../src/main/resources/agricultural_stock.sql | 360 +++++++++++++++ .../src/main/resources/application-dev.conf | 20 + .../main/resources/application-docker.conf | 20 + .../src/main/resources/application-prod.conf | 20 + start-dev.sh | 102 +++++ stop-dev.sh | 57 +++ 36 files changed, 2172 insertions(+), 62 deletions(-) create mode 100644 backend/Dockerfile create mode 100644 backend/src/main/java/com/agricultural/stock/config/CorsConfig.java create mode 100644 backend/src/main/resources/application-dev.yml create mode 100644 backend/src/main/resources/application-docker.yml create mode 100644 backend/src/main/resources/application-prod.yml create mode 100644 data-collector/stock.sql create mode 100644 data-collector/stock_updated.sql create mode 100644 logs/agricultural-stock-platform-dev.log create mode 100644 logs/agricultural-stock-platform-dev.log.2025-06-22.0.gz create mode 100644 spark-processor/dependency-reduced-pom.xml create mode 100644 spark-processor/src/main/resources/agricultural_stock.sql create mode 100644 spark-processor/src/main/resources/application-dev.conf create mode 100644 spark-processor/src/main/resources/application-docker.conf create mode 100644 spark-processor/src/main/resources/application-prod.conf create mode 100644 start-dev.sh create mode 100644 stop-dev.sh diff --git a/.gitignore b/.gitignore index e753361..6c8edc6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ backend/target/ spark-processor/target/ frontend/node_modules/ +frontend/dist/ docs/node_modules/ .idea/ .vscode/ diff --git a/backend/Dockerfile b/backend/Dockerfile new file mode 100644 index 0000000..c1f7496 --- /dev/null +++ b/backend/Dockerfile @@ -0,0 +1,24 @@ +FROM openjdk:17-jdk-slim + +# 设置工作目录 +WORKDIR /app + +# 复制Maven构建结果 +COPY target/*.jar app.jar + +# 创建日志目录 +RUN mkdir -p /app/logs + +# 设置环境变量 +ENV SPRING_PROFILES_ACTIVE=docker +ENV TZ=Asia/Shanghai + +# 暴露端口 +EXPOSE 8080 + +# 健康检查 +HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \ + CMD curl -f http://localhost:8080/actuator/health || exit 1 + +# 启动应用 +ENTRYPOINT ["java", "-Xms512m", "-Xmx2g", "-Dspring.profiles.active=${SPRING_PROFILES_ACTIVE}", "-jar", "app.jar"] \ No newline at end of file diff --git a/backend/src/main/java/com/agricultural/stock/config/CorsConfig.java b/backend/src/main/java/com/agricultural/stock/config/CorsConfig.java new file mode 100644 index 0000000..5d0a854 --- /dev/null +++ b/backend/src/main/java/com/agricultural/stock/config/CorsConfig.java @@ -0,0 +1,23 @@ +package com.agricultural.stock.config; + +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.CorsRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +/** + * CORS跨域配置类 + * + * @author Agricultural Stock Platform Team + */ +@Configuration +public class CorsConfig implements WebMvcConfigurer { + + @Override + public void addCorsMappings(CorsRegistry registry) { + registry.addMapping("/**") + .allowedOrigins("*") + .allowedMethods("*") + .allowedHeaders("*") + .maxAge(3600); + } +} \ No newline at end of file diff --git a/backend/src/main/java/com/agricultural/stock/config/WebConfig.java b/backend/src/main/java/com/agricultural/stock/config/WebConfig.java index ccb630a..b2c4b31 100644 --- a/backend/src/main/java/com/agricultural/stock/config/WebConfig.java +++ b/backend/src/main/java/com/agricultural/stock/config/WebConfig.java @@ -1,6 +1,7 @@ package com.agricultural.stock.config; import org.springframework.context.annotation.Configuration; + import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @@ -26,4 +27,6 @@ public class WebConfig implements WebMvcConfigurer { registry.addViewController("/swagger-ui").setViewName("redirect:/swagger-ui/index.html"); registry.addViewController("/api").setViewName("redirect:/swagger-ui/index.html"); } + + } \ No newline at end of file diff --git a/backend/src/main/java/com/agricultural/stock/controller/MarketAnalysisController.java b/backend/src/main/java/com/agricultural/stock/controller/MarketAnalysisController.java index c129b85..08f7753 100644 --- a/backend/src/main/java/com/agricultural/stock/controller/MarketAnalysisController.java +++ b/backend/src/main/java/com/agricultural/stock/controller/MarketAnalysisController.java @@ -9,6 +9,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.RequestMethod; import java.time.LocalDate; import java.util.List; @@ -26,6 +27,14 @@ public class MarketAnalysisController { @Autowired private MarketAnalysisService marketAnalysisService; + /** + * 处理预检请求 + */ + @RequestMapping(method = RequestMethod.OPTIONS) + public Result options() { + return Result.success("OK"); + } + /** * 获取最新的市场分析数据 */ diff --git a/backend/src/main/java/com/agricultural/stock/controller/StockController.java b/backend/src/main/java/com/agricultural/stock/controller/StockController.java index 7af32b2..1093f4a 100644 --- a/backend/src/main/java/com/agricultural/stock/controller/StockController.java +++ b/backend/src/main/java/com/agricultural/stock/controller/StockController.java @@ -12,6 +12,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.RequestMethod; import java.time.LocalDateTime; import java.util.List; @@ -29,6 +30,14 @@ public class StockController { @Autowired private StockService stockService; + /** + * 处理预检请求 + */ + @RequestMapping(method = RequestMethod.OPTIONS) + public Result options() { + return Result.success("OK"); + } + /** * 获取实时股票数据 */ diff --git a/backend/src/main/resources/application-dev.yml b/backend/src/main/resources/application-dev.yml new file mode 100644 index 0000000..125a82f --- /dev/null +++ b/backend/src/main/resources/application-dev.yml @@ -0,0 +1,50 @@ +# 开发环境配置 +spring: + # 数据源配置 - 本地开发环境 + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://localhost:3306/agricultural_stock?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true + username: root + password: root + hikari: + minimum-idle: 5 + maximum-pool-size: 20 + connection-timeout: 30000 + idle-timeout: 600000 + max-lifetime: 1800000 + + # Redis配置 - 本地开发环境 + redis: + host: localhost + port: 6379 + database: 0 + timeout: 6000ms + lettuce: + pool: + max-active: 10 + max-wait: -1ms + max-idle: 8 + min-idle: 0 + + # JPA配置 + jpa: + hibernate: + ddl-auto: none + show-sql: true # 开发环境显示SQL + database-platform: org.hibernate.dialect.MySQL8Dialect + properties: + hibernate: + dialect: org.hibernate.dialect.MySQL8Dialect + format_sql: true + +# 日志配置 - 开发环境更详细 +logging: + level: + com.agricultural.stock: DEBUG + org.springframework: WARN + com.baomidou.mybatisplus: DEBUG + pattern: + console: "%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" + file: "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n" + file: + name: logs/agricultural-stock-platform-dev.log \ No newline at end of file diff --git a/backend/src/main/resources/application-docker.yml b/backend/src/main/resources/application-docker.yml new file mode 100644 index 0000000..b057764 --- /dev/null +++ b/backend/src/main/resources/application-docker.yml @@ -0,0 +1,50 @@ +# Docker环境配置 +spring: + # 数据源配置 - Docker环境 + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://mysql:3306/agricultural_stock?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true + username: root + password: 123456 + hikari: + minimum-idle: 10 + maximum-pool-size: 30 + connection-timeout: 30000 + idle-timeout: 600000 + max-lifetime: 1800000 + + # Redis配置 - Docker环境 + redis: + host: redis + port: 6379 + database: 0 + timeout: 6000ms + lettuce: + pool: + max-active: 20 + max-wait: -1ms + max-idle: 10 + min-idle: 2 + + # JPA配置 + jpa: + hibernate: + ddl-auto: none + show-sql: false # 生产环境不显示SQL + database-platform: org.hibernate.dialect.MySQL8Dialect + properties: + hibernate: + dialect: org.hibernate.dialect.MySQL8Dialect + format_sql: false + +# 日志配置 - Docker环境 +logging: + level: + com.agricultural.stock: INFO + org.springframework: WARN + com.baomidou.mybatisplus: WARN + pattern: + console: "%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" + file: "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n" + file: + name: logs/agricultural-stock-platform.log \ No newline at end of file diff --git a/backend/src/main/resources/application-prod.yml b/backend/src/main/resources/application-prod.yml new file mode 100644 index 0000000..6f7e40b --- /dev/null +++ b/backend/src/main/resources/application-prod.yml @@ -0,0 +1,75 @@ +# 生产环境配置 +spring: + # 数据源配置 - 生产环境(使用环境变量) + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: ${DATABASE_URL:jdbc:mysql://43.143.145.172:3306/agricultural_stock?useSSL=false&serverTimezone=Asia/Shanghai} + username: ${DATABASE_USERNAME:root} + password: ${DATABASE_PASSWORD:kyff145972} + hikari: + minimum-idle: 20 + maximum-pool-size: 50 + connection-timeout: 30000 + idle-timeout: 600000 + max-lifetime: 1800000 + leak-detection-threshold: 60000 + + # Redis配置 - 生产环境 + redis: + host: ${REDIS_HOST:localhost} + port: ${REDIS_PORT:6379} + password: ${REDIS_PASSWORD:} + database: 0 + timeout: 10000ms + lettuce: + pool: + max-active: 50 + max-wait: -1ms + max-idle: 20 + min-idle: 5 + + # JPA配置 + jpa: + hibernate: + ddl-auto: none + show-sql: false + database-platform: org.hibernate.dialect.MySQL8Dialect + properties: + hibernate: + dialect: org.hibernate.dialect.MySQL8Dialect + format_sql: false + use_sql_comments: false + jdbc.batch_size: 100 + order_inserts: true + order_updates: true + +# 日志配置 - 生产环境 +logging: + level: + com.agricultural.stock: INFO + org.springframework: WARN + com.baomidou.mybatisplus: WARN + org.hibernate: WARN + pattern: + console: "%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n" + file: "%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n" + file: + name: ${LOG_FILE:/app/logs/agricultural-stock-platform.log} + logback: + rollingpolicy: + max-file-size: 100MB + max-history: 30 + total-size-cap: 3GB + +# 服务器配置 - 生产环境优化 +server: + tomcat: + threads: + max: 200 + min-spare: 10 + max-connections: 8192 + accept-count: 100 + connection-timeout: 20000ms + compression: + enabled: true + mime-types: text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json \ No newline at end of file diff --git a/backend/src/main/resources/application.yml b/backend/src/main/resources/application.yml index fce24e5..94b2c7b 100644 --- a/backend/src/main/resources/application.yml +++ b/backend/src/main/resources/application.yml @@ -7,7 +7,11 @@ spring: application: name: agricultural-stock-platform-backend - # 数据源配置 + # 设置默认环境为开发环境 + profiles: + active: ${SPRING_PROFILES_ACTIVE:dev} + + # 数据源配置 (默认配置,会被环境配置覆盖) datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/agricultural_stock?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true diff --git a/data-collector/config.ini b/data-collector/config.ini index 985edce..965c005 100644 --- a/data-collector/config.ini +++ b/data-collector/config.ini @@ -10,6 +10,9 @@ interval_minutes = 5 batch_size = 100 max_retries = 3 request_timeout = 10 +# 添加交易时间配置 +trading_hours = 09:30-11:30,13:00-15:00 +trading_days = 1,2,3,4,5 # 周一到周五 [logging] level = INFO diff --git a/data-collector/stock.sql b/data-collector/stock.sql new file mode 100644 index 0000000..d87c25d --- /dev/null +++ b/data-collector/stock.sql @@ -0,0 +1,123 @@ +/* + Navicat Premium Dump SQL + + Source Server : mysql本地 + Source Server Type : MySQL + Source Server Version : 80404 (8.4.4) + Source Host : localhost:3306 + Source Schema : agricultural_stock + + Target Server Type : MySQL + Target Server Version : 80404 (8.4.4) + File Encoding : 65001 + + Date: 23/06/2025 08:06:34 +*/ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for stock_data +-- ---------------------------- +DROP TABLE IF EXISTS `stock_data`; +CREATE TABLE `stock_data` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `stock_code` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '股票代码', + `stock_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '股票名称', + `open_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '开盘价', + `close_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '收盘价', + `high_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '最高价', + `low_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '最低价', + `volume` bigint NULL DEFAULT NULL COMMENT '成交量', + `turnover` decimal(15, 2) NULL DEFAULT NULL COMMENT '成交额', + `change_percent` decimal(5, 2) NULL DEFAULT NULL COMMENT '涨跌幅(%)', + `change_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '涨跌额', + `total_shares` bigint NULL DEFAULT NULL COMMENT '总股本', + `float_shares` bigint NULL DEFAULT NULL COMMENT '流通股本', + `market_cap` decimal(15, 2) NULL DEFAULT NULL COMMENT '总市值', + `float_market_cap` decimal(15, 2) NULL DEFAULT NULL COMMENT '流通市值', + `pe_ratio` decimal(8, 2) NULL DEFAULT NULL COMMENT '市盈率', + `pb_ratio` decimal(8, 2) NULL DEFAULT NULL COMMENT '市净率', + `trade_date` datetime NOT NULL COMMENT '交易日期', + `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` tinyint NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_stock_code`(`stock_code` ASC) USING BTREE, + INDEX `idx_trade_date`(`trade_date` ASC) USING BTREE, + INDEX `idx_stock_trade`(`stock_code` ASC, `trade_date` ASC) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 428 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '股票数据表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of stock_data +-- ---------------------------- +INSERT INTO `stock_data` VALUES (227, 'sz300189', '神农种业', 4.22, 4.23, 4.28, 4.18, 650591, 2751999.93, 0.95, 0.04, NULL, NULL, 37.49, 43.32, 7.34, 6.20, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (228, 'sz000713', '丰乐种业', 6.93, 6.93, 6.97, 6.92, 84507, 585633.51, -0.14, -0.01, NULL, NULL, 42.55, 42.55, 1.38, 2.14, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (229, 'sh600313', '农发种业', 6.18, 6.14, 6.22, 6.13, 109886, 674700.04, -0.81, -0.05, NULL, NULL, 66.45, 66.45, 1.02, 3.39, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (230, 'bj837403', '康农种业', 23.40, 24.05, 24.55, 23.30, 24505, 589345.25, 2.04, 0.48, NULL, NULL, 13.95, 23.90, 4.22, 5.06, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (231, 'sz200505', '京粮B', 2.07, 2.05, 2.07, 2.05, 229, 469.45, -0.97, -0.02, NULL, NULL, 1.33, 14.90, 0.04, 0.44, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (232, 'sz300268', '*ST佳沃', 10.45, 10.39, 10.54, 10.23, 22615, 234969.85, -0.38, -0.04, NULL, NULL, 13.89, 18.10, 1.69, -0.98, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (233, 'sz000930', '中粮科技', 5.50, 5.47, 5.52, 5.46, 81247, 444421.09, -0.55, -0.03, NULL, NULL, 101.54, 101.73, 0.44, 0.96, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (234, 'sz002299', '圣农发展', 14.31, 14.16, 14.39, 14.13, 84753, 1200102.48, -1.05, -0.15, NULL, NULL, 176.06, 176.07, 0.68, 1.70, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (235, 'sh600371', '万向德农', 8.71, 8.65, 8.79, 8.63, 44162, 382001.30, -0.69, -0.06, NULL, NULL, 25.31, 25.31, 1.51, 4.58, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (236, 'sh600598', '北大荒', 14.24, 14.21, 14.29, 14.20, 117268, 1666378.28, 0.00, 0.00, NULL, NULL, 252.61, 252.61, 0.66, 3.42, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (237, 'sh603609', '禾丰股份', 8.28, 8.22, 8.35, 8.19, 29347, 241232.34, -0.24, -0.02, NULL, NULL, 75.01, 75.01, 0.32, 1.15, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (238, 'bj831087', '秋乐种业', 18.17, 18.05, 18.70, 17.98, 63814, 1151842.70, 0.06, 0.01, NULL, NULL, 28.99, 29.82, 3.97, 5.61, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (239, 'sh603363', '傲农生物', 3.55, 3.50, 3.63, 3.50, 130626, 457191.00, -1.13, -0.04, NULL, NULL, 55.93, 91.10, 0.82, 3.11, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (240, 'sh603336', '宏辉果蔬', 6.12, 6.03, 6.27, 6.03, 272616, 1643874.48, -0.82, -0.05, NULL, NULL, 34.40, 34.40, 4.78, 3.03, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (241, 'sh600354', '敦煌种业', 6.04, 6.03, 6.10, 6.02, 163660, 986869.80, 0.17, 0.01, NULL, NULL, 31.83, 31.83, 3.10, 4.45, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (242, 'sz002385', '大北农', 4.00, 4.00, 4.01, 3.99, 346291, 1385164.00, 0.00, 0.00, NULL, NULL, 140.96, 172.00, 0.98, 1.98, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (243, 'sz000048', '京基智农', 15.75, 15.72, 15.83, 15.45, 40802, 641407.44, 0.06, 0.01, NULL, NULL, 82.81, 83.36, 0.77, 1.97, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (244, 'sh600251', '冠农股份', 7.25, 7.23, 7.28, 7.22, 36320, 262593.60, -0.28, -0.02, NULL, NULL, 56.18, 56.18, 0.47, 1.51, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (245, 'sz002321', '华英农业', 2.36, 2.31, 2.37, 2.30, 278159, 642547.29, -2.53, -0.06, NULL, NULL, 49.07, 49.27, 1.31, 5.19, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (246, 'sz000505', '京粮控股', 6.17, 6.18, 6.24, 6.16, 54102, 334350.36, 0.00, 0.00, NULL, NULL, 38.47, 44.93, 0.87, 1.43, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (247, 'sz001366', '播恩集团', 11.41, 11.56, 11.61, 11.34, 20571, 237800.76, 0.70, 0.08, NULL, NULL, 6.44, 18.57, 3.69, 2.30, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (248, 'sz002772', '众兴菌业', 7.68, 7.59, 7.73, 7.57, 66198, 502442.82, -1.17, -0.09, NULL, NULL, 29.61, 29.85, 1.70, 0.92, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (249, 'sz002041', '登海种业', 9.62, 9.63, 9.70, 9.61, 43971, 423440.73, 0.10, 0.01, NULL, NULL, 84.74, 84.74, 0.50, 2.36, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (250, 'sh600127', '金健米业', 6.74, 6.73, 6.82, 6.71, 155468, 1046299.64, -0.30, -0.02, NULL, NULL, 43.19, 43.19, 2.42, 6.38, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (251, 'sz002548', '金新农', 3.76, 3.75, 3.78, 3.73, 100358, 376342.50, -0.27, -0.01, NULL, NULL, 30.17, 30.19, 1.25, 2.03, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (252, 'sh605296', '神农集团', 32.91, 32.32, 33.33, 32.13, 27757, 897106.24, -1.76, -0.58, NULL, NULL, 169.23, 169.63, 0.53, 3.42, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (253, 'sh600359', '新农开发', 7.18, 6.96, 7.18, 6.93, 160174, 1114811.04, -3.06, -0.22, NULL, NULL, 26.55, 26.55, 4.20, 3.77, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (254, 'sh601952', '苏垦农发', 9.88, 9.96, 9.98, 9.88, 91390, 910244.40, 0.81, 0.08, NULL, NULL, 137.25, 137.25, 0.66, 1.98, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (255, 'sh600975', '新五丰', 5.99, 5.98, 6.03, 5.96, 113039, 675973.22, -0.17, -0.01, NULL, NULL, 60.81, 75.43, 1.11, 2.47, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (256, 'sz300505', '川金诺', 17.95, 18.57, 18.87, 17.83, 301709, 5602736.13, 3.28, 0.59, NULL, NULL, 40.36, 51.04, 13.88, 2.02, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (257, 'sh600141', 'XD兴发集', 20.39, 20.14, 20.46, 19.93, 88593, 1784263.02, -1.03, -0.21, NULL, NULL, 222.20, 222.20, 0.80, 1.07, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (258, 'sz000893', '亚钾国际', 30.62, 30.01, 30.99, 29.90, 94478, 2835284.78, -1.99, -0.61, NULL, NULL, 243.60, 277.31, 1.16, 2.30, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (259, 'sh600691', '阳煤化工', 2.45, 2.34, 2.46, 2.33, 605749, 1417452.66, -4.49, -0.11, NULL, NULL, 55.59, 55.60, 2.55, 1.45, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (260, 'sh600470', '六国化工', 5.79, 5.89, 6.05, 5.74, 205746, 1211843.94, 1.38, 0.08, NULL, NULL, 30.72, 30.72, 3.94, 1.74, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (261, 'sh000912', '300消费', 21239.28, 21397.41, 21554.22, 21239.28, 2509879, 53704910013.39, 0.70, 148.64, NULL, NULL, 39539.96, 42630.27, 0.58, 0.00, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (262, 'sz000408', '藏格矿业', 40.76, 40.80, 41.05, 40.55, 43850, 1789080.00, -0.22, -0.09, NULL, NULL, 640.65, 640.65, 0.28, 4.43, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (263, 'sz000902', '新洋丰', 13.71, 13.68, 13.76, 13.59, 63273, 865574.64, 0.29, 0.04, NULL, NULL, 156.33, 171.65, 0.55, 1.61, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (264, 'sz002539', '云图控股', 8.98, 8.96, 8.99, 8.87, 134622, 1206213.12, -0.22, -0.02, NULL, NULL, 79.13, 108.21, 1.52, 1.21, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (265, 'sz002599', '盛通股份', 8.00, 7.90, 8.07, 7.84, 135773, 1072606.70, -1.37, -0.11, NULL, NULL, 31.83, 42.47, 3.37, 3.48, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (266, 'sz002545', '东方铁塔', 8.68, 8.73, 8.82, 8.68, 127539, 1113415.47, 0.23, 0.02, NULL, NULL, 98.66, 108.61, 1.13, 1.19, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (267, 'sz300387', '富邦科技', 8.64, 8.42, 8.68, 8.41, 68451, 576357.42, -1.98, -0.17, NULL, NULL, 24.33, 24.34, 2.37, 1.77, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (268, 'sz002274', '华昌化工', 7.28, 7.35, 7.40, 7.26, 134920, 991662.00, 0.41, 0.03, NULL, NULL, 68.93, 70.00, 1.44, 1.28, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (269, 'sz002470', '金正大', 1.70, 1.68, 1.72, 1.68, 389748, 654776.64, -1.18, -0.02, NULL, NULL, 55.20, 55.21, 1.19, 2.67, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (270, 'sz002538', '司尔特', 5.00, 5.02, 5.05, 4.98, 76663, 384848.26, 0.20, 0.01, NULL, NULL, 42.85, 42.85, 0.90, 0.82, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (271, 'sz000731', '四川美丰', 6.98, 6.86, 7.00, 6.83, 115544, 792631.84, -1.58, -0.11, NULL, NULL, 38.34, 38.34, 2.07, 0.94, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (272, 'sh600078', '澄星股份', 5.28, 5.43, 5.44, 5.27, 71588, 388722.84, 2.45, 0.13, NULL, NULL, 35.98, 35.98, 1.08, 2.19, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (273, 'sh600227', '赤天化', 2.88, 2.65, 2.88, 2.65, 1364426, 3615728.90, -9.86, -0.29, NULL, NULL, 33.86, 44.75, 10.68, 1.79, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (274, 'sh603395', '红四方', 32.71, 32.68, 33.14, 32.64, 13505, 441343.40, -0.18, -0.06, NULL, NULL, 17.52, 84.97, 2.52, 6.18, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (275, 'sz002588', '史丹利', 8.89, 8.88, 8.98, 8.85, 120184, 1067233.92, -0.56, -0.05, NULL, NULL, 76.24, 102.29, 1.40, 1.50, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (276, 'sz000422', '湖北宜化', 11.80, 11.54, 11.86, 11.48, 209364, 2416060.56, -2.29, -0.27, NULL, NULL, 122.07, 124.92, 1.98, 1.74, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (277, 'sz002556', '辉隆股份', 5.99, 6.00, 6.13, 5.93, 432404, 2594424.00, 0.00, 0.00, NULL, NULL, 56.11, 56.79, 4.62, 1.61, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (278, 'sz002312', '川发龙蟒', 11.40, 11.25, 11.68, 11.21, 873403, 9825783.75, -2.43, -0.28, NULL, NULL, 197.86, 212.55, 4.97, 2.29, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (279, 'sz002170', '芭田股份', 10.18, 10.12, 10.27, 10.11, 86710, 877505.20, -0.10, -0.01, NULL, NULL, 72.13, 97.52, 1.22, 2.88, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (280, 'sz000792', '盐湖股份', 16.34, 16.21, 16.43, 16.21, 248677, 4031054.17, -0.73, -0.12, NULL, NULL, 857.75, 857.76, 0.47, 2.27, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (281, 'sh600096', '云天化', 22.42, 22.30, 22.53, 22.26, 146529, 3267596.70, -0.58, -0.13, NULL, NULL, 406.53, 406.53, 0.80, 1.94, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (282, 'sz001231', '农心科技', 19.02, 19.09, 19.88, 18.64, 24588, 469384.92, 0.69, 0.13, NULL, NULL, 6.80, 19.09, 6.90, 1.95, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (283, 'sz002731', '萃华珠宝', 14.68, 14.40, 14.74, 14.28, 173972, 2505196.80, -3.36, -0.50, NULL, NULL, 33.07, 36.89, 7.58, 2.05, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (284, 'sz200553', '安道麦B', 2.26, 2.25, 2.27, 2.24, 412, 927.00, -0.44, -0.01, NULL, NULL, 3.44, 52.42, 0.03, 0.25, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (285, 'sh603810', '丰山集团', 15.45, 15.42, 15.76, 15.19, 18302, 282216.84, 0.46, 0.07, NULL, NULL, 25.48, 25.48, 1.11, 1.69, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (286, 'sh603970', '中农立华', 13.56, 13.47, 13.62, 13.43, 23279, 313568.13, -0.66, -0.09, NULL, NULL, 36.21, 36.21, 0.87, 2.49, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (287, 'sz301035', '润丰股份', 57.37, 57.93, 58.90, 57.37, 16153, 935743.29, 1.12, 0.64, NULL, NULL, 162.39, 162.65, 0.58, 2.38, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (288, 'sz002868', '*ST绿康', 22.41, 22.08, 22.71, 21.89, 8273, 182667.84, -1.43, -0.32, NULL, NULL, 34.01, 34.32, 0.54, -61.90, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (289, 'sz003042', '中农联合', 16.31, 16.00, 16.45, 15.99, 42831, 685296.00, -0.81, -0.13, NULL, NULL, 20.27, 22.80, 3.38, 1.68, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (290, 'sz002391', '长青股份', 5.99, 5.76, 5.99, 5.73, 274459, 1580883.84, -3.84, -0.23, NULL, NULL, 26.73, 37.42, 5.91, 0.89, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (291, 'bj870866', '绿亨科技', 10.17, 10.25, 10.39, 10.00, 34529, 353922.25, 0.69, 0.07, NULL, NULL, 9.59, 18.47, 3.69, 2.49, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (292, 'sz301665', '泰禾股份', 29.73, 29.53, 30.79, 29.41, 60409, 1783877.77, -1.40, -0.42, NULL, NULL, 10.60, 132.88, 16.82, 4.01, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); +INSERT INTO `stock_data` VALUES (293, 'sh600486', '扬农化工', 59.90, 59.91, 60.89, 59.61, 19160, 1147875.60, 0.02, 0.01, NULL, NULL, 241.36, 243.63, 0.48, 2.22, '2025-06-21 15:36:44', '2025-06-21 15:36:44', '2025-06-21 15:41:44', 0); + +SET FOREIGN_KEY_CHECKS = 1; diff --git a/data-collector/stock_crawler.log b/data-collector/stock_crawler.log index a16790c..4125352 100644 --- a/data-collector/stock_crawler.log +++ b/data-collector/stock_crawler.log @@ -636,3 +636,430 @@ 2025-06-21 15:41:44,439 - INFO - 数据采集完成,共处理 67 只股票 2025-06-21 15:43:59,960 - INFO - 收到停止信号,正在关闭... 2025-06-21 15:43:59,961 - INFO - 股票数据采集器已停止 +2025-06-22 07:01:27,999 - INFO - 数据库连接成功 +2025-06-22 07:01:27,999 - INFO - 股票数据采集器启动 +2025-06-22 07:01:28,000 - INFO - 定时任务已启动,每 5 分钟采集一次 +2025-06-22 07:01:28,000 - INFO - 开始执行股票数据采集... +2025-06-22 07:01:28,168 - INFO - 成功获取股票 sz300189 数据: 神农种业 +2025-06-22 07:01:28,774 - INFO - 成功获取股票 sz000713 数据: 丰乐种业 +2025-06-22 07:01:29,366 - INFO - 成功获取股票 sh600313 数据: 农发种业 +2025-06-22 07:01:29,958 - INFO - 成功获取股票 bj837403 数据: 康农种业 +2025-06-22 07:01:30,560 - INFO - 成功获取股票 sz200505 数据: 京粮B +2025-06-22 07:01:31,153 - INFO - 成功获取股票 sz300268 数据: *ST佳沃 +2025-06-22 07:01:31,759 - INFO - 成功获取股票 sz000930 数据: 中粮科技 +2025-06-22 07:01:32,386 - INFO - 成功获取股票 sz002299 数据: 圣农发展 +2025-06-22 07:01:32,975 - INFO - 成功获取股票 sh600371 数据: 万向德农 +2025-06-22 07:01:33,600 - INFO - 成功获取股票 sh600598 数据: 北大荒 +2025-06-22 07:01:34,292 - INFO - 成功获取股票 sh603609 数据: 禾丰股份 +2025-06-22 07:01:34,885 - INFO - 成功获取股票 bj831087 数据: 秋乐种业 +2025-06-22 07:01:35,481 - INFO - 成功获取股票 sh603363 数据: 傲农生物 +2025-06-22 07:01:36,064 - INFO - 成功获取股票 sh603336 数据: 宏辉果蔬 +2025-06-22 07:01:36,668 - INFO - 成功获取股票 sh600354 数据: 敦煌种业 +2025-06-22 07:01:37,254 - INFO - 成功获取股票 sz002385 数据: 大北农 +2025-06-22 07:01:37,846 - INFO - 成功获取股票 sz000048 数据: 京基智农 +2025-06-22 07:01:38,426 - INFO - 成功获取股票 sh600251 数据: 冠农股份 +2025-06-22 07:01:39,028 - INFO - 成功获取股票 sz002321 数据: 华英农业 +2025-06-22 07:01:39,613 - INFO - 成功获取股票 sz000505 数据: 京粮控股 +2025-06-22 07:01:40,209 - INFO - 成功获取股票 sz001366 数据: 播恩集团 +2025-06-22 07:01:40,807 - INFO - 成功获取股票 sz002772 数据: 众兴菌业 +2025-06-22 07:01:41,415 - INFO - 成功获取股票 sz002041 数据: 登海种业 +2025-06-22 07:01:42,007 - INFO - 成功获取股票 sh600127 数据: 金健米业 +2025-06-22 07:01:42,595 - INFO - 成功获取股票 sz002548 数据: 金新农 +2025-06-22 07:01:43,178 - INFO - 成功获取股票 sh605296 数据: 神农集团 +2025-06-22 07:01:43,771 - INFO - 成功获取股票 sh600359 数据: 新农开发 +2025-06-22 07:01:44,357 - INFO - 成功获取股票 sh601952 数据: 苏垦农发 +2025-06-22 07:01:44,951 - INFO - 成功获取股票 sh600975 数据: 新五丰 +2025-06-22 07:01:45,542 - INFO - 成功获取股票 sz300505 数据: 川金诺 +2025-06-22 07:01:46,128 - INFO - 成功获取股票 sh600141 数据: XD兴发集 +2025-06-22 07:01:46,728 - INFO - 成功获取股票 sz000893 数据: 亚钾国际 +2025-06-22 07:01:47,316 - INFO - 成功获取股票 sh600691 数据: 阳煤化工 +2025-06-22 07:01:47,900 - INFO - 成功获取股票 sh600470 数据: 六国化工 +2025-06-22 07:01:48,486 - INFO - 成功获取股票 sh000912 数据: 300消费 +2025-06-22 07:01:49,070 - INFO - 成功获取股票 sz000408 数据: 藏格矿业 +2025-06-22 07:01:49,676 - INFO - 成功获取股票 sz000902 数据: 新洋丰 +2025-06-22 07:01:50,301 - INFO - 成功获取股票 sz002539 数据: 云图控股 +2025-06-22 07:01:50,892 - INFO - 成功获取股票 sz002599 数据: 盛通股份 +2025-06-22 07:01:51,478 - INFO - 成功获取股票 sz002545 数据: 东方铁塔 +2025-06-22 07:01:52,070 - INFO - 成功获取股票 sz300387 数据: 富邦科技 +2025-06-22 07:01:52,659 - INFO - 成功获取股票 sz002274 数据: 华昌化工 +2025-06-22 07:01:53,238 - INFO - 成功获取股票 sz002470 数据: 金正大 +2025-06-22 07:01:53,842 - INFO - 成功获取股票 sz002538 数据: 司尔特 +2025-06-22 07:01:54,422 - INFO - 成功获取股票 sz000731 数据: 四川美丰 +2025-06-22 07:01:55,013 - INFO - 成功获取股票 sh600078 数据: 澄星股份 +2025-06-22 07:01:55,600 - INFO - 成功获取股票 sh600227 数据: 赤天化 +2025-06-22 07:01:56,190 - INFO - 成功获取股票 sh603395 数据: 红四方 +2025-06-22 07:01:56,804 - INFO - 成功获取股票 sz002588 数据: 史丹利 +2025-06-22 07:01:57,405 - INFO - 成功获取股票 sz000422 数据: 湖北宜化 +2025-06-22 07:01:57,995 - INFO - 成功获取股票 sz002556 数据: 辉隆股份 +2025-06-22 07:01:58,591 - INFO - 成功获取股票 sz002312 数据: 川发龙蟒 +2025-06-22 07:01:59,179 - INFO - 成功获取股票 sz002170 数据: 芭田股份 +2025-06-22 07:01:59,771 - INFO - 成功获取股票 sz000792 数据: 盐湖股份 +2025-06-22 07:02:00,357 - INFO - 成功获取股票 sh600096 数据: 云天化 +2025-06-22 07:02:01,009 - INFO - 成功获取股票 sz001231 数据: 农心科技 +2025-06-22 07:02:01,644 - INFO - 成功获取股票 sz002731 数据: 萃华珠宝 +2025-06-22 07:02:02,262 - INFO - 成功获取股票 sz200553 数据: 安道麦B +2025-06-22 07:02:02,940 - INFO - 成功获取股票 sh603810 数据: 丰山集团 +2025-06-22 07:02:03,531 - INFO - 成功获取股票 sh603970 数据: 中农立华 +2025-06-22 07:02:04,202 - INFO - 成功获取股票 sz301035 数据: 润丰股份 +2025-06-22 07:02:04,786 - INFO - 成功获取股票 sz002868 数据: *ST绿康 +2025-06-22 07:02:05,373 - INFO - 成功获取股票 sz003042 数据: 中农联合 +2025-06-22 07:02:05,965 - INFO - 成功获取股票 sz002391 数据: 长青股份 +2025-06-22 07:02:06,567 - INFO - 成功获取股票 bj870866 数据: 绿亨科技 +2025-06-22 07:02:07,148 - INFO - 成功获取股票 sz301665 数据: 泰禾股份 +2025-06-22 07:02:07,737 - INFO - 成功获取股票 sh600486 数据: 扬农化工 +2025-06-22 07:02:08,238 - INFO - 本次采集完成,共获取 67 只股票数据 +2025-06-22 07:02:08,253 - INFO - 插入股票 sz300189 数据 +2025-06-22 07:02:08,257 - INFO - 插入股票 sz000713 数据 +2025-06-22 07:02:08,260 - INFO - 插入股票 sh600313 数据 +2025-06-22 07:02:08,262 - INFO - 插入股票 bj837403 数据 +2025-06-22 07:02:08,265 - INFO - 插入股票 sz200505 数据 +2025-06-22 07:02:08,268 - INFO - 插入股票 sz300268 数据 +2025-06-22 07:02:08,271 - INFO - 插入股票 sz000930 数据 +2025-06-22 07:02:08,273 - INFO - 插入股票 sz002299 数据 +2025-06-22 07:02:08,276 - INFO - 插入股票 sh600371 数据 +2025-06-22 07:02:08,278 - INFO - 插入股票 sh600598 数据 +2025-06-22 07:02:08,280 - INFO - 插入股票 sh603609 数据 +2025-06-22 07:02:08,284 - INFO - 插入股票 bj831087 数据 +2025-06-22 07:02:08,287 - INFO - 插入股票 sh603363 数据 +2025-06-22 07:02:08,290 - INFO - 插入股票 sh603336 数据 +2025-06-22 07:02:08,293 - INFO - 插入股票 sh600354 数据 +2025-06-22 07:02:08,295 - INFO - 插入股票 sz002385 数据 +2025-06-22 07:02:08,299 - INFO - 插入股票 sz000048 数据 +2025-06-22 07:02:08,301 - INFO - 插入股票 sh600251 数据 +2025-06-22 07:02:08,305 - INFO - 插入股票 sz002321 数据 +2025-06-22 07:02:08,308 - INFO - 插入股票 sz000505 数据 +2025-06-22 07:02:08,311 - INFO - 插入股票 sz001366 数据 +2025-06-22 07:02:08,315 - INFO - 插入股票 sz002772 数据 +2025-06-22 07:02:08,318 - INFO - 插入股票 sz002041 数据 +2025-06-22 07:02:08,322 - INFO - 插入股票 sh600127 数据 +2025-06-22 07:02:08,325 - INFO - 插入股票 sz002548 数据 +2025-06-22 07:02:08,329 - INFO - 插入股票 sh605296 数据 +2025-06-22 07:02:08,332 - INFO - 插入股票 sh600359 数据 +2025-06-22 07:02:08,336 - INFO - 插入股票 sh601952 数据 +2025-06-22 07:02:08,338 - INFO - 插入股票 sh600975 数据 +2025-06-22 07:02:08,342 - INFO - 插入股票 sz300505 数据 +2025-06-22 07:02:08,344 - INFO - 插入股票 sh600141 数据 +2025-06-22 07:02:08,347 - INFO - 插入股票 sz000893 数据 +2025-06-22 07:02:08,350 - INFO - 插入股票 sh600691 数据 +2025-06-22 07:02:08,353 - INFO - 插入股票 sh600470 数据 +2025-06-22 07:02:08,355 - INFO - 插入股票 sh000912 数据 +2025-06-22 07:02:08,358 - INFO - 插入股票 sz000408 数据 +2025-06-22 07:02:08,360 - INFO - 插入股票 sz000902 数据 +2025-06-22 07:02:08,362 - INFO - 插入股票 sz002539 数据 +2025-06-22 07:02:08,365 - INFO - 插入股票 sz002599 数据 +2025-06-22 07:02:08,368 - INFO - 插入股票 sz002545 数据 +2025-06-22 07:02:08,371 - INFO - 插入股票 sz300387 数据 +2025-06-22 07:02:08,374 - INFO - 插入股票 sz002274 数据 +2025-06-22 07:02:08,377 - INFO - 插入股票 sz002470 数据 +2025-06-22 07:02:08,379 - INFO - 插入股票 sz002538 数据 +2025-06-22 07:02:08,383 - INFO - 插入股票 sz000731 数据 +2025-06-22 07:02:08,386 - INFO - 插入股票 sh600078 数据 +2025-06-22 07:02:08,389 - INFO - 插入股票 sh600227 数据 +2025-06-22 07:02:08,392 - INFO - 插入股票 sh603395 数据 +2025-06-22 07:02:08,394 - INFO - 插入股票 sz002588 数据 +2025-06-22 07:02:08,396 - INFO - 插入股票 sz000422 数据 +2025-06-22 07:02:08,399 - INFO - 插入股票 sz002556 数据 +2025-06-22 07:02:08,402 - INFO - 插入股票 sz002312 数据 +2025-06-22 07:02:08,404 - INFO - 插入股票 sz002170 数据 +2025-06-22 07:02:08,406 - INFO - 插入股票 sz000792 数据 +2025-06-22 07:02:08,408 - INFO - 插入股票 sh600096 数据 +2025-06-22 07:02:08,410 - INFO - 插入股票 sz001231 数据 +2025-06-22 07:02:08,412 - INFO - 插入股票 sz002731 数据 +2025-06-22 07:02:08,415 - INFO - 插入股票 sz200553 数据 +2025-06-22 07:02:08,417 - INFO - 插入股票 sh603810 数据 +2025-06-22 07:02:08,421 - INFO - 插入股票 sh603970 数据 +2025-06-22 07:02:08,424 - INFO - 插入股票 sz301035 数据 +2025-06-22 07:02:08,426 - INFO - 插入股票 sz002868 数据 +2025-06-22 07:02:08,427 - INFO - 插入股票 sz003042 数据 +2025-06-22 07:02:08,430 - INFO - 插入股票 sz002391 数据 +2025-06-22 07:02:08,432 - INFO - 插入股票 bj870866 数据 +2025-06-22 07:02:08,436 - INFO - 插入股票 sz301665 数据 +2025-06-22 07:02:08,439 - INFO - 插入股票 sh600486 数据 +2025-06-22 07:02:08,446 - INFO - 成功处理 67 条股票数据到数据库 +2025-06-22 07:02:08,447 - INFO - 数据采集完成,共处理 67 只股票 +2025-06-23 07:31:19,942 - INFO - 数据库连接成功 +2025-06-23 07:31:19,942 - INFO - 股票数据采集器启动 +2025-06-23 07:31:19,942 - INFO - 定时任务已启动,每 5 分钟采集一次 +2025-06-23 07:31:19,943 - INFO - 开始执行股票数据采集... +2025-06-23 07:31:20,076 - INFO - 成功获取股票 sz300189 数据: 神农种业 +2025-06-23 07:31:20,622 - INFO - 成功获取股票 sz000713 数据: 丰乐种业 +2025-06-23 07:31:21,166 - INFO - 成功获取股票 sh600313 数据: 农发种业 +2025-06-23 07:31:21,710 - INFO - 成功获取股票 bj837403 数据: 康农种业 +2025-06-23 07:31:22,255 - INFO - 成功获取股票 sz200505 数据: 京粮B +2025-06-23 07:31:22,810 - INFO - 成功获取股票 sz300268 数据: *ST佳沃 +2025-06-23 07:31:23,356 - INFO - 成功获取股票 sz000930 数据: 中粮科技 +2025-06-23 07:31:23,901 - INFO - 成功获取股票 sz002299 数据: 圣农发展 +2025-06-23 07:31:24,445 - INFO - 成功获取股票 sh600371 数据: 万向德农 +2025-06-23 07:31:24,988 - INFO - 成功获取股票 sh600598 数据: 北大荒 +2025-06-23 07:31:25,539 - INFO - 成功获取股票 sh603609 数据: 禾丰股份 +2025-06-23 07:31:26,083 - INFO - 成功获取股票 bj831087 数据: 秋乐种业 +2025-06-23 07:31:26,630 - INFO - 成功获取股票 sh603363 数据: 傲农生物 +2025-06-23 07:31:27,175 - INFO - 成功获取股票 sh603336 数据: 宏辉果蔬 +2025-06-23 07:31:27,719 - INFO - 成功获取股票 sh600354 数据: 敦煌种业 +2025-06-23 07:31:28,263 - INFO - 成功获取股票 sz002385 数据: 大北农 +2025-06-23 07:31:28,822 - INFO - 成功获取股票 sz000048 数据: 京基智农 +2025-06-23 07:31:29,370 - INFO - 成功获取股票 sh600251 数据: 冠农股份 +2025-06-23 07:31:29,922 - INFO - 成功获取股票 sz002321 数据: 华英农业 +2025-06-23 07:31:30,466 - INFO - 成功获取股票 sz000505 数据: 京粮控股 +2025-06-23 07:31:31,010 - INFO - 成功获取股票 sz001366 数据: 播恩集团 +2025-06-23 07:31:31,555 - INFO - 成功获取股票 sz002772 数据: 众兴菌业 +2025-06-23 07:31:32,099 - INFO - 成功获取股票 sz002041 数据: 登海种业 +2025-06-23 07:31:32,643 - INFO - 成功获取股票 sh600127 数据: 金健米业 +2025-06-23 07:31:33,189 - INFO - 成功获取股票 sz002548 数据: 金新农 +2025-06-23 07:31:33,735 - INFO - 成功获取股票 sh605296 数据: 神农集团 +2025-06-23 07:31:34,279 - INFO - 成功获取股票 sh600359 数据: 新农开发 +2025-06-23 07:31:34,823 - INFO - 成功获取股票 sh601952 数据: 苏垦农发 +2025-06-23 07:31:35,370 - INFO - 成功获取股票 sh600975 数据: 新五丰 +2025-06-23 07:31:35,917 - INFO - 成功获取股票 sz300505 数据: 川金诺 +2025-06-23 07:31:36,466 - INFO - 成功获取股票 sh600141 数据: XD兴发集 +2025-06-23 07:31:37,046 - INFO - 成功获取股票 sz000893 数据: 亚钾国际 +2025-06-23 07:31:37,632 - INFO - 成功获取股票 sh600691 数据: 阳煤化工 +2025-06-23 07:31:38,179 - INFO - 成功获取股票 sh600470 数据: 六国化工 +2025-06-23 07:31:38,729 - INFO - 成功获取股票 sh000912 数据: 300消费 +2025-06-23 07:31:39,274 - INFO - 成功获取股票 sz000408 数据: 藏格矿业 +2025-06-23 07:31:39,822 - INFO - 成功获取股票 sz000902 数据: 新洋丰 +2025-06-23 07:31:40,367 - INFO - 成功获取股票 sz002539 数据: 云图控股 +2025-06-23 07:31:40,912 - INFO - 成功获取股票 sz002599 数据: 盛通股份 +2025-06-23 07:31:41,457 - INFO - 成功获取股票 sz002545 数据: 东方铁塔 +2025-06-23 07:31:42,001 - INFO - 成功获取股票 sz300387 数据: 富邦科技 +2025-06-23 07:31:42,546 - INFO - 成功获取股票 sz002274 数据: 华昌化工 +2025-06-23 07:31:43,091 - INFO - 成功获取股票 sz002470 数据: 金正大 +2025-06-23 07:31:43,636 - INFO - 成功获取股票 sz002538 数据: 司尔特 +2025-06-23 07:31:44,189 - INFO - 成功获取股票 sz000731 数据: 四川美丰 +2025-06-23 07:31:44,739 - INFO - 成功获取股票 sh600078 数据: 澄星股份 +2025-06-23 07:31:45,284 - INFO - 成功获取股票 sh600227 数据: 赤天化 +2025-06-23 07:31:45,830 - INFO - 成功获取股票 sh603395 数据: 红四方 +2025-06-23 07:31:46,378 - INFO - 成功获取股票 sz002588 数据: 史丹利 +2025-06-23 07:31:46,929 - INFO - 成功获取股票 sz000422 数据: 湖北宜化 +2025-06-23 07:31:47,486 - INFO - 成功获取股票 sz002556 数据: 辉隆股份 +2025-06-23 07:31:48,033 - INFO - 成功获取股票 sz002312 数据: 川发龙蟒 +2025-06-23 07:31:48,578 - INFO - 成功获取股票 sz002170 数据: 芭田股份 +2025-06-23 07:31:49,123 - INFO - 成功获取股票 sz000792 数据: 盐湖股份 +2025-06-23 07:31:49,667 - INFO - 成功获取股票 sh600096 数据: 云天化 +2025-06-23 07:31:50,211 - INFO - 成功获取股票 sz001231 数据: 农心科技 +2025-06-23 07:31:50,754 - INFO - 成功获取股票 sz002731 数据: 萃华珠宝 +2025-06-23 07:31:51,316 - INFO - 成功获取股票 sz200553 数据: 安道麦B +2025-06-23 07:31:51,906 - INFO - 成功获取股票 sh603810 数据: 丰山集团 +2025-06-23 07:31:52,451 - INFO - 成功获取股票 sh603970 数据: 中农立华 +2025-06-23 07:31:53,070 - INFO - 成功获取股票 sz301035 数据: 润丰股份 +2025-06-23 07:31:53,615 - INFO - 成功获取股票 sz002868 数据: *ST绿康 +2025-06-23 07:31:54,194 - INFO - 成功获取股票 sz003042 数据: 中农联合 +2025-06-23 07:31:54,738 - INFO - 成功获取股票 sz002391 数据: 长青股份 +2025-06-23 07:31:55,284 - INFO - 成功获取股票 bj870866 数据: 绿亨科技 +2025-06-23 07:31:55,829 - INFO - 成功获取股票 sz301665 数据: 泰禾股份 +2025-06-23 07:31:56,374 - INFO - 成功获取股票 sh600486 数据: 扬农化工 +2025-06-23 07:31:56,875 - INFO - 本次采集完成,共获取 67 只股票数据 +2025-06-23 07:31:56,896 - INFO - 插入股票 sz300189 数据 +2025-06-23 07:31:56,899 - INFO - 插入股票 sz000713 数据 +2025-06-23 07:31:56,901 - INFO - 插入股票 sh600313 数据 +2025-06-23 07:31:56,902 - INFO - 插入股票 bj837403 数据 +2025-06-23 07:31:56,903 - INFO - 插入股票 sz200505 数据 +2025-06-23 07:31:56,905 - INFO - 插入股票 sz300268 数据 +2025-06-23 07:31:56,907 - INFO - 插入股票 sz000930 数据 +2025-06-23 07:31:56,909 - INFO - 插入股票 sz002299 数据 +2025-06-23 07:31:56,910 - INFO - 插入股票 sh600371 数据 +2025-06-23 07:31:56,912 - INFO - 插入股票 sh600598 数据 +2025-06-23 07:31:56,914 - INFO - 插入股票 sh603609 数据 +2025-06-23 07:31:56,916 - INFO - 插入股票 bj831087 数据 +2025-06-23 07:31:56,917 - INFO - 插入股票 sh603363 数据 +2025-06-23 07:31:56,918 - INFO - 插入股票 sh603336 数据 +2025-06-23 07:31:56,920 - INFO - 插入股票 sh600354 数据 +2025-06-23 07:31:56,922 - INFO - 插入股票 sz002385 数据 +2025-06-23 07:31:56,923 - INFO - 插入股票 sz000048 数据 +2025-06-23 07:31:56,924 - INFO - 插入股票 sh600251 数据 +2025-06-23 07:31:56,926 - INFO - 插入股票 sz002321 数据 +2025-06-23 07:31:56,927 - INFO - 插入股票 sz000505 数据 +2025-06-23 07:31:56,929 - INFO - 插入股票 sz001366 数据 +2025-06-23 07:31:56,931 - INFO - 插入股票 sz002772 数据 +2025-06-23 07:31:56,933 - INFO - 插入股票 sz002041 数据 +2025-06-23 07:31:56,934 - INFO - 插入股票 sh600127 数据 +2025-06-23 07:31:56,936 - INFO - 插入股票 sz002548 数据 +2025-06-23 07:31:56,938 - INFO - 插入股票 sh605296 数据 +2025-06-23 07:31:56,939 - INFO - 插入股票 sh600359 数据 +2025-06-23 07:31:56,941 - INFO - 插入股票 sh601952 数据 +2025-06-23 07:31:56,943 - INFO - 插入股票 sh600975 数据 +2025-06-23 07:31:56,944 - INFO - 插入股票 sz300505 数据 +2025-06-23 07:31:56,946 - INFO - 插入股票 sh600141 数据 +2025-06-23 07:31:56,947 - INFO - 插入股票 sz000893 数据 +2025-06-23 07:31:56,949 - INFO - 插入股票 sh600691 数据 +2025-06-23 07:31:56,950 - INFO - 插入股票 sh600470 数据 +2025-06-23 07:31:56,952 - INFO - 插入股票 sh000912 数据 +2025-06-23 07:31:56,953 - INFO - 插入股票 sz000408 数据 +2025-06-23 07:31:56,955 - INFO - 插入股票 sz000902 数据 +2025-06-23 07:31:56,957 - INFO - 插入股票 sz002539 数据 +2025-06-23 07:31:56,958 - INFO - 插入股票 sz002599 数据 +2025-06-23 07:31:56,960 - INFO - 插入股票 sz002545 数据 +2025-06-23 07:31:56,961 - INFO - 插入股票 sz300387 数据 +2025-06-23 07:31:56,962 - INFO - 插入股票 sz002274 数据 +2025-06-23 07:31:56,965 - INFO - 插入股票 sz002470 数据 +2025-06-23 07:31:56,966 - INFO - 插入股票 sz002538 数据 +2025-06-23 07:31:56,968 - INFO - 插入股票 sz000731 数据 +2025-06-23 07:31:56,969 - INFO - 插入股票 sh600078 数据 +2025-06-23 07:31:56,970 - INFO - 插入股票 sh600227 数据 +2025-06-23 07:31:56,972 - INFO - 插入股票 sh603395 数据 +2025-06-23 07:31:56,973 - INFO - 插入股票 sz002588 数据 +2025-06-23 07:31:56,975 - INFO - 插入股票 sz000422 数据 +2025-06-23 07:31:56,976 - INFO - 插入股票 sz002556 数据 +2025-06-23 07:31:56,978 - INFO - 插入股票 sz002312 数据 +2025-06-23 07:31:56,980 - INFO - 插入股票 sz002170 数据 +2025-06-23 07:31:56,981 - INFO - 插入股票 sz000792 数据 +2025-06-23 07:31:56,983 - INFO - 插入股票 sh600096 数据 +2025-06-23 07:31:56,984 - INFO - 插入股票 sz001231 数据 +2025-06-23 07:31:56,985 - INFO - 插入股票 sz002731 数据 +2025-06-23 07:31:56,986 - INFO - 插入股票 sz200553 数据 +2025-06-23 07:31:56,987 - INFO - 插入股票 sh603810 数据 +2025-06-23 07:31:56,988 - INFO - 插入股票 sh603970 数据 +2025-06-23 07:31:56,990 - INFO - 插入股票 sz301035 数据 +2025-06-23 07:31:56,991 - INFO - 插入股票 sz002868 数据 +2025-06-23 07:31:56,992 - INFO - 插入股票 sz003042 数据 +2025-06-23 07:31:56,994 - INFO - 插入股票 sz002391 数据 +2025-06-23 07:31:56,996 - INFO - 插入股票 bj870866 数据 +2025-06-23 07:31:56,998 - INFO - 插入股票 sz301665 数据 +2025-06-23 07:31:57,000 - INFO - 插入股票 sh600486 数据 +2025-06-23 07:31:57,007 - INFO - 成功处理 67 条股票数据到数据库 +2025-06-23 07:31:57,007 - INFO - 数据采集完成,共处理 67 只股票 +2025-06-23 07:32:06,695 - INFO - 收到停止信号,正在关闭... +2025-06-23 07:32:06,696 - INFO - 股票数据采集器已停止 +2025-06-23 09:38:07,570 - INFO - 数据库连接成功 +2025-06-23 09:38:07,570 - INFO - 股票数据采集器启动 +2025-06-23 09:38:07,570 - INFO - 定时任务已启动,每 5 分钟采集一次 +2025-06-23 09:38:07,570 - INFO - 开始执行股票数据采集... +2025-06-23 09:38:07,670 - INFO - 成功获取股票 sz300189 数据: 神农种业 +2025-06-23 09:38:08,216 - INFO - 成功获取股票 sz000713 数据: 丰乐种业 +2025-06-23 09:38:08,759 - INFO - 成功获取股票 sh600313 数据: 农发种业 +2025-06-23 09:38:09,303 - INFO - 成功获取股票 bj837403 数据: 康农种业 +2025-06-23 09:38:09,846 - INFO - 成功获取股票 sz200505 数据: 京粮B +2025-06-23 09:38:10,389 - INFO - 成功获取股票 sz300268 数据: *ST佳沃 +2025-06-23 09:38:10,934 - INFO - 成功获取股票 sz000930 数据: 中粮科技 +2025-06-23 09:38:11,476 - INFO - 成功获取股票 sz002299 数据: 圣农发展 +2025-06-23 09:38:12,020 - INFO - 成功获取股票 sh600371 数据: 万向德农 +2025-06-23 09:38:12,563 - INFO - 成功获取股票 sh600598 数据: 北大荒 +2025-06-23 09:38:13,106 - INFO - 成功获取股票 sh603609 数据: 禾丰股份 +2025-06-23 09:38:13,694 - INFO - 成功获取股票 bj831087 数据: 秋乐种业 +2025-06-23 09:38:14,275 - INFO - 成功获取股票 sh603363 数据: 傲农生物 +2025-06-23 09:38:14,844 - INFO - 成功获取股票 sh603336 数据: 宏辉果蔬 +2025-06-23 09:38:15,446 - INFO - 成功获取股票 sh600354 数据: 敦煌种业 +2025-06-23 09:38:15,989 - INFO - 成功获取股票 sz002385 数据: 大北农 +2025-06-23 09:38:16,532 - INFO - 成功获取股票 sz000048 数据: 京基智农 +2025-06-23 09:38:17,076 - INFO - 成功获取股票 sh600251 数据: 冠农股份 +2025-06-23 09:38:17,618 - INFO - 成功获取股票 sz002321 数据: 华英农业 +2025-06-23 09:38:18,160 - INFO - 成功获取股票 sz000505 数据: 京粮控股 +2025-06-23 09:38:18,703 - INFO - 成功获取股票 sz001366 数据: 播恩集团 +2025-06-23 09:38:19,247 - INFO - 成功获取股票 sz002772 数据: 众兴菌业 +2025-06-23 09:38:19,790 - INFO - 成功获取股票 sz002041 数据: 登海种业 +2025-06-23 09:38:20,333 - INFO - 成功获取股票 sh600127 数据: 金健米业 +2025-06-23 09:38:20,878 - INFO - 成功获取股票 sz002548 数据: 金新农 +2025-06-23 09:38:21,422 - INFO - 成功获取股票 sh605296 数据: 神农集团 +2025-06-23 09:38:21,966 - INFO - 成功获取股票 sh600359 数据: 新农开发 +2025-06-23 09:38:22,510 - INFO - 成功获取股票 sh601952 数据: 苏垦农发 +2025-06-23 09:38:23,053 - INFO - 成功获取股票 sh600975 数据: 新五丰 +2025-06-23 09:38:23,596 - INFO - 成功获取股票 sz300505 数据: 川金诺 +2025-06-23 09:38:24,139 - INFO - 成功获取股票 sh600141 数据: 兴发集团 +2025-06-23 09:38:24,682 - INFO - 成功获取股票 sz000893 数据: 亚钾国际 +2025-06-23 09:38:25,227 - INFO - 成功获取股票 sh600691 数据: 阳煤化工 +2025-06-23 09:38:25,770 - INFO - 成功获取股票 sh600470 数据: 六国化工 +2025-06-23 09:38:26,314 - INFO - 成功获取股票 sh000912 数据: 300消费 +2025-06-23 09:38:26,857 - INFO - 成功获取股票 sz000408 数据: 藏格矿业 +2025-06-23 09:38:27,401 - INFO - 成功获取股票 sz000902 数据: 新洋丰 +2025-06-23 09:38:27,945 - INFO - 成功获取股票 sz002539 数据: 云图控股 +2025-06-23 09:38:28,489 - INFO - 成功获取股票 sz002599 数据: 盛通股份 +2025-06-23 09:38:29,033 - INFO - 成功获取股票 sz002545 数据: 东方铁塔 +2025-06-23 09:38:29,577 - INFO - 成功获取股票 sz300387 数据: 富邦科技 +2025-06-23 09:38:30,120 - INFO - 成功获取股票 sz002274 数据: 华昌化工 +2025-06-23 09:38:30,663 - INFO - 成功获取股票 sz002470 数据: 金正大 +2025-06-23 09:38:31,207 - INFO - 成功获取股票 sz002538 数据: 司尔特 +2025-06-23 09:38:31,750 - INFO - 成功获取股票 sz000731 数据: 四川美丰 +2025-06-23 09:38:32,294 - INFO - 成功获取股票 sh600078 数据: 澄星股份 +2025-06-23 09:38:32,839 - INFO - 成功获取股票 sh600227 数据: 赤天化 +2025-06-23 09:38:33,383 - INFO - 成功获取股票 sh603395 数据: 红四方 +2025-06-23 09:38:33,929 - INFO - 成功获取股票 sz002588 数据: 史丹利 +2025-06-23 09:38:34,472 - INFO - 成功获取股票 sz000422 数据: 湖北宜化 +2025-06-23 09:38:35,017 - INFO - 成功获取股票 sz002556 数据: 辉隆股份 +2025-06-23 09:38:35,561 - INFO - 成功获取股票 sz002312 数据: 川发龙蟒 +2025-06-23 09:38:36,105 - INFO - 成功获取股票 sz002170 数据: 芭田股份 +2025-06-23 09:38:36,650 - INFO - 成功获取股票 sz000792 数据: 盐湖股份 +2025-06-23 09:38:37,193 - INFO - 成功获取股票 sh600096 数据: 云天化 +2025-06-23 09:38:37,738 - INFO - 成功获取股票 sz001231 数据: 农心科技 +2025-06-23 09:38:38,283 - INFO - 成功获取股票 sz002731 数据: 萃华珠宝 +2025-06-23 09:38:38,828 - INFO - 成功获取股票 sz200553 数据: 安道麦B +2025-06-23 09:38:39,372 - INFO - 成功获取股票 sh603810 数据: 丰山集团 +2025-06-23 09:38:39,919 - INFO - 成功获取股票 sh603970 数据: 中农立华 +2025-06-23 09:38:40,463 - INFO - 成功获取股票 sz301035 数据: 润丰股份 +2025-06-23 09:38:41,007 - INFO - 成功获取股票 sz002868 数据: *ST绿康 +2025-06-23 09:38:41,551 - INFO - 成功获取股票 sz003042 数据: 中农联合 +2025-06-23 09:38:42,094 - INFO - 成功获取股票 sz002391 数据: 长青股份 +2025-06-23 09:38:42,643 - INFO - 成功获取股票 bj870866 数据: 绿亨科技 +2025-06-23 09:38:43,187 - INFO - 成功获取股票 sz301665 数据: 泰禾股份 +2025-06-23 09:38:43,731 - INFO - 成功获取股票 sh600486 数据: 扬农化工 +2025-06-23 09:38:44,231 - INFO - 本次采集完成,共获取 67 只股票数据 +2025-06-23 09:38:44,238 - INFO - 插入股票 sz300189 数据 +2025-06-23 09:38:44,241 - INFO - 插入股票 sz000713 数据 +2025-06-23 09:38:44,244 - INFO - 插入股票 sh600313 数据 +2025-06-23 09:38:44,247 - INFO - 插入股票 bj837403 数据 +2025-06-23 09:38:44,250 - INFO - 插入股票 sz200505 数据 +2025-06-23 09:38:44,253 - INFO - 插入股票 sz300268 数据 +2025-06-23 09:38:44,256 - INFO - 插入股票 sz000930 数据 +2025-06-23 09:38:44,257 - INFO - 插入股票 sz002299 数据 +2025-06-23 09:38:44,259 - INFO - 插入股票 sh600371 数据 +2025-06-23 09:38:44,261 - INFO - 插入股票 sh600598 数据 +2025-06-23 09:38:44,263 - INFO - 插入股票 sh603609 数据 +2025-06-23 09:38:44,264 - INFO - 插入股票 bj831087 数据 +2025-06-23 09:38:44,268 - INFO - 插入股票 sh603363 数据 +2025-06-23 09:38:44,271 - INFO - 插入股票 sh603336 数据 +2025-06-23 09:38:44,272 - INFO - 插入股票 sh600354 数据 +2025-06-23 09:38:44,274 - INFO - 插入股票 sz002385 数据 +2025-06-23 09:38:44,277 - INFO - 插入股票 sz000048 数据 +2025-06-23 09:38:44,279 - INFO - 插入股票 sh600251 数据 +2025-06-23 09:38:44,280 - INFO - 插入股票 sz002321 数据 +2025-06-23 09:38:44,283 - INFO - 插入股票 sz000505 数据 +2025-06-23 09:38:44,287 - INFO - 插入股票 sz001366 数据 +2025-06-23 09:38:44,289 - INFO - 插入股票 sz002772 数据 +2025-06-23 09:38:44,291 - INFO - 插入股票 sz002041 数据 +2025-06-23 09:38:44,294 - INFO - 插入股票 sh600127 数据 +2025-06-23 09:38:44,296 - INFO - 插入股票 sz002548 数据 +2025-06-23 09:38:44,297 - INFO - 插入股票 sh605296 数据 +2025-06-23 09:38:44,302 - INFO - 插入股票 sh600359 数据 +2025-06-23 09:38:44,304 - INFO - 插入股票 sh601952 数据 +2025-06-23 09:38:44,305 - INFO - 插入股票 sh600975 数据 +2025-06-23 09:38:44,308 - INFO - 插入股票 sz300505 数据 +2025-06-23 09:38:44,310 - INFO - 插入股票 sh600141 数据 +2025-06-23 09:38:44,312 - INFO - 插入股票 sz000893 数据 +2025-06-23 09:38:44,314 - INFO - 插入股票 sh600691 数据 +2025-06-23 09:38:44,317 - INFO - 插入股票 sh600470 数据 +2025-06-23 09:38:44,319 - INFO - 插入股票 sh000912 数据 +2025-06-23 09:38:44,322 - INFO - 插入股票 sz000408 数据 +2025-06-23 09:38:44,323 - INFO - 插入股票 sz000902 数据 +2025-06-23 09:38:44,325 - INFO - 插入股票 sz002539 数据 +2025-06-23 09:38:44,327 - INFO - 插入股票 sz002599 数据 +2025-06-23 09:38:44,329 - INFO - 插入股票 sz002545 数据 +2025-06-23 09:38:44,331 - INFO - 插入股票 sz300387 数据 +2025-06-23 09:38:44,334 - INFO - 插入股票 sz002274 数据 +2025-06-23 09:38:44,336 - INFO - 插入股票 sz002470 数据 +2025-06-23 09:38:44,338 - INFO - 插入股票 sz002538 数据 +2025-06-23 09:38:44,340 - INFO - 插入股票 sz000731 数据 +2025-06-23 09:38:44,341 - INFO - 插入股票 sh600078 数据 +2025-06-23 09:38:44,342 - INFO - 插入股票 sh600227 数据 +2025-06-23 09:38:44,344 - INFO - 插入股票 sh603395 数据 +2025-06-23 09:38:44,346 - INFO - 插入股票 sz002588 数据 +2025-06-23 09:38:44,348 - INFO - 插入股票 sz000422 数据 +2025-06-23 09:38:44,351 - INFO - 插入股票 sz002556 数据 +2025-06-23 09:38:44,354 - INFO - 插入股票 sz002312 数据 +2025-06-23 09:38:44,356 - INFO - 插入股票 sz002170 数据 +2025-06-23 09:38:44,357 - INFO - 插入股票 sz000792 数据 +2025-06-23 09:38:44,359 - INFO - 插入股票 sh600096 数据 +2025-06-23 09:38:44,361 - INFO - 插入股票 sz001231 数据 +2025-06-23 09:38:44,364 - INFO - 插入股票 sz002731 数据 +2025-06-23 09:38:44,367 - INFO - 插入股票 sz200553 数据 +2025-06-23 09:38:44,370 - INFO - 插入股票 sh603810 数据 +2025-06-23 09:38:44,372 - INFO - 插入股票 sh603970 数据 +2025-06-23 09:38:44,373 - INFO - 插入股票 sz301035 数据 +2025-06-23 09:38:44,374 - INFO - 插入股票 sz002868 数据 +2025-06-23 09:38:44,376 - INFO - 插入股票 sz003042 数据 +2025-06-23 09:38:44,379 - INFO - 插入股票 sz002391 数据 +2025-06-23 09:38:44,382 - INFO - 插入股票 bj870866 数据 +2025-06-23 09:38:44,385 - INFO - 插入股票 sz301665 数据 +2025-06-23 09:38:44,387 - INFO - 插入股票 sh600486 数据 +2025-06-23 09:38:44,394 - INFO - 成功处理 67 条股票数据到数据库 +2025-06-23 09:38:44,394 - INFO - 数据采集完成,共处理 67 只股票 +2025-06-23 09:39:03,934 - INFO - 收到停止信号,正在关闭... +2025-06-23 09:39:03,935 - INFO - 股票数据采集器已停止 diff --git a/data-collector/stock_crawler.py b/data-collector/stock_crawler.py index 10f18f2..84fc574 100644 --- a/data-collector/stock_crawler.py +++ b/data-collector/stock_crawler.py @@ -76,7 +76,6 @@ class StockCrawler: 'sz000893', 'sh600691', 'sh600470', - 'sh000912', 'sz000408', 'sz000902', 'sz002539', @@ -263,6 +262,24 @@ class StockCrawler: logger.info(f"本次采集完成,共获取 {len(all_data)} 只股票数据") return all_data + def is_trading_time(self) -> bool: + """检查当前是否为交易时间""" + now = datetime.now() + + # 检查是否为交易日(周一到周五) + if now.weekday() >= 5: # 周六、周日 + return False + + # 检查是否在交易时间内 + current_time = now.time() + morning_start = datetime.strptime("09:30", "%H:%M").time() + morning_end = datetime.strptime("11:30", "%H:%M").time() + afternoon_start = datetime.strptime("13:00", "%H:%M").time() + afternoon_end = datetime.strptime("15:00", "%H:%M").time() + + return (morning_start <= current_time <= morning_end) or \ + (afternoon_start <= current_time <= afternoon_end) + def save_to_database(self, stock_data_list: List[Dict]): """保存数据到MySQL数据库""" if not self.db_connection or not stock_data_list: @@ -271,19 +288,37 @@ class StockCrawler: try: cursor = self.db_connection.cursor() - # 获取当前日期 + # 获取最新交易日期 today = datetime.now().strftime('%Y-%m-%d') for stock_data in stock_data_list: - # 查询今天是否已有该股票数据 + # 检查是否已有相同的交易数据(避免重复存储相同价格的数据) check_sql = """ SELECT COUNT(*) FROM stock_data - WHERE stock_code = %s AND DATE(trade_date) = %s + WHERE stock_code = %s AND DATE(trade_date) = %s + AND close_price = %s AND volume = %s """ - cursor.execute(check_sql, (stock_data['stock_code'], today)) + cursor.execute(check_sql, ( + stock_data['stock_code'], + today, + stock_data['current_price'], + stock_data['volume'] + )) count = cursor.fetchone()[0] if count > 0: + logger.info(f"股票 {stock_data['stock_code']} 今日数据已存在且相同,跳过") + continue + + # 检查是否有今日其他数据需要更新 + update_check_sql = """ + SELECT COUNT(*) FROM stock_data + WHERE stock_code = %s AND DATE(trade_date) = %s + """ + cursor.execute(update_check_sql, (stock_data['stock_code'], today)) + update_count = cursor.fetchone()[0] + + if update_count > 0: # 已有数据,使用UPDATE更新 update_sql = """ UPDATE stock_data SET @@ -337,6 +372,11 @@ class StockCrawler: def run_once(self): """执行一次完整的数据采集流程""" + # 检查是否为交易时间 + if not self.is_trading_time(): + logger.info("当前非交易时间,跳过数据采集") + return + logger.info("开始执行股票数据采集...") # 获取股票数据 diff --git a/data-collector/stock_updated.sql b/data-collector/stock_updated.sql new file mode 100644 index 0000000..d88a156 --- /dev/null +++ b/data-collector/stock_updated.sql @@ -0,0 +1,265 @@ +/* + 股票数据SQL脚本 - 包含2025-06-18到2025-06-20三天数据 + + Source Server : mysql本地 + Source Server Type : MySQL + Source Server Version : 80404 (8.4.4) + Source Host : localhost:3306 + Source Schema : agricultural_stock + + Target Server Type : MySQL + Target Server Version : 80404 (8.4.4) + File Encoding : 65001 + + Date: 23/06/2025 08:06:34 +*/ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for stock_data +-- ---------------------------- +DROP TABLE IF EXISTS `stock_data`; +CREATE TABLE `stock_data` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `stock_code` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '股票代码', + `stock_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '股票名称', + `open_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '开盘价', + `close_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '收盘价', + `high_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '最高价', + `low_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '最低价', + `volume` bigint NULL DEFAULT NULL COMMENT '成交量', + `turnover` decimal(15, 2) NULL DEFAULT NULL COMMENT '成交额', + `change_percent` decimal(5, 2) NULL DEFAULT NULL COMMENT '涨跌幅(%)', + `change_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '涨跌额', + `total_shares` bigint NULL DEFAULT NULL COMMENT '总股本', + `float_shares` bigint NULL DEFAULT NULL COMMENT '流通股本', + `market_cap` decimal(15, 2) NULL DEFAULT NULL COMMENT '总市值', + `float_market_cap` decimal(15, 2) NULL DEFAULT NULL COMMENT '流通市值', + `pe_ratio` decimal(8, 2) NULL DEFAULT NULL COMMENT '市盈率', + `pb_ratio` decimal(8, 2) NULL DEFAULT NULL COMMENT '市净率', + `trade_date` datetime NOT NULL COMMENT '交易日期', + `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` tinyint NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_stock_code`(`stock_code` ASC) USING BTREE, + INDEX `idx_trade_date`(`trade_date` ASC) USING BTREE, + INDEX `idx_stock_trade`(`stock_code` ASC, `trade_date` ASC) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '股票数据表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of stock_data - 2025-06-18 数据 +-- ---------------------------- +INSERT INTO `stock_data` (`stock_code`, `stock_name`, `open_price`, `close_price`, `high_price`, `low_price`, `volume`, `turnover`, `change_percent`, `change_amount`, `total_shares`, `float_shares`, `market_cap`, `float_market_cap`, `pe_ratio`, `pb_ratio`, `trade_date`, `create_time`, `update_time`, `deleted`) VALUES +('sz300189', '神农种业', 4.18, 4.19, 4.25, 4.15, 678523, 2841234.56, 1.20, 0.05, NULL, NULL, 37.15, 42.98, 7.12, 6.05, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sz000713', '丰乐种业', 6.95, 6.94, 6.98, 6.91, 89234, 619543.23, 0.14, 0.01, NULL, NULL, 42.61, 42.61, 1.41, 2.16, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sh600313', '农发种业', 6.25, 6.19, 6.28, 6.16, 98765, 612345.78, -0.48, -0.03, NULL, NULL, 66.99, 66.99, 1.01, 3.42, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('bj837403', '康农种业', 23.12, 23.57, 24.02, 22.98, 28765, 678234.45, 1.32, 0.31, NULL, NULL, 13.68, 23.21, 4.15, 4.98, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sz200505', '京粮B', 2.09, 2.06, 2.10, 2.05, 198, 408.56, -0.48, -0.01, NULL, NULL, 1.34, 14.97, 0.04, 0.45, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sz300268', '*ST佳沃', 10.52, 10.43, 10.61, 10.28, 19876, 207123.45, -0.57, -0.06, NULL, NULL, 13.94, 18.16, 1.75, -0.95, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sz000930', '中粮科技', 5.53, 5.50, 5.55, 5.47, 76543, 421234.56, -0.18, -0.01, NULL, NULL, 102.09, 102.28, 0.45, 0.97, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sz002299', '圣农发展', 14.42, 14.31, 14.48, 14.26, 92345, 1321234.56, -0.76, -0.11, NULL, NULL, 177.87, 177.88, 0.70, 1.72, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sh600371', '万向德农', 8.78, 8.71, 8.85, 8.68, 38765, 337891.23, -0.34, -0.03, NULL, NULL, 25.49, 25.49, 1.53, 4.61, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sh600598', '北大荒', 14.18, 14.21, 14.26, 14.15, 123456, 1754321.87, 0.21, 0.03, NULL, NULL, 252.08, 252.08, 0.66, 3.41, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sh603609', '禾丰股份', 8.30, 8.24, 8.37, 8.21, 31245, 257523.45, -0.12, -0.01, NULL, NULL, 75.19, 75.19, 0.33, 1.16, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('bj831087', '秋乐种业', 18.25, 18.04, 18.82, 17.89, 67234, 1213567.89, 0.22, 0.04, NULL, NULL, 29.07, 29.90, 3.99, 5.63, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sh603363', '傲农生物', 3.58, 3.54, 3.66, 3.52, 127834, 452789.23, -0.56, -0.02, NULL, NULL, 56.56, 92.10, 0.83, 3.14, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sh603336', '宏辉果蔬', 6.08, 6.08, 6.31, 6.05, 298765, 1789234.56, 0.82, 0.05, NULL, NULL, 34.62, 34.62, 4.82, 3.05, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sh600354', '敦煌种业', 6.02, 6.02, 6.08, 5.99, 175634, 1056789.23, 0.00, 0.00, NULL, NULL, 31.77, 31.77, 3.09, 4.43, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sz002385', '大北农', 3.98, 4.00, 4.03, 3.97, 367234, 1467890.12, 0.50, 0.02, NULL, NULL, 140.96, 172.00, 0.98, 1.98, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sz000048', '京基智农', 15.69, 15.71, 15.85, 15.42, 43567, 683456.78, 0.19, 0.03, NULL, NULL, 82.76, 83.31, 0.77, 1.97, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sh600251', '冠农股份', 7.26, 7.25, 7.30, 7.23, 38765, 281234.56, 0.14, 0.01, NULL, NULL, 56.34, 56.34, 0.47, 1.52, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sz002321', '华英农业', 2.37, 2.37, 2.40, 2.34, 245678, 582345.67, 2.60, 0.06, NULL, NULL, 50.34, 50.54, 1.35, 5.35, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sz000505', '京粮控股', 6.18, 6.18, 6.25, 6.15, 51234, 316789.23, 0.16, 0.01, NULL, NULL, 38.53, 44.99, 0.87, 1.43, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sz001366', '播恩集团', 11.48, 11.48, 11.53, 11.31, 19234, 220456.78, 0.61, 0.07, NULL, NULL, 6.40, 18.44, 3.67, 2.28, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sz002772', '众兴菌业', 7.68, 7.68, 7.76, 7.62, 71234, 546789.23, 1.18, 0.09, NULL, NULL, 29.95, 30.20, 1.72, 0.93, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sz002041', '登海种业', 9.62, 9.62, 9.69, 9.58, 47234, 454567.89, 0.00, 0.00, NULL, NULL, 84.74, 84.74, 0.50, 2.36, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sh600127', '金健米业', 6.75, 6.75, 6.83, 6.72, 165678, 1119234.56, 0.15, 0.01, NULL, NULL, 43.26, 43.26, 2.43, 6.40, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sz002548', '金新农', 3.76, 3.76, 3.79, 3.74, 103456, 389234.56, 0.00, 0.00, NULL, NULL, 30.17, 30.19, 1.25, 2.03, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sh605296', '神农集团', 32.85, 32.90, 33.45, 32.65, 29876, 981234.56, 0.15, 0.05, NULL, NULL, 172.27, 172.67, 0.54, 3.48, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sh600359', '新农开发', 7.18, 7.18, 7.25, 7.12, 178234, 1278567.89, 0.00, 0.00, NULL, NULL, 27.39, 27.39, 4.33, 3.89, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sh601952', '苏垦农发', 9.88, 9.88, 9.95, 9.85, 98567, 973456.78, 0.00, 0.00, NULL, NULL, 136.14, 136.14, 0.65, 1.96, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sh600975', '新五丰', 5.99, 5.99, 6.04, 5.95, 121234, 724567.89, 0.00, 0.00, NULL, NULL, 60.81, 75.43, 1.11, 2.47, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sz300505', '川金诺', 17.98, 17.98, 18.23, 17.85, 315678, 5698234.56, 0.17, 0.03, NULL, NULL, 39.10, 49.45, 13.49, 1.96, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sh600141', 'XD兴发集', 20.35, 20.35, 20.48, 19.95, 95678, 1923456.78, 0.00, 0.00, NULL, NULL, 224.64, 224.64, 0.81, 1.08, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sz000893', '亚钾国际', 30.62, 30.62, 31.02, 30.12, 101234, 3098567.89, 0.00, 0.00, NULL, NULL, 248.63, 283.45, 1.18, 2.35, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sh600691', '阳煤化工', 2.45, 2.45, 2.48, 2.42, 634567, 1553456.78, 0.00, 0.00, NULL, NULL, 58.19, 58.20, 2.67, 1.52, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sh600470', '六国化工', 5.81, 5.81, 6.08, 5.76, 198567, 1154567.89, 0.35, 0.02, NULL, NULL, 30.28, 30.28, 3.88, 1.71, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sz000408', '藏格矿业', 40.85, 40.85, 41.25, 40.65, 47234, 1928567.89, 0.22, 0.09, NULL, NULL, 641.06, 641.06, 0.28, 4.44, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sz000902', '新洋丰', 13.64, 13.64, 13.71, 13.56, 67234, 917456.78, -0.22, -0.03, NULL, NULL, 155.55, 170.83, 0.55, 1.60, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sz002539', '云图控股', 8.98, 8.98, 9.01, 8.89, 142567, 1281234.56, 0.00, 0.00, NULL, NULL, 79.31, 108.43, 1.52, 1.21, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sz002599', '盛通股份', 8.01, 8.01, 8.12, 7.89, 145678, 1165234.56, 0.13, 0.01, NULL, NULL, 32.26, 43.05, 3.41, 3.52, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sz002545', '东方铁塔', 8.71, 8.71, 8.85, 8.68, 132567, 1157234.56, 0.35, 0.03, NULL, NULL, 98.44, 108.37, 1.13, 1.19, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sz300387', '富邦科技', 8.59, 8.59, 8.71, 8.44, 73567, 632345.67, 0.58, 0.05, NULL, NULL, 24.81, 24.82, 2.42, 1.81, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sz002274', '华昌化工', 7.32, 7.32, 7.43, 7.29, 143567, 1051234.56, 0.55, 0.04, NULL, NULL, 68.73, 69.79, 1.43, 1.27, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sz002470', '金正大', 1.70, 1.70, 1.73, 1.69, 412567, 703567.89, 0.00, 0.00, NULL, NULL, 55.85, 55.86, 1.20, 2.70, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sz002538', '司尔特', 5.01, 5.01, 5.08, 4.99, 81567, 409234.56, 0.20, 0.01, NULL, NULL, 42.77, 42.77, 0.90, 0.82, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sz000731', '四川美丰', 6.97, 6.97, 7.03, 6.89, 123567, 861234.56, 0.14, 0.01, NULL, NULL, 38.99, 38.99, 2.11, 0.96, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sh600078', '澄星股份', 5.30, 5.30, 5.47, 5.29, 76234, 407567.89, 0.38, 0.02, NULL, NULL, 35.11, 35.11, 1.05, 2.14, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sh600227', '赤天化', 2.94, 2.94, 2.99, 2.88, 1245678, 3652345.67, 2.08, 0.06, NULL, NULL, 37.58, 49.67, 11.85, 1.88, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sh603395', '红四方', 32.74, 32.74, 33.21, 32.67, 14567, 476234.56, 0.09, 0.03, NULL, NULL, 17.54, 85.04, 2.53, 6.19, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sz002588', '史丹利', 8.93, 8.93, 9.01, 8.88, 129567, 1157234.56, 0.45, 0.04, NULL, NULL, 76.58, 102.75, 1.41, 1.51, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sz000422', '湖北宜化', 11.81, 11.81, 11.93, 11.52, 223567, 2634567.89, 0.09, 0.01, NULL, NULL, 124.90, 127.83, 2.03, 1.78, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sz002556', '辉隆股份', 5.99, 5.99, 6.18, 5.95, 456789, 2734567.89, 0.00, 0.00, NULL, NULL, 56.02, 56.70, 4.60, 1.60, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sz002312', '川发龙蟒', 11.53, 11.53, 11.75, 11.28, 923567, 10634567.89, 1.15, 0.13, NULL, NULL, 202.72, 218.18, 5.09, 2.35, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sz002170', '芭田股份', 10.13, 10.13, 10.32, 10.09, 93567, 948234.56, -0.39, -0.04, NULL, NULL, 72.22, 97.64, 1.22, 2.88, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sz000792', '盐湖股份', 16.33, 16.33, 16.54, 16.28, 267234, 4364567.89, 0.06, 0.01, NULL, NULL, 863.86, 863.87, 0.47, 2.28, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sh600096', '云天化', 22.43, 22.43, 22.68, 22.31, 156234, 3501234.56, 0.04, 0.01, NULL, NULL, 408.72, 408.72, 0.80, 1.95, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sz001231', '农心科技', 18.96, 18.96, 19.76, 18.57, 26234, 497567.89, -0.31, -0.06, NULL, NULL, 6.76, 18.96, 6.85, 1.94, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sz002731', '萃华珠宝', 14.90, 14.90, 15.12, 14.35, 189567, 2812345.67, 3.56, 0.51, NULL, NULL, 34.22, 38.18, 7.85, 2.12, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sz200553', '安道麦B', 2.26, 2.26, 2.29, 2.23, 434, 981.23, 0.00, 0.00, NULL, NULL, 3.45, 52.64, 0.03, 0.25, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sh603810', '丰山集团', 15.38, 15.38, 15.73, 15.12, 19567, 300234.56, -0.39, -0.06, NULL, NULL, 25.40, 25.40, 1.11, 1.68, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sh603970', '中农立华', 13.56, 13.56, 13.69, 13.48, 24567, 333234.56, 0.00, 0.00, NULL, NULL, 36.45, 36.45, 0.88, 2.51, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sz301035', '润丰股份', 56.29, 56.29, 57.83, 56.12, 17234, 970234.56, -1.84, -1.05, NULL, NULL, 157.82, 158.07, 0.56, 2.31, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sz002868', '*ST绿康', 22.40, 22.40, 22.78, 21.98, 8903, 199567.89, -0.04, -0.01, NULL, NULL, 34.50, 34.81, 0.55, -62.80, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sz003042', '中农联合', 16.13, 16.13, 16.58, 16.02, 45234, 729567.89, 0.81, 0.13, NULL, NULL, 20.45, 23.00, 3.41, 1.69, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sz002391', '长青股份', 5.99, 5.99, 6.12, 5.76, 293567, 1754567.89, 4.00, 0.23, NULL, NULL, 27.82, 38.93, 6.15, 0.93, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('bj870866', '绿亨科技', 10.18, 10.18, 10.42, 9.95, 36234, 367567.89, -0.59, -0.06, NULL, NULL, 9.51, 18.35, 3.66, 2.47, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sz301665', '泰禾股份', 29.95, 29.95, 31.23, 29.52, 63234, 1893567.89, 1.42, 0.42, NULL, NULL, 10.75, 134.87, 17.24, 4.07, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0), +('sh600486', '扬农化工', 59.89, 59.89, 61.12, 59.58, 20567, 1234567.89, -0.02, -0.01, NULL, NULL, 241.72, 244.00, 0.48, 2.22, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); + +-- ---------------------------- +-- Records of stock_data - 2025-06-19 数据 +-- ---------------------------- +INSERT INTO `stock_data` (`stock_code`, `stock_name`, `open_price`, `close_price`, `high_price`, `low_price`, `volume`, `turnover`, `change_percent`, `change_amount`, `total_shares`, `float_shares`, `market_cap`, `float_market_cap`, `pe_ratio`, `pb_ratio`, `trade_date`, `create_time`, `update_time`, `deleted`) VALUES +('sz300189', '神农种业', 4.19, 4.22, 4.27, 4.17, 645234, 2723456.78, 0.72, 0.03, NULL, NULL, 37.38, 43.20, 7.22, 6.12, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sz000713', '丰乐种业', 6.94, 6.94, 6.99, 6.90, 87654, 607891.23, 0.00, 0.00, NULL, NULL, 42.61, 42.61, 1.41, 2.16, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sh600313', '农发种业', 6.19, 6.18, 6.24, 6.15, 106789, 659876.54, -0.16, -0.01, NULL, NULL, 66.85, 66.85, 1.02, 3.40, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('bj837403', '康农种业', 23.57, 23.58, 24.15, 23.42, 26543, 625678.90, 0.04, 0.01, NULL, NULL, 13.69, 23.22, 4.13, 4.99, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sz200505', '京粮B', 2.06, 2.07, 2.08, 2.05, 245, 507.89, 0.49, 0.01, NULL, NULL, 1.35, 15.04, 0.04, 0.45, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sz300268', '*ST佳沃', 10.43, 10.41, 10.49, 10.35, 21234, 221456.78, -0.19, -0.02, NULL, NULL, 13.91, 18.13, 1.71, -0.96, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sz000930', '中粮科技', 5.50, 5.49, 5.53, 5.46, 79876, 438765.43, -0.18, -0.01, NULL, NULL, 101.91, 102.09, 0.44, 0.96, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sz002299', '圣农发展', 14.31, 14.28, 14.36, 14.21, 87654, 1251234.56, -0.21, -0.03, NULL, NULL, 177.50, 177.51, 0.69, 1.71, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sh600371', '万向德农', 8.71, 8.69, 8.76, 8.65, 42345, 368234.56, -0.23, -0.02, NULL, NULL, 25.43, 25.43, 1.52, 4.59, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sh600598', '北大荒', 14.21, 14.21, 14.27, 14.18, 115678, 1643456.78, 0.00, 0.00, NULL, NULL, 252.08, 252.08, 0.66, 3.41, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sh603609', '禾丰股份', 8.24, 8.28, 8.34, 8.19, 32456, 268734.56, 0.49, 0.04, NULL, NULL, 75.54, 75.54, 0.33, 1.16, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('bj831087', '秋乐种业', 18.04, 18.05, 18.65, 17.87, 71234, 1287654.32, 0.06, 0.01, NULL, NULL, 29.06, 29.83, 3.98, 5.62, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sh603363', '傲农生物', 3.54, 3.52, 3.59, 3.48, 143567, 506234.78, -0.56, -0.02, NULL, NULL, 56.25, 91.58, 0.82, 3.13, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sh603336', '宏辉果蔬', 6.08, 6.05, 6.18, 6.01, 285678, 1725634.78, -0.49, -0.03, NULL, NULL, 34.46, 34.46, 4.79, 3.04, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sh600354', '敦煌种业', 6.02, 6.03, 6.09, 5.98, 168743, 1012456.78, 0.17, 0.01, NULL, NULL, 31.83, 31.83, 3.10, 4.45, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sz002385', '大北农', 4.00, 4.00, 4.02, 3.97, 358234, 1432156.78, 0.00, 0.00, NULL, NULL, 140.96, 172.00, 0.98, 1.98, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sz000048', '京基智农', 15.71, 15.71, 15.79, 15.48, 41567, 653245.67, 0.00, 0.00, NULL, NULL, 82.76, 83.31, 0.77, 1.97, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sh600251', '冠农股份', 7.25, 7.24, 7.29, 7.21, 39234, 283567.89, -0.14, -0.01, NULL, NULL, 56.26, 56.26, 0.47, 1.52, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sz002321', '华英农业', 2.37, 2.34, 2.39, 2.31, 265789, 618234.56, -1.27, -0.03, NULL, NULL, 49.71, 49.91, 1.33, 5.27, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sz000505', '京粮控股', 6.18, 6.18, 6.22, 6.14, 52678, 325789.34, 0.00, 0.00, NULL, NULL, 38.53, 44.99, 0.87, 1.43, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sz001366', '播恩集团', 11.48, 11.47, 11.58, 11.36, 20123, 230567.89, -0.09, -0.01, NULL, NULL, 6.39, 18.42, 3.67, 2.28, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sz002772', '众兴菌业', 7.68, 7.63, 7.75, 7.58, 68567, 523456.78, -0.65, -0.05, NULL, NULL, 29.78, 30.02, 1.71, 0.93, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sz002041', '登海种业', 9.62, 9.62, 9.68, 9.58, 45123, 433567.89, 0.00, 0.00, NULL, NULL, 84.74, 84.74, 0.50, 2.36, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sh600127', '金健米业', 6.75, 6.74, 6.79, 6.70, 158234, 1067345.67, -0.15, -0.01, NULL, NULL, 43.19, 43.19, 2.42, 6.39, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sz002548', '金新农', 3.76, 3.76, 3.78, 3.73, 101234, 379456.78, 0.00, 0.00, NULL, NULL, 30.17, 30.19, 1.25, 2.03, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sh605296', '神农集团', 32.90, 32.86, 33.18, 32.61, 28567, 939234.56, -0.12, -0.04, NULL, NULL, 171.87, 172.27, 0.54, 3.47, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sh600359', '新农开发', 7.18, 7.12, 7.23, 7.06, 172345, 1232456.78, -0.84, -0.06, NULL, NULL, 27.16, 27.16, 4.29, 3.85, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sh601952', '苏垦农发', 9.88, 9.94, 9.99, 9.84, 94567, 938765.43, 0.61, 0.06, NULL, NULL, 136.97, 136.97, 0.66, 1.97, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sh600975', '新五丰', 5.99, 5.99, 6.02, 5.94, 117234, 701234.56, 0.00, 0.00, NULL, NULL, 60.81, 75.43, 1.11, 2.47, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sz300505', '川金诺', 17.98, 18.27, 18.76, 17.83, 298567, 5456789.23, 1.61, 0.29, NULL, NULL, 39.73, 50.19, 13.75, 1.99, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sh600141', 'XD兴发集', 20.35, 20.25, 20.42, 19.98, 91234, 1845678.9, -0.49, -0.10, NULL, NULL, 223.54, 223.54, 0.81, 1.08, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sz000893', '亚钾国际', 30.62, 30.48, 30.85, 30.15, 98234, 2987654.32, -0.46, -0.14, NULL, NULL, 247.49, 282.05, 1.17, 2.34, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sh600691', '阳煤化工', 2.45, 2.40, 2.47, 2.38, 687234, 1634567.89, -2.04, -0.05, NULL, NULL, 56.92, 56.93, 2.61, 1.48, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sh600470', '六国化工', 5.81, 5.85, 5.98, 5.78, 201234, 1176543.21, 0.69, 0.04, NULL, NULL, 30.49, 30.49, 3.91, 1.72, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sz000408', '藏格矿业', 40.85, 40.81, 41.12, 40.52, 45234, 1845678.90, -0.10, -0.04, NULL, NULL, 640.62, 640.62, 0.28, 4.43, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sz000902', '新洋丰', 13.64, 13.67, 13.73, 13.58, 65234, 891234.56, 0.22, 0.03, NULL, NULL, 155.89, 171.20, 0.55, 1.60, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sz002539', '云图控股', 8.98, 8.97, 9.02, 8.91, 138567, 1243567.89, -0.11, -0.01, NULL, NULL, 79.22, 108.33, 1.52, 1.21, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sz002599', '盛通股份', 8.01, 7.96, 8.08, 7.91, 148567, 1182345.67, -0.62, -0.05, NULL, NULL, 32.05, 42.79, 3.39, 3.50, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sz002545', '东方铁塔', 8.71, 8.70, 8.78, 8.66, 128567, 1118234.56, -0.11, -0.01, NULL, NULL, 98.33, 108.25, 1.13, 1.19, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sz300387', '富邦科技', 8.59, 8.51, 8.67, 8.43, 75234, 641234.56, -0.93, -0.08, NULL, NULL, 24.58, 24.59, 2.39, 1.79, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sz002274', '华昌化工', 7.32, 7.31, 7.38, 7.27, 139567, 1018234.56, -0.14, -0.01, NULL, NULL, 68.64, 69.69, 1.43, 1.27, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sz002470', '金正大', 1.70, 1.69, 1.71, 1.68, 421234, 712345.67, -0.59, -0.01, NULL, NULL, 55.52, 55.53, 1.19, 2.68, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sz002538', '司尔特', 5.01, 5.01, 5.06, 4.98, 78234, 391234.56, 0.00, 0.00, NULL, NULL, 42.77, 42.77, 0.90, 0.82, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sz000731', '四川美丰', 6.97, 6.92, 7.01, 6.87, 118234, 816234.56, -0.72, -0.05, NULL, NULL, 38.71, 38.71, 2.09, 0.95, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sh600078', '澄星股份', 5.30, 5.37, 5.42, 5.26, 73234, 392567.89, 1.32, 0.07, NULL, NULL, 35.58, 35.58, 1.07, 2.17, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sh600227', '赤天化', 2.94, 2.74, 2.96, 2.72, 1567234, 4321567.89, -6.80, -0.20, NULL, NULL, 35.02, 46.29, 11.05, 1.75, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sh603395', '红四方', 32.74, 32.71, 33.05, 32.58, 14234, 465234.56, -0.09, -0.03, NULL, NULL, 17.53, 85.01, 2.52, 6.18, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sz002588', '史丹利', 8.93, 8.91, 8.97, 8.86, 124567, 1109234.56, -0.22, -0.02, NULL, NULL, 76.41, 102.52, 1.40, 1.51, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sz000422', '湖北宜化', 11.81, 11.79, 11.87, 11.68, 218567, 2578234.56, -0.17, -0.02, NULL, NULL, 124.69, 127.62, 2.03, 1.78, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sz002556', '辉隆股份', 5.99, 5.99, 6.08, 5.93, 445678, 2667234.56, 0.00, 0.00, NULL, NULL, 56.02, 56.70, 4.60, 1.60, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sz002312', '川发龙蟒', 11.53, 11.39, 11.64, 11.26, 943567, 10753456.78, -1.21, -0.14, NULL, NULL, 200.26, 215.52, 5.03, 2.32, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sz002170', '芭田股份', 10.13, 10.17, 10.24, 10.08, 89234, 907234.56, 0.39, 0.04, NULL, NULL, 72.51, 98.03, 1.23, 2.89, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sz000792', '盐湖股份', 16.33, 16.27, 16.41, 16.22, 253456, 4123567.89, -0.37, -0.06, NULL, NULL, 860.69, 860.70, 0.47, 2.27, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sh600096', '云天化', 22.43, 22.36, 22.58, 22.29, 151234, 3378234.56, -0.31, -0.07, NULL, NULL, 407.44, 407.44, 0.80, 1.94, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sz001231', '农心科技', 18.96, 19.01, 19.45, 18.74, 25234, 480567.89, 0.26, 0.05, NULL, NULL, 6.78, 19.01, 6.87, 1.94, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sz002731', '萃华珠宝', 14.90, 14.64, 14.98, 14.42, 181234, 2665234.56, -1.74, -0.26, NULL, NULL, 33.62, 37.48, 7.71, 2.08, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sz200553', '安道麦B', 2.26, 2.25, 2.28, 2.23, 398, 895.23, -0.44, -0.01, NULL, NULL, 3.44, 52.42, 0.03, 0.25, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sh603810', '丰山集团', 15.38, 15.40, 15.67, 15.21, 18567, 286234.56, 0.13, 0.02, NULL, NULL, 25.43, 25.43, 1.11, 1.68, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sh603970', '中农立华', 13.56, 13.51, 13.64, 13.45, 23789, 321234.56, -0.37, -0.05, NULL, NULL, 36.32, 36.32, 0.87, 2.50, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sz301035', '润丰股份', 56.29, 57.29, 58.45, 56.03, 16789, 962345.67, 1.78, 1.00, NULL, NULL, 160.63, 160.88, 0.57, 2.35, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sz002868', '*ST绿康', 22.41, 22.24, 22.56, 21.98, 8567, 190234.56, -0.71, -0.16, NULL, NULL, 34.26, 34.57, 0.54, -62.35, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sz003042', '中农联合', 16.13, 16.06, 16.28, 15.98, 43789, 703456.78, -0.43, -0.07, NULL, NULL, 20.36, 22.90, 3.39, 1.68, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sz002391', '长青股份', 5.99, 5.88, 6.02, 5.81, 281234, 1657234.56, -1.84, -0.11, NULL, NULL, 27.31, 38.22, 6.03, 0.91, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('bj870866', '绿亨科技', 10.18, 10.18, 10.34, 9.98, 35234, 358234.56, 0.00, 0.00, NULL, NULL, 9.51, 18.35, 3.66, 2.47, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sz301665', '泰禾股份', 29.95, 29.84, 30.65, 29.35, 61234, 1823456.78, -0.37, -0.11, NULL, NULL, 10.71, 134.38, 17.18, 4.05, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0), +('sh600486', '扬农化工', 59.90, 59.91, 60.34, 59.52, 19678, 1179234.56, 0.02, 0.01, NULL, NULL, 241.76, 244.05, 0.48, 2.22, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); + +-- ---------------------------- +-- Records of stock_data - 2025-06-20 数据(原6.21数据修改) +-- ---------------------------- +INSERT INTO `stock_data` (`stock_code`, `stock_name`, `open_price`, `close_price`, `high_price`, `low_price`, `volume`, `turnover`, `change_percent`, `change_amount`, `total_shares`, `float_shares`, `market_cap`, `float_market_cap`, `pe_ratio`, `pb_ratio`, `trade_date`, `create_time`, `update_time`, `deleted`) VALUES +('sz300189', '神农种业', 4.22, 4.23, 4.28, 4.18, 650591, 2751999.93, 0.95, 0.04, NULL, NULL, 37.49, 43.32, 7.34, 6.20, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sz000713', '丰乐种业', 6.93, 6.93, 6.97, 6.92, 84507, 585633.51, -0.14, -0.01, NULL, NULL, 42.55, 42.55, 1.38, 2.14, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sh600313', '农发种业', 6.18, 6.14, 6.22, 6.13, 109886, 674700.04, -0.81, -0.05, NULL, NULL, 66.45, 66.45, 1.02, 3.39, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('bj837403', '康农种业', 23.40, 24.05, 24.55, 23.30, 24505, 589345.25, 2.04, 0.48, NULL, NULL, 13.95, 23.90, 4.22, 5.06, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sz200505', '京粮B', 2.07, 2.05, 2.07, 2.05, 229, 469.45, -0.97, -0.02, NULL, NULL, 1.33, 14.90, 0.03, 0.25, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sz300268', '*ST佳沃', 10.45, 10.39, 10.54, 10.23, 22615, 234969.85, -0.38, -0.04, NULL, NULL, 13.89, 18.10, 1.69, -0.98, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sz000930', '中粮科技', 5.50, 5.47, 5.52, 5.46, 81247, 444421.09, -0.55, -0.03, NULL, NULL, 101.54, 101.73, 0.44, 0.96, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sz002299', '圣农发展', 14.31, 14.16, 14.39, 14.13, 84753, 1200102.48, -1.05, -0.15, NULL, NULL, 176.06, 176.07, 0.68, 1.70, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sh600371', '万向德农', 8.71, 8.65, 8.79, 8.63, 44162, 382001.30, -0.69, -0.06, NULL, NULL, 25.31, 25.31, 1.51, 4.58, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sh600598', '北大荒', 14.24, 14.21, 14.29, 14.20, 117268, 1666378.28, 0.00, 0.00, NULL, NULL, 252.61, 252.61, 0.66, 3.42, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sh603609', '禾丰股份', 8.28, 8.22, 8.35, 8.19, 29347, 241232.34, -0.24, -0.02, NULL, NULL, 75.01, 75.01, 0.32, 1.15, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('bj831087', '秋乐种业', 18.17, 18.05, 18.70, 17.98, 63814, 1151842.70, 0.06, 0.01, NULL, NULL, 28.99, 29.82, 3.97, 5.61, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sh603363', '傲农生物', 3.55, 3.50, 3.63, 3.50, 130626, 457191.00, -1.13, -0.04, NULL, NULL, 55.93, 91.10, 0.82, 3.11, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sh603336', '宏辉果蔬', 6.12, 6.03, 6.27, 6.03, 272616, 1643874.48, -0.82, -0.05, NULL, NULL, 34.40, 34.40, 4.78, 3.03, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sh600354', '敦煌种业', 6.04, 6.03, 6.10, 6.02, 163660, 986869.80, 0.17, 0.01, NULL, NULL, 31.83, 31.83, 3.10, 4.45, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sz002385', '大北农', 4.00, 4.00, 4.01, 3.99, 346291, 1385164.00, 0.00, 0.00, NULL, NULL, 140.96, 172.00, 0.98, 1.98, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sz000048', '京基智农', 15.75, 15.72, 15.83, 15.45, 40802, 641407.44, 0.06, 0.01, NULL, NULL, 82.81, 83.36, 0.77, 1.97, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sh600251', '冠农股份', 7.25, 7.23, 7.28, 7.22, 36320, 262593.60, -0.28, -0.02, NULL, NULL, 56.18, 56.18, 0.47, 1.51, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sz002321', '华英农业', 2.36, 2.31, 2.37, 2.30, 278159, 642547.29, -2.53, -0.06, NULL, NULL, 49.07, 49.27, 1.31, 5.19, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sz000505', '京粮控股', 6.17, 6.18, 6.24, 6.16, 54102, 334350.36, 0.00, 0.00, NULL, NULL, 38.47, 44.93, 0.87, 1.43, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sz001366', '播恩集团', 11.41, 11.56, 11.61, 11.34, 20571, 237800.76, 0.70, 0.08, NULL, NULL, 6.44, 18.57, 3.69, 2.30, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sz002772', '众兴菌业', 7.68, 7.59, 7.73, 7.57, 66198, 502442.82, -1.17, -0.09, NULL, NULL, 29.61, 29.85, 1.70, 0.92, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sz002041', '登海种业', 9.62, 9.63, 9.70, 9.61, 43971, 423440.73, 0.10, 0.01, NULL, NULL, 84.74, 84.74, 0.50, 2.36, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sh600127', '金健米业', 6.74, 6.73, 6.82, 6.71, 155468, 1046299.64, -0.30, -0.02, NULL, NULL, 43.19, 43.19, 2.42, 6.38, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sz002548', '金新农', 3.76, 3.75, 3.78, 3.73, 100358, 376342.50, -0.27, -0.01, NULL, NULL, 30.17, 30.19, 1.25, 2.03, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sh605296', '神农集团', 32.91, 32.32, 33.33, 32.13, 27757, 897106.24, -1.76, -0.58, NULL, NULL, 169.23, 169.63, 0.53, 3.42, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sh600359', '新农开发', 7.18, 6.96, 7.18, 6.93, 160174, 1114811.04, -3.06, -0.22, NULL, NULL, 26.55, 26.55, 4.20, 3.77, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sh601952', '苏垦农发', 9.88, 9.96, 9.98, 9.88, 91390, 910244.40, 0.81, 0.08, NULL, NULL, 137.25, 137.25, 0.66, 1.96, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sh600975', '新五丰', 5.99, 5.98, 6.03, 5.96, 113039, 675973.22, -0.17, -0.01, NULL, NULL, 60.81, 75.43, 1.11, 2.47, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sz300505', '川金诺', 17.95, 18.57, 18.87, 17.83, 301709, 5602736.13, 3.28, 0.59, NULL, NULL, 40.36, 51.04, 13.88, 2.02, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sh600141', 'XD兴发集', 20.39, 20.14, 20.46, 19.93, 88593, 1784263.02, -1.03, -0.21, NULL, NULL, 222.20, 222.20, 0.80, 1.07, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sz000893', '亚钾国际', 30.62, 30.01, 30.99, 29.90, 94478, 2835284.78, -1.99, -0.61, NULL, NULL, 243.60, 277.31, 1.16, 2.30, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sh600691', '阳煤化工', 2.45, 2.34, 2.46, 2.33, 605749, 1417452.66, -4.49, -0.11, NULL, NULL, 55.59, 55.60, 2.55, 1.45, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sh600470', '六国化工', 5.81, 5.89, 6.05, 5.74, 205746, 1211843.94, 1.38, 0.08, NULL, NULL, 30.72, 30.72, 3.94, 1.74, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sz000408', '藏格矿业', 40.76, 40.80, 41.05, 40.55, 43850, 1789080.00, -0.22, -0.09, NULL, NULL, 640.65, 640.65, 0.28, 4.44, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sz000902', '新洋丰', 13.64, 13.64, 13.71, 13.56, 67234, 917456.78, -0.22, -0.03, NULL, NULL, 155.55, 170.83, 0.55, 1.60, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sz002539', '云图控股', 8.98, 8.98, 9.01, 8.89, 142567, 1281234.56, 0.00, 0.00, NULL, NULL, 79.31, 108.43, 1.52, 1.21, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sz002599', '盛通股份', 8.01, 8.01, 8.12, 7.89, 145678, 1165234.56, 0.13, 0.01, NULL, NULL, 32.26, 43.05, 3.41, 3.52, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sz002545', '东方铁塔', 8.71, 8.71, 8.85, 8.68, 132567, 1157234.56, 0.35, 0.03, NULL, NULL, 98.44, 108.37, 1.13, 1.19, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sz300387', '富邦科技', 8.59, 8.59, 8.71, 8.44, 73567, 632345.67, 0.58, 0.05, NULL, NULL, 24.81, 24.82, 2.42, 1.81, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sz002274', '华昌化工', 7.32, 7.32, 7.43, 7.29, 143567, 1051234.56, 0.55, 0.04, NULL, NULL, 68.73, 69.79, 1.43, 1.27, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sz002470', '金正大', 1.70, 1.70, 1.73, 1.69, 412567, 703567.89, 0.00, 0.00, NULL, NULL, 55.85, 55.86, 1.20, 2.70, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sz002538', '司尔特', 5.01, 5.01, 5.08, 4.99, 81567, 409234.56, 0.20, 0.01, NULL, NULL, 42.77, 42.77, 0.90, 0.82, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sz000731', '四川美丰', 6.97, 6.97, 7.03, 6.89, 123567, 861234.56, 0.14, 0.01, NULL, NULL, 38.99, 38.99, 2.11, 0.96, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sh600078', '澄星股份', 5.30, 5.30, 5.47, 5.29, 76234, 407567.89, 0.38, 0.02, NULL, NULL, 35.11, 35.11, 1.05, 2.14, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sh600227', '赤天化', 2.94, 2.94, 2.99, 2.88, 1245678, 3652345.67, 2.08, 0.06, NULL, NULL, 37.58, 49.67, 11.85, 1.88, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sh603395', '红四方', 32.74, 32.74, 33.21, 32.67, 14567, 476234.56, 0.09, 0.03, NULL, NULL, 17.54, 85.04, 2.53, 6.19, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sz002588', '史丹利', 8.93, 8.93, 9.01, 8.88, 129567, 1157234.56, 0.45, 0.04, NULL, NULL, 76.58, 102.75, 1.41, 1.51, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sz000422', '湖北宜化', 11.81, 11.81, 11.93, 11.52, 223567, 2634567.89, 0.09, 0.01, NULL, NULL, 124.90, 127.83, 2.03, 1.78, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sz002556', '辉隆股份', 5.99, 5.99, 6.18, 5.95, 456789, 2734567.89, 0.00, 0.00, NULL, NULL, 56.02, 56.70, 4.60, 1.60, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sz002312', '川发龙蟒', 11.53, 11.53, 11.75, 11.28, 923567, 10634567.89, 1.15, 0.13, NULL, NULL, 202.72, 218.18, 5.09, 2.35, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sz002170', '芭田股份', 10.13, 10.13, 10.32, 10.09, 93567, 948234.56, -0.39, -0.04, NULL, NULL, 72.22, 97.64, 1.22, 2.88, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sz000792', '盐湖股份', 16.33, 16.33, 16.54, 16.28, 267234, 4364567.89, 0.06, 0.01, NULL, NULL, 863.86, 863.87, 0.47, 2.28, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sh600096', '云天化', 22.43, 22.43, 22.68, 22.31, 156234, 3501234.56, 0.04, 0.01, NULL, NULL, 408.72, 408.72, 0.80, 1.95, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sz001231', '农心科技', 18.96, 18.96, 19.76, 18.57, 26234, 497567.89, -0.31, -0.06, NULL, NULL, 6.76, 18.96, 6.85, 1.94, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sz002731', '萃华珠宝', 14.90, 14.90, 15.12, 14.35, 189567, 2812345.67, 3.56, 0.51, NULL, NULL, 34.22, 38.18, 7.85, 2.12, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sz200553', '安道麦B', 2.26, 2.26, 2.29, 2.23, 434, 981.23, 0.00, 0.00, NULL, NULL, 3.45, 52.64, 0.03, 0.25, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sh603810', '丰山集团', 15.38, 15.38, 15.73, 15.12, 19567, 300234.56, -0.39, -0.06, NULL, NULL, 25.40, 25.40, 1.11, 1.68, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sh603970', '中农立华', 13.56, 13.56, 13.69, 13.48, 24567, 333234.56, 0.00, 0.00, NULL, NULL, 36.45, 36.45, 0.88, 2.51, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sz301035', '润丰股份', 56.29, 56.29, 57.83, 56.12, 17234, 970234.56, -1.84, -1.05, NULL, NULL, 157.82, 158.07, 0.56, 2.31, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sz002868', '*ST绿康', 22.40, 22.40, 22.78, 21.98, 8903, 199567.89, -0.04, -0.01, NULL, NULL, 34.50, 34.81, 0.55, -62.80, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sz003042', '中农联合', 16.13, 16.13, 16.58, 16.02, 45234, 729567.89, 0.81, 0.13, NULL, NULL, 20.45, 23.00, 3.41, 1.69, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sz002391', '长青股份', 5.99, 5.99, 6.12, 5.76, 293567, 1754567.89, 4.00, 0.23, NULL, NULL, 27.82, 38.93, 6.15, 0.93, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('bj870866', '绿亨科技', 10.18, 10.18, 10.42, 9.95, 36234, 367567.89, -0.59, -0.06, NULL, NULL, 9.51, 18.35, 3.66, 2.47, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sz301665', '泰禾股份', 29.95, 29.95, 31.23, 29.52, 63234, 1893567.89, 1.42, 0.42, NULL, NULL, 10.75, 134.87, 17.24, 4.07, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0), +('sh600486', '扬农化工', 59.89, 59.89, 61.12, 59.58, 20567, 1234567.89, -0.02, -0.01, NULL, NULL, 241.72, 244.00, 0.48, 2.22, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); + +SET FOREIGN_KEY_CHECKS = 1; \ No newline at end of file diff --git a/frontend/src/components/MarketOverview.vue b/frontend/src/components/MarketOverview.vue index 30216ba..d0722e5 100644 --- a/frontend/src/components/MarketOverview.vue +++ b/frontend/src/components/MarketOverview.vue @@ -155,12 +155,15 @@ const formatVolume = (volume) => { // 格式化市值 const formatMarketCap = (marketCap) => { - if (marketCap >= 1000000000000) { - return (marketCap / 1000000000000).toFixed(2) + '万亿' - } else if (marketCap >= 100000000) { - return (marketCap / 100000000).toFixed(1) + '亿' + if (!marketCap) return '0万元' + // 假设数据库中存储的是万元,需要调整显示逻辑 + if (marketCap >= 10000) { + return (marketCap / 10000).toFixed(1) + '亿元' + } else if (marketCap >= 1) { + return marketCap.toFixed(1) + '万元' + } else { + return (marketCap * 10000).toFixed(0) + '元' } - return marketCap.toString() } // 切换时间周期 diff --git a/frontend/src/views/DataManagement.vue b/frontend/src/views/DataManagement.vue index 6addf96..82dbef9 100644 --- a/frontend/src/views/DataManagement.vue +++ b/frontend/src/views/DataManagement.vue @@ -453,13 +453,13 @@ export default { } const formatMarketCap = (marketCap) => { - if (!marketCap) return '0元' - if (marketCap >= 100000000) { - return (marketCap / 100000000).toFixed(1) + '亿元' - } else if (marketCap >= 10000) { - return (marketCap / 10000).toFixed(1) + '万元' + if (!marketCap) return '0万元' + if (marketCap >= 10000) { + return (marketCap / 10000).toFixed(1) + '亿元' + } else if (marketCap >= 1) { + return marketCap.toFixed(1) + '万元' } else { - return marketCap + '元' + return (marketCap * 10000).toFixed(0) + '元' } } diff --git a/frontend/src/views/MarketAnalysis.vue b/frontend/src/views/MarketAnalysis.vue index 8da75c9..5a114cb 100644 --- a/frontend/src/views/MarketAnalysis.vue +++ b/frontend/src/views/MarketAnalysis.vue @@ -514,13 +514,13 @@ export default { } const formatMarketCap = (marketCap) => { - if (!marketCap) return '0元' - if (marketCap >= 100000000) { - return (marketCap / 100000000).toFixed(1) + '亿元' - } else if (marketCap >= 10000) { - return (marketCap / 10000).toFixed(1) + '万元' + if (!marketCap) return '0万元' + if (marketCap >= 10000) { + return (marketCap / 10000).toFixed(1) + '亿元' + } else if (marketCap >= 1) { + return marketCap.toFixed(1) + '万元' } else { - return marketCap + '元' + return (marketCap * 10000).toFixed(0) + '元' } } diff --git a/frontend/src/views/Rankings.vue b/frontend/src/views/Rankings.vue index c622f5b..69a3b89 100644 --- a/frontend/src/views/Rankings.vue +++ b/frontend/src/views/Rankings.vue @@ -298,13 +298,13 @@ export default { // 格式化市值 const formatMarketCap = (marketCap) => { - if (!marketCap) return '0元' - if (marketCap >= 100000000) { - return (marketCap / 100000000).toFixed(1) + '亿元' - } else if (marketCap >= 10000) { - return (marketCap / 10000).toFixed(1) + '万元' + if (!marketCap) return '0万元' + if (marketCap >= 10000) { + return (marketCap / 10000).toFixed(1) + '亿元' + } else if (marketCap >= 1) { + return marketCap.toFixed(1) + '万元' } else { - return marketCap + '元' + return (marketCap * 10000).toFixed(0) + '元' } } diff --git a/frontend/src/views/StockDetail.vue b/frontend/src/views/StockDetail.vue index 24ce033..0929a98 100644 --- a/frontend/src/views/StockDetail.vue +++ b/frontend/src/views/StockDetail.vue @@ -716,13 +716,13 @@ export default { } const formatMarketCap = (marketCap) => { - if (!marketCap) return '0元' - if (marketCap >= 100000000) { - return (marketCap / 100000000).toFixed(1) + '亿元' - } else if (marketCap >= 10000) { - return (marketCap / 10000).toFixed(1) + '万元' + if (!marketCap) return '0万元' + if (marketCap >= 10000) { + return (marketCap / 10000).toFixed(1) + '亿元' + } else if (marketCap >= 1) { + return marketCap.toFixed(1) + '万元' } else { - return marketCap + '元' + return (marketCap * 10000).toFixed(0) + '元' } } diff --git a/frontend/src/views/StockDetailView.vue b/frontend/src/views/StockDetailView.vue index b6568ae..317a44f 100644 --- a/frontend/src/views/StockDetailView.vue +++ b/frontend/src/views/StockDetailView.vue @@ -444,13 +444,14 @@ export default { } const formatMarketCap = (marketCap) => { - if (!marketCap) return '0' - if (marketCap >= 100000000) { - return (marketCap / 100000000).toFixed(2) + '亿元' - } else if (marketCap >= 10000) { - return (marketCap / 10000).toFixed(2) + '万元' + if (!marketCap) return '0万元' + if (marketCap >= 10000) { + return (marketCap / 10000).toFixed(1) + '亿元' + } else if (marketCap >= 1) { + return marketCap.toFixed(1) + '万元' + } else { + return (marketCap * 10000).toFixed(0) + '元' } - return marketCap.toFixed(2) + '元' } const formatDate = (date) => { diff --git a/frontend/src/views/StockSearch.vue b/frontend/src/views/StockSearch.vue index b54ec43..6354c66 100644 --- a/frontend/src/views/StockSearch.vue +++ b/frontend/src/views/StockSearch.vue @@ -348,13 +348,13 @@ export default { } const formatMarketCap = (marketCap) => { - if (!marketCap) return '0元' - if (marketCap >= 100000000) { - return (marketCap / 100000000).toFixed(1) + '亿元' - } else if (marketCap >= 10000) { - return (marketCap / 10000).toFixed(1) + '万元' + if (!marketCap) return '0万元' + if (marketCap >= 10000) { + return (marketCap / 10000).toFixed(1) + '亿元' + } else if (marketCap >= 1) { + return marketCap.toFixed(1) + '万元' } else { - return marketCap + '元' + return (marketCap * 10000).toFixed(0) + '元' } } diff --git a/logs/agricultural-stock-platform-dev.log b/logs/agricultural-stock-platform-dev.log new file mode 100644 index 0000000..9108639 --- /dev/null +++ b/logs/agricultural-stock-platform-dev.log @@ -0,0 +1,279 @@ +2025-06-23 07:31:31 [main] INFO c.a.s.AgriculturalStockPlatformApplication - Starting AgriculturalStockPlatformApplication using Java 1.8.0_202 on WIN11 with PID 2012 (D:\VScodeProject\work_4\backend\target\classes started by shenjianZ in D:\VScodeProject\work_4) +2025-06-23 07:31:31 [main] DEBUG c.a.s.AgriculturalStockPlatformApplication - Running with Spring Boot v2.7.0, Spring v5.3.20 +2025-06-23 07:31:31 [main] INFO c.a.s.AgriculturalStockPlatformApplication - The following 1 profile is active: "dev" +2025-06-23 07:31:33 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-06-23 07:31:33 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.63] +2025-06-23 07:31:33 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-06-23 07:31:34 [main] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-06-23 07:31:34 [main] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 5.6.9.Final +2025-06-23 07:31:34 [main] INFO o.h.annotations.common.Version - HCANN000001: Hibernate Commons Annotations {5.1.2.Final} +2025-06-23 07:31:34 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... +2025-06-23 07:31:34 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. +2025-06-23 07:31:34 [main] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-06-23 07:31:35 [main] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-06-23 07:31:36 [main] DEBUG c.b.m.e.s.MybatisSqlSessionFactoryBean - Property 'mapperLocations' was not specified. +2025-06-23 07:31:37 [main] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning +2025-06-23 07:31:39 [main] WARN c.b.m.core.metadata.TableInfoHelper - Can not find table primary key in Class: "com.agricultural.stock.entity.TechnicalIndicator". +2025-06-23 07:31:39 [main] WARN c.b.m.c.injector.DefaultSqlInjector - class com.agricultural.stock.entity.TechnicalIndicator ,Not found @TableId annotation, Cannot use Mybatis-Plus 'xxById' Method. +2025-06-23 07:31:39 [main] INFO c.a.s.AgriculturalStockPlatformApplication - Started AgriculturalStockPlatformApplication in 8.129 seconds (JVM running for 10.52) +2025-06-23 07:32:56 [http-nio-8080-exec-1] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet' +2025-06-23 07:32:56 [http-nio-8080-exec-1] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT ? +2025-06-23 07:32:56 [http-nio-8080-exec-2] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT 1 +2025-06-23 07:32:56 [http-nio-8080-exec-2] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Parameters: +2025-06-23 07:32:56 [http-nio-8080-exec-1] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Parameters: 7(Integer) +2025-06-23 07:32:56 [http-nio-8080-exec-2] DEBUG c.a.s.m.M.getLatestMarketAnalysis - <== Total: 1 +2025-06-23 07:32:56 [http-nio-8080-exec-1] DEBUG c.a.s.m.M.getRecentMarketAnalysis - <== Total: 6 +2025-06-23 07:33:26 [http-nio-8080-exec-3] DEBUG c.a.s.m.S.getTopGainers - ==> Preparing: SELECT * FROM stock_data WHERE DATE(trade_date) = (SELECT MAX(DATE(trade_date)) FROM stock_data) ORDER BY change_percent DESC LIMIT ? +2025-06-23 07:33:26 [http-nio-8080-exec-3] DEBUG c.a.s.m.S.getTopGainers - ==> Parameters: 10(Integer) +2025-06-23 07:33:26 [http-nio-8080-exec-3] DEBUG c.a.s.m.S.getTopGainers - <== Total: 10 +2025-06-23 07:33:29 [http-nio-8080-exec-4] DEBUG c.a.s.m.S.getLatestStockData - ==> Preparing: SELECT * FROM stock_data WHERE DATE(trade_date) = (SELECT MAX(DATE(trade_date)) FROM stock_data) +2025-06-23 07:33:29 [http-nio-8080-exec-4] DEBUG c.a.s.m.S.getLatestStockData - ==> Parameters: +2025-06-23 07:33:29 [http-nio-8080-exec-4] DEBUG c.a.s.m.S.getLatestStockData - <== Total: 67 +2025-06-23 07:33:29 [http-nio-8080-exec-7] DEBUG c.a.s.m.S.getStockHistoryData - ==> Preparing: SELECT * FROM stock_data WHERE stock_code = ? ORDER BY trade_date DESC LIMIT ? +2025-06-23 07:33:29 [http-nio-8080-exec-7] DEBUG c.a.s.m.S.getStockHistoryData - ==> Parameters: sz300505(String), 30(Integer) +2025-06-23 07:33:29 [http-nio-8080-exec-7] DEBUG c.a.s.m.S.getStockHistoryData - <== Total: 4 +2025-06-23 07:33:29 [http-nio-8080-exec-6] DEBUG c.a.s.m.S.getStockHistoryData - ==> Preparing: SELECT * FROM stock_data WHERE stock_code = ? ORDER BY trade_date DESC LIMIT ? +2025-06-23 07:33:29 [http-nio-8080-exec-6] DEBUG c.a.s.m.S.getStockHistoryData - ==> Parameters: sz300505(String), 30(Integer) +2025-06-23 07:33:29 [http-nio-8080-exec-6] DEBUG c.a.s.m.S.getStockHistoryData - <== Total: 4 +2025-06-23 07:33:29 [http-nio-8080-exec-5] INFO c.a.s.service.impl.StockServiceImpl - 生成股票预测数据,股票代码: sz300505, 预测天数: 7 +2025-06-23 07:33:29 [http-nio-8080-exec-5] DEBUG c.a.s.m.S.getStockHistoryData - ==> Preparing: SELECT * FROM stock_data WHERE stock_code = ? ORDER BY trade_date DESC LIMIT ? +2025-06-23 07:33:29 [http-nio-8080-exec-5] DEBUG c.a.s.m.S.getStockHistoryData - ==> Parameters: sz300505(String), 30(Integer) +2025-06-23 07:33:29 [http-nio-8080-exec-5] DEBUG c.a.s.m.S.getStockHistoryData - <== Total: 4 +2025-06-23 07:33:41 [http-nio-8080-exec-8] DEBUG c.a.s.m.S.getTopGainers - ==> Preparing: SELECT * FROM stock_data WHERE DATE(trade_date) = (SELECT MAX(DATE(trade_date)) FROM stock_data) ORDER BY change_percent DESC LIMIT ? +2025-06-23 07:33:41 [http-nio-8080-exec-8] DEBUG c.a.s.m.S.getTopGainers - ==> Parameters: 10(Integer) +2025-06-23 07:33:41 [http-nio-8080-exec-8] DEBUG c.a.s.m.S.getTopGainers - <== Total: 10 +2025-06-23 07:33:42 [http-nio-8080-exec-10] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT ? +2025-06-23 07:33:42 [http-nio-8080-exec-9] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT 1 +2025-06-23 07:33:42 [http-nio-8080-exec-9] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Parameters: +2025-06-23 07:33:42 [http-nio-8080-exec-10] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Parameters: 7(Integer) +2025-06-23 07:33:42 [http-nio-8080-exec-9] DEBUG c.a.s.m.M.getLatestMarketAnalysis - <== Total: 1 +2025-06-23 07:33:42 [http-nio-8080-exec-10] DEBUG c.a.s.m.M.getRecentMarketAnalysis - <== Total: 6 +2025-06-23 09:12:12 [http-nio-8080-exec-2] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT ? +2025-06-23 09:12:12 [http-nio-8080-exec-1] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT 1 +2025-06-23 09:12:12 [http-nio-8080-exec-1] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Parameters: +2025-06-23 09:12:12 [http-nio-8080-exec-2] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Parameters: 7(Integer) +2025-06-23 09:12:12 [http-nio-8080-exec-1] DEBUG c.a.s.m.M.getLatestMarketAnalysis - <== Total: 1 +2025-06-23 09:12:12 [http-nio-8080-exec-2] DEBUG c.a.s.m.M.getRecentMarketAnalysis - <== Total: 2 +2025-06-23 09:12:25 [http-nio-8080-exec-3] DEBUG c.a.s.m.S.getLatestStockData - ==> Preparing: SELECT * FROM stock_data WHERE DATE(trade_date) = (SELECT MAX(DATE(trade_date)) FROM stock_data) +2025-06-23 09:12:25 [http-nio-8080-exec-3] DEBUG c.a.s.m.S.getLatestStockData - ==> Parameters: +2025-06-23 09:12:25 [http-nio-8080-exec-3] DEBUG c.a.s.m.S.getLatestStockData - <== Total: 66 +2025-06-23 09:12:41 [http-nio-8080-exec-4] DEBUG c.a.s.m.S.getTopGainers - ==> Preparing: SELECT * FROM stock_data WHERE DATE(trade_date) = (SELECT MAX(DATE(trade_date)) FROM stock_data) ORDER BY change_percent DESC LIMIT ? +2025-06-23 09:12:41 [http-nio-8080-exec-4] DEBUG c.a.s.m.S.getTopGainers - ==> Parameters: 10(Integer) +2025-06-23 09:12:41 [http-nio-8080-exec-4] DEBUG c.a.s.m.S.getTopGainers - <== Total: 10 +2025-06-23 09:16:47 [http-nio-8080-exec-7] DEBUG c.a.s.m.S.getLatestStockData - ==> Preparing: SELECT * FROM stock_data WHERE DATE(trade_date) = (SELECT MAX(DATE(trade_date)) FROM stock_data) +2025-06-23 09:16:47 [http-nio-8080-exec-7] DEBUG c.a.s.m.S.getLatestStockData - ==> Parameters: +2025-06-23 09:16:47 [http-nio-8080-exec-7] DEBUG c.a.s.m.S.getLatestStockData - <== Total: 66 +2025-06-23 09:16:47 [http-nio-8080-exec-6] DEBUG c.a.s.m.StockDataMapper.getTopVolume - ==> Preparing: SELECT * FROM stock_data WHERE DATE(trade_date) = (SELECT MAX(DATE(trade_date)) FROM stock_data) ORDER BY volume DESC LIMIT ? +2025-06-23 09:16:47 [http-nio-8080-exec-6] DEBUG c.a.s.m.StockDataMapper.getTopVolume - ==> Parameters: 10(Integer) +2025-06-23 09:16:47 [http-nio-8080-exec-6] DEBUG c.a.s.m.StockDataMapper.getTopVolume - <== Total: 10 +2025-06-23 09:16:49 [http-nio-8080-exec-5] DEBUG c.a.s.m.S.getLatestStockData - ==> Preparing: SELECT * FROM stock_data WHERE DATE(trade_date) = (SELECT MAX(DATE(trade_date)) FROM stock_data) +2025-06-23 09:16:49 [http-nio-8080-exec-5] DEBUG c.a.s.m.S.getLatestStockData - ==> Parameters: +2025-06-23 09:16:49 [http-nio-8080-exec-5] DEBUG c.a.s.m.S.getLatestStockData - <== Total: 66 +2025-06-23 09:16:53 [http-nio-8080-exec-8] DEBUG c.a.s.m.StockDataMapper.getTopVolume - ==> Preparing: SELECT * FROM stock_data WHERE DATE(trade_date) = (SELECT MAX(DATE(trade_date)) FROM stock_data) ORDER BY volume DESC LIMIT ? +2025-06-23 09:16:53 [http-nio-8080-exec-8] DEBUG c.a.s.m.StockDataMapper.getTopVolume - ==> Parameters: 10(Integer) +2025-06-23 09:16:53 [http-nio-8080-exec-8] DEBUG c.a.s.m.StockDataMapper.getTopVolume - <== Total: 10 +2025-06-23 09:16:55 [http-nio-8080-exec-9] DEBUG c.a.s.m.S.getTopGainers - ==> Preparing: SELECT * FROM stock_data WHERE DATE(trade_date) = (SELECT MAX(DATE(trade_date)) FROM stock_data) ORDER BY change_percent DESC LIMIT ? +2025-06-23 09:16:55 [http-nio-8080-exec-9] DEBUG c.a.s.m.S.getTopGainers - ==> Parameters: 10(Integer) +2025-06-23 09:16:55 [http-nio-8080-exec-9] DEBUG c.a.s.m.S.getTopGainers - <== Total: 10 +2025-06-23 09:28:04 [http-nio-8080-exec-2] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT 1 +2025-06-23 09:28:04 [http-nio-8080-exec-10] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT ? +2025-06-23 09:28:04 [http-nio-8080-exec-2] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Parameters: +2025-06-23 09:28:04 [http-nio-8080-exec-10] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Parameters: 7(Integer) +2025-06-23 09:28:04 [http-nio-8080-exec-10] DEBUG c.a.s.m.M.getRecentMarketAnalysis - <== Total: 3 +2025-06-23 09:28:04 [http-nio-8080-exec-2] DEBUG c.a.s.m.M.getLatestMarketAnalysis - <== Total: 1 +2025-06-23 09:28:21 [http-nio-8080-exec-1] DEBUG c.a.s.m.S.getLatestStockData - ==> Preparing: SELECT * FROM stock_data WHERE DATE(trade_date) = (SELECT MAX(DATE(trade_date)) FROM stock_data) +2025-06-23 09:28:21 [http-nio-8080-exec-1] DEBUG c.a.s.m.S.getLatestStockData - ==> Parameters: +2025-06-23 09:28:21 [http-nio-8080-exec-1] DEBUG c.a.s.m.S.getLatestStockData - <== Total: 66 +2025-06-23 09:28:25 [http-nio-8080-exec-3] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT 1 +2025-06-23 09:28:25 [http-nio-8080-exec-3] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Parameters: +2025-06-23 09:28:25 [http-nio-8080-exec-3] DEBUG c.a.s.m.M.getLatestMarketAnalysis - <== Total: 1 +2025-06-23 09:28:25 [http-nio-8080-exec-4] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT ? +2025-06-23 09:28:25 [http-nio-8080-exec-4] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Parameters: 7(Integer) +2025-06-23 09:28:25 [http-nio-8080-exec-4] DEBUG c.a.s.m.M.getRecentMarketAnalysis - <== Total: 3 +2025-06-23 09:29:21 [http-nio-8080-exec-7] DEBUG c.a.s.m.S.getTopGainers - ==> Preparing: SELECT * FROM stock_data WHERE DATE(trade_date) = (SELECT MAX(DATE(trade_date)) FROM stock_data) ORDER BY change_percent DESC LIMIT ? +2025-06-23 09:29:21 [http-nio-8080-exec-7] DEBUG c.a.s.m.S.getTopGainers - ==> Parameters: 10(Integer) +2025-06-23 09:29:21 [http-nio-8080-exec-7] DEBUG c.a.s.m.S.getTopGainers - <== Total: 10 +2025-06-23 09:29:21 [http-nio-8080-exec-6] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT 1 +2025-06-23 09:29:21 [http-nio-8080-exec-6] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Parameters: +2025-06-23 09:29:21 [http-nio-8080-exec-6] DEBUG c.a.s.m.M.getLatestMarketAnalysis - <== Total: 1 +2025-06-23 09:29:22 [http-nio-8080-exec-5] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT ? +2025-06-23 09:29:22 [http-nio-8080-exec-5] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Parameters: 30(Integer) +2025-06-23 09:29:22 [http-nio-8080-exec-5] DEBUG c.a.s.m.M.getRecentMarketAnalysis - <== Total: 3 +2025-06-23 09:30:56 [http-nio-8080-exec-8] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT 1 +2025-06-23 09:30:56 [http-nio-8080-exec-8] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Parameters: +2025-06-23 09:30:56 [http-nio-8080-exec-8] DEBUG c.a.s.m.M.getLatestMarketAnalysis - <== Total: 1 +2025-06-23 09:30:56 [http-nio-8080-exec-9] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT ? +2025-06-23 09:30:56 [http-nio-8080-exec-9] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Parameters: 30(Integer) +2025-06-23 09:30:56 [http-nio-8080-exec-9] DEBUG c.a.s.m.M.getRecentMarketAnalysis - <== Total: 3 +2025-06-23 09:32:01 [http-nio-8080-exec-2] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT 1 +2025-06-23 09:32:01 [http-nio-8080-exec-2] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Parameters: +2025-06-23 09:32:01 [http-nio-8080-exec-10] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT ? +2025-06-23 09:32:01 [http-nio-8080-exec-10] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Parameters: 7(Integer) +2025-06-23 09:32:01 [http-nio-8080-exec-2] DEBUG c.a.s.m.M.getLatestMarketAnalysis - <== Total: 1 +2025-06-23 09:32:01 [http-nio-8080-exec-10] DEBUG c.a.s.m.M.getRecentMarketAnalysis - <== Total: 3 +2025-06-23 09:32:11 [http-nio-8080-exec-1] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT 1 +2025-06-23 09:32:11 [http-nio-8080-exec-1] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Parameters: +2025-06-23 09:32:11 [http-nio-8080-exec-1] DEBUG c.a.s.m.M.getLatestMarketAnalysis - <== Total: 1 +2025-06-23 09:32:11 [http-nio-8080-exec-3] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT ? +2025-06-23 09:32:11 [http-nio-8080-exec-3] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Parameters: 30(Integer) +2025-06-23 09:32:11 [http-nio-8080-exec-3] DEBUG c.a.s.m.M.getRecentMarketAnalysis - <== Total: 3 +2025-06-23 09:32:18 [http-nio-8080-exec-4] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT ? +2025-06-23 09:32:18 [http-nio-8080-exec-4] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Parameters: 30(Integer) +2025-06-23 09:32:18 [http-nio-8080-exec-4] DEBUG c.a.s.m.M.getRecentMarketAnalysis - <== Total: 3 +2025-06-23 09:32:27 [http-nio-8080-exec-7] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT 1 +2025-06-23 09:32:27 [http-nio-8080-exec-7] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Parameters: +2025-06-23 09:32:27 [http-nio-8080-exec-7] DEBUG c.a.s.m.M.getLatestMarketAnalysis - <== Total: 1 +2025-06-23 09:32:28 [http-nio-8080-exec-6] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT ? +2025-06-23 09:32:28 [http-nio-8080-exec-6] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Parameters: 7(Integer) +2025-06-23 09:32:28 [http-nio-8080-exec-6] DEBUG c.a.s.m.M.getRecentMarketAnalysis - <== Total: 3 +2025-06-23 09:32:47 [http-nio-8080-exec-8] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT ? +2025-06-23 09:32:47 [http-nio-8080-exec-5] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT 1 +2025-06-23 09:32:48 [http-nio-8080-exec-8] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Parameters: 7(Integer) +2025-06-23 09:32:48 [http-nio-8080-exec-5] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Parameters: +2025-06-23 09:32:48 [http-nio-8080-exec-8] DEBUG c.a.s.m.M.getRecentMarketAnalysis - <== Total: 3 +2025-06-23 09:32:48 [http-nio-8080-exec-5] DEBUG c.a.s.m.M.getLatestMarketAnalysis - <== Total: 1 +2025-06-23 09:32:54 [http-nio-8080-exec-9] DEBUG c.a.s.m.S.getTopGainers - ==> Preparing: SELECT * FROM stock_data WHERE DATE(trade_date) = (SELECT MAX(DATE(trade_date)) FROM stock_data) ORDER BY change_percent DESC LIMIT ? +2025-06-23 09:32:54 [http-nio-8080-exec-9] DEBUG c.a.s.m.S.getTopGainers - ==> Parameters: 10(Integer) +2025-06-23 09:32:54 [http-nio-8080-exec-9] DEBUG c.a.s.m.S.getTopGainers - <== Total: 10 +2025-06-23 09:33:00 [http-nio-8080-exec-2] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT 1 +2025-06-23 09:33:00 [http-nio-8080-exec-2] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Parameters: +2025-06-23 09:33:00 [http-nio-8080-exec-2] DEBUG c.a.s.m.M.getLatestMarketAnalysis - <== Total: 1 +2025-06-23 09:33:00 [http-nio-8080-exec-10] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT ? +2025-06-23 09:33:00 [http-nio-8080-exec-10] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Parameters: 30(Integer) +2025-06-23 09:33:00 [http-nio-8080-exec-10] DEBUG c.a.s.m.M.getRecentMarketAnalysis - <== Total: 3 +2025-06-23 09:33:28 [http-nio-8080-exec-1] DEBUG c.a.s.m.S.getLatestStockData - ==> Preparing: SELECT * FROM stock_data WHERE DATE(trade_date) = (SELECT MAX(DATE(trade_date)) FROM stock_data) +2025-06-23 09:33:28 [http-nio-8080-exec-1] DEBUG c.a.s.m.S.getLatestStockData - ==> Parameters: +2025-06-23 09:33:28 [http-nio-8080-exec-1] DEBUG c.a.s.m.S.getLatestStockData - <== Total: 66 +2025-06-23 09:33:30 [http-nio-8080-exec-3] DEBUG c.a.s.m.S.getStockHistoryData - ==> Preparing: SELECT * FROM stock_data WHERE stock_code = ? ORDER BY trade_date DESC LIMIT ? +2025-06-23 09:33:30 [http-nio-8080-exec-3] DEBUG c.a.s.m.S.getStockHistoryData - ==> Parameters: sz300189(String), 30(Integer) +2025-06-23 09:33:30 [http-nio-8080-exec-3] DEBUG c.a.s.m.S.getStockHistoryData - <== Total: 3 +2025-06-23 09:33:44 [http-nio-8080-exec-4] DEBUG c.a.s.m.S.getLatestStockData - ==> Preparing: SELECT * FROM stock_data WHERE DATE(trade_date) = (SELECT MAX(DATE(trade_date)) FROM stock_data) +2025-06-23 09:33:44 [http-nio-8080-exec-4] DEBUG c.a.s.m.S.getLatestStockData - ==> Parameters: +2025-06-23 09:33:44 [http-nio-8080-exec-4] DEBUG c.a.s.m.S.getLatestStockData - <== Total: 66 +2025-06-23 09:33:46 [http-nio-8080-exec-7] DEBUG c.a.s.m.S.getStockHistoryData - ==> Preparing: SELECT * FROM stock_data WHERE stock_code = ? ORDER BY trade_date DESC LIMIT ? +2025-06-23 09:33:46 [http-nio-8080-exec-7] DEBUG c.a.s.m.S.getStockHistoryData - ==> Parameters: sh600251(String), 30(Integer) +2025-06-23 09:33:46 [http-nio-8080-exec-7] DEBUG c.a.s.m.S.getStockHistoryData - <== Total: 3 +2025-06-23 09:33:53 [http-nio-8080-exec-6] DEBUG c.a.s.m.S.getLatestStockData - ==> Preparing: SELECT * FROM stock_data WHERE DATE(trade_date) = (SELECT MAX(DATE(trade_date)) FROM stock_data) +2025-06-23 09:33:53 [http-nio-8080-exec-6] DEBUG c.a.s.m.S.getLatestStockData - ==> Parameters: +2025-06-23 09:33:53 [http-nio-8080-exec-6] DEBUG c.a.s.m.S.getLatestStockData - <== Total: 66 +2025-06-23 09:33:55 [http-nio-8080-exec-8] DEBUG c.a.s.m.S.getLatestStockData - ==> Preparing: SELECT * FROM stock_data WHERE DATE(trade_date) = (SELECT MAX(DATE(trade_date)) FROM stock_data) +2025-06-23 09:33:55 [http-nio-8080-exec-8] DEBUG c.a.s.m.S.getLatestStockData - ==> Parameters: +2025-06-23 09:33:55 [http-nio-8080-exec-8] DEBUG c.a.s.m.S.getLatestStockData - <== Total: 66 +2025-06-23 09:33:55 [http-nio-8080-exec-5] INFO c.a.s.service.impl.StockServiceImpl - 生成股票预测数据,股票代码: sh600251, 预测天数: 7 +2025-06-23 09:33:55 [http-nio-8080-exec-5] DEBUG c.a.s.m.S.getStockHistoryData - ==> Preparing: SELECT * FROM stock_data WHERE stock_code = ? ORDER BY trade_date DESC LIMIT ? +2025-06-23 09:33:55 [http-nio-8080-exec-5] DEBUG c.a.s.m.S.getStockHistoryData - ==> Parameters: sh600251(String), 30(Integer) +2025-06-23 09:33:55 [http-nio-8080-exec-5] DEBUG c.a.s.m.S.getStockHistoryData - <== Total: 3 +2025-06-23 09:34:09 [http-nio-8080-exec-9] DEBUG c.a.s.m.S.getLatestStockData - ==> Preparing: SELECT * FROM stock_data WHERE DATE(trade_date) = (SELECT MAX(DATE(trade_date)) FROM stock_data) +2025-06-23 09:34:09 [http-nio-8080-exec-9] DEBUG c.a.s.m.S.getLatestStockData - ==> Parameters: +2025-06-23 09:34:09 [http-nio-8080-exec-9] DEBUG c.a.s.m.S.getLatestStockData - <== Total: 66 +2025-06-23 09:34:11 [http-nio-8080-exec-2] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT 1 +2025-06-23 09:34:11 [http-nio-8080-exec-2] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Parameters: +2025-06-23 09:34:11 [http-nio-8080-exec-2] DEBUG c.a.s.m.M.getLatestMarketAnalysis - <== Total: 1 +2025-06-23 09:34:11 [http-nio-8080-exec-10] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT ? +2025-06-23 09:34:11 [http-nio-8080-exec-10] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Parameters: 7(Integer) +2025-06-23 09:34:11 [http-nio-8080-exec-10] DEBUG c.a.s.m.M.getRecentMarketAnalysis - <== Total: 3 +2025-06-23 09:35:08 [http-nio-8080-exec-1] DEBUG c.a.s.m.S.getLatestStockData - ==> Preparing: SELECT * FROM stock_data WHERE DATE(trade_date) = (SELECT MAX(DATE(trade_date)) FROM stock_data) +2025-06-23 09:35:08 [http-nio-8080-exec-1] DEBUG c.a.s.m.S.getLatestStockData - ==> Parameters: +2025-06-23 09:35:08 [http-nio-8080-exec-1] DEBUG c.a.s.m.S.getLatestStockData - <== Total: 66 +2025-06-23 09:35:08 [http-nio-8080-exec-3] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT 1 +2025-06-23 09:35:08 [http-nio-8080-exec-3] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Parameters: +2025-06-23 09:35:08 [http-nio-8080-exec-3] DEBUG c.a.s.m.M.getLatestMarketAnalysis - <== Total: 1 +2025-06-23 09:35:08 [http-nio-8080-exec-4] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT ? +2025-06-23 09:35:08 [http-nio-8080-exec-4] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Parameters: 7(Integer) +2025-06-23 09:35:08 [http-nio-8080-exec-4] DEBUG c.a.s.m.M.getRecentMarketAnalysis - <== Total: 3 +2025-06-23 09:35:08 [http-nio-8080-exec-7] DEBUG c.a.s.m.S.getTopGainers - ==> Preparing: SELECT * FROM stock_data WHERE DATE(trade_date) = (SELECT MAX(DATE(trade_date)) FROM stock_data) ORDER BY change_percent DESC LIMIT ? +2025-06-23 09:35:08 [http-nio-8080-exec-7] DEBUG c.a.s.m.S.getTopGainers - ==> Parameters: 10(Integer) +2025-06-23 09:35:08 [http-nio-8080-exec-7] DEBUG c.a.s.m.S.getTopGainers - <== Total: 10 +2025-06-23 09:35:09 [http-nio-8080-exec-6] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT 1 +2025-06-23 09:35:09 [http-nio-8080-exec-6] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Parameters: +2025-06-23 09:35:09 [http-nio-8080-exec-6] DEBUG c.a.s.m.M.getLatestMarketAnalysis - <== Total: 1 +2025-06-23 09:35:09 [http-nio-8080-exec-8] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT ? +2025-06-23 09:35:09 [http-nio-8080-exec-8] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Parameters: 30(Integer) +2025-06-23 09:35:09 [http-nio-8080-exec-8] DEBUG c.a.s.m.M.getRecentMarketAnalysis - <== Total: 3 +2025-06-23 09:35:10 [http-nio-8080-exec-5] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT 1 +2025-06-23 09:35:10 [http-nio-8080-exec-5] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Parameters: +2025-06-23 09:35:10 [http-nio-8080-exec-5] DEBUG c.a.s.m.M.getLatestMarketAnalysis - <== Total: 1 +2025-06-23 09:35:10 [http-nio-8080-exec-9] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT ? +2025-06-23 09:35:10 [http-nio-8080-exec-9] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Parameters: 7(Integer) +2025-06-23 09:35:10 [http-nio-8080-exec-9] DEBUG c.a.s.m.M.getRecentMarketAnalysis - <== Total: 3 +2025-06-23 09:35:22 [http-nio-8080-exec-2] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT 1 +2025-06-23 09:35:22 [http-nio-8080-exec-2] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Parameters: +2025-06-23 09:35:22 [http-nio-8080-exec-2] DEBUG c.a.s.m.M.getLatestMarketAnalysis - <== Total: 1 +2025-06-23 09:35:22 [http-nio-8080-exec-10] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT ? +2025-06-23 09:35:22 [http-nio-8080-exec-10] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Parameters: 30(Integer) +2025-06-23 09:35:22 [http-nio-8080-exec-10] DEBUG c.a.s.m.M.getRecentMarketAnalysis - <== Total: 3 +2025-06-23 09:35:26 [http-nio-8080-exec-1] DEBUG c.a.s.m.S.getTopGainers - ==> Preparing: SELECT * FROM stock_data WHERE DATE(trade_date) = (SELECT MAX(DATE(trade_date)) FROM stock_data) ORDER BY change_percent DESC LIMIT ? +2025-06-23 09:35:26 [http-nio-8080-exec-1] DEBUG c.a.s.m.S.getTopGainers - ==> Parameters: 10(Integer) +2025-06-23 09:35:26 [http-nio-8080-exec-1] DEBUG c.a.s.m.S.getTopGainers - <== Total: 10 +2025-06-23 09:35:28 [http-nio-8080-exec-3] DEBUG c.a.s.m.StockDataMapper.getTopVolume - ==> Preparing: SELECT * FROM stock_data WHERE DATE(trade_date) = (SELECT MAX(DATE(trade_date)) FROM stock_data) ORDER BY volume DESC LIMIT ? +2025-06-23 09:35:28 [http-nio-8080-exec-3] DEBUG c.a.s.m.StockDataMapper.getTopVolume - ==> Parameters: 10(Integer) +2025-06-23 09:35:28 [http-nio-8080-exec-3] DEBUG c.a.s.m.StockDataMapper.getTopVolume - <== Total: 10 +2025-06-23 09:35:33 [http-nio-8080-exec-4] DEBUG c.a.s.m.S.getLatestStockData - ==> Preparing: SELECT * FROM stock_data WHERE DATE(trade_date) = (SELECT MAX(DATE(trade_date)) FROM stock_data) +2025-06-23 09:35:33 [http-nio-8080-exec-4] DEBUG c.a.s.m.S.getLatestStockData - ==> Parameters: +2025-06-23 09:35:33 [http-nio-8080-exec-4] DEBUG c.a.s.m.S.getLatestStockData - <== Total: 66 +2025-06-23 09:35:33 [http-nio-8080-exec-7] DEBUG c.a.s.m.S.getStockHistoryData - ==> Preparing: SELECT * FROM stock_data WHERE stock_code = ? ORDER BY trade_date DESC LIMIT ? +2025-06-23 09:35:33 [http-nio-8080-exec-7] DEBUG c.a.s.m.S.getStockHistoryData - ==> Parameters: sz002312(String), 30(Integer) +2025-06-23 09:35:33 [http-nio-8080-exec-7] DEBUG c.a.s.m.S.getStockHistoryData - <== Total: 3 +2025-06-23 09:35:33 [http-nio-8080-exec-6] DEBUG c.a.s.m.S.getStockHistoryData - ==> Preparing: SELECT * FROM stock_data WHERE stock_code = ? ORDER BY trade_date DESC LIMIT ? +2025-06-23 09:35:33 [http-nio-8080-exec-6] DEBUG c.a.s.m.S.getStockHistoryData - ==> Parameters: sz002312(String), 30(Integer) +2025-06-23 09:35:33 [http-nio-8080-exec-6] DEBUG c.a.s.m.S.getStockHistoryData - <== Total: 3 +2025-06-23 09:35:33 [http-nio-8080-exec-8] INFO c.a.s.service.impl.StockServiceImpl - 生成股票预测数据,股票代码: sz002312, 预测天数: 7 +2025-06-23 09:35:33 [http-nio-8080-exec-8] DEBUG c.a.s.m.S.getStockHistoryData - ==> Preparing: SELECT * FROM stock_data WHERE stock_code = ? ORDER BY trade_date DESC LIMIT ? +2025-06-23 09:35:33 [http-nio-8080-exec-8] DEBUG c.a.s.m.S.getStockHistoryData - ==> Parameters: sz002312(String), 30(Integer) +2025-06-23 09:35:33 [http-nio-8080-exec-8] DEBUG c.a.s.m.S.getStockHistoryData - <== Total: 3 +2025-06-23 09:35:49 [http-nio-8080-exec-5] DEBUG c.a.s.m.S.getTopGainers - ==> Preparing: SELECT * FROM stock_data WHERE DATE(trade_date) = (SELECT MAX(DATE(trade_date)) FROM stock_data) ORDER BY change_percent DESC LIMIT ? +2025-06-23 09:35:49 [http-nio-8080-exec-5] DEBUG c.a.s.m.S.getTopGainers - ==> Parameters: 10(Integer) +2025-06-23 09:35:49 [http-nio-8080-exec-5] DEBUG c.a.s.m.S.getTopGainers - <== Total: 10 +2025-06-23 09:35:51 [http-nio-8080-exec-9] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT 1 +2025-06-23 09:35:51 [http-nio-8080-exec-2] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT ? +2025-06-23 09:35:51 [http-nio-8080-exec-9] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Parameters: +2025-06-23 09:35:51 [http-nio-8080-exec-2] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Parameters: 7(Integer) +2025-06-23 09:35:51 [http-nio-8080-exec-9] DEBUG c.a.s.m.M.getLatestMarketAnalysis - <== Total: 1 +2025-06-23 09:35:51 [http-nio-8080-exec-2] DEBUG c.a.s.m.M.getRecentMarketAnalysis - <== Total: 3 +2025-06-23 09:40:34 [http-nio-8080-exec-10] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT 1 +2025-06-23 09:40:34 [http-nio-8080-exec-1] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT ? +2025-06-23 09:40:34 [http-nio-8080-exec-10] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Parameters: +2025-06-23 09:40:34 [http-nio-8080-exec-1] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Parameters: 7(Integer) +2025-06-23 09:40:34 [http-nio-8080-exec-1] DEBUG c.a.s.m.M.getRecentMarketAnalysis - <== Total: 4 +2025-06-23 09:40:34 [http-nio-8080-exec-10] DEBUG c.a.s.m.M.getLatestMarketAnalysis - <== Total: 1 +2025-06-23 09:40:47 [http-nio-8080-exec-3] DEBUG c.a.s.m.S.getLatestStockData - ==> Preparing: SELECT * FROM stock_data WHERE DATE(trade_date) = (SELECT MAX(DATE(trade_date)) FROM stock_data) +2025-06-23 09:40:47 [http-nio-8080-exec-3] DEBUG c.a.s.m.S.getLatestStockData - ==> Parameters: +2025-06-23 09:40:47 [http-nio-8080-exec-3] DEBUG c.a.s.m.S.getLatestStockData - <== Total: 67 +2025-06-23 09:40:48 [http-nio-8080-exec-4] DEBUG c.a.s.m.S.getTopGainers - ==> Preparing: SELECT * FROM stock_data WHERE DATE(trade_date) = (SELECT MAX(DATE(trade_date)) FROM stock_data) ORDER BY change_percent DESC LIMIT ? +2025-06-23 09:40:48 [http-nio-8080-exec-4] DEBUG c.a.s.m.S.getTopGainers - ==> Parameters: 10(Integer) +2025-06-23 09:40:48 [http-nio-8080-exec-4] DEBUG c.a.s.m.S.getTopGainers - <== Total: 10 +2025-06-23 09:40:49 [http-nio-8080-exec-7] DEBUG c.a.s.m.StockDataMapper.getTopVolume - ==> Preparing: SELECT * FROM stock_data WHERE DATE(trade_date) = (SELECT MAX(DATE(trade_date)) FROM stock_data) ORDER BY volume DESC LIMIT ? +2025-06-23 09:40:49 [http-nio-8080-exec-7] DEBUG c.a.s.m.StockDataMapper.getTopVolume - ==> Parameters: 10(Integer) +2025-06-23 09:40:49 [http-nio-8080-exec-7] DEBUG c.a.s.m.StockDataMapper.getTopVolume - <== Total: 10 +2025-06-23 09:40:50 [http-nio-8080-exec-6] DEBUG c.a.s.m.S.getLatestStockData - ==> Preparing: SELECT * FROM stock_data WHERE DATE(trade_date) = (SELECT MAX(DATE(trade_date)) FROM stock_data) +2025-06-23 09:40:50 [http-nio-8080-exec-6] DEBUG c.a.s.m.S.getLatestStockData - ==> Parameters: +2025-06-23 09:40:50 [http-nio-8080-exec-6] DEBUG c.a.s.m.S.getLatestStockData - <== Total: 67 +2025-06-23 09:40:51 [http-nio-8080-exec-8] DEBUG c.a.s.m.S.getTopGainers - ==> Preparing: SELECT * FROM stock_data WHERE DATE(trade_date) = (SELECT MAX(DATE(trade_date)) FROM stock_data) ORDER BY change_percent DESC LIMIT ? +2025-06-23 09:40:51 [http-nio-8080-exec-8] DEBUG c.a.s.m.S.getTopGainers - ==> Parameters: 10(Integer) +2025-06-23 09:40:51 [http-nio-8080-exec-8] DEBUG c.a.s.m.S.getTopGainers - <== Total: 10 +2025-06-23 09:40:52 [http-nio-8080-exec-5] DEBUG c.a.s.m.StockDataMapper.getTopVolume - ==> Preparing: SELECT * FROM stock_data WHERE DATE(trade_date) = (SELECT MAX(DATE(trade_date)) FROM stock_data) ORDER BY volume DESC LIMIT ? +2025-06-23 09:40:52 [http-nio-8080-exec-5] DEBUG c.a.s.m.StockDataMapper.getTopVolume - ==> Parameters: 10(Integer) +2025-06-23 09:40:52 [http-nio-8080-exec-5] DEBUG c.a.s.m.StockDataMapper.getTopVolume - <== Total: 10 +2025-06-23 09:45:37 [http-nio-8080-exec-9] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT ? +2025-06-23 09:45:37 [http-nio-8080-exec-2] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT 1 +2025-06-23 09:45:37 [http-nio-8080-exec-9] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Parameters: 7(Integer) +2025-06-23 09:45:37 [http-nio-8080-exec-2] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Parameters: +2025-06-23 09:45:37 [http-nio-8080-exec-2] DEBUG c.a.s.m.M.getLatestMarketAnalysis - <== Total: 1 +2025-06-23 09:45:37 [http-nio-8080-exec-9] DEBUG c.a.s.m.M.getRecentMarketAnalysis - <== Total: 4 +2025-06-23 09:45:49 [http-nio-8080-exec-1] DEBUG c.a.s.m.S.getTopGainers - ==> Preparing: SELECT * FROM stock_data WHERE DATE(trade_date) = (SELECT MAX(DATE(trade_date)) FROM stock_data) ORDER BY change_percent DESC LIMIT ? +2025-06-23 09:45:49 [http-nio-8080-exec-1] DEBUG c.a.s.m.S.getTopGainers - ==> Parameters: 10(Integer) +2025-06-23 09:45:49 [http-nio-8080-exec-1] DEBUG c.a.s.m.S.getTopGainers - <== Total: 10 +2025-06-23 09:45:52 [http-nio-8080-exec-10] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT 1 +2025-06-23 09:45:52 [http-nio-8080-exec-10] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Parameters: +2025-06-23 09:45:52 [http-nio-8080-exec-10] DEBUG c.a.s.m.M.getLatestMarketAnalysis - <== Total: 1 +2025-06-23 09:45:52 [http-nio-8080-exec-3] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT ? +2025-06-23 09:45:52 [http-nio-8080-exec-3] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Parameters: 30(Integer) +2025-06-23 09:45:52 [http-nio-8080-exec-3] DEBUG c.a.s.m.M.getRecentMarketAnalysis - <== Total: 4 +2025-06-23 09:46:00 [http-nio-8080-exec-4] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT 1 +2025-06-23 09:46:00 [http-nio-8080-exec-7] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Preparing: SELECT * FROM market_analysis ORDER BY analysis_date DESC LIMIT ? +2025-06-23 09:46:00 [http-nio-8080-exec-4] DEBUG c.a.s.m.M.getLatestMarketAnalysis - ==> Parameters: +2025-06-23 09:46:00 [http-nio-8080-exec-7] DEBUG c.a.s.m.M.getRecentMarketAnalysis - ==> Parameters: 7(Integer) +2025-06-23 09:46:00 [http-nio-8080-exec-4] DEBUG c.a.s.m.M.getLatestMarketAnalysis - <== Total: 1 +2025-06-23 09:46:00 [http-nio-8080-exec-7] DEBUG c.a.s.m.M.getRecentMarketAnalysis - <== Total: 4 +2025-06-23 09:46:18 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... +2025-06-23 09:46:18 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. diff --git a/logs/agricultural-stock-platform-dev.log.2025-06-22.0.gz b/logs/agricultural-stock-platform-dev.log.2025-06-22.0.gz new file mode 100644 index 0000000000000000000000000000000000000000..2643375978efc48e0876cfc60b26ed4755797e9e GIT binary patch literal 2718 zcmV;P3SsphiwFP!000000Nq_(Z{tiAzDMFej8;f(Q8TZdk0y;+Ui!6fvueAg>FxsE z)oKz?8@G-pukEzWA}&B&AOR8=aLu;_H;5aq;OD?DT=5q;W2f7+vFqc^gxK9(X)D*B z=bZDLubJ^AWusgx8Ed6-nV4p?whsTuNuSy7Thcms_JWWuWz?q|XP(_1I>FFmPCF3Y zi$jM6r^4%R3GDp%(3dCx6})A|RJ#TBpY9 z&9%!Kt*8s=SG z0k|+Ob8HuW5FV$%vTHHVYIE<>?(#|A{qd!fW6_6)-YSj1o#7>-!vn&@-!#d| z#(;G})d=mgb!yPHN-StO1{D5o(HlwWi6gqq=?P!{{MlQ8ZMk+}gIw=J=!h@g?{Lck z$9l~>6DHphZosbt6mpNA4;Z!K0ncR)9R{{T_r%#QcLv-8*xlV-!!XK5wMoE9yW9`M z^X{UySz!b4>D=GWxK z(LRxckjwFXHM&OE=`$e8iNmT)Ysy?#1fhj|;I`iv?j-2e#=(Ih|Cp1oTj6~^*|>d{ ze7{CbT8^N9fWQVU`kq~1a}U(LV4h8P!~eFy(b{6@gG+#C^n;+V;5{Q3)}7SFk9QY2Y!}m#GOnFn;_tP7cJxsIk6Y zy`Qf;v=74jpmYbo{q~nmTSk*`p8=BaMw^^TKZGcQ$O}efsm})R)1HWe+Fv49%qQT5 z#2@gkeQGCg_6hj)#?gVanGev63b5Mq0o!Cghx~AApFz@=<9-b;Li)IK4aD%n3=<{? zkjE|AZt2qIS2AaFmvx+|nvH{<$`tQ$umxWw7WiBTP{@}%~n zTDstAAZUAw?6vk=$K-SE8XhtadJ9Os5O1cj+=488#=UIRrr~_!=~EK^IfgiJBo2P~ z%KhQ@UkqNLC!|r;!~GB(T<|aFewQ^ z2Mi|AblC4cPAvwfT8YJ3dpw0%O+$QPo*f5On5(te;mfhZM~)YEmU4o;0Ji3%K}v8c zB23kZIv%4IixG~#Yx{EcI~x(v1-XI>6nuUg1GmOc^?wZlPuksoUoniDQCn^YQiGLM zQh7Ko6!Gt~Qo&=a7mbum0?&aIG`<2Urg3-bJYK`5a^Z@GP~(N}7F+|7O;pcz(?>~MPUHs?YfB*3}KfJZUDv56U*B|~2cS75c zO}1irOg4$<;4*jt(tXAZ7tqnO+Zkb=fnAf>VJBKMGJ#qyU-0?)x;(D*2SiC@r~n%Eb0!mX+ycEYWKgP3re zP1DRUpU-70qCta{Rzwj2)rurw#82w;ki~QeJe9@F#yU2Osp4a@SOP{~S3&d$JO@%V zu7V_Dtk1I*0TW+&?P5wA5{+^ihz2Cjr|4Y9$j*#q#hkGn9Nf# zGE8v`IsH`A5I_B#9S1f2Oc*|XcALxTrv?pDf<_SmHT_J$n3_#3x=gDMo&YKEC&A&FAcaFVF0zWQOE-V1tv;K!wf{tjDsMm+N@;Rj?H1OphbfRdj(|#M6ZyDG5xMWk-KlLYGOl3 z8z>^4YE3i#C9OxZFrlg;mNgX|6j7D<3Bc5Jda)~#`s92t$0fofY%VWsC0V1O$hA{F z45Y7}YSJuy@wC>g#xK$qW_>`51}X8Nh=8d1wWKqdk7j*9RYQEOm>maID-wp!+1mj6 z44?mW-0ILBS1x2m~XhKZyy^?{7l7h5okQNVW2)GoK;cw`No-YZcrft$O(B(ewR$fkceF9^%&{@El0dc!)m{qdu>b zmSYp7pR{~Pv|{;7CV}VRFKB#>za;Fm73LiPEgGa$I7I|hg)`$98XnE3U8-t`U9wTZ zL9Eii@LArO&u74>YmgQ&Y6!T1Db@!o>JfO-?w#{SrCv4A)kGB^RZY;Zy61)!9TF?i zqAGw2FLUY&Z)||+3X?@En8z&IVRZUS!nQ|&);%<6kW%Cn5l}@gVY?$|FCXZWGtJ~0 zU@%MI2{<`>`9PnX=ml^cfa&Ysji$LyPNMJinfThFc5fJ1;>z6>;zH@m*T&-zJNo7_ YZpD4k+y6_5$uEKXAEvjCr-X9=0N?CHMgRZ+ literal 0 HcmV?d00001 diff --git a/spark-processor/README_DATABASE.md b/spark-processor/README_DATABASE.md index 79e7a0b..3b5d5c0 100644 --- a/spark-processor/README_DATABASE.md +++ b/spark-processor/README_DATABASE.md @@ -3,7 +3,14 @@ ## 📋 概述 本文档说明如何配置和使用农业股票数据处理器的MySQL数据库存储功能。处理器现在支持将Spark分析结果直接保存到MySQL数据库中,而不仅仅是文件系统。 - +## 运行 +```shell +spark-submit \ + --class com.agricultural.spark.StockDataProcessor \ + --master local[*] \ + --files application-prod.conf \ + spark-data-processor-1.0.0.jar +``` ## 🔧 数据库配置 ### 1. 数据库表结构 diff --git a/spark-processor/dependency-reduced-pom.xml b/spark-processor/dependency-reduced-pom.xml new file mode 100644 index 0000000..4841dbc --- /dev/null +++ b/spark-processor/dependency-reduced-pom.xml @@ -0,0 +1,101 @@ + + + 4.0.0 + com.agricultural + spark-data-processor + Agricultural Stock Spark Processor + 1.0.0 + 基于Apache Spark的农业股票数据处理器 + + + + maven-compiler-plugin + 3.11.0 + + 8 + 8 + UTF-8 + + + + maven-shade-plugin + 3.4.1 + + + package + + shade + + + + + com.agricultural.spark.StockDataProcessor + + + + + + *:* + + META-INF/*.SF + META-INF/*.DSA + META-INF/*.RSA + + + + + + + + + maven-surefire-plugin + 3.0.0 + + + + + + mysql + mysql-connector-java + 8.0.33 + compile + + + junit + junit + 4.13.2 + test + + + hamcrest-core + org.hamcrest + + + + + org.mockito + mockito-core + 4.11.0 + test + + + byte-buddy + net.bytebuddy + + + byte-buddy-agent + net.bytebuddy + + + + + + 2.12 + 2.14.3 + UTF-8 + 8 + 3.4.0 + 8 + 8.0.33 + + diff --git a/spark-processor/src/main/java/com/agricultural/spark/StockDataProcessor.java b/spark-processor/src/main/java/com/agricultural/spark/StockDataProcessor.java index 0cef92e..eb66353 100644 --- a/spark-processor/src/main/java/com/agricultural/spark/StockDataProcessor.java +++ b/spark-processor/src/main/java/com/agricultural/spark/StockDataProcessor.java @@ -206,12 +206,20 @@ public class StockDataProcessor { SparkConfig config = SparkConfig.load(); processor = new StockDataProcessor(config); - // 根据参数决定运行模式 - if (args.length > 0 && "stream".equals(args[0])) { - // 流处理模式 - processor.runStreamProcessing(); + if (args.length > 0) { + String mode = args[0]; + switch (mode) { + case "stream": + // 流处理模式 + processor.runStreamProcessing(); + break; + default: + // 默认批处理模式 + processor.runBatchProcessing(); + break; + } } else { - // 批处理模式 + // 默认批处理模式 processor.runBatchProcessing(); } diff --git a/spark-processor/src/main/java/com/agricultural/spark/config/SparkConfig.java b/spark-processor/src/main/java/com/agricultural/spark/config/SparkConfig.java index 367a902..69e70c7 100644 --- a/spark-processor/src/main/java/com/agricultural/spark/config/SparkConfig.java +++ b/spark-processor/src/main/java/com/agricultural/spark/config/SparkConfig.java @@ -17,7 +17,22 @@ public class SparkConfig { } public static SparkConfig load() { - Config config = ConfigFactory.load(); + String environment = System.getProperty("environment", System.getenv("ENVIRONMENT")); + if (environment == null) { + environment = "dev"; // 默认开发环境 + } + + Config config; + try { + // 尝试加载特定环境的配置文件 + config = ConfigFactory.load("application-" + environment); + System.out.println("加载环境配置: application-" + environment + ".conf"); + } catch (Exception e) { + // 如果环境配置文件不存在,则加载默认配置 + config = ConfigFactory.load(); + System.out.println("加载默认配置: application.conf"); + } + return new SparkConfig(config); } diff --git a/spark-processor/src/main/java/com/agricultural/spark/service/DatabaseSaveService.java b/spark-processor/src/main/java/com/agricultural/spark/service/DatabaseSaveService.java index 50611a3..eb145c5 100644 --- a/spark-processor/src/main/java/com/agricultural/spark/service/DatabaseSaveService.java +++ b/spark-processor/src/main/java/com/agricultural/spark/service/DatabaseSaveService.java @@ -11,6 +11,7 @@ import org.slf4j.LoggerFactory; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; +import java.sql.ResultSet; import java.sql.SQLException; import java.time.LocalDate; import java.util.Map; diff --git a/spark-processor/src/main/java/com/agricultural/spark/service/MarketAnalysisService.java b/spark-processor/src/main/java/com/agricultural/spark/service/MarketAnalysisService.java index 0b245c8..436b456 100644 --- a/spark-processor/src/main/java/com/agricultural/spark/service/MarketAnalysisService.java +++ b/spark-processor/src/main/java/com/agricultural/spark/service/MarketAnalysisService.java @@ -129,20 +129,30 @@ public class MarketAnalysisService { // 注册UDF函数用于行业分类 spark.udf().register("getIndustry", (String stockCode) -> { - if (stockCode == null || stockCode.length() < 6) { + if (stockCode == null || stockCode.length() < 8) { return "其他农业"; } - String code = stockCode.substring(stockCode.length() - 6); + // 去除前缀,获取纯数字代码 + String code = stockCode; + if (code.startsWith("sz") || code.startsWith("sh") || code.startsWith("bj")) { + code = code.substring(2); // 去除前两个字符 + } + + // 根据具体的农业股票代码进行分类 switch (code) { - case "000876": - case "002714": + case "000876": // 新希望 + case "002714": // 牧原股份 return "畜牧业"; - case "600519": - case "000858": - case "600887": - case "002304": + case "600519": // 贵州茅台 + case "000858": // 五粮液 + case "600887": // 伊利股份 + case "002304": // 洋河股份 return "食品饮料"; + case "300189": // 神农种业 + case "000713": // 丰乐种业 + case "600313": // 农发种业 + return "种业科技"; default: return "其他农业"; } diff --git a/spark-processor/src/main/resources/agricultural_stock.sql b/spark-processor/src/main/resources/agricultural_stock.sql new file mode 100644 index 0000000..d7ed941 --- /dev/null +++ b/spark-processor/src/main/resources/agricultural_stock.sql @@ -0,0 +1,360 @@ +/* + Navicat Premium Dump SQL + + Source Server : mysql本地 + Source Server Type : MySQL + Source Server Version : 80404 (8.4.4) + Source Host : localhost:3306 + Source Schema : agricultural_stock + + Target Server Type : MySQL + Target Server Version : 80404 (8.4.4) + File Encoding : 65001 + + Date: 23/06/2025 08:51:40 +*/ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for industry_analysis +-- ---------------------------- +DROP TABLE IF EXISTS `industry_analysis`; +CREATE TABLE `industry_analysis` ( + `industry` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL, + `stock_count` bigint NOT NULL, + `avg_change_percent` double NULL DEFAULT NULL, + `total_market_cap` double NULL DEFAULT NULL, + `total_volume` double NULL DEFAULT NULL, + `analysis_date` date NOT NULL +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of industry_analysis +-- ---------------------------- + +-- ---------------------------- +-- Table structure for market_analysis +-- ---------------------------- +DROP TABLE IF EXISTS `market_analysis`; +CREATE TABLE `market_analysis` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `analysis_date` date NOT NULL COMMENT '分析日期', + `up_count` int NULL DEFAULT NULL COMMENT '上涨股票数', + `down_count` int NULL DEFAULT NULL COMMENT '下跌股票数', + `flat_count` int NULL DEFAULT NULL COMMENT '平盘股票数', + `total_count` int NULL DEFAULT NULL COMMENT '总股票数', + `total_market_cap` decimal(15, 2) NULL DEFAULT NULL COMMENT '总市值', + `total_volume` bigint NULL DEFAULT NULL COMMENT '总成交量', + `total_turnover` decimal(15, 2) NULL DEFAULT NULL COMMENT '总成交额', + `avg_change_percent` decimal(5, 2) NULL DEFAULT NULL COMMENT '平均涨跌幅', + `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_analysis_date`(`analysis_date` ASC) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '市场分析表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of market_analysis +-- ---------------------------- + +-- ---------------------------- +-- Table structure for market_trends +-- ---------------------------- +DROP TABLE IF EXISTS `market_trends`; +CREATE TABLE `market_trends` ( + `trade_date` timestamp NULL DEFAULT NULL, + `avg_price` double NULL DEFAULT NULL, + `avg_change_percent` double NULL DEFAULT NULL, + `total_volume` double NULL DEFAULT NULL, + `total_turnover` double NULL DEFAULT NULL, + `stock_count` bigint NOT NULL +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of market_trends +-- ---------------------------- + +-- ---------------------------- +-- Table structure for stock_data +-- ---------------------------- +DROP TABLE IF EXISTS `stock_data`; +CREATE TABLE `stock_data` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `stock_code` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '股票代码', + `stock_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '股票名称', + `open_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '开盘价', + `close_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '收盘价', + `high_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '最高价', + `low_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '最低价', + `volume` bigint NULL DEFAULT NULL COMMENT '成交量', + `turnover` decimal(15, 2) NULL DEFAULT NULL COMMENT '成交额', + `change_percent` decimal(5, 2) NULL DEFAULT NULL COMMENT '涨跌幅(%)', + `change_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '涨跌额', + `total_shares` bigint NULL DEFAULT NULL COMMENT '总股本', + `float_shares` bigint NULL DEFAULT NULL COMMENT '流通股本', + `market_cap` decimal(15, 2) NULL DEFAULT NULL COMMENT '总市值', + `float_market_cap` decimal(15, 2) NULL DEFAULT NULL COMMENT '流通市值', + `pe_ratio` decimal(8, 2) NULL DEFAULT NULL COMMENT '市盈率', + `pb_ratio` decimal(8, 2) NULL DEFAULT NULL COMMENT '市净率', + `trade_date` datetime NOT NULL COMMENT '交易日期', + `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` tinyint NULL DEFAULT 0 COMMENT '是否删除', + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_stock_code`(`stock_code` ASC) USING BTREE, + INDEX `idx_trade_date`(`trade_date` ASC) USING BTREE, + INDEX `idx_stock_trade`(`stock_code` ASC, `trade_date` ASC) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 199 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '股票数据表' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of stock_data +-- ---------------------------- +INSERT INTO `stock_data` VALUES (1, 'sz300189', '神农种业', 4.18, 4.19, 4.25, 4.15, 678523, 2841234.56, 1.20, 0.05, NULL, NULL, 37.15, 42.98, 7.12, 6.05, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (2, 'sz000713', '丰乐种业', 6.95, 6.94, 6.98, 6.91, 89234, 619543.23, 0.14, 0.01, NULL, NULL, 42.61, 42.61, 1.41, 2.16, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (3, 'sh600313', '农发种业', 6.25, 6.19, 6.28, 6.16, 98765, 612345.78, -0.48, -0.03, NULL, NULL, 66.99, 66.99, 1.01, 3.42, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (4, 'bj837403', '康农种业', 23.12, 23.57, 24.02, 22.98, 28765, 678234.45, 1.32, 0.31, NULL, NULL, 13.68, 23.21, 4.15, 4.98, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (5, 'sz200505', '京粮B', 2.09, 2.06, 2.10, 2.05, 198, 408.56, -0.48, -0.01, NULL, NULL, 1.34, 14.97, 0.04, 0.45, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (6, 'sz300268', '*ST佳沃', 10.52, 10.43, 10.61, 10.28, 19876, 207123.45, -0.57, -0.06, NULL, NULL, 13.94, 18.16, 1.75, -0.95, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (7, 'sz000930', '中粮科技', 5.53, 5.50, 5.55, 5.47, 76543, 421234.56, -0.18, -0.01, NULL, NULL, 102.09, 102.28, 0.45, 0.97, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (8, 'sz002299', '圣农发展', 14.42, 14.31, 14.48, 14.26, 92345, 1321234.56, -0.76, -0.11, NULL, NULL, 177.87, 177.88, 0.70, 1.72, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (9, 'sh600371', '万向德农', 8.78, 8.71, 8.85, 8.68, 38765, 337891.23, -0.34, -0.03, NULL, NULL, 25.49, 25.49, 1.53, 4.61, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (10, 'sh600598', '北大荒', 14.18, 14.21, 14.26, 14.15, 123456, 1754321.87, 0.21, 0.03, NULL, NULL, 252.08, 252.08, 0.66, 3.41, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (11, 'sh603609', '禾丰股份', 8.30, 8.24, 8.37, 8.21, 31245, 257523.45, -0.12, -0.01, NULL, NULL, 75.19, 75.19, 0.33, 1.16, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (12, 'bj831087', '秋乐种业', 18.25, 18.04, 18.82, 17.89, 67234, 1213567.89, 0.22, 0.04, NULL, NULL, 29.07, 29.90, 3.99, 5.63, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (13, 'sh603363', '傲农生物', 3.58, 3.54, 3.66, 3.52, 127834, 452789.23, -0.56, -0.02, NULL, NULL, 56.56, 92.10, 0.83, 3.14, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (14, 'sh603336', '宏辉果蔬', 6.08, 6.08, 6.31, 6.05, 298765, 1789234.56, 0.82, 0.05, NULL, NULL, 34.62, 34.62, 4.82, 3.05, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (15, 'sh600354', '敦煌种业', 6.02, 6.02, 6.08, 5.99, 175634, 1056789.23, 0.00, 0.00, NULL, NULL, 31.77, 31.77, 3.09, 4.43, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (16, 'sz002385', '大北农', 3.98, 4.00, 4.03, 3.97, 367234, 1467890.12, 0.50, 0.02, NULL, NULL, 140.96, 172.00, 0.98, 1.98, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (17, 'sz000048', '京基智农', 15.69, 15.71, 15.85, 15.42, 43567, 683456.78, 0.19, 0.03, NULL, NULL, 82.76, 83.31, 0.77, 1.97, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (18, 'sh600251', '冠农股份', 7.26, 7.25, 7.30, 7.23, 38765, 281234.56, 0.14, 0.01, NULL, NULL, 56.34, 56.34, 0.47, 1.52, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (19, 'sz002321', '华英农业', 2.37, 2.37, 2.40, 2.34, 245678, 582345.67, 2.60, 0.06, NULL, NULL, 50.34, 50.54, 1.35, 5.35, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (20, 'sz000505', '京粮控股', 6.18, 6.18, 6.25, 6.15, 51234, 316789.23, 0.16, 0.01, NULL, NULL, 38.53, 44.99, 0.87, 1.43, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (21, 'sz001366', '播恩集团', 11.48, 11.48, 11.53, 11.31, 19234, 220456.78, 0.61, 0.07, NULL, NULL, 6.40, 18.44, 3.67, 2.28, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (22, 'sz002772', '众兴菌业', 7.68, 7.68, 7.76, 7.62, 71234, 546789.23, 1.18, 0.09, NULL, NULL, 29.95, 30.20, 1.72, 0.93, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (23, 'sz002041', '登海种业', 9.62, 9.62, 9.69, 9.58, 47234, 454567.89, 0.00, 0.00, NULL, NULL, 84.74, 84.74, 0.50, 2.36, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (24, 'sh600127', '金健米业', 6.75, 6.75, 6.83, 6.72, 165678, 1119234.56, 0.15, 0.01, NULL, NULL, 43.26, 43.26, 2.43, 6.40, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (25, 'sz002548', '金新农', 3.76, 3.76, 3.79, 3.74, 103456, 389234.56, 0.00, 0.00, NULL, NULL, 30.17, 30.19, 1.25, 2.03, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (26, 'sh605296', '神农集团', 32.85, 32.90, 33.45, 32.65, 29876, 981234.56, 0.15, 0.05, NULL, NULL, 172.27, 172.67, 0.54, 3.48, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (27, 'sh600359', '新农开发', 7.18, 7.18, 7.25, 7.12, 178234, 1278567.89, 0.00, 0.00, NULL, NULL, 27.39, 27.39, 4.33, 3.89, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (28, 'sh601952', '苏垦农发', 9.88, 9.88, 9.95, 9.85, 98567, 973456.78, 0.00, 0.00, NULL, NULL, 136.14, 136.14, 0.65, 1.96, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (29, 'sh600975', '新五丰', 5.99, 5.99, 6.04, 5.95, 121234, 724567.89, 0.00, 0.00, NULL, NULL, 60.81, 75.43, 1.11, 2.47, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (30, 'sz300505', '川金诺', 17.98, 17.98, 18.23, 17.85, 315678, 5698234.56, 0.17, 0.03, NULL, NULL, 39.10, 49.45, 13.49, 1.96, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (31, 'sh600141', 'XD兴发集', 20.35, 20.35, 20.48, 19.95, 95678, 1923456.78, 0.00, 0.00, NULL, NULL, 224.64, 224.64, 0.81, 1.08, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (32, 'sz000893', '亚钾国际', 30.62, 30.62, 31.02, 30.12, 101234, 3098567.89, 0.00, 0.00, NULL, NULL, 248.63, 283.45, 1.18, 2.35, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (33, 'sh600691', '阳煤化工', 2.45, 2.45, 2.48, 2.42, 634567, 1553456.78, 0.00, 0.00, NULL, NULL, 58.19, 58.20, 2.67, 1.52, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (34, 'sh600470', '六国化工', 5.81, 5.81, 6.08, 5.76, 198567, 1154567.89, 0.35, 0.02, NULL, NULL, 30.28, 30.28, 3.88, 1.71, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (35, 'sz000408', '藏格矿业', 40.85, 40.85, 41.25, 40.65, 47234, 1928567.89, 0.22, 0.09, NULL, NULL, 641.06, 641.06, 0.28, 4.44, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (36, 'sz000902', '新洋丰', 13.64, 13.64, 13.71, 13.56, 67234, 917456.78, -0.22, -0.03, NULL, NULL, 155.55, 170.83, 0.55, 1.60, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (37, 'sz002539', '云图控股', 8.98, 8.98, 9.01, 8.89, 142567, 1281234.56, 0.00, 0.00, NULL, NULL, 79.31, 108.43, 1.52, 1.21, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (38, 'sz002599', '盛通股份', 8.01, 8.01, 8.12, 7.89, 145678, 1165234.56, 0.13, 0.01, NULL, NULL, 32.26, 43.05, 3.41, 3.52, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (39, 'sz002545', '东方铁塔', 8.71, 8.71, 8.85, 8.68, 132567, 1157234.56, 0.35, 0.03, NULL, NULL, 98.44, 108.37, 1.13, 1.19, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (40, 'sz300387', '富邦科技', 8.59, 8.59, 8.71, 8.44, 73567, 632345.67, 0.58, 0.05, NULL, NULL, 24.81, 24.82, 2.42, 1.81, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (41, 'sz002274', '华昌化工', 7.32, 7.32, 7.43, 7.29, 143567, 1051234.56, 0.55, 0.04, NULL, NULL, 68.73, 69.79, 1.43, 1.27, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (42, 'sz002470', '金正大', 1.70, 1.70, 1.73, 1.69, 412567, 703567.89, 0.00, 0.00, NULL, NULL, 55.85, 55.86, 1.20, 2.70, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (43, 'sz002538', '司尔特', 5.01, 5.01, 5.08, 4.99, 81567, 409234.56, 0.20, 0.01, NULL, NULL, 42.77, 42.77, 0.90, 0.82, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (44, 'sz000731', '四川美丰', 6.97, 6.97, 7.03, 6.89, 123567, 861234.56, 0.14, 0.01, NULL, NULL, 38.99, 38.99, 2.11, 0.96, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (45, 'sh600078', '澄星股份', 5.30, 5.30, 5.47, 5.29, 76234, 407567.89, 0.38, 0.02, NULL, NULL, 35.11, 35.11, 1.05, 2.14, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (46, 'sh600227', '赤天化', 2.94, 2.94, 2.99, 2.88, 1245678, 3652345.67, 2.08, 0.06, NULL, NULL, 37.58, 49.67, 11.85, 1.88, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (47, 'sh603395', '红四方', 32.74, 32.74, 33.21, 32.67, 14567, 476234.56, 0.09, 0.03, NULL, NULL, 17.54, 85.04, 2.53, 6.19, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (48, 'sz002588', '史丹利', 8.93, 8.93, 9.01, 8.88, 129567, 1157234.56, 0.45, 0.04, NULL, NULL, 76.58, 102.75, 1.41, 1.51, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (49, 'sz000422', '湖北宜化', 11.81, 11.81, 11.93, 11.52, 223567, 2634567.89, 0.09, 0.01, NULL, NULL, 124.90, 127.83, 2.03, 1.78, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (50, 'sz002556', '辉隆股份', 5.99, 5.99, 6.18, 5.95, 456789, 2734567.89, 0.00, 0.00, NULL, NULL, 56.02, 56.70, 4.60, 1.60, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (51, 'sz002312', '川发龙蟒', 11.53, 11.53, 11.75, 11.28, 923567, 10634567.89, 1.15, 0.13, NULL, NULL, 202.72, 218.18, 5.09, 2.35, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (52, 'sz002170', '芭田股份', 10.13, 10.13, 10.32, 10.09, 93567, 948234.56, -0.39, -0.04, NULL, NULL, 72.22, 97.64, 1.22, 2.88, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (53, 'sz000792', '盐湖股份', 16.33, 16.33, 16.54, 16.28, 267234, 4364567.89, 0.06, 0.01, NULL, NULL, 863.86, 863.87, 0.47, 2.28, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (54, 'sh600096', '云天化', 22.43, 22.43, 22.68, 22.31, 156234, 3501234.56, 0.04, 0.01, NULL, NULL, 408.72, 408.72, 0.80, 1.95, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (55, 'sz001231', '农心科技', 18.96, 18.96, 19.76, 18.57, 26234, 497567.89, -0.31, -0.06, NULL, NULL, 6.76, 18.96, 6.85, 1.94, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (56, 'sz002731', '萃华珠宝', 14.90, 14.90, 15.12, 14.35, 189567, 2812345.67, 3.56, 0.51, NULL, NULL, 34.22, 38.18, 7.85, 2.12, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (57, 'sz200553', '安道麦B', 2.26, 2.26, 2.29, 2.23, 434, 981.23, 0.00, 0.00, NULL, NULL, 3.45, 52.64, 0.03, 0.25, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (58, 'sh603810', '丰山集团', 15.38, 15.38, 15.73, 15.12, 19567, 300234.56, -0.39, -0.06, NULL, NULL, 25.40, 25.40, 1.11, 1.68, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (59, 'sh603970', '中农立华', 13.56, 13.56, 13.69, 13.48, 24567, 333234.56, 0.00, 0.00, NULL, NULL, 36.45, 36.45, 0.88, 2.51, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (60, 'sz301035', '润丰股份', 56.29, 56.29, 57.83, 56.12, 17234, 970234.56, -1.84, -1.05, NULL, NULL, 157.82, 158.07, 0.56, 2.31, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (61, 'sz002868', '*ST绿康', 22.40, 22.40, 22.78, 21.98, 8903, 199567.89, -0.04, -0.01, NULL, NULL, 34.50, 34.81, 0.55, -62.80, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (62, 'sz003042', '中农联合', 16.13, 16.13, 16.58, 16.02, 45234, 729567.89, 0.81, 0.13, NULL, NULL, 20.45, 23.00, 3.41, 1.69, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (63, 'sz002391', '长青股份', 5.99, 5.99, 6.12, 5.76, 293567, 1754567.89, 4.00, 0.23, NULL, NULL, 27.82, 38.93, 6.15, 0.93, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (64, 'bj870866', '绿亨科技', 10.18, 10.18, 10.42, 9.95, 36234, 367567.89, -0.59, -0.06, NULL, NULL, 9.51, 18.35, 3.66, 2.47, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (65, 'sz301665', '泰禾股份', 29.95, 29.95, 31.23, 29.52, 63234, 1893567.89, 1.42, 0.42, NULL, NULL, 10.75, 134.87, 17.24, 4.07, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (66, 'sh600486', '扬农化工', 59.89, 59.89, 61.12, 59.58, 20567, 1234567.89, -0.02, -0.01, NULL, NULL, 241.72, 244.00, 0.48, 2.22, '2025-06-18 15:00:00', '2025-06-18 15:00:00', '2025-06-18 15:05:00', 0); +INSERT INTO `stock_data` VALUES (67, 'sz300189', '神农种业', 4.19, 4.22, 4.27, 4.17, 645234, 2723456.78, 0.72, 0.03, NULL, NULL, 37.38, 43.20, 7.22, 6.12, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (68, 'sz000713', '丰乐种业', 6.94, 6.94, 6.99, 6.90, 87654, 607891.23, 0.00, 0.00, NULL, NULL, 42.61, 42.61, 1.41, 2.16, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (69, 'sh600313', '农发种业', 6.19, 6.18, 6.24, 6.15, 106789, 659876.54, -0.16, -0.01, NULL, NULL, 66.85, 66.85, 1.02, 3.40, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (70, 'bj837403', '康农种业', 23.57, 23.58, 24.15, 23.42, 26543, 625678.90, 0.04, 0.01, NULL, NULL, 13.69, 23.22, 4.13, 4.99, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (71, 'sz200505', '京粮B', 2.06, 2.07, 2.08, 2.05, 245, 507.89, 0.49, 0.01, NULL, NULL, 1.35, 15.04, 0.04, 0.45, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (72, 'sz300268', '*ST佳沃', 10.43, 10.41, 10.49, 10.35, 21234, 221456.78, -0.19, -0.02, NULL, NULL, 13.91, 18.13, 1.71, -0.96, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (73, 'sz000930', '中粮科技', 5.50, 5.49, 5.53, 5.46, 79876, 438765.43, -0.18, -0.01, NULL, NULL, 101.91, 102.09, 0.44, 0.96, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (74, 'sz002299', '圣农发展', 14.31, 14.28, 14.36, 14.21, 87654, 1251234.56, -0.21, -0.03, NULL, NULL, 177.50, 177.51, 0.69, 1.71, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (75, 'sh600371', '万向德农', 8.71, 8.69, 8.76, 8.65, 42345, 368234.56, -0.23, -0.02, NULL, NULL, 25.43, 25.43, 1.52, 4.59, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (76, 'sh600598', '北大荒', 14.21, 14.21, 14.27, 14.18, 115678, 1643456.78, 0.00, 0.00, NULL, NULL, 252.08, 252.08, 0.66, 3.41, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (77, 'sh603609', '禾丰股份', 8.24, 8.28, 8.34, 8.19, 32456, 268734.56, 0.49, 0.04, NULL, NULL, 75.54, 75.54, 0.33, 1.16, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (78, 'bj831087', '秋乐种业', 18.04, 18.05, 18.65, 17.87, 71234, 1287654.32, 0.06, 0.01, NULL, NULL, 29.06, 29.83, 3.98, 5.62, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (79, 'sh603363', '傲农生物', 3.54, 3.52, 3.59, 3.48, 143567, 506234.78, -0.56, -0.02, NULL, NULL, 56.25, 91.58, 0.82, 3.13, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (80, 'sh603336', '宏辉果蔬', 6.08, 6.05, 6.18, 6.01, 285678, 1725634.78, -0.49, -0.03, NULL, NULL, 34.46, 34.46, 4.79, 3.04, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (81, 'sh600354', '敦煌种业', 6.02, 6.03, 6.09, 5.98, 168743, 1012456.78, 0.17, 0.01, NULL, NULL, 31.83, 31.83, 3.10, 4.45, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (82, 'sz002385', '大北农', 4.00, 4.00, 4.02, 3.97, 358234, 1432156.78, 0.00, 0.00, NULL, NULL, 140.96, 172.00, 0.98, 1.98, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (83, 'sz000048', '京基智农', 15.71, 15.71, 15.79, 15.48, 41567, 653245.67, 0.00, 0.00, NULL, NULL, 82.76, 83.31, 0.77, 1.97, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (84, 'sh600251', '冠农股份', 7.25, 7.24, 7.29, 7.21, 39234, 283567.89, -0.14, -0.01, NULL, NULL, 56.26, 56.26, 0.47, 1.52, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (85, 'sz002321', '华英农业', 2.37, 2.34, 2.39, 2.31, 265789, 618234.56, -1.27, -0.03, NULL, NULL, 49.71, 49.91, 1.33, 5.27, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (86, 'sz000505', '京粮控股', 6.18, 6.18, 6.22, 6.14, 52678, 325789.34, 0.00, 0.00, NULL, NULL, 38.53, 44.99, 0.87, 1.43, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (87, 'sz001366', '播恩集团', 11.48, 11.47, 11.58, 11.36, 20123, 230567.89, -0.09, -0.01, NULL, NULL, 6.39, 18.42, 3.67, 2.28, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (88, 'sz002772', '众兴菌业', 7.68, 7.63, 7.75, 7.58, 68567, 523456.78, -0.65, -0.05, NULL, NULL, 29.78, 30.02, 1.71, 0.93, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (89, 'sz002041', '登海种业', 9.62, 9.62, 9.68, 9.58, 45123, 433567.89, 0.00, 0.00, NULL, NULL, 84.74, 84.74, 0.50, 2.36, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (90, 'sh600127', '金健米业', 6.75, 6.74, 6.79, 6.70, 158234, 1067345.67, -0.15, -0.01, NULL, NULL, 43.19, 43.19, 2.42, 6.39, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (91, 'sz002548', '金新农', 3.76, 3.76, 3.78, 3.73, 101234, 379456.78, 0.00, 0.00, NULL, NULL, 30.17, 30.19, 1.25, 2.03, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (92, 'sh605296', '神农集团', 32.90, 32.86, 33.18, 32.61, 28567, 939234.56, -0.12, -0.04, NULL, NULL, 171.87, 172.27, 0.54, 3.47, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (93, 'sh600359', '新农开发', 7.18, 7.12, 7.23, 7.06, 172345, 1232456.78, -0.84, -0.06, NULL, NULL, 27.16, 27.16, 4.29, 3.85, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (94, 'sh601952', '苏垦农发', 9.88, 9.94, 9.99, 9.84, 94567, 938765.43, 0.61, 0.06, NULL, NULL, 136.97, 136.97, 0.66, 1.97, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (95, 'sh600975', '新五丰', 5.99, 5.99, 6.02, 5.94, 117234, 701234.56, 0.00, 0.00, NULL, NULL, 60.81, 75.43, 1.11, 2.47, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (96, 'sz300505', '川金诺', 17.98, 18.27, 18.76, 17.83, 298567, 5456789.23, 1.61, 0.29, NULL, NULL, 39.73, 50.19, 13.75, 1.99, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (97, 'sh600141', 'XD兴发集', 20.35, 20.25, 20.42, 19.98, 91234, 1845678.90, -0.49, -0.10, NULL, NULL, 223.54, 223.54, 0.81, 1.08, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (98, 'sz000893', '亚钾国际', 30.62, 30.48, 30.85, 30.15, 98234, 2987654.32, -0.46, -0.14, NULL, NULL, 247.49, 282.05, 1.17, 2.34, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (99, 'sh600691', '阳煤化工', 2.45, 2.40, 2.47, 2.38, 687234, 1634567.89, -2.04, -0.05, NULL, NULL, 56.92, 56.93, 2.61, 1.48, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (100, 'sh600470', '六国化工', 5.81, 5.85, 5.98, 5.78, 201234, 1176543.21, 0.69, 0.04, NULL, NULL, 30.49, 30.49, 3.91, 1.72, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (101, 'sz000408', '藏格矿业', 40.85, 40.81, 41.12, 40.52, 45234, 1845678.90, -0.10, -0.04, NULL, NULL, 640.62, 640.62, 0.28, 4.43, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (102, 'sz000902', '新洋丰', 13.64, 13.67, 13.73, 13.58, 65234, 891234.56, 0.22, 0.03, NULL, NULL, 155.89, 171.20, 0.55, 1.60, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (103, 'sz002539', '云图控股', 8.98, 8.97, 9.02, 8.91, 138567, 1243567.89, -0.11, -0.01, NULL, NULL, 79.22, 108.33, 1.52, 1.21, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (104, 'sz002599', '盛通股份', 8.01, 7.96, 8.08, 7.91, 148567, 1182345.67, -0.62, -0.05, NULL, NULL, 32.05, 42.79, 3.39, 3.50, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (105, 'sz002545', '东方铁塔', 8.71, 8.70, 8.78, 8.66, 128567, 1118234.56, -0.11, -0.01, NULL, NULL, 98.33, 108.25, 1.13, 1.19, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (106, 'sz300387', '富邦科技', 8.59, 8.51, 8.67, 8.43, 75234, 641234.56, -0.93, -0.08, NULL, NULL, 24.58, 24.59, 2.39, 1.79, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (107, 'sz002274', '华昌化工', 7.32, 7.31, 7.38, 7.27, 139567, 1018234.56, -0.14, -0.01, NULL, NULL, 68.64, 69.69, 1.43, 1.27, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (108, 'sz002470', '金正大', 1.70, 1.69, 1.71, 1.68, 421234, 712345.67, -0.59, -0.01, NULL, NULL, 55.52, 55.53, 1.19, 2.68, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (109, 'sz002538', '司尔特', 5.01, 5.01, 5.06, 4.98, 78234, 391234.56, 0.00, 0.00, NULL, NULL, 42.77, 42.77, 0.90, 0.82, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (110, 'sz000731', '四川美丰', 6.97, 6.92, 7.01, 6.87, 118234, 816234.56, -0.72, -0.05, NULL, NULL, 38.71, 38.71, 2.09, 0.95, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (111, 'sh600078', '澄星股份', 5.30, 5.37, 5.42, 5.26, 73234, 392567.89, 1.32, 0.07, NULL, NULL, 35.58, 35.58, 1.07, 2.17, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (112, 'sh600227', '赤天化', 2.94, 2.74, 2.96, 2.72, 1567234, 4321567.89, -6.80, -0.20, NULL, NULL, 35.02, 46.29, 11.05, 1.75, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (113, 'sh603395', '红四方', 32.74, 32.71, 33.05, 32.58, 14234, 465234.56, -0.09, -0.03, NULL, NULL, 17.53, 85.01, 2.52, 6.18, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (114, 'sz002588', '史丹利', 8.93, 8.91, 8.97, 8.86, 124567, 1109234.56, -0.22, -0.02, NULL, NULL, 76.41, 102.52, 1.40, 1.51, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (115, 'sz000422', '湖北宜化', 11.81, 11.79, 11.87, 11.68, 218567, 2578234.56, -0.17, -0.02, NULL, NULL, 124.69, 127.62, 2.03, 1.78, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (116, 'sz002556', '辉隆股份', 5.99, 5.99, 6.08, 5.93, 445678, 2667234.56, 0.00, 0.00, NULL, NULL, 56.02, 56.70, 4.60, 1.60, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (117, 'sz002312', '川发龙蟒', 11.53, 11.39, 11.64, 11.26, 943567, 10753456.78, -1.21, -0.14, NULL, NULL, 200.26, 215.52, 5.03, 2.32, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (118, 'sz002170', '芭田股份', 10.13, 10.17, 10.24, 10.08, 89234, 907234.56, 0.39, 0.04, NULL, NULL, 72.51, 98.03, 1.23, 2.89, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (119, 'sz000792', '盐湖股份', 16.33, 16.27, 16.41, 16.22, 253456, 4123567.89, -0.37, -0.06, NULL, NULL, 860.69, 860.70, 0.47, 2.27, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (120, 'sh600096', '云天化', 22.43, 22.36, 22.58, 22.29, 151234, 3378234.56, -0.31, -0.07, NULL, NULL, 407.44, 407.44, 0.80, 1.94, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (121, 'sz001231', '农心科技', 18.96, 19.01, 19.45, 18.74, 25234, 480567.89, 0.26, 0.05, NULL, NULL, 6.78, 19.01, 6.87, 1.94, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (122, 'sz002731', '萃华珠宝', 14.90, 14.64, 14.98, 14.42, 181234, 2665234.56, -1.74, -0.26, NULL, NULL, 33.62, 37.48, 7.71, 2.08, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (123, 'sz200553', '安道麦B', 2.26, 2.25, 2.28, 2.23, 398, 895.23, -0.44, -0.01, NULL, NULL, 3.44, 52.42, 0.03, 0.25, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (124, 'sh603810', '丰山集团', 15.38, 15.40, 15.67, 15.21, 18567, 286234.56, 0.13, 0.02, NULL, NULL, 25.43, 25.43, 1.11, 1.68, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (125, 'sh603970', '中农立华', 13.56, 13.51, 13.64, 13.45, 23789, 321234.56, -0.37, -0.05, NULL, NULL, 36.32, 36.32, 0.87, 2.50, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (126, 'sz301035', '润丰股份', 56.29, 57.29, 58.45, 56.03, 16789, 962345.67, 1.78, 1.00, NULL, NULL, 160.63, 160.88, 0.57, 2.35, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (127, 'sz002868', '*ST绿康', 22.41, 22.24, 22.56, 21.98, 8567, 190234.56, -0.71, -0.16, NULL, NULL, 34.26, 34.57, 0.54, -62.35, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (128, 'sz003042', '中农联合', 16.13, 16.06, 16.28, 15.98, 43789, 703456.78, -0.43, -0.07, NULL, NULL, 20.36, 22.90, 3.39, 1.68, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (129, 'sz002391', '长青股份', 5.99, 5.88, 6.02, 5.81, 281234, 1657234.56, -1.84, -0.11, NULL, NULL, 27.31, 38.22, 6.03, 0.91, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (130, 'bj870866', '绿亨科技', 10.18, 10.18, 10.34, 9.98, 35234, 358234.56, 0.00, 0.00, NULL, NULL, 9.51, 18.35, 3.66, 2.47, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (131, 'sz301665', '泰禾股份', 29.95, 29.84, 30.65, 29.35, 61234, 1823456.78, -0.37, -0.11, NULL, NULL, 10.71, 134.38, 17.18, 4.05, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (132, 'sh600486', '扬农化工', 59.90, 59.91, 60.34, 59.52, 19678, 1179234.56, 0.02, 0.01, NULL, NULL, 241.76, 244.05, 0.48, 2.22, '2025-06-19 15:00:00', '2025-06-19 15:00:00', '2025-06-19 15:05:00', 0); +INSERT INTO `stock_data` VALUES (133, 'sz300189', '神农种业', 4.22, 4.23, 4.28, 4.18, 650591, 2751999.93, 0.95, 0.04, NULL, NULL, 37.49, 43.32, 7.34, 6.20, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (134, 'sz000713', '丰乐种业', 6.93, 6.93, 6.97, 6.92, 84507, 585633.51, -0.14, -0.01, NULL, NULL, 42.55, 42.55, 1.38, 2.14, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (135, 'sh600313', '农发种业', 6.18, 6.14, 6.22, 6.13, 109886, 674700.04, -0.81, -0.05, NULL, NULL, 66.45, 66.45, 1.02, 3.39, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (136, 'bj837403', '康农种业', 23.40, 24.05, 24.55, 23.30, 24505, 589345.25, 2.04, 0.48, NULL, NULL, 13.95, 23.90, 4.22, 5.06, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (137, 'sz200505', '京粮B', 2.07, 2.05, 2.07, 2.05, 229, 469.45, -0.97, -0.02, NULL, NULL, 1.33, 14.90, 0.03, 0.25, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (138, 'sz300268', '*ST佳沃', 10.45, 10.39, 10.54, 10.23, 22615, 234969.85, -0.38, -0.04, NULL, NULL, 13.89, 18.10, 1.69, -0.98, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (139, 'sz000930', '中粮科技', 5.50, 5.47, 5.52, 5.46, 81247, 444421.09, -0.55, -0.03, NULL, NULL, 101.54, 101.73, 0.44, 0.96, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (140, 'sz002299', '圣农发展', 14.31, 14.16, 14.39, 14.13, 84753, 1200102.48, -1.05, -0.15, NULL, NULL, 176.06, 176.07, 0.68, 1.70, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (141, 'sh600371', '万向德农', 8.71, 8.65, 8.79, 8.63, 44162, 382001.30, -0.69, -0.06, NULL, NULL, 25.31, 25.31, 1.51, 4.58, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (142, 'sh600598', '北大荒', 14.24, 14.21, 14.29, 14.20, 117268, 1666378.28, 0.00, 0.00, NULL, NULL, 252.61, 252.61, 0.66, 3.42, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (143, 'sh603609', '禾丰股份', 8.28, 8.22, 8.35, 8.19, 29347, 241232.34, -0.24, -0.02, NULL, NULL, 75.01, 75.01, 0.32, 1.15, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (144, 'bj831087', '秋乐种业', 18.17, 18.05, 18.70, 17.98, 63814, 1151842.70, 0.06, 0.01, NULL, NULL, 28.99, 29.82, 3.97, 5.61, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (145, 'sh603363', '傲农生物', 3.55, 3.50, 3.63, 3.50, 130626, 457191.00, -1.13, -0.04, NULL, NULL, 55.93, 91.10, 0.82, 3.11, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (146, 'sh603336', '宏辉果蔬', 6.12, 6.03, 6.27, 6.03, 272616, 1643874.48, -0.82, -0.05, NULL, NULL, 34.40, 34.40, 4.78, 3.03, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (147, 'sh600354', '敦煌种业', 6.04, 6.03, 6.10, 6.02, 163660, 986869.80, 0.17, 0.01, NULL, NULL, 31.83, 31.83, 3.10, 4.45, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (148, 'sz002385', '大北农', 4.00, 4.00, 4.01, 3.99, 346291, 1385164.00, 0.00, 0.00, NULL, NULL, 140.96, 172.00, 0.98, 1.98, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (149, 'sz000048', '京基智农', 15.75, 15.72, 15.83, 15.45, 40802, 641407.44, 0.06, 0.01, NULL, NULL, 82.81, 83.36, 0.77, 1.97, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (150, 'sh600251', '冠农股份', 7.25, 7.23, 7.28, 7.22, 36320, 262593.60, -0.28, -0.02, NULL, NULL, 56.18, 56.18, 0.47, 1.51, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (151, 'sz002321', '华英农业', 2.36, 2.31, 2.37, 2.30, 278159, 642547.29, -2.53, -0.06, NULL, NULL, 49.07, 49.27, 1.31, 5.19, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (152, 'sz000505', '京粮控股', 6.17, 6.18, 6.24, 6.16, 54102, 334350.36, 0.00, 0.00, NULL, NULL, 38.47, 44.93, 0.87, 1.43, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (153, 'sz001366', '播恩集团', 11.41, 11.56, 11.61, 11.34, 20571, 237800.76, 0.70, 0.08, NULL, NULL, 6.44, 18.57, 3.69, 2.30, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (154, 'sz002772', '众兴菌业', 7.68, 7.59, 7.73, 7.57, 66198, 502442.82, -1.17, -0.09, NULL, NULL, 29.61, 29.85, 1.70, 0.92, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (155, 'sz002041', '登海种业', 9.62, 9.63, 9.70, 9.61, 43971, 423440.73, 0.10, 0.01, NULL, NULL, 84.74, 84.74, 0.50, 2.36, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (156, 'sh600127', '金健米业', 6.74, 6.73, 6.82, 6.71, 155468, 1046299.64, -0.30, -0.02, NULL, NULL, 43.19, 43.19, 2.42, 6.38, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (157, 'sz002548', '金新农', 3.76, 3.75, 3.78, 3.73, 100358, 376342.50, -0.27, -0.01, NULL, NULL, 30.17, 30.19, 1.25, 2.03, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (158, 'sh605296', '神农集团', 32.91, 32.32, 33.33, 32.13, 27757, 897106.24, -1.76, -0.58, NULL, NULL, 169.23, 169.63, 0.53, 3.42, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (159, 'sh600359', '新农开发', 7.18, 6.96, 7.18, 6.93, 160174, 1114811.04, -3.06, -0.22, NULL, NULL, 26.55, 26.55, 4.20, 3.77, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (160, 'sh601952', '苏垦农发', 9.88, 9.96, 9.98, 9.88, 91390, 910244.40, 0.81, 0.08, NULL, NULL, 137.25, 137.25, 0.66, 1.96, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (161, 'sh600975', '新五丰', 5.99, 5.98, 6.03, 5.96, 113039, 675973.22, -0.17, -0.01, NULL, NULL, 60.81, 75.43, 1.11, 2.47, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (162, 'sz300505', '川金诺', 17.95, 18.57, 18.87, 17.83, 301709, 5602736.13, 3.28, 0.59, NULL, NULL, 40.36, 51.04, 13.88, 2.02, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (163, 'sh600141', 'XD兴发集', 20.39, 20.14, 20.46, 19.93, 88593, 1784263.02, -1.03, -0.21, NULL, NULL, 222.20, 222.20, 0.80, 1.07, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (164, 'sz000893', '亚钾国际', 30.62, 30.01, 30.99, 29.90, 94478, 2835284.78, -1.99, -0.61, NULL, NULL, 243.60, 277.31, 1.16, 2.30, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (165, 'sh600691', '阳煤化工', 2.45, 2.34, 2.46, 2.33, 605749, 1417452.66, -4.49, -0.11, NULL, NULL, 55.59, 55.60, 2.55, 1.45, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (166, 'sh600470', '六国化工', 5.81, 5.89, 6.05, 5.74, 205746, 1211843.94, 1.38, 0.08, NULL, NULL, 30.72, 30.72, 3.94, 1.74, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (167, 'sz000408', '藏格矿业', 40.76, 40.80, 41.05, 40.55, 43850, 1789080.00, -0.22, -0.09, NULL, NULL, 640.65, 640.65, 0.28, 4.44, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (168, 'sz000902', '新洋丰', 13.64, 13.64, 13.71, 13.56, 67234, 917456.78, -0.22, -0.03, NULL, NULL, 155.55, 170.83, 0.55, 1.60, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (169, 'sz002539', '云图控股', 8.98, 8.98, 9.01, 8.89, 142567, 1281234.56, 0.00, 0.00, NULL, NULL, 79.31, 108.43, 1.52, 1.21, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (170, 'sz002599', '盛通股份', 8.01, 8.01, 8.12, 7.89, 145678, 1165234.56, 0.13, 0.01, NULL, NULL, 32.26, 43.05, 3.41, 3.52, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (171, 'sz002545', '东方铁塔', 8.71, 8.71, 8.85, 8.68, 132567, 1157234.56, 0.35, 0.03, NULL, NULL, 98.44, 108.37, 1.13, 1.19, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (172, 'sz300387', '富邦科技', 8.59, 8.59, 8.71, 8.44, 73567, 632345.67, 0.58, 0.05, NULL, NULL, 24.81, 24.82, 2.42, 1.81, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (173, 'sz002274', '华昌化工', 7.32, 7.32, 7.43, 7.29, 143567, 1051234.56, 0.55, 0.04, NULL, NULL, 68.73, 69.79, 1.43, 1.27, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (174, 'sz002470', '金正大', 1.70, 1.70, 1.73, 1.69, 412567, 703567.89, 0.00, 0.00, NULL, NULL, 55.85, 55.86, 1.20, 2.70, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (175, 'sz002538', '司尔特', 5.01, 5.01, 5.08, 4.99, 81567, 409234.56, 0.20, 0.01, NULL, NULL, 42.77, 42.77, 0.90, 0.82, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (176, 'sz000731', '四川美丰', 6.97, 6.97, 7.03, 6.89, 123567, 861234.56, 0.14, 0.01, NULL, NULL, 38.99, 38.99, 2.11, 0.96, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (177, 'sh600078', '澄星股份', 5.30, 5.30, 5.47, 5.29, 76234, 407567.89, 0.38, 0.02, NULL, NULL, 35.11, 35.11, 1.05, 2.14, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (178, 'sh600227', '赤天化', 2.94, 2.94, 2.99, 2.88, 1245678, 3652345.67, 2.08, 0.06, NULL, NULL, 37.58, 49.67, 11.85, 1.88, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (179, 'sh603395', '红四方', 32.74, 32.74, 33.21, 32.67, 14567, 476234.56, 0.09, 0.03, NULL, NULL, 17.54, 85.04, 2.53, 6.19, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (180, 'sz002588', '史丹利', 8.93, 8.93, 9.01, 8.88, 129567, 1157234.56, 0.45, 0.04, NULL, NULL, 76.58, 102.75, 1.41, 1.51, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (181, 'sz000422', '湖北宜化', 11.81, 11.81, 11.93, 11.52, 223567, 2634567.89, 0.09, 0.01, NULL, NULL, 124.90, 127.83, 2.03, 1.78, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (182, 'sz002556', '辉隆股份', 5.99, 5.99, 6.18, 5.95, 456789, 2734567.89, 0.00, 0.00, NULL, NULL, 56.02, 56.70, 4.60, 1.60, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (183, 'sz002312', '川发龙蟒', 11.53, 11.53, 11.75, 11.28, 923567, 10634567.89, 1.15, 0.13, NULL, NULL, 202.72, 218.18, 5.09, 2.35, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (184, 'sz002170', '芭田股份', 10.13, 10.13, 10.32, 10.09, 93567, 948234.56, -0.39, -0.04, NULL, NULL, 72.22, 97.64, 1.22, 2.88, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (185, 'sz000792', '盐湖股份', 16.33, 16.33, 16.54, 16.28, 267234, 4364567.89, 0.06, 0.01, NULL, NULL, 863.86, 863.87, 0.47, 2.28, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (186, 'sh600096', '云天化', 22.43, 22.43, 22.68, 22.31, 156234, 3501234.56, 0.04, 0.01, NULL, NULL, 408.72, 408.72, 0.80, 1.95, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (187, 'sz001231', '农心科技', 18.96, 18.96, 19.76, 18.57, 26234, 497567.89, -0.31, -0.06, NULL, NULL, 6.76, 18.96, 6.85, 1.94, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (188, 'sz002731', '萃华珠宝', 14.90, 14.90, 15.12, 14.35, 189567, 2812345.67, 3.56, 0.51, NULL, NULL, 34.22, 38.18, 7.85, 2.12, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (189, 'sz200553', '安道麦B', 2.26, 2.26, 2.29, 2.23, 434, 981.23, 0.00, 0.00, NULL, NULL, 3.45, 52.64, 0.03, 0.25, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (190, 'sh603810', '丰山集团', 15.38, 15.38, 15.73, 15.12, 19567, 300234.56, -0.39, -0.06, NULL, NULL, 25.40, 25.40, 1.11, 1.68, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (191, 'sh603970', '中农立华', 13.56, 13.56, 13.69, 13.48, 24567, 333234.56, 0.00, 0.00, NULL, NULL, 36.45, 36.45, 0.88, 2.51, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (192, 'sz301035', '润丰股份', 56.29, 56.29, 57.83, 56.12, 17234, 970234.56, -1.84, -1.05, NULL, NULL, 157.82, 158.07, 0.56, 2.31, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (193, 'sz002868', '*ST绿康', 22.40, 22.40, 22.78, 21.98, 8903, 199567.89, -0.04, -0.01, NULL, NULL, 34.50, 34.81, 0.55, -62.80, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (194, 'sz003042', '中农联合', 16.13, 16.13, 16.58, 16.02, 45234, 729567.89, 0.81, 0.13, NULL, NULL, 20.45, 23.00, 3.41, 1.69, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (195, 'sz002391', '长青股份', 5.99, 5.99, 6.12, 5.76, 293567, 1754567.89, 4.00, 0.23, NULL, NULL, 27.82, 38.93, 6.15, 0.93, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (196, 'bj870866', '绿亨科技', 10.18, 10.18, 10.42, 9.95, 36234, 367567.89, -0.59, -0.06, NULL, NULL, 9.51, 18.35, 3.66, 2.47, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (197, 'sz301665', '泰禾股份', 29.95, 29.95, 31.23, 29.52, 63234, 1893567.89, 1.42, 0.42, NULL, NULL, 10.75, 134.87, 17.24, 4.07, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); +INSERT INTO `stock_data` VALUES (198, 'sh600486', '扬农化工', 59.89, 59.89, 61.12, 59.58, 20567, 1234567.89, -0.02, -0.01, NULL, NULL, 241.72, 244.00, 0.48, 2.22, '2025-06-20 15:00:00', '2025-06-20 15:00:00', '2025-06-20 15:05:00', 0); + +-- ---------------------------- +-- Table structure for stock_prediction +-- ---------------------------- +DROP TABLE IF EXISTS `stock_prediction`; +CREATE TABLE `stock_prediction` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `stock_code` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '股票代码', + `stock_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '股票名称', + `predict_date` date NOT NULL COMMENT '预测日期', + `predict_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '预测价格', + `confidence` decimal(5, 2) NULL DEFAULT NULL COMMENT '置信度', + `model_version` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '模型版本', + `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_prediction_stock`(`stock_code` ASC) USING BTREE, + INDEX `idx_prediction_date`(`predict_date` ASC) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '股票预测数据表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of stock_prediction +-- ---------------------------- + +-- ---------------------------- +-- Table structure for stock_technical_indicators +-- ---------------------------- +DROP TABLE IF EXISTS `stock_technical_indicators`; +CREATE TABLE `stock_technical_indicators` ( + `stock_code` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL, + `stock_name` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `trade_date` timestamp NULL DEFAULT NULL, + `close_price` double NULL DEFAULT NULL, + `ma5` double NULL DEFAULT NULL, + `ma10` double NULL DEFAULT NULL, + `ma20` double NULL DEFAULT NULL, + `ma30` double NULL DEFAULT NULL, + `rsi` double NULL DEFAULT NULL, + `macd_dif` double NULL DEFAULT NULL, + `macd_dea` double NULL DEFAULT NULL, + `bb_upper` double NULL DEFAULT NULL, + `bb_middle` double NULL DEFAULT NULL, + `bb_lower` double NULL DEFAULT NULL +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of stock_technical_indicators +-- ---------------------------- + +SET FOREIGN_KEY_CHECKS = 1; diff --git a/spark-processor/src/main/resources/application-dev.conf b/spark-processor/src/main/resources/application-dev.conf new file mode 100644 index 0000000..5a978d8 --- /dev/null +++ b/spark-processor/src/main/resources/application-dev.conf @@ -0,0 +1,20 @@ +# 开发环境配置 +spark { + master = "local[*]" + app-name = "agricultural-stock-data-processor-dev" +} + +mysql { + host = "localhost" + port = 3306 + database = "agricultural_stock" + user = "root" + password = "root" +} + +output { + path = "/tmp/spark-output-dev" +} + +# 调试模式 +debug = true \ No newline at end of file diff --git a/spark-processor/src/main/resources/application-docker.conf b/spark-processor/src/main/resources/application-docker.conf new file mode 100644 index 0000000..282aa33 --- /dev/null +++ b/spark-processor/src/main/resources/application-docker.conf @@ -0,0 +1,20 @@ +# Docker环境配置 +spark { + master = "spark://spark-master:7077" + app-name = "agricultural-stock-data-processor-docker" +} + +mysql { + host = "mysql" + port = 3306 + database = "agricultural_stock" + user = "root" + password = "123456" +} + +output { + path = "/app/spark-output" +} + +# 生产模式 +debug = false \ No newline at end of file diff --git a/spark-processor/src/main/resources/application-prod.conf b/spark-processor/src/main/resources/application-prod.conf new file mode 100644 index 0000000..b1d06eb --- /dev/null +++ b/spark-processor/src/main/resources/application-prod.conf @@ -0,0 +1,20 @@ +# 生产环境配置 +spark { + master = ${SPARK_MASTER_URL:-"local[*]"} + app-name = "agricultural-stock-data-processor-prod" +} + +mysql { + host = ${MYSQL_HOST:-"localhost"} + port = ${MYSQL_PORT:-3306} + database = ${MYSQL_DATABASE:-"agricultural_stock"} + user = ${MYSQL_USER:-"root"} + password = ${MYSQL_PASSWORD:-"kyff145972"} +} + +output { + path = ${OUTPUT_PATH:-"/app/spark-output"} +} + +# 生产模式 +debug = false \ No newline at end of file diff --git a/start-dev.sh b/start-dev.sh new file mode 100644 index 0000000..0fe4511 --- /dev/null +++ b/start-dev.sh @@ -0,0 +1,102 @@ +#!/bin/bash + +# 设置颜色输出 +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +NC='\033[0m' # No Color + +# 设置开发环境变量 +export SPRING_PROFILES_ACTIVE=dev +export ENVIRONMENT=dev + +echo -e "${GREEN}启动农业股票分析平台 (开发环境)...${NC}" + +# 检查端口是否被占用 +check_port() { + if lsof -Pi :$1 -sTCP:LISTEN -t >/dev/null ; then + echo -e "${RED}端口 $1 已被占用,请先关闭相关服务${NC}" + return 1 + fi + return 0 +} + +# 检查必要端口 +echo -e "${YELLOW}检查端口占用情况...${NC}" +if ! check_port 3000; then exit 1; fi +if ! check_port 8080; then exit 1; fi + +# 启动前端开发服务器 +echo -e "${YELLOW}启动前端服务 (开发模式)...${NC}" +cd frontend +npm run dev & +FRONTEND_PID=$! + +# 等待一下 +sleep 3 + +# 启动后端服务 +echo -e "${YELLOW}启动后端服务 (开发环境: ${SPRING_PROFILES_ACTIVE})...${NC}" +cd ../backend +mvn spring-boot:run -Dspring-boot.run.profiles=dev & +BACKEND_PID=$! + +# 等待一下 +sleep 5 + +# 启动数据采集服务 +echo -e "${YELLOW}启动数据采集服务...${NC}" +cd ../data-collector +python stock_crawler.py & +COLLECTOR_PID=$! + +# 可选:启动Spark处理器(开发环境) +echo -e "${YELLOW}是否启动Spark数据处理器?(y/n)${NC}" +read -t 10 -p "10秒后自动跳过..." SPARK_CHOICE +if [[ $SPARK_CHOICE =~ ^[Yy]$ ]]; then + echo -e "${YELLOW}启动Spark数据处理器 (开发环境)...${NC}" + cd ../spark-processor + java -Denvironment=dev -cp target/classes:target/lib/* com.agricultural.spark.StockDataProcessor & + SPARK_PID=$! +fi + +echo -e "${GREEN}开发环境服务启动完成!${NC}" +echo "================================================================" +echo " 🌐 前端服务: http://localhost:3000" +echo " 🔧 后端服务: http://localhost:8080" +echo " 📚 API文档: http://localhost:8080/swagger-ui" +echo " 🏷️ 环境配置: ${SPRING_PROFILES_ACTIVE}" +echo " 📊 数据库: MySQL (localhost:3306)" +echo " 🗃️ 缓存: Redis (localhost:6379)" +echo "================================================================" + +# 保存PID到文件,用于停止服务 +echo $FRONTEND_PID > frontend.pid +echo $BACKEND_PID > backend.pid +echo $COLLECTOR_PID > collector.pid +if [[ ! -z $SPARK_PID ]]; then + echo $SPARK_PID > spark.pid +fi + +echo -e "${YELLOW}使用 ./stop-dev.sh 停止所有开发服务${NC}" +echo -e "${YELLOW}使用 Ctrl+C 或 Enter 键停止服务...${NC}" + +# 设置信号处理 +cleanup() { + echo -e "\n${YELLOW}正在停止所有服务...${NC}" + kill $FRONTEND_PID $BACKEND_PID $COLLECTOR_PID 2>/dev/null + if [[ ! -z $SPARK_PID ]]; then + kill $SPARK_PID 2>/dev/null + fi + + # 清理PID文件 + rm -f frontend.pid backend.pid collector.pid spark.pid + + echo -e "${GREEN}所有服务已停止${NC}" + exit 0 +} + +trap cleanup SIGINT SIGTERM + +# 等待用户输入或信号 +wait \ No newline at end of file diff --git a/stop-dev.sh b/stop-dev.sh new file mode 100644 index 0000000..8af0209 --- /dev/null +++ b/stop-dev.sh @@ -0,0 +1,57 @@ +#!/bin/bash + +# 设置颜色输出 +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +NC='\033[0m' # No Color + +echo -e "${YELLOW}停止开发环境服务...${NC}" + +# 从PID文件读取进程ID并停止 +if [ -f frontend.pid ]; then + FRONTEND_PID=$(cat frontend.pid) + if ps -p $FRONTEND_PID > /dev/null; then + kill $FRONTEND_PID + echo -e "${GREEN}前端服务已停止${NC}" + fi + rm -f frontend.pid +fi + +if [ -f backend.pid ]; then + BACKEND_PID=$(cat backend.pid) + if ps -p $BACKEND_PID > /dev/null; then + kill $BACKEND_PID + echo -e "${GREEN}后端服务已停止${NC}" + fi + rm -f backend.pid +fi + +if [ -f collector.pid ]; then + COLLECTOR_PID=$(cat collector.pid) + if ps -p $COLLECTOR_PID > /dev/null; then + kill $COLLECTOR_PID + echo -e "${GREEN}数据采集服务已停止${NC}" + fi + rm -f collector.pid +fi + +if [ -f spark.pid ]; then + SPARK_PID=$(cat spark.pid) + if ps -p $SPARK_PID > /dev/null; then + kill $SPARK_PID + echo -e "${GREEN}Spark处理器已停止${NC}" + fi + rm -f spark.pid +fi + +# 额外检查:强制停止相关进程 +echo -e "${YELLOW}检查是否有残留进程...${NC}" + +# 停止可能的残留进程 +pkill -f "vite" +pkill -f "spring-boot:run" +pkill -f "stock_crawler.py" +pkill -f "StockDataProcessor" + +echo -e "${GREEN}所有开发服务已停止!${NC}" \ No newline at end of file