zlwu 1e6dcb164c 提交 1 month ago
..
README.md 48f15745be 提交 10 months ago
data.conf 1e6dcb164c 提交 1 month ago
data.conf.prod 48f15745be 提交 10 months ago
process_student_id_card_refresh.sh 48f15745be 提交 10 months ago
run_refresh.sh 48f15745be 提交 10 months ago
学生学籍号刷新脚本设计说明.md 1e6dcb164c 提交 1 month ago

README.md

学生学籍号刷新脚本

📋 脚本说明

本脚本用于自动刷新学生信息表(xg_student_msg)中的学籍号字段(ext_field2)。

刷新规则: ext_field2 = 'G' + id_card

🚀 快速开始

1. 一次性刷新(推荐)

# 进入脚本目录
cd 学籍号刷新

# 执行一次性刷新所有学籍号
./run_refresh.sh once
# 或者直接运行
./process_student_id_card_refresh.sh once

2. 持续监控模式

# 前台执行(会一直运行)
./run_refresh.sh monitor

# 后台执行(推荐方式)
./run_refresh.sh bg

📊 执行结果

最新执行结果(2025-12-26):

  • 总学生数: 13,884
  • 已生成学籍号: 13,883
  • 待刷新: 1

📈 优化说明

v1.0.2 更新 (2025-12-26):

  • ✅ 后台执行: 新增bg模式,支持一键后台启动守护进程
  • ✅ 用户体验: 提供PID显示、状态检查和停止命令提示

v1.0.1 更新 (2025-12-26):

  • ✅ 简化逻辑: 移除不必要的预查询,直接执行UPDATE语句
  • ✅ 提高效率: 使用SELECT ROW_COUNT()获取受影响行数,一次查询完成
  • ✅ 减少数据库压力: 减少不必要的统计查询

📁 文件结构

学籍号刷新/
├── data.conf              # 开发环境配置
├── data.conf.prod         # 生产环境配置
├── process_student_id_card_refresh.sh  # 主脚本
├── run_refresh.sh         # 快速执行脚本
├── README.md              # 使用说明
├── 学生学籍号刷新脚本设计说明.md     # 详细设计文档
└── student_id_card_refresh/           # 日志目录
    └── *.log              # 执行日志

⚙️ 配置说明

data.conf 参数

# 数据库配置
DB_HOST="47.99.164.66"
DB_PORT="3306"
DB_NAME="hzdyjs_xg"
DB_USER="root"
DB_PASS="your_password"

# 处理配置
BATCH_SIZE=500           # 批次大小
CYCLE_INTERVAL=600       # 检查间隔(秒,默认10分钟)

📈 验证结果

-- 统计学籍号生成情况
SELECT
    COUNT(*) as total_students,
    SUM(CASE WHEN ext_field2 LIKE 'G%' THEN 1 ELSE 0 END) as with_id_card,
    SUM(CASE WHEN ext_field2 IS NULL OR ext_field2 = '' THEN 1 ELSE 0 END) as need_refresh
FROM xg_student_msg
WHERE deleted = 0;

-- 查看学籍号样例
SELECT student_no, name, id_card, ext_field2
FROM xg_student_msg
WHERE ext_field2 LIKE 'G%'
  AND deleted = 0
LIMIT 5;

🔒 安全注意

  1. 备份数据: 执行前务必备份数据库
  2. 测试环境: 先在测试环境验证
  3. 权限控制: 确保数据库用户有UPDATE权限

📞 技术支持

如有问题,请参考:


最后更新: 2025-12-26 脚本版本: v1.0.2