Compare commits

..

No commits in common. "768733881513301a82fc167ae6e0d9621a6054de" and "2c276299bedefdda462aceac37e4eed965b25be4" have entirely different histories.

2 changed files with 20 additions and 104 deletions

View File

@ -23,7 +23,7 @@ BEGIN
[],[],[],[],[],[],[],[],[], [],[],[],[],[],[],[],[],[],
[],[],[],[],[],[],[],[],[],[],[] [],[],[],[],[],[],[],[],[],[],[]
,[退],[],[],[],[],[],[],[],[],[],[], ,[退],[],[],[],[],[],[],[],[],[],[],
[1-6],[7-12],[13-18],[19],[1],[-],[],[ID],[],[],[],[],[],[]) [1-6],[7-12],[13-18],[19],[1],[-],[],[ID],[],[],[],[])
SELECT SELECT
[ID],[ID],[ID],[],[F_RecConditionId],[],[],[],[],[SBU] [ID],[ID],[ID],[],[F_RecConditionId],[],[],[],[],[SBU]
,[],[],[],[],[],[],[],[],[],[],[], ,[],[],[],[],[],[],[],[],[],[],[],
@ -31,8 +31,7 @@ SELECT
[],[],[],[],[],[],[],[],[], [],[],[],[],[],[],[],[],[],
[],[],[],[],[],[],[],[],0 [],[], 0 [] [],[],[],[],[],[],[],[],0 [],[], 0 []
,0 [退],0 [],0 [],0 [],0 [],NULL [],0 [],0 [],NULL [],NULL [],0 [], ,0 [退],0 [],0 [],0 [],0 [],NULL [],0 [],0 [],NULL [],NULL [],0 [],
NULL [1-6],NULL [7-12],NULL [13-18],NULL [19],NULL [1],NULL [-],NULL [],[ID],[],[],[],[],[] NULL [1-6],NULL [7-12],NULL [13-18],NULL [19],NULL [1],NULL [-],NULL [],[ID],[],[],[],[]
,[]
FROM ( FROM (
SELECT A.FID [ID] SELECT A.FID [ID]
,ISNULL(O.fid,l.fid) [ID] ,ISNULL(O.fid,l.fid) [ID]
@ -63,8 +62,7 @@ SELECT A.FID [
SELECT SUM(B.FBillAllAmount_LC) AS '累计退货金额' SELECT SUM(B.FBillAllAmount_LC) AS '累计退货金额'
FROM T_SAL_RETURNSTOCK AA WITH(NOLOCK) FROM T_SAL_RETURNSTOCK AA WITH(NOLOCK)
INNER JOIN T_SAL_RETURNSTOCKFIN B WITH(NOLOCK) ON AA.FID =B.FID INNER JOIN T_SAL_RETURNSTOCKFIN B WITH(NOLOCK) ON AA.FID =B.FID
WHERE AA.FDOCUMENTSTATUS= 'C' AND aa.FSALEORGID = a.FSALEORGID WHERE AA.FDOCUMENTSTATUS= 'C' AND AA.F_contractnumber LIKE A.F_contractnumber+'%' ),0)
AND AA.F_contractnumber LIKE CONCAT(A.F_contractnumber, '-%') AND AA.F_contractnumber NOT LIKE CONCAT(A.F_contractnumber, '-%-%') ),0)
,[] =AD. ,[] =AD.
,[]=ISNULL(a.F_Amount,0) ,[]=ISNULL(a.F_Amount,0)
@ -147,15 +145,13 @@ SELECT A.FID [
,A.FSALEORGID AS '组织ID' ,A.FSALEORGID AS '组织ID'
,W.F_DAY AS '天数' ,W.F_DAY AS '天数'
,a.FBILLNO [] ,a.FBILLNO []
,[]=ISNULL((SELECT SUM(FAllAmount_LC) FROM T_SAL_ORDERENTRY_F aa WHERE aa.FID=a.FID AND aa.FAllAmount_LC>0),0)
,[]=w.F_MBBA_DECIMAL_UKY
-----------------from -------- -----------------from --------
FROM T_SAL_ORDER A WITH(NOLOCK) FROM T_SAL_ORDER A WITH(NOLOCK)
LEFT JOIN ( LEFT JOIN (
SELECT DISTINCT x.FNAME +'--'+CONVERT(NVARCHAR(50), CONVERT(INT, w.F_DAY))+'天--'+CONVERT(NVARCHAR(50),CONVERT(DECIMAL(18,2), w.FRECADVANCERATE))+'%' AS FNAME SELECT DISTINCT x.FNAME +'--'+CONVERT(NVARCHAR(50), CONVERT(INT, w.F_DAY))+'天--'+CONVERT(NVARCHAR(50),CONVERT(DECIMAL(18,2), w.FRECADVANCERATE))+'%' AS FNAME
,w.FID,w.F_PMSDate ,w.FID,w.F_PMSDate
,W.FRECADVANCEAMOUNT,w.F_DAY ,w.F_MBBA_DECIMAL_UKY ,W.FRECADVANCEAMOUNT,w.F_DAY
,w.FENTRYID, W.F_RecConditionId ,w.FRECADVANCERATE ,x.FNAME AS fname2 ,w.FENTRYID, W.F_RecConditionId ,w.FRECADVANCERATE ,x.FNAME AS fname2
FROM T_SAL_ORDERPLAN w WITH(NOLOCK) FROM T_SAL_ORDERPLAN w WITH(NOLOCK)
LEFT JOIN T_BD_RecCondition_L X ON X.FID = W.F_RecConditionId LEFT JOIN T_BD_RecCondition_L X ON X.FID = W.F_RecConditionId
@ -230,7 +226,7 @@ GROUP BY F_PaperNumber, FSALEORGID
--where []< 100 --where []< 100
--where [] !='' --where [] !=''
WHERE []<>0 AND SUBSTRING([],1,1) != 'Z' WHERE []<>0 AND SUBSTRING([],1,1) != 'Z'
ORDER BY A.[ID],[ID],[ID]; ORDER BY A.[ID],[ID];
UPDATE [ZRP_YingShouMingXi_yuyubo] SET [2]=ISNULL((SELECT STRING_AGG(CONVERT(NVARCHAR(10),SAL.FDATE,23) UPDATE [ZRP_YingShouMingXi_yuyubo] SET [2]=ISNULL((SELECT STRING_AGG(CONVERT(NVARCHAR(10),SAL.FDATE,23)
@ -260,35 +256,31 @@ GROUP BY F_PaperNumber, FSALEORGID
update [ZRP_YingShouMingXi_yuyubo] set update [ZRP_YingShouMingXi_yuyubo] set
[]=[]*[]*0.01,[]=[]*[]*0.01 []=[]*[]*0.01,[]=[]*[]*0.01
,[]=[]*[]*0.01
,[退]=[退]*[]*0.01 ,[退]=[退]*[]*0.01
,[]=[]*[]*0.01 ,[]=[]*[]*0.01
,[]=[]*[]*0.01 ,[]=[]*[]*0.01
,[]=CASE WHEN []>0 then ABS([])-ABS(([退]+[])*[]*0.01) ELSE 0 end
UPDATE [ZRP_YingShouMingXi_yuyubo] set []=[]; ,[]=CASE WHEN []>0 then ABS([])-ABS([]*[]*0.01)ELSE 0 end
UPDATE [ZRP_YingShouMingXi_yuyubo] set
[]=CASE WHEN []>0 then ABS([])-ABS(([退]+[])*[]*0.01) ELSE 0 end
,[]=CASE WHEN []>0 then ABS([])-ABS([]*[]*0.01)ELSE 0 end
--,[]='2022-01-01' --,[]='2022-01-01'
--,[]=CASE WHEN [] IS NOT NULL AND [] <= GETDATE() AND [] >'1990-01-01' AND []>0 THEN [] ELSE NULL END --,[]=CASE WHEN [] IS NOT NULL AND [] <= GETDATE() AND [] >'1990-01-01' AND []>0 THEN [] ELSE NULL END
--,[]=CASE WHEN [] IS NOT NULL AND [] <= GETDATE() AND [] >'1990-01-01' AND []>0 THEN([]-[退]-[])*[]*0.01*ISNULL([],100)*0.01 ELSE 0 END --,[]=CASE WHEN [] IS NOT NULL AND [] <= GETDATE() AND [] >'1990-01-01' AND []>0 THEN([]-[退]-[])*[]*0.01*ISNULL([],100)*0.01 ELSE 0 END
,[]=CASE WHEN [] >0 THEN ([]-[退]- [] )*[]*0.01 ELSE 0 end ,[]=CASE WHEN []>0 THEN ([]-[退]- [] )*[]*0.01 ELSE 0 end
,[]=CASE WHEN []>12 THEN '转应收专责小组' ELSE [] END ,[]=CASE WHEN []>12 THEN '转应收专责小组' ELSE [] END
,[]= CASE WHEN []>='1990-01-01' AND [] IS NOT NULL THEN '验收完成' ,[]= CASE WHEN []>='1990-01-01' AND [] IS NOT NULL THEN '验收完成'
WHEN []>='1990-01-01' AND [] IS NOT NULL THEN '调试完成' WHEN []>='1990-01-01' AND [] IS NOT NULL THEN '调试完成'
WHEN ISNULL([],'') <> '' THEN [] WHEN ISNULL([],0) = 0 THEN '未启动' WHEN ISNULL([],'') <> '' THEN [] WHEN ISNULL([],0) = 0 THEN '未启动'
WHEN ISNULL( [],0) = ISNULL([],0) THEN '发货完成' WHEN ISNULL([],0) > ISNULL( [],0) THEN '发货中' END ; WHEN ISNULL( [],0) = ISNULL([],0) THEN '发货完成' WHEN ISNULL([],0) > ISNULL( [],0) THEN '发货中' END ;
update [ZRP_YingShouMingXi_yuyubo] set update [ZRP_YingShouMingXi_yuyubo] set
[]=CASE WHEN [] IS NOT NULL AND [] <= GETDATE() AND [] >'1990-01-01' AND []>0 THEN [] ELSE NULL END []=CASE WHEN [] IS NOT NULL AND [] <= GETDATE() AND [] >'1990-01-01' AND []>0 THEN [] ELSE NULL END
,[]=CASE WHEN [] IS NOT NULL AND [] <= GETDATE() AND [] >'1990-01-01' AND []>0 ,[]=CASE WHEN [] IS NOT NULL AND [] <= GETDATE() AND [] >'1990-01-01' AND []>0
THEN([]-[退])*[]*0.01-[] ELSE 0 END; THEN([]-[退]-[])*[]*0.01*ISNULL([],100)*0.01 ELSE 0 END;
--WHERE [ID]=110181; --WHERE [ID]=110181;
@ -308,16 +300,15 @@ UPDATE [ZRP_YingShouMingXi_yuyubo] SET
THEN '1-2年' WHEN []>=25 AND []<=36 THEN '2-3年' WHEN []>=37 AND []<=48 THEN '3-4年' WHEN []>=49 THEN '5年以上' ELSE '' END THEN '1-2年' WHEN []>=25 AND []<=36 THEN '2-3年' WHEN []>=37 AND []<=48 THEN '3-4年' WHEN []>=49 THEN '5年以上' ELSE '' END
--,[]=CASE WHEN []>=1 AND []<=6 THEN '正常' WHEN []>=7 AND []<=12 THEN '催款函' WHEN []>=13 AND []<=18 --,[]=CASE WHEN []>=1 AND []<=6 THEN '正常' WHEN []>=7 AND []<=12 THEN '催款函' WHEN []>=13 AND []<=18
--THEN '律师' WHEN []>=19 THEN '诉讼' ELSE '' END --THEN '律师' WHEN []>=19 THEN '诉讼' ELSE '' END
,[1-6]=CASE WHEN []>=1 AND []<=6 THEN []-([退])*[]*0.01-[] ELSE 0 END ,[1-6]=CASE WHEN []>=1 AND []<=6 THEN []-([退]+[])*[]*0.01 ELSE 0 END
,[7-12]=CASE WHEN []>=7 AND []<=12 THEN []-([退])*[]*0.01-[] ELSE 0 END ,[7-12]=CASE WHEN []>=7 AND []<=12 THEN []-([退]+[])*[]*0.01 ELSE 0 END
,[1-2]=CASE WHEN []>=13 AND []<=24 THEN []-([退])*[]*0.01-[] ELSE 0 END ,[1-2]=CASE WHEN []>=13 AND []<=24 THEN []-([退]+[])*[]*0.01 ELSE 0 END
,[2-3]=CASE WHEN []>=25 AND []<=36 THEN []-([退])*[]*0.01-[] ELSE 0 END ,[2-3]=CASE WHEN []>=25 AND []<=36 THEN []-([退]+[])*[]*0.01 ELSE 0 END
,[4-5]=CASE WHEN []>=37 AND []<=60 THEN []-([退])*[]*0.01-[] ELSE 0 END ,[4-5]=CASE WHEN []>=37 AND []<=60 THEN []-([退]+[])*[]*0.01 ELSE 0 END
,[5]=CASE WHEN []> 60 THEN []-([退]+[])*[]*0.01 ELSE 0 END ,[5]=CASE WHEN []> 60 THEN []-([退]+[])*[]*0.01 ELSE 0 END
update [ZRP_YingShouMingXi_yuyubo] SET []=CASE WHEN [] > '1990-01-01' AND [] >GETDATE() THEN [] ELSE NULL END update [ZRP_YingShouMingXi_yuyubo] SET []=CASE WHEN [] > '1990-01-01' AND [] >GETDATE() THEN [] ELSE NULL END
,[]=CASE WHEN (([] <'1990-01-01'OR ([] IS NULL AND [] IS null)) OR [] > GETDATE()) AND []>0 ,[]=CASE WHEN (([] <'1990-01-01'OR ([] IS NULL AND [] IS null)) OR [] > GETDATE()) AND []>0 THEN ([]-[退]-[])*[]*0.01*ISNULL([],100)*0.01 ELSE 0 END
THEN ([]-[退])*[]*0.01*ISNULL([],100)*0.01-[] ELSE 0 END
,[]=CASE WHEN [] > 12 THEN '' ELSE '' END ; ,[]=CASE WHEN [] > 12 THEN '' ELSE '' END ;
@ -385,9 +376,8 @@ UPDATE [ZRP_YingShouMingXi_yuyubo] SET
,[1],[],[],[],CONVERT(NVARCHAR(20),[],23),[],[],[],[],[],[],[] ,[1],[],[],[],CONVERT(NVARCHAR(20),[],23),[],[],[],[],[],[],[]
,[] ,[ID],[],[] ,[] ,[ID],[],[]
,[ID],[ID],[ID],GETDATE(),0,[1-2],[2-3],[3-4],[4-5],[5] ,[ID],[ID],[ID],GETDATE(),0,[1-2],[2-3],[3-4],[4-5],[5]
FROM [ZRP_YingShouMingXi_yuyubo] A FROM [ZRP_YingShouMingXi_yuyubo]
WHERE ([]-[退])>[] WHERE ISNULL([],0)=0
ORDER BY A.[ID],[ID],[ID];
update ReceivablesDetailsTable set F_061=B.F_061, F_054=B.F_054 ,F_055=B.F_055,F_056=B.F_056 update ReceivablesDetailsTable set F_061=B.F_061, F_054=B.F_054 ,F_055=B.F_055,F_056=B.F_056
,F_060=B.F_060,F_057=B.F_057,F_058=B.F_058 ,F_060=B.F_060,F_057=B.F_057,F_058=B.F_058
@ -405,7 +395,7 @@ GO
--TRUNCATE TABLE dbo.ReceivablesDetailsTable; --TRUNCATE TABLE dbo.ReceivablesDetailsTable;
--EXEC PR_YingShouMingXi_yuyubo EXEC PR_YingShouMingXi_yuyubo
--SELECT TOP 10 * FROM ReceivablesDetailsTable --SELECT TOP 10 * FROM ReceivablesDetailsTable

View File

@ -1,74 +0,0 @@
-- 检查存储过程是否存在,存在则删除 P202502080013
IF OBJECT_ID('dbo.[PR_ResetSALORDERPLAN_MBBA_yuyubo]', 'P') IS NOT NULL
BEGIN
DROP PROCEDURE dbo.PR_ResetSALORDERPLAN_MBBA_yuyubo;
PRINT '存储过程 dbo.[PR_ResetSALORDERPLAN_MBBA_yuyubo] 已删除';
END
GO
-- 创建新的存储过程
CREATE PROCEDURE dbo.PR_ResetSALORDERPLAN_MBBA_yuyubo
@saleOrderId INT=0
AS
BEGIN
-- 1. 声明游标
DECLARE cursor_name CURSOR
FOR
SELECT a.F_Amount,b.F_MBBA_Decimal_uky,a.FBILLNO,a.FSALEORGID,a.F_contractnumber,a.fid,b.FENTRYID AS wfid ,b.FRECADVANCEAMOUNT
FROM dbo.T_SAL_ORDER a WITH(NOLOCK) LEFT JOIN dbo.T_SAL_ORDERPLAN b WITH(NOLOCK) ON a.FID=b.FID
INNER JOIN (SELECT DISTINCT [ID],[退],[] from [ZRP_YingShouMingXi_yuyubo] WHERE []>0) cc ON [ID]=a.FID
WHERE (ISNULL(a.F_Amount,0) > 0 AND []-ISNULL(a.F_Amount,0) -[退]>0) AND (a.FID=@saleOrderId OR @saleOrderId=0)
AND b.F_MBBA_DECIMAL_UKY<a.F_Amount
ORDER BY a.fid,wfid
-- 2. 打开游标
OPEN cursor_name;
DECLARE @rowId INT=0,@amount DECIMAL(18,4)=0
-- 3. 循环获取数据
DECLARE @F_AMOUNT DECIMAL(18,2), @F_MBBA_Decimal_uky DECIMAL(18,2),@FBILLNO NVARCHAR(200),@FSALEORGID INT ,@F_contractnumber NVARCHAR(500) ,@fid INT ,@wfid INT,@FRecAdvanceAmount DECIMAL(18,2);
FETCH NEXT FROM cursor_name INTO @F_AMOUNT, @F_MBBA_Decimal_uky,@FBILLNO,@FSALEORGID,@F_contractnumber,@fid,@wfid,@FRecAdvanceAmount;
WHILE @@FETCH_STATUS = 0
BEGIN
-- 数据处理逻辑(示例输出)
--PRINT 'Column1: ' + CAST(@var1 AS VARCHAR) + ', Column2: ' + @var2;
-- 处理收款核销金额
IF(@rowId !=@fid)
BEGIN
SELECT @rowId=@fid,@amount=@F_AMOUNT;
END
IF(@amount>=@FRecAdvanceAmount)
BEGIN
UPDATE T_SAL_ORDERPLAN SET F_MBBA_Decimal_uky=@FRecAdvanceAmount
WHERE FENTRYID=@wfid;
SELECT @amount=@amount-@FRecAdvanceAmount;
END
ELSE
BEGIN
IF(@amount>0)
BEGIN
UPDATE T_SAL_ORDERPLAN SET F_MBBA_Decimal_uky=@amount
WHERE FENTRYID=@wfid;
SELECT @amount=0;
END
END
-- 获取下一条记录
FETCH NEXT FROM cursor_name INTO @F_AMOUNT, @F_MBBA_Decimal_uky,@FBILLNO,@FSALEORGID,@F_contractnumber,@fid,@wfid,@FRecAdvanceAmount;
END;
-- 4. 关闭游标
CLOSE cursor_name;
-- 5. 释放游标资源
DEALLOCATE cursor_name;
END
--EXEC dbo.PR_ResetSALORDERPLAN_MBBA_yuyubo @saleOrderId = 0 -- int
--UPDATE T_SAL_ORDERPLAN SET F_MBBA_Decimal_uky=0