demand: 销售回款率相关需求

This commit is contained in:
aike 2026-04-07 11:04:20 +08:00
parent 126de05b1a
commit 8e0baaa18c
3 changed files with 222 additions and 31 deletions

View File

@ -794,11 +794,22 @@
</if>
<!-- 销售主管 -->
<if test="salesExecutive != null and salesExecutive != ''">
AND cu.sales_executive LIKE CONCAT('%', #{salesExecutive}, '%')
AND EXISTS (
SELECT 1 FROM emis_sales_commission_ratio escr
WHERE escr.del_flag = '0'
AND escr.salesmen = cu.salesmen
AND escr.status = '1'
AND escr.sales_executive LIKE CONCAT('%', #{salesExecutive}, '%')
)
</if>
<!-- 销售支持 -->
<if test="salesSupport != null and salesSupport != ''">
AND cu.sales_support LIKE CONCAT('%', #{salesSupport}, '%')
AND EXISTS (
SELECT 1 FROM emis_waybill_other ewo
WHERE ewo.del_flag = '0'
AND ewo.waybill_id = a.id
AND ewo.sales_support LIKE CONCAT('%', #{salesSupport}, '%')
)
</if>
<!-- 销售联系人 -->
<if test="salesmen != null and salesmen != ''">
@ -807,8 +818,19 @@
<!-- 权限控制 -->
<if test="params.privSiteCode != null and params.privSiteCode != '88888'">
AND (
cu.sales_executive = #{params.privEmpName}
OR cu.sales_support = #{params.privEmpName}
EXISTS (
SELECT 1 FROM emis_sales_commission_ratio escr
WHERE escr.del_flag = '0'
AND escr.status = '1'
AND escr.salesmen = cu.salesmen
AND escr.sales_executive = #{params.privEmpName}
)
OR EXISTS (
SELECT 1 FROM emis_waybill_other ewo
WHERE ewo.del_flag = '0'
AND ewo.waybill_id = a.id
AND ewo.sales_support = #{params.privEmpName}
)
OR cu.salesmen = #{params.privEmpName}
OR cu.salesmen IN (
SELECT salesmen FROM emis_salesmen_rel esr

View File

@ -870,7 +870,17 @@
-->
<select id="querySalesPayBackRateList" parameterType="EmisSettleBill" resultType="map">
SELECT
tbMA.salesmen,
<choose>
<when test="params.statisticsType != null and params.statisticsType == 1">
ifnull(tbSB.salesSupport,'') as salesSupport,
</when>
<when test="params.statisticsType != null and params.statisticsType == 2">
ifnull(tbSE.salesExecutive,'') as salesExecutive,
</when>
<otherwise>
tbMA.salesmen,
</otherwise>
</choose>
tbMA.billMonth,
sum(if( tbMA.settleType=1,1, 0 ) ) AS totalMoneyBillCount,
@ -1276,14 +1286,61 @@
</where>
GROUP BY a.settle_bill_no
) tbc ON tba.settle_bill_no = tbc.settle_bill_no
) tbMA left join (
) tbMA
left join (
select essb.settle_bill_no, max(ifnull(ewo.sales_support,'')) as salesSupport
from emis_settle_sub_bill essb
left join emis_waybill_other ewo on essb.bill_code = ewo.bill_code and ewo.del_flag = '0'
where essb.del_flag = '0'
group by essb.settle_bill_no
) tbSB on tbMA.settleBillNo = tbSB.settle_bill_no
left join (
select salesmen, max(ifnull(sales_executive,'')) as salesExecutive
from emis_sales_commission_ratio
where del_flag = '0'
group by salesmen
) tbSE on tbMA.salesmen = tbSE.salesmen
left join (
SELECT emp_name, bill_month,
max(money) as money,
max(month_money) as month_money
FROM emis_commission_profit
GROUP BY emp_name, bill_month
) ecp on tbMA.salesmen=ecp.emp_name and tbMA.billMonth = ecp.bill_month
group by tbMA.salesmen,tbMA.billMonth
) ecp on 1=1
<choose>
<when test="params.statisticsType != null and params.statisticsType == 1">
and tbSB.salesSupport = ecp.emp_name
</when>
<when test="params.statisticsType != null and params.statisticsType == 2">
and tbSE.salesExecutive = ecp.emp_name
</when>
<otherwise>
and tbMA.salesmen = ecp.emp_name
</otherwise>
</choose>
and tbMA.billMonth = ecp.bill_month
<where>
1=1
<if test="params.salesSupport != null and params.salesSupport != ''">
and tbSB.salesSupport like concat('%', #{params.salesSupport}, '%')
</if>
<if test="params.salesExecutive != null and params.salesExecutive != ''">
and tbSE.salesExecutive like concat('%', #{params.salesExecutive}, '%')
</if>
</where>
group by
<choose>
<when test="params.statisticsType != null and params.statisticsType == 1">
ifnull(tbSB.salesSupport,'')
</when>
<when test="params.statisticsType != null and params.statisticsType == 2">
ifnull(tbSE.salesExecutive,'')
</when>
<otherwise>
tbMA.salesmen
</otherwise>
</choose>
,tbMA.billMonth
</select>
<sql id="selectEmisSettleBillVo">
@ -1329,6 +1386,24 @@
<if test="refundMoney != null "> and refund_money = #{refundMoney}</if>
<if test="payee != null and payee != ''"> and payee = #{payee}</if>
<if test="salesmen != null and salesmen != ''"> and salesmen = #{salesmen}</if>
<if test="params.salesExecutive != null and params.salesExecutive != ''">
and exists (
select 1 from emis_sales_commission_ratio escr
where escr.del_flag = '0'
and escr.salesmen = a.salesmen
and escr.sales_executive like concat('%', #{params.salesExecutive}, '%')
)
</if>
<if test="params.salesSupport != null and params.salesSupport != ''">
and exists (
select 1
from emis_settle_sub_bill essb
inner join emis_waybill_other ewo on essb.bill_code = ewo.bill_code and ewo.del_flag = '0'
where essb.del_flag = '0'
and essb.settle_bill_no = a.settle_bill_no
and ewo.sales_support like concat('%', #{params.salesSupport}, '%')
)
</if>
<if test="blSendOms != null and blSendOms != ''"> and bl_send_oms = #{blSendOms}</if>
<if test="blConfirmCenter != null and blConfirmCenter != ''"> and bl_confirm_center = #{blConfirmCenter}</if>
<if test="confirmCenterDate != null "> and confirm_center_date = #{confirmCenterDate}</if>

View File

@ -549,7 +549,16 @@
<sql id="salesSupportFilter">
<!-- 销售支持筛选:优先匹配运单其他信息中的配置 -->
<if test="salesSupport != null and salesSupport != ''">
AND COALESCE(wss.sales_support, a4.sales_support) LIKE CONCAT('%', #{salesSupport}, '%')
AND wss.sales_support LIKE CONCAT('%', #{salesSupport}, '%')
</if>
<if test="salesExecutive != null and salesExecutive != ''">
and exists (
select 1 from emis_sales_commission_ratio escr
where escr.del_flag = '0'
AND escr.status = '1'
and escr.salesmen = a.salesmen
and escr.sales_executive like concat('%', #{salesExecutive}, '%')
)
</if>
</sql>
@ -1917,7 +1926,7 @@
inner join emis_money_user emu on wss_mu.money_user_id=emu.id and emu.del_flag='0'
left join sys_user su_payee on emu.payee=su_payee.emp_name and su_payee.del_flag='0'
left join sys_user su_salesmen on emu.salesmen=su_salesmen.emp_name and su_salesmen.del_flag='0'
left join sys_user su_sales_support on emu.sales_support=su_sales_support.emp_name and su_sales_support.del_flag='0'
left join sys_user su_sales_support on wss_mu.sales_support=su_sales_support.emp_name and su_sales_support.del_flag='0'
where wss_mu.waybill_id=a.id and wss_mu.del_flag='0'
and (
su_payee.owner_site_code=#{params.privSiteCode}
@ -2317,7 +2326,7 @@
inner join emis_money_user emu on wss_mu.money_user_id=emu.id and emu.del_flag='0'
left join sys_user su_payee on emu.payee=su_payee.emp_name and su_payee.del_flag='0'
left join sys_user su_salesmen on emu.salesmen=su_salesmen.emp_name and su_salesmen.del_flag='0'
left join sys_user su_sales_support on emu.sales_support=su_sales_support.emp_name and su_sales_support.del_flag='0'
left join sys_user su_sales_support on wss_mu.sales_support=su_sales_support.emp_name and su_sales_support.del_flag='0'
where wss_mu.waybill_id=a.id and wss_mu.del_flag='0'
and (
su_payee.owner_site_code=#{params.privSiteCode}
@ -3220,7 +3229,7 @@
inner join emis_money_user emu on wss_mu.money_user_id=emu.id and emu.del_flag='0'
left join sys_user su_payee on emu.payee=su_payee.emp_name and su_payee.del_flag='0'
left join sys_user su_salesmen on emu.salesmen=su_salesmen.emp_name and su_salesmen.del_flag='0'
left join sys_user su_sales_support on emu.sales_support=su_sales_support.emp_name and su_sales_support.del_flag='0'
left join sys_user su_sales_support on wss_mu.sales_support=su_sales_support.emp_name and su_sales_support.del_flag='0'
where wss_mu.waybill_id=a.id and wss_mu.del_flag='0'
and (
su_payee.owner_site_code=#{params.privSiteCode}
@ -4909,11 +4918,22 @@
</if>
<!-- 销售主管 -->
<if test="salesExecutive != null and salesExecutive != ''">
AND cu.sales_executive LIKE CONCAT('%', #{salesExecutive}, '%')
AND EXISTS (
SELECT 1 FROM emis_sales_commission_ratio escr
WHERE escr.del_flag = '0'
AND escr.status = '1'
AND escr.salesmen = cu.salesmen
AND escr.sales_executive LIKE CONCAT('%', #{salesExecutive}, '%')
)
</if>
<!-- 销售支持 -->
<if test="salesSupport != null and salesSupport != ''">
AND cu.sales_support LIKE CONCAT('%', #{salesSupport}, '%')
AND EXISTS (
SELECT 1 FROM emis_waybill_other ewo
WHERE ewo.del_flag = '0'
AND ewo.waybill_id = a.id
AND ewo.sales_support LIKE CONCAT('%', #{salesSupport}, '%')
)
</if>
<!-- 销售联系人 -->
<if test="salesmen != null and salesmen != ''">
@ -4922,8 +4942,19 @@
<!-- 权限控制 -->
<if test="params.privSiteCode != null and params.privSiteCode != '88888'">
AND (
cu.sales_executive = #{params.privEmpName}
OR cu.sales_support = #{params.privEmpName}
EXISTS (
SELECT 1 FROM emis_sales_commission_ratio escr
WHERE escr.del_flag = '0'
AND escr.status = '1'
AND escr.salesmen = cu.salesmen
AND escr.sales_executive = #{params.privEmpName}
)
OR EXISTS (
SELECT 1 FROM emis_waybill_other ewo
WHERE ewo.del_flag = '0'
AND ewo.waybill_id = a.id
AND ewo.sales_support = #{params.privEmpName}
)
OR cu.salesmen = #{params.privEmpName}
OR cu.salesmen IN (
SELECT salesmen FROM emis_salesmen_rel esr
@ -5022,11 +5053,22 @@
</if>
<!-- 销售主管 -->
<if test="salesExecutive != null and salesExecutive != ''">
AND cu.sales_executive LIKE CONCAT('%', #{salesExecutive}, '%')
AND EXISTS (
SELECT 1 FROM emis_sales_commission_ratio escr
WHERE escr.del_flag = '0'
AND escr.status = '1'
AND escr.salesmen = cu.salesmen
AND escr.sales_executive LIKE CONCAT('%', #{salesExecutive}, '%')
)
</if>
<!-- 销售支持 -->
<if test="salesSupport != null and salesSupport != ''">
AND cu.sales_support LIKE CONCAT('%', #{salesSupport}, '%')
AND EXISTS (
SELECT 1 FROM emis_waybill_other ewo
WHERE ewo.del_flag = '0'
AND ewo.waybill_id = a.id
AND ewo.sales_support LIKE CONCAT('%', #{salesSupport}, '%')
)
</if>
<!-- 销售联系人 -->
<if test="salesmen != null and salesmen != ''">
@ -5035,8 +5077,19 @@
<!-- 权限控制 -->
<if test="params.privSiteCode != null and params.privSiteCode != '88888'">
AND (
cu.sales_executive = #{params.privEmpName}
OR cu.sales_support = #{params.privEmpName}
EXISTS (
SELECT 1 FROM emis_sales_commission_ratio escr
WHERE escr.del_flag = '0'
AND escr.status = '1'
AND escr.salesmen = cu.salesmen
AND escr.sales_executive = #{params.privEmpName}
)
OR EXISTS (
SELECT 1 FROM emis_waybill_other ewo
WHERE ewo.del_flag = '0'
AND ewo.waybill_id = a.id
AND ewo.sales_support = #{params.privEmpName}
)
OR cu.salesmen = #{params.privEmpName}
OR cu.salesmen IN (
SELECT salesmen FROM emis_salesmen_rel esr
@ -5105,7 +5158,13 @@
</if>
<!-- 销售主管 -->
<if test="salesExecutive != null and salesExecutive != ''">
AND a4.sales_executive LIKE CONCAT('%', #{salesExecutive}, '%')
AND EXISTS (
SELECT 1 FROM emis_sales_commission_ratio escr
WHERE escr.del_flag = '0'
AND escr.status = '1'
AND escr.salesmen = a4.salesmen
AND escr.sales_executive LIKE CONCAT('%', #{salesExecutive}, '%')
)
</if>
<!-- 销售联系人 -->
<if test="salesmen != null and salesmen != ''">
@ -5152,8 +5211,19 @@
WHERE a.cust_no = cu.monthly_pay_code
AND cu.del_flag = '0'
AND (
cu.sales_executive = #{params.privEmpName}
OR cu.sales_support = #{params.privEmpName}
EXISTS (
SELECT 1 FROM emis_sales_commission_ratio escr
WHERE escr.del_flag = '0'
AND escr.status = '1'
AND escr.salesmen = cu.salesmen
AND escr.sales_executive = #{params.privEmpName}
)
OR EXISTS (
SELECT 1 FROM emis_waybill_other ewo
WHERE ewo.del_flag = '0'
AND ewo.waybill_id = a.id
AND ewo.sales_support = #{params.privEmpName}
)
OR cu.salesmen = #{params.privEmpName}
OR cu.salesmen IN (
SELECT salesmen FROM emis_salesmen_rel esr
@ -5245,11 +5315,17 @@
</if>
<!-- 销售主管 -->
<if test="salesExecutive != null and salesExecutive != ''">
AND mu.sales_executive LIKE CONCAT('%', #{salesExecutive}, '%')
AND EXISTS (
SELECT 1 FROM emis_sales_commission_ratio escr
WHERE escr.del_flag = '0'
AND escr.status = '1'
AND escr.salesmen = mu.salesmen
AND escr.sales_executive LIKE CONCAT('%', #{salesExecutive}, '%')
)
</if>
<!-- 销售支持 -->
<if test="salesSupport != null and salesSupport != ''">
AND mu.sales_support LIKE CONCAT('%', #{salesSupport}, '%')
AND ewo.sales_support LIKE CONCAT('%', #{salesSupport}, '%')
</if>
<!-- 销售联系人 -->
<if test="salesmen != null and salesmen != ''">
@ -5258,8 +5334,14 @@
<!-- 权限控制 -->
<if test="params.privSiteCode != null and params.privSiteCode != '88888'">
AND (
mu.sales_executive = #{params.privEmpName}
OR mu.sales_support = #{params.privEmpName}
EXISTS (
SELECT 1 FROM emis_sales_commission_ratio escr
WHERE escr.del_flag = '0'
AND escr.status = '1'
AND escr.salesmen = mu.salesmen
AND escr.sales_executive = #{params.privEmpName}
)
OR ewo.sales_support = #{params.privEmpName}
OR mu.salesmen = #{params.privEmpName}
OR mu.salesmen IN (
SELECT salesmen FROM emis_salesmen_rel esr
@ -5358,11 +5440,17 @@
</if>
<!-- 销售主管 -->
<if test="salesExecutive != null and salesExecutive != ''">
AND mu.sales_executive LIKE CONCAT('%', #{salesExecutive}, '%')
AND EXISTS (
SELECT 1 FROM emis_sales_commission_ratio escr
WHERE escr.del_flag = '0'
AND escr.status = '1'
AND escr.salesmen = mu.salesmen
AND escr.sales_executive LIKE CONCAT('%', #{salesExecutive}, '%')
)
</if>
<!-- 销售支持 -->
<if test="salesSupport != null and salesSupport != ''">
AND mu.sales_support LIKE CONCAT('%', #{salesSupport}, '%')
AND ewo.sales_support LIKE CONCAT('%', #{salesSupport}, '%')
</if>
<!-- 销售联系人 -->
<if test="salesmen != null and salesmen != ''">
@ -5371,8 +5459,14 @@
<!-- 权限控制 -->
<if test="params.privSiteCode != null and params.privSiteCode != '88888'">
AND (
mu.sales_executive = #{params.privEmpName}
OR mu.sales_support = #{params.privEmpName}
EXISTS (
SELECT 1 FROM emis_sales_commission_ratio escr
WHERE escr.del_flag = '0'
AND escr.status = '1'
AND escr.salesmen = mu.salesmen
AND escr.sales_executive = #{params.privEmpName}
)
OR ewo.sales_support = #{params.privEmpName}
OR mu.salesmen = #{params.privEmpName}
OR mu.salesmen IN (
SELECT salesmen FROM emis_salesmen_rel esr