7.0 KiB
7.0 KiB
数据结构、接口、测试页面和Swagger同步检查报告
检查时间
2024年12月(当前时间)
检查目标
验证"谈话前安全风险评估表"(模板编码:PRE_INTERVIEW_RISK_ASSESSMENT)的数据结构、接口、测试页面和Swagger是否已正确同步更新。
一、数据库检查
1.1 文件配置
- 表名:
f_polic_file_config - 检查项:
- 文件配置是否存在
input_dataJSON字段中是否包含正确的template_code- 文件路径是否正确
1.2 字段数据
- 表名:
f_polic_field - 期望字段 (11个输出字段):
target_family_situation- 被核查人员家庭情况target_social_relations- 被核查人员社会关系target_health_status- 被核查人员健康状况target_personality- 被核查人员性格特征target_tolerance- 被核查人员承受能力target_issue_severity- 被核查人员涉及问题严重程度target_other_issues_possibility- 被核查人员涉及其他问题的可能性target_previous_investigation- 被核查人员此前被审查情况target_negative_events- 被核查人员社会负面事件target_other_situation- 被核查人员其他情况risk_level- 风险等级
1.3 关联关系
- 表名:
f_polic_file_field - 检查项: 所有11个字段是否都已正确关联到文件配置
验证脚本: verify_pre_interview_risk_assessment_data.py
二、接口服务检查
2.1 field_service.py ✅ 已修复
问题: get_fields_by_business_type方法硬编码了模板名称'初步核实审批表',导致无法查询新模板的字段。
修复内容:
- ✅ 修改为根据
business_type从input_dataJSON字段中动态查询 - ✅ 支持查询所有匹配
business_type的文件配置及其关联字段 - ✅ 不再硬编码模板名称
修复前:
AND fc.name = '初步核实审批表'
修复后:
# 从input_data JSON中解析business_type,动态匹配
sql_file_configs = """
SELECT id, name, input_data
FROM f_polic_file_config
WHERE tenant_id = %s AND state = 1
"""
# 然后根据business_type过滤文件配置ID
2.2 document_service.py ✅ 已修复
问题: get_file_config_by_template_code方法试图从不存在的template_code列查询,而实际上template_code存储在input_data的JSON字段中。
修复内容:
- ✅ 修改为从
input_dataJSON字段中解析template_code - ✅ 支持通过
template_code查找文件配置
修复前:
sql = """
SELECT id, name, file_path, template_code
FROM f_polic_file_config
WHERE tenant_id = %s
AND template_code = %s # ❌ 列不存在
"""
修复后:
# 查询所有文件配置,然后从input_data JSON中解析template_code
sql = """
SELECT id, name, file_path, input_data
FROM f_polic_file_config
WHERE tenant_id = %s AND state = 1
"""
# 遍历结果,从JSON中查找匹配的template_code
三、测试页面检查
3.1 static/index.html
状态: ✅ 通用设计,无需硬编码更新
说明:
- 测试页面采用动态字段添加机制
- 用户可以通过手动输入字段编码来测试任何模板
- 默认示例使用"初步核实审批表"是合理的(作为示例)
建议 (可选):
- 可以添加模板选择器,让用户选择不同的模板并自动加载对应的字段
- 当前设计已经足够灵活,支持所有模板
四、Swagger文档检查
4.1 Swagger配置 ✅ 正常
状态: ✅ Swagger已正确配置,文档是动态生成的
说明:
- Swagger文档通过Flasgger自动生成
- 接口文档中不包含硬编码的模板信息
- 所有接口都通过参数(如
templateCode)支持动态模板
接口列表:
- ✅
/ai/extract- AI字段提取接口(有完整Swagger文档) - ✅
/api/fields- 获取字段配置接口(有完整Swagger文档) - ✅
/ai/generate-document- 文档生成接口(有完整Swagger文档)
结论: Swagger文档无需更新,因为它是通用的,支持所有模板。
五、修复总结
✅ 已完成的修复
-
field_service.py
- ✅ 修复
get_fields_by_business_type方法,支持动态查询多个模板 - ✅ 从
input_dataJSON中解析business_type
- ✅ 修复
-
document_service.py
- ✅ 修复
get_file_config_by_template_code方法 - ✅ 从
input_dataJSON中解析template_code
- ✅ 修复
⚠️ 需要验证的项目
-
数据库数据
- 需要运行
init_pre_interview_risk_assessment_fields.py确保数据已初始化 - 需要运行
verify_pre_interview_risk_assessment_data.py验证数据完整性
- 需要运行
-
接口测试
- 测试
/api/fields?businessType=INVESTIGATION是否返回新模板的字段 - 测试
/ai/extract接口是否能正确提取新模板的字段 - 测试
/ai/generate-document接口是否能正确生成新模板的文档
- 测试
六、验证步骤
步骤1: 验证数据库数据
python verify_pre_interview_risk_assessment_data.py
步骤2: 验证接口
# 启动服务
python app.py
# 测试字段查询接口
curl "http://localhost:7500/api/fields?businessType=INVESTIGATION"
# 测试AI提取接口(使用新模板的字段)
curl -X POST http://localhost:7500/ai/extract \
-H "Content-Type: application/json" \
-d '{
"inputData": [{"fieldCode": "clue_info", "fieldValue": "..."}],
"outputData": [{"fieldCode": "risk_level"}, {"fieldCode": "target_family_situation"}]
}'
步骤3: 验证测试页面
- 访问
http://localhost:7500/ - 手动添加新模板的字段编码进行测试
- 验证解析和生成功能
步骤4: 验证Swagger文档
- 访问
http://localhost:7500/api-docs - 检查接口文档是否完整
- 测试接口是否正常工作
七、结论
✅ 接口和代码层面
- ✅
field_service.py已修复,支持动态查询多个模板 - ✅
document_service.py已修复,支持从JSON中查找模板 - ✅ Swagger文档无需更新(通用设计)
⚠️ 需要确认
- ⚠️ 数据库数据是否已正确初始化(需要运行初始化脚本)
- ⚠️ 接口功能是否正常工作(需要实际测试)
📝 建议
- 运行
init_pre_interview_risk_assessment_fields.py确保数据已初始化 - 运行
verify_pre_interview_risk_assessment_data.py验证数据完整性 - 进行接口功能测试,确保新模板可以正常使用
八、相关文件
- 初始化脚本:
init_pre_interview_risk_assessment_fields.py - 验证脚本:
verify_pre_interview_risk_assessment_data.py - 综合检查脚本:
check_data_sync_status.py - 服务文件:
services/field_service.py✅ 已修复services/document_service.py✅ 已修复
- 接口文件:
app.py✅ Swagger已配置 - 测试页面:
static/index.html✅ 通用设计
报告生成时间: 2024年12月 检查人员: AI助手