feat(customer): 新增ICC客户信息同步功能 - OAuth2密码模式鉴权拉取org_base客户、按icc_code幂等upsert写入并记录icc_sync_log,注册每10分钟定时任务;客户档案管理页新增手动'同步客户'按钮(POST /api/customers/sync/icc),同步后自动刷新列表与统计;customer表新增icc_code字段及唯一索引,同步db_seed与设计文档
This commit is contained in:
1 parent
be91d04431
commit
9d3bb13ecf
24 files changed
+1159
-5
No files matched your search
@@ -191,6 +191,7 @@ DROP TABLE IF EXISTS customer CASCADE;
|
||||
CREATE TABLE customer (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
customer_no VARCHAR(64) NOT NULL UNIQUE,
|
||||
icc_code VARCHAR(64),
|
||||
customer_name VARCHAR(128) NOT NULL,
|
||||
province VARCHAR(64),
|
||||
city VARCHAR(64),
|
||||
@@ -209,6 +210,7 @@ CREATE TABLE customer (
|
||||
COMMENT ON TABLE customer IS '客户信息表';
|
||||
COMMENT ON COLUMN customer.id IS '自增主键';
|
||||
COMMENT ON COLUMN customer.customer_no IS '客户业务编号(KH+YYYYMMDD+3位序号)';
|
||||
COMMENT ON COLUMN customer.icc_code IS 'ICC客户编码(ICC平台 orgCode,同步来源)';
|
||||
COMMENT ON COLUMN customer.customer_name IS '客户名称';
|
||||
COMMENT ON COLUMN customer.province IS '省';
|
||||
COMMENT ON COLUMN customer.city IS '市';
|
||||
@@ -227,6 +229,7 @@ CREATE INDEX idx_customer_name ON customer (customer_name);
|
||||
CREATE INDEX idx_customer_salesman ON customer (salesman_id);
|
||||
CREATE INDEX idx_customer_status ON customer (status);
|
||||
CREATE INDEX idx_customer_region ON customer (province, city, district);
|
||||
CREATE UNIQUE INDEX uk_customer_icc_code ON customer (icc_code);
|
||||
CREATE TRIGGER trg_customer_updated_at BEFORE UPDATE ON customer
|
||||
FOR EACH ROW EXECUTE FUNCTION trigger_set_updated_at();
|
||||
|
||||
|
||||
@@ -404,6 +404,14 @@ INSERT INTO sys_job (job_key, job_name, cron_expression, params, retry_times, re
|
||||
'从 ICC 平台拉取智电改造线路并按 line_code 幂等 upsert(默认每 10 分钟)')
|
||||
ON CONFLICT (job_key) DO NOTHING;
|
||||
|
||||
-- ------------------------------------------------------------
|
||||
-- 10b. 客户信息同步任务种子(sys_job,按 job_key 幂等;默认每 10 分钟)
|
||||
-- ------------------------------------------------------------
|
||||
INSERT INTO sys_job (job_key, job_name, cron_expression, params, retry_times, retry_interval, status, remark) VALUES
|
||||
('icc_customer_sync', '客户信息同步', '*/10 * * * *', '{}'::jsonb, 1, 300, 1,
|
||||
'从 ICC 平台拉取 org_base 组织数据并按 iccCode 幂等新增/变更客户(默认每 10 分钟)')
|
||||
ON CONFLICT (job_key) DO NOTHING;
|
||||
|
||||
-- ------------------------------------------------------------
|
||||
-- 11. 通知规则种子(sys_notice_rule,按 rule_key 幂等;接收对象可在「通知管理」页调整)
|
||||
-- ------------------------------------------------------------
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
-- ICC 客户信息同步(第一阶段):
|
||||
-- 1) 幂等新增 customer.icc_code 列(ICC 平台 orgCode,作为 ICC 同步的幂等匹配键)
|
||||
-- 2) 幂等创建唯一索引 uk_customer_icc_code(icc_code 可空,PostgreSQL 下多个 NULL 不冲突)
|
||||
BEGIN;
|
||||
|
||||
-- ------------------------------------------------------------
|
||||
-- 1) 新增列 icc_code(可空,幂等;与 db_init.sql / customer.entity.ts 保持一致)
|
||||
-- ------------------------------------------------------------
|
||||
ALTER TABLE customer ADD COLUMN IF NOT EXISTS icc_code VARCHAR(64);
|
||||
|
||||
-- ------------------------------------------------------------
|
||||
-- 2) 唯一索引(icc_code 可空,PostgreSQL 中多个 NULL 不冲突,唯一索引安全)
|
||||
-- ------------------------------------------------------------
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS uk_customer_icc_code ON customer (icc_code);
|
||||
|
||||
-- ------------------------------------------------------------
|
||||
-- 3) 列注释
|
||||
-- ------------------------------------------------------------
|
||||
COMMENT ON COLUMN customer.icc_code IS 'ICC客户编码(ICC平台 orgCode,同步来源)';
|
||||
|
||||
COMMIT;
|
||||
Reference in new issue
Block a user