Files
hzdyjs/docs/变更管理/code-adjust-record-2025-07-22-dict-value-mismatch-fix.md
T
2025-07-23 15:20:48 +08:00

2.5 KiB
Raw Blame History

字典值不匹配问题修复记录

修改时间

2025-07-22 15:00:00

变更内容

修复了录取流程管理页面中缴费状态和完成状态字段显示为空或显示不正确的问题。

变更原因

通过检查发现,前端页面和数据库值之间存在不匹配的情况:

  1. 缴费状态(payment_status)字典问题:

    • 虽然已添加了缴费状态字典,但可能由于缓存或其他原因,前端无法正确显示
  2. 完成状态(is_completed)字典不匹配:

    • 数据库中的完成状态值是数字(0,1)
    • 但系统字典sys_yes_no使用的是字符串("Y","N")

影响范围

  1. 录取流程管理页面缴费状态字段的显示
  2. 录取流程管理页面完成状态字段的显示
  3. 字典缓存数据

变更详情

1. 修复完成状态字段的数据类型不匹配

将数据库中的is_completed字段值从数字类型(0,1)更改为字符串类型("N","Y"),以匹配系统字典:

UPDATE zsjy_enrollment_process
SET is_completed = 'N'
WHERE is_completed = 0 OR is_completed IS NULL;

UPDATE zsjy_enrollment_process
SET is_completed = 'Y'
WHERE is_completed = 1;

2. 重置缴费状态字典数据

删除并重新添加缴费状态字典数据,确保字典值正确且格式一致:

DELETE FROM sys_dict_data WHERE dict_type = 'zsjy_payment_status';

INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, create_by, create_time, remark)
VALUES 
(2001, 1, '未缴费', '0', 'zsjy_payment_status', '', 'warning', 'Y', 1, NOW(), '未缴费状态'),
(2002, 2, '已缴费', '1', 'zsjy_payment_status', '', 'success', 'N', 1, NOW(), '已缴费状态');

3. 缓存清理建议

修改了字典数据后,需要清除系统缓存以使修改生效:

redis-cli -h [主机] -p [端口] -a [密码] KEYS "sys_dict:*" | xargs redis-cli -h [主机] -p [端口] -a [密码] DEL

测试方法

  1. 清除浏览器缓存,重新登录系统
  2. 检查录取流程管理页面中的缴费状态和完成状态字段是否正确显示
  3. 特别关注缴费状态为"1"的记录是否显示为"已缴费"
  4. 特别关注完成状态为"Y"的记录是否显示为"是"

注意事项

  1. 此修复涉及数据库值的修改,如有需要可先备份数据
  2. 如果系统使用了缓存(如Redis),修复后需要清除相关缓存
  3. 后续新增的数据应遵循修改后的数据格式(完成状态使用"Y"/"N")