网点管理

背景

1、区域存在的网点信息

表结构

1. site_info 网点基本信息

CREATE TABLE `site_info` (
  `site_id` bigint NOT NULL AUTO_INCREMENT COMMENT '网点ID',
  `site_code` varchar(32) NOT NULL DEFAULT '' COMMENT '网点编码',
  `site_name` varchar(64) NOT NULL DEFAULT '' COMMENT '网点名称',
  `site_type` tinyint NOT NULL COMMENT '网点类型:1仓库,2站点',
  `longitude_latitude` varchar(64) NOT NULL DEFAULT '' COMMENT '经纬度',
  `site_zone` varchar(32) NOT NULL COMMENT '时区',
  `owner_id` bigint NOT NULL DEFAULT '0' COMMENT '负责人',
  `commuter_time` varchar(64) NOT NULL DEFAULT '' COMMENT '上班时间',
  `secret_key` varchar(128) NOT NULL DEFAULT '' COMMENT 'OptimoRoute密钥',
  `state` varchar(64) NOT NULL DEFAULT '' COMMENT '省州',
  `city` varchar(64) NOT NULL DEFAULT '' COMMENT '城市',
  `cut_off_time` time DEFAULT NULL COMMENT '截至时间',
  `site_status` tinyint NOT NULL DEFAULT '0' COMMENT '是否禁用 1是 0否',
  `dispatch_type` tinyint NOT NULL DEFAULT '0' COMMENT '取派类型 0全部 1 揽收 2派送',
  `create_user_id` bigint NOT NULL DEFAULT '0' COMMENT '创建人ID',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `site_level` tinyint NOT NULL DEFAULT '0' COMMENT '网点层级 0.总部 1.一级网点 2.二级网点 3.三级网点',
  `parent_site_id` bigint DEFAULT NULL COMMENT '上级网点ID',
  `applicable_region` varchar(64) DEFAULT NULL COMMENT '适用区域',
  `country_id` int NOT NULL DEFAULT '0' COMMENT '国家Id',
  `country_code` varchar(32) NOT NULL DEFAULT '' COMMENT '国家代码',
  `site_longitude` decimal(10,6) DEFAULT NULL COMMENT '订单地理位置经度',
  `site_latitude` decimal(10,6) DEFAULT NULL COMMENT '订单地理位置纬度',
  `location_flag` tinyint NOT NULL DEFAULT '0' COMMENT '提取地理经纬度标识 0-未提取,1-已提取,2-提取异常',
  PRIMARY KEY (`site_id`) USING BTREE,
  KEY `idx_site_code` (`site_code`)
) ENGINE=InnoDB AUTO_INCREMENT=269 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='网点信息表';

2. site_info 按规范添加字段与索引

-- site_info
-- 第一步先添加字段,存在create_time
ALTER TABLE site_info
 ADD  COLUMN `remark` varchar(256) DEFAULT '' COMMENT '备注',
 ADD  COLUMN `over_flag` tinyint NOT NULL DEFAULT '0' COMMENT '完结标识 0-未完结,1-已完结',
 ADD  COLUMN `create_user` bigint DEFAULT NULL COMMENT '创建人',
 ADD  COLUMN `update_user` bigint DEFAULT NULL COMMENT '更新人',
 ADD  COLUMN `update_time` datetime DEFAULT NULL COMMENT '更新时间';

-- 第二步历史数据初始化,存在create_user_id,create_time
update site_info set
                     create_user = create_user_id,
                     update_user = create_user_id,
                     update_time = create_time
where 1=1;

