select if(#{type,jdbcType=INTEGER} = 1,receive.mon024_302,receive.MON024_301) as inCommissionTime, -- 预计来佣年月
if(#{type,jdbcType=INTEGER} = 1,pay.MON025_302,pay.mon025_301) as outCommissionTime,
policy.INS_MST_POLICY_NUM as policyNo, -- 保单号
branch.SPC_AREA_NAME as insurerBranch, -- 分公司
dept.SPC_BUS_NAME as dept, -- 营业部
divl.SPC_DIV_NAME as subordinate, -- 体系id
practitioner.SAL_MST_NAME as practitioner, --
pay.MON025_007 as practitionerIdEG, -- 业务员
title.SRA_RE_NAME as title, -- 职阶
pay.MON025_403 as titleRate, -- 职阶率
pay.premium as premium, -- 保费
policy.INS001_FYCTOTAL as FYC, -- fyc
receive.incommission as rightReceiveCommission, -- 来佣金额
pay.paycommission as rightPayCommission, -- 应发佣金
pay.MON025_108 as commissionType-- 佣奖类型
if(#{type,jdbcType=INTEGER} = 1,pay.MON025_302,pay.mon025_301) as outCommissionTime,
policy.INS_MST_POLICY_NUM as policyNo, -- 保单号
branch.SPC_AREA_NAME as insurerBranch, -- 分公司
dept.SPC_BUS_NAME as dept, -- 营业部
divl.SPC_DIV_NAME as subordinate, -- 体系id
practitioner.SAL_MST_NAME as practitioner, --
pay.MON025_007 as practitionerIdEG, -- 业务员
title.SRA_RE_NAME as title, -- 职阶
pay.MON025_403 as titleRate, -- 职阶率
pay.premium as premium, -- 保费
policy.INS001_FYCTOTAL as FYC, -- fyc
receive.incommission as rightReceiveCommission, -- 来佣金额
pay.paycommission as rightPayCommission, -- 应发佣金
pay.MON025_108 as commissionType-- 佣奖类型
from ins001 policy INNER JOIN (select MON025_002,MON025_301,MON025_302,MON025_005,MON025_006,mon025_007,MON025_008,MON025_403,sum(MON025_401) as premium,sum(MON025_405) as paycommission,MON025_108 from MON025 group by mon025_002,mon025_301,MON025_007) pay on policy.INS_MST_ID = pay.MON025_002 AND pay.mon025_108 in ('S01','S02')
INNER JOIN (select MON024_002,MON024_301,MON024_302,sum(MON024_404) as incommission from MON024 group by MON024_002 ,MON024_301) receive on policy.INS_MST_ID = receive.MON024_002
inner join spc002 dept on dept.SPC_BUS_ID = pay.MON025_005
inner join spc001 branch on branch.SPC_AREA_ID = dept.FK_AREA_ID
inner join spc004 divl on divl.SPC_DIV_ID = pay.MON025_006
inner join sal001 practitioner on practitioner.SAL_MST_ID = pay.MON025_007
inner join sra008 title on title.SRA_RRR_ID = pay.MON025_008
INNER JOIN (select MON024_002,MON024_301,MON024_302,sum(MON024_404) as incommission from MON024 group by MON024_002 ,MON024_301) receive on policy.INS_MST_ID = receive.MON024_002
inner join spc002 dept on dept.SPC_BUS_ID = pay.MON025_005
inner join spc001 branch on branch.SPC_AREA_ID = dept.FK_AREA_ID
inner join spc004 divl on divl.SPC_DIV_ID = pay.MON025_006
inner join sal001 practitioner on practitioner.SAL_MST_ID = pay.MON025_007
inner join sra008 title on title.SRA_RRR_ID = pay.MON025_008
where policy.INS_MST_ID = receive.MON024_002
<iftest="isStatement == 0">
<choose>
<whentest="type == 1">
<iftest="inCommissionTime != null">
and receive.mon024_302 = #{inCommissionTime,jdbcType=VARCHAR}
<iftest="inCommissionStartTime != null">
and CONVERT(receive.mon024_302,signed) >= CONVERT(#{inCommissionStartTime,jdbcType=VARCHAR},signed)
</if>
<iftest="outCommissionTime != null">
and pay.MON025_302 = #{outCommissionTime,jdbcType=VARCHAR}
<iftest="inCommissionEndTime != null">
and CONVERT(receive.mon024_302,signed) <= CONVERT(#{inCommissionEndTime,jdbcType=VARCHAR},signed)
</if>
<iftest="outCommissionStartTime != null">
and CONVERT(pay.MON025_302,signed) >= CONVERT(#{outCommissionStartTime,jdbcType=VARCHAR},signed)
</if>
<iftest="outCommissionEndTime != null">
and CONVERT(pay.MON025_302,signed) <= CONVERT(#{outCommissionEndTime,jdbcType=VARCHAR},signed)
</if>
</when>
<otherwise>
<iftest="inCommissionTime != null">
and receive.mon024_301 = #{inCommissionTime,jdbcType=VARCHAR}
<iftest="inCommissionStartTime != null">
and CONVERT(receive.mon024_301,signed) >= CONVERT(#{inCommissionStartTime,jdbcType=VARCHAR},signed)
</if>
<iftest="inCommissionEndTime != null">
and CONVERT(receive.mon024_301,signed) <= CONVERT(#{inCommissionEndTime,jdbcType=VARCHAR},signed)
</if>
<iftest="outCommissionStartTime != null">
and CONVERT(pay.MON025_301,signed) >= CONVERT(#{outCommissionStartTime,jdbcType=VARCHAR},signed)
</if>
<iftest="outCommissionTime != null">
and pay.MON025_301 = #{outCommissionTime,jdbcType=VARCHAR}
<iftest="outCommissionEndTime != null">
and CONVERT(pay.MON025_301,signed) <= CONVERT(#{outCommissionEndTime,jdbcType=VARCHAR},signed)