Files
smart_grid_iot/database/migrations/20261015_survey_detail_replace_sop.sql
T
andyesfly 22d27a940d feat: 重构勘察业务为明细模式并新增定时任务人性化配置
- 重构勘察业务:移除SOP相关表,新增勘察明细表支持建筑/楼层/房间/照片管理
- 新增定时任务人性化频率配置,支持分钟/小时/天/周/月/自定义六种模式
- 新增频率预览接口,支持配置转换为cron表达式与执行时间预览
- 更新系统品牌名称为鑫潼智电,修改全局标题与登录页文案
2026-10-17 10:08:42 +08:00

45 lines
2.4 KiB
PL/PgSQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- 勘察改造:移除 SOP(勘察技术要点与回执标准),新增「勘察明细」survey_detail
-- 语义:勘察明细按「客户空间拓扑」登记,一条明细 = 建筑 + 楼层 + 房间(可空) + 现场照片 + 备注。
-- 幂等:CREATE TABLE IF NOT EXISTS / DROP TABLE IF EXISTS / 触发器先 DROP 后建,可重复执行。
BEGIN;
-- 1. 新增勘察明细表
CREATE TABLE IF NOT EXISTS survey_detail (
id BIGSERIAL PRIMARY KEY,
survey_order_id BIGINT NOT NULL REFERENCES survey_order(id) ON DELETE CASCADE,
building_id BIGINT,
building_name VARCHAR(128),
floor_no VARCHAR(16),
room_id BIGINT,
room_name VARCHAR(128),
photos TEXT,
remark VARCHAR(255),
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
COMMENT ON TABLE survey_detail IS '勘察工单明细表(建筑/楼层/房间 + 现场照片)';
COMMENT ON COLUMN survey_detail.id IS '自增主键';
COMMENT ON COLUMN survey_detail.survey_order_id IS '勘察工单ID(→ survey_order)';
COMMENT ON COLUMN survey_detail.building_id IS '建筑ID(→ customer_building)';
COMMENT ON COLUMN survey_detail.building_name IS '建筑名称(冗余,客户拓扑变更后仍可读)';
COMMENT ON COLUMN survey_detail.floor_no IS '所在楼层:正数为地上、负数为地下,如 1 / -1';
COMMENT ON COLUMN survey_detail.room_id IS '房间ID(→ customer_room,可空)';
COMMENT ON COLUMN survey_detail.room_name IS '房间名称(冗余,可空)';
COMMENT ON COLUMN survey_detail.photos IS '现场照片对象key(JSON数组字符串)';
COMMENT ON COLUMN survey_detail.remark IS '备注';
COMMENT ON COLUMN survey_detail.created_at IS '创建时间';
COMMENT ON COLUMN survey_detail.updated_at IS '更新时间';
CREATE INDEX IF NOT EXISTS idx_survey_detail_order ON survey_detail (survey_order_id);
DROP TRIGGER IF EXISTS trg_survey_detail_updated_at ON survey_detail;
CREATE TRIGGER trg_survey_detail_updated_at BEFORE UPDATE ON survey_detail
FOR EACH ROW EXECUTE FUNCTION trigger_set_updated_at();
-- 2. 移除 SOP 两张表(回执表先删,避免外键依赖)
DROP TABLE IF EXISTS survey_sop_result CASCADE;
DROP TABLE IF EXISTS survey_sop_item CASCADE;
COMMIT;