更新销售合同/提成/业绩、精工工序工价/生产审核/工时统计、仓储盘点/库存/补货/入库/库房管理,新增提成设置/销售业绩/库房管理/入库单移动端等模块及SQL脚本

This commit is contained in:
Developer
2026-08-05 08:13:08 +08:00
parent 33549c3787
commit fd84f9d3ca
94 changed files with 14531 additions and 345 deletions

View File

@@ -0,0 +1,189 @@
-- 修改人: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;