Compare commits
4
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ab903fe60f | ||
|
|
f4fd56f1ce | ||
|
|
89c15a7e60 | ||
|
|
b216246335 |
@@ -75,7 +75,7 @@
|
|||||||
|
|
||||||
| 所属库 | 保留内容 | 不包含 |
|
| 所属库 | 保留内容 | 不包含 |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| Auth / IAM | 平台主体、唯一平台管理员、8 个系统角色及企业管理员模板、419 个权限、600 条角色权限、7 个数据范围、客户编号起点;无人工完成订单权限 | 测试客户、固定客户账号、额外扩权 |
|
| Auth / IAM | 平台主体、唯一平台管理员、8 个系统角色及企业管理员模板、449 个权限、637 条角色权限、7 个数据范围、客户编号起点;无人工完成订单权限 | 测试客户、固定客户账号、额外扩权 |
|
||||||
| Warehouse | 既有公共仓目录 318 条及地址;义乌、东莞、洛杉矶、纽约 4 个作业仓收货能力 | 示例供应商、快递、往来单位、托盘、库位、预占、库存 |
|
| Warehouse | 既有公共仓目录 318 条及地址;义乌、东莞、洛杉矶、纽约 4 个作业仓收货能力 | 示例供应商、快递、往来单位、托盘、库位、预占、库存 |
|
||||||
| Firstleg | 112 个费用项目、15 个渠道目录、7 个始发地别名、4 个公共仓映射 | 客户报价、订单、入库、实测或履约记录 |
|
| Firstleg | 112 个费用项目、15 个渠道目录、7 个始发地别名、4 个公共仓映射 | 客户报价、订单、入库、实测或履约记录 |
|
||||||
| File / Finance | 导出互斥键 `GLOBAL_CREATE`、默认平台财务主体 | 文件任务、资金、账单或交易流水 |
|
| File / Finance | 导出互斥键 `GLOBAL_CREATE`、默认平台财务主体 | 文件任务、资金、账单或交易流水 |
|
||||||
|
|||||||
@@ -4235,9 +4235,7 @@ CREATE TABLE ll_selfop_sku_profile (
|
|||||||
KEY idx_selfop_profile_evidence (profile_run_id,earliest_evidence_at_utc,customer_code,sku_code)
|
KEY idx_selfop_profile_evidence (profile_run_id,earliest_evidence_at_utc,customer_code,sku_code)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='随发布版本固定的 SKU 维度与观察依据';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='随发布版本固定的 SKU 维度与观察依据';
|
||||||
|
|
||||||
|
CREATE TABLE ll_appointment_impact (
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS ll_appointment_impact (
|
|
||||||
container_booking_id VARCHAR(64) NOT NULL COMMENT '稳定柜次关联键,不作业务编号展示',
|
container_booking_id VARCHAR(64) NOT NULL COMMENT '稳定柜次关联键,不作业务编号展示',
|
||||||
impact_no VARCHAR(40) NOT NULL COMMENT '船期核对事项业务号',
|
impact_no VARCHAR(40) NOT NULL COMMENT '船期核对事项业务号',
|
||||||
baseline_json LONGTEXT NOT NULL COMMENT '已核对基准或首次变化前观察,原来源时间口径',
|
baseline_json LONGTEXT NOT NULL COMMENT '已核对基准或首次变化前观察,原来源时间口径',
|
||||||
@@ -4255,7 +4253,7 @@ CREATE TABLE IF NOT EXISTS ll_appointment_impact (
|
|||||||
CONSTRAINT chk_appointment_impact_status CHECK (status IN ('MONITORING','OPEN','RESOLVED'))
|
CONSTRAINT chk_appointment_impact_status CHECK (status IN ('MONITORING','OPEN','RESOLVED'))
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='一柜一个稳定船期变化核对事项,不改写预约或运输';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='一柜一个稳定船期变化核对事项,不改写预约或运输';
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS ll_appointment_impact_history (
|
CREATE TABLE ll_appointment_impact_history (
|
||||||
id BIGINT NOT NULL COMMENT '历史记录标识',
|
id BIGINT NOT NULL COMMENT '历史记录标识',
|
||||||
container_booking_id VARCHAR(64) NOT NULL COMMENT '关联柜次标识',
|
container_booking_id VARCHAR(64) NOT NULL COMMENT '关联柜次标识',
|
||||||
version INT NOT NULL COMMENT '记录版本',
|
version INT NOT NULL COMMENT '记录版本',
|
||||||
@@ -4304,7 +4302,7 @@ CREATE TABLE ll_return_sku_conversion (
|
|||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='退货实物SKU换标库存转换和冲回记录';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='退货实物SKU换标库存转换和冲回记录';
|
||||||
|
|
||||||
-- PDA cargo discard photo evidence
|
-- PDA cargo discard photo evidence
|
||||||
CREATE TABLE IF NOT EXISTS ll_cargo_discard_photo (
|
CREATE TABLE ll_cargo_discard_photo (
|
||||||
id BIGINT NOT NULL,
|
id BIGINT NOT NULL,
|
||||||
customer_id VARCHAR(64) NOT NULL,
|
customer_id VARCHAR(64) NOT NULL,
|
||||||
application_id BIGINT NOT NULL,
|
application_id BIGINT NOT NULL,
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ const domesticSchemas = ['baiyue_auth', 'baiyue_iam', 'baiyue_order', 'baiyue_wa
|
|||||||
const overseasSchemas = ['baiyue_lastleg', 'baiyue_lastlag_warehouse']
|
const overseasSchemas = ['baiyue_lastleg', 'baiyue_lastlag_warehouse']
|
||||||
|
|
||||||
test('两个入口分别只操作八个主业务库与两个仓储业务库,包括限定名引用', () => {
|
test('两个入口分别只操作八个主业务库与两个仓储业务库,包括限定名引用', () => {
|
||||||
for (const [sql, allowed, other, count] of [[cn, domesticSchemas, overseasSchemas, 226], [overseas, overseasSchemas, domesticSchemas, 159]]) {
|
for (const [sql, allowed, other, count] of [[cn, domesticSchemas, overseasSchemas, 226], [overseas, overseasSchemas, domesticSchemas, 197]]) {
|
||||||
assert.deepEqual([...sql.matchAll(/^CREATE DATABASE IF NOT EXISTS (\w+)/gm)].map(m => m[1]), allowed)
|
assert.deepEqual([...sql.matchAll(/^CREATE DATABASE IF NOT EXISTS (\w+)/gm)].map(m => m[1]), allowed)
|
||||||
assert.deepEqual([...new Set([...sql.matchAll(/^USE (\w+);/gm)].map(m => m[1]))], allowed)
|
assert.deepEqual([...new Set([...sql.matchAll(/^USE (\w+);/gm)].map(m => m[1]))], allowed)
|
||||||
const body = sql.replace(/^--.*$/gm, '')
|
const body = sql.replace(/^--.*$/gm, '')
|
||||||
@@ -39,7 +39,7 @@ test('纯初始化禁止迁移、数据回填、清理、重复建表和提前
|
|||||||
assert.doesNotMatch(body.replace(/^CREATE TRIGGER [\s\S]*?\$\$/gm, ''), /^\s*(?:UPDATE|DELETE FROM|REPLACE INTO)\b/gmi)
|
assert.doesNotMatch(body.replace(/^CREATE TRIGGER [\s\S]*?\$\$/gm, ''), /^\s*(?:UPDATE|DELETE FROM|REPLACE INTO)\b/gmi)
|
||||||
assert.doesNotMatch(body, /CREATE TABLE IF NOT EXISTS/i)
|
assert.doesNotMatch(body, /CREATE TABLE IF NOT EXISTS/i)
|
||||||
assert.equal((body.match(/AS initialization_status/g) ?? []).length, 1)
|
assert.equal((body.match(/AS initialization_status/g) ?? []).length, 1)
|
||||||
assert.match(body.trim(), /SELECT 'PASS' AS initialization_status, '(CN|OVERSEAS)' AS region, (226|159) AS initialized_tables;$/)
|
assert.match(body.trim(), /SELECT 'PASS' AS initialization_status, '(CN|OVERSEAS)' AS region, (226|197) AS initialized_tables;$/)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -100,10 +100,10 @@ test('公司车辆费用隔离于客户账务并约束实际付款金额', () =>
|
|||||||
test('退货出库不可变流水限制重复扣减并保存数量守恒快照', () => {
|
test('退货出库不可变流水限制重复扣减并保存数量守恒快照', () => {
|
||||||
const journal = table(overseas, 'baiyue_lastleg', 'll_return_inventory_outbound_movement')
|
const journal = table(overseas, 'baiyue_lastleg', 'll_return_inventory_outbound_movement')
|
||||||
assert.match(journal, /UNIQUE KEY uk_ll_return_outbound_pick_sku\(outbound_pick_id,sku_code\)/i)
|
assert.match(journal, /UNIQUE KEY uk_ll_return_outbound_pick_sku\(outbound_pick_id,sku_code\)/i)
|
||||||
assert.match(journal, /UNIQUE KEY uk_ll_return_outbound_carton_sku\(customer_id,carton_id,sku_code\)/i)
|
assert.match(journal, /KEY idx_ll_return_outbound_carton_sku\(customer_id,carton_id,sku_code\)/i)
|
||||||
assert.match(journal, /CHECK\(quantity>0 AND total_after>=0 AND available_after>=0/i)
|
assert.match(journal, /CHECK\(quantity>0 AND total_after>=0 AND available_after>=0/i)
|
||||||
assert.match(journal, /total_before-total_after=quantity AND available_before-available_after=quantity/i)
|
assert.match(journal, /total_before-total_after=quantity AND available_before-available_after=quantity/i)
|
||||||
assert.match(journal, /cartons_before-cartons_after=1 AND total_after>=available_after/i)
|
assert.match(journal, /cartons_after>=0 AND cartons_before-cartons_after IN \(0,1\) AND total_after>=available_after/i)
|
||||||
})
|
})
|
||||||
|
|
||||||
test('平台管理员由外部bcrypt引导,强制首登改密且不创建客户', () => {
|
test('平台管理员由外部bcrypt引导,强制首登改密且不创建客户', () => {
|
||||||
@@ -121,7 +121,7 @@ test('平台管理员由外部bcrypt引导,强制首登改密且不创建客
|
|||||||
})
|
})
|
||||||
|
|
||||||
test('必要系统种子完整保留,但不写入示例资源与业务事实', () => {
|
test('必要系统种子完整保留,但不写入示例资源与业务事实', () => {
|
||||||
for (const [name, count] of Object.entries({ iam_role: 8, iam_permission: 419, iam_role_permission: 600,
|
for (const [name, count] of Object.entries({ iam_role: 8, iam_permission: 422, iam_role_permission: 603,
|
||||||
iam_data_scope: 7, wh_warehouse: 318, wh_warehouse_address: 318, wh_service_capability: 4,
|
iam_data_scope: 7, wh_warehouse: 318, wh_warehouse_address: 318, wh_service_capability: 4,
|
||||||
fl_fee_item: 112, fl_price_channel_catalog: 15, fl_price_origin_alias: 7, fl_price_warehouse_mapping: 4,
|
fl_fee_item: 112, fl_price_channel_catalog: 15, fl_price_origin_alias: 7, fl_price_warehouse_mapping: 4,
|
||||||
file_export_task_guard: 1, fin_subject: 1 })) assert.equal(seedRows(cn, name).length, count, name)
|
file_export_task_guard: 1, fin_subject: 1 })) assert.equal(seedRows(cn, name).length, count, name)
|
||||||
|
|||||||
Reference in New Issue
Block a user