-- 第三步修改字段约束
ALTER TABLE site_info
    MODIFY  COLUMN   `create_user` bigint NOT NULL COMMENT '创建人',
    MODIFY  COLUMN   `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间';

-- 索引
ALTER TABLE site_info
    ADD UNIQUE INDEX `uniq_site_code`(`site_code`),
    ADD INDEX `idx_create_time` (`create_time`),
    ADD INDEX `idx_update_time` (`update_time`);

-- create_user_id待弃用
ALTER TABLE site_info
    MODIFY  COLUMN `create_user_id` bigint NOT NULL DEFAULT '0' COMMENT '创建人ID(待弃用)';

3. site_info_ext 网点信息扩展

CREATE TABLE `site_info_ext` (
  `site_id` bigint NOT NULL AUTO_INCREMENT COMMENT '网点ID',
  `from_name` varchar(64) DEFAULT '' COMMENT '发件人',
  `from_company` varchar(128) DEFAULT '' COMMENT '公司',
  `from_phone` varchar(32) DEFAULT '' COMMENT '电话',
  `from_address_line1` varchar(64) DEFAULT '' COMMENT '地址1',
  `from_address_line_2` varchar(64) DEFAULT '' COMMENT '地址2',
  `from_city` varchar(32) DEFAULT '' COMMENT '城市',
  `from_state` varchar(32) DEFAULT '' COMMENT '州',
  `from_postal_code` varchar(32) DEFAULT '' COMMENT '邮编',
  `from_country_code` varchar(32) DEFAULT '' COMMENT '国家',
  PRIMARY KEY (`site_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=269 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='站点扩展表(对接合作承运商发件信息)';

4. site_info_ext 按规范添加字段与索引

-- site_info_ext
-- 第一步先添加字段
ALTER TABLE site_info_ext
     ADD  COLUMN `remark` varchar(256) DEFAULT '' COMMENT '备注',
 ADD  COLUMN `over_flag` tinyint NOT NULL DEFAULT '0' COMMENT '完结标识 0-未完结,1-已完结',
 ADD  COLUMN `create_user` bigint DEFAULT NULL COMMENT '创建人',
 ADD  COLUMN `create_time` datetime DEFAULT NULL COMMENT '创建时间',
 ADD  COLUMN `update_user` bigint DEFAULT NULL COMMENT '更新人',
 ADD  COLUMN `update_time` datetime DEFAULT NULL COMMENT '更新时间';

-- 第二步历史数据初始化
update site_info_ext set
                         create_user = 1,
                         create_time = now(),
                         update_user = 1,
                         update_time = now()
where 1=1;

-- 第三步修改字段约束
ALTER TABLE site_info_ext
    MODIFY  COLUMN   `create_user` bigint NOT NULL COMMENT '创建人',
    MODIFY  COLUMN   `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    MODIFY  COLUMN   `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间';

-- 索引
ALTER TABLE site_info_ext
    ADD INDEX `idx_create_time` (`create_time`),
ADD INDEX `idx_update_time` (`update_time`);

5. site_log 网点操作日志

