wuzhen 提交代码

This commit is contained in:
wuzhen committed 2025-07-16 18:11:31 +08:00
1 parent 913e542e7c
commit 6820ebc45f
97 files changed
+27269 -1

No files matched your search

+47
View File
@@ -0,0 +1,47 @@
#!/usr/bin/env python3
"""
批量修复XgStudentInfo实体类中的字段映射
将不存在的字段标记为 exist = false
"""
import re
import os
# 需要标记为不存在的字段
NON_EXISTENT_FIELDS = [
'name_english', 'former_name', 'name_pinyin', 'marital_status', 'religion',
'photo_url', 'photo_path', 'enrollment_year', 'school_system', 'education_level',
'training_type', 'admission_category', 'source_region', 'middle_school',
'major_code', 'major_name', 'class_code', 'grade', 'college_code',
'counselor_id', 'counselor_name', 'class_teacher_id', 'class_teacher_name',
'current_address', 'postal_code', 'household_register_type', 'hukou_location',
'info_status', 'data_source', 'last_batch_id', 'last_audit_time',
'is_complete', 'completion_rate', 'ext_field1', 'ext_field2', 'ext_field3',
'ext_field4', 'ext_field5'
]
def fix_entity_file():
file_path = '../ruoyi-modules/ruoyi-xg-xx/src/main/java/org/dromara/xg/domain/XgStudentInfo.java'
if not os.path.exists(file_path):
print(f"文件不存在: {file_path}")
return
with open(file_path, 'r', encoding='utf-8') as f:
content = f.read()
# 修复每个字段
for field in NON_EXISTENT_FIELDS:
# 查找 @TableField("field_name") 并替换为 @TableField(value = "field_name", exist = false)
pattern = f'@TableField\\("{field}"\\)'
replacement = f'@TableField(value = "{field}", exist = false)'
content = re.sub(pattern, replacement, content)
# 保存修改后的文件
with open(file_path, 'w', encoding='utf-8') as f:
f.write(content)
print("实体类字段映射修复完成")
if __name__ == '__main__':
fix_entity_file()
@@ -0,0 +1,96 @@
-- 学生信息字段映射修复脚本
-- 确保所有字段都正确存在并具有正确的属性
USE hzdyjs_xg;
-- 检查并添加缺失的字段
-- 1. 宿舍信息字段
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS dormitory_building VARCHAR(50) COMMENT '宿舍楼栋';
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS dormitory_room VARCHAR(20) COMMENT '宿舍房间号';
-- 2. 健康信息字段
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS allergies TEXT COMMENT '过敏史';
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS medical_history TEXT COMMENT '病史';
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS health_status VARCHAR(20) DEFAULT '良好' COMMENT '健康状况';
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS blood_type VARCHAR(10) COMMENT '血型';
-- 3. 银行信息字段
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS bank_branch VARCHAR(100) COMMENT '开户支行';
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS card_holder_name VARCHAR(50) COMMENT '持卡人姓名';
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS bank_card_no VARCHAR(30) COMMENT '银行卡号';
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS bank_name VARCHAR(50) COMMENT '开户银行';
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS bank_city VARCHAR(50) COMMENT '开户城市';
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS bank_province VARCHAR(50) COMMENT '开户省份';
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS card_type VARCHAR(20) DEFAULT '储蓄卡' COMMENT '卡片类型';
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS card_status VARCHAR(20) DEFAULT '正常' COMMENT '卡片状态';
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS bank_card_remark TEXT COMMENT '银行卡备注';
-- 4. 紧急联系人信息字段
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS emergency_contact_name VARCHAR(50) COMMENT '紧急联系人姓名';
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS emergency_contact_phone VARCHAR(20) COMMENT '紧急联系人电话';
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS emergency_contact_relation VARCHAR(20) COMMENT '紧急联系人关系';
-- 5. 家庭信息字段
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS father_name VARCHAR(50) COMMENT '父亲姓名';
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS father_phone VARCHAR(20) COMMENT '父亲电话';
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS father_work_unit VARCHAR(100) COMMENT '父亲工作单位';
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS mother_name VARCHAR(50) COMMENT '母亲姓名';
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS mother_phone VARCHAR(20) COMMENT '母亲电话';
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS mother_work_unit VARCHAR(100) COMMENT '母亲工作单位';
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS family_income VARCHAR(20) COMMENT '家庭年收入';
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS family_members INT COMMENT '家庭成员数量';
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS family_economic_status VARCHAR(20) COMMENT '家庭经济状况';
-- 6. 监护人信息字段
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS guardian_name VARCHAR(50) COMMENT '监护人姓名';
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS guardian_phone VARCHAR(20) COMMENT '监护人电话';
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS guardian_relation VARCHAR(20) COMMENT '监护人关系';
-- 7. 体征信息字段
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS height DECIMAL(5,2) COMMENT '身高(cm)';
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS weight DECIMAL(5,2) COMMENT '体重(kg)';
-- 8. 特殊情况字段
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS is_poor_student TINYINT(1) DEFAULT 0 COMMENT '是否贫困生:0-否,1-是';
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS is_minority TINYINT(1) DEFAULT 0 COMMENT '是否少数民族:0-否,1-是';
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS is_disabled TINYINT(1) DEFAULT 0 COMMENT '是否残疾学生:0-否,1-是';
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS is_orphan TINYINT(1) DEFAULT 0 COMMENT '是否孤儿:0-否,1-是';
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS is_left_behind_child TINYINT(1) DEFAULT 0 COMMENT '是否留守儿童:0-否,1-是';
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS is_single_child TINYINT(1) DEFAULT 0 COMMENT '是否独生子女:0-否,1-是';
-- 9. 扩展信息字段
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS specialties TEXT COMMENT '特长爱好';
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS awards TEXT COMMENT '获奖情况';
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS violations TEXT COMMENT '违纪记录';
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS social_activities TEXT COMMENT '社会活动';
-- 10. 其他扩展字段
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS disability_type VARCHAR(50) COMMENT '残疾类型';
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS disability_level VARCHAR(20) COMMENT '残疾等级';
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS info_status TINYINT(1) DEFAULT 1 COMMENT '信息状态:1-正常,2-待审核,3-审核中,4-已驳回,5-已锁定';
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS approval_status TINYINT(1) DEFAULT 1 COMMENT '审批状态:1-待审批,2-审批中,3-已通过,4-已驳回';
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS audit_time DATETIME COMMENT '审核时间';
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS audit_by BIGINT(20) COMMENT '审核人员ID';
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS audit_remark TEXT COMMENT '审核备注';
-- 验证字段是否正确添加
SELECT
COLUMN_NAME as '字段名',
DATA_TYPE as '数据类型',
IS_NULLABLE as '可空',
COLUMN_DEFAULT as '默认值',
COLUMN_COMMENT as '注释'
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'hzdyjs_xg'
AND TABLE_NAME = 'xg_student_info'
AND COLUMN_NAME IN (
'dormitory_building', 'dormitory_room', 'allergies', 'medical_history',
'bank_branch', 'card_holder_name', 'emergency_contact_name',
'father_name', 'mother_name', 'family_income', 'family_members',
'height', 'weight', 'specialties', 'awards', 'violations', 'social_activities'
)
ORDER BY COLUMN_NAME;
-- 输出执行结果
SELECT '字段映射修复脚本执行完成' as '执行结果';
SELECT CONCAT('执行时间: ', NOW()) as '时间戳';
@@ -0,0 +1,42 @@
-- 添加学生信息表缺失的基本字段
-- 时间:2025-01-16
-- 目的:修复字段映射错误
USE hzdyjs_xg;
-- 添加基本信息字段
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS nation VARCHAR(20) DEFAULT NULL COMMENT '民族' AFTER birth_date;
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS school_system INT(2) DEFAULT 4 COMMENT '学制(年)' AFTER enrollment_date;
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS training_type VARCHAR(20) DEFAULT NULL COMMENT '培养方式' AFTER education_level;
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS source_region VARCHAR(100) DEFAULT NULL COMMENT '生源地区' AFTER training_type;
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS middle_school VARCHAR(100) DEFAULT NULL COMMENT '毕业中学' AFTER source_region;
-- 添加状态管理字段
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS data_source VARCHAR(20) DEFAULT 'manual' COMMENT '数据来源:manual-手工录入,import-批量导入,sync-系统同步' AFTER info_status;
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS last_batch_id BIGINT(20) DEFAULT NULL COMMENT '最后修改批次ID' AFTER data_source;
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS last_audit_time DATETIME DEFAULT NULL COMMENT '最后审核时间' AFTER last_batch_id;
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS is_complete TINYINT(1) DEFAULT 0 COMMENT '信息是否完整:0-不完整,1-完整' AFTER last_audit_time;
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS completion_rate DECIMAL(5,2) DEFAULT 0.00 COMMENT '完整度百分比' AFTER is_complete;
-- 添加扩展字段
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS ext_field1 VARCHAR(200) DEFAULT NULL COMMENT '扩展字段1' AFTER completion_rate;
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS ext_field2 VARCHAR(200) DEFAULT NULL COMMENT '扩展字段2' AFTER ext_field1;
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS ext_field3 VARCHAR(200) DEFAULT NULL COMMENT '扩展字段3' AFTER ext_field2;
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS ext_field4 VARCHAR(200) DEFAULT NULL COMMENT '扩展字段4' AFTER ext_field3;
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS ext_field5 VARCHAR(500) DEFAULT NULL COMMENT '扩展字段5' AFTER ext_field4;
-- 添加特殊情况字段
ALTER TABLE xg_student_info ADD COLUMN IF NOT EXISTS special_condition VARCHAR(200) DEFAULT NULL COMMENT '特殊体质或疾病' AFTER weight;
-- 验证字段是否正确添加
SELECT
COLUMN_NAME as '字段名',
DATA_TYPE as '数据类型',
IS_NULLABLE as '可空',
COLUMN_DEFAULT as '默认值',
COLUMN_COMMENT as '注释'
FROM information_schema.COLUMNS
WHERE table_schema = DATABASE()
AND table_name = 'xg_student_info'
AND COLUMN_NAME IN ('nation', 'school_system', 'training_type', 'source_region', 'middle_school', 'special_condition')
ORDER BY ORDINAL_POSITION;
@@ -0,0 +1,43 @@
-- 检查xg_student_info表的实际结构
-- 用于确认哪些字段存在于数据库中
USE hzdyjs_xg;
-- 显示表结构
DESCRIBE xg_student_info;
-- 显示所有字段名
SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT, COLUMN_COMMENT
FROM information_schema.COLUMNS
WHERE table_schema = 'hzdyjs_xg'
AND table_name = 'xg_student_info'
ORDER BY ORDINAL_POSITION;
-- 检查特定字段是否存在
SELECT
CASE WHEN COUNT(*) > 0 THEN 'EXISTS' ELSE 'NOT EXISTS' END as nation_status
FROM information_schema.COLUMNS
WHERE table_schema = 'hzdyjs_xg'
AND table_name = 'xg_student_info'
AND column_name = 'nation';
SELECT
CASE WHEN COUNT(*) > 0 THEN 'EXISTS' ELSE 'NOT EXISTS' END as name_english_status
FROM information_schema.COLUMNS
WHERE table_schema = 'hzdyjs_xg'
AND table_name = 'xg_student_info'
AND column_name = 'name_english';
SELECT
CASE WHEN COUNT(*) > 0 THEN 'EXISTS' ELSE 'NOT EXISTS' END as phone_status
FROM information_schema.COLUMNS
WHERE table_schema = 'hzdyjs_xg'
AND table_name = 'xg_student_info'
AND column_name = 'phone';
SELECT
CASE WHEN COUNT(*) > 0 THEN 'EXISTS' ELSE 'NOT EXISTS' END as mobile_status
FROM information_schema.COLUMNS
WHERE table_schema = 'hzdyjs_xg'
AND table_name = 'xg_student_info'
AND column_name = 'mobile';