| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371 |
- -- ----------------------------
- -- AEGIS 系统数据库脚本
- -- ----------------------------
- -- 设置连接字符集为utf8mb4
- SET NAMES utf8mb4;
- SET CHARACTER_SET_CLIENT = utf8mb4;
- SET CHARACTER_SET_CONNECTION = utf8mb4;
- SET CHARACTER_SET_RESULTS = utf8mb4;
- USE `aegis`;
- -- ----------------------------
- -- 资源模块 - 队伍管理相关表
- -- ----------------------------
- -- 1、应急队伍表
- DROP TABLE IF EXISTS aegis.`resource_team`;
- CREATE TABLE `resource_team` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '队伍ID',
- `team_name` varchar(100) NOT NULL COMMENT '队伍名称',
- `team_type` varchar(32) DEFAULT NULL COMMENT '队伍类型',
- `belong_org_name` varchar(128) DEFAULT NULL COMMENT '所属单位名称(交通委/公安/消防/医疗/社会企业等)',
- `belong_org_type` varchar(32) DEFAULT NULL COMMENT '所属单位类型:transportation/police/firefighting/medical/emergency/company/other',
- `external_flag` char(1) DEFAULT 'Y' COMMENT '是否外部单位:Y-外部联动单位,N-本系统内部单位',
- `status` varchar(16) DEFAULT 'available' COMMENT '状态:available-可用,busy-占用,offline-停用',
- `capabilities` varchar(500) DEFAULT NULL COMMENT '能力标签(JSON数组)',
- `contact_person` varchar(64) DEFAULT NULL COMMENT '联系人',
- `contact_phone` varchar(20) DEFAULT NULL COMMENT '联系电话',
- `contact_address` varchar(255) DEFAULT NULL COMMENT '联系地址',
- `location_name` varchar(128) DEFAULT NULL COMMENT '驻扎点/常驻位置名称(如XX收费站)',
- `longitude` decimal(10,7) DEFAULT NULL COMMENT '经度',
- `latitude` decimal(10,7) DEFAULT NULL COMMENT '纬度',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- PRIMARY KEY (`id`),
- KEY `idx_team_name` (`team_name`),
- KEY `idx_status` (`status`),
- KEY `idx_org_type` (`belong_org_type`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='应急队伍表';
- -- 2、队伍成员表
- DROP TABLE IF EXISTS aegis.`resource_team_member`;
- CREATE TABLE `resource_team_member` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '成员ID',
- `team_id` bigint(20) NOT NULL COMMENT '队伍ID',
- `user_id` bigint(20) DEFAULT NULL COMMENT '关联的系统用户ID',
- `member_name` varchar(64) NOT NULL COMMENT '成员姓名',
- `member_code` varchar(50) DEFAULT NULL COMMENT '成员编号',
- `id_card` varchar(18) DEFAULT NULL COMMENT '身份证号',
- `phone` varchar(20) DEFAULT NULL COMMENT '联系电话',
- `position` varchar(64) DEFAULT NULL COMMENT '职位/角色',
- `specialty` varchar(200) DEFAULT NULL COMMENT '专长',
- `status` varchar(16) DEFAULT 'active' COMMENT '状态:active-在岗,leave-请假,retired-退休',
- `join_date` date DEFAULT NULL COMMENT '加入日期',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- PRIMARY KEY (`id`),
- KEY `idx_team_id` (`team_id`),
- KEY `idx_member_name` (`member_name`),
- KEY `idx_user_id` (`user_id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='队伍成员表';
- -- 3、队伍操作日志表
- DROP TABLE IF EXISTS aegis.`resource_team_log`;
- CREATE TABLE `resource_team_log` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '日志ID',
- `team_id` bigint(20) NOT NULL COMMENT '队伍ID',
- `action` varchar(32) NOT NULL COMMENT '操作类型:create/update/member_add/member_update/member_remove/status_change/requisition_start/requisition_end/dispatch_assign/dispatch_release',
- `from_status` varchar(16) DEFAULT NULL COMMENT '原状态',
- `to_status` varchar(16) DEFAULT NULL COMMENT '新状态',
- `member_id` bigint(20) DEFAULT NULL COMMENT '成员ID(操作成员时)',
- `requisition_id` bigint(20) DEFAULT NULL COMMENT '征用ID(操作征用时)',
- `dispatch_id` bigint(20) DEFAULT NULL COMMENT '调度ID(操作调度时)',
- `event_id` bigint(20) DEFAULT NULL COMMENT '事件ID(操作事件时)',
- `diff` text COMMENT '变更内容(JSON格式)',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- `operator_id` bigint(20) DEFAULT NULL COMMENT '操作人ID',
- `operator_name` varchar(64) DEFAULT NULL COMMENT '操作人姓名',
- `request_id` varchar(64) DEFAULT NULL COMMENT '请求ID(用于追踪)',
- `created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- PRIMARY KEY (`id`),
- KEY `idx_team_id` (`team_id`),
- KEY `idx_action` (`action`),
- KEY `idx_created_at` (`created_at`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='队伍操作日志表';
- -- 4、队伍所属单位类型字典
- INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
- SELECT '队伍所属单位类型', 'team_org_type', '0', 'admin', sysdate(), '资源队伍所属单位类型'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type WHERE dict_type = 'team_org_type');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 1, '交通委', 'transportation', 'team_org_type', '', 'primary', 'N', '0', 'admin', sysdate(), '交通运输委员会'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'team_org_type' AND dict_value = 'transportation');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 2, '公安', 'police', 'team_org_type', '', 'info', 'N', '0', 'admin', sysdate(), '公安机关'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'team_org_type' AND dict_value = 'police');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 3, '消防救援', 'firefighting', 'team_org_type', '', 'danger', 'N', '0', 'admin', sysdate(), '消防救援机构'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'team_org_type' AND dict_value = 'firefighting');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 4, '医疗急救', 'medical', 'team_org_type', '', 'success', 'N', '0', 'admin', sysdate(), '医疗卫生/急救机构'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'team_org_type' AND dict_value = 'medical');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 5, '应急管理', 'emergency', 'team_org_type', '', 'warning', 'N', '0', 'admin', sysdate(), '应急管理部门'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'team_org_type' AND dict_value = 'emergency');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 6, '社会企业', 'company', 'team_org_type', '', 'primary', 'N', '0', 'admin', sysdate(), '社会企业/志愿组织'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'team_org_type' AND dict_value = 'company');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 7, '其他', 'other', 'team_org_type', '', 'default', 'N', '0', 'admin', sysdate(), '其他单位'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'team_org_type' AND dict_value = 'other');
- -- ----------------------------
- -- 预案管理模块
- -- ----------------------------
- DROP TABLE IF EXISTS aegis.`plan`;
- CREATE TABLE `plan` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '预案ID',
- `plan_no` varchar(64) NOT NULL COMMENT '预案编号',
- `plan_name` varchar(200) NOT NULL COMMENT '预案名称',
- `plan_type` varchar(32) DEFAULT NULL COMMENT '预案类型:overall/special',
- `event_type` varchar(64) DEFAULT NULL COMMENT '适用事件类型',
- `event_level` varchar(16) DEFAULT NULL COMMENT '适用事件级别',
- `version` varchar(32) DEFAULT NULL COMMENT '版本号',
- `status` varchar(32) DEFAULT 'draft' COMMENT '状态:draft/approving/published/archived',
- `is_current` tinyint(1) DEFAULT 1 COMMENT '是否当前版本',
- `description` text COMMENT '预案描述',
- `creator_id` bigint(20) DEFAULT NULL COMMENT '创建人ID',
- `approver_id` bigint(20) DEFAULT NULL COMMENT '审批人ID',
- `approval_time` datetime DEFAULT NULL COMMENT '审批时间',
- `publish_time` datetime DEFAULT NULL COMMENT '发布时间',
- `usage_count` int(11) DEFAULT 0 COMMENT '使用次数',
- `last_used_at` datetime DEFAULT NULL COMMENT '最后使用时间',
- `average_rating` decimal(10,2) DEFAULT NULL COMMENT '平均评分',
- `referenced_workbench` varchar(32) DEFAULT NULL COMMENT '最近引用来源:dispatch/disposal',
- `last_feedback_summary` varchar(500) DEFAULT NULL COMMENT '最近反馈摘要',
- `change_log` text COMMENT '变更说明',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- `del_flag` char(1) DEFAULT '0' COMMENT '删除标志',
- PRIMARY KEY (`id`),
- KEY `idx_plan_no` (`plan_no`),
- KEY `idx_plan_status` (`status`),
- KEY `idx_plan_event_type` (`event_type`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='应急预案主表';
- DROP TABLE IF EXISTS aegis.`plan_version`;
- CREATE TABLE `plan_version` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '版本记录ID',
- `plan_id` bigint(20) NOT NULL COMMENT '关联预案ID',
- `version` varchar(32) NOT NULL COMMENT '版本号',
- `parent_plan_id` bigint(20) DEFAULT NULL COMMENT '父版本预案ID',
- `change_log` text COMMENT '变更说明',
- `snapshot` json DEFAULT NULL COMMENT '预案快照JSON',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- `del_flag` char(1) DEFAULT '0' COMMENT '删除标志',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- PRIMARY KEY (`id`),
- KEY `idx_plan_version_plan` (`plan_id`),
- KEY `idx_plan_version_parent` (`parent_plan_id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='预案版本记录表';
- DROP TABLE IF EXISTS aegis.`plan_approval`;
- CREATE TABLE `plan_approval` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '审批记录ID',
- `plan_id` bigint(20) NOT NULL COMMENT '预案ID',
- `approver_id` bigint(20) DEFAULT NULL COMMENT '审批人ID',
- `approver_name` varchar(64) DEFAULT NULL COMMENT '审批人姓名',
- `approval_status` varchar(16) DEFAULT NULL COMMENT '审批状态:approved/rejected',
- `approval_comment` varchar(500) DEFAULT NULL COMMENT '审批意见',
- `approval_time` datetime DEFAULT NULL COMMENT '审批时间',
- `approval_order` int(11) DEFAULT 1 COMMENT '审批顺序',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- `del_flag` char(1) DEFAULT '0' COMMENT '删除标志',
- PRIMARY KEY (`id`),
- KEY `idx_plan_approval_plan` (`plan_id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='预案审批记录表';
- DROP TABLE IF EXISTS aegis.`plan_participant`;
- CREATE TABLE `plan_participant` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '模板ID',
- `plan_id` bigint(20) NOT NULL COMMENT '预案ID',
- `participant_type` varchar(32) NOT NULL COMMENT '执行对象类型:TEAM_MEMBER/EXPERT',
- `reference_team_id` bigint(20) DEFAULT NULL COMMENT '队伍ID(团队成员)',
- `reference_member_id` bigint(20) DEFAULT NULL COMMENT '队伍成员ID',
- `reference_expert_id` bigint(20) DEFAULT NULL COMMENT '专家ID',
- `display_name` varchar(200) DEFAULT NULL COMMENT '展示名称',
- `role` varchar(200) DEFAULT NULL COMMENT '角色/职责',
- `contact_snapshot` text COMMENT '联系方式快照(JSON)',
- `sort_order` int(11) DEFAULT 0 COMMENT '排序',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- `del_flag` char(1) DEFAULT '0' COMMENT '删除标志',
- PRIMARY KEY (`id`),
- KEY `idx_plan_participant_plan` (`plan_id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='预案执行对象模板表';
- DROP TABLE IF EXISTS aegis.`plan_step`;
- CREATE TABLE `plan_step` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '行动项模板ID',
- `plan_id` bigint(20) NOT NULL COMMENT '预案ID',
- `step_name` varchar(200) NOT NULL COMMENT '行动项名称',
- `step_order` int(11) DEFAULT NULL COMMENT '顺序',
- `description` text COMMENT '行动项描述',
- `suggested_participant_id` bigint(20) DEFAULT NULL COMMENT '建议执行方模板ID',
- `estimated_duration` int(11) DEFAULT NULL COMMENT '预计耗时(分钟)',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- `del_flag` char(1) DEFAULT '0' COMMENT '删除标志',
- PRIMARY KEY (`id`),
- KEY `idx_plan_step_plan` (`plan_id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='预案行动项模板表';
- DROP TABLE IF EXISTS aegis.`plan_step_resource`;
- CREATE TABLE `plan_step_resource` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '关联ID',
- `plan_id` bigint(20) NOT NULL COMMENT '预案ID',
- `step_id` bigint(20) NOT NULL COMMENT '行动项ID',
- `resource_type` varchar(32) NOT NULL COMMENT '资源类型:material/equipment/vehicle',
- `resource_ref_id` bigint(20) DEFAULT NULL COMMENT '资源ID',
- `suggested_quantity` int(11) DEFAULT NULL COMMENT '建议数量',
- `required` tinyint(1) DEFAULT 0 COMMENT '是否必需',
- `usage_note` varchar(500) DEFAULT NULL COMMENT '使用说明',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- `del_flag` char(1) DEFAULT '0' COMMENT '删除标志',
- PRIMARY KEY (`id`),
- KEY `idx_plan_step_resource_plan` (`plan_id`),
- KEY `idx_plan_step_resource_step` (`step_id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='行动项资源模板表';
- DROP TABLE IF EXISTS aegis.`plan_usage`;
- CREATE TABLE `plan_usage` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '使用记录ID',
- `plan_id` bigint(20) NOT NULL COMMENT '预案ID',
- `dispatch_task_id` bigint(20) DEFAULT NULL COMMENT '调度任务ID',
- `source` varchar(32) DEFAULT NULL COMMENT '来源:dispatch/disposal',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注/反馈',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- `del_flag` char(1) DEFAULT '0' COMMENT '删除标志',
- PRIMARY KEY (`id`),
- KEY `idx_plan_usage_plan` (`plan_id`),
- KEY `idx_plan_usage_dispatch` (`dispatch_task_id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='预案使用记录表';
- -- ----------------------------
- -- 资源模块 - 仓库管理相关表
- -- ----------------------------
- -- 1、仓库表
- DROP TABLE IF EXISTS aegis.`resource_warehouse`;
- CREATE TABLE `resource_warehouse` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '仓库ID',
- `warehouse_code` varchar(50) NOT NULL COMMENT '仓库编码',
- `warehouse_name` varchar(100) NOT NULL COMMENT '仓库名称',
- `warehouse_type` varchar(32) DEFAULT NULL COMMENT '仓库类型(危化装备/排水设备/交通物资等)',
- `belong_org_name` varchar(128) DEFAULT NULL COMMENT '所属单位名称',
- `belong_org_type` varchar(32) DEFAULT NULL COMMENT '所属单位类型(交通委/应急局/市政/企业等)',
- `address` varchar(500) DEFAULT NULL COMMENT '详细地址',
- `longitude` decimal(10,7) DEFAULT NULL COMMENT '经度(WGS-84)',
- `latitude` decimal(10,7) DEFAULT NULL COMMENT '纬度(WGS-84)',
- `manager` varchar(64) DEFAULT NULL COMMENT '负责人',
- `contact_phone` varchar(20) DEFAULT NULL COMMENT '联系电话',
- `capacity` decimal(10,2) DEFAULT NULL COMMENT '容量(平方米或立方米)',
- `status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
- PRIMARY KEY (`id`),
- UNIQUE KEY `uk_warehouse_code` (`warehouse_code`),
- KEY `idx_warehouse_name` (`warehouse_name`),
- KEY `idx_status` (`status`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='仓库表';
- -- ----------------------------
- -- 资源模块 - 车辆管理相关表
- -- ----------------------------
- -- 1、车辆表
- DROP TABLE IF EXISTS aegis.`resource_vehicle`;
- CREATE TABLE `resource_vehicle` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '车辆ID',
- `vehicle_name` varchar(100) NOT NULL COMMENT '车辆名称',
- `plate_no` varchar(32) DEFAULT NULL COMMENT '车牌号/编号',
- `vehicle_type` varchar(32) DEFAULT NULL COMMENT '车辆类型',
- `team_id` bigint(20) DEFAULT NULL COMMENT '所属队伍ID',
- `status` varchar(16) DEFAULT 'available' COMMENT '状态:available-可用,busy-占用,maintenance-检修,offline-停用,scrap-报废',
- `capabilities` varchar(500) DEFAULT NULL COMMENT '能力标签(JSON数组)',
- `device_id` varchar(64) DEFAULT NULL COMMENT '定位设备ID',
- `device_provider` varchar(32) DEFAULT NULL COMMENT '设备提供商/协议类型',
- `gps_lat` decimal(10,7) DEFAULT NULL COMMENT '最新定位纬度',
- `gps_lng` decimal(10,7) DEFAULT NULL COMMENT '最新定位经度',
- `last_seen_at` datetime DEFAULT NULL COMMENT '最后定位时间',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
- PRIMARY KEY (`id`),
- UNIQUE KEY `uk_plate_no` (`plate_no`),
- KEY `idx_team_id` (`team_id`),
- KEY `idx_status` (`status`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='车辆表';
- -- ----------------------------
- -- 资源模块 - 专家管理相关表
- -- ----------------------------
- -- 1、专家表
- DROP TABLE IF EXISTS aegis.`resource_expert`;
- CREATE TABLE `resource_expert` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '专家ID',
- `expert_name` varchar(64) NOT NULL COMMENT '专家姓名',
- `expert_code` varchar(50) DEFAULT NULL COMMENT '专家编号',
- `id_card` varchar(18) DEFAULT NULL COMMENT '身份证号',
- `organization` varchar(200) DEFAULT NULL COMMENT '所属单位',
- `specialties` varchar(500) DEFAULT NULL COMMENT '专长领域(JSON数组)',
- `phone` varchar(20) DEFAULT NULL COMMENT '联系电话',
- `email` varchar(100) DEFAULT NULL COMMENT '邮箱',
- `sys_user_id` bigint(20) DEFAULT NULL COMMENT '关联系统用户ID',
- `status` varchar(16) DEFAULT 'active' COMMENT '状态:active-启用,inactive-停用,blacklisted-黑名单',
- `rating` int(1) DEFAULT 5 COMMENT '评分(1-5)',
- `capabilities` varchar(500) DEFAULT NULL COMMENT '能力标签(JSON数组)',
- `contacts` text COMMENT '联系方式(JSON格式)',
- `location_name` varchar(255) DEFAULT NULL COMMENT '常驻地点名称/地址描述',
- `longitude` decimal(10,7) DEFAULT NULL COMMENT '经度',
- `latitude` decimal(10,7) DEFAULT NULL COMMENT '纬度',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
- PRIMARY KEY (`id`),
- UNIQUE KEY `uk_expert_code` (`expert_code`),
- UNIQUE KEY `uk_resource_expert_sys_user` (`sys_user_id`),
- KEY `idx_expert_name` (`expert_name`),
- KEY `idx_status` (`status`),
- KEY `idx_rating` (`rating`),
- CONSTRAINT `fk_resource_expert_sys_user` FOREIGN KEY (`sys_user_id`) REFERENCES `sys_user` (`user_id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='专家表';
- -- ----------------------------
- -- 资源模块 - 物资分类管理相关表
- -- ----------------------------
- -- 1、物资分类表
- DROP TABLE IF EXISTS aegis.`resource_material_category`;
- CREATE TABLE `resource_material_category` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '分类ID',
- `parent_id` bigint(20) DEFAULT 0 COMMENT '父分类ID(0表示顶级)',
- `ancestors` varchar(500) DEFAULT '' COMMENT '祖级列表',
- `category_code` varchar(50) NOT NULL COMMENT '分类编码',
- `category_name` varchar(100) NOT NULL COMMENT '分类名称',
- `order_num` int(4) DEFAULT 0 COMMENT '显示顺序',
- `status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
- PRIMARY KEY (`id`),
- UNIQUE KEY `uk_category_code` (`category_code`),
- KEY `idx_parent_id` (`parent_id`),
- KEY `idx_category_name` (`category_name`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='物资分类表';
- -- ----------------------------
- -- 资源模块 - 物资管理相关表
- -- ----------------------------
- -- 1、物资表
- DROP TABLE IF EXISTS aegis.`resource_material`;
- CREATE TABLE `resource_material` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '物资ID',
- `material_code` varchar(50) NOT NULL COMMENT '物资编码',
- `material_name` varchar(200) NOT NULL COMMENT '物资名称',
- `category_id` bigint(20) DEFAULT NULL COMMENT '分类ID',
- `unit` varchar(16) DEFAULT NULL COMMENT '单位',
- `spec` varchar(200) DEFAULT NULL COMMENT '规格',
- `brand` varchar(100) DEFAULT NULL COMMENT '品牌',
- `batch_no` varchar(64) DEFAULT NULL COMMENT '批次号',
- `expire_date` date DEFAULT NULL COMMENT '过期日期',
- `reusable` tinyint(1) DEFAULT 0 COMMENT '是否可重复使用:0-否,1-是',
- `recycle_policy` varchar(200) DEFAULT NULL COMMENT '回收政策',
- `sterilize_required` tinyint(1) DEFAULT 0 COMMENT '是否需要消毒:0-否,1-是',
- `threshold` decimal(10,2) DEFAULT 0.00 COMMENT '报警阈值',
- `locked_qty` decimal(10,2) DEFAULT 0.00 COMMENT '锁定数量',
- `used_qty` decimal(10,2) DEFAULT 0.00 COMMENT '已使用数量',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
- PRIMARY KEY (`id`),
- UNIQUE KEY `uk_material_code` (`material_code`),
- KEY `idx_category_id` (`category_id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='物资表';
- -- 2、物资库存表
- DROP TABLE IF EXISTS aegis.`resource_material_inventory`;
- CREATE TABLE `resource_material_inventory` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '库存ID',
- `material_id` bigint(20) NOT NULL COMMENT '物资ID',
- `warehouse_id` bigint(20) DEFAULT NULL COMMENT '仓库ID',
- `total_qty` decimal(10,2) DEFAULT 0.00 COMMENT '总数量',
- `available_qty` decimal(10,2) DEFAULT 0.00 COMMENT '可用数量',
- `locked_qty` decimal(10,2) DEFAULT 0.00 COMMENT '锁定数量',
- `used_qty` decimal(10,2) DEFAULT 0.00 COMMENT '已使用数量',
- `version` int(11) DEFAULT 1 COMMENT '版本号(乐观锁)',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- PRIMARY KEY (`id`),
- UNIQUE KEY `uk_material_warehouse` (`material_id`, `warehouse_id`),
- KEY `idx_material_id` (`material_id`),
- KEY `idx_warehouse_id` (`warehouse_id`),
- KEY `idx_inventory_alert` (`warehouse_id`, `material_id`, `available_qty`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='物资库存表';
- -- 3、物资使用记录表
- DROP TABLE IF EXISTS aegis.`resource_material_usage`;
- CREATE TABLE `resource_material_usage` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '使用记录ID',
- `material_id` bigint(20) NOT NULL COMMENT '物资ID',
- `warehouse_id` bigint(20) DEFAULT NULL COMMENT '仓库ID',
- `event_id` bigint(20) DEFAULT NULL COMMENT '事件ID',
- `task_id` bigint(20) DEFAULT NULL COMMENT '任务ID',
- `qty` decimal(10,2) NOT NULL COMMENT '数量',
- `action` varchar(16) NOT NULL COMMENT '操作类型:lock-占用,unlock-释放,consume-消耗,return-归还',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- `created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- PRIMARY KEY (`id`),
- KEY `idx_material_id` (`material_id`),
- KEY `idx_warehouse_id` (`warehouse_id`),
- KEY `idx_event_id` (`event_id`),
- KEY `idx_created_at` (`created_at`),
- KEY `idx_action_created_at` (`action`, `created_at`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='物资使用记录表';
- -- ----------------------------
- -- 资源模块 - 专家专长字典数据
- -- ----------------------------
- -- 1、创建专家专长字典类型(如果不存在)
- INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
- SELECT '专家专长', 'expert_specialty', '0', 'admin', sysdate(), '专家专长领域列表'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type WHERE dict_type = 'expert_specialty');
- -- 2、添加专家专长字典数据(如果不存在)
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 1, '应急救援', 'emergency_rescue', 'expert_specialty', '', 'primary', 'N', '0', 'admin', sysdate(), '应急救援'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'expert_specialty' AND dict_value = 'emergency_rescue');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 2, '医疗救护', 'medical_rescue', 'expert_specialty', '', 'success', 'N', '0', 'admin', sysdate(), '医疗救护'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'expert_specialty' AND dict_value = 'medical_rescue');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 3, '消防', 'fire_fighting', 'expert_specialty', '', 'danger', 'N', '0', 'admin', sysdate(), '消防'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'expert_specialty' AND dict_value = 'fire_fighting');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 4, '通信', 'communication', 'expert_specialty', '', 'info', 'N', '0', 'admin', sysdate(), '通信'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'expert_specialty' AND dict_value = 'communication');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 5, '电力', 'power', 'expert_specialty', '', 'warning', 'N', '0', 'admin', sysdate(), '电力'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'expert_specialty' AND dict_value = 'power');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 6, '水利', 'water_conservancy', 'expert_specialty', '', 'primary', 'N', '0', 'admin', sysdate(), '水利'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'expert_specialty' AND dict_value = 'water_conservancy');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 7, '地质', 'geology', 'expert_specialty', '', 'success', 'N', '0', 'admin', sysdate(), '地质'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'expert_specialty' AND dict_value = 'geology');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 8, '气象', 'meteorology', 'expert_specialty', '', 'info', 'N', '0', 'admin', sysdate(), '气象'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'expert_specialty' AND dict_value = 'meteorology');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 9, '交通', 'transportation', 'expert_specialty', '', 'warning', 'N', '0', 'admin', sysdate(), '交通'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'expert_specialty' AND dict_value = 'transportation');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 10, '建筑', 'construction', 'expert_specialty', '', 'primary', 'N', '0', 'admin', sysdate(), '建筑'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'expert_specialty' AND dict_value = 'construction');
- -- ----------------------------
- -- 资源模块 - 专家状态字典数据
- -- ----------------------------
- -- 1、创建专家状态字典类型(如果不存在)
- INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
- SELECT '专家状态', 'expert_status', '0', 'admin', sysdate(), '专家状态列表'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type WHERE dict_type = 'expert_status');
- -- 2、添加专家状态字典数据(如果不存在)
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 1, '启用', 'active', 'expert_status', '', 'success', 'Y', '0', 'admin', sysdate(), '专家启用状态'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'expert_status' AND dict_value = 'active');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 2, '停用', 'inactive', 'expert_status', '', 'info', 'N', '0', 'admin', sysdate(), '专家停用状态'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'expert_status' AND dict_value = 'inactive');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 3, '黑名单', 'blacklisted', 'expert_status', '', 'danger', 'N', '0', 'admin', sysdate(), '专家黑名单状态'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'expert_status' AND dict_value = 'blacklisted');
- -- ----------------------------
- -- 资源模块 - 装备管理字典数据
- -- ----------------------------
- -- 1、创建装备状态字典类型(如果不存在)
- INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
- SELECT '装备状态', 'equipment_status', '0', 'admin', sysdate(), '装备状态列表'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type WHERE dict_type = 'equipment_status');
- -- 2、添加装备状态字典数据(如果不存在)
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 1, '可用', 'available', 'equipment_status', '', 'success', 'Y', '0', 'admin', sysdate(), '装备可用状态'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'equipment_status' AND dict_value = 'available');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 2, '占用', 'busy', 'equipment_status', '', 'warning', 'N', '0', 'admin', sysdate(), '装备占用状态'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'equipment_status' AND dict_value = 'busy');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 3, '维修', 'repair', 'equipment_status', '', 'info', 'N', '0', 'admin', sysdate(), '装备维修状态'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'equipment_status' AND dict_value = 'repair');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 4, '报废', 'scrap', 'equipment_status', '', 'danger', 'N', '0', 'admin', sysdate(), '装备报废状态(终态)'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'equipment_status' AND dict_value = 'scrap');
- -- 3、创建装备类型字典类型(如果不存在)
- INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
- SELECT '装备类型', 'equipment_type', '0', 'admin', sysdate(), '装备类型列表'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type WHERE dict_type = 'equipment_type');
- -- 4、添加装备类型字典数据(如果不存在)
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 1, '通信设备', 'communication', 'equipment_type', '', 'info', 'Y', '0', 'admin', sysdate(), '通信类装备'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'equipment_type' AND dict_value = 'communication');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 2, '救援设备', 'rescue', 'equipment_type', '', 'danger', 'N', '0', 'admin', sysdate(), '救援类装备'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'equipment_type' AND dict_value = 'rescue');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 3, '医疗设备', 'medical', 'equipment_type', '', 'success', 'N', '0', 'admin', sysdate(), '医疗类装备'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'equipment_type' AND dict_value = 'medical');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 4, '工程设备', 'engineering', 'equipment_type', '', 'warning', 'N', '0', 'admin', sysdate(), '工程类装备'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'equipment_type' AND dict_value = 'engineering');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 5, '运输设备', 'transportation', 'equipment_type', '', 'primary', 'N', '0', 'admin', sysdate(), '运输类装备'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'equipment_type' AND dict_value = 'transportation');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 6, '监测设备', 'monitoring', 'equipment_type', '', 'info', 'N', '0', 'admin', sysdate(), '监测类装备'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'equipment_type' AND dict_value = 'monitoring');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 7, '其他', 'other', 'equipment_type', '', '', 'N', '0', 'admin', sysdate(), '其他类型装备'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'equipment_type' AND dict_value = 'other');
- -- ----------------------------
- -- 资源模块 - 仓库管理字典数据
- -- ----------------------------
- -- 1、创建仓库状态字典类型(如果不存在)
- INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
- SELECT '仓库状态', 'warehouse_status', '0', 'admin', sysdate(), '仓库状态列表'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type WHERE dict_type = 'warehouse_status');
- -- 2、添加仓库状态字典数据(如果不存在)
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 1, '正常', '0', 'warehouse_status', '', 'success', 'Y', '0', 'admin', sysdate(), '仓库正常状态'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'warehouse_status' AND dict_value = '0');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 2, '停用', '1', 'warehouse_status', '', 'danger', 'N', '0', 'admin', sysdate(), '仓库停用状态'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'warehouse_status' AND dict_value = '1');
- -- 3、创建仓库类型字典类型(如果不存在)
- INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
- SELECT '仓库类型', 'warehouse_type', '0', 'admin', sysdate(), '仓库类型列表'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type WHERE dict_type = 'warehouse_type');
- -- 4、添加仓库类型字典数据(如果不存在)
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 1, '中心仓库', 'center', 'warehouse_type', '', 'primary', 'Y', '0', 'admin', sysdate(), '中心仓库'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'warehouse_type' AND dict_value = 'center');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 2, '临时仓库', 'temporary', 'warehouse_type', '', 'warning', 'N', '0', 'admin', sysdate(), '临时仓库'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'warehouse_type' AND dict_value = 'temporary');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 3, '应急仓库', 'emergency', 'warehouse_type', '', 'danger', 'N', '0', 'admin', sysdate(), '应急仓库'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'warehouse_type' AND dict_value = 'emergency');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 4, '储备仓库', 'reserve', 'warehouse_type', '', 'info', 'N', '0', 'admin', sysdate(), '储备仓库'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'warehouse_type' AND dict_value = 'reserve');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 5, '其他', 'other', 'warehouse_type', '', '', 'N', '0', 'admin', sysdate(), '其他类型仓库'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'warehouse_type' AND dict_value = 'other');
- -- ----------------------------
- -- 资源模块 - 装备管理相关表
- -- ----------------------------
- -- 1、装备表
- DROP TABLE IF EXISTS aegis.`resource_equipment`;
- CREATE TABLE `resource_equipment` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '装备ID',
- `equipment_code` varchar(50) NOT NULL COMMENT '装备编码',
- `equipment_name` varchar(200) NOT NULL COMMENT '装备名称',
- `equipment_type` varchar(64) DEFAULT NULL COMMENT '装备类型',
- `brand` varchar(100) DEFAULT NULL COMMENT '品牌',
- `model` varchar(100) DEFAULT NULL COMMENT '型号',
- `team_id` bigint(20) DEFAULT NULL COMMENT '所属队伍ID',
- `warehouse_id` bigint(20) DEFAULT NULL COMMENT '所属仓库ID',
- `status` varchar(16) DEFAULT 'available' COMMENT '状态:available-可用,busy-占用,repair-维修,scrap-报废',
- `capabilities` varchar(500) DEFAULT NULL COMMENT '能力标签(JSON数组)',
- `purchase_date` date DEFAULT NULL COMMENT '采购日期',
- `warranty_date` date DEFAULT NULL COMMENT '保修到期日期',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
- PRIMARY KEY (`id`),
- UNIQUE KEY `uk_equipment_code` (`equipment_code`),
- KEY `idx_equipment_name` (`equipment_name`),
- KEY `idx_team_id` (`team_id`),
- KEY `idx_warehouse_id` (`warehouse_id`),
- KEY `idx_status` (`status`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='装备表';
- -- 2、装备操作日志表
- DROP TABLE IF EXISTS aegis.`resource_equipment_log`;
- CREATE TABLE `resource_equipment_log` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '日志ID',
- `equipment_id` bigint(20) NOT NULL COMMENT '装备ID',
- `action` varchar(32) NOT NULL COMMENT '操作类型:assign/release/send_repair/finish_repair/scrap',
- `from_status` varchar(16) DEFAULT NULL COMMENT '原状态',
- `to_status` varchar(16) DEFAULT NULL COMMENT '新状态',
- `dispatch_id` bigint(20) DEFAULT NULL COMMENT '调度ID(操作调度时)',
- `event_id` bigint(20) DEFAULT NULL COMMENT '事件ID(操作事件时)',
- `diff` text COMMENT '变更内容(JSON格式)',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- `operator_id` bigint(20) DEFAULT NULL COMMENT '操作人ID',
- `operator_name` varchar(64) DEFAULT NULL COMMENT '操作人姓名',
- `request_id` varchar(64) DEFAULT NULL COMMENT '请求ID(用于追踪)',
- `created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- PRIMARY KEY (`id`),
- KEY `idx_equipment_id` (`equipment_id`),
- KEY `idx_action` (`action`),
- KEY `idx_created_at` (`created_at`),
- KEY `idx_action_created_at` (`action`, `created_at`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='装备操作日志表';
- -- ----------------------------
- -- 资源模块 - 供应商管理相关表
- -- ----------------------------
- -- 1、供应商表
- DROP TABLE IF EXISTS aegis.`resource_supplier`;
- CREATE TABLE `resource_supplier` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '供应商ID',
- `supplier_code` varchar(50) NOT NULL COMMENT '供应商编码',
- `supplier_name` varchar(200) NOT NULL COMMENT '供应商名称',
- `credit_code` varchar(64) DEFAULT NULL COMMENT '统一社会信用代码',
- `category` varchar(64) DEFAULT NULL COMMENT '供应商分类',
- `area` varchar(100) DEFAULT NULL COMMENT '所在区域',
- `contact_person` varchar(64) DEFAULT NULL COMMENT '联系人',
- `contact_phone` varchar(20) DEFAULT NULL COMMENT '联系电话',
- `email` varchar(100) DEFAULT NULL COMMENT '邮箱',
- `address` varchar(500) DEFAULT NULL COMMENT '地址',
- `status` varchar(16) DEFAULT 'active' COMMENT '状态:active-启用,inactive-停用,blacklisted-黑名单',
- `rating` int(1) DEFAULT 5 COMMENT '评分(1-5星)',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
- PRIMARY KEY (`id`),
- UNIQUE KEY `uk_supplier_code` (`supplier_code`),
- KEY `idx_supplier_name` (`supplier_name`),
- KEY `idx_category` (`category`),
- KEY `idx_status` (`status`),
- KEY `idx_rating` (`rating`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='供应商表';
- -- 2、供应商资质表
- DROP TABLE IF EXISTS aegis.`resource_supplier_license`;
- CREATE TABLE `resource_supplier_license` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '资质ID',
- `supplier_id` bigint(20) NOT NULL COMMENT '供应商ID',
- `license_type` varchar(100) NOT NULL COMMENT '资质类型',
- `license_no` varchar(100) DEFAULT NULL COMMENT '资质编号',
- `issuing_authority` varchar(200) DEFAULT NULL COMMENT '发证机关',
- `valid_from` date DEFAULT NULL COMMENT '有效期开始日期',
- `valid_to` date DEFAULT NULL COMMENT '有效期结束日期',
- `attachment_url` varchar(500) DEFAULT NULL COMMENT '附件URL(文件ID)',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- PRIMARY KEY (`id`),
- KEY `idx_supplier_id` (`supplier_id`),
- KEY `idx_license_type` (`license_type`),
- KEY `idx_valid_to` (`valid_to`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='供应商资质表';
- -- ----------------------------
- -- 资源模块 - 摄像头管理相关表
- -- ----------------------------
- -- 摄像头表
- DROP TABLE IF EXISTS aegis.`camera`;
- CREATE TABLE `camera` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '摄像头ID',
- `camera_code` varchar(64) NOT NULL COMMENT '摄像头编码/设备ID',
- `camera_name` varchar(100) NOT NULL COMMENT '摄像头名称',
- `protocol` varchar(32) DEFAULT NULL COMMENT '协议:rtsp/gb28181/rtmp/onvif',
- `org_name` varchar(100) DEFAULT NULL COMMENT '所属机构',
- `longitude` decimal(10,7) DEFAULT NULL COMMENT '经度',
- `latitude` decimal(10,7) DEFAULT NULL COMMENT '纬度',
- `address` varchar(200) DEFAULT NULL COMMENT '地址',
- `status` varchar(16) DEFAULT 'offline' COMMENT '状态:online/offline',
- `extra_config` text COMMENT '扩展配置(JSON字符串)',
- `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- PRIMARY KEY (`id`),
- KEY `idx_protocol` (`protocol`),
- KEY `idx_status` (`status`),
- KEY `idx_org_name` (`org_name`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='摄像头表';
- -- ----------------------------
- -- 资源模块 - 采购管理相关表
- -- ----------------------------
- -- 1、采购申请表
- DROP TABLE IF EXISTS aegis.`resource_procurement`;
- CREATE TABLE `resource_procurement` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '采购ID',
- `procurement_no` varchar(50) NOT NULL COMMENT '采购编号',
- `title` varchar(200) NOT NULL COMMENT '采购标题',
- `urgency` varchar(16) DEFAULT 'normal' COMMENT '紧急程度:low-低,normal-普通,high-高,urgent-紧急',
- `status` varchar(16) DEFAULT 'draft' COMMENT '状态:draft-草稿,submitted-已提交,approved-已审核,rejected-已驳回,in_progress-进行中,received-已入库',
- `awarded_supplier_id` bigint(20) DEFAULT NULL COMMENT '中标供应商ID',
- `awarded_at` datetime DEFAULT NULL COMMENT '中标时间',
- `approver_id` bigint(20) DEFAULT NULL COMMENT '审核人ID',
- `approver_name` varchar(64) DEFAULT NULL COMMENT '审核人姓名',
- `approved_at` datetime DEFAULT NULL COMMENT '审核时间',
- `approval_comment` varchar(500) DEFAULT NULL COMMENT '审核意见',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
- PRIMARY KEY (`id`),
- UNIQUE KEY `uk_procurement_no` (`procurement_no`),
- KEY `idx_status` (`status`),
- KEY `idx_urgency` (`urgency`),
- KEY `idx_awarded_supplier_id` (`awarded_supplier_id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='采购申请表';
- -- 2、采购明细表
- DROP TABLE IF EXISTS aegis.`resource_procurement_item`;
- CREATE TABLE `resource_procurement_item` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '明细ID',
- `procurement_id` bigint(20) NOT NULL COMMENT '采购申请ID',
- `category` varchar(16) NOT NULL COMMENT '分类:material-物资,equipment-装备',
- `spec` varchar(500) DEFAULT NULL COMMENT '规格描述',
- `qty` decimal(10,2) NOT NULL COMMENT '数量',
- `unit` varchar(16) DEFAULT NULL COMMENT '单位',
- `is_reusable` tinyint(1) DEFAULT 0 COMMENT '是否可重复使用:0-否,1-是',
- `target_material_id` bigint(20) DEFAULT NULL COMMENT '目标物资ID(入库时关联)',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- PRIMARY KEY (`id`),
- KEY `idx_procurement_id` (`procurement_id`),
- KEY `idx_category` (`category`),
- KEY `idx_target_material_id` (`target_material_id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='采购明细表';
- -- 3、供应商报价表
- DROP TABLE IF EXISTS aegis.`resource_procurement_quote`;
- CREATE TABLE `resource_procurement_quote` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '报价ID',
- `procurement_id` bigint(20) NOT NULL COMMENT '采购申请ID',
- `supplier_id` bigint(20) NOT NULL COMMENT '供应商ID',
- `total_price` decimal(10,2) NOT NULL COMMENT '总价',
- `eta` varchar(100) DEFAULT NULL COMMENT '预计交货时间',
- `note` varchar(500) DEFAULT NULL COMMENT '报价说明',
- `is_awarded` tinyint(1) DEFAULT 0 COMMENT '是否中标:0-未中标,1-已中标',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- PRIMARY KEY (`id`),
- KEY `idx_procurement_id` (`procurement_id`),
- KEY `idx_supplier_id` (`supplier_id`),
- KEY `idx_is_awarded` (`is_awarded`),
- UNIQUE KEY `uk_procurement_supplier` (`procurement_id`, `supplier_id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='供应商报价表';
- -- ----------------------------
- -- 资源模块 - 征用管理相关表
- -- ----------------------------
- -- 1、征用申请表
- DROP TABLE IF EXISTS aegis.`resource_requisition`;
- CREATE TABLE `resource_requisition` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '征用ID',
- `team_id` bigint(20) NOT NULL COMMENT '队伍ID',
- `requisition_no` varchar(50) NOT NULL COMMENT '征用编号',
- `reason` varchar(500) DEFAULT NULL COMMENT '征用原因',
- `status` varchar(16) DEFAULT 'draft' COMMENT '状态:draft-草稿,approved-已审批,active-进行中,ended-已结束,rejected-已驳回',
- `start_at` datetime DEFAULT NULL COMMENT '开始时间',
- `end_at` datetime DEFAULT NULL COMMENT '结束时间',
- `approver_id` bigint(20) DEFAULT NULL COMMENT '审批人ID',
- `approver_name` varchar(64) DEFAULT NULL COMMENT '审批人姓名',
- `approved_at` datetime DEFAULT NULL COMMENT '审批时间',
- `approval_comment` varchar(500) DEFAULT NULL COMMENT '审批意见',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
- PRIMARY KEY (`id`),
- UNIQUE KEY `uk_requisition_no` (`requisition_no`),
- KEY `idx_team_id` (`team_id`),
- KEY `idx_status` (`status`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='征用申请表';
- -- 2、征用协议表
- DROP TABLE IF EXISTS aegis.`resource_requisition_agreement`;
- CREATE TABLE `resource_requisition_agreement` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '协议ID',
- `requisition_id` bigint(20) NOT NULL COMMENT '征用ID',
- `service_scope` varchar(500) DEFAULT NULL COMMENT '服务范围',
- `billing_type` varchar(16) DEFAULT 'hour' COMMENT '计费方式:hour-按小时,day-按天,task-按任务',
- `unit_price` decimal(10,2) DEFAULT NULL COMMENT '单价',
- `currency` varchar(16) DEFAULT 'CNY' COMMENT '币种',
- `effective_from` datetime DEFAULT NULL COMMENT '生效开始时间',
- `effective_to` datetime DEFAULT NULL COMMENT '生效结束时间',
- `terms` text COMMENT '协议条款',
- `attachment_url` varchar(500) DEFAULT NULL COMMENT '附件URL(文件ID)',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- PRIMARY KEY (`id`),
- KEY `idx_requisition_id` (`requisition_id`),
- KEY `idx_effective_from` (`effective_from`),
- KEY `idx_effective_to` (`effective_to`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='征用协议表';
- -- 3、补偿记录表
- DROP TABLE IF EXISTS aegis.`resource_requisition_compensation`;
- CREATE TABLE `resource_requisition_compensation` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '补偿ID',
- `requisition_id` bigint(20) NOT NULL COMMENT '征用ID',
- `workload` decimal(10,2) DEFAULT NULL COMMENT '工作量(小时/天/任务数)',
- `workload_unit` varchar(16) DEFAULT NULL COMMENT '工作量单位:hour/day/task',
- `unit_price` decimal(10,2) NOT NULL COMMENT '单价',
- `amount` decimal(10,2) NOT NULL COMMENT '金额',
- `currency` varchar(16) DEFAULT 'CNY' COMMENT '币种',
- `invoice_no` varchar(100) DEFAULT NULL COMMENT '发票号',
- `paid_at` datetime DEFAULT NULL COMMENT '支付时间',
- `status` varchar(16) DEFAULT 'pending' COMMENT '状态:pending-待结算,settled-已结算',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- PRIMARY KEY (`id`),
- KEY `idx_requisition_id` (`requisition_id`),
- KEY `idx_status` (`status`),
- KEY `idx_paid_at` (`paid_at`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='补偿记录表';
- -- ----------------------------
- -- 通知模块 - 通知管理相关表
- -- ----------------------------
- -- 1、通知消息表
- DROP TABLE IF EXISTS aegis.`sys_notification`;
- CREATE TABLE `sys_notification` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '通知ID',
- `title` varchar(200) NOT NULL COMMENT '通知标题',
- `content` text COMMENT '通知内容',
- `template_id` bigint(20) DEFAULT NULL COMMENT '模板ID(可选)',
- `channel` varchar(16) NOT NULL DEFAULT 'station' COMMENT '通知渠道:station-站内消息,sms-短信,email-邮件,push-推送',
- `receiver_id` bigint(20) NOT NULL COMMENT '接收者用户ID',
- `receiver_name` varchar(64) DEFAULT NULL COMMENT '接收者姓名(冗余字段)',
- `sender_id` bigint(20) DEFAULT NULL COMMENT '发送者用户ID(系统通知为NULL)',
- `sender_name` varchar(64) DEFAULT NULL COMMENT '发送者姓名(冗余字段)',
- `business_type` varchar(64) DEFAULT NULL COMMENT '业务类型:plan_publish-预案发布,plan_approve-预案审批,inventory_alert-库存报警等',
- `business_id` bigint(20) DEFAULT NULL COMMENT '业务ID(如预案ID、事件ID等)',
- `status` varchar(16) DEFAULT 'pending' COMMENT '通知状态:pending-待发送,sent-已发送,read-已读,failed-发送失败',
- `read_time` datetime DEFAULT NULL COMMENT '已读时间',
- `send_time` datetime DEFAULT NULL COMMENT '发送时间',
- `expire_time` datetime DEFAULT NULL COMMENT '过期时间(可选)',
- `priority` varchar(16) DEFAULT 'normal' COMMENT '优先级:low-低,normal-普通,high-高,urgent-紧急',
- `extra_data` text COMMENT '扩展数据(JSON格式)',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
- PRIMARY KEY (`id`),
- KEY `idx_receiver_id` (`receiver_id`),
- KEY `idx_status` (`status`),
- KEY `idx_channel` (`channel`),
- KEY `idx_business` (`business_type`, `business_id`),
- KEY `idx_create_time` (`create_time`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='通知消息表';
- -- 2、通知模板表
- DROP TABLE IF EXISTS aegis.`sys_notification_template`;
- CREATE TABLE `sys_notification_template` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '模板ID',
- `template_code` varchar(64) NOT NULL COMMENT '模板编码(唯一)',
- `template_name` varchar(100) NOT NULL COMMENT '模板名称',
- `business_type` varchar(64) NOT NULL COMMENT '业务类型:plan_publish-预案发布,plan_approve-预案审批等',
- `channel` varchar(16) NOT NULL COMMENT '通知渠道:station-站内消息,sms-短信,email-邮件',
- `title_template` varchar(200) NOT NULL COMMENT '标题模板(支持变量:${变量名})',
- `content_template` text NOT NULL COMMENT '内容模板(支持变量:${变量名})',
- `variables` text COMMENT '模板变量说明(JSON格式)',
- `status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- PRIMARY KEY (`id`),
- UNIQUE KEY `uk_template_code` (`template_code`),
- KEY `idx_business_type` (`business_type`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='通知模板表';
- -- 3、通知渠道配置表
- DROP TABLE IF EXISTS aegis.`sys_notification_channel_config`;
- CREATE TABLE `sys_notification_channel_config` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '配置ID',
- `channel` varchar(16) NOT NULL COMMENT '通知渠道:sms-短信,email-邮件',
- `config_key` varchar(64) NOT NULL COMMENT '配置键',
- `config_value` text COMMENT '配置值(加密存储)',
- `description` varchar(200) DEFAULT NULL COMMENT '配置说明',
- `status` char(1) DEFAULT '0' COMMENT '状态(0启用 1停用)',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- PRIMARY KEY (`id`),
- UNIQUE KEY `uk_channel_key` (`channel`, `config_key`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='通知渠道配置表';
- -- ----------------------------
- -- 文件模块 - 文件管理相关表
- -- ----------------------------
- -- 文件信息表
- DROP TABLE IF EXISTS aegis.`sys_file_info`;
- CREATE TABLE `sys_file_info` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '文件ID',
- `file_path` varchar(500) NOT NULL COMMENT '文件存储路径(相对路径,如:/profile/upload/2025/11/05/test_123456.pdf)',
- `original_name` varchar(255) NOT NULL COMMENT '原始文件名',
- `file_size` bigint(20) NOT NULL COMMENT '文件大小(字节)',
- `file_type` varchar(64) DEFAULT NULL COMMENT '文件类型(扩展名,如jpg、pdf)',
- `mime_type` varchar(128) DEFAULT NULL COMMENT 'MIME类型',
- `upload_user_id` bigint(20) DEFAULT NULL COMMENT '上传者用户ID',
- `upload_user_name` varchar(64) DEFAULT NULL COMMENT '上传者姓名(冗余字段)',
- `file_category` varchar(64) DEFAULT NULL COMMENT '文件分类:document-文档,image-图片,video-视频等',
- `status` varchar(16) DEFAULT 'normal' COMMENT '文件状态:normal-正常,deleted-已删除',
- `download_count` int(11) DEFAULT 0 COMMENT '下载次数',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
- PRIMARY KEY (`id`),
- KEY `idx_file_path` (`file_path`),
- KEY `idx_upload_user` (`upload_user_id`),
- KEY `idx_create_time` (`create_time`),
- KEY `idx_status` (`status`),
- KEY `idx_file_category` (`file_category`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='文件信息表';
- -- ----------------------------
- -- 应急调度模块 - 值守接警相关表
- -- ----------------------------
- -- 1、值班排班表
- DROP TABLE IF EXISTS aegis.`duty_shift`;
- CREATE TABLE `duty_shift` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '排班ID',
- `shift_date` date NOT NULL COMMENT '排班日期',
- `shift_type` varchar(32) DEFAULT NULL COMMENT '班次类型:day-白班,night-夜班,all-全天',
- `start_time` time DEFAULT NULL COMMENT '开始时间',
- `end_time` time DEFAULT NULL COMMENT '结束时间',
- `status` varchar(16) DEFAULT 'active' COMMENT '状态:active-有效,cancelled-已取消',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
- PRIMARY KEY (`id`),
- KEY `idx_shift_date` (`shift_date`),
- KEY `idx_shift_type` (`shift_type`),
- KEY `idx_status` (`status`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='值班排班表';
- -- 1.1、排班成员关联表
- DROP TABLE IF EXISTS aegis.`duty_shift_member`;
- CREATE TABLE `duty_shift_member` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '关联ID',
- `shift_id` bigint(20) NOT NULL COMMENT '排班ID',
- `user_id` bigint(20) NOT NULL COMMENT '用户ID',
- `role` varchar(32) DEFAULT NULL COMMENT '角色:leader-组长,member-成员',
- `phone` varchar(20) DEFAULT NULL COMMENT '联系电话(冗余字段,记录排班时的联系方式)',
- `check_in_time` datetime DEFAULT NULL COMMENT '签到时间',
- `check_out_time` datetime DEFAULT NULL COMMENT '签退时间',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- PRIMARY KEY (`id`),
- KEY `idx_shift_id` (`shift_id`),
- KEY `idx_user_id` (`user_id`),
- UNIQUE KEY `uk_shift_user` (`shift_id`, `user_id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='排班成员关联表';
- -- 2、警情主表
- DROP TABLE IF EXISTS aegis.`duty_alert`;
- CREATE TABLE `duty_alert` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '警情ID',
- `alert_no` varchar(50) NOT NULL COMMENT '警情编号(唯一)',
- `source_channel` varchar(32) DEFAULT NULL COMMENT '来源渠道(字典:alert_source_channel)',
- `caller_number` varchar(20) DEFAULT NULL COMMENT '来电号码(电话渠道使用:122、12345、110)',
- `source_ext_info` text COMMENT '来源扩展信息(JSON格式,不同渠道存储不同信息:转办渠道-转办单位/转办人/转办时间,监测渠道-设备ID/监测数据,媒体渠道-媒体来源/链接/发布时间等)',
- `summary` varchar(1000) DEFAULT NULL COMMENT '警情摘要',
- `initial_level` varchar(16) DEFAULT NULL COMMENT '初判等级:level1-一级,level2-二级,level3-三级,level4-四级',
- `status` varchar(32) DEFAULT 'draft' COMMENT '警情状态:draft-草稿,pending_review-待审核,reviewed-已审核,transferred-已转警,converted-已转事件,closed-已关闭(审核详情见duty_alert_log,转警详情见duty_alert_transfer,转事件详情见duty_alert_convert)',
- `occurred_at` datetime DEFAULT NULL COMMENT '发生时间',
- `location` varchar(255) DEFAULT NULL COMMENT '发生地点',
- `longitude` decimal(10,7) DEFAULT NULL COMMENT '经度',
- `latitude` decimal(10,7) DEFAULT NULL COMMENT '纬度',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
- PRIMARY KEY (`id`),
- UNIQUE KEY `uk_alert_no` (`alert_no`),
- KEY `idx_source_channel` (`source_channel`),
- KEY `idx_status` (`status`),
- KEY `idx_occurred_at` (`occurred_at`),
- KEY `idx_caller_number` (`caller_number`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='警情主表';
- -- 3、警情操作日志表
- DROP TABLE IF EXISTS aegis.`duty_alert_log`;
- CREATE TABLE `duty_alert_log` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '日志ID',
- `alert_id` bigint(20) NOT NULL COMMENT '警情ID',
- `action` varchar(32) NOT NULL COMMENT '操作类型:alert_create/alert_update/alert_close/alert_review_submit/alert_review_approve/alert_review_reject/transfer_apply/transfer_approve/transfer_reject/transfer_feedback/transfer_processed/convert_apply/convert_approve/convert_reject/convert_event_created 等',
- `payload` text COMMENT '操作详情(JSON格式)',
- `operator_id` bigint(20) DEFAULT NULL COMMENT '操作人ID',
- `operator_name` varchar(64) DEFAULT NULL COMMENT '操作人姓名',
- `created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- PRIMARY KEY (`id`),
- KEY `idx_alert_id` (`alert_id`),
- KEY `idx_action` (`action`),
- KEY `idx_operator_id` (`operator_id`),
- KEY `idx_created_at` (`created_at`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='警情操作日志表';
- -- 4、转警记录表
- DROP TABLE IF EXISTS aegis.`duty_alert_transfer`;
- CREATE TABLE `duty_alert_transfer` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '转警记录ID',
- `alert_id` bigint(20) NOT NULL COMMENT '警情ID',
- `target_org` varchar(200) NOT NULL COMMENT '目标单位名称',
- `contact` varchar(64) NOT NULL COMMENT '联系人姓名',
- `mobile` varchar(20) NOT NULL COMMENT '联系电话',
- `transfer_desc` varchar(500) DEFAULT NULL COMMENT '转警说明/原因',
- `transfer_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '转警时间',
- `feedback` text COMMENT '回执反馈内容',
- `feedback_time` datetime DEFAULT NULL COMMENT '反馈时间',
- `status` varchar(32) DEFAULT 'pending_review' COMMENT '转警状态:pending_review-待审核,pending_feedback-待反馈,feedback_received-已反馈,processed-已处理,rejected-已驳回',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- PRIMARY KEY (`id`),
- KEY `idx_alert_id` (`alert_id`),
- KEY `idx_status` (`status`),
- KEY `idx_transfer_time` (`transfer_time`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='转警记录表';
- -- 5、转事件记录表
- DROP TABLE IF EXISTS aegis.`duty_alert_convert`;
- CREATE TABLE `duty_alert_convert` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '转事件记录ID',
- `alert_id` bigint(20) NOT NULL COMMENT '警情ID',
- `event_id` bigint(20) DEFAULT NULL COMMENT '事件ID(审核通过后创建事件时填充)',
- `convert_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '转事件时间',
- `convert_reason` varchar(500) DEFAULT NULL COMMENT '转事件原因/说明',
- `operator_id` bigint(20) DEFAULT NULL COMMENT '操作人ID',
- `operator_name` varchar(64) DEFAULT NULL COMMENT '操作人姓名',
- `review_required` tinyint(1) DEFAULT 0 COMMENT '是否需要审核:0-否,1-是',
- `review_status` varchar(16) DEFAULT 'none' COMMENT '审核状态:none-无需审核,pending-待审核,approved-已审核,rejected-已驳回',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- PRIMARY KEY (`id`),
- UNIQUE KEY `uk_alert_id` (`alert_id`),
- KEY `idx_event_id` (`event_id`),
- KEY `idx_operator_id` (`operator_id`),
- KEY `idx_convert_time` (`convert_time`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='转事件记录表';
- -- ----------------------------
- -- 应急调度模块 - 事件管理相关表
- -- ----------------------------
- -- 1、事件主表
- DROP TABLE IF EXISTS aegis.`event`;
- CREATE TABLE `event` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '事件ID',
- `event_no` varchar(50) NOT NULL COMMENT '事件编号(唯一)',
- `title` varchar(200) NOT NULL COMMENT '事件标题',
- `type` varchar(64) NOT NULL COMMENT '事件类型(字典值)',
- `level` varchar(32) NOT NULL COMMENT '事件级别:I/II/III/IV',
- `status` varchar(32) NOT NULL DEFAULT 'draft' COMMENT '事件状态:draft-草稿,pending-待处理,processing-处理中,completed-已完成,archived-归档',
- `important_flag` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否重点事件:0-否,1-是',
- `important_by` varchar(64) DEFAULT NULL COMMENT '标记人为重点的操作人',
- `important_time` datetime DEFAULT NULL COMMENT '标记为重点的时间',
- `occurred_at` datetime NOT NULL COMMENT '事件发生时间',
- `location` varchar(255) DEFAULT NULL COMMENT '地点描述',
- `longitude` decimal(10,7) DEFAULT NULL COMMENT '经度',
- `latitude` decimal(10,7) DEFAULT NULL COMMENT '纬度',
- `source` varchar(64) DEFAULT NULL COMMENT '来源渠道:manual-人工录入,alert-接警转入,other-预留',
- `alert_id` bigint(20) DEFAULT NULL COMMENT '接警记录ID(若来自接警转换)',
- `summary` text COMMENT '事件摘要',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
- PRIMARY KEY (`id`),
- UNIQUE KEY `uk_event_no` (`event_no`),
- KEY `idx_type` (`type`),
- KEY `idx_level` (`level`),
- KEY `idx_status` (`status`),
- KEY `idx_occurred_at` (`occurred_at`),
- KEY `idx_alert_id` (`alert_id`),
- CONSTRAINT `fk_event_alert` FOREIGN KEY (`alert_id`) REFERENCES `duty_alert` (`id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='事件主表';
- -- 2、事件日志表
- DROP TABLE IF EXISTS aegis.`event_log`;
- CREATE TABLE `event_log` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '日志ID',
- `event_id` bigint(20) NOT NULL COMMENT '事件ID',
- `action` varchar(64) NOT NULL COMMENT '操作类型:event_created/event_updated/status_changed/dispatch_linked/report_submitted等',
- `payload` text COMMENT '操作详情(JSON格式)',
- `operator_id` bigint(20) DEFAULT NULL COMMENT '操作人ID',
- `operator_name` varchar(64) DEFAULT NULL COMMENT '操作人姓名',
- `created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- PRIMARY KEY (`id`),
- KEY `idx_event_id` (`event_id`),
- KEY `idx_action` (`action`),
- KEY `idx_created_at` (`created_at`),
- CONSTRAINT `fk_event_log_event` FOREIGN KEY (`event_id`) REFERENCES `event` (`id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='事件日志表';
- -- ----------------------------
- -- 应急调度模块 - 上报模板管理
- -- ----------------------------
- -- 上报模板表
- DROP TABLE IF EXISTS aegis.`report_template`;
- CREATE TABLE `report_template` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '模板ID',
- `name` varchar(50) NOT NULL COMMENT '模板名称',
- `description` varchar(200) DEFAULT NULL COMMENT '模板描述',
- `fields` json DEFAULT NULL COMMENT '字段配置(JSON格式,支持嵌套结构:groups, lists, fields)',
- `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- PRIMARY KEY (`id`),
- KEY `idx_name` (`name`),
- KEY `idx_del_flag` (`del_flag`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='上报模板表';
- -- 省厅上报记录表
- DROP TABLE IF EXISTS aegis.`event_province_report`;
- CREATE TABLE `event_province_report` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '上报记录ID',
- `event_id` bigint(20) NOT NULL COMMENT '事件ID(外键关联event.id)',
- `template_id` bigint(20) NOT NULL COMMENT '使用的模板ID(外键关联report_template.id)',
- `report_type` varchar(16) NOT NULL DEFAULT 'initial' COMMENT '上报类型:initial-首次上报,followup-续报',
- `report_sequence` int NOT NULL DEFAULT 1 COMMENT '上报序号(第几次上报,从1开始)',
- `fields` json DEFAULT NULL COMMENT '动态字段数据(JSON格式,根据模板fields结构存储)',
- `status` varchar(32) NOT NULL DEFAULT 'pending' COMMENT '上报状态:pending-待上报,submitting-上报中,success-成功,failed-失败,retry-重试中',
- `request_payload` json DEFAULT NULL COMMENT '请求数据(发送给省厅的完整请求体,JSON格式)',
- `response_payload` json DEFAULT NULL COMMENT '响应数据(省厅返回的响应体,JSON格式)',
- `retry_count` int DEFAULT 0 COMMENT '重试次数(最多3次)',
- `last_retry_time` datetime DEFAULT NULL COMMENT '最后重试时间',
- `error_message` varchar(500) DEFAULT NULL COMMENT '错误信息(失败时记录)',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
- PRIMARY KEY (`id`),
- KEY `idx_event_id` (`event_id`),
- KEY `idx_template_id` (`template_id`),
- KEY `idx_status` (`status`),
- KEY `idx_report_type` (`report_type`),
- KEY `idx_create_time` (`create_time`),
- CONSTRAINT `fk_province_report_event` FOREIGN KEY (`event_id`) REFERENCES `event` (`id`),
- CONSTRAINT `fk_province_report_template` FOREIGN KEY (`template_id`) REFERENCES `report_template` (`id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='省厅上报记录表';
- -- ----------------------------
- -- 资源模块 - 物资管理字典数据
- -- ----------------------------
- -- 1、创建物资单位字典类型(如果不存在)
- INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
- SELECT '物资单位', 'material_unit', '0', 'admin', sysdate(), '物资单位列表'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type WHERE dict_type = 'material_unit');
- -- 2、添加物资单位字典数据(如果不存在)
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 1, '个', 'piece', 'material_unit', '', '', 'Y', '0', 'admin', sysdate(), '个'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'material_unit' AND dict_value = 'piece');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 2, '件', 'item', 'material_unit', '', '', 'N', '0', 'admin', sysdate(), '件'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'material_unit' AND dict_value = 'item');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 3, '箱', 'box', 'material_unit', '', '', 'N', '0', 'admin', sysdate(), '箱'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'material_unit' AND dict_value = 'box');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 4, '包', 'pack', 'material_unit', '', '', 'N', '0', 'admin', sysdate(), '包'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'material_unit' AND dict_value = 'pack');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 5, '升', 'liter', 'material_unit', '', '', 'N', '0', 'admin', sysdate(), '升'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'material_unit' AND dict_value = 'liter');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 6, '公斤', 'kilogram', 'material_unit', '', '', 'N', '0', 'admin', sysdate(), '公斤'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'material_unit' AND dict_value = 'kilogram');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 7, '吨', 'ton', 'material_unit', '', '', 'N', '0', 'admin', sysdate(), '吨'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'material_unit' AND dict_value = 'ton');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 8, '米', 'meter', 'material_unit', '', '', 'N', '0', 'admin', sysdate(), '米'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'material_unit' AND dict_value = 'meter');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 9, '平方米', 'square_meter', 'material_unit', '', '', 'N', '0', 'admin', sysdate(), '平方米'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'material_unit' AND dict_value = 'square_meter');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 10, '立方米', 'cubic_meter', 'material_unit', '', '', 'N', '0', 'admin', sysdate(), '立方米'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'material_unit' AND dict_value = 'cubic_meter');
- -- 3、创建是否可重复使用字典类型(如果不存在)
- INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
- SELECT '是否可重复使用', 'material_reusable', '0', 'admin', sysdate(), '是否可重复使用列表'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type WHERE dict_type = 'material_reusable');
- -- 4、添加是否可重复使用字典数据(如果不存在)
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 1, '否', '0', 'material_reusable', '', '', 'Y', '0', 'admin', sysdate(), '不可重复使用'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'material_reusable' AND dict_value = '0');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 2, '是', '1', 'material_reusable', '', '', 'N', '0', 'admin', sysdate(), '可重复使用'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'material_reusable' AND dict_value = '1');
- -- 5、创建是否需要消毒字典类型(如果不存在)
- INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
- SELECT '是否需要消毒', 'material_sterilize_required', '0', 'admin', sysdate(), '是否需要消毒列表'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type WHERE dict_type = 'material_sterilize_required');
- -- 6、添加是否需要消毒字典数据(如果不存在)
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 1, '否', '0', 'material_sterilize_required', '', '', 'Y', '0', 'admin', sysdate(), '不需要消毒'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'material_sterilize_required' AND dict_value = '0');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 2, '是', '1', 'material_sterilize_required', '', '', 'N', '0', 'admin', sysdate(), '需要消毒'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'material_sterilize_required' AND dict_value = '1');
- -- 7、创建库存调整原因字典类型(如果不存在)
- INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
- SELECT '库存调整原因', 'inventory_adjustment_reason', '0', 'admin', sysdate(), '库存调整原因列表'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type WHERE dict_type = 'inventory_adjustment_reason');
- -- 8、添加库存调整原因字典数据(如果不存在)
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 1, '盘点', 'physical_count', 'inventory_adjustment_reason', '', 'primary', 'N', '0', 'admin', sysdate(), '物理盘点差异'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'inventory_adjustment_reason' AND dict_value = 'physical_count');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 2, '损失', 'loss', 'inventory_adjustment_reason', '', 'danger', 'N', '0', 'admin', sysdate(), '库存损失'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'inventory_adjustment_reason' AND dict_value = 'loss');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 3, '损坏', 'damage', 'inventory_adjustment_reason', '', 'warning', 'N', '0', 'admin', sysdate(), '物资损坏'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'inventory_adjustment_reason' AND dict_value = 'damage');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 4, '盗窃', 'theft', 'inventory_adjustment_reason', '', 'danger', 'N', '0', 'admin', sysdate(), '盗窃损失'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'inventory_adjustment_reason' AND dict_value = 'theft');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 5, '发现', 'found', 'inventory_adjustment_reason', '', 'success', 'N', '0', 'admin', sysdate(), '发现未登记物资'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'inventory_adjustment_reason' AND dict_value = 'found');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 6, '过期', 'expired', 'inventory_adjustment_reason', '', 'warning', 'N', '0', 'admin', sysdate(), '物资过期'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'inventory_adjustment_reason' AND dict_value = 'expired');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 7, '淘汰', 'obsolete', 'inventory_adjustment_reason', '', 'info', 'N', '0', 'admin', sysdate(), '物资淘汰'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'inventory_adjustment_reason' AND dict_value = 'obsolete');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 8, '更正', 'correction', 'inventory_adjustment_reason', '', '', 'N', '0', 'admin', sysdate(), '数据更正'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'inventory_adjustment_reason' AND dict_value = 'correction');
- -- ----------------------------
- -- 资源模块 - 供应商管理字典配置
- -- ----------------------------
- -- 1、创建供应商状态字典类型(如果不存在)
- INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
- SELECT '供应商状态', 'supplier_status', '0', 'admin', sysdate(), '供应商状态列表'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type WHERE dict_type = 'supplier_status');
- -- 2、添加供应商状态字典数据(如果不存在)
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 1, '启用', 'active', 'supplier_status', '', 'success', 'Y', '0', 'admin', sysdate(), '供应商启用状态'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'supplier_status' AND dict_value = 'active');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 2, '停用', 'inactive', 'supplier_status', '', 'info', 'N', '0', 'admin', sysdate(), '供应商停用状态'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'supplier_status' AND dict_value = 'inactive');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 3, '黑名单', 'blacklisted', 'supplier_status', '', 'danger', 'N', '0', 'admin', sysdate(), '供应商黑名单状态'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'supplier_status' AND dict_value = 'blacklisted');
- -- 3、创建供应商分类字典类型(如果不存在)
- INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
- SELECT '供应商分类', 'supplier_category', '0', 'admin', sysdate(), '供应商分类列表'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type WHERE dict_type = 'supplier_category');
- -- 4、添加供应商分类字典数据(如果不存在)
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 1, '设备供应商', 'equipment', 'supplier_category', '', 'primary', 'Y', '0', 'admin', sysdate(), '设备类供应商'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'supplier_category' AND dict_value = 'equipment');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 2, '物资供应商', 'material', 'supplier_category', '', 'success', 'N', '0', 'admin', sysdate(), '物资类供应商'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'supplier_category' AND dict_value = 'material');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 3, '服务供应商', 'service', 'supplier_category', '', 'info', 'N', '0', 'admin', sysdate(), '服务类供应商'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'supplier_category' AND dict_value = 'service');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 4, '其他', 'other', 'supplier_category', '', '', 'N', '0', 'admin', sysdate(), '其他类型供应商'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'supplier_category' AND dict_value = 'other');
- -- 5、创建供应商所在区域字典类型(如果不存在)
- INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
- SELECT '供应商所在区域', 'supplier_area', '0', 'admin', sysdate(), '供应商所在区域列表'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type WHERE dict_type = 'supplier_area');
- -- 6、添加供应商所在区域字典数据(如果不存在)
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 1, '华东', 'east', 'supplier_area', '', 'primary', 'Y', '0', 'admin', sysdate(), '华东地区'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'supplier_area' AND dict_value = 'east');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 2, '华南', 'south', 'supplier_area', '', 'success', 'N', '0', 'admin', sysdate(), '华南地区'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'supplier_area' AND dict_value = 'south');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 3, '华北', 'north', 'supplier_area', '', 'info', 'N', '0', 'admin', sysdate(), '华北地区'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'supplier_area' AND dict_value = 'north');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 4, '西南', 'southwest', 'supplier_area', '', 'warning', 'N', '0', 'admin', sysdate(), '西南地区'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'supplier_area' AND dict_value = 'southwest');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 5, '西北', 'northwest', 'supplier_area', '', '', 'N', '0', 'admin', sysdate(), '西北地区'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'supplier_area' AND dict_value = 'northwest');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 6, '东北', 'northeast', 'supplier_area', '', '', 'N', '0', 'admin', sysdate(), '东北地区'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'supplier_area' AND dict_value = 'northeast');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 7, '华中', 'central', 'supplier_area', '', '', 'N', '0', 'admin', sysdate(), '华中地区'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'supplier_area' AND dict_value = 'central');
- -- ----------------------------
- -- 应急调度模块 - 调度任务相关表
- -- ----------------------------
- -- 1、调度任务主表
- DROP TABLE IF EXISTS aegis.`dispatch_task`;
- CREATE TABLE `dispatch_task` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '任务ID',
- `task_no` varchar(64) NOT NULL COMMENT '任务编号(唯一)',
- `event_id` bigint(20) DEFAULT NULL COMMENT '关联事件ID',
- `name` varchar(200) NOT NULL COMMENT '任务名称',
- `status` varchar(32) NOT NULL DEFAULT 'draft' COMMENT '任务状态:draft/published/in_progress/closed',
- `plan_template_id` bigint(20) DEFAULT NULL COMMENT '预案模板ID',
- `description` text COMMENT '任务描述',
- `assignee_id` bigint(20) DEFAULT NULL COMMENT '责任人/调度员ID',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
- PRIMARY KEY (`id`),
- UNIQUE KEY `uk_dispatch_task_no` (`task_no`),
- KEY `idx_dispatch_task_event` (`event_id`),
- KEY `idx_dispatch_task_status` (`status`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='调度任务表';
- -- 2、调度任务行动项表
- DROP TABLE IF EXISTS aegis.`dispatch_task_step`;
- CREATE TABLE `dispatch_task_step` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '行动项ID',
- `task_id` bigint(20) NOT NULL COMMENT '任务ID',
- `step_order` int(11) DEFAULT NULL COMMENT '步骤顺序',
- `title` varchar(200) DEFAULT NULL COMMENT '标题',
- `description` text COMMENT '行动项描述',
- `status` varchar(32) DEFAULT 'pending' COMMENT '状态:pending/in_progress/completed/failed',
- `executor_id` bigint(20) DEFAULT NULL COMMENT '执行方参与记录ID(引用 dispatch_task_participant.id)',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
- PRIMARY KEY (`id`),
- KEY `idx_dispatch_step_task` (`task_id`),
- KEY `idx_dispatch_step_status` (`status`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='调度任务行动项表';
- -- 3、调度任务参与方表
- DROP TABLE IF EXISTS aegis.`dispatch_task_participant`;
- CREATE TABLE `dispatch_task_participant` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '参与方ID',
- `task_id` bigint(20) NOT NULL COMMENT '任务ID',
- `person_id` bigint(20) DEFAULT NULL COMMENT '人员ID(引用资源模块)',
- `team_id` bigint(20) DEFAULT NULL COMMENT '所属队伍ID',
- `person_snapshot` text COMMENT '人员快照(JSON)',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
- PRIMARY KEY (`id`),
- KEY `idx_dispatch_participant_task` (`task_id`),
- KEY `idx_dispatch_participant_person` (`person_id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='调度任务参与方表';
- -- 4、调度任务处置记录表
- DROP TABLE IF EXISTS aegis.`dispatch_task_disposal`;
- CREATE TABLE `dispatch_task_disposal` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '处置记录ID',
- `task_id` bigint(20) NOT NULL COMMENT '任务ID',
- `step_id` bigint(20) DEFAULT NULL COMMENT '关联行动项ID',
- `participant_id` bigint(20) DEFAULT NULL COMMENT '参与方ID',
- `description` text COMMENT '处置描述',
- `outcome` varchar(32) DEFAULT NULL COMMENT '处置结果:success/partial/failed',
- `attachment_ids` text COMMENT '附件ID列表(JSON)',
- `location_snapshot` text COMMENT '位置快照(JSON)',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
- PRIMARY KEY (`id`),
- KEY `idx_dispatch_disposal_task` (`task_id`),
- KEY `idx_dispatch_disposal_participant` (`participant_id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='调度任务处置记录表';
- -- 5、调度任务与资源 usage 关联表
- DROP TABLE IF EXISTS aegis.`dispatch_resource_usage_link`;
- CREATE TABLE `dispatch_resource_usage_link` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '关联ID',
- `task_id` bigint(20) NOT NULL COMMENT '任务ID',
- `step_id` bigint(20) DEFAULT NULL COMMENT '关联的行动项ID(可选,null表示任务级资源,非null表示行动项级资源)',
- `resource_type` varchar(32) NOT NULL COMMENT '资源类型:equipment/material/vehicle',
- `resource_id` bigint(20) DEFAULT NULL COMMENT '资源ID',
- `usage_record_id` bigint(20) DEFAULT NULL COMMENT '资源模块 usage 记录ID',
- `status` varchar(32) DEFAULT NULL COMMENT '调拨状态快照',
- `note` text COMMENT '备注/上下文信息',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
- PRIMARY KEY (`id`),
- KEY `idx_dispatch_resource_task` (`task_id`),
- KEY `idx_dispatch_resource_step` (`step_id`),
- KEY `idx_dispatch_resource_type` (`resource_type`),
- KEY `idx_dispatch_resource_usage` (`usage_record_id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='调度任务与资源使用关联表';
- -- 6、调度任务操作日志表
- DROP TABLE IF EXISTS aegis.`dispatch_task_log`;
- CREATE TABLE `dispatch_task_log` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '日志ID',
- `task_id` bigint(20) NOT NULL COMMENT '任务ID',
- `action` varchar(64) NOT NULL COMMENT '操作类型',
- `payload` text COMMENT '操作详情(JSON)',
- `operator_id` bigint(20) DEFAULT NULL COMMENT '操作人ID',
- `operator_name` varchar(64) DEFAULT NULL COMMENT '操作人姓名',
- `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- PRIMARY KEY (`id`),
- KEY `idx_dispatch_log_task` (`task_id`),
- KEY `idx_dispatch_log_action` (`action`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='调度任务操作日志表';
- -- ----------------------------
- -- 资源模块 - 采购管理字典数据
- -- ----------------------------
- -- 1、创建采购状态字典类型(如果不存在)
- INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
- SELECT '采购状态', 'procurement_status', '0', 'admin', sysdate(), '采购申请状态列表'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type WHERE dict_type = 'procurement_status');
- -- 2、添加采购状态字典数据(如果不存在)
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 1, '草稿', 'draft', 'procurement_status', '', 'info', 'N', '0', 'admin', sysdate(), '草稿状态'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'procurement_status' AND dict_value = 'draft');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 2, '已提交', 'submitted', 'procurement_status', '', 'primary', 'N', '0', 'admin', sysdate(), '已提交审核'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'procurement_status' AND dict_value = 'submitted');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 3, '已审核', 'approved', 'procurement_status', '', 'success', 'N', '0', 'admin', sysdate(), '已审核通过'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'procurement_status' AND dict_value = 'approved');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 4, '已驳回', 'rejected', 'procurement_status', '', 'warning', 'N', '0', 'admin', sysdate(), '已驳回'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'procurement_status' AND dict_value = 'rejected');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 5, '进行中', 'in_progress', 'procurement_status', '', '', 'N', '0', 'admin', sysdate(), '采购进行中'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'procurement_status' AND dict_value = 'in_progress');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 6, '已入库', 'received', 'procurement_status', '', 'success', 'N', '0', 'admin', sysdate(), '已入库'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'procurement_status' AND dict_value = 'received');
- -- 3、创建紧急程度字典类型(如果不存在)
- INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
- SELECT '紧急程度', 'procurement_urgency', '0', 'admin', sysdate(), '采购申请紧急程度列表'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type WHERE dict_type = 'procurement_urgency');
- -- 4、添加紧急程度字典数据(如果不存在)
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 1, '低', 'low', 'procurement_urgency', '', 'info', 'N', '0', 'admin', sysdate(), '低紧急程度'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'procurement_urgency' AND dict_value = 'low');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 2, '普通', 'normal', 'procurement_urgency', '', 'primary', 'Y', '0', 'admin', sysdate(), '普通紧急程度'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'procurement_urgency' AND dict_value = 'normal');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 3, '高', 'high', 'procurement_urgency', '', 'warning', 'N', '0', 'admin', sysdate(), '高紧急程度'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'procurement_urgency' AND dict_value = 'high');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 4, '紧急', 'urgent', 'procurement_urgency', '', 'danger', 'N', '0', 'admin', sysdate(), '紧急'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'procurement_urgency' AND dict_value = 'urgent');
- -- ----------------------------
- -- 应急调度模块 - 菜单
- -- ----------------------------
- INSERT INTO aegis.sys_menu (
- menu_id, menu_name, parent_id, order_num, path, component, query, route_name,
- is_frame, is_cache, menu_type, visible, status, perms, icon,
- create_by, create_time, update_by, update_time, remark
- )
- SELECT
- 3303, '调度工作台', 3300, 3, 'dispatch/workbench',
- 'emergency/dispatch/workbench/index', '', 'DispatchWorkbench',
- 1, 0, 'C', '0', '0', 'emergency:dispatch:workbench:view', 'guide',
- 'admin', SYSDATE(), '', NULL, '调度工作台菜单'
- WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 3303);
- INSERT INTO aegis.sys_menu (
- menu_id, menu_name, parent_id, order_num, path, component, query, route_name,
- is_frame, is_cache, menu_type, visible, status, perms, icon,
- create_by, create_time, update_by, update_time, remark
- )
- SELECT
- 3304, '处置工作台', 3300, 4, 'disposal/console',
- 'emergency/disposal/console', '', 'DisposalConsole',
- 1, 0, 'C', '0', '0', 'emergency:disposal:list', 'form',
- 'admin', SYSDATE(), '', NULL, '处置工作台(执行端)'
- WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 3304);
- -- 5、创建采购明细分类字典类型(如果不存在)
- INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
- SELECT '采购明细分类', 'procurement_item_category', '0', 'admin', sysdate(), '采购明细分类列表'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type WHERE dict_type = 'procurement_item_category');
- -- 6、添加采购明细分类字典数据(如果不存在)
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 1, '物资', 'material', 'procurement_item_category', '', 'primary', 'N', '0', 'admin', sysdate(), '物资类'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'procurement_item_category' AND dict_value = 'material');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 2, '装备', 'equipment', 'procurement_item_category', '', 'success', 'N', '0', 'admin', sysdate(), '装备类'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'procurement_item_category' AND dict_value = 'equipment');
- -- ----------------------------
- -- 资源模块 - 征用管理字典数据
- -- ----------------------------
- -- 1、创建征用状态字典类型(如果不存在)
- INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
- SELECT '征用状态', 'requisition_status', '0', 'admin', sysdate(), '征用申请状态列表'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type WHERE dict_type = 'requisition_status');
- -- 2、添加征用状态字典数据(如果不存在)
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 1, '草稿', 'draft', 'requisition_status', '', 'info', 'N', '0', 'admin', sysdate(), '草稿状态'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'requisition_status' AND dict_value = 'draft');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 2, '已审批', 'approved', 'requisition_status', '', 'success', 'N', '0', 'admin', sysdate(), '已审批通过'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'requisition_status' AND dict_value = 'approved');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 3, '进行中', 'active', 'requisition_status', '', 'primary', 'N', '0', 'admin', sysdate(), '征用进行中'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'requisition_status' AND dict_value = 'active');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 4, '已结束', 'ended', 'requisition_status', '', 'success', 'N', '0', 'admin', sysdate(), '征用已结束'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'requisition_status' AND dict_value = 'ended');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 5, '已驳回', 'rejected', 'requisition_status', '', 'warning', 'N', '0', 'admin', sysdate(), '已驳回'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'requisition_status' AND dict_value = 'rejected');
- -- 3、创建计费方式字典类型(如果不存在)
- INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
- SELECT '计费方式', 'requisition_billing_type', '0', 'admin', sysdate(), '征用协议计费方式列表'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type WHERE dict_type = 'requisition_billing_type');
- -- 4、添加计费方式字典数据(如果不存在)
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 1, '按小时', 'hour', 'requisition_billing_type', '', 'primary', 'N', '0', 'admin', sysdate(), '按小时计费'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'requisition_billing_type' AND dict_value = 'hour');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 2, '按天', 'day', 'requisition_billing_type', '', 'primary', 'N', '0', 'admin', sysdate(), '按天计费'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'requisition_billing_type' AND dict_value = 'day');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 3, '按任务', 'task', 'requisition_billing_type', '', 'primary', 'N', '0', 'admin', sysdate(), '按任务计费'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'requisition_billing_type' AND dict_value = 'task');
- -- 5、创建工作量单位字典类型(如果不存在)
- INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
- SELECT '工作量单位', 'requisition_workload_unit', '0', 'admin', sysdate(), '补偿记录工作量单位列表'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type WHERE dict_type = 'requisition_workload_unit');
- -- 6、添加工作量单位字典数据(如果不存在)
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 1, '小时', 'hour', 'requisition_workload_unit', '', 'primary', 'N', '0', 'admin', sysdate(), '小时'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'requisition_workload_unit' AND dict_value = 'hour');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 2, '天', 'day', 'requisition_workload_unit', '', 'primary', 'N', '0', 'admin', sysdate(), '天'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'requisition_workload_unit' AND dict_value = 'day');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 3, '任务', 'task', 'requisition_workload_unit', '', 'primary', 'N', '0', 'admin', sysdate(), '任务'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'requisition_workload_unit' AND dict_value = 'task');
- -- 7、创建补偿状态字典类型(如果不存在)
- INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
- SELECT '补偿状态', 'requisition_compensation_status', '0', 'admin', sysdate(), '补偿记录状态列表'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type WHERE dict_type = 'requisition_compensation_status');
- -- 8、添加补偿状态字典数据(如果不存在)
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 1, '待结算', 'pending', 'requisition_compensation_status', '', 'warning', 'N', '0', 'admin', sysdate(), '待结算'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'requisition_compensation_status' AND dict_value = 'pending');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 2, '已结算', 'settled', 'requisition_compensation_status', '', 'success', 'N', '0', 'admin', sysdate(), '已结算'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'requisition_compensation_status' AND dict_value = 'settled');
- -- 9、创建币种字典类型(如果不存在)
- INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
- SELECT '币种', 'currency', '0', 'admin', sysdate(), '货币类型列表'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type WHERE dict_type = 'currency');
- -- 10、添加币种字典数据(如果不存在)
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 1, '人民币', 'CNY', 'currency', '', 'primary', 'Y', '0', 'admin', sysdate(), '人民币'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'currency' AND dict_value = 'CNY');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 2, '美元', 'USD', 'currency', '', 'primary', 'N', '0', 'admin', sysdate(), '美元'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'currency' AND dict_value = 'USD');
- -- ----------------------------
- -- 应急调度模块 - 值守接警字典数据
- -- ----------------------------
- -- 1、创建警情来源渠道字典类型(如果不存在)
- INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
- SELECT '警情来源渠道', 'alert_source_channel', '0', 'admin', sysdate(), '警情来源渠道列表'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type WHERE dict_type = 'alert_source_channel');
- -- 2、添加警情来源渠道字典数据(如果不存在)
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 1, '122交通事故报警', '122', 'alert_source_channel', '', 'danger', 'Y', '0', 'admin', sysdate(), '122交通事故报警电话'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'alert_source_channel' AND dict_value = '122');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 2, '12345市民热线', '12345', 'alert_source_channel', '', 'primary', 'N', '0', 'admin', sysdate(), '12345市民服务热线'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'alert_source_channel' AND dict_value = '12345');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 3, '110报警电话', '110', 'alert_source_channel', '', 'warning', 'N', '0', 'admin', sysdate(), '110报警电话'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'alert_source_channel' AND dict_value = '110');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 4, '上级转办', 'superior', 'alert_source_channel', '', 'info', 'N', '0', 'admin', sysdate(), '上级部门转办'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'alert_source_channel' AND dict_value = 'superior');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 5, '下级上报', 'subordinate', 'alert_source_channel', '', 'info', 'N', '0', 'admin', sysdate(), '下级部门上报'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'alert_source_channel' AND dict_value = 'subordinate');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 6, '其他部门转办', 'other_dept', 'alert_source_channel', '', 'info', 'N', '0', 'admin', sysdate(), '其他部门转办'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'alert_source_channel' AND dict_value = 'other_dept');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 7, '系统监测', 'monitor', 'alert_source_channel', '', 'success', 'N', '0', 'admin', sysdate(), '系统自动监测'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'alert_source_channel' AND dict_value = 'monitor');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 8, '媒体舆情', 'media', 'alert_source_channel', '', 'warning', 'N', '0', 'admin', sysdate(), '媒体舆情'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'alert_source_channel' AND dict_value = 'media');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 9, '手工录入', 'manual', 'alert_source_channel', '', '', 'N', '0', 'admin', sysdate(), '手工录入'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'alert_source_channel' AND dict_value = 'manual');
- -- 3、创建班次类型字典类型(如果不存在)
- INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
- SELECT '班次类型', 'duty_shift_type', '0', 'admin', sysdate(), '值班排班班次类型列表'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type WHERE dict_type = 'duty_shift_type');
- -- 4、添加班次类型字典数据(如果不存在)
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 1, '白班', 'day', 'duty_shift_type', '', 'primary', 'N', '0', 'admin', sysdate(), '白班'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'duty_shift_type' AND dict_value = 'day');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 2, '夜班', 'night', 'duty_shift_type', '', 'info', 'N', '0', 'admin', sysdate(), '夜班'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'duty_shift_type' AND dict_value = 'night');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 3, '全天', 'all', 'duty_shift_type', '', 'success', 'N', '0', 'admin', sysdate(), '全天'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'duty_shift_type' AND dict_value = 'all');
- -- 5、创建排班状态字典类型(如果不存在)
- INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
- SELECT '排班状态', 'duty_shift_status', '0', 'admin', sysdate(), '值班排班状态列表'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type WHERE dict_type = 'duty_shift_status');
- -- 6、添加排班状态字典数据(如果不存在)
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 1, '有效', 'active', 'duty_shift_status', '', 'success', 'Y', '0', 'admin', sysdate(), '排班有效状态'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'duty_shift_status' AND dict_value = 'active');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 2, '已取消', 'cancelled', 'duty_shift_status', '', 'danger', 'N', '0', 'admin', sysdate(), '排班已取消状态'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'duty_shift_status' AND dict_value = 'cancelled');
- -- 7、创建排班成员角色字典类型(如果不存在)
- INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
- SELECT '排班成员角色', 'duty_shift_member_role', '0', 'admin', sysdate(), '排班成员角色列表'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type WHERE dict_type = 'duty_shift_member_role');
- -- 8、添加排班成员角色字典数据(如果不存在)
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 1, '组长', 'leader', 'duty_shift_member_role', '', 'warning', 'N', '0', 'admin', sysdate(), '排班组长'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'duty_shift_member_role' AND dict_value = 'leader');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 2, '成员', 'member', 'duty_shift_member_role', '', 'primary', 'Y', '0', 'admin', sysdate(), '排班成员'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'duty_shift_member_role' AND dict_value = 'member');
- -- ----------------------------
- -- 应急调度模块 - 菜单初始化
- -- ----------------------------
- INSERT INTO sys_menu (
- menu_id, menu_name, parent_id, order_num, path, component, query, route_name,
- is_frame, is_cache, menu_type, visible, status, perms, icon,
- create_by, create_time, update_by, update_time, remark
- )
- SELECT
- 3300, '应急调度', 0, 1, 'duty', NULL, '', '',
- 1, 0, 'M', '0', '0', '', 'guide',
- 'admin', sysdate(), '', NULL, '应急调度目录'
- WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 3300);
- INSERT INTO sys_menu (
- menu_id, menu_name, parent_id, order_num, path, component, query, route_name,
- is_frame, is_cache, menu_type, visible, status, perms, icon,
- create_by, create_time, update_by, update_time, remark
- )
- SELECT
- 3301, '排班管理', 3300, 1, 'shift', 'duty/shift/index', '', 'DutyShift',
- 1, 0, 'C', '0', '0', 'emergency:duty:shift', 'date',
- 'admin', sysdate(), '', NULL, '值守接警排班管理'
- WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 3301);
- INSERT INTO sys_menu (
- menu_id, menu_name, parent_id, order_num, path, component, query, route_name,
- is_frame, is_cache, menu_type, visible, status, perms, icon,
- create_by, create_time, update_by, update_time, remark
- )
- SELECT
- 3302, '接警工作台', 3300, 2, 'alert/console', 'duty/alert/console', '', 'DutyAlertConsole',
- 1, 0, 'C', '0', '0', 'emergency:duty:console', 'phone',
- 'admin', sysdate(), '', NULL, '接警工作台(静态版)'
- WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 3302);
- -- 数据报送目录与页面
- INSERT INTO sys_menu (
- menu_id, menu_name, parent_id, order_num, path, component, query, route_name,
- is_frame, is_cache, menu_type, visible, status, perms, icon,
- create_by, create_time, update_by, update_time, remark
- )
- SELECT
- 3350, '数据报送', 0, 2, 'data-reporting', NULL, '', '',
- 1, 0, 'M', '0', '0', '', 'international',
- 'admin', sysdate(), '', NULL, '数据报送一级目录'
- WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 3350);
- INSERT INTO sys_menu (
- menu_id, menu_name, parent_id, order_num, path, component, query, route_name,
- is_frame, is_cache, menu_type, visible, status, perms, icon,
- create_by, create_time, update_by, update_time, remark
- )
- SELECT
- 3351, '上级报送', 3350, 1, 'province', 'emergency/report/province/index', '', 'EmergencyProvinceReporting',
- 1, 0, 'C', '0', '0', 'emergency:data:province', 'upload',
- 'admin', sysdate(), '', NULL, '上级报送列表'
- WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 3351);
- INSERT INTO sys_menu (
- menu_id, menu_name, parent_id, order_num, path, component, query, route_name,
- is_frame, is_cache, menu_type, visible, status, perms, icon,
- create_by, create_time, update_by, update_time, remark
- )
- SELECT
- 3352, '模板配置', 3350, 2, 'templates', 'emergency/report/template/index', '', 'EmergencyTemplateConfig',
- 1, 0, 'C', '0', '0', 'emergency:data:template', 'form',
- 'admin', sysdate(), '', NULL, '上级报送模板配置'
- WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 3352);
- -- 预案管理菜单
- INSERT INTO sys_menu (
- menu_id, menu_name, parent_id, order_num, path, component, query, route_name,
- is_frame, is_cache, menu_type, visible, status, perms, icon,
- create_by, create_time, update_by, update_time, remark
- )
- SELECT
- 3360, '预案管理', 0, 3, 'plan', 'emergency/plan/index', '', 'PlanCenter',
- 1, 0, 'C', '0', '0', 'emergency:plan:list', 'documentation',
- 'admin', sysdate(), '', NULL, '预案管理'
- WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 3360);
- -- 预案按钮权限(用于权限控制,不在导航菜单显示)
- INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name,
- is_frame, is_cache, menu_type, visible, status, perms, icon,
- create_by, create_time, update_by, update_time, remark)
- SELECT 3364, '预案新增', 3360, 1, '#', NULL, '', '',
- 1, 0, 'F', '0', '0', 'emergency:plan:add', '#',
- 'admin', sysdate(), '', NULL, '预案新增按钮'
- WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 3364);
- INSERT INTO sys_menu (
- menu_id, menu_name, parent_id, order_num, path, component, query, route_name,
- is_frame, is_cache, menu_type, visible, status, perms, icon,
- create_by, create_time, update_by, update_time, remark)
- SELECT 3365, '预案编辑', 3360, 2, '#', NULL, '', '',
- 1, 0, 'F', '0', '0', 'emergency:plan:edit', '#',
- 'admin', sysdate(), '', NULL, '预案编辑按钮'
- WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 3365);
- INSERT INTO sys_menu (
- menu_id, menu_name, parent_id, order_num, path, component, query, route_name,
- is_frame, is_cache, menu_type, visible, status, perms, icon,
- create_by, create_time, update_by, update_time, remark)
- SELECT 3366, '预案删除', 3360, 3, '#', NULL, '', '',
- 1, 0, 'F', '0', '0', 'emergency:plan:remove', '#',
- 'admin', sysdate(), '', NULL, '预案删除按钮'
- WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 3366);
- INSERT INTO sys_menu (
- menu_id, menu_name, parent_id, order_num, path, component, query, route_name,
- is_frame, is_cache, menu_type, visible, status, perms, icon,
- create_by, create_time, update_by, update_time, remark)
- SELECT 3367, '预案发布', 3360, 4, '#', NULL, '', '',
- 1, 0, 'F', '0', '0', 'emergency:plan:publish', '#',
- 'admin', sysdate(), '', NULL, '预案发布按钮'
- WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 3367);
- INSERT INTO sys_menu (
- menu_id, menu_name, parent_id, order_num, path, component, query, route_name,
- is_frame, is_cache, menu_type, visible, status, perms, icon,
- create_by, create_time, update_by, update_time, remark)
- SELECT 3363, '预案查询', 3360, 5, '#', NULL, '', '',
- 1, 0, 'F', '0', '0', 'emergency:plan:query', '#',
- 'admin', sysdate(), '', NULL, '预案查询按钮'
- WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 3363);
- INSERT INTO sys_menu (
- menu_id, menu_name, parent_id, order_num, path, component, query, route_name,
- is_frame, is_cache, menu_type, visible, status, perms, icon,
- create_by, create_time, update_by, update_time, remark)
- SELECT 3368, '执行对象查看', 3360, 6, '#', NULL, '', '',
- 1, 0, 'F', '0', '0', 'emergency:plan:participant:list', '#',
- 'admin', sysdate(), '', NULL, '执行对象列表'
- WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 3368);
- INSERT INTO sys_menu (
- menu_id, menu_name, parent_id, order_num, path, component, query, route_name,
- is_frame, is_cache, menu_type, visible, status, perms, icon,
- create_by, create_time, update_by, update_time, remark)
- SELECT 3369, '执行对象新增', 3360, 7, '#', NULL, '', '',
- 1, 0, 'F', '0', '0', 'emergency:plan:participant:add', '#',
- 'admin', sysdate(), '', NULL, '执行对象新增'
- WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 3369);
- INSERT INTO sys_menu (
- menu_id, menu_name, parent_id, order_num, path, component, query, route_name,
- is_frame, is_cache, menu_type, visible, status, perms, icon,
- create_by, create_time, update_by, update_time, remark)
- SELECT 3370, '执行对象编辑', 3360, 8, '#', NULL, '', '',
- 1, 0, 'F', '0', '0', 'emergency:plan:participant:edit', '#',
- 'admin', sysdate(), '', NULL, '执行对象编辑'
- WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 3370);
- INSERT INTO sys_menu (
- menu_id, menu_name, parent_id, order_num, path, component, query, route_name,
- is_frame, is_cache, menu_type, visible, status, perms, icon,
- create_by, create_time, update_by, update_time, remark)
- SELECT 3371, '执行对象删除', 3360, 9, '#', NULL, '', '',
- 1, 0, 'F', '0', '0', 'emergency:plan:participant:remove', '#',
- 'admin', sysdate(), '', NULL, '执行对象删除'
- WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 3371);
- INSERT INTO sys_menu (
- menu_id, menu_name, parent_id, order_num, path, component, query, route_name,
- is_frame, is_cache, menu_type, visible, status, perms, icon,
- create_by, create_time, update_by, update_time, remark)
- SELECT 3372, '行动项查看', 3360, 10, '#', NULL, '', '',
- 1, 0, 'F', '0', '0', 'emergency:plan:step:list', '#',
- 'admin', sysdate(), '', NULL, '行动项查看'
- WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 3372);
- INSERT INTO sys_menu (
- menu_id, menu_name, parent_id, order_num, path, component, query, route_name,
- is_frame, is_cache, menu_type, visible, status, perms, icon,
- create_by, create_time, update_by, update_time, remark)
- SELECT 3373, '行动项新增', 3360, 11, '#', NULL, '', '',
- 1, 0, 'F', '0', '0', 'emergency:plan:step:add', '#',
- 'admin', sysdate(), '', NULL, '行动项新增'
- WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 3373);
- INSERT INTO sys_menu (
- menu_id, menu_name, parent_id, order_num, path, component, query, route_name,
- is_frame, is_cache, menu_type, visible, status, perms, icon,
- create_by, create_time, update_by, update_time, remark)
- SELECT 3374, '行动项编辑', 3360, 12, '#', NULL, '', '',
- 1, 0, 'F', '0', '0', 'emergency:plan:step:edit', '#',
- 'admin', sysdate(), '', NULL, '行动项编辑'
- WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 3374);
- INSERT INTO sys_menu (
- menu_id, menu_name, parent_id, order_num, path, component, query, route_name,
- is_frame, is_cache, menu_type, visible, status, perms, icon,
- create_by, create_time, update_by, update_time, remark)
- SELECT 3375, '行动项删除', 3360, 13, '#', NULL, '', '',
- 1, 0, 'F', '0', '0', 'emergency:plan:step:remove', '#',
- 'admin', sysdate(), '', NULL, '行动项删除'
- WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 3375);
- INSERT INTO sys_menu (
- menu_id, menu_name, parent_id, order_num, path, component, query, route_name,
- is_frame, is_cache, menu_type, visible, status, perms, icon,
- create_by, create_time, update_by, update_time, remark)
- SELECT 3376, '资源查看', 3360, 14, '#', NULL, '', '',
- 1, 0, 'F', '0', '0', 'emergency:plan:resource:list', '#',
- 'admin', sysdate(), '', NULL, '资源查看'
- WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 3376);
- INSERT INTO sys_menu (
- menu_id, menu_name, parent_id, order_num, path, component, query, route_name,
- is_frame, is_cache, menu_type, visible, status, perms, icon,
- create_by, create_time, update_by, update_time, remark)
- SELECT 3377, '资源新增', 3360, 15, '#', NULL, '', '',
- 1, 0, 'F', '0', '0', 'emergency:plan:resource:add', '#',
- 'admin', sysdate(), '', NULL, '资源新增'
- WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 3377);
- INSERT INTO sys_menu (
- menu_id, menu_name, parent_id, order_num, path, component, query, route_name,
- is_frame, is_cache, menu_type, visible, status, perms, icon,
- create_by, create_time, update_by, update_time, remark)
- SELECT 3378, '资源编辑', 3360, 16, '#', NULL, '', '',
- 1, 0, 'F', '0', '0', 'emergency:plan:resource:edit', '#',
- 'admin', sysdate(), '', NULL, '资源编辑'
- WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 3378);
- INSERT INTO sys_menu (
- menu_id, menu_name, parent_id, order_num, path, component, query, route_name,
- is_frame, is_cache, menu_type, visible, status, perms, icon,
- create_by, create_time, update_by, update_time, remark)
- SELECT 3379, '资源删除', 3360, 17, '#', NULL, '', '',
- 1, 0, 'F', '0', '0', 'emergency:plan:resource:remove', '#',
- 'admin', sysdate(), '', NULL, '资源删除'
- WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 3379);
- INSERT INTO sys_menu (
- menu_id, menu_name, parent_id, order_num, path, component, query, route_name,
- is_frame, is_cache, menu_type, visible, status, perms, icon,
- create_by, create_time, update_by, update_time, remark)
- SELECT 3380, '版本查看', 3360, 18, '#', NULL, '', '',
- 1, 0, 'F', '0', '0', 'emergency:plan:version:list', '#',
- 'admin', sysdate(), '', NULL, '版本查看'
- WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 3380);
- INSERT INTO sys_menu (
- menu_id, menu_name, parent_id, order_num, path, component, query, route_name,
- is_frame, is_cache, menu_type, visible, status, perms, icon,
- create_by, create_time, update_by, update_time, remark)
- SELECT 3382, '版本恢复', 3360, 19, '#', NULL, '', '',
- 1, 0, 'F', '0', '0', 'emergency:plan:version:restore', '#',
- 'admin', sysdate(), '', NULL, '版本恢复'
- WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 3382);
- INSERT INTO sys_menu (
- menu_id, menu_name, parent_id, order_num, path, component, query, route_name,
- is_frame, is_cache, menu_type, visible, status, perms, icon,
- create_by, create_time, update_by, update_time, remark)
- SELECT 3386, '审批查看', 3360, 20, '#', NULL, '', '',
- 1, 0, 'F', '0', '0', 'emergency:plan:approval:list', '#',
- 'admin', sysdate(), '', NULL, '审批记录查看'
- WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 3386);
- INSERT INTO sys_menu (
- menu_id, menu_name, parent_id, order_num, path, component, query, route_name,
- is_frame, is_cache, menu_type, visible, status, perms, icon,
- create_by, create_time, update_by, update_time, remark)
- SELECT 3384, '使用记录查看', 3360, 21, '#', NULL, '', '',
- 1, 0, 'F', '0', '0', 'emergency:plan:usage:list', '#',
- 'admin', sysdate(), '', NULL, '使用记录查看'
- WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 3384);
- -- 将预案管理菜单及其所有按钮权限分配给管理员角色(role_id = 1)
- -- 如果管理员角色ID不是1,请先查询:SELECT role_id FROM sys_role WHERE role_key = 'admin';
- INSERT INTO sys_role_menu (role_id, menu_id)
- SELECT 1, menu_id
- FROM sys_menu
- WHERE (menu_id = 3360 OR parent_id = 3360)
- AND NOT EXISTS (
- SELECT 1 FROM sys_role_menu rm
- WHERE rm.role_id = 1 AND rm.menu_id = sys_menu.menu_id
- );
- -- 修复菜单顺序冲突:将 menu_id = 3000 移到 order_num = 4(如果存在且冲突)
- UPDATE sys_menu
- SET order_num = 4,
- update_time = sysdate()
- WHERE menu_id = 3000
- AND parent_id = 0
- AND order_num = 3;
- -- 确保预案管理菜单状态正确
- UPDATE sys_menu
- SET status = '0',
- visible = '0',
- update_time = sysdate()
- WHERE menu_id = 3360 OR parent_id = 3360;
- -- ----------------------------
- -- 菜单顺序调整:确保预案管理位于数据报送之后、资源管理之前
- -- ----------------------------
- -- 1. 确保"数据报送"菜单 order_num = 2
- UPDATE sys_menu
- SET order_num = 2,
- update_time = sysdate()
- WHERE menu_id = 3350
- AND parent_id = 0
- AND order_num != 2;
- -- 2. 确保"预案管理"菜单 order_num = 3
- UPDATE sys_menu
- SET order_num = 3,
- update_time = sysdate()
- WHERE menu_id = 3360
- AND parent_id = 0
- AND order_num != 3;
- -- 3. 将"资源管理"相关菜单移到 order_num = 4 或更高(如果存在)
- -- 查找并更新所有包含"资源"的顶级菜单
- UPDATE sys_menu
- SET order_num = 4,
- update_time = sysdate()
- WHERE parent_id = 0
- AND menu_id NOT IN (3300, 3350, 3360) -- 排除应急调度、数据报送、预案管理
- AND (menu_name LIKE '%资源%' OR menu_name LIKE '%resource%' OR menu_name LIKE '%Resource%')
- AND order_num <= 3;
- -- 4. 将所有其他可能冲突的顶级菜单移到 order_num = 5 或更高
- -- 先标记资源管理菜单,然后处理其他冲突菜单
- UPDATE sys_menu
- SET order_num = 5,
- update_time = sysdate()
- WHERE parent_id = 0
- AND menu_id NOT IN (3300, 3350, 3360)
- AND order_num <= 3
- AND order_num > 0
- AND NOT (menu_name LIKE '%资源%' OR menu_name LIKE '%resource%' OR menu_name LIKE '%Resource%');
- -- ----------------------------
- -- 知识库模块 - 知识管理相关表
- -- ----------------------------
- -- 1、知识库分类表
- DROP TABLE IF EXISTS aegis.`knowledge_category`;
- CREATE TABLE `knowledge_category` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '分类ID',
- `name` varchar(100) NOT NULL COMMENT '分类名称(如:法律法规、政策规定、标准规范)',
- `code` varchar(50) DEFAULT NULL COMMENT '分类代码',
- `parent_id` bigint(20) DEFAULT NULL COMMENT '父分类ID(支持多级分类)',
- `sort_order` int(11) DEFAULT 0 COMMENT '排序',
- `description` varchar(500) DEFAULT NULL COMMENT '描述',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- `del_flag` char(1) DEFAULT '0' COMMENT '删除标志',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- PRIMARY KEY (`id`),
- KEY `idx_parent` (`parent_id`),
- KEY `idx_code` (`code`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='知识库分类表';
- -- 2、知识库文档表
- DROP TABLE IF EXISTS aegis.`knowledge_document`;
- CREATE TABLE `knowledge_document` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '文档ID',
- `title` varchar(200) NOT NULL COMMENT '文档标题',
- `category_id` bigint(20) DEFAULT NULL COMMENT '分类ID',
- `file_id` bigint(20) DEFAULT NULL COMMENT '文件ID(关联文件表file_info.id)',
- `file_name` varchar(255) DEFAULT NULL COMMENT '原始文件名',
- `file_size` bigint(20) DEFAULT NULL COMMENT '文件大小(字节)',
- `file_type` varchar(50) DEFAULT NULL COMMENT '文件类型(PDF、DOC、DOCX等)',
- `tags` varchar(500) DEFAULT NULL COMMENT '标签(逗号分隔,如:交通,应急,法规)',
- `keywords` varchar(500) DEFAULT NULL COMMENT '关键词(逗号分隔,用于搜索和自动调取)',
- `summary` varchar(1000) DEFAULT NULL COMMENT '摘要/描述',
- `view_count` int(11) DEFAULT 0 COMMENT '查看次数',
- `download_count` int(11) DEFAULT 0 COMMENT '下载次数',
- `is_featured` tinyint(1) DEFAULT 0 COMMENT '是否推荐',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- `del_flag` char(1) DEFAULT '0' COMMENT '删除标志',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- PRIMARY KEY (`id`),
- KEY `idx_category` (`category_id`),
- KEY `idx_title` (`title`),
- KEY `idx_keywords` (`keywords`),
- KEY `idx_file_id` (`file_id`),
- KEY `idx_create_time` (`create_time`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='知识库文档表';
- -- ----------------------------
- -- 案例库模块 - 案例管理相关表
- -- ----------------------------
- -- 1、案例表
- DROP TABLE IF EXISTS aegis.`case`;
- CREATE TABLE `case` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '案例ID',
- `case_no` varchar(64) DEFAULT NULL COMMENT '案例编号',
- `title` varchar(200) NOT NULL COMMENT '案例标题',
- `event_type` varchar(64) DEFAULT NULL COMMENT '事件类型(字典值)',
- `event_level` varchar(10) DEFAULT NULL COMMENT '事件级别(I/II/III/IV)',
- `location` varchar(200) DEFAULT NULL COMMENT '发生地点',
- `occurred_time` datetime DEFAULT NULL COMMENT '发生时间',
- `description` varchar(2000) DEFAULT NULL COMMENT '案例描述',
- `disposal_summary` varchar(2000) DEFAULT NULL COMMENT '处置摘要',
- `tags` varchar(500) DEFAULT NULL COMMENT '标签(逗号分隔)',
- `is_typical` tinyint(1) DEFAULT 0 COMMENT '是否典型案例',
- `view_count` int(11) DEFAULT 0 COMMENT '查看次数',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
- `del_flag` char(1) DEFAULT '0' COMMENT '删除标志',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- PRIMARY KEY (`id`),
- KEY `idx_event_type` (`event_type`),
- KEY `idx_title` (`title`),
- KEY `idx_is_typical` (`is_typical`),
- KEY `idx_create_time` (`create_time`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='案例表';
- -- 2、事件类型字典(如果不存在)
- INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark)
- SELECT '事件类型', 'event_type', '0', 'admin', sysdate(), '事件类型列表'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type WHERE dict_type = 'event_type');
- -- 事件类型字典数据(示例)
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 1, '交通事故', 'traffic_accident', 'event_type', '', 'danger', 'Y', '0', 'admin', sysdate(), '交通事故'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'event_type' AND dict_value = 'traffic_accident');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 2, '自然灾害', 'natural_disaster', 'event_type', '', 'warning', 'N', '0', 'admin', sysdate(), '自然灾害'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'event_type' AND dict_value = 'natural_disaster');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 3, '公共卫生事件', 'public_health', 'event_type', '', 'info', 'N', '0', 'admin', sysdate(), '公共卫生事件'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'event_type' AND dict_value = 'public_health');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 4, '社会安全事件', 'social_security', 'event_type', '', 'danger', 'N', '0', 'admin', sysdate(), '社会安全事件'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'event_type' AND dict_value = 'social_security');
- INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
- SELECT 5, '其他', 'other', 'event_type', '', '', 'N', '0', 'admin', sysdate(), '其他事件类型'
- WHERE NOT EXISTS (SELECT 1 FROM sys_dict_data WHERE dict_type = 'event_type' AND dict_value = 'other');
|