diff --git a/auth/src/main/resources/db/phase1-admin-accounts.sql b/auth/src/main/resources/db/phase1-admin-accounts.sql index b84c3e956..cfa329c3d 100644 --- a/auth/src/main/resources/db/phase1-admin-accounts.sql +++ b/auth/src/main/resources/db/phase1-admin-accounts.sql @@ -6,19 +6,20 @@ SET NAMES utf8mb4; INSERT INTO auth_account ( id, username, password_hash, display_name, account_status, - failed_login_count, token_version, default_tenant_id, + failed_login_count, token_version, password_change_required, default_tenant_id, operator_tenant_id, default_membership_id, default_app_code, deleted ) VALUES (1000001, 'platform_admin', '$2a$12$AMZJjd88leYPLI9uKvjZiew2CTQXI32BXoHFX.FrCi28/IeZ7mZ96', - '平台管理员', 'ACTIVE', 0, 1, 0, 0, 3000001, 'PLATFORM', 0), + '平台系统管理员', 'ACTIVE', 0, 1, 0, 0, 0, 3000001, 'PLATFORM', 0), (1000002, 'merchant_admin', '$2a$12$AMZJjd88leYPLI9uKvjZiew2CTQXI32BXoHFX.FrCi28/IeZ7mZ96', - '一期演示企业管理员', 'ACTIVE', 0, 1, 10001, 10001, 3000002, 'MERCHANT', 0) + 'IT 测试客户管理员', 'ACTIVE', 0, 1, 0, 10001, 10001, 3000002, 'MERCHANT', 0) ON DUPLICATE KEY UPDATE password_hash = VALUES(password_hash), display_name = VALUES(display_name), account_status = 'ACTIVE', failed_login_count = 0, locked_until = NULL, + password_change_required = VALUES(password_change_required), default_tenant_id = VALUES(default_tenant_id), operator_tenant_id = VALUES(operator_tenant_id), default_membership_id = VALUES(default_membership_id), diff --git a/deploy/sql/头程数据库统一增量-MySQL8.sql b/deploy/sql/头程数据库统一增量-MySQL8.sql index 53e7ca853..e27f4e424 100644 --- a/deploy/sql/头程数据库统一增量-MySQL8.sql +++ b/deploy/sql/头程数据库统一增量-MySQL8.sql @@ -243,6 +243,30 @@ PREPARE auth_password_change_required_stmt FROM @auth_password_change_required_s EXECUTE auth_password_change_required_stmt; DEALLOCATE PREPARE auth_password_change_required_stmt; +-- 开发/测试环境最小登录基线:一个平台系统管理员和一个 IT 测试客户管理员。 +-- 初始密码统一为 ChangeMe123!;只保存 BCrypt 哈希,不写入明文。 +INSERT INTO auth_account ( + id, username, password_hash, display_name, account_status, + failed_login_count, token_version, password_change_required, default_tenant_id, + operator_tenant_id, default_membership_id, default_app_code, deleted +) VALUES + (1000001, 'platform_admin', '$2a$12$AMZJjd88leYPLI9uKvjZiew2CTQXI32BXoHFX.FrCi28/IeZ7mZ96', + '平台系统管理员', 'ACTIVE', 0, 1, 0, 0, 0, 3000001, 'PLATFORM', 0), + (1000002, 'merchant_admin', '$2a$12$AMZJjd88leYPLI9uKvjZiew2CTQXI32BXoHFX.FrCi28/IeZ7mZ96', + 'IT 测试客户管理员', 'ACTIVE', 0, 1, 0, 10001, 10001, 3000002, 'MERCHANT', 0) +ON DUPLICATE KEY UPDATE + password_hash = VALUES(password_hash), + display_name = VALUES(display_name), + account_status = 'ACTIVE', + failed_login_count = 0, + locked_until = NULL, + password_change_required = VALUES(password_change_required), + default_tenant_id = VALUES(default_tenant_id), + operator_tenant_id = VALUES(operator_tenant_id), + default_membership_id = VALUES(default_membership_id), + default_app_code = VALUES(default_app_code), + deleted = 0; + CREATE TABLE IF NOT EXISTS auth_refresh_token ( id BIGINT NOT NULL COMMENT '刷新令牌记录ID(雪花ID)', token_hash CHAR(64) NOT NULL COMMENT '刷新令牌SHA-256摘要,不保存令牌明文', @@ -1052,9 +1076,9 @@ INSERT INTO iam_tenant ( approved_at, approved_by, created_by, deleted, version ) VALUES (0, 'PLATFORM', '虫虫出海平台', 'PLATFORM', 'ACTIVE', '虫虫出海平台', - NULL, '平台管理员', NULL, NULL, NOW(3), 1000001, 1000001, 0, 0), - (10001, 'PHASE1_DEMO', '一期演示企业', 'MERCHANT', 'ACTIVE', '一期演示企业有限公司', - '91310000PHASE10001', '企业管理员', '13800000000', 'merchant@example.com', + NULL, '平台系统管理员', NULL, NULL, NOW(3), 1000001, 1000001, 0, 0), + (10001, 'IT_TEST', 'IT 测试客户', 'MERCHANT', 'ACTIVE', 'IT 测试客户', + '91310000ITTEST0001', 'IT 测试客户管理员', '13800000000', 'it-test@example.com', NOW(3), 1000001, 1000001, 0, 0) ON DUPLICATE KEY UPDATE tenant_name = VALUES(tenant_name), tenant_type = VALUES(tenant_type), @@ -1066,9 +1090,9 @@ ON DUPLICATE KEY UPDATE INSERT INTO iam_user ( id, auth_user_id, user_type, display_name, phone, email, status, deleted, version ) VALUES - (2000001, 1000001, 'INTERNAL', '平台管理员', NULL, NULL, 'ACTIVE', 0, 0), - (2000002, 1000002, 'ENTERPRISE', '一期演示企业管理员', '13800000000', - 'merchant@example.com', 'ACTIVE', 0, 0) + (2000001, 1000001, 'INTERNAL', '平台系统管理员', NULL, NULL, 'ACTIVE', 0, 0), + (2000002, 1000002, 'ENTERPRISE', 'IT 测试客户管理员', '13800000000', + 'it-test@example.com', 'ACTIVE', 0, 0) ON DUPLICATE KEY UPDATE display_name = VALUES(display_name), phone = VALUES(phone), email = VALUES(email), status = 'ACTIVE', deleted = 0; @@ -5933,7 +5957,7 @@ INSERT INTO wh_pallet ( ) VALUES (193000000000200101,0,193000000000200001,'TP-001','木托盘',1.200000,8.000,'黄色','AVAILABLE',NULL,0,0), - (193000000000200102,0,193000000000200001,'TP-002','胶托盘',2.400000,12.000,'黑色','AVAILABLE',NULL,0,0) + (193000000000200102,0,193000000000200002,'TP-002','胶托盘',2.400000,12.000,'黑色','AVAILABLE',NULL,0,0) ON DUPLICATE KEY UPDATE tenant_id = 0, warehouse_id = VALUES(warehouse_id), @@ -5943,6 +5967,30 @@ ON DUPLICATE KEY UPDATE color = VALUES(color), remark = VALUES(remark); +-- 国内作业仓最小库位基线:每仓一个普通 A1 和一个系统共享溢出位 A0。 +-- 不初始化预占、占用或任何业务单据。 +INSERT INTO wh_location ( + id, tenant_id, warehouse_id, zone_code, zone_name, location_code, location_name, + location_type, max_weight_kg, shared_overflow, status, remark, created_by, updated_by +) +VALUES + (193000000000200201,0,193000000000200001,'A','A区','A1','A1 普通库位','PALLET',1000.000,0,'AVAILABLE',NULL,0,0), + (193000000000200202,0,193000000000200001,'A','A区','A0','A0 共享溢出位','PALLET',NULL,1,'AVAILABLE','系统共享临时溢出位',0,0), + (193000000000200203,0,193000000000200002,'A','A区','A1','A1 普通库位','PALLET',1000.000,0,'AVAILABLE',NULL,0,0), + (193000000000200204,0,193000000000200002,'A','A区','A0','A0 共享溢出位','PALLET',NULL,1,'AVAILABLE','系统共享临时溢出位',0,0) +ON DUPLICATE KEY UPDATE + tenant_id = 0, + warehouse_id = VALUES(warehouse_id), + zone_code = VALUES(zone_code), + zone_name = VALUES(zone_name), + location_name = VALUES(location_name), + location_type = VALUES(location_type), + max_weight_kg = VALUES(max_weight_kg), + shared_overflow = VALUES(shared_overflow), + status = 'AVAILABLE', + remark = VALUES(remark), + deleted = 0; + DROP TEMPORARY TABLE IF EXISTS tmp_wh_fba_public_master_data; CREATE TEMPORARY TABLE tmp_wh_fba_public_master_data ( warehouse_id_seed BIGINT UNSIGNED NOT NULL, diff --git a/iam/src/main/resources/db/phase1-admin-rbac.sql b/iam/src/main/resources/db/phase1-admin-rbac.sql index 2f6ab6a40..11143f480 100644 --- a/iam/src/main/resources/db/phase1-admin-rbac.sql +++ b/iam/src/main/resources/db/phase1-admin-rbac.sql @@ -26,9 +26,9 @@ INSERT INTO iam_tenant ( approved_at, approved_by, created_by, deleted, version ) VALUES (0, 'PLATFORM', '虫虫出海平台', 'PLATFORM', 'ACTIVE', '虫虫出海平台', - NULL, '平台管理员', NULL, NULL, NOW(3), 1000001, 1000001, 0, 0), - (10001, 'PHASE1_DEMO', '一期演示企业', 'MERCHANT', 'ACTIVE', '一期演示企业有限公司', - '91310000PHASE10001', '企业管理员', '13800000000', 'merchant@example.com', + NULL, '平台系统管理员', NULL, NULL, NOW(3), 1000001, 1000001, 0, 0), + (10001, 'IT_TEST', 'IT 测试客户', 'MERCHANT', 'ACTIVE', 'IT 测试客户', + '91310000ITTEST0001', 'IT 测试客户管理员', '13800000000', 'it-test@example.com', NOW(3), 1000001, 1000001, 0, 0) ON DUPLICATE KEY UPDATE tenant_name = VALUES(tenant_name), tenant_type = VALUES(tenant_type), @@ -40,9 +40,9 @@ ON DUPLICATE KEY UPDATE INSERT INTO iam_user ( id, auth_user_id, user_type, display_name, phone, email, status, deleted, version ) VALUES - (2000001, 1000001, 'INTERNAL', '平台管理员', NULL, NULL, 'ACTIVE', 0, 0), - (2000002, 1000002, 'ENTERPRISE', '一期演示企业管理员', '13800000000', - 'merchant@example.com', 'ACTIVE', 0, 0) + (2000001, 1000001, 'INTERNAL', '平台系统管理员', NULL, NULL, 'ACTIVE', 0, 0), + (2000002, 1000002, 'ENTERPRISE', 'IT 测试客户管理员', '13800000000', + 'it-test@example.com', 'ACTIVE', 0, 0) ON DUPLICATE KEY UPDATE display_name = VALUES(display_name), phone = VALUES(phone), email = VALUES(email), status = 'ACTIVE', deleted = 0; diff --git a/warehouse/src/main/resources/db/phase2-pallet-seed.sql b/warehouse/src/main/resources/db/phase2-pallet-seed.sql index c97815071..67373e44f 100644 --- a/warehouse/src/main/resources/db/phase2-pallet-seed.sql +++ b/warehouse/src/main/resources/db/phase2-pallet-seed.sql @@ -2,11 +2,11 @@ SET NAMES utf8mb4; USE baiyue_warehouse; --- 编码由平台维护接口自动生成;种子固定为 TP-001、TP-002。 +-- 编码由平台维护接口自动生成;两个国内作业仓各初始化一个可用托盘。 INSERT INTO wh_pallet(id,tenant_id,warehouse_id,pallet_code,pallet_type,capacity_cbm,weight_kg,color,status,remark,created_by,updated_by) VALUES (190000000000000101,0,190000000000000001,'TP-001','木托盘',1.200000,8.000,'黄色','AVAILABLE',NULL,0,0), - (190000000000000102,0,190000000000000001,'TP-002','胶托盘',2.400000,12.000,'黑色','AVAILABLE',NULL,0,0) + (190000000000000102,0,190000000000000002,'TP-002','胶托盘',2.400000,12.000,'黑色','AVAILABLE',NULL,0,0) ON DUPLICATE KEY UPDATE tenant_id=0, warehouse_id=VALUES(warehouse_id), @@ -15,3 +15,27 @@ ON DUPLICATE KEY UPDATE weight_kg=VALUES(weight_kg), color=VALUES(color), remark=VALUES(remark); + +-- 每个国内作业仓初始化一个普通库位和一个系统共享溢出位 A0。 +-- 这里只创建公共资源,不初始化预占、占用或业务单据。 +INSERT INTO wh_location( + id,tenant_id,warehouse_id,zone_code,zone_name,location_code,location_name, + location_type,max_weight_kg,shared_overflow,status,remark,created_by,updated_by +) +VALUES + (190000000000000201,0,190000000000000001,'A','A区','A1','A1 普通库位','PALLET',1000.000,0,'AVAILABLE',NULL,0,0), + (190000000000000202,0,190000000000000001,'A','A区','A0','A0 共享溢出位','PALLET',NULL,1,'AVAILABLE','系统共享临时溢出位',0,0), + (190000000000000203,0,190000000000000002,'A','A区','A1','A1 普通库位','PALLET',1000.000,0,'AVAILABLE',NULL,0,0), + (190000000000000204,0,190000000000000002,'A','A区','A0','A0 共享溢出位','PALLET',NULL,1,'AVAILABLE','系统共享临时溢出位',0,0) +ON DUPLICATE KEY UPDATE + tenant_id=0, + warehouse_id=VALUES(warehouse_id), + zone_code=VALUES(zone_code), + zone_name=VALUES(zone_name), + location_name=VALUES(location_name), + location_type=VALUES(location_type), + max_weight_kg=VALUES(max_weight_kg), + shared_overflow=VALUES(shared_overflow), + status='AVAILABLE', + remark=VALUES(remark), + deleted=0;