<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace= "com.dsic.gj_erp.mapper.jhgk.DmSygdMxMapper" >
<!-- 通用查询映射结果 -->
<select id= "getDhsl" resultType= "Dhdto" parameterType= "Dhdto" >
select ISNULL(im_crklsz.HDSL, 0) as hdsl,
MS_DDMXP.WPHD as wphd,
MS_DDMXP.WPCD as wpcd,
MS_DDMXP.WPKD as wpkd,
MS_DDMXP.RKXH as rkxh,
#{dcCh} as dcCh,
#{dcPl} as dcPl,
#{dhqd} as dhqd,
#{gcxqq} as gcxqq
from MS_DDJBP,MS_DDMXP LEFT JOIN im_crklsz on im_crklsz.GCDDH=MS_DDMXP.dc_ch
where
RTRIM(MS_DDJBP.CGFLM) = MS_DDMXP.cgflm
and RTRIM(MS_DDJBP.DDH) = MS_DDMXP.DDH
and (MS_DDJBP.DDLX) = 'B'
and MS_DDJBP.dhqdh=#{dhqdh}
and MS_DDMXP.WPHD=#{wphd}
and MS_DDMXP.WPCD=#{wpcd}
and MS_DDMXP.WPKD=#{rkxh}
GROUP BY MS_DDMXP.WPHD,MS_DDMXP.WPCD,MS_DDMXP.WPKD,MS_DDMXP.RKXH
</select>
<select id= "getLjxx" resultType= "com.dsic.gj_erp.bean.jhgk.DmSygdMxLj" >
SELECT Em_gcrl.gzr,dm_sygdxq.xzglxq ,dm_sygdxq.dzglxq ,dm_sygdxq.DC_CH as dcch,dm_sygdxq.DC_CH as sjch,dm_sygdxq.DC_PL as pl,dm_sygdxq.DC_FD as fd,dm_bom.*
from Em_gcrl,dm_sygdxq LEFT JOIN dm_bom
on dm_bom.dcch = dm_sygdxq.DC_CH
and dm_bom.pl = dm_sygdxq.DC_PL
and dm_bom.fd = dm_sygdxq.DC_FD
where
dm_sygdxq.xzglxq = Em_gcrl.gl and
dm_sygdxq.xzglxq between '2023/08/01' and '2023/10/31'
-- dm_sygdxq.xzglxq between
-- (SELECT CONVERT(varchar(10),DATEADD(m,1,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),111)
-- and
-- (Select CONVERT(varchar(10), eomonth(GETDATE(),3), 111))
ORDER BY dm_sygdxq.xzglxq,dm_sygdxq.DC_CH,dm_sygdxq.DC_PL,dm_bom.TZBH,dm_sygdxq.DC_FD
</select>
<select id= "getMx" resultType= "com.dsic.gj_erp.bean.jhgk.DmSygdMx" >
SELECT
dcch as dcCh2,
mbch as dc_ch1,
sjch as dc_ch,
pl as dc_pl,
tzbh,
stuff((SELECT ' ' + c.FD
FROM dm_sygd_mx_lj c
WHERE c.dcch = dm_sygd_mx_lj.dcch and c.PL = dm_sygd_mx_lj.PL
group by c.FD FOR xml path ( '') ), 1, 1, ''
) AS dc_fd,
MIN(xzglxq) as jssj,
MIN(dzglxq) as dzglxq,
(CONVERT(varchar (20), GETDATE(), 20)) as gxsj,
(SELECT (CASE WHEN substring(tzbh, 5, 1) = 'X' THEN 'X' ELSE 'B' END)) as lx,
lqlb,
kw,
zl,
wpcz as wpxh,
wpgg,
ljsl,
pklx,
qbs,
pkbs,
pkcd,
dmbs,
dmcd,
hxcd,
xcgs,
xcshms as xcms,
bclqzl,
bcylzl,
bcljtlzl,
ylbhgg,
bcqpyld
,blgs as blgs
,pwgs as pwgs
,llgs as llgs
,hxgs as hxgs
, qggs as qggs
, sum(pkgs) as pkgs
, sum(dmgs) as dmgs
, sum(qgs) as qjggs
, sum(zpgs) as zpgs
from dm_sygd_mx_lj
where
dm_sygd_mx_lj.xzglxq between '2023/08/01' and '2023/10/31'
-- dm_sygd_mx_lj.xzglxq between
-- (SELECT CONVERT(varchar(10),DATEADD(m,1,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),111)
-- and
-- (Select CONVERT(varchar(10), eomonth(GETDATE(),3), 111))
GROUP BY dcch, mbch, sjch, PL, tzbh
, lqlb, kw, zl, wpcz, wpgg, ljsl, pklx, qbs, pkbs
, pkcd, dmbs, dmcd, hxcd, xcgs, xcshms, bclqzl
, bcylzl, bcljtlzl, ylbhgg, bcqpyld , blgs , pwgs, llgs, hxgs, qggs
order BY jssj, dcch, pl, tzbh
</select>
<select id= "getPl" resultType= "com.dsic.gj_erp.bean.jhgk.dto.Pldto" >
SELECT
iif(a.dc_ch is null,b.dc_ch ,a.dc_ch )as dc_ch,
iif(a.DC_FD is null,b.DC_FD ,a.DC_FD ) as DC_FD,
iif(a.dc_pl is null,b.dc_pl ,a.dc_pl ) as dc_pl,
DATEDIFF(day, b.dzjsq , a.dzglxq) as dzcz,
DATEDIFF(day, b.xzjsq , a.xzglxq) as xzcz,
a.dzglxq,a.xzglxq,b.xzjsq,b.dzjsq
from
(SELECT dm_sygdxq.dc_ch,dm_sygdxq.DC_FD,dm_sygdxq.dc_pl,dm_sygdxq.dzglxq,dm_sygdxq.xzglxq
from dm_sygdxq WHERE
dm_sygdxq.xzglxq BETWEEN #{begin} and #{end})a
FULL JOIN
(SELECT dm_czplp_new.DC_CH,dm_czplp_new.DC_fd,dm_czplp_new.DC_PL,dm_czplp_new.xzjsq,dm_czplp_new.dzjsq from dm_czplp_new WHERE
dm_czplp_new.xzjsq BETWEEN #{begin} and #{end})b
on
a.DC_CH=b.DC_CH and a.dc_pl=b.DC_PL and a.DC_fd=b.DC_fd
ORDER BY case when a.xzglxq is null then 1 else 0 end,a.xzglxq,dc_ch,dc_pl,b.xzjsq asc
</select>
<update id= "setParent" >
UPDATE dm_sygd_mx_lj set dm_sygd_mx_lj.parent_id=dm_sygd_mx.id
from dm_sygd_mx
WHERE
dm_sygd_mx_lj.dcch=dm_sygd_mx.dc_ch and dm_sygd_mx_lj.pl=dm_sygd_mx.dc_pl and dm_sygd_mx_lj.tzbh= iif(dm_sygd_mx_lj.tzbh is null,'',dm_sygd_mx.tzbh )
and dm_sygd_mx_lj.xzglxq between '2023/08/01' and '2023/10/31'
-- dm_sygd_mx_lj.xzglxq between
-- (SELECT CONVERT(varchar(10),DATEADD(m,1,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),111)
-- and
-- (Select CONVERT(varchar(10), eomonth(GETDATE(),3), 111))
</update>
<select id= "getkw" resultType= "com.dsic.gj_erp.bean.jhgk.dto.Kwdto" >
SELECT
dm_sygd_mx.*
, (select sum(MS_DDMXP.DHSL) as DHSL
from MS_DDJBP,
MS_DDMXP
where RTRIM(MS_DDJBP.CGFLM) = MS_DDMXP.cgflm
and RTRIM(MS_DDJBP.DDH) = MS_DDMXP.DDH
and (MS_DDJBP.DDLX) = 'B'
and MS_DDJBP.dhqdh = dm_czplp_new.dhqd
GROUP BY MS_DDJBP.CGFLM, MS_DDJBP.DDH, MS_DDJBP.ddmc
) as dhsl
, (select sum(im_crklsz.HDSL) as lhsl
from MS_DDJBP,
MS_DDMXP,
im_crklsz
where MS_DDJBP.ddmc = im_crklsz.dc_fd
and MS_DDMXP.dc_ch = im_crklsz.GCDDH
and RTRIM(MS_DDJBP.CGFLM) = MS_DDMXP.cgflm
and RTRIM(MS_DDJBP.DDH) = MS_DDMXP.DDH
and (MS_DDJBP.DDLX) = 'B'
and im_crklsz.CKH = '01'
and MS_DDJBP.dhqdh = dm_czplp_new.dhqd
and im_crklsz.CRKBS = 'RK'
and im_crklsz.HDLX <![CDATA[ <> ]]> '99'
GROUP BY MS_DDJBP.CGFLM, MS_DDJBP.DDH, MS_DDJBP.ddmc
) as lhsl
, dm_czplp_new.dhqd as dhqd
from (
SELECT
substring(dm_sygd_mx.jssj, 0, 8) as yf
, kw
, dm_sygd_mx.dc_ch as ch
, dm_sygd_mx.dc_pl as pl
, dm_sygd_mx.dc_fd as fd
, COUNT(1) as bs
, sum(blgs) as blgs
, sum(pwgs) as pwgs
, sum(llgs) as llgs
, sum(hxgs) as hxgs
, sum(qggs) as qggs
, sum(pkgs) as pkgs
, sum(dmgs) as dmgs
, sum(qgs) as qjggs
, sum(zpgs) as zpgs
from dm_sygd_mx
where dm_sygd_mx.jssj BETWEEN #{begin} and #{end}
GROUP BY substring(dm_sygd_mx.jssj, 0, 8), dm_sygd_mx.kw
, dm_sygd_mx.dc_ch
, dm_sygd_mx.dc_pl
, dm_sygd_mx.dc_fd
) dm_sygd_mx
LEFT JOIN (SELECT dm_czplp_new.dhqd, dm_czplp_new.DC_PL, dm_czplp_new.DC_CH
from dm_czplp_new
GROUP BY dm_czplp_new.DC_PL, dm_czplp_new.DC_CH, dhqd
) dm_czplp_new
on dm_czplp_new.DC_PL = dm_sygd_mx.pl
and dm_czplp_new.DC_CH = dm_sygd_mx.ch
order by dm_sygd_mx.yf
, case when dm_sygd_mx.kw is null then 1 else 0 end
,dm_sygd_mx.kw
,dm_sygd_mx.CH
,dm_sygd_mx.PL
</select>
</mapper>