Files
JY1.0/sql/insert_sales_performance_test_data_20260728.sql

190 lines
7.8 KiB
Transact-SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- 修改人: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;