-- 报案类警情登记:案件来源 + 检察院子类型 + 法院移交受案单位 ALTER TABLE t_alarm_report ADD COLUMN IF NOT EXISTS case_source VARCHAR(64) DEFAULT 'party_report'; ALTER TABLE t_alarm_report ADD COLUMN IF NOT EXISTS case_source_sub VARCHAR(64); ALTER TABLE t_alarm_report ADD COLUMN IF NOT EXISTS accepting_unit VARCHAR(200); UPDATE t_alarm_report SET case_source = 'party_report' WHERE case_source IS NULL OR case_source = ''; ALTER TABLE t_alarm_report DROP CONSTRAINT IF EXISTS t_alarm_report_case_source_check; ALTER TABLE t_alarm_report ADD CONSTRAINT t_alarm_report_case_source_check CHECK (case_source IN ( 'party_report', 'admin_transfer', 'court_transfer', 'procuratorate_transfer', 'superior_assign', 'work_discovery', 'other_unit_transfer' )); ALTER TABLE t_alarm_report DROP CONSTRAINT IF EXISTS t_alarm_report_case_source_sub_check; ALTER TABLE t_alarm_report ADD CONSTRAINT t_alarm_report_case_source_sub_check CHECK (case_source_sub IS NULL OR case_source_sub IN ('false_litigation', 'other')); COMMENT ON COLUMN t_alarm_report.case_source IS '案件来源:当事人报案/行政执法机关移交/人民法院移交/人民检察院移交/上级交办/工作中发现/其他单位移交'; COMMENT ON COLUMN t_alarm_report.case_source_sub IS '案件来源子项:检察院移交时 false_litigation-虚假诉讼 other-其他案件'; COMMENT ON COLUMN t_alarm_report.accepting_unit IS '受案单位:人民法院移交时填写'; INSERT INTO t_dict (dict_name, dict_code, remark, disabled_flag, create_time, update_time) SELECT '案件来源', 'CASE_SOURCE', '报案类警情登记-案件来源', false, NOW(), NOW() WHERE NOT EXISTS (SELECT 1 FROM t_dict WHERE dict_code = 'CASE_SOURCE'); DELETE FROM t_dict_data WHERE dict_id = (SELECT dict_id FROM t_dict WHERE dict_code = 'CASE_SOURCE'); SELECT setval( pg_get_serial_sequence('t_dict_data', 'dict_data_id'), COALESCE((SELECT MAX(dict_data_id) FROM t_dict_data), 0) + 1, false ); INSERT INTO t_dict_data (dict_id, data_value, data_label, remark, sort_order, disabled_flag, create_time, update_time) SELECT d.dict_id, v.data_value, v.data_label, '案件来源', v.sort_order, false, NOW(), NOW() FROM t_dict d CROSS JOIN (VALUES ('party_report', '当事人报案', 1), ('admin_transfer', '行政执法机关移交', 2), ('court_transfer', '人民法院移交', 3), ('procuratorate_transfer', '人民检察院移交', 4), ('superior_assign', '上级交办', 5), ('work_discovery', '工作中发现', 6), ('other_unit_transfer', '其他单位移交', 7) ) AS v(data_value, data_label, sort_order) WHERE d.dict_code = 'CASE_SOURCE'; INSERT INTO t_dict (dict_name, dict_code, remark, disabled_flag, create_time, update_time) SELECT '案件来源子项', 'CASE_SOURCE_SUB', '检察院移交子类型', false, NOW(), NOW() WHERE NOT EXISTS (SELECT 1 FROM t_dict WHERE dict_code = 'CASE_SOURCE_SUB'); DELETE FROM t_dict_data WHERE dict_id = (SELECT dict_id FROM t_dict WHERE dict_code = 'CASE_SOURCE_SUB'); SELECT setval( pg_get_serial_sequence('t_dict_data', 'dict_data_id'), COALESCE((SELECT MAX(dict_data_id) FROM t_dict_data), 0) + 1, false ); INSERT INTO t_dict_data (dict_id, data_value, data_label, remark, sort_order, disabled_flag, create_time, update_time) SELECT d.dict_id, v.data_value, v.data_label, '案件来源子项', v.sort_order, false, NOW(), NOW() FROM t_dict d CROSS JOIN (VALUES ('false_litigation', '虚假诉讼案件', 1), ('other', '其他案件', 2) ) AS v(data_value, data_label, sort_order) WHERE d.dict_code = 'CASE_SOURCE_SUB';