CREATE TABLE `site_log` (
  `log_id` bigint NOT NULL AUTO_INCREMENT COMMENT '日志ID',
  `site_id` bigint NOT NULL DEFAULT '0' COMMENT '网点ID',
  `user_id` bigint NOT NULL DEFAULT '0' COMMENT '操作用户ID/0系统/-1客户',
  `log_add_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '添加时间',
  `log_note` text COMMENT '备注',
  `log_ip` varchar(20) NOT NULL DEFAULT '' COMMENT '操作IP',
  PRIMARY KEY (`log_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=2760 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='网点操作日志表';

6. site_log 按规范添加字段与索引

-- 网点日志 site_log
-- 第一步先添加字段
ALTER TABLE site_log
     ADD  COLUMN `remark` varchar(256) DEFAULT '' COMMENT '备注',
 ADD  COLUMN `over_flag` tinyint NOT NULL DEFAULT '0' COMMENT '完结标识 0-未完结,1-已完结',
 ADD  COLUMN `create_user` bigint DEFAULT NULL COMMENT '创建人',
 ADD  COLUMN `create_time` datetime DEFAULT NULL COMMENT '创建时间',
 ADD  COLUMN `update_user` bigint DEFAULT NULL COMMENT '更新人',
 ADD  COLUMN `update_time` datetime DEFAULT NULL COMMENT '更新时间';

-- 第二步历史数据初始化,表原有存在user_id,log_add_time
update site_log set
                    create_user = user_id,
                    create_time = log_add_time,
                    update_user = user_id,
                    update_time = log_add_time
where 1=1;

-- 第三步修改字段约束
ALTER TABLE site_log
    MODIFY  COLUMN   `create_user` bigint NOT NULL COMMENT '创建人',
    MODIFY  COLUMN   `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    MODIFY  COLUMN   `update_user` bigint DEFAULT NULL COMMENT '更新人',
    MODIFY  COLUMN   `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间';

-- 索引,没有唯一索引
ALTER TABLE site_log
    ADD INDEX `idx_site_id` (`site_id`),
ADD INDEX `idx_create_time` (`create_time`),
ADD INDEX `idx_update_time` (`update_time`);

ALTER TABLE site_log
    MODIFY  COLUMN   `user_id` int NOT NULL DEFAULT '0' COMMENT '操作用户ID/0系统/-1客户(待弃用)',
    MODIFY  COLUMN   `log_add_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '添加时间(待弃用)';

7. trunk_line_info 尾程派送网点(干线)

CREATE TABLE `trunk_line_info` (
  `trunk_line_id` bigint NOT NULL AUTO_INCREMENT COMMENT '干线ID',
  `trunk_line_code` varchar(32) NOT NULL DEFAULT '' COMMENT '干线编码',
  `trunk_line_name` varchar(64) NOT NULL DEFAULT '' COMMENT '干线名称',
  `start_site_id` bigint NOT NULL DEFAULT '0' COMMENT '开始网点ID',
  `end_site_id` bigint NOT NULL DEFAULT '0' COMMENT '结束网点ID',
  `distance` decimal(24,6) NOT NULL DEFAULT '0.000000' COMMENT '距离',
  `driving_distance` decimal(24,6) NOT NULL DEFAULT '0.000000' COMMENT '车程',
  `create_user_id` bigint NOT NULL DEFAULT '0' COMMENT '创建人ID',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  PRIMARY KEY (`trunk_line_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=3653 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='干线信息表';

8. trunk_line_info 按规范添加字段与索引

-- 尾程派送网点(干线)
-- 第一步先添加字段,存在create_time
ALTER TABLE trunk_line_info
     ADD  COLUMN `remark` varchar(256) DEFAULT '' COMMENT '备注',
 ADD  COLUMN `over_flag` tinyint NOT NULL DEFAULT '0' COMMENT '完结标识 0-未完结,1-已完结',
 ADD  COLUMN `create_user` bigint DEFAULT NULL COMMENT '创建人',
 ADD  COLUMN `update_user` bigint DEFAULT NULL COMMENT '更新人',
 ADD  COLUMN `update_time` datetime DEFAULT NULL COMMENT '更新时间';

-- 第二步历史数据初始化,存在create_user_id,create_time
update trunk_line_info set
                           create_user = create_user_id,
                           update_user = create_user_id,
                           update_time = create_time
where 1=1;

-- 第三步修改字段约束
ALTER TABLE trunk_line_info
    MODIFY  COLUMN   `create_user` bigint NOT NULL COMMENT '创建人',
    MODIFY  COLUMN   `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间';

-- 索引
ALTER TABLE trunk_line_info
    ADD UNIQUE INDEX `uniq_ssid_esid`(`start_site_id`,`end_site_id`),
    ADD INDEX `idx_create_time` (`create_time`),
    ADD INDEX `idx_update_time` (`update_time`);

-- create_user_id待弃用
ALTER TABLE trunk_line_info
    MODIFY  COLUMN `create_user_id` bigint NOT NULL DEFAULT '0' COMMENT '创建人ID(待弃用)';

9. site_history_secret_key 网点历史密钥

CREATE TABLE `site_history_secret_key` (
  `site_history_secret_key_id` bigint NOT NULL COMMENT '历史秘钥id',
  `site_id` bigint NOT NULL COMMENT '网点ID',
  `secret_key` varchar(128) NOT NULL COMMENT '秘钥',
  `remark` varchar(255) DEFAULT NULL COMMENT '备注',
  `over_flag` tinyint NOT NULL DEFAULT '0' COMMENT '完结标识 0-未完结,1-已完结',
  `create_user` bigint NOT NULL COMMENT '创建人',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_user` bigint DEFAULT NULL COMMENT '更新人',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`site_history_secret_key_id`),
  KEY `idx_site_id` (`site_id`),
  KEY `idx_update_time` (`update_time`),
  KEY `idx_create_time` (`create_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='站点历史秘钥表';

功能流程图

作者:陆飞  创建时间:2026-01-13 17:16
最后编辑:高美燕  更新时间:2026-03-03 10:08