You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
94 lines
4.8 KiB
94 lines
4.8 KiB
<?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="apelet.association.dao.BusinessOpportunitiesMapper"> |
|
|
|
<!-- |
|
按线索来源统计商机转化数据: |
|
- oppCount 转化商机数(该来源关联出的商机总数) |
|
- winOppCount 赢单商机数(stage_manifestation = '5') |
|
- winOppAmount 赢单商机金额(stage_manifestation = '5' 的 predicted_price 合计) |
|
- oppTransformAmount 商机转化金额(该来源关联出的所有商机 predicted_price 合计,与是否赢单无关) |
|
商机通过 clue_id 关联线索表 member_clue,按线索来源 source 分组统计。 |
|
--> |
|
<select id="selectOppTransformStatBySource" |
|
resultType="apelet.association.vo.OppTransformStatVo"> |
|
SELECT |
|
mc.source AS source, |
|
COUNT(bo.id) AS oppCount, |
|
SUM(CASE WHEN bo.stage_manifestation = '5' THEN 1 ELSE 0 END) AS winOppCount, |
|
COALESCE(SUM(CASE WHEN bo.stage_manifestation = '5' THEN bo.predicted_price ELSE 0 END), 0) AS winOppAmount, |
|
COALESCE(SUM(bo.predicted_price), 0) AS oppTransformAmount |
|
FROM business_opportunities bo |
|
INNER JOIN member_clue mc ON bo.clue_id = mc.id |
|
WHERE bo.deleted_flag = 1 |
|
AND mc.deleted_flag = 1 |
|
GROUP BY mc.source |
|
</select> |
|
|
|
<!-- |
|
按线索来源统计"线索→商机→合同"成交数据: |
|
- dealCount 已转商机成交数(报价单 status = '3' 的数量) |
|
- dealAmount 已转商机成交金额(报价单 status = '3' 的 qty 合计) |
|
说明:合同表 contract 暂无数据(报价单反写逻辑未做), |
|
暂以报价单 status = '3'(通过,即已成合同)作为成交口径。 |
|
报价单 quotation 通过 srcbillid 关联商机 business_opportunities, |
|
商机再通过 clue_id 关联线索表 member_clue,按线索来源 source 分组统计。 |
|
--> |
|
<select id="selectDealStatBySource" |
|
resultType="apelet.association.vo.DealTransformStatVo"> |
|
SELECT |
|
mc.source AS source, |
|
COUNT(DISTINCT q.id) AS dealCount, |
|
COALESCE(SUM(q.qty), 0) AS dealAmount |
|
FROM quotation q |
|
INNER JOIN business_opportunities bo ON q.srcbillid = bo.id |
|
INNER JOIN member_clue mc ON bo.clue_id = mc.id |
|
WHERE q.status = '3' |
|
AND q.deleted_flag = 1 |
|
AND bo.deleted_flag = 1 |
|
AND mc.deleted_flag = 1 |
|
GROUP BY mc.source |
|
</select> |
|
|
|
<!-- |
|
整体汇总统计商机转化数据(不分线索来源,返回单行): |
|
- oppCount 转化商机数(关联到线索的商机总数) |
|
- winOppCount 赢单商机数(stage_manifestation = '5') |
|
- winOppAmount 赢单商机金额(stage_manifestation = '5' 的 predicted_price 合计) |
|
- oppTransformAmount 商机转化金额(所有商机 predicted_price 合计,与是否赢单无关) |
|
--> |
|
<select id="selectOppSummary" |
|
resultType="apelet.association.vo.OppTransformStatVo"> |
|
SELECT |
|
COUNT(bo.id) AS oppCount, |
|
COALESCE(SUM(CASE WHEN bo.stage_manifestation = '5' THEN 1 ELSE 0 END), 0) AS winOppCount, |
|
COALESCE(SUM(CASE WHEN bo.stage_manifestation = '5' THEN bo.predicted_price ELSE 0 END), 0) AS winOppAmount, |
|
COALESCE(SUM(bo.predicted_price), 0) AS oppTransformAmount |
|
FROM business_opportunities bo |
|
INNER JOIN member_clue mc ON bo.clue_id = mc.id |
|
WHERE bo.deleted_flag = 1 |
|
AND mc.deleted_flag = 1 |
|
</select> |
|
|
|
<!-- |
|
整体汇总统计"线索→商机→合同"成交数据(不分线索来源,返回单行): |
|
- dealCount 已转商机成交数(报价单 status = '3' 的数量) |
|
- dealAmount 已转商机成交金额(报价单 status = '3' 的 qty 合计) |
|
成交口径同 selectDealStatBySource(合同表 contract 暂无数据,暂以报价单 status='3' 作为成交口径)。 |
|
--> |
|
<select id="selectDealSummary" |
|
resultType="apelet.association.vo.DealTransformStatVo"> |
|
SELECT |
|
COUNT(DISTINCT q.id) AS dealCount, |
|
COALESCE(SUM(q.qty), 0) AS dealAmount |
|
FROM quotation q |
|
INNER JOIN business_opportunities bo ON q.srcbillid = bo.id |
|
INNER JOIN member_clue mc ON bo.clue_id = mc.id |
|
WHERE q.status = '3' |
|
AND q.deleted_flag = 1 |
|
AND bo.deleted_flag = 1 |
|
AND mc.deleted_flag = 1 |
|
</select> |
|
|
|
</mapper>
|
|
|