<?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="cn.iocoder.yudao.module.crm.dal.mysql.salesTarget.CrmSalesTargetAchievementMapper">
|
|
<!-- 合同金额(个人/部门维度) -->
|
<select id="selectContractPriceByUserIds" resultType="java.math.BigDecimal">
|
SELECT IFNULL(SUM(total_price), 0) FROM crm_contract
|
WHERE deleted = 0
|
AND audit_status = ${@cn.iocoder.yudao.module.crm.enums.common.CrmAuditStatusEnum@APPROVE.status}
|
AND order_date BETWEEN #{start} AND #{end}
|
AND owner_user_id IN
|
<foreach collection="userIds" item="userId" open="(" close=")" separator=",">
|
#{userId}
|
</foreach>
|
</select>
|
|
<!-- 合同数量(个人/部门维度) -->
|
<select id="selectContractCountByUserIds" resultType="java.lang.Long">
|
SELECT COUNT(1) FROM crm_contract
|
WHERE deleted = 0
|
AND audit_status = ${@cn.iocoder.yudao.module.crm.enums.common.CrmAuditStatusEnum@APPROVE.status}
|
AND order_date BETWEEN #{start} AND #{end}
|
AND owner_user_id IN
|
<foreach collection="userIds" item="userId" open="(" close=")" separator=",">
|
#{userId}
|
</foreach>
|
</select>
|
|
<!-- 回款金额(个人/部门维度) -->
|
<select id="selectReceivablePriceByUserIds" resultType="java.math.BigDecimal">
|
SELECT IFNULL(SUM(price), 0) FROM crm_receivable
|
WHERE deleted = 0
|
AND audit_status = ${@cn.iocoder.yudao.module.crm.enums.common.CrmAuditStatusEnum@APPROVE.status}
|
AND return_time BETWEEN #{start} AND #{end}
|
AND owner_user_id IN
|
<foreach collection="userIds" item="userId" open="(" close=")" separator=",">
|
#{userId}
|
</foreach>
|
</select>
|
|
<!-- 商机金额(个人/部门维度,仅赢单) -->
|
<select id="selectBusinessPriceByUserIds" resultType="java.math.BigDecimal">
|
SELECT IFNULL(SUM(total_price), 0) FROM crm_business
|
WHERE deleted = 0
|
AND end_status = ${@cn.iocoder.yudao.module.crm.enums.business.CrmBusinessEndStatusEnum@WIN.status}
|
AND deal_time BETWEEN #{start} AND #{end}
|
AND owner_user_id IN
|
<foreach collection="userIds" item="userId" open="(" close=")" separator=",">
|
#{userId}
|
</foreach>
|
</select>
|
|
<!-- 新增客户数(个人/部门维度) -->
|
<select id="selectCustomerCountByUserIds" resultType="java.lang.Long">
|
SELECT COUNT(1) FROM crm_customer
|
WHERE deleted = 0
|
AND create_time BETWEEN #{start} AND #{end}
|
AND owner_user_id IN
|
<foreach collection="userIds" item="userId" open="(" close=")" separator=",">
|
#{userId}
|
</foreach>
|
</select>
|
|
<!-- 合同金额(产品维度,按合同产品明细归属物料) -->
|
<select id="selectContractPriceByItemId" resultType="java.math.BigDecimal">
|
SELECT IFNULL(SUM(cp.total_price), 0) FROM crm_contract c
|
INNER JOIN crm_contract_product cp ON cp.contract_id = c.id
|
WHERE c.deleted = 0 AND cp.deleted = 0
|
AND c.audit_status = ${@cn.iocoder.yudao.module.crm.enums.common.CrmAuditStatusEnum@APPROVE.status}
|
AND cp.item_id = #{itemId}
|
AND c.order_date BETWEEN #{start} AND #{end}
|
</select>
|
|
<!-- 合同数量(产品维度,按合同产品明细归属物料) -->
|
<select id="selectContractCountByItemId" resultType="java.lang.Long">
|
SELECT COUNT(DISTINCT c.id) FROM crm_contract c
|
INNER JOIN crm_contract_product cp ON cp.contract_id = c.id
|
WHERE c.deleted = 0 AND cp.deleted = 0
|
AND c.audit_status = ${@cn.iocoder.yudao.module.crm.enums.common.CrmAuditStatusEnum@APPROVE.status}
|
AND cp.item_id = #{itemId}
|
AND c.order_date BETWEEN #{start} AND #{end}
|
</select>
|
|
</mapper>
|