190 lines
7.8 KiB
Transact-SQL
190 lines
7.8 KiB
Transact-SQL
-- 修改人:Ld 修改时间:2026-07-28 15:26:14; 销售绩效组件测试数据,合同编号统一使用 TEST-JX- 前缀。
|
||
SET NOCOUNT ON;
|
||
|
||
BEGIN TRY
|
||
BEGIN TRANSACTION;
|
||
|
||
DECLARE @待清理项目 TABLE (项目流水号 int PRIMARY KEY);
|
||
|
||
INSERT INTO @待清理项目 (项目流水号)
|
||
SELECT 项目流水号
|
||
FROM dbo.PDM_项目名称
|
||
WHERE 合同编号 LIKE N'TEST-JX-%';
|
||
|
||
DELETE r
|
||
FROM dbo.财务管理_收款记录 r
|
||
INNER JOIN @待清理项目 p ON r.项目流水号 = p.项目流水号;
|
||
|
||
DELETE p
|
||
FROM dbo.PDM_项目名称 p
|
||
INNER JOIN @待清理项目 d ON p.项目流水号 = d.项目流水号;
|
||
|
||
DECLARE @测试项目 TABLE
|
||
(
|
||
场景 nvarchar(50) NOT NULL,
|
||
项目流水号 int NOT NULL
|
||
);
|
||
|
||
INSERT INTO dbo.PDM_项目名称
|
||
(
|
||
合同编号,
|
||
客户流水号,
|
||
合同金额,
|
||
付款方式流水号,
|
||
客户要求,
|
||
签订日期,
|
||
交货日期,
|
||
签订人,
|
||
合同备注,
|
||
是否生成订单,
|
||
操作日期,
|
||
合同类型,
|
||
操作者,
|
||
税率,
|
||
交货人,
|
||
提交日期,
|
||
收货人员,
|
||
交货期限,
|
||
是否启用,
|
||
通知人,
|
||
通知日期,
|
||
合同协议,
|
||
是否审核,
|
||
未收款项,
|
||
收款日期,
|
||
提成类型
|
||
)
|
||
OUTPUT N'跨月达标模块首单', inserted.项目流水号 INTO @测试项目(场景, 项目流水号)
|
||
VALUES
|
||
(
|
||
N'TEST-JX-202607-A',
|
||
2507,
|
||
100000,
|
||
2,
|
||
N'销售绩效测试:6月回款40%,7月累计达到90%,8月尾款。',
|
||
'2026-06-20',
|
||
'2026-08-20',
|
||
273,
|
||
N'销售绩效测试数据,可按 TEST-JX- 前缀清理。',
|
||
1,
|
||
GETDATE(),
|
||
1,
|
||
273,
|
||
0.13,
|
||
273,
|
||
'2026-06-20',
|
||
N'罗伟',
|
||
N'付款后30日',
|
||
1,
|
||
273,
|
||
GETDATE(),
|
||
N'销售绩效测试合同',
|
||
1,
|
||
0,
|
||
'2026-08-12',
|
||
N'首单提成(模块)'
|
||
);
|
||
|
||
INSERT INTO dbo.PDM_项目名称
|
||
(
|
||
合同编号, 客户流水号, 合同金额, 付款方式流水号, 客户要求, 签订日期, 交货日期, 签订人,
|
||
合同备注, 是否生成订单, 操作日期, 合同类型, 操作者, 税率, 交货人, 提交日期, 收货人员,
|
||
交货期限, 是否启用, 通知人, 通知日期, 合同协议, 是否审核, 未收款项, 收款日期, 提成类型
|
||
)
|
||
OUTPUT N'当月达标专机首单', inserted.项目流水号 INTO @测试项目(场景, 项目流水号)
|
||
VALUES
|
||
(
|
||
N'TEST-JX-202607-B', 2506, 200000, 2, N'销售绩效测试:7月全额回款。',
|
||
'2026-07-02', '2026-09-02', 5, N'销售绩效测试数据,可按 TEST-JX- 前缀清理。',
|
||
1, GETDATE(), 2, 5, 0.13, 5, '2026-07-02', N'最高管理员', N'付款后45日',
|
||
1, 5, GETDATE(), N'销售绩效测试合同', 1, 0, '2026-07-21', N'首单提成(专机)'
|
||
);
|
||
|
||
INSERT INTO dbo.PDM_项目名称
|
||
(
|
||
合同编号, 客户流水号, 合同金额, 付款方式流水号, 客户要求, 签订日期, 交货日期, 签订人,
|
||
合同备注, 是否生成订单, 操作日期, 合同类型, 操作者, 税率, 交货人, 提交日期, 收货人员,
|
||
交货期限, 是否启用, 通知人, 通知日期, 合同协议, 是否审核, 未收款项, 收款日期, 提成类型
|
||
)
|
||
OUTPUT N'复购当月达标', inserted.项目流水号 INTO @测试项目(场景, 项目流水号)
|
||
VALUES
|
||
(
|
||
N'TEST-JX-202608-C', 2505, 50000, 2, N'销售绩效测试:8月达到90%。',
|
||
'2026-08-03', '2026-09-15', 28, N'销售绩效测试数据,可按 TEST-JX- 前缀清理。',
|
||
1, GETDATE(), 1, 28, 0.13, 28, '2026-08-03', N'章乐红', N'付款后20日',
|
||
1, 28, GETDATE(), N'销售绩效测试合同', 1, 0, '2026-08-28', N'复购提成'
|
||
);
|
||
|
||
INSERT INTO dbo.PDM_项目名称
|
||
(
|
||
合同编号, 客户流水号, 合同金额, 付款方式流水号, 客户要求, 签订日期, 交货日期, 签订人,
|
||
合同备注, 是否生成订单, 操作日期, 合同类型, 操作者, 税率, 交货人, 提交日期, 收货人员,
|
||
交货期限, 是否启用, 通知人, 通知日期, 合同协议, 是否审核, 未收款项, 收款日期, 提成类型
|
||
)
|
||
OUTPUT N'退款扣回绩效', inserted.项目流水号 INTO @测试项目(场景, 项目流水号)
|
||
VALUES
|
||
(
|
||
N'TEST-JX-202608-D', 2504, 80000, 2, N'销售绩效测试:8月达标,9月退款扣回。',
|
||
'2026-08-10', '2026-10-10', 273, N'销售绩效测试数据,可按 TEST-JX- 前缀清理。',
|
||
1, GETDATE(), 2, 273, 0.13, 273, '2026-08-10', N'罗伟', N'付款后30日',
|
||
1, 273, GETDATE(), N'销售绩效测试合同', 1, 0, '2026-09-05', N'转介绍提成(专机)'
|
||
);
|
||
|
||
INSERT INTO dbo.PDM_项目名称
|
||
(
|
||
合同编号, 客户流水号, 合同金额, 付款方式流水号, 客户要求, 签订日期, 交货日期, 签订人,
|
||
合同备注, 是否生成订单, 操作日期, 合同类型, 操作者, 税率, 交货人, 提交日期, 收货人员,
|
||
交货期限, 是否启用, 通知人, 通知日期, 合同协议, 是否审核, 未收款项, 收款日期, 提成类型
|
||
)
|
||
OUTPUT N'未达90不计绩效', inserted.项目流水号 INTO @测试项目(场景, 项目流水号)
|
||
VALUES
|
||
(
|
||
N'TEST-JX-202609-E', 2503, 120000, 2, N'销售绩效测试:只回款60%,不应进入绩效。',
|
||
'2026-09-01', '2026-11-01', 5, N'销售绩效测试数据,可按 TEST-JX- 前缀清理。',
|
||
1, GETDATE(), 1, 5, 0.13, 5, '2026-09-01', N'最高管理员', N'付款后30日',
|
||
1, 5, GETDATE(), N'销售绩效测试合同', 1, 48000, '2026-09-18', N'转介绍提成(模块)'
|
||
);
|
||
|
||
INSERT INTO dbo.财务管理_收款记录 (项目流水号, 金额, 时间, 备注)
|
||
SELECT 项目流水号, 40000, '2026-06-25T10:00:00', N'销售绩效测试:首付款40%' FROM @测试项目 WHERE 场景 = N'跨月达标模块首单'
|
||
UNION ALL SELECT 项目流水号, 50000, '2026-07-10T15:30:00', N'销售绩效测试:累计达到90%' FROM @测试项目 WHERE 场景 = N'跨月达标模块首单'
|
||
UNION ALL SELECT 项目流水号, 10000, '2026-08-12T09:20:00', N'销售绩效测试:尾款10%' FROM @测试项目 WHERE 场景 = N'跨月达标模块首单'
|
||
UNION ALL SELECT 项目流水号, 120000, '2026-07-08T11:00:00', N'销售绩效测试:第一笔回款60%' FROM @测试项目 WHERE 场景 = N'当月达标专机首单'
|
||
UNION ALL SELECT 项目流水号, 80000, '2026-07-21T16:45:00', N'销售绩效测试:第二笔回款40%' FROM @测试项目 WHERE 场景 = N'当月达标专机首单'
|
||
UNION ALL SELECT 项目流水号, 45000, '2026-08-28T14:10:00', N'销售绩效测试:复购达到90%' FROM @测试项目 WHERE 场景 = N'复购当月达标'
|
||
UNION ALL SELECT 项目流水号, 72000, '2026-08-18T10:10:00', N'销售绩效测试:转介绍专机达到90%' FROM @测试项目 WHERE 场景 = N'退款扣回绩效'
|
||
UNION ALL SELECT 项目流水号, -8000, '2026-09-05T13:40:00', N'销售绩效测试:退款扣回绩效' FROM @测试项目 WHERE 场景 = N'退款扣回绩效'
|
||
UNION ALL SELECT 项目流水号, 72000, '2026-09-18T09:35:00', N'销售绩效测试:未达到90%,不计绩效' FROM @测试项目 WHERE 场景 = N'未达90不计绩效';
|
||
|
||
COMMIT TRANSACTION;
|
||
|
||
SELECT
|
||
t.场景,
|
||
p.项目流水号,
|
||
p.合同编号,
|
||
p.合同金额,
|
||
p.提成类型,
|
||
v.客户名称,
|
||
v.经手人 AS 销售员
|
||
FROM @测试项目 t
|
||
INNER JOIN dbo.PDM_项目名称 p ON t.项目流水号 = p.项目流水号
|
||
LEFT JOIN dbo.PDM_项目名称_视图 v ON p.项目流水号 = v.项目流水号
|
||
ORDER BY p.项目流水号;
|
||
END TRY
|
||
BEGIN CATCH
|
||
IF @@TRANCOUNT > 0
|
||
ROLLBACK TRANSACTION;
|
||
|
||
-- 修改人:Ld 修改时间:2026-07-28 15:26:14; 测试库 SQL Server 兼容旧版本错误抛出方式。
|
||
DECLARE @错误信息 nvarchar(4000);
|
||
DECLARE @错误级别 int;
|
||
DECLARE @错误状态 int;
|
||
|
||
SELECT
|
||
@错误信息 = ERROR_MESSAGE(),
|
||
@错误级别 = ERROR_SEVERITY(),
|
||
@错误状态 = ERROR_STATE();
|
||
|
||
RAISERROR(@错误信息, @错误级别, @错误状态);
|
||
END CATCH;
|