From d1024d1c21f8c7e89c39835abd5b056eaea10ca7 Mon Sep 17 00:00:00 2001 From: yuyubo <1870149533@qq.com> Date: Tue, 8 Jul 2025 16:54:10 +0800 Subject: [PATCH] 11 --- .../SBUYingShouBiao/SBUYingShouBiao.cs | 20 ++++++++-- 应收款SBU的SQL.sql | 34 +++++++++++++---- 收款单核销流水存储过程.sql | 37 ++++++++++++++++--- 3 files changed, 74 insertions(+), 17 deletions(-) diff --git a/Pilot.Report.Exploitation/SBUYingShouBiao/SBUYingShouBiao.cs b/Pilot.Report.Exploitation/SBUYingShouBiao/SBUYingShouBiao.cs index 273d8ac..da70ffe 100644 --- a/Pilot.Report.Exploitation/SBUYingShouBiao/SBUYingShouBiao.cs +++ b/Pilot.Report.Exploitation/SBUYingShouBiao/SBUYingShouBiao.cs @@ -119,7 +119,7 @@ namespace Pilot.Report.Exploitation.SBUYingShouBiao header.AddChild("预发货到期应收账款", new LocaleValue("预发货到期应收账款", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney); header.AddChild("预发货回款额", new LocaleValue("预发货回款额", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney); header.AddChild("预发货回款率", new LocaleValue("预发货回款率", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney); - header.AddChild("回款目标", new LocaleValue("回款目标", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney); + header.AddChild("回款目标", new LocaleValue("回款目标(万元)", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney); //header.AddChild("应收款上限", new LocaleValue("应收款上限", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney); //header.AddChild("回款达标率", new LocaleValue("回款达标率", this.Context.UserLocale.LCID), SqlStorageType.SqlMoney); return header; @@ -138,8 +138,8 @@ namespace Pilot.Report.Exploitation.SBUYingShouBiao SQL查询字符串,提取所需数据并将结果存入临时表 */ string sql = string.Format($@"/*dialect*/ -SELECT ROW_NUMBER() OVER(ORDER BY SBU) AS FIDENTITYID,a.*,[上年度应收额]=[上年度应收额2]-[本年回款额] -,[回款率]=CASE WHEN ([本年实际业绩额]+[上年度应收额2]-[本年回款额]-[本年专责小组应收额]) <>0 THEN ([本年回款额]-[本年专责小组回款额])/([本年实际业绩额]+[上年度应收额2]-[本年回款额]-[本年专责小组应收额]) +SELECT ROW_NUMBER() OVER(ORDER BY SBU) AS FIDENTITYID,a.*,[上年度应收额]=[当前业绩总和]-[本年实际业绩额] +,[回款率]=CASE WHEN ([当前应收]-[本年专责小组应收额]) <>0 THEN ([本年回款额]-[本年专责小组回款额])/([当前应收]-[本年专责小组应收额]) ELSE 0 END ,[预发货回款率]=CASE WHEN [预发货到期应收账款] >0 THEN [预发货回款额]/[预发货到期应收账款] ELSE 0 end into {tableName} @@ -171,7 +171,19 @@ WHERE b.FDocumentStatus='C' AND aa.FID IN ) ,0)) ,[本年专责小组应收额]=ISNULL((SELECT SUM(aa.实际已出货应收款合计) FROM ZRP_YingShouMingXi_yuyubo aa where aa.账龄月>12 AND aa.SBU=A.SBU),0) - ,[上年度应收额2]=ISNULL((SELECT SUM(aa.应收款合计) FROM ZRP_YingShouMingXi_yuyubo aa where aa.SBU=A.SBU),0) + ,[当前业绩总和]= (ISNULL(( + SELECT SUM(aa.FBILLALLAMOUNT_LC) +FROM T_SAL_ORDERFIN aa + LEFT JOIN T_SAL_ORDER B + ON aa.FID = B.FID + WHERE b.FDocumentStatus='C' AND aa.FID IN + ( + SELECT DISTINCT akk.销售单主键ID + FROM ZRP_YingShouMingXi_yuyubo akk + WHERE akk.SBU = a.SBU + ) ) + ,0)) + ,[当前应收]= (SUM(a.应收款合计*ISNULL(a.[收款条件分摊比例],100)*0.01 )) ,[预发货到期应收账款]=ISNULL((SELECT SUM(aa.到期金额*aa.汇率) FROM ZRP_YingShouMingXi_yuyubo aa where aa.收款条件 LIKE '款到发货%'AND aa.SBU=A.SBU),0) ,[预发货回款额]=ISNULL((SELECT SUM(aa.累计到款金额*aa.[收款条件分摊比例]*0.01) FROM ZRP_YingShouMingXi_yuyubo aa where aa.收款条件 LIKE '款到发货%'AND aa.SBU=A.SBU AND aa.到期金额 >0),0) ,[已到期应收账款]=SUM(a.到期金额*a.汇率) diff --git a/应收款SBU的SQL.sql b/应收款SBU的SQL.sql index 738116b..dfa4a8b 100644 --- a/应收款SBU的SQL.sql +++ b/应收款SBU的SQL.sql @@ -1,6 +1,6 @@ -SELECT a.*,[Ӧն]=[Ӧն2]-[ؿ] -,[ؿ]=CASE WHEN ([ʵҵ]+[Ӧն2]-[ؿ]-[רСӦն]) <>0 THEN ([ؿ]-[רСؿ])/([ʵҵ]+[Ӧն2]-[ؿ]-[רСӦն]) +SELECT a.*,[Ӧն]=[ǰҵܺ]-[ʵҵ],[ǰҵܺ],[ؿ],[ʵҵ] +,[ؿ]=CASE WHEN ([ǰӦ]-[רСӦն]) <>0 THEN ([ؿ]-[רСؿ])/([ǰӦ]-[רСӦն]) ELSE 0 END ,[Ԥؿ]=CASE WHEN [ԤӦ˿] >0 THEN [Ԥؿ]/[ԤӦ˿] ELSE 0 END @@ -23,21 +23,39 @@ WHERE [XiaoShouFid] IN (SELECT akk. FROM T_SAL_ORDERFIN aa LEFT JOIN T_SAL_ORDER B ON aa.FID = B.FID -WHERE b.FDocumentStatus='C' AND aa.FID IN +WHERE b.FDocumentStatus='C' AND aa.FID IN ( SELECT DISTINCT akk.۵ID FROM ZRP_YingShouMingXi_yuyubo akk - WHERE akk.SBU = a.SBU + WHERE akk.SBU = a.SBU ) AND (( B.FCHANGEDATE >= '2025-01-01 00:00:00' AND B.FCHANGEDATE < '2026-01-01 00:00:00') OR (b.FDate >= '2025-01-01 00:00:00' AND B.FDate < '2026-01-01 00:00:00' ) ) ) ,0)) ,[רСӦն]=ISNULL((SELECT SUM(aa.ʵѳӦտϼ) FROM ZRP_YingShouMingXi_yuyubo aa where aa.>12 AND aa.SBU=A.SBU),0) - ,[Ӧն2]=ISNULL((SELECT SUM(aa.Ӧտϼ) FROM ZRP_YingShouMingXi_yuyubo aa where aa.SBU=A.SBU),0) + ,[ǰҵܺ]= (ISNULL(( + SELECT SUM(aa.FBILLALLAMOUNT_LC) +FROM T_SAL_ORDERFIN aa + LEFT JOIN T_SAL_ORDER B + ON aa.FID = B.FID + WHERE b.FDocumentStatus='C' AND aa.FID IN + ( + SELECT DISTINCT akk.۵ID + FROM ZRP_YingShouMingXi_yuyubo akk + WHERE akk.SBU = a.SBU + ) ) + ,0)) + ,[ǰӦ]= (SUM(a.Ӧտϼ*ISNULL(a.[տ̯],100)*0.01 )) ,[ԤӦ˿]=ISNULL((SELECT SUM(aa.ڽ*aa.) FROM ZRP_YingShouMingXi_yuyubo aa WHERE aa.տ LIKE '%'AND aa.SBU=A.SBU),0) - ,[Ԥؿ]=ISNULL((SELECT SUM(aa.ۼƵ*aa.[տ̯]*0.01) FROM ZRP_YingShouMingXi_yuyubo aa where aa.տ LIKE '%'AND aa.SBU=A.SBU AND aa.ڽ >0),0) - ,[ؿĿ]=(SELECT 1 FROM MBBA_t_Cust100002 aa LEFT JOIN MBBA_t_Cust_Entry100003 bb ON a.FID=b.FID WHERE ) + ,[Ԥؿ]=ISNULL((SELECT SUM(aa.ۼƵ*ISNULL(aa.[տ̯],100)*0.01) FROM ZRP_YingShouMingXi_yuyubo aa where aa.տ LIKE '%'AND aa.SBU=A.SBU AND aa.ڽ >0),0) + ,[ؿĿ]=ISNULL(( SELECT SUM(FPAYMENTSUM) FROM (SELECT DISTINCT bb.FEntryID,FPAYMENTSUM FROM MBBA_t_Cust_Entry100003 bb + LEFT JOIN V_BD_SALESMAN_L L WITH(NOLOCK) ON bb.FNAME=L.fid + LEFT JOIN (SELECT DISTINCT ACL22.,ACL22.ϸ ,ACL22. FROM ERPTOHR.HYHRV3.dbo.v_erp_empinfo ACL22 ) ACL + ON ACL.=L.FNAME AND ISNULL(ACL.ϸ,'') != '' + WHERE ACL.=a.SBU + AND bb.fid = (SELECT MAX(fid) FROM MBBA_t_Cust100002 aaa WHERE aaa.FDOCUMENTSTATUS='C' AND YEAR(aaa.F_VRYF_DATE_83G)=YEAR( '2025-01-01' ) )) ccc),0) + FROM ZRP_YingShouMingXi_yuyubo a - WHERE a.֯ID=100302 + --WHERE a.֯ID=100302 GROUP BY a.SBU) a \ No newline at end of file diff --git a/收款单核销流水存储过程.sql b/收款单核销流水存储过程.sql index a995dea..7d0247a 100644 --- a/收款单核销流水存储过程.sql +++ b/收款单核销流水存储过程.sql @@ -15,7 +15,7 @@ BEGIN DELETE [ZZZ_HeXiaoBook] WHERE [ShouKuanFDate]>=@BeginDATE -DECLARE @FDATE DATETIME,@FBILLNO NVARCHAR(200),@ShouKuanFID INT,@FSALEORGID INT ,@F_contractnumber NVARCHAR(2000),@fid2 INT,@fid3 INT,@amount DECIMAL(18,2); +DECLARE @FDATE DATETIME,@FBILLNO NVARCHAR(200),@ShouKuanFID INT,@FSALEORGID INT ,@F_contractnumber NVARCHAR(2000),@fid2 INT,@fid3 INT,@amount DECIMAL(18,2),@hexiao DECIMAL(18,2); -- 1. α DECLARE cursor_name2 CURSOR FOR SELECT FDATE,FBILLNO,FID,FSALEORGID,F_contractnumber FROM T_AR_RECEIVEBILL @@ -31,6 +31,7 @@ ORDER BY FDATE @F_contractnumber WHILE @@FETCH_STATUS = 0 BEGIN + SELECT @hexiao=0; ---۵Զ¼-- SELECT @fid2=0,@fid3=0; SELECT @fid2=FID FROM dbo.T_AutoWrireRecordEntry2 WHERE FBILLNO3=@FBILLNO @@ -39,7 +40,8 @@ ORDER BY FDATE SELECT @FDATE=ISNULL(F_YeWuDate,FCREATEDATE),@fid3=FID FROM T_AutoWrireRecord WHERE FID=@fid2 AND FDOCUMENTSTATUS='C' IF(@fid3>0) - BEGIN + BEGIN + SELECT @hexiao=1; INSERT INTO [dbo].[ZZZ_HeXiaoBook] ([XiaoShouFid] ,[XiaoShouBillNo] @@ -67,7 +69,7 @@ ORDER BY FDATE IF(@fid3>0) BEGIN SELECT @F_contractnumber=FCONTRACTNUMBER,@amount=FALLAMOUNT22 FROM VRYF_t_Cust_Entry100024 a WHERE a.FID=@fid2 - + SELECT @hexiao=@amount; INSERT INTO [dbo].[ZZZ_HeXiaoBook] ([XiaoShouFid] ,[XiaoShouBillNo] @@ -98,6 +100,7 @@ LEFT JOIN dbo.T_AR_RECMACTHLOGENTRY b ON a.FID=b.FID WHERE b.FSRCBILLNO=@FBILLN --PRINT 'ͬţ'+@F_contractnumber; IF(@fid2>0) BEGIN + SELECT @hexiao=1; INSERT INTO [dbo].[ZZZ_HeXiaoBook] ([XiaoShouFid] ,[XiaoShouBillNo] @@ -116,11 +119,35 @@ LEFT JOIN dbo.T_AR_RECMACTHLOGENTRY b ON a.FID=b.FID WHERE b.FSRCBILLNO=@FBILLN WHERE a.FSALEORGID=@FSALEORGID AND d.FBILLFORMID='AR_receivable') end DROP TABLE #temp2 - - + --------------տԴϸ-------- + IF(@hexiao=0) + begin + SELECT @fid2=a.FID FROM T_AR_RECEIVEBILL a LEFT JOIN T_AR_RECEIVEBILLSRCENTRY b ON a.FID=b.FID + WHERE a.fid=@ShouKuanFID + IF(@fid2>0) + BEGIN + SELECT @hexiao=1; + INSERT INTO [dbo].[ZZZ_HeXiaoBook] + ([XiaoShouFid] + ,[XiaoShouBillNo] + ,[XiaoShouHeTong] + ,[ShouKuanFid] + ,[ShouKuanBillNo] + ,[ShouKuanFDate] + ,[BenCiHeXiao] + ,[FSaleOrgId],Note,NoteFid,FExchangeRate,FSettleCurrId,FLOCALCURRID) + ( SELECT aa.fid,aa.FBILLNO,aa.F_CONTRACTNUMBER,@ShouKuanFID,@FBILLNO,@FDATE,b.FREALRECAMOUNT,@FSALEORGID,'տԴϸ',@fid2 + ,dd.FEXCHANGERATE,FSettleCurrId,FLOCALCURRID + FROM T_AR_RECEIVEBILL a LEFT JOIN T_AR_RECEIVEBILLSRCENTRY b ON a.FID=b.FID + LEFT JOIN dbo.T_SAL_ORDER aa ON b.FSRCBILLID=aa.FID + LEFT JOIN T_SAL_ORDERFIN dd ON aa.FID=dd.FID + WHERE a.fid=@ShouKuanFID AND b.FREALRECAMOUNT <>0 ) + END + end --------ʷ¼-------------- IF(@FSALEORGID=100302) begin + SELECT @hexiao=1; INSERT INTO [dbo].[ZZZ_HeXiaoBook] ([XiaoShouFid] ,[XiaoShouBillNo]