提交
This commit is contained in:
1 parent
c3be9d1dce
commit
299609706c
328 files changed
+144899
-13873
No files matched your search
@@ -0,0 +1,163 @@
|
||||
-- =============================================================================
|
||||
-- 运输计划 · 车辆/人员/证书重构 — 增量 DDL
|
||||
-- 日期: 2026-06-19
|
||||
-- 说明: 在已有 pl_ 表基础上新增/扩展,不删除 pl_driver(迁移后另脚本处理)
|
||||
-- =============================================================================
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- 1. pl_personnel(人员主表)
|
||||
-- -----------------------------------------------------------------------------
|
||||
CREATE TABLE IF NOT EXISTS `pl_personnel` (
|
||||
`id` varchar(64) NOT NULL COMMENT '主键ID',
|
||||
`personnel_name` varchar(100) NOT NULL COMMENT '姓名',
|
||||
`phone_no` varchar(32) DEFAULT NULL COMMENT '手机号(非必填)',
|
||||
`age` int(11) DEFAULT NULL COMMENT '年龄',
|
||||
`id_card_no` varchar(32) DEFAULT NULL COMMENT '身份证号',
|
||||
`status` char(1) NOT NULL DEFAULT '1' COMMENT '状态 1-在职 0-停用',
|
||||
`tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
|
||||
`order_num` int(11) DEFAULT NULL COMMENT '排序号',
|
||||
`remark` varchar(512) DEFAULT NULL COMMENT '备注',
|
||||
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
|
||||
`create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_tenant` (`tenant_no`),
|
||||
KEY `idx_phone` (`phone_no`),
|
||||
KEY `idx_personnel_name` (`personnel_name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运输计划-人员表';
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- 2. pl_cert(证书实例表)
|
||||
-- -----------------------------------------------------------------------------
|
||||
CREATE TABLE IF NOT EXISTS `pl_cert` (
|
||||
`id` varchar(64) NOT NULL COMMENT '主键ID',
|
||||
`owner_type` varchar(20) NOT NULL COMMENT '归属类型 vehicle-车辆 personnel-人员',
|
||||
`owner_id` varchar(64) NOT NULL COMMENT '归属主体ID',
|
||||
`cert_name` varchar(100) NOT NULL COMMENT '证书名称',
|
||||
`cert_no` varchar(64) DEFAULT NULL COMMENT '证号',
|
||||
`expire_date` date DEFAULT NULL COMMENT '有效期',
|
||||
`remind_days` int(11) NOT NULL DEFAULT 30 COMMENT '提前提醒天数',
|
||||
`attachment_urls` varchar(2000) DEFAULT NULL COMMENT '附件URL(逗号分隔)',
|
||||
`status` varchar(20) NOT NULL DEFAULT 'valid' COMMENT '状态 valid-有效 expired-已过期 revoked-已作废',
|
||||
`tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
|
||||
`order_num` int(11) DEFAULT NULL COMMENT '排序号',
|
||||
`remark` varchar(512) DEFAULT NULL COMMENT '备注',
|
||||
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
|
||||
`create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_tenant` (`tenant_no`),
|
||||
KEY `idx_owner` (`owner_type`, `owner_id`),
|
||||
KEY `idx_expire_date` (`expire_date`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运输计划-证书表';
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- 3. pl_vehicle_personnel(车辆-人员关联,由 pl_vehicle_driver 演进)
|
||||
-- -----------------------------------------------------------------------------
|
||||
CREATE TABLE IF NOT EXISTS `pl_vehicle_personnel` (
|
||||
`id` varchar(64) NOT NULL COMMENT '主键ID',
|
||||
`vehicle_id` varchar(64) NOT NULL COMMENT '车辆ID',
|
||||
`personnel_id` varchar(64) NOT NULL COMMENT '人员ID',
|
||||
`role` varchar(20) NOT NULL DEFAULT 'driver' COMMENT '角色 driver-司机 escort-押运员',
|
||||
`is_default` smallint(6) NOT NULL DEFAULT 0 COMMENT '是否默认司机 0-否 1-是',
|
||||
`tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
|
||||
`order_num` int(11) DEFAULT NULL COMMENT '排序号',
|
||||
`remark` varchar(512) DEFAULT NULL COMMENT '关联备注',
|
||||
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
|
||||
`create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_vehicle_id` (`vehicle_id`),
|
||||
KEY `idx_personnel_id` (`personnel_id`),
|
||||
KEY `idx_tenant` (`tenant_no`),
|
||||
KEY `idx_vehicle_role` (`vehicle_id`, `role`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='车辆-人员关联表';
|
||||
|
||||
-- 若存在旧表 pl_vehicle_driver 且无 pl_vehicle_personnel 数据,由迁移脚本处理
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- 4. pl_document_reminder 扩展字段
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- cert_id
|
||||
SET @col_exists = (
|
||||
SELECT COUNT(*) FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'pl_document_reminder' AND COLUMN_NAME = 'cert_id'
|
||||
);
|
||||
SET @sql = IF(@col_exists = 0,
|
||||
'ALTER TABLE `pl_document_reminder` ADD COLUMN `cert_id` varchar(64) DEFAULT NULL COMMENT ''证书ID'' AFTER `id`',
|
||||
'SELECT 1');
|
||||
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|
||||
|
||||
-- owner_type
|
||||
SET @col_exists = (
|
||||
SELECT COUNT(*) FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'pl_document_reminder' AND COLUMN_NAME = 'owner_type'
|
||||
);
|
||||
SET @sql = IF(@col_exists = 0,
|
||||
'ALTER TABLE `pl_document_reminder` ADD COLUMN `owner_type` varchar(20) DEFAULT NULL COMMENT ''归属类型 vehicle/personnel'' AFTER `cert_id`',
|
||||
'SELECT 1');
|
||||
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|
||||
|
||||
-- owner_id
|
||||
SET @col_exists = (
|
||||
SELECT COUNT(*) FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'pl_document_reminder' AND COLUMN_NAME = 'owner_id'
|
||||
);
|
||||
SET @sql = IF(@col_exists = 0,
|
||||
'ALTER TABLE `pl_document_reminder` ADD COLUMN `owner_id` varchar(64) DEFAULT NULL COMMENT ''归属主体ID'' AFTER `owner_type`',
|
||||
'SELECT 1');
|
||||
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|
||||
|
||||
-- owner_label
|
||||
SET @col_exists = (
|
||||
SELECT COUNT(*) FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'pl_document_reminder' AND COLUMN_NAME = 'owner_label'
|
||||
);
|
||||
SET @sql = IF(@col_exists = 0,
|
||||
'ALTER TABLE `pl_document_reminder` ADD COLUMN `owner_label` varchar(200) DEFAULT NULL COMMENT ''归属展示名(车牌/姓名)'' AFTER `owner_id`',
|
||||
'SELECT 1');
|
||||
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|
||||
|
||||
-- driver_id 改为可空(兼容车辆主体提醒)
|
||||
SET @col_nullable = (
|
||||
SELECT IS_NULLABLE FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'pl_document_reminder' AND COLUMN_NAME = 'driver_id'
|
||||
);
|
||||
SET @sql = IF(@col_nullable = 'NO',
|
||||
'ALTER TABLE `pl_document_reminder` MODIFY COLUMN `driver_id` varchar(64) DEFAULT NULL COMMENT ''司机/人员ID(兼容)''',
|
||||
'SELECT 1');
|
||||
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|
||||
|
||||
SET @col_nullable = (
|
||||
SELECT IS_NULLABLE FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'pl_document_reminder' AND COLUMN_NAME = 'driver_name'
|
||||
);
|
||||
SET @sql = IF(@col_nullable = 'NO',
|
||||
'ALTER TABLE `pl_document_reminder` MODIFY COLUMN `driver_name` varchar(100) DEFAULT NULL COMMENT ''司机/人员姓名(兼容)''',
|
||||
'SELECT 1');
|
||||
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|
||||
|
||||
-- document_type 扩长以存 cert_name
|
||||
ALTER TABLE `pl_document_reminder`
|
||||
MODIFY COLUMN `document_type` varchar(100) NOT NULL COMMENT '证件类型/证书名称';
|
||||
|
||||
-- 新索引
|
||||
SET @idx_exists = (
|
||||
SELECT COUNT(*) FROM information_schema.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'pl_document_reminder' AND INDEX_NAME = 'idx_cert_id'
|
||||
);
|
||||
SET @sql = IF(@idx_exists = 0,
|
||||
'ALTER TABLE `pl_document_reminder` ADD KEY `idx_cert_id` (`cert_id`)',
|
||||
'SELECT 1');
|
||||
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|
||||
@@ -0,0 +1,146 @@
|
||||
-- =============================================================================
|
||||
-- 运输计划 · 人员/证书字典与菜单更新
|
||||
-- 日期: 2026-06-19
|
||||
-- =============================================================================
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- 1. 字典类型 pl_personnel_role(人员角色)
|
||||
-- -----------------------------------------------------------------------------
|
||||
INSERT INTO `sys_dict_type` (
|
||||
`id`, `dict_name`, `dict_type`, `tenant_no`, `order_num`, `remark`,
|
||||
`create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
|
||||
)
|
||||
SELECT
|
||||
'PL_PERSONNEL_ROLE', '运输人员角色', 'pl_personnel_role', 'shanxia2.0', 20,
|
||||
'运输计划-人员角色 driver/escort', 'system', '', NOW(), NULL, NOW(), 0
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM `sys_dict_type` WHERE `dict_type` = 'pl_personnel_role' AND `del_flag` = 0
|
||||
);
|
||||
|
||||
INSERT INTO `sys_dict_data` (
|
||||
`id`, `dict_label`, `dict_value`, `tag_type`, `dict_type`, `tenant_no`, `order_num`,
|
||||
`remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
|
||||
)
|
||||
SELECT 'PL_ROLE_DRIVER', '司机', 'driver', 'primary', 'pl_personnel_role', 'shanxia2.0', 1,
|
||||
NULL, 'system', '', NOW(), NULL, NOW(), 0
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM `sys_dict_data` WHERE `dict_type` = 'pl_personnel_role' AND `dict_value` = 'driver' AND `del_flag` = 0
|
||||
);
|
||||
|
||||
INSERT INTO `sys_dict_data` (
|
||||
`id`, `dict_label`, `dict_value`, `tag_type`, `dict_type`, `tenant_no`, `order_num`,
|
||||
`remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
|
||||
)
|
||||
SELECT 'PL_ROLE_ESCORT', '押运员', 'escort', 'warning', 'pl_personnel_role', 'shanxia2.0', 2,
|
||||
NULL, 'system', '', NOW(), NULL, NOW(), 0
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM `sys_dict_data` WHERE `dict_type` = 'pl_personnel_role' AND `dict_value` = 'escort' AND `del_flag` = 0
|
||||
);
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- 2. 字典类型 pl_cert_name(证书名称引导)
|
||||
-- -----------------------------------------------------------------------------
|
||||
INSERT INTO `sys_dict_type` (
|
||||
`id`, `dict_name`, `dict_type`, `tenant_no`, `order_num`, `remark`,
|
||||
`create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
|
||||
)
|
||||
SELECT
|
||||
'PL_CERT_NAME', '运输证书名称', 'pl_cert_name', 'shanxia2.0', 21,
|
||||
'运输计划-证书名称引导录入', 'system', '', NOW(), NULL, NOW(), 0
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM `sys_dict_type` WHERE `dict_type` = 'pl_cert_name' AND `del_flag` = 0
|
||||
);
|
||||
|
||||
INSERT INTO `sys_dict_data` (
|
||||
`id`, `dict_label`, `dict_value`, `tag_type`, `dict_type`, `tenant_no`, `order_num`,
|
||||
`remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
|
||||
)
|
||||
SELECT 'PL_CERT_01', '行驶证', '行驶证', 'success', 'pl_cert_name', 'shanxia2.0', 1,
|
||||
NULL, 'system', '', NOW(), NULL, NOW(), 0
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM `sys_dict_data` WHERE `dict_type` = 'pl_cert_name' AND `dict_value` = '行驶证' AND `del_flag` = 0
|
||||
);
|
||||
|
||||
INSERT INTO `sys_dict_data` (
|
||||
`id`, `dict_label`, `dict_value`, `tag_type`, `dict_type`, `tenant_no`, `order_num`,
|
||||
`remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
|
||||
)
|
||||
SELECT 'PL_CERT_02', '道路运输证', '道路运输证', 'primary', 'pl_cert_name', 'shanxia2.0', 2,
|
||||
NULL, 'system', '', NOW(), NULL, NOW(), 0
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM `sys_dict_data` WHERE `dict_type` = 'pl_cert_name' AND `dict_value` = '道路运输证' AND `del_flag` = 0
|
||||
);
|
||||
|
||||
INSERT INTO `sys_dict_data` (
|
||||
`id`, `dict_label`, `dict_value`, `tag_type`, `dict_type`, `tenant_no`, `order_num`,
|
||||
`remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
|
||||
)
|
||||
SELECT 'PL_CERT_03', '驾驶证', '驾驶证', 'primary', 'pl_cert_name', 'shanxia2.0', 3,
|
||||
NULL, 'system', '', NOW(), NULL, NOW(), 0
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM `sys_dict_data` WHERE `dict_type` = 'pl_cert_name' AND `dict_value` = '驾驶证' AND `del_flag` = 0
|
||||
);
|
||||
|
||||
INSERT INTO `sys_dict_data` (
|
||||
`id`, `dict_label`, `dict_value`, `tag_type`, `dict_type`, `tenant_no`, `order_num`,
|
||||
`remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
|
||||
)
|
||||
SELECT 'PL_CERT_04', '押运员证', '押运员证', 'warning', 'pl_cert_name', 'shanxia2.0', 4,
|
||||
NULL, 'system', '', NOW(), NULL, NOW(), 0
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM `sys_dict_data` WHERE `dict_type` = 'pl_cert_name' AND `dict_value` = '押运员证' AND `del_flag` = 0
|
||||
);
|
||||
|
||||
INSERT INTO `sys_dict_data` (
|
||||
`id`, `dict_label`, `dict_value`, `tag_type`, `dict_type`, `tenant_no`, `order_num`,
|
||||
`remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
|
||||
)
|
||||
SELECT 'PL_CERT_05', '危化品从业资格证', '危化品从业资格证', 'danger', 'pl_cert_name', 'shanxia2.0', 5,
|
||||
NULL, 'system', '', NOW(), NULL, NOW(), 0
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM `sys_dict_data` WHERE `dict_type` = 'pl_cert_name' AND `dict_value` = '危化品从业资格证' AND `del_flag` = 0
|
||||
);
|
||||
|
||||
INSERT INTO `sys_dict_data` (
|
||||
`id`, `dict_label`, `dict_value`, `tag_type`, `dict_type`, `tenant_no`, `order_num`,
|
||||
`remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
|
||||
)
|
||||
SELECT 'PL_CERT_06', '保险单', '保险单', 'info', 'pl_cert_name', 'shanxia2.0', 6,
|
||||
NULL, 'system', '', NOW(), NULL, NOW(), 0
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM `sys_dict_data` WHERE `dict_type` = 'pl_cert_name' AND `dict_value` = '保险单' AND `del_flag` = 0
|
||||
);
|
||||
|
||||
INSERT INTO `sys_dict_data` (
|
||||
`id`, `dict_label`, `dict_value`, `tag_type`, `dict_type`, `tenant_no`, `order_num`,
|
||||
`remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
|
||||
)
|
||||
SELECT 'PL_CERT_07', '健康证', '健康证', 'info', 'pl_cert_name', 'shanxia2.0', 7,
|
||||
NULL, 'system', '', NOW(), NULL, NOW(), 0
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM `sys_dict_data` WHERE `dict_type` = 'pl_cert_name' AND `dict_value` = '健康证' AND `del_flag` = 0
|
||||
);
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- 3. 菜单:司机管理 → 人员管理,path driver → personnel
|
||||
-- -----------------------------------------------------------------------------
|
||||
UPDATE `sys_menu`
|
||||
SET
|
||||
`menu_name` = '人员管理',
|
||||
`path` = 'personnel',
|
||||
`component` = 'pl/personnel/index',
|
||||
`update_time` = NOW()
|
||||
WHERE `id` = 'PL_DRIVER' AND `del_flag` = 0;
|
||||
@@ -0,0 +1,211 @@
|
||||
-- =============================================================================
|
||||
-- 运输计划 · 车辆/人员/证书重构 — 数据迁移
|
||||
-- 日期: 2026-06-19
|
||||
-- 前置: 先执行 docs/sql/20260619_pl_personnel_cert.sql
|
||||
-- 说明: 从 pl_driver / pl_vehicle_driver 迁移至新表;可重复执行(幂等)
|
||||
-- =============================================================================
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- 1. pl_driver → pl_personnel(保留 id)
|
||||
-- -----------------------------------------------------------------------------
|
||||
INSERT IGNORE INTO `pl_personnel` (
|
||||
`id`, `personnel_name`, `phone_no`, `age`, `id_card_no`, `status`,
|
||||
`tenant_no`, `order_num`, `remark`,
|
||||
`create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
|
||||
)
|
||||
SELECT
|
||||
d.`id`,
|
||||
d.`driver_name`,
|
||||
NULLIF(TRIM(d.`phone_no`), ''),
|
||||
NULL,
|
||||
d.`id_card_no`,
|
||||
'1',
|
||||
d.`tenant_no`,
|
||||
d.`order_num`,
|
||||
d.`remark`,
|
||||
d.`create_by`,
|
||||
d.`create_dept_id`,
|
||||
d.`create_time`,
|
||||
d.`update_by`,
|
||||
d.`update_time`,
|
||||
d.`del_flag`
|
||||
FROM `pl_driver` d
|
||||
WHERE d.`del_flag` = 0
|
||||
AND NOT EXISTS (SELECT 1 FROM `pl_personnel` p WHERE p.`id` = d.`id`);
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- 2. 司机证件 → pl_cert(owner_type=personnel, remind_days=30)
|
||||
-- 证书 id 使用确定性前缀,便于幂等
|
||||
-- -----------------------------------------------------------------------------
|
||||
|
||||
-- 驾驶证
|
||||
INSERT INTO `pl_cert` (
|
||||
`id`, `owner_type`, `owner_id`, `cert_name`, `cert_no`, `expire_date`, `remind_days`,
|
||||
`status`, `tenant_no`, `order_num`, `remark`,
|
||||
`create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
|
||||
)
|
||||
SELECT
|
||||
CONCAT(d.`id`, '-dl'),
|
||||
'personnel',
|
||||
d.`id`,
|
||||
'驾驶证',
|
||||
d.`driving_license_no`,
|
||||
d.`driving_license_expire`,
|
||||
30,
|
||||
'valid',
|
||||
d.`tenant_no`,
|
||||
d.`order_num`,
|
||||
d.`remark`,
|
||||
d.`create_by`,
|
||||
d.`create_dept_id`,
|
||||
d.`create_time`,
|
||||
d.`update_by`,
|
||||
d.`update_time`,
|
||||
0
|
||||
FROM `pl_driver` d
|
||||
WHERE d.`del_flag` = 0
|
||||
AND d.`driving_license_expire` IS NOT NULL
|
||||
AND NOT EXISTS (SELECT 1 FROM `pl_cert` c WHERE c.`id` = CONCAT(d.`id`, '-dl'));
|
||||
|
||||
-- 行驶证(原存于司机表,迁移后挂人员;业务上可后续调整到车辆)
|
||||
INSERT INTO `pl_cert` (
|
||||
`id`, `owner_type`, `owner_id`, `cert_name`, `cert_no`, `expire_date`, `remind_days`,
|
||||
`status`, `tenant_no`, `order_num`, `remark`,
|
||||
`create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
|
||||
)
|
||||
SELECT
|
||||
CONCAT(d.`id`, '-vl'),
|
||||
'personnel',
|
||||
d.`id`,
|
||||
'行驶证',
|
||||
d.`vehicle_license_no`,
|
||||
d.`vehicle_license_expire`,
|
||||
30,
|
||||
'valid',
|
||||
d.`tenant_no`,
|
||||
d.`order_num`,
|
||||
d.`remark`,
|
||||
d.`create_by`,
|
||||
d.`create_dept_id`,
|
||||
d.`create_time`,
|
||||
d.`update_by`,
|
||||
d.`update_time`,
|
||||
0
|
||||
FROM `pl_driver` d
|
||||
WHERE d.`del_flag` = 0
|
||||
AND d.`vehicle_license_expire` IS NOT NULL
|
||||
AND NOT EXISTS (SELECT 1 FROM `pl_cert` c WHERE c.`id` = CONCAT(d.`id`, '-vl'));
|
||||
|
||||
-- 危化品从业资格证
|
||||
INSERT INTO `pl_cert` (
|
||||
`id`, `owner_type`, `owner_id`, `cert_name`, `cert_no`, `expire_date`, `remind_days`,
|
||||
`status`, `tenant_no`, `order_num`, `remark`,
|
||||
`create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
|
||||
)
|
||||
SELECT
|
||||
CONCAT(d.`id`, '-hc'),
|
||||
'personnel',
|
||||
d.`id`,
|
||||
'危化品从业资格证',
|
||||
d.`hazmat_cert_no`,
|
||||
d.`hazmat_cert_expire`,
|
||||
30,
|
||||
'valid',
|
||||
d.`tenant_no`,
|
||||
d.`order_num`,
|
||||
d.`remark`,
|
||||
d.`create_by`,
|
||||
d.`create_dept_id`,
|
||||
d.`create_time`,
|
||||
d.`update_by`,
|
||||
d.`update_time`,
|
||||
0
|
||||
FROM `pl_driver` d
|
||||
WHERE d.`del_flag` = 0
|
||||
AND d.`hazmat_cert_expire` IS NOT NULL
|
||||
AND NOT EXISTS (SELECT 1 FROM `pl_cert` c WHERE c.`id` = CONCAT(d.`id`, '-hc'));
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- 3. pl_vehicle_driver → pl_vehicle_personnel(driver_id → personnel_id, role=driver)
|
||||
-- -----------------------------------------------------------------------------
|
||||
INSERT IGNORE INTO `pl_vehicle_personnel` (
|
||||
`id`, `vehicle_id`, `personnel_id`, `role`, `is_default`,
|
||||
`tenant_no`, `order_num`, `remark`,
|
||||
`create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
|
||||
)
|
||||
SELECT
|
||||
vd.`id`,
|
||||
vd.`vehicle_id`,
|
||||
vd.`driver_id`,
|
||||
'driver',
|
||||
vd.`is_default`,
|
||||
vd.`tenant_no`,
|
||||
vd.`order_num`,
|
||||
vd.`remark`,
|
||||
vd.`create_by`,
|
||||
vd.`create_dept_id`,
|
||||
vd.`create_time`,
|
||||
vd.`update_by`,
|
||||
vd.`update_time`,
|
||||
vd.`del_flag`
|
||||
FROM `pl_vehicle_driver` vd
|
||||
WHERE vd.`del_flag` = 0
|
||||
AND NOT EXISTS (SELECT 1 FROM `pl_vehicle_personnel` vp WHERE vp.`id` = vd.`id`);
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- 4. 从 pl_vehicle.default_driver_id 修正 is_default(每车最多一条 is_default=1)
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- 先清零所有关联的 is_default
|
||||
UPDATE `pl_vehicle_personnel` vp
|
||||
INNER JOIN `pl_vehicle` v ON v.`id` = vp.`vehicle_id` AND v.`del_flag` = 0
|
||||
SET vp.`is_default` = 0
|
||||
WHERE vp.`del_flag` = 0
|
||||
AND vp.`role` = 'driver'
|
||||
AND v.`default_driver_id` IS NOT NULL
|
||||
AND v.`default_driver_id` != '';
|
||||
|
||||
-- 按车辆 default_driver_id 设置默认司机
|
||||
UPDATE `pl_vehicle_personnel` vp
|
||||
INNER JOIN `pl_vehicle` v ON v.`id` = vp.`vehicle_id` AND v.`del_flag` = 0
|
||||
SET vp.`is_default` = 1
|
||||
WHERE vp.`del_flag` = 0
|
||||
AND vp.`role` = 'driver'
|
||||
AND vp.`personnel_id` = v.`default_driver_id`
|
||||
AND v.`default_driver_id` IS NOT NULL
|
||||
AND v.`default_driver_id` != '';
|
||||
|
||||
-- 若 default_driver_id 有值但尚无关联行,补插一条
|
||||
INSERT IGNORE INTO `pl_vehicle_personnel` (
|
||||
`id`, `vehicle_id`, `personnel_id`, `role`, `is_default`,
|
||||
`tenant_no`, `order_num`, `remark`,
|
||||
`create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
|
||||
)
|
||||
SELECT
|
||||
CONCAT('mig-vp-', v.`id`, '-', v.`default_driver_id`),
|
||||
v.`id`,
|
||||
v.`default_driver_id`,
|
||||
'driver',
|
||||
1,
|
||||
v.`tenant_no`,
|
||||
NULL,
|
||||
'迁移自 default_driver_id',
|
||||
v.`create_by`,
|
||||
v.`create_dept_id`,
|
||||
v.`create_time`,
|
||||
v.`update_by`,
|
||||
v.`update_time`,
|
||||
0
|
||||
FROM `pl_vehicle` v
|
||||
WHERE v.`del_flag` = 0
|
||||
AND v.`default_driver_id` IS NOT NULL
|
||||
AND v.`default_driver_id` != ''
|
||||
AND EXISTS (SELECT 1 FROM `pl_personnel` p WHERE p.`id` = v.`default_driver_id` AND p.`del_flag` = 0)
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM `pl_vehicle_personnel` vp
|
||||
WHERE vp.`vehicle_id` = v.`id`
|
||||
AND vp.`personnel_id` = v.`default_driver_id`
|
||||
AND vp.`role` = 'driver'
|
||||
AND vp.`del_flag` = 0
|
||||
);
|
||||
@@ -0,0 +1,4 @@
|
||||
-- CRM 产品:易制毒 / 易制爆属性(运输计划证件校验前置)
|
||||
ALTER TABLE `crm_product`
|
||||
ADD COLUMN `is_toxic` smallint(6) NOT NULL DEFAULT 0 COMMENT '是否易制毒 0-否 1-是' AFTER `tax_rate`,
|
||||
ADD COLUMN `is_explosive` smallint(6) NOT NULL DEFAULT 0 COMMENT '是否易制爆 0-否 1-是' AFTER `is_toxic`;
|
||||
@@ -0,0 +1,10 @@
|
||||
-- 将 CRM 产品表中所有未删除产品的易制毒、易制爆属性批量设为「是」
|
||||
-- 前置:已执行 docs/sql/20260620_crm_product_hazard_flags.sql 添加字段
|
||||
-- 说明:仅更新 del_flag=0 的有效产品;0=否,1=是
|
||||
|
||||
UPDATE `crm_product`
|
||||
SET
|
||||
`is_toxic` = 1,
|
||||
`is_explosive` = 1,
|
||||
`update_time` = NOW()
|
||||
WHERE `del_flag` = 0;
|
||||
@@ -0,0 +1,27 @@
|
||||
-- 安排运输 + 司机免登录 + 地磅联动
|
||||
-- 2026-06-20
|
||||
|
||||
ALTER TABLE pl_transport
|
||||
ADD COLUMN driver_access_token VARCHAR(64) NULL COMMENT '司机免登录访问令牌' AFTER qr_expire_date;
|
||||
|
||||
CREATE UNIQUE INDEX uk_pl_transport_driver_token ON pl_transport(driver_access_token);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS pl_transport_db_link (
|
||||
id VARCHAR(64) NOT NULL PRIMARY KEY COMMENT '主键ID',
|
||||
transport_id VARCHAR(64) NOT NULL COMMENT '运输单ID',
|
||||
plan_id VARCHAR(64) NOT NULL COMMENT '运输计划ID',
|
||||
plan_product_id VARCHAR(64) NOT NULL COMMENT '计划产品行ID',
|
||||
db_purchase_plan_id VARCHAR(64) NOT NULL COMMENT '地磅计划ID',
|
||||
db_inventory_id VARCHAR(64) NOT NULL COMMENT '出入库单ID',
|
||||
tenant_no VARCHAR(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
|
||||
order_num INT NULL COMMENT '排序号',
|
||||
remark VARCHAR(512) NULL COMMENT '备注',
|
||||
create_by VARCHAR(64) NULL COMMENT '创建人id',
|
||||
create_dept_id VARCHAR(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
|
||||
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
update_by VARCHAR(64) NULL COMMENT '更新人id',
|
||||
update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
del_flag TINYINT NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
|
||||
KEY idx_pl_tdb_link_transport (transport_id),
|
||||
KEY idx_pl_tdb_link_plan (plan_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运输-地磅出入库关联';
|
||||
@@ -0,0 +1,19 @@
|
||||
-- =============================================================================
|
||||
-- 运输管理 · 一级菜单更名 + 隐藏子菜单(运输管理、库存台账)
|
||||
-- 日期: 2026-06-20
|
||||
-- =============================================================================
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
UPDATE `sys_menu`
|
||||
SET
|
||||
`menu_name` = '运输管理',
|
||||
`remark` = '运输管理父菜单',
|
||||
`update_time` = NOW()
|
||||
WHERE `id` = 'PL_MENU_ROOT' AND `del_flag` = 0;
|
||||
|
||||
UPDATE `sys_menu`
|
||||
SET
|
||||
`visible` = '0',
|
||||
`update_time` = NOW()
|
||||
WHERE `id` IN ('PL_TRANSPORT', 'PL_INVENTORY') AND `del_flag` = 0;
|
||||
@@ -0,0 +1,20 @@
|
||||
-- =============================================================================
|
||||
-- 运输计划 · 危化品证上传菜单
|
||||
-- 日期: 2026-06-20
|
||||
-- =============================================================================
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
INSERT INTO `sys_menu` (
|
||||
`id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`,
|
||||
`is_frame`, `visible`, `status`, `tenant_no`, `order_num`, `remark`,
|
||||
`create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
|
||||
)
|
||||
SELECT
|
||||
'PL_PLAN_CERT', '危化品证上传', 'PL_MENU_ROOT', 'C', 'plan-cert', 'pl/plan-cert/index',
|
||||
'pl:plan-cert:list', 1, '1', '1', 'shanxia2.0', 11, '危化品购买证/运输证上传',
|
||||
'system', '', NOW(), NULL, NOW(), 0
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM `sys_menu` WHERE `id` = 'PL_PLAN_CERT' AND `del_flag` = 0
|
||||
);
|
||||
@@ -0,0 +1,22 @@
|
||||
-- 运输计划 · 新增计划弹窗 — 物流/产品/运输量字段增量
|
||||
-- 执行前请备份;MySQL 5.7+
|
||||
|
||||
ALTER TABLE `pl_plan`
|
||||
ADD COLUMN `pickup_address` varchar(500) DEFAULT NULL COMMENT '取货地址' AFTER `has_freight`,
|
||||
ADD COLUMN `pickup_time` datetime DEFAULT NULL COMMENT '取货时间' AFTER `pickup_address`,
|
||||
ADD COLUMN `pickup_notes` varchar(500) DEFAULT NULL COMMENT '取货注意事项' AFTER `pickup_time`,
|
||||
ADD COLUMN `destination_address` varchar(500) DEFAULT NULL COMMENT '目的地地址' AFTER `pickup_notes`,
|
||||
ADD COLUMN `delivery_time` datetime DEFAULT NULL COMMENT '送达时间' AFTER `destination_address`,
|
||||
ADD COLUMN `destination_notes` varchar(500) DEFAULT NULL COMMENT '目的地注意事项' AFTER `delivery_time`;
|
||||
|
||||
ALTER TABLE `pl_plan_product`
|
||||
ADD COLUMN `category_name` varchar(200) DEFAULT NULL COMMENT '产品分类' AFTER `unit`,
|
||||
ADD COLUMN `package_spec` varchar(200) DEFAULT NULL COMMENT '包装规格' AFTER `category_name`,
|
||||
ADD COLUMN `delivery_method` varchar(50) DEFAULT NULL COMMENT '送货方式' AFTER `package_spec`,
|
||||
ADD COLUMN `quantity` decimal(15,3) DEFAULT NULL COMMENT '合同数量' AFTER `delivery_method`,
|
||||
ADD COLUMN `tax_price` decimal(15,4) DEFAULT NULL COMMENT '含税单价' AFTER `quantity`,
|
||||
ADD COLUMN `tax_amount` decimal(15,2) DEFAULT NULL COMMENT '税费' AFTER `tax_price`,
|
||||
ADD COLUMN `tax_subtotal` decimal(15,2) DEFAULT NULL COMMENT '含税总价' AFTER `tax_amount`;
|
||||
|
||||
ALTER TABLE `pl_transport`
|
||||
ADD COLUMN `transport_qty` decimal(15,3) DEFAULT NULL COMMENT '运输量(按重量计费基数)' AFTER `unit`;
|
||||
@@ -0,0 +1,5 @@
|
||||
-- 运输计划产品明细 · 新增实际数量字段
|
||||
-- 执行前请备份;MySQL 5.7+
|
||||
|
||||
ALTER TABLE `pl_plan_product`
|
||||
ADD COLUMN `actual_qty` decimal(15,3) DEFAULT NULL COMMENT '实际数量' AFTER `quantity`;
|
||||
@@ -0,0 +1,11 @@
|
||||
-- 回滚:20260620_pl_plan_transport_prefill.sql
|
||||
-- 撤销 pl_plan 上误加的运输预选冗余字段(改由 pl_transport 草稿子表承载)
|
||||
-- 执行前请备份;MySQL 5.7+
|
||||
|
||||
ALTER TABLE `pl_plan`
|
||||
DROP COLUMN `has_invoice`,
|
||||
DROP COLUMN `freight_price`,
|
||||
DROP COLUMN `transport_qty`,
|
||||
DROP COLUMN `freight_type`,
|
||||
DROP COLUMN `distance_km`,
|
||||
DROP COLUMN `carrier_id`;
|
||||
@@ -0,0 +1,27 @@
|
||||
-- =============================================================================
|
||||
-- 运输计划 · 山峡自有车辆菜单(更名 + 增量)
|
||||
-- 日期: 2026-06-20
|
||||
-- =============================================================================
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
INSERT INTO `sys_menu` (
|
||||
`id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`,
|
||||
`is_frame`, `visible`, `status`, `tenant_no`, `order_num`, `remark`,
|
||||
`create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`
|
||||
)
|
||||
SELECT
|
||||
'PL_SELF_VEHICLE', '山峡自有车辆', 'PL_MENU_ROOT', 'C', 'self-vehicle', 'pl/self-vehicle/index',
|
||||
'pl:self-vehicle:list', 1, '1', '1', 'shanxia2.0', 4, '自有类型车辆管理',
|
||||
'system', '', NOW(), NULL, NOW(), 0
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM `sys_menu` WHERE `id` = 'PL_SELF_VEHICLE' AND `del_flag` = 0
|
||||
);
|
||||
|
||||
UPDATE `sys_menu`
|
||||
SET
|
||||
`menu_name` = '山峡自有车辆',
|
||||
`remark` = '自有类型车辆管理',
|
||||
`update_time` = NOW()
|
||||
WHERE `id` = 'PL_SELF_VEHICLE' AND `del_flag` = 0;
|
||||
@@ -0,0 +1,24 @@
|
||||
-- =============================================================================
|
||||
-- 一体化门户 · 隐藏控制台菜单
|
||||
-- 日期: 2026-06-20
|
||||
-- =============================================================================
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
UPDATE `sys_menu`
|
||||
SET
|
||||
`visible` = '0',
|
||||
`update_time` = NOW()
|
||||
WHERE `id` = 'DSH000000000000000000000000000001' AND `del_flag` = 0;
|
||||
|
||||
UPDATE `sys_menu`
|
||||
SET
|
||||
`visible` = '0',
|
||||
`update_time` = NOW()
|
||||
WHERE `menu_name` = '控制台'
|
||||
AND `parent_id` IN (
|
||||
SELECT `id` FROM (
|
||||
SELECT `id` FROM `sys_menu` WHERE `menu_name` IN ('Web管理端', '管理端') AND `del_flag` = 0 LIMIT 1
|
||||
) AS web_root
|
||||
)
|
||||
AND `del_flag` = 0;
|
||||
@@ -0,0 +1,23 @@
|
||||
-- 报销申请单:报销日期 + 标题序号(同日报销日期下序号唯一,支持高并发)
|
||||
-- 兼容 MySQL 5.7(不支持 DEFAULT (CURRENT_DATE) 表达式默认值)
|
||||
|
||||
ALTER TABLE `bx_reimburse_apply`
|
||||
ADD COLUMN `reimburse_date` date NULL COMMENT '报销日期' AFTER `title`,
|
||||
ADD COLUMN `title_seq` int(11) DEFAULT NULL COMMENT '标题序号(同租户同报销日期下自增,自动生成标题时使用)' AFTER `reimburse_date`;
|
||||
|
||||
UPDATE `bx_reimburse_apply`
|
||||
SET `reimburse_date` = DATE(`create_time`)
|
||||
WHERE `reimburse_date` IS NULL;
|
||||
|
||||
ALTER TABLE `bx_reimburse_apply`
|
||||
MODIFY COLUMN `reimburse_date` date NOT NULL COMMENT '报销日期';
|
||||
|
||||
UPDATE `bx_reimburse_apply`
|
||||
SET `title_seq` = CAST(RIGHT(`title`, 3) AS UNSIGNED)
|
||||
WHERE `title_seq` IS NULL
|
||||
AND `title` REGEXP '报销单[0-9]{11}$'
|
||||
AND RIGHT(`title`, 3) REGEXP '^[0-9]{3}$';
|
||||
|
||||
ALTER TABLE `bx_reimburse_apply`
|
||||
ADD UNIQUE KEY `uk_tenant_reimburse_date_title_seq` (`tenant_no`, `reimburse_date`, `title_seq`),
|
||||
ADD KEY `idx_reimburse_date` (`reimburse_date`);
|
||||
@@ -0,0 +1,620 @@
|
||||
-- =============================================================================
|
||||
-- 运输计划管理模块 DDL
|
||||
-- 生成时间: 2026-06-11
|
||||
-- 说明: pl_ 前缀,所有计划相关表
|
||||
-- =============================================================================
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- 1. 基础数据:承运商、车辆、人员、证书
|
||||
-- -----------------------------------------------------------------------------
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for pl_carrier (承运商表)
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `pl_carrier`;
|
||||
CREATE TABLE `pl_carrier` (
|
||||
`id` varchar(64) NOT NULL COMMENT '主键ID',
|
||||
`carrier_name` varchar(200) NOT NULL COMMENT '承运商名称',
|
||||
`contact_name` varchar(100) DEFAULT NULL COMMENT '联系人',
|
||||
`contact_phone` varchar(32) DEFAULT NULL COMMENT '联系电话',
|
||||
`status` char(1) NOT NULL DEFAULT '1' COMMENT '合作状态 1-合作中 0-已终止',
|
||||
`tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
|
||||
`order_num` int(11) DEFAULT NULL COMMENT '排序号',
|
||||
`remark` varchar(512) DEFAULT NULL COMMENT '备注',
|
||||
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
|
||||
`create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_tenant` (`tenant_no`),
|
||||
KEY `idx_status` (`status`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='承运商表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for pl_vehicle (车辆表)
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `pl_vehicle`;
|
||||
CREATE TABLE `pl_vehicle` (
|
||||
`id` varchar(64) NOT NULL COMMENT '主键ID',
|
||||
`vehicle_type` varchar(20) NOT NULL COMMENT '车辆类型 self-自有 carrier-承运商',
|
||||
`carrier_id` varchar(64) DEFAULT NULL COMMENT '承运商ID(类型为承运商时必填)',
|
||||
`carrier_name` varchar(200) DEFAULT NULL COMMENT '承运商名称(冗余)',
|
||||
`license_plate` varchar(20) NOT NULL COMMENT '车牌号',
|
||||
`load_capacity` decimal(10,2) DEFAULT NULL COMMENT '载重(吨)',
|
||||
`vehicle_status` varchar(20) NOT NULL DEFAULT 'available' COMMENT '车辆状态 available-可用 maintaining-维修中 scrapped-报废',
|
||||
`tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
|
||||
`order_num` int(11) DEFAULT NULL COMMENT '排序号',
|
||||
`remark` varchar(512) DEFAULT NULL COMMENT '备注',
|
||||
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
|
||||
`create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_license_plate` (`license_plate`),
|
||||
KEY `idx_tenant` (`tenant_no`),
|
||||
KEY `idx_vehicle_type` (`vehicle_type`),
|
||||
KEY `idx_carrier_id` (`carrier_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='车辆表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for pl_personnel (人员表)
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `pl_personnel`;
|
||||
CREATE TABLE `pl_personnel` (
|
||||
`id` varchar(64) NOT NULL COMMENT '主键ID',
|
||||
`personnel_name` varchar(100) NOT NULL COMMENT '姓名',
|
||||
`phone_no` varchar(32) DEFAULT NULL COMMENT '手机号(非必填)',
|
||||
`age` int(11) DEFAULT NULL COMMENT '年龄',
|
||||
`id_card_no` varchar(32) DEFAULT NULL COMMENT '身份证号',
|
||||
`status` char(1) NOT NULL DEFAULT '1' COMMENT '状态 1-在职 0-停用',
|
||||
`tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
|
||||
`order_num` int(11) DEFAULT NULL COMMENT '排序号',
|
||||
`remark` varchar(512) DEFAULT NULL COMMENT '备注',
|
||||
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
|
||||
`create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_tenant` (`tenant_no`),
|
||||
KEY `idx_phone` (`phone_no`),
|
||||
KEY `idx_personnel_name` (`personnel_name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运输计划-人员表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for pl_cert (证书表)
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `pl_cert`;
|
||||
CREATE TABLE `pl_cert` (
|
||||
`id` varchar(64) NOT NULL COMMENT '主键ID',
|
||||
`owner_type` varchar(20) NOT NULL COMMENT '归属类型 vehicle-车辆 personnel-人员',
|
||||
`owner_id` varchar(64) NOT NULL COMMENT '归属主体ID',
|
||||
`cert_name` varchar(100) NOT NULL COMMENT '证书名称',
|
||||
`cert_no` varchar(64) DEFAULT NULL COMMENT '证号',
|
||||
`expire_date` date DEFAULT NULL COMMENT '有效期',
|
||||
`remind_days` int(11) NOT NULL DEFAULT 30 COMMENT '提前提醒天数',
|
||||
`attachment_urls` varchar(2000) DEFAULT NULL COMMENT '附件URL(逗号分隔)',
|
||||
`status` varchar(20) NOT NULL DEFAULT 'valid' COMMENT '状态 valid-有效 expired-已过期 revoked-已作废',
|
||||
`tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
|
||||
`order_num` int(11) DEFAULT NULL COMMENT '排序号',
|
||||
`remark` varchar(512) DEFAULT NULL COMMENT '备注',
|
||||
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
|
||||
`create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_tenant` (`tenant_no`),
|
||||
KEY `idx_owner` (`owner_type`, `owner_id`),
|
||||
KEY `idx_expire_date` (`expire_date`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运输计划-证书表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for pl_vehicle_personnel (车辆-人员关联表)
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `pl_vehicle_personnel`;
|
||||
CREATE TABLE `pl_vehicle_personnel` (
|
||||
`id` varchar(64) NOT NULL COMMENT '主键ID',
|
||||
`vehicle_id` varchar(64) NOT NULL COMMENT '车辆ID',
|
||||
`personnel_id` varchar(64) NOT NULL COMMENT '人员ID',
|
||||
`role` varchar(20) NOT NULL DEFAULT 'driver' COMMENT '角色 driver-司机 escort-押运员',
|
||||
`is_default` smallint(6) NOT NULL DEFAULT 0 COMMENT '是否默认司机 0-否 1-是',
|
||||
`tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
|
||||
`order_num` int(11) DEFAULT NULL COMMENT '排序号',
|
||||
`remark` varchar(512) DEFAULT NULL COMMENT '关联备注',
|
||||
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
|
||||
`create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_vehicle_id` (`vehicle_id`),
|
||||
KEY `idx_personnel_id` (`personnel_id`),
|
||||
KEY `idx_tenant` (`tenant_no`),
|
||||
KEY `idx_vehicle_role` (`vehicle_id`, `role`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='车辆-人员关联表';
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- 2. 计划管理:计划主表、产品明细、变更记录
|
||||
-- -----------------------------------------------------------------------------
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for pl_plan (计划主表)
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `pl_plan`;
|
||||
CREATE TABLE `pl_plan` (
|
||||
`id` varchar(64) NOT NULL COMMENT '主键ID',
|
||||
`plan_no` varchar(32) NOT NULL COMMENT '计划订单编号 SXDDHYYYYMMDD######',
|
||||
`plan_date` date NOT NULL COMMENT '计划日期',
|
||||
`belongs_company` varchar(20) NOT NULL COMMENT '归属公司 shanxia-安庆山峡 yundong-安徽云栋',
|
||||
`plan_type` varchar(20) NOT NULL COMMENT '单据类型 direct-直销单 inbound-入库单 outbound-出库单',
|
||||
`follow_status` varchar(30) NOT NULL DEFAULT 'draft' COMMENT '跟进状态',
|
||||
`transport_status` varchar(20) NOT NULL DEFAULT 'pending' COMMENT '运输安排状态 pending-待安排 arranged-已安排',
|
||||
`archive_status` varchar(20) NOT NULL DEFAULT 'unarchived' COMMENT '归档状态 unarchived-未归档 archived-已归档',
|
||||
`complete_status` varchar(10) NOT NULL DEFAULT 'no' COMMENT '完成状态 yes-是 no-否',
|
||||
`contract_id` varchar(64) DEFAULT NULL COMMENT 'CRM合同ID',
|
||||
`contract_no` varchar(50) DEFAULT NULL COMMENT '合同编号',
|
||||
`supplier_id` varchar(64) DEFAULT NULL COMMENT '供应商ID',
|
||||
`supplier_name` varchar(200) DEFAULT NULL COMMENT '供应商名称',
|
||||
`destination_id` varchar(64) DEFAULT NULL COMMENT '目的地ID',
|
||||
`destination_name` varchar(200) DEFAULT NULL COMMENT '目的地名称',
|
||||
`customer_id` varchar(64) DEFAULT NULL COMMENT '客户ID',
|
||||
`customer_name` varchar(200) DEFAULT NULL COMMENT '客户名称',
|
||||
`contact_name` varchar(100) DEFAULT NULL COMMENT '联系人',
|
||||
`contact_phone` varchar(32) DEFAULT NULL COMMENT '联系电话',
|
||||
`party_a` varchar(200) DEFAULT NULL COMMENT '甲方',
|
||||
`party_b` varchar(200) DEFAULT NULL COMMENT '乙方',
|
||||
`contract_start_date` date DEFAULT NULL COMMENT '合同开始日期',
|
||||
`contract_end_date` date DEFAULT NULL COMMENT '合同结束日期',
|
||||
`delivery_method` varchar(20) DEFAULT NULL COMMENT '送货方式 self_pick-山峡自提 one_ticket-一票制 customer_pick-客户自提',
|
||||
`settlement_method` varchar(50) DEFAULT NULL COMMENT '结算方式',
|
||||
`has_freight` smallint(6) NOT NULL DEFAULT 0 COMMENT '是否有运输费用 0-否 1-是',
|
||||
`transport_id` varchar(64) DEFAULT NULL COMMENT '运输ID',
|
||||
`transport_no` varchar(32) DEFAULT NULL COMMENT '运输编号',
|
||||
`vehicle_id` varchar(64) DEFAULT NULL COMMENT '车辆ID',
|
||||
`license_plate` varchar(20) DEFAULT NULL COMMENT '车牌号',
|
||||
`driver_id` varchar(64) DEFAULT NULL COMMENT '司机ID',
|
||||
`driver_name` varchar(100) DEFAULT NULL COMMENT '司机姓名',
|
||||
`total_amount` decimal(15,2) NOT NULL DEFAULT 0.00 COMMENT '计划总金额',
|
||||
`freight_amount` decimal(15,2) NOT NULL DEFAULT 0.00 COMMENT '运费合计',
|
||||
`notify_message` text COMMENT '通知信息(标准模板)',
|
||||
`follow_user_id` varchar(64) DEFAULT NULL COMMENT '跟进人ID',
|
||||
`follow_user_name` varchar(100) DEFAULT NULL COMMENT '跟进人姓名',
|
||||
`tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
|
||||
`order_num` int(11) DEFAULT NULL COMMENT '排序号',
|
||||
`remark` varchar(512) DEFAULT NULL COMMENT '备注',
|
||||
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
|
||||
`create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_plan_no` (`plan_no`),
|
||||
KEY `idx_tenant` (`tenant_no`),
|
||||
KEY `idx_plan_type` (`plan_type`),
|
||||
KEY `idx_follow_status` (`follow_status`),
|
||||
KEY `idx_plan_date` (`plan_date`),
|
||||
KEY `idx_contract_id` (`contract_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='计划主表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for pl_plan_product (计划产品明细表)
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `pl_plan_product`;
|
||||
CREATE TABLE `pl_plan_product` (
|
||||
`id` varchar(64) NOT NULL COMMENT '主键ID',
|
||||
`plan_id` varchar(64) NOT NULL COMMENT '计划ID',
|
||||
`product_id` varchar(64) NOT NULL COMMENT '产品ID',
|
||||
`product_no` varchar(50) NOT NULL COMMENT '产品编号',
|
||||
`product_name` varchar(200) NOT NULL COMMENT '产品名称',
|
||||
`model` varchar(100) DEFAULT NULL COMMENT '规格型号',
|
||||
`unit` varchar(20) NOT NULL DEFAULT '吨' COMMENT '单位',
|
||||
`is_explosive` smallint(6) NOT NULL DEFAULT 0 COMMENT '是否易制爆 0-否 1-是',
|
||||
`is_toxic` smallint(6) NOT NULL DEFAULT 0 COMMENT '是否易制毒 0-否 1-是',
|
||||
`purchase_cert_url` varchar(500) DEFAULT NULL COMMENT '购买证URL',
|
||||
`transport_cert_url` varchar(500) DEFAULT NULL COMMENT '运输证URL',
|
||||
`inbound_estimate_qty` decimal(15,3) DEFAULT NULL COMMENT '入库预估数',
|
||||
`inbound_qty` decimal(15,3) DEFAULT NULL COMMENT '入库数',
|
||||
`inbound_price` decimal(15,4) DEFAULT NULL COMMENT '入库价',
|
||||
`inbound_amount` decimal(15,2) DEFAULT NULL COMMENT '入库金额',
|
||||
`outbound_estimate_qty` decimal(15,3) DEFAULT NULL COMMENT '出库预估数',
|
||||
`outbound_qty` decimal(15,3) DEFAULT NULL COMMENT '出库数',
|
||||
`outbound_price` decimal(15,4) DEFAULT NULL COMMENT '出库单价',
|
||||
`outbound_amount` decimal(15,2) DEFAULT NULL COMMENT '出库金额',
|
||||
`tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
|
||||
`order_num` int(11) DEFAULT NULL COMMENT '排序号',
|
||||
`remark` varchar(512) DEFAULT NULL COMMENT '备注',
|
||||
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
|
||||
`create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_plan_id` (`plan_id`),
|
||||
KEY `idx_product_id` (`product_id`),
|
||||
KEY `idx_tenant` (`tenant_no`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='计划产品明细表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for pl_plan_change (计划变更记录表)
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `pl_plan_change`;
|
||||
CREATE TABLE `pl_plan_change` (
|
||||
`id` varchar(64) NOT NULL COMMENT '主键ID',
|
||||
`plan_id` varchar(64) NOT NULL COMMENT '计划ID',
|
||||
`change_type` varchar(30) NOT NULL COMMENT '变更类型',
|
||||
`change_content` text COMMENT '变更内容',
|
||||
`change_user_id` varchar(64) DEFAULT NULL COMMENT '变更人ID',
|
||||
`change_user_name` varchar(100) DEFAULT NULL COMMENT '变更人姓名',
|
||||
`tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
|
||||
`order_num` int(11) DEFAULT NULL COMMENT '排序号',
|
||||
`remark` varchar(512) DEFAULT NULL COMMENT '备注',
|
||||
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
|
||||
`create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_plan_id` (`plan_id`),
|
||||
KEY `idx_tenant` (`tenant_no`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='计划变更记录表';
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- 3. 运输管理:运输表、审批记录
|
||||
-- -----------------------------------------------------------------------------
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for pl_transport (运输表)
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `pl_transport`;
|
||||
CREATE TABLE `pl_transport` (
|
||||
`id` varchar(64) NOT NULL COMMENT '主键ID',
|
||||
`transport_no` varchar(32) NOT NULL COMMENT '运输编号 SXYS######',
|
||||
`vehicle_id` varchar(64) DEFAULT NULL COMMENT '车辆ID',
|
||||
`license_plate` varchar(20) DEFAULT NULL COMMENT '车牌号',
|
||||
`driver_id` varchar(64) DEFAULT NULL COMMENT '司机ID',
|
||||
`driver_name` varchar(100) DEFAULT NULL COMMENT '司机姓名',
|
||||
`driver_phone` varchar(32) DEFAULT NULL COMMENT '司机电话',
|
||||
`carrier_id` varchar(64) DEFAULT NULL COMMENT '承运商ID',
|
||||
`carrier_name` varchar(200) DEFAULT NULL COMMENT '承运商名称',
|
||||
`transport_medium` varchar(100) DEFAULT NULL COMMENT '运输介质',
|
||||
`start_point` varchar(200) DEFAULT NULL COMMENT '运输起点',
|
||||
`end_point` varchar(200) DEFAULT NULL COMMENT '运输终点',
|
||||
`distance_km` decimal(10,2) DEFAULT NULL COMMENT '运输公里数',
|
||||
`unit` varchar(20) DEFAULT NULL COMMENT '计量单位 吨/趟',
|
||||
`freight_price` decimal(15,4) DEFAULT NULL COMMENT '运输单价',
|
||||
`freight_amount` decimal(15,2) NOT NULL DEFAULT 0.00 COMMENT '运输费用',
|
||||
`freight_type` varchar(20) NOT NULL DEFAULT 'by_weight' COMMENT '运费计算方式 by_weight-按重量 by_trip-按趟次',
|
||||
`has_invoice` smallint(6) NOT NULL DEFAULT 0 COMMENT '是否开票 0-否 1-是',
|
||||
`qr_code` varchar(500) DEFAULT NULL COMMENT '二维码内容',
|
||||
`qr_expire_date` date DEFAULT NULL COMMENT '二维码有效期',
|
||||
`driver_access_token` varchar(64) DEFAULT NULL COMMENT '司机免登录访问令牌',
|
||||
`transport_status` varchar(20) NOT NULL DEFAULT 'draft' COMMENT '运输状态 draft-草稿 pending-待执行 executing-执行中 completed-已完成 cancelled-已取消',
|
||||
`approval_status` varchar(20) NOT NULL DEFAULT 'none' COMMENT '审批状态 none-无需 pending-审批中 approved-已通过 rejected-已拒绝',
|
||||
`feedback_time` datetime DEFAULT NULL COMMENT '回传时间',
|
||||
`feedback_qty` decimal(15,3) DEFAULT NULL COMMENT '回传数量',
|
||||
`feedback_images` text COMMENT '回传图片URLs(JSON数组)',
|
||||
`feedback_remark` varchar(500) DEFAULT NULL COMMENT '回传备注',
|
||||
`tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
|
||||
`order_num` int(11) DEFAULT NULL COMMENT '排序号',
|
||||
`remark` varchar(512) DEFAULT NULL COMMENT '备注',
|
||||
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
|
||||
`create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_transport_no` (`transport_no`),
|
||||
KEY `idx_tenant` (`tenant_no`),
|
||||
KEY `idx_transport_status` (`transport_status`),
|
||||
KEY `idx_vehicle_id` (`vehicle_id`),
|
||||
KEY `idx_driver_id` (`driver_id`),
|
||||
UNIQUE KEY `uk_pl_transport_driver_token` (`driver_access_token`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运输表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for pl_transport_db_link (运输-地磅出入库关联)
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `pl_transport_db_link`;
|
||||
CREATE TABLE `pl_transport_db_link` (
|
||||
`id` varchar(64) NOT NULL COMMENT '主键ID',
|
||||
`transport_id` varchar(64) NOT NULL COMMENT '运输单ID',
|
||||
`plan_id` varchar(64) NOT NULL COMMENT '运输计划ID',
|
||||
`plan_product_id` varchar(64) NOT NULL COMMENT '计划产品行ID',
|
||||
`db_purchase_plan_id` varchar(64) NOT NULL COMMENT '地磅计划ID',
|
||||
`db_inventory_id` varchar(64) NOT NULL COMMENT '出入库单ID',
|
||||
`tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
|
||||
`order_num` int(11) DEFAULT NULL COMMENT '排序号',
|
||||
`remark` varchar(512) DEFAULT NULL COMMENT '备注',
|
||||
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
|
||||
`create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_pl_tdb_link_transport` (`transport_id`),
|
||||
KEY `idx_pl_tdb_link_plan` (`plan_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运输-地磅出入库关联';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for pl_plan_transport (计划-运输关联表)
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `pl_plan_transport`;
|
||||
CREATE TABLE `pl_plan_transport` (
|
||||
`id` varchar(64) NOT NULL COMMENT '主键ID',
|
||||
`plan_id` varchar(64) NOT NULL COMMENT '计划ID',
|
||||
`transport_id` varchar(64) NOT NULL COMMENT '运输ID',
|
||||
`tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
|
||||
`order_num` int(11) DEFAULT NULL COMMENT '排序号',
|
||||
`remark` varchar(512) DEFAULT NULL COMMENT '备注',
|
||||
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
|
||||
`create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_plan_id` (`plan_id`),
|
||||
KEY `idx_transport_id` (`transport_id`),
|
||||
KEY `idx_tenant` (`tenant_no`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='计划-运输关联表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for pl_transport_approval (运输审批记录表)
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `pl_transport_approval`;
|
||||
CREATE TABLE `pl_transport_approval` (
|
||||
`id` varchar(64) NOT NULL COMMENT '主键ID',
|
||||
`transport_id` varchar(64) NOT NULL COMMENT '运输ID',
|
||||
`approver_id` varchar(64) NOT NULL COMMENT '审批人ID',
|
||||
`approver_name` varchar(100) NOT NULL COMMENT '审批人姓名',
|
||||
`approval_order` int(11) NOT NULL COMMENT '审批顺序',
|
||||
`status` varchar(20) NOT NULL DEFAULT 'pending' COMMENT '审批状态 pending-待审批 approved-已通过 rejected-已拒绝',
|
||||
`comment` varchar(500) DEFAULT NULL COMMENT '审批意见',
|
||||
`approval_time` datetime DEFAULT NULL COMMENT '审批时间',
|
||||
`tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
|
||||
`order_num` int(11) DEFAULT NULL COMMENT '排序号',
|
||||
`remark` varchar(512) DEFAULT NULL COMMENT '备注',
|
||||
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
|
||||
`create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_transport_id` (`transport_id`),
|
||||
KEY `idx_approver_id` (`approver_id`),
|
||||
KEY `idx_tenant` (`tenant_no`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运输审批记录表';
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- 4. 运费结算
|
||||
-- -----------------------------------------------------------------------------
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for pl_freight_settlement (运费结算表)
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `pl_freight_settlement`;
|
||||
CREATE TABLE `pl_freight_settlement` (
|
||||
`id` varchar(64) NOT NULL COMMENT '主键ID',
|
||||
`settlement_no` varchar(32) NOT NULL COMMENT '结算单编号',
|
||||
`total_freight` decimal(15,2) NOT NULL DEFAULT 0.00 COMMENT '运费合计',
|
||||
`invoice_amount` decimal(15,2) DEFAULT NULL COMMENT '发票金额',
|
||||
`invoice_no` varchar(50) DEFAULT NULL COMMENT '发票号',
|
||||
`invoice_date` date DEFAULT NULL COMMENT '开票日期',
|
||||
`settlement_status` varchar(20) NOT NULL DEFAULT 'pending' COMMENT '结算状态 pending-待提交 submitted-已提交 approved-审核通过 confirmed-已确认',
|
||||
`tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
|
||||
`order_num` int(11) DEFAULT NULL COMMENT '排序号',
|
||||
`remark` varchar(512) DEFAULT NULL COMMENT '备注',
|
||||
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
|
||||
`create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_settlement_no` (`settlement_no`),
|
||||
KEY `idx_tenant` (`tenant_no`),
|
||||
KEY `idx_settlement_status` (`settlement_status`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运费结算表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for pl_freight_settlement_transport (结算单-运输关联表)
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `pl_freight_settlement_transport`;
|
||||
CREATE TABLE `pl_freight_settlement_transport` (
|
||||
`id` varchar(64) NOT NULL COMMENT '主键ID',
|
||||
`settlement_id` varchar(64) NOT NULL COMMENT '结算单ID',
|
||||
`transport_id` varchar(64) NOT NULL COMMENT '运输ID',
|
||||
`freight_amount` decimal(15,2) NOT NULL COMMENT '运费金额',
|
||||
`tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
|
||||
`order_num` int(11) DEFAULT NULL COMMENT '排序号',
|
||||
`remark` varchar(512) DEFAULT NULL COMMENT '备注',
|
||||
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
|
||||
`create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_settlement_id` (`settlement_id`),
|
||||
KEY `idx_transport_id` (`transport_id`),
|
||||
KEY `idx_tenant` (`tenant_no`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='结算单-运输关联表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for pl_remittance_voucher (汇款凭证表)
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `pl_remittance_voucher`;
|
||||
CREATE TABLE `pl_remittance_voucher` (
|
||||
`id` varchar(64) NOT NULL COMMENT '主键ID',
|
||||
`settlement_id` varchar(64) NOT NULL COMMENT '结算单ID',
|
||||
`voucher_no` varchar(32) DEFAULT NULL COMMENT '凭证编号',
|
||||
`remittance_date` date DEFAULT NULL COMMENT '汇款日期',
|
||||
`remittance_amount` decimal(15,2) DEFAULT NULL COMMENT '汇款金额',
|
||||
`voucher_urls` text COMMENT '凭证文件URLs(JSON数组)',
|
||||
`tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
|
||||
`order_num` int(11) DEFAULT NULL COMMENT '排序号',
|
||||
`remark` varchar(512) DEFAULT NULL COMMENT '备注',
|
||||
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
|
||||
`create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_settlement_id` (`settlement_id`),
|
||||
KEY `idx_tenant` (`tenant_no`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='汇款凭证表';
|
||||
|
||||
-- -----------------------------------------------------------------------------
|
||||
-- 5. 库存管理
|
||||
-- -----------------------------------------------------------------------------
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for pl_inventory (库存表)
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `pl_inventory`;
|
||||
CREATE TABLE `pl_inventory` (
|
||||
`id` varchar(64) NOT NULL COMMENT '主键ID',
|
||||
`product_id` varchar(64) NOT NULL COMMENT '产品ID',
|
||||
`product_no` varchar(50) NOT NULL COMMENT '产品编号',
|
||||
`product_name` varchar(200) NOT NULL COMMENT '产品名称',
|
||||
`model` varchar(100) DEFAULT NULL COMMENT '规格型号',
|
||||
`unit` varchar(20) NOT NULL DEFAULT '吨' COMMENT '单位',
|
||||
`stock_qty` decimal(15,3) NOT NULL DEFAULT 0.000 COMMENT '库存数量',
|
||||
`stock_amount` decimal(15,2) NOT NULL DEFAULT 0.00 COMMENT '库存金额',
|
||||
`low_stock_warning` decimal(15,3) DEFAULT NULL COMMENT '最低库存预警值',
|
||||
`high_stock_warning` decimal(15,3) DEFAULT NULL COMMENT '最高库存预警值',
|
||||
`tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
|
||||
`order_num` int(11) DEFAULT NULL COMMENT '排序号',
|
||||
`remark` varchar(512) DEFAULT NULL COMMENT '备注',
|
||||
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
|
||||
`create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_product_id` (`product_id`),
|
||||
KEY `idx_tenant` (`tenant_no`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='库存表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for pl_inventory_transaction (库存流水表)
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `pl_inventory_transaction`;
|
||||
CREATE TABLE `pl_inventory_transaction` (
|
||||
`id` varchar(64) NOT NULL COMMENT '主键ID',
|
||||
`product_id` varchar(64) NOT NULL COMMENT '产品ID',
|
||||
`product_name` varchar(200) NOT NULL COMMENT '产品名称',
|
||||
`transaction_type` varchar(20) NOT NULL COMMENT '事务类型 inbound-入库 outbound-出库',
|
||||
`plan_id` varchar(64) DEFAULT NULL COMMENT '计划ID',
|
||||
`plan_no` varchar(32) DEFAULT NULL COMMENT '计划编号',
|
||||
`qty` decimal(15,3) NOT NULL COMMENT '变动数量(正数入库/负数出库)',
|
||||
`unit_price` decimal(15,4) NOT NULL COMMENT '单价',
|
||||
`amount` decimal(15,2) NOT NULL COMMENT '金额',
|
||||
`stock_after` decimal(15,3) NOT NULL COMMENT '变动后库存',
|
||||
`tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
|
||||
`order_num` int(11) DEFAULT NULL COMMENT '排序号',
|
||||
`remark` varchar(512) DEFAULT NULL COMMENT '备注',
|
||||
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
|
||||
`create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_product_id` (`product_id`),
|
||||
KEY `idx_transaction_type` (`transaction_type`),
|
||||
KEY `idx_plan_id` (`plan_id`),
|
||||
KEY `idx_create_time` (`create_time`),
|
||||
KEY `idx_tenant` (`tenant_no`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='库存流水表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for pl_inventory_warning (库存预警表)
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `pl_inventory_warning`;
|
||||
CREATE TABLE `pl_inventory_warning` (
|
||||
`id` varchar(64) NOT NULL COMMENT '主键ID',
|
||||
`product_id` varchar(64) NOT NULL COMMENT '产品ID',
|
||||
`product_name` varchar(200) NOT NULL COMMENT '产品名称',
|
||||
`warning_type` varchar(20) NOT NULL COMMENT '预警类型 low-低于最低 high-高于最高',
|
||||
`current_qty` decimal(15,3) NOT NULL COMMENT '当前库存',
|
||||
`threshold_value` decimal(15,3) NOT NULL COMMENT '阈值',
|
||||
`status` varchar(20) NOT NULL DEFAULT 'pending' COMMENT '状态 pending-待处理 resolved-已处理',
|
||||
`resolve_time` datetime DEFAULT NULL COMMENT '处理时间',
|
||||
`resolve_remark` varchar(500) DEFAULT NULL COMMENT '处理备注',
|
||||
`tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
|
||||
`order_num` int(11) DEFAULT NULL COMMENT '排序号',
|
||||
`remark` varchar(512) DEFAULT NULL COMMENT '备注',
|
||||
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
|
||||
`create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_product_id` (`product_id`),
|
||||
KEY `idx_warning_type` (`warning_type`),
|
||||
KEY `idx_status` (`status`),
|
||||
KEY `idx_tenant` (`tenant_no`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='库存预警表';
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for pl_document_reminder (证件到期提醒表)
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `pl_document_reminder`;
|
||||
CREATE TABLE `pl_document_reminder` (
|
||||
`id` varchar(64) NOT NULL COMMENT '主键ID',
|
||||
`cert_id` varchar(64) DEFAULT NULL COMMENT '证书ID',
|
||||
`owner_type` varchar(20) DEFAULT NULL COMMENT '归属类型 vehicle/personnel',
|
||||
`owner_id` varchar(64) DEFAULT NULL COMMENT '归属主体ID',
|
||||
`owner_label` varchar(200) DEFAULT NULL COMMENT '归属展示名(车牌/姓名)',
|
||||
`driver_id` varchar(64) DEFAULT NULL COMMENT '司机/人员ID(兼容)',
|
||||
`driver_name` varchar(100) DEFAULT NULL COMMENT '司机/人员姓名(兼容)',
|
||||
`document_type` varchar(100) NOT NULL COMMENT '证件类型/证书名称',
|
||||
`document_no` varchar(50) DEFAULT NULL COMMENT '证件号',
|
||||
`expire_date` date NOT NULL COMMENT '到期日期',
|
||||
`days_remaining` int(11) NOT NULL COMMENT '剩余天数',
|
||||
`status` varchar(20) NOT NULL DEFAULT 'pending' COMMENT '状态 pending-待处理 resolved-已处理',
|
||||
`tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
|
||||
`order_num` int(11) DEFAULT NULL COMMENT '排序号',
|
||||
`remark` varchar(512) DEFAULT NULL COMMENT '备注',
|
||||
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
|
||||
`create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_cert_id` (`cert_id`),
|
||||
KEY `idx_driver_id` (`driver_id`),
|
||||
KEY `idx_document_type` (`document_type`),
|
||||
KEY `idx_expire_date` (`expire_date`),
|
||||
KEY `idx_status` (`status`),
|
||||
KEY `idx_tenant` (`tenant_no`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='证件到期提醒表';
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
|
||||
-- =============================================================================
|
||||
-- DDL 完成
|
||||
-- 共计 16 张表(含 pl_cert;pl_driver 已由 pl_personnel 替代)
|
||||
-- =============================================================================
|
||||
+971
-1
File diff suppressed because it is too large.
Load diff
Reference in new issue
Block a user