<?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.dhcc.finance.main.dao.CwProjectCheckMapper"> <resultMap id="BaseResultMap" type="com.dhcc.finance.main.model.CwProjectCheckWeb"> <result column="xtxmbh" jdbcType="VARCHAR" property="xtxmbh" /> <result column="xtzxmbh" jdbcType="VARCHAR" property="xtzxmbh" /> <result column="xtzxmqc" jdbcType="VARCHAR" property="xtzxmqc" /> <result column="user_name" jdbcType="VARCHAR" property="accountMan" /> <result column="subjcode" jdbcType="VARCHAR" property="subjcode" /> <result column="subjname" jdbcType="VARCHAR" property="subjname" /> <result column="balance" jdbcType="DECIMAL" property="balance" /> <result column="XMYJZZR" jdbcType="VARCHAR" property="xmyjzzr" /> <result column="XMZZR" jdbcType="VARCHAR" property="xmzzr" /> <result column="XMZT" jdbcType="VARCHAR" property="xmzt" /> <result column="CHECKTYPE" jdbcType="VARCHAR" property="checkType" /> <result column="balance_freevalue" jdbcType="DECIMAL" property="balanceFreevalue" /> <result column="balance_advance" jdbcType="DECIMAL" property="companyAdvance" /> <result column="checkvalue" jdbcType="VARCHAR" property="checkValue" /> <result column="valuename" jdbcType="VARCHAR" property="valueName" /> </resultMap> <!-- 单个科目余额出现负数 --> <select id="selectSingleSubjectBalance" resultMap="BaseResultMap"> select a.XTXMBH, a.XTZXMBH, a.XTZXMQC, b.USER_NAME, c.XMZT, c.XMZZR, a.SUBJCODE, a.SUBJNAME, a.balance from (select b.XTXMBH, b.XTZXMBH, b.NAME as XTZXMQC, a.DEBITAMOUNT, a.CREDITAMOUNT, a.PK_ACCSUBJ, c.SUBJCODE, c.SUBJNAME, CASE c.BALANORIENT when '1' then sum(a.DEBITAMOUNT)-sum(a.CREDITAMOUNT) else sum(a.CREDITAMOUNT)-sum(a.DEBITAMOUNT) END balance from cw_gl_detail a LEFT JOIN cw_bd_glorgbook b on a.PK_GLORGBOOK=b.PK_GLORGBOOK LEFT JOIN CW_BD_ACCSUBJ c on a.PK_ACCSUBJ=c.PK_ACCSUBJ and c.PK_SUBJSCHEME=b.PK_SUBJSCHEME where a.PREPAREDATE<![CDATA[ <= ]]> #{jzrq,jdbcType=VARCHAR} and left(c.SUBJCODE,6)<![CDATA[ <> ]]>'110102' and left(c.SUBJCODE,6)<![CDATA[ <> ]]>'150302' and left(c.SUBJCODE,4)<![CDATA[ <> ]]>'4103' and left(c.SUBJCODE,4)<![CDATA[ <> ]]>'4104' and left(c.SUBJCODE,4)<![CDATA[ <> ]]>'4003' and left(c.SUBJCODE,1)<![CDATA[ <> ]]>'6' and a.USE_STATE='1' GROUP BY b.XTXMBH, b.XTZXMBH, a.PK_ACCSUBJ HAVING balance <![CDATA[ < ]]>0 ) a LEFT JOIN pm_project_child c on a.XTZXMBH = c.XTZXMBH LEFT JOIN ( select m.project_id, n.USER_ID,p.USER_NAME from pm_pgroup_rel m LEFT JOIN w_gu_ref n on m.g_id=n.g_id LEFT JOIN sys_user_info p on n.USER_ID=p.USER_ID where n.G_ROLE='5' ) b on a.XTZXMBH=b.project_id <where> <if test="xtxmbh != null"> and a.XTXMBH = #{xtxmbh,jdbcType=VARCHAR} </if> <if test="xtzxmbh != null"> and a.XTZXMBH = #{xtzxmbh,jdbcType=VARCHAR} </if> <if test="userId != null"> and b.USER_ID = #{userId,jdbcType=VARCHAR} </if> </where> </select> <!-- 查询未结束项目无信托规模 --> <select id="selectNoScaleNoClosed" resultMap="BaseResultMap"> select b.XTXMBH, a.XTZXMBH, b.XTZXMQC, b.XMZT,b.XMYJZZR, e.USER_NAME from ( select b.XTZXMBH, sum(a.LOCALCREDITAMOUNT-a.LOCALDEBITAMOUNT) as balance from cw_gl_detail a left join cw_bd_glorgbook b on a.PK_GLORGBOOK=b.PK_GLORGBOOK where a.SUBJCODE like '4001%' and a.use_state='1' and a.PREPAREDATE <![CDATA[ <= ]]> #{jzrq,jdbcType=VARCHAR} GROUP BY b.XTZXMBH ) a left join pm_project_child b on a.XTZXMBH=b.XTZXMBH LEFT JOIN ( select m.project_id, n.USER_ID,p.USER_NAME from pm_pgroup_rel m LEFT JOIN w_gu_ref n on m.g_id=n.g_id LEFT JOIN sys_user_info p on n.USER_ID=p.USER_ID where n.G_ROLE='5' )e on a.XTZXMBH=e.project_id where a.balance=0 and b.XMZT not in ('11','12') <if test="xtxmbh != null"> and b.XTXMBH = #{xtxmbh,jdbcType=VARCHAR} </if> <if test="xtzxmbh != null"> and a.XTZXMBH = #{xtzxmbh,jdbcType=VARCHAR} </if> <if test="userId != null"> and e.USER_ID = #{userId,jdbcType=VARCHAR} </if> </select> <!-- 未分配利润出现负数 --> <select id="selectUndistributedProfit" resultMap="BaseResultMap"> select a.XTXMBH, a.XTZXMBH, a.NAME as XTZXMQC, e.USER_NAME, f.XMZT, f.XMZZR, ifnull(b.ye,0)+ifnull(c.sr,0)-ifnull(d.fy,0) as balance from cw_bd_glorgbook a left join pm_project_child f on a.XTZXMBH=f.XTZXMBH left join ( SELECT PK_GLORGBOOK,ifnull(sum(LOCALCREDITAMOUNT-LOCALDEBITAMOUNT), 0) as ye FROM cw_gl_detail WHERE LEFT(SUBJCODE, 4) IN ('4103', '4104') AND PREPAREDATE<![CDATA[ <= ]]> #{jzrq,jdbcType=VARCHAR} AND USE_STATE = '1' group by PK_GLORGBOOK ) b on a.PK_GLORGBOOK=b.PK_GLORGBOOK left join ( SELECT PK_GLORGBOOK,ifnull( sum( LOCALCREDITAMOUNT-LOCALDEBITAMOUNT ), 0 ) as sr FROM cw_gl_detail WHERE LEFT(SUBJCODE, 4) IN ('6011', '6041', '6061', '6101', '6111', '6302', '6901') and PREPAREDATE<![CDATA[ <= ]]> #{jzrq,jdbcType=VARCHAR} AND USE_STATE = '1' group by PK_GLORGBOOK ) c on a.PK_GLORGBOOK=c.PK_GLORGBOOK left join ( SELECT PK_GLORGBOOK,ifnull( sum( LOCALDEBITAMOUNT-LOCALCREDITAMOUNT ), 0 ) as fy FROM cw_gl_detail WHERE LEFT(SUBJCODE, 4) IN ('6404', '6406', '6407', '6408', '6409', '6605', '6403', '6701', '6402') and PREPAREDATE<![CDATA[ <= ]]> #{jzrq,jdbcType=VARCHAR} AND USE_STATE = '1' group by PK_GLORGBOOK ) d on a.PK_GLORGBOOK=d.PK_GLORGBOOK left join ( select m.project_id, n.USER_ID,p.USER_NAME from pm_pgroup_rel m LEFT JOIN w_gu_ref n on m.g_id=n.g_id LEFT JOIN sys_user_info p on n.USER_ID=p.USER_ID where n.G_ROLE='5' ) e on a.XTZXMBH=e.project_id <where> <if test="xtxmbh != null"> and a.XTXMBH = #{xtxmbh,jdbcType=VARCHAR} </if> <if test="xtzxmbh != null"> and a.XTZXMBH = #{xtzxmbh,jdbcType=VARCHAR} </if> <if test="userId != null"> and e.USER_ID = #{userId,jdbcType=VARCHAR} </if> </where> GROUP BY a.XTXMBH, a.XTZXMBH having balance<![CDATA[ < ]]>0 </select> <!-- 科目余额与辅助账余额不一致 --> <select id="selectDifferentBalance" resultMap="BaseResultMap"> <if test="kmlx == 1"> select c.XTXMBH, c.XTZXMBH, d.XTZXMQC, d.XMZT, d.XMZZR, e.USER_NAME, a.SUBJCODE, b.NAME as CHECKTYPE, a.BALANCE as balance_freevalue, f.balance from ( SELECT a.PK_GLORGBOOK, a.SUBJCODE, b.CHECKTYPE, SUM(b.DEBITAMOUNT)-SUM(b.CREDITAMOUNT) AS BALANCE FROM ( SELECT PK_GLORGBOOK, PK_ACCSUBJ, SUBJCODE, ASSID FROM CW_GL_DETAIL WHERE SUBJCODE like '1%' and SUBJCODE not in ('1002','1021','101201','101203','113102','113206','113207','122199','11110101') AND PREPAREDATE<![CDATA[ <= ]]> #{jzrq,jdbcType=VARCHAR} AND USE_STATE= '1' ) a INNER JOIN ( SELECT PK_FREEVALUE, ASSID, CHECKTYPE, CHECKVALUE, VALUENAME, DEBITAMOUNT, CREDITAMOUNT FROM cw_gl_freevalue where CHECKTYPE <![CDATA[ <> ]]>'' ) b ON a.assid=b.assid GROUP BY a.PK_GLORGBOOK, a.PK_ACCSUBJ, b.CHECKTYPE ) a LEFT JOIN CW_BD_ACCASSITEM b on a.checktype = b.PK_ACCASSITEM left join ( select a.PK_GLORGBOOK, a.SUBJCODE, sum(a.LOCALDEBITAMOUNT-a.LOCALCREDITAMOUNT) balance from cw_gl_detail a where left(SUBJCODE, 1)='1' and a.PREPAREDATE<![CDATA[ <= ]]> #{jzrq,jdbcType=VARCHAR} and a.use_state='1' GROUP BY a.PK_GLORGBOOK, a.SUBJCODE ) f on a.PK_GLORGBOOK=f.PK_GLORGBOOK and a.SUBJCODE=f.SUBJCODE LEFT JOIN CW_BD_GLORGBOOK c on a.PK_GLORGBOOK = c.PK_GLORGBOOK LEFT JOIN pm_project_child d on c.XTZXMBH=d.XTZXMBH LEFT JOIN ( select m.project_id, n.USER_ID, p.USER_NAME from pm_pgroup_rel m LEFT JOIN w_gu_ref n on m.g_id=n.g_id LEFT JOIN sys_user_info p on n.USER_ID=p.USER_ID where n.G_ROLE='5' ) e on d.XTZXMBH=e.project_id where a.BALANCE<![CDATA[ <> ]]>f.balance and a.CHECKTYPE in ('2019032120300101100009','2019032120300101100008') <if test="xtxmbh != null"> and c.XTXMBH = #{xtxmbh,jdbcType=VARCHAR} </if> <if test="xtzxmbh != null"> and c.XTZXMBH = #{xtzxmbh,jdbcType=VARCHAR} </if> <if test="userId != null"> and e.USER_ID = #{userId,jdbcType=VARCHAR} </if> </if> <if test="kmlx == 2"> select c.XTXMBH, c.XTZXMBH, d.XTZXMQC, d.XMZT, d.XMZZR, e.USER_NAME, a.SUBJCODE, b.NAME as CHECKTYPE, a.BALANCE as balance_freevalue, f.balance from ( SELECT a.PK_GLORGBOOK, a.SUBJCODE, b.CHECKTYPE, SUM(b.CREDITAMOUNT)-SUM(b.DEBITAMOUNT) AS BALANCE FROM ( SELECT PK_GLORGBOOK, PK_ACCSUBJ, SUBJCODE, ASSID FROM CW_GL_DETAIL WHERE SUBJCODE like '4001%' AND PREPAREDATE<![CDATA[ <= ]]> #{jzrq,jdbcType=VARCHAR} AND USE_STATE= '1' ) a INNER JOIN ( SELECT PK_FREEVALUE, ASSID, CHECKTYPE, CHECKVALUE, VALUENAME, DEBITAMOUNT, CREDITAMOUNT FROM cw_gl_freevalue where CHECKVALUE is not null ) b ON a.assid=b.assid GROUP BY a.PK_GLORGBOOK, a.PK_ACCSUBJ, b.CHECKTYPE ) a LEFT JOIN CW_BD_ACCASSITEM b on a.checktype = b.PK_ACCASSITEM left join ( select a.PK_GLORGBOOK, a.SUBJCODE, sum(a.LOCALCREDITAMOUNT-a.LOCALDEBITAMOUNT) balance from cw_gl_detail a where a.SUBJCODE like '4001%' and a.PREPAREDATE<![CDATA[ <= ]]> #{jzrq,jdbcType=VARCHAR} and a.use_state='1' GROUP BY a.PK_GLORGBOOK, a.SUBJCODE ) f on a.PK_GLORGBOOK=f.PK_GLORGBOOK and a.SUBJCODE=f.SUBJCODE LEFT JOIN CW_BD_GLORGBOOK c on a.PK_GLORGBOOK = c.PK_GLORGBOOK LEFT JOIN pm_project_child d on c.XTZXMBH=d.XTZXMBH LEFT JOIN ( select m.project_id, n.USER_ID, p.USER_NAME from pm_pgroup_rel m LEFT JOIN w_gu_ref n on m.g_id=n.g_id LEFT JOIN sys_user_info p on n.USER_ID=p.USER_ID where n.G_ROLE='5' ) e on d.XTZXMBH=e.project_id where a.BALANCE<![CDATA[ <> ]]>f.balance and a.CHECKTYPE in ('2019032120300101100004','2019032120300101100017') <if test="xtxmbh != null"> and c.XTXMBH = #{xtxmbh,jdbcType=VARCHAR} </if> <if test="xtzxmbh != null"> and c.XTZXMBH = #{xtzxmbh,jdbcType=VARCHAR} </if> <if test="userId != null"> and e.USER_ID = #{userId,jdbcType=VARCHAR} </if> </if> </select> <!-- 已结束项目存在信托规模 --> <select id="selectScaleOfClosedProjects" resultMap="BaseResultMap"> select a.XTXMBH, a.XTZXMBH, a.XTZXMQC, c.USER_NAME, a.XMYJZZR, a.XMZZR, a.XMZT, b.balance from ( select XTXMBH, XTZXMBH, XTZXMQC, XMYJZZR, XMZZR, XMZT from pm_project_child where XMYJZZR<![CDATA[ <= ]]>#{xmyjzzr,jdbcType=VARCHAR}) a inner join ( select b.XTZXMBH, sum(a.LOCALCREDITAMOUNT-a.LOCALDEBITAMOUNT) balance from cw_gl_detail a left join cw_bd_glorgbook b on a.PK_GLORGBOOK=b.PK_GLORGBOOK where a.SUBJCODE like '4001%' and a.PREPAREDATE<![CDATA[ <= ]]> #{xmyjzzr,jdbcType=VARCHAR} and a.use_state='1' GROUP BY b.XTZXMBH having balance<![CDATA[ > ]]>0 ) b on a.XTZXMBH=b.XTZXMBH left join ( select m.project_id, n.USER_ID,p.USER_NAME from pm_pgroup_rel m LEFT JOIN w_gu_ref n on m.g_id=n.g_id LEFT JOIN sys_user_info p on n.USER_ID=p.USER_ID where n.G_ROLE='5' ) c on a.XTZXMBH=c.project_id <where> <if test="xtxmbh != null"> and a.XTXMBH = #{xtxmbh,jdbcType=VARCHAR} </if> <if test="xtzxmbh != null"> and a.XTZXMBH = #{xtzxmbh,jdbcType=VARCHAR} </if> <if test="userId != null"> and c.USER_ID = #{userId,jdbcType=VARCHAR} </if> </where> </select> <!-- 科目辅助账存在负数 --> <select id="selectAssetAccountBalance" resultMap="BaseResultMap"> <if test="kmlx == 1"> select c.XTXMBH, c.XTZXMBH, d.XTZXMQC, e.USER_NAME, d.XMZT,d.XMZZR, a.SUBJCODE, a.SUBJNAME, b.name as CHECKTYPE, a.CHECKVALUE, a.VALUENAME, a.BALANCE from ( SELECT a.PK_GLORGBOOK, a.SUBJCODE, a.SUBJNAME, b.CHECKTYPE, b.CHECKVALUE, b.VALUENAME, SUM(b.DEBITAMOUNT)-SUM(b.CREDITAMOUNT) AS BALANCE FROM ( SELECT PK_GLORGBOOK, PK_ACCSUBJ, SUBJCODE, SUBJNAME, ASSID FROM CW_GL_DETAIL WHERE SUBJCODE like '1%' and locate('150302',SUBJCODE) != 1 and locate('110102',SUBJCODE) != 1 and SUBJCODE not in ('1002','1021','101201','101203','11010201','11010203','113102','113203','113206','113207','113299','1101020205','1101020207') AND PREPAREDATE<![CDATA[ <= ]]> #{jzrq,jdbcType=VARCHAR} AND USE_STATE= '1' ) a INNER JOIN ( SELECT PK_FREEVALUE, ASSID, CHECKTYPE, CHECKVALUE, VALUENAME, DEBITAMOUNT, CREDITAMOUNT FROM cw_gl_freevalue where CHECKVALUE is not null ) b ON a.assid=b.assid GROUP BY a.PK_GLORGBOOK, a.PK_ACCSUBJ, b.CHECKTYPE, b.CHECKVALUE having BALANCE<![CDATA[ < ]]>0 ) a LEFT JOIN CW_BD_ACCASSITEM b on a.checktype = b.PK_ACCASSITEM LEFT JOIN CW_BD_GLORGBOOK c on a.PK_GLORGBOOK = c.PK_GLORGBOOK LEFT JOIN pm_project_child d on c.XTZXMBH=d.XTZXMBH LEFT JOIN ( select m.project_id, n.USER_ID, p.USER_NAME from pm_pgroup_rel m LEFT JOIN w_gu_ref n on m.g_id=n.g_id LEFT JOIN sys_user_info p on n.USER_ID=p.USER_ID where n.G_ROLE='5' ) e on d.XTZXMBH=e.project_id <where> <if test="xtxmbh != null"> and c.XTXMBH = #{xtxmbh,jdbcType=VARCHAR} </if> <if test="xtzxmbh != null"> and c.XTZXMBH = #{xtzxmbh,jdbcType=VARCHAR} </if> <if test="userId != null"> and e.USER_ID = #{userId,jdbcType=VARCHAR} </if> </where> order by c.XTXMBH, c.XTZXMBH, b.name </if> <if test="kmlx == 2"> select c.XTXMBH, c.XTZXMBH, d.XTZXMQC, e.USER_NAME, d.XMZT,d.XMZZR, a.SUBJCODE, a.SUBJNAME, b.name as CHECKTYPE, a.CHECKVALUE, a.VALUENAME, a.BALANCE from ( SELECT a.PK_GLORGBOOK, a.SUBJCODE, a.SUBJNAME, b.CHECKTYPE, b.CHECKVALUE, b.VALUENAME, SUM(b.CREDITAMOUNT)-SUM(b.DEBITAMOUNT) AS BALANCE FROM ( SELECT PK_GLORGBOOK, PK_ACCSUBJ, SUBJCODE, SUBJNAME, ASSID FROM CW_GL_DETAIL WHERE SUBJCODE like '4001%' AND PREPAREDATE<![CDATA[ <= ]]> #{jzrq,jdbcType=VARCHAR} AND USE_STATE= '1' ) a INNER JOIN ( SELECT PK_FREEVALUE, ASSID, CHECKTYPE, CHECKVALUE, VALUENAME, DEBITAMOUNT, CREDITAMOUNT FROM cw_gl_freevalue where CHECKTYPE in ('2019032120300101100004','2019032120300101100017') ) b ON a.assid=b.assid GROUP BY a.PK_GLORGBOOK, a.PK_ACCSUBJ, b.CHECKTYPE, b.CHECKVALUE having BALANCE<![CDATA[ < ]]> 0 ) a LEFT JOIN CW_BD_ACCASSITEM b on a.checktype = b.PK_ACCASSITEM LEFT JOIN CW_BD_GLORGBOOK c on a.PK_GLORGBOOK = c.PK_GLORGBOOK LEFT JOIN pm_project_child d on c.XTZXMBH=d.XTZXMBH LEFT JOIN ( select m.project_id, n.USER_ID, p.USER_NAME from pm_pgroup_rel m LEFT JOIN w_gu_ref n on m.g_id=n.g_id LEFT JOIN sys_user_info p on n.USER_ID=p.USER_ID where n.G_ROLE='5' ) e on d.XTZXMBH=e.project_id <where> <if test="xtxmbh != null"> and c.XTXMBH = #{xtxmbh,jdbcType=VARCHAR} </if> <if test="xtzxmbh != null"> and c.XTZXMBH = #{xtzxmbh,jdbcType=VARCHAR} </if> <if test="userId != null"> and e.USER_ID = #{userId,jdbcType=VARCHAR} </if> </where> order by c.XTXMBH, c.XTZXMBH, b.name </if> </select> <!-- 应付受益人收益有余额 --> <select id="selectAccruedIncomeBalance" resultMap="BaseResultMap"> select b.XTXMBH, a.XTZXMBH, b.XTZXMQC,b.XMZT, b.XMZZR, c.USER_NAME, a.balance from ( select b.XTZXMBH, sum(a.LOCALCREDITAMOUNT-a.LOCALDEBITAMOUNT) balance from cw_gl_detail a left join cw_bd_glorgbook b on a.PK_GLORGBOOK=b.PK_GLORGBOOK where a.SUBJCODE like '2205%' and a.PREPAREDATE<![CDATA[ <= ]]> #{jzrq,jdbcType=VARCHAR} and a.use_state='1' GROUP BY b.XTZXMBH having balance<![CDATA[ > ]]>0 ) a left join pm_project_child b on a.XTZXMBH=b.XTZXMBH left join ( select m.project_id, n.USER_ID,p.USER_NAME from pm_pgroup_rel m LEFT JOIN w_gu_ref n on m.g_id=n.g_id LEFT JOIN sys_user_info p on n.USER_ID=p.USER_ID where n.G_ROLE='5' ) c on a.XTZXMBH=c.project_id <where> <if test="xtxmbh != null"> and b.XTXMBH = #{xtxmbh,jdbcType=VARCHAR} </if> <if test="xtzxmbh != null"> and a.XTZXMBH = #{xtzxmbh,jdbcType=VARCHAR} </if> <if test="userId != null"> and c.USER_ID = #{userId,jdbcType=VARCHAR} </if> </where> </select> <!-- 其他应付款余额超过100万 --> <select id="selectOtherPayablesBalance" resultMap="BaseResultMap"> select b.XTXMBH, a.XTZXMBH, b.XTZXMQC, b.XMZT, b.XMZZR, c.USER_NAME, a.balance from ( select b.XTZXMBH, sum(a.LOCALCREDITAMOUNT-a.LOCALDEBITAMOUNT) balance from cw_gl_detail a left join cw_bd_glorgbook b on a.PK_GLORGBOOK=b.PK_GLORGBOOK where a.SUBJCODE like '2241%' and a.PREPAREDATE<![CDATA[ <= ]]> #{jzrq,jdbcType=VARCHAR} and a.use_state='1' GROUP BY b.XTZXMBH having balance<![CDATA[ >= ]]>1000000 ) a left join pm_project_child b on a.XTZXMBH=b.XTZXMBH left join ( select m.project_id, n.USER_ID,p.USER_NAME from pm_pgroup_rel m LEFT JOIN w_gu_ref n on m.g_id=n.g_id LEFT JOIN sys_user_info p on n.USER_ID=p.USER_ID where n.G_ROLE='5' ) c on a.XTZXMBH=c.project_id <where> <if test="xtxmbh != null"> and b.XTXMBH = #{xtxmbh,jdbcType=VARCHAR} </if> <if test="xtzxmbh != null"> and a.XTZXMBH = #{xtzxmbh,jdbcType=VARCHAR} </if> <if test="userId != null"> and c.USER_ID = #{userId,jdbcType=VARCHAR} </if> </where> </select> <!-- 未归还固有代垫款项目 --> <select id="selectEntrustRewardBalance" resultMap="BaseResultMap"> select d.XTXMBH, a.XTZXMBH, d.XTZXMQC, d.XMZT, d.XMZZR, e.USER_NAME, a.balance_2206 as balance, a.balance_224102 as balance_advance from ( SELECT a.PK_GLORGBOOK, a.XTZXMBH, IFNULL(a.balance,0) balance_2206, IFNULL(b.balance,0) balance_224102 FROM ( select gb.PK_GLORGBOOK, gb.XTZXMBH, a.balance from ( SELECT a.PK_GLORGBOOK, sum(a.LOCALDEBITAMOUNT) balance from cw_gl_detail a where left(a.SUBJCODE, 4)='2206' and a.PREPAREDATE<![CDATA[ > ]]>date_format(last_day(date_add(#{jzrq,jdbcType=VARCHAR}, interval -1 month)),'%Y%m%d') and a.PREPAREDATE<![CDATA[ <= ]]> #{jzrq,jdbcType=VARCHAR} and a.USE_STATE='1' GROUP BY a.PK_GLORGBOOK )a LEFT JOIN CW_BD_GLORGBOOK gb on gb.PK_GLORGBOOK = a.PK_GLORGBOOK )a INNER JOIN ( select gb.PK_GLORGBOOK, gb.XTZXMBH, a.balance from ( SELECT a.PK_GLORGBOOK, sum(a.LOCALCREDITAMOUNT)-sum(a.LOCALDEBITAMOUNT) balance from cw_gl_detail a where left(a.SUBJCODE, 6)='224102' and a.PREPAREDATE<![CDATA[ <= ]]> #{jzrq,jdbcType=VARCHAR} and a.USE_STATE='1' GROUP BY a.PK_GLORGBOOK )a LEFT JOIN CW_BD_GLORGBOOK gb on gb.PK_GLORGBOOK = a.PK_GLORGBOOK )b on a.PK_GLORGBOOK = b.PK_GLORGBOOK where a.balance > b.balance and b.balance<![CDATA[ <> ]]>0 )a LEFT JOIN pm_project_child d on d.XTZXMBH=a.XTZXMBH LEFT JOIN ( select m.project_id, n.USER_ID,p.USER_NAME from pm_pgroup_rel m LEFT JOIN w_gu_ref n on m.g_id=n.g_id LEFT JOIN sys_user_info p on n.USER_ID=p.USER_ID where n.G_ROLE='5' )e on d.XTZXMBH=e.project_id <where> <if test="xtxmbh != null"> and d.XTXMBH = #{xtxmbh,jdbcType=VARCHAR} </if> <if test="xtzxmbh != null"> and a.XTZXMBH = #{xtzxmbh,jdbcType=VARCHAR} </if> <if test="userId != null"> and e.USER_ID = #{userId,jdbcType=VARCHAR} </if> </where> </select> </mapper>