WHMS 实现企微HR主数据镜像同步
这个提交包含在:
@@ -0,0 +1,86 @@
|
||||
CREATE TABLE "wecom_hr_master_sync_runs" (
|
||||
"id" UUID NOT NULL,
|
||||
"mode" VARCHAR(16) NOT NULL,
|
||||
"status" VARCHAR(24) NOT NULL DEFAULT 'running',
|
||||
"token_source" JSONB,
|
||||
"requested_userids" JSONB,
|
||||
"limit" INTEGER,
|
||||
"summary" JSONB,
|
||||
"error_code" VARCHAR(80),
|
||||
"error_message" TEXT,
|
||||
"triggered_by" UUID,
|
||||
"started_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"finished_at" TIMESTAMP(3),
|
||||
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updated_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
CONSTRAINT "wecom_hr_master_sync_runs_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
CREATE TABLE "wecom_hr_master_sync_items" (
|
||||
"id" UUID NOT NULL,
|
||||
"run_id" UUID NOT NULL,
|
||||
"employee_id" UUID,
|
||||
"external_user_id_masked" VARCHAR(80) NOT NULL,
|
||||
"action" VARCHAR(32) NOT NULL,
|
||||
"status" VARCHAR(24) NOT NULL,
|
||||
"error_code" VARCHAR(80),
|
||||
"error_message" TEXT,
|
||||
"retry_count" INTEGER NOT NULL DEFAULT 0,
|
||||
"field_changes" JSONB,
|
||||
"source_summary" JSONB,
|
||||
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updated_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
CONSTRAINT "wecom_hr_master_sync_items_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
CREATE INDEX "idx_wecom_hr_master_sync_runs_status_created"
|
||||
ON "wecom_hr_master_sync_runs"("status", "created_at");
|
||||
|
||||
CREATE INDEX "idx_wecom_hr_master_sync_runs_mode_created"
|
||||
ON "wecom_hr_master_sync_runs"("mode", "created_at");
|
||||
|
||||
CREATE INDEX "idx_wecom_hr_master_sync_runs_triggered_by"
|
||||
ON "wecom_hr_master_sync_runs"("triggered_by");
|
||||
|
||||
CREATE INDEX "idx_wecom_hr_master_sync_items_run_status"
|
||||
ON "wecom_hr_master_sync_items"("run_id", "status");
|
||||
|
||||
CREATE INDEX "idx_wecom_hr_master_sync_items_employee_created"
|
||||
ON "wecom_hr_master_sync_items"("employee_id", "created_at");
|
||||
|
||||
CREATE INDEX "idx_wecom_hr_master_sync_items_action_status"
|
||||
ON "wecom_hr_master_sync_items"("action", "status");
|
||||
|
||||
ALTER TABLE "wecom_hr_master_sync_runs"
|
||||
ADD CONSTRAINT "wecom_hr_master_sync_runs_triggered_by_fkey"
|
||||
FOREIGN KEY ("triggered_by") REFERENCES "employees"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
|
||||
ALTER TABLE "wecom_hr_master_sync_items"
|
||||
ADD CONSTRAINT "wecom_hr_master_sync_items_run_id_fkey"
|
||||
FOREIGN KEY ("run_id") REFERENCES "wecom_hr_master_sync_runs"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
ALTER TABLE "wecom_hr_master_sync_items"
|
||||
ADD CONSTRAINT "wecom_hr_master_sync_items_employee_id_fkey"
|
||||
FOREIGN KEY ("employee_id") REFERENCES "employees"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
|
||||
INSERT INTO "feature_flags" (
|
||||
"id",
|
||||
"flag_key",
|
||||
"override_mode",
|
||||
"rollout_type",
|
||||
"department_ids",
|
||||
"note",
|
||||
"version",
|
||||
"created_at",
|
||||
"updated_at"
|
||||
) VALUES (
|
||||
'0e0a66a4-9e1d-4e23-9724-99e4a322b371'::uuid,
|
||||
'wecom_hr_master_sync_v1',
|
||||
'force_off',
|
||||
'global',
|
||||
'[]'::jsonb,
|
||||
'bootstrap default: force_off',
|
||||
1,
|
||||
CURRENT_TIMESTAMP,
|
||||
CURRENT_TIMESTAMP
|
||||
) ON CONFLICT ("flag_key") DO NOTHING;
|
||||
在新工单中引用
屏蔽一个用户