101 lines
4.4 KiB
Transact-SQL
101 lines
4.4 KiB
Transact-SQL
-- 财务台账 AI 库轻量视图与索引
|
||
-- 目标库:JSReportReplica
|
||
-- 只新增视图/索引并授予 caiwu 只读 SELECT;不修改任何 base 业务数据。
|
||
-- 建议用具备 DDL 权限的维护账号执行。
|
||
|
||
CREATE OR ALTER VIEW rpt.fin_ledger_workorder AS
|
||
SELECT Id, woNo, createby, created, completeTime, businessFieldList
|
||
FROM rpt.jst_workOrderInfo
|
||
WHERE woTypeId = N'9E5A531F48D94AF4B8611FA6918ADA29'
|
||
AND status = N'CONFIRMED';
|
||
GO
|
||
|
||
CREATE OR ALTER VIEW rpt.fin_ledger_withdrawal AS
|
||
SELECT a.Id, a.shop_id, b.shop_name, a.channel, a.fee_time, a.fee_name, a.amount, a.primary_key
|
||
FROM rpt.jst_originalBillInfo a
|
||
LEFT JOIN rpt.jst_shopInfo b ON b.shop_id = a.shop_id
|
||
WHERE a.inout_type = N'-1'
|
||
AND a.fee_name LIKE N'%提现%'
|
||
AND a.fee_time >= '2026-01-01';
|
||
GO
|
||
|
||
CREATE OR ALTER VIEW rpt.fin_ledger_dingtalk_workflow AS
|
||
SELECT processInstanceId, processCode, businessId, title, status, originatorUserId,
|
||
originatorDeptName, joinAt, finishTime
|
||
FROM rpt.ding_Workflow
|
||
WHERE processCode IN (
|
||
'PROC-B290696F-EC2A-4F76-87BA-E0A12E10D09F',
|
||
'PROC-C5159B8D-F412-4DF8-981D-64EBB8D03EB6',
|
||
'PROC-39DD70DE-DAB2-4A5F-B8F1-0B0B68BD0C88',
|
||
'PROC-BBAC7187-9E59-4942-941A-59C7EAF0CEDA',
|
||
'PROC-ACF09A14-B094-46B1-A9E2-8BB1F4E1FDCF',
|
||
'PROC-6407E98B-040A-4C96-AA7D-696650FC1A25'
|
||
);
|
||
GO
|
||
|
||
CREATE OR ALTER VIEW rpt.fin_ledger_dingtalk_scheme AS
|
||
SELECT s.id, s.processInstanceId, s.name, s.value
|
||
FROM rpt.ding_WorkflowScheme s
|
||
WHERE s.name IN (N'付款明细', N'收款费用明细', N'应付明细', N'固定资产报废或出售明细', N'收款合计', N'付款金额合计');
|
||
GO
|
||
|
||
CREATE OR ALTER VIEW rpt.fin_ledger_store_opening AS
|
||
SELECT a.flowId, a.AccountCode, a.AccountName, a.costType, a.money, a.paymentTime,
|
||
a.paymentAccount, b.erpShopName, b.platform, b.applyUser, b.applyDepartment
|
||
FROM rpt.fys_shopInfo_kingdeeCode_flow a
|
||
LEFT JOIN rpt.fys_shopInfo_flow b ON a.flowId = b.flowId
|
||
WHERE a.flowId IN (SELECT flowId FROM rpt.flow_flow WHERE flowType = 8 AND flowStatus = 3)
|
||
AND a.type = 1 AND a.isPaymentMade = 1 AND a.money > 0;
|
||
GO
|
||
|
||
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = 'IX_base_jst_workOrderInfo_fin_ledger')
|
||
CREATE NONCLUSTERED INDEX IX_base_jst_workOrderInfo_fin_ledger
|
||
ON base.jst_workOrderInfo (Id)
|
||
INCLUDE (woNo, createby, created, completeTime)
|
||
WHERE woTypeId = N'9E5A531F48D94AF4B8611FA6918ADA29' AND status = N'CONFIRMED'
|
||
WITH (ONLINE = ON, MAXDOP = 2);
|
||
GO
|
||
|
||
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = 'IX_base_jst_originalBillInfo_fin_ledger')
|
||
CREATE NONCLUSTERED INDEX IX_base_jst_originalBillInfo_fin_ledger
|
||
ON base.jst_originalBillInfo (fee_time)
|
||
INCLUDE (Id, shop_id, channel, fee_name, amount, primary_key)
|
||
WHERE inout_type = N'-1' AND fee_time >= '2026-01-01'
|
||
WITH (ONLINE = ON, MAXDOP = 4, SORT_IN_TEMPDB = ON);
|
||
GO
|
||
|
||
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = 'IX_base_ding_Workflow_fin_ledger')
|
||
CREATE NONCLUSTERED INDEX IX_base_ding_Workflow_fin_ledger
|
||
ON base.ding_Workflow (joinAt, processCode)
|
||
INCLUDE (processInstanceId, businessId, title, status, originatorUserId, originatorDeptName, finishTime)
|
||
WITH (ONLINE = ON, MAXDOP = 2);
|
||
GO
|
||
|
||
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = 'IX_base_flow_flow_fin_ledger')
|
||
CREATE NONCLUSTERED INDEX IX_base_flow_flow_fin_ledger
|
||
ON base.flow_flow (flowType, flowStatus, flowId)
|
||
INCLUDE (applyUser)
|
||
WITH (ONLINE = ON, MAXDOP = 2);
|
||
GO
|
||
|
||
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = 'IX_base_fys_shopInfo_kingdeeCode_flow_fin_ledger')
|
||
CREATE NONCLUSTERED INDEX IX_base_fys_shopInfo_kingdeeCode_flow_fin_ledger
|
||
ON base.fys_shopInfo_kingdeeCode_flow (flowId)
|
||
INCLUDE (type, isPaymentMade, paymentTime, paymentAccount, costType, money, AccountCode, AccountName)
|
||
WITH (ONLINE = ON, MAXDOP = 2);
|
||
GO
|
||
|
||
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = 'IX_base_fys_shopInfo_flow_fin_ledger')
|
||
CREATE NONCLUSTERED INDEX IX_base_fys_shopInfo_flow_fin_ledger
|
||
ON base.fys_shopInfo_flow (flowId)
|
||
INCLUDE (erpShopName, platform, applyUser, applyDepartment)
|
||
WITH (ONLINE = ON, MAXDOP = 2);
|
||
GO
|
||
|
||
GRANT SELECT ON OBJECT::rpt.fin_ledger_workorder TO [caiwu];
|
||
GRANT SELECT ON OBJECT::rpt.fin_ledger_withdrawal TO [caiwu];
|
||
GRANT SELECT ON OBJECT::rpt.fin_ledger_dingtalk_workflow TO [caiwu];
|
||
GRANT SELECT ON OBJECT::rpt.fin_ledger_dingtalk_scheme TO [caiwu];
|
||
GRANT SELECT ON OBJECT::rpt.fin_ledger_store_opening TO [caiwu];
|
||
GO
|