This commit is contained in:
liangjunyu
2025-09-27 04:54:57 +08:00
parent 1077ad0f74
commit 1774893c6f
8 changed files with 286 additions and 39 deletions

View File

@@ -0,0 +1,89 @@
/****** Object: StoredProcedure [dbo].[hw_get_zpjjmxb] Script Date: 2025/9/26 15:54:09 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[hw_get_zpjjmxb]
@fdate1 NVARCHAR(20)
AS
BEGIN
DECLARE @fdate NVARCHAR(20)
SET @fdate=''''+ @fdate1 + ''''
DELETE hw_zpjjmxb where jjdate=@fdate1
--1<EFBFBD><EFBFBD>ȡ<EFBFBD>Ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>+<EFBFBD><EFBFBD>ǰת<EFBFBD>Ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
declare @bzrs nvarchar(max)
set @bzrs='(select p1.FID,p1.rs-isnull(p2.syqrs,0) as rs from (select t1.FID, count(*) as rs
from GAT_DAY_ZP t1 join GAT_DAY_jt_ZP jt on t1.fid=jt.fid
where F_DATE='+@fdate+' group by t1.FID) p1 left outer join
( select t1.FID, count(*) as syqrs from GAT_DAY_ZP t1 join GAT_DAY_jt_ZP t2 on t1.fid=t2.fid
join GAT_YGCQs t3 on t2.f_ygno=t3.f_ygnm join GAT_YGCQ t4 on t3.fid=t4.fid and t4.f_date='+@fdate+'
left outer join hw_xygzjj t5 on t3.F_YGNM=t5.F_YGID and t4.F_DATE>=t5.F_DATE
where t5.F_YGID is null and t3.f_issyq=''<EFBFBD><EFBFBD>'' and t1.F_DATE='+@fdate+' group by t1.FID) p2 on p1.fid=p2.FID)'
--select @bzrs
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD>(jjDate, ygNo, ygNm, zlNo, cpNm, price, fqty, jtrs, je, bz, zje,jjcsbt,gwbt,jjdh)
declare @sql nvarchar(max)
set @sql='insert into hw_zpjjmxb
select t1.F_DATE,
yg.FNUMBER,
ygs.FNAME,
scdd.FNUMBER,
scdd.FCPNM,
t2.F_PRICE,
case when isnull(rs1.rs,0)=0 then 0 else t2.F_FQTY end,
rs1.rs,
case when isnull(rs1.rs,0)=0 then 0 else t2.F_FQTY/rs1.rs end * t2.F_PRICE,
0,
case when isnull(rs1.rs,0)=0 then 0 else t2.F_FQTY/rs1.rs end * t2.F_PRICE,0,0,t1.fbillno
from GAT_DAY_ZP t1 join GAT_DAY_CP_ZP t2 on t1.FID=t2.FID
join hw_scdd_select scdd on t2.F_SCNO=scdd.FID
join GAT_DAY_JT_ZP t3 on t1.FID=t3.FID
join T_HR_EMPINFO yg on t3.F_YGNO=yg.FID
join T_HR_EMPINFO_L ygs on yg.FID=ygs.FID
join '+@bzrs+' rs1 on t1.fid=rs1.fid
where t1.F_DATE='+@fdate
--select @sql
exec(@sql)
--<EFBFBD><EFBFBD><EFBFBD>˼Ƽ<EFBFBD>
insert into hw_zpjjmxb select t1.F_DATE as <EFBFBD>Ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,yg.FNUMBER as Ա<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,ygs.FNAME as Ա<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, scdd.FNUMBER as <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, scdd.FCPNM as <EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,t2.F_PRICE,t2.F_FQTY
,null as <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,t2.F_JJGZ as <EFBFBD><EFBFBD><EFBFBD><EFBFBD>,null as <EFBFBD><EFBFBD><EFBFBD><EFBFBD>,t2.F_JJGZ as <EFBFBD>ܽ<EFBFBD><EFBFBD><EFBFBD>,0,0,t1.fbillno
from GAT_DAY_ZP t1 join GAT_DAY_GR_ZP t2 on t1.FID=t2.FID
join hw_scdd_select scdd on t2.F_SCNO=scdd.FID
join T_HR_EMPINFO yg on t2.F_YGNO=yg.FID
join T_HR_EMPINFO_L ygs on yg.FID=ygs.FID
where t1.F_DATE=@fdate1
-----------------------------------------------
update t1 set bz=t3.F_SYQBT,jjcsbt=t3.F_CSBT,gwbt=t3.F_GWBT from hw_zpjjmxb t1 join GAT_rgz t2 on t1.jjDate=t2.FDATE join GAT_rgzs t3 on t2.fid=t3.fid
join T_HR_EMPINFO yg on t3.F_YGNO=yg.FID
and t1.ygno=yg.FNUMBER where t1.jjDate=@fdate1
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
update hw_zpjjmxb set bz=0 where bz>0 and jjDate=@fdate1 and FInterID not in (select min(FInterID) from hw_zpjjmxb where jjDate=@fdate1 group by ygno,bz)
update hw_zpjjmxb set jjcsbt=0 where jjcsbt>0 and jjDate=@fdate1 and FInterID not in (select min(FInterID) from hw_zpjjmxb where jjDate=@fdate1 group by ygno,jjcsbt)
update hw_zpjjmxb set gwbt=0 where gwbt>0 and jjDate=@fdate1 and FInterID not in (select min(FInterID) from hw_zpjjmxb where jjDate=@fdate1 group by ygno,gwbt)
--<EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˽<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܽ<EFBFBD><EFBFBD><EFBFBD>
update hw_zpjjmxb set je=round(price*fqty/case when isnull(jtrs,0)=0 then 1 else jtrs end,2) ,
zje=round( price*fqty/case when isnull(jtrs,0)=0 then 1 else jtrs end,2)+bz+jjcsbt+gwbt where jjdate=@fdate1
--
DELETE t1 from hw_zpjjmxb t1 join T_HR_EMPINFO yg on t1.ygno=yg.FNUMBER
join GAT_YGCQs cqs on yg.FID=cqs.F_YGNM join GAT_YGCQ cq on cqs.fid=cq.fid
where jjDate=@fdate1 and cq.F_DATE=@fdate1 and cqs.F_ISSYQ='<EFBFBD><EFBFBD>' and cqs.F_YGNM not in (select f_ygID from hw_xygzjj where f_date<=@fdate1)
END

View File

@@ -0,0 +1,108 @@
/****** Object: StoredProcedure [dbo].[hw_get_zpjjmxb] Script Date: 2025/9/26 15:54:09 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[hw_get_zpjjmxb]
@fdate1 NVARCHAR(20)
AS
BEGIN
DECLARE @fdate NVARCHAR(20)
SET @fdate=''''+ @fdate1 + ''''
DELETE hw_zpjjmxb WHERE jjdate=@fdate1
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD>(jjDate, ygNo, ygNm, zlNo, cpNm, price, fqty, jtrs, je, bz, zje,jjcsbt,gwbt,jjdh)
INSERT INTO hw_zpjjmxb
SELECT t1.F_DATE
,yg.FNUMBER,ygs.FNAME,scdd.FNUMBER,scdd.FCPNM,t2.F_PRICE
,CASE WHEN ISNULL(rs1.rs,0)=0 THEN 0 ELSE t2.F_FQTY END
,rs1.rs
,CASE WHEN ISNULL(rs1.rs,0)=0 THEN 0 ELSE t2.F_FQTY/rs1.rs END * t2.F_PRICE
,0
,CASE WHEN ISNULL(rs1.rs,0)=0 THEN 0 ELSE t2.F_FQTY/rs1.rs END * t2.F_PRICE
,0,0,t1.fbillno
,scdd.FCPNO
FROM GAT_DAY_ZP t1
INNER JOIN GAT_DAY_CP_ZP t2 on t1.FID=t2.FID
INNER JOIN hw_scdd_select scdd on t2.F_SCNO=scdd.FID
INNER JOIN GAT_DAY_JT_ZP t3 on t1.FID=t3.FID
INNER JOIN T_HR_EMPINFO yg on t3.F_YGNO=yg.FID
INNER JOIN T_HR_EMPINFO_L ygs on yg.FID=ygs.FID
INNER JOIN (
--1<EFBFBD><EFBFBD>ȡ<EFBFBD>Ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>+<EFBFBD><EFBFBD>ǰת<EFBFBD>Ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SELECT p1.FID,p1.rs-ISNULL(p2.syqrs,0) as rs
FROM (
SELECT t1.FID, count(*) as rs
FROM GAT_DAY_ZP t1
INNER JOIN GAT_DAY_jt_ZP jt on t1.fid=jt.fid
WHERE F_DATE= @fdate1
GROUP BY t1.FID
) p1
LEFT OUTER JOIN (
SELECT t1.FID, count(*) as syqrs
FROM GAT_DAY_ZP t1
INNER JOIN GAT_DAY_jt_ZP t2 on t1.fid=t2.fid
INNER JOIN GAT_YGCQs t3 on t2.f_ygno=t3.f_ygnm
INNER JOIN GAT_YGCQ t4 on t3.fid=t4.fid AND t4.f_date = @fdate1
LEFT OUTER JOIN hw_xygzjj t5 on t3.F_YGNM=t5.F_YGID AND t4.F_DATE>=t5.F_DATE
WHERE t5.F_YGID IS NULL AND t3.f_issyq='<EFBFBD><EFBFBD>' AND t1.F_DATE = @fdate1
GROUP BY t1.FID
) p2 on p1.fid=p2.FID
) rs1 on t1.fid = rs1.fid
WHERE t1.F_DATE = @fdate1
OPTION (RECOMPILE)
--<EFBFBD><EFBFBD><EFBFBD>˼Ƽ<EFBFBD>
INSERT INTO hw_zpjjmxb
SELECT t1.F_DATE as <EFBFBD>Ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,yg.FNUMBER as Ա<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,ygs.FNAME as Ա<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,scdd.FNUMBER as <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,scdd.FCPNM as <EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,t2.F_PRICE
,t2.F_FQTY
,null as <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,t2.F_JJGZ as <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,null as <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,t2.F_JJGZ as <EFBFBD>ܽ<EFBFBD><EFBFBD><EFBFBD>,0,0
,t1.fbillno
,scdd.FCPNO
FROM GAT_DAY_ZP t1
INNER JOIN GAT_DAY_GR_ZP t2 on t1.FID = t2.FID
INNER JOIN hw_scdd_select scdd on t2.F_SCNO = scdd.FID
INNER JOIN T_HR_EMPINFO yg on t2.F_YGNO = yg.FID
INNER JOIN T_HR_EMPINFO_L ygs on yg.FID = ygs.FID
WHERE t1.F_DATE = @fdate1
OPTION (RECOMPILE)
-----------------------------------------------
UPDATE t1 SET bz =t3.F_SYQBT
,jjcsbt = t3.F_CSBT
,gwbt = t3.F_GWBT
FROM hw_zpjjmxb t1
INNER JOIN GAT_rgz t2 on t1.jjDate=t2.FDATE
INNER JOIN GAT_rgzs t3 on t2.fid=t3.fid
INNER JOIN T_HR_EMPINFO yg on t3.F_YGNO = yg.FID AND t1.ygno = yg.FNUMBER
WHERE t1.jjDate=@fdate1
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
UPDATE hw_zpjjmxb SET bz = 0 WHERE bz>0 AND jjDate=@fdate1 AND FInterID NOT IN (SELECT MIN(FInterID) FROM hw_zpjjmxb WHERE jjDate=@fdate1 GROUP BY ygno,bz)
UPDATE hw_zpjjmxb SET jjcsbt = 0 WHERE jjcsbt>0 AND jjDate=@fdate1 AND FInterID NOT IN (SELECT MIN(FInterID) FROM hw_zpjjmxb WHERE jjDate=@fdate1 GROUP BY ygno,jjcsbt)
UPDATE hw_zpjjmxb SET gwbt = 0 WHERE gwbt>0 AND jjDate=@fdate1 AND FInterID NOT IN (SELECT MIN(FInterID) FROM hw_zpjjmxb WHERE jjDate=@fdate1 GROUP BY ygno,gwbt)
--<EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˽<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܽ<EFBFBD><EFBFBD><EFBFBD>
UPDATE hw_zpjjmxb SET je=ROUND(price*fqty/ CASE WHEN ISNULL(jtrs,0)=0 THEN 1 ELSE jtrs END,2)
,zje=ROUND(price * fqty / CASE WHEN ISNULL(jtrs,0) = 0 THEN 1 ELSE jtrs END ,2) + bz + jjcsbt + gwbt
WHERE jjdate=@fdate1
--
DELETE t1 FROM hw_zpjjmxb t1
INNER JOIN T_HR_EMPINFO yg on t1.ygno = yg.FNUMBER
INNER JOIN GAT_YGCQs cqs on yg.FID = cqs.F_YGNM
INNER JOIN GAT_YGCQ cq on cqs.fid = cq.fid
WHERE jjDate=@fdate1 AND cq.F_DATE = @fdate1 AND cqs.F_ISSYQ = '<EFBFBD><EFBFBD>'
AND cqs.F_YGNM NOT IN (SELECT f_ygID FROM hw_xygzjj WHERE f_date <= @fdate1)
END

View File

@@ -0,0 +1,23 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER VIEW [dbo].[hw_scdd_select]
AS
SELECT wl.FMATERIALID, rwds.FUNITID, rwds.FENTRYID AS FID, rwd.FBILLNO AS FNUMBER, xsd.FBILLNO AS FXSNO,
wl.FNUMBER AS FCPNO, wls.FNAME AS FCPNM, wls.FSPECIFICATION,
dw.FNUMBER AS FDWNM, rwds.FQTY + rwds.F_BDS - rwds.F_YSCS - rwds.F_GRJJS AS FWSCS,
rwds.FQTY + rwds.F_BDS AS FQTY
FROM T_PRD_MO AS rwd INNER JOIN
T_PRD_MOENTRY AS rwds ON rwd.FID = rwds.FID INNER JOIN
T_BD_MATERIAL AS wl ON rwds.FMATERIALID = wl.FMATERIALID INNER JOIN
T_BD_MATERIAL_L AS wls ON wl.FMATERIALID = wls.FMATERIALID left outer JOIN
T_SAL_ORDER AS xsd ON rwds.FSALEORDERID = xsd.FID INNER JOIN
T_BD_UNIT AS dw ON rwds.FUNITID = dw.FUNITID
WHERE (rwd.FDOCUMENTSTATUS = 'C')
AND CONVERT(int,CONVERT(varchar(4),rwd.FDATE,112)) = 2025
GO

View File

@@ -0,0 +1,16 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER VIEW [dbo].[hw_v_zpjjmxb]
AS
SELECT t1.FInterID AS FID, CONVERT(nvarchar(40), t1.FInterID) + 'A' AS FNumber, CONVERT(nvarchar(40), t1.FInterID) + 'B' AS FName
,t1.jjDate,t1.ygNo,t1.ygNm,t1.zlNo,t1.cpNm,t1.price,t1.fqty
,t1.jtrs,t1.je,t1.bz,t1.zje,t1.jjcsbt,t1.gwbt,t1.jjdh,bz.FNAME AS bznm
FROM dbo.hw_zpjjmxb AS t1
LEFT OUTER JOIN dbo.GAT_DAY_ZP AS t2 ON t1.jjdh = t2.FBILLNO
LEFT OUTER JOIN dbo.GAT_BANZU_L AS bz ON t2.F_CBM = bz.FID
GO