2024-07-31 17:04:22 +08:00
<?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.pusong.business.mapper.PsContractInfoMapper" >
2024-08-02 10:36:59 +08:00
<resultMap id= "contractResult" type= "com.pusong.business.domain.vo.PsContractInfoVo" >
<id column= "contract_code" property= "contractCode" > </id>
<collection columnPrefix= "com_" property= "psCompanyInfoVo" ofType= "com.pusong.business.domain.vo.PsCompanyInfoVo" >
</collection>
2024-08-09 15:27:34 +08:00
<collection columnPrefix= "cus_" property= "psCustomInfoVo" ofType= "com.pusong.business.domain.vo.PsCustomInfoVo" >
2024-08-02 10:36:59 +08:00
</collection>
</resultMap>
<sql id= "queryContractList" >
2024-07-31 17:04:22 +08:00
2024-08-02 10:36:59 +08:00
select info.*,
2024-08-30 09:33:42 +08:00
(select apply_date from ps_contract_info pci where pci.custom_id = info.custom_id and pci.is_cancel != '03' and pci.contract_status != '10' order by pci.apply_date limit 0,1)
2024-08-20 18:08:05 +08:00
as first_apply_date,
2024-08-15 17:53:31 +08:00
com.id com_id,
2024-08-02 10:36:59 +08:00
com.company_name com_company_name,
com.company_adress com_company_adress,
com.company_account_bank com_company_account_bank,
2024-09-25 10:16:02 +08:00
2024-08-02 10:36:59 +08:00
com.legal_person_name com_legal_person_name,
com.legal_person_idcard com_legal_person_idcard,
com.legal_person_phone com_legal_person_phone,
2024-09-25 10:16:02 +08:00
com.customer_num com_customer_num,
2024-09-29 11:37:55 +08:00
cus.id cus_id,
2024-08-02 10:36:59 +08:00
cus.custom_name cus_custom_name ,
cus.custom_mobile cus_custom_mobile,
2024-08-27 18:08:50 +08:00
cus.custom_status cus_custom_status,
2024-08-20 18:08:05 +08:00
us.nick_name custom_manager_name,
2024-08-27 18:08:50 +08:00
(select ptm.invoice from ps_task_main ptm where ptm.task_type = '3' and ptm.contract_code = info.contract_code and ptm.task_status = 30 limit 0,1)
2024-10-14 17:51:48 +08:00
as invoice_ossid,
2024-10-21 09:10:13 +08:00
(select 1 from ps_task_main where contract_code = info.contract_code and task_status != '30' and task_status != '50' limit 1) task_no_finish
2024-08-02 10:36:59 +08:00
from ps_contract_info info
left join ps_company_info com on info.company_id = com.id
left join ps_custom_info cus on info.custom_id = cus.id
left join sys_user us on info.custom_manager = us.user_id
</sql>
<select id= "selectPageContractList" resultMap= "contractResult" >
<include refid= "queryContractList" />
${ew.getCustomSqlSegment}
</select>
2024-09-25 10:16:02 +08:00
<select id= "selectPageContractListByCustomId" resultMap= "contractResult" >
<include refid= "queryContractList" />
<where >
info.custom_id = #{customId}
</where>
</select>
2024-08-02 10:36:59 +08:00
<select id= "selectContractList" resultMap= "contractResult" >
<include refid= "queryContractList" />
${ew.getCustomSqlSegment}
</select>
2024-09-02 18:06:27 +08:00
<select id= "querySalaryListByCodes" resultType= "com.pusong.business.domain.PsSalaryContract" >
select
info.contract_code
,info.custom_manager
,cus.custom_name
,cus.custom_mobile
,com.company_name
,info.contract_amount
,info.start_service_date service_start_date
from ps_contract_info info
left join ps_custom_info cus on info.custom_id = cus.id
left join ps_company_info com on info.company_id = com.id
${ew.getCustomSqlSegment}
</select>
2024-09-09 18:02:45 +08:00
<select id= "homePageReturnMoneyInfo" resultType= "java.util.Map" >
SELECT
info.contract_code,
info.contract_amount,
pay.money,
2024-09-10 11:14:23 +08:00
pay.business_type,
2024-09-09 18:02:45 +08:00
info.apply_date
FROM ps_contract_info info
2024-09-10 14:50:32 +08:00
LEFT JOIN ps_contract_pay pay on
pay.contract_code=info.contract_code and
pay.pay_status=#{queryParam.payStatus} and
pay.del_flag=0
2024-09-02 18:06:27 +08:00
2024-09-10 11:14:23 +08:00
WHERE
2024-09-10 14:50:32 +08:00
<if test= "queryParam.startDate != null" >
2024-09-10 11:14:23 +08:00
info.apply_date >= #{queryParam.startDate} and
2024-09-10 14:50:32 +08:00
</if>
<if test= "queryParam.endDate != null" >
2024-09-11 17:39:18 +08:00
info.apply_date < #{queryParam.endDate} and
2024-09-10 11:14:23 +08:00
</if>
info.contract_status != #{queryParam.contractStatus} and
info.is_cancel != #{queryParam.isCancel}
2024-09-09 18:02:45 +08:00
</select>
2024-09-10 14:23:51 +08:00
2024-09-13 10:09:30 +08:00
<!-- 按人员成交数据列表 -->
2024-09-11 17:39:18 +08:00
<select id= "getUserContractTypeAmountsByDeptId" resultType= "com.pusong.business.domain.vo.home.UserContractAmountInfo" >
SELECT
u.user_id as userId,
u.nick_name as nickName,
bus.business_type as businessType,
IFNULL(info.contract_amount,0) as contractAmount,
info.is_due as isDue,
info.contract_code as contractCode
FROM sys_user u
LEFT JOIN ps_contract_info info on
u.user_id=info.custom_manager
and info.contract_status != #{queryParam.contractStatus}
and info.is_cancel != #{queryParam.isCancel}
<if test= "queryParam.startDate != null" >
and info.apply_date >= #{queryParam.startDate}
</if>
<if test= "queryParam.endDate != null" >
and info.apply_date < #{queryParam.endDate}
</if>
LEFT JOIN ps_contract_business bus on bus.contract_code=info.contract_code
2024-11-18 16:38:59 +08:00
WHERE u.dept_id = #{queryParam.deptId}
2024-09-11 17:39:18 +08:00
</select>
2024-09-13 10:09:30 +08:00
<!-- 按人员成交数据统计饼图 -->
<select id= "getUserContractAndPayInfo" resultType= "com.pusong.business.domain.vo.home.UserContractAmountInfo" >
SELECT
u.user_id as userId,
u.nick_name as nickName,
info.contract_code as contractCode,
info.contract_amount as contractAmount,
2024-11-18 16:38:59 +08:00
pay.money as payedMoney,
2024-11-19 14:05:07 +08:00
bus.id as busId,
2024-11-18 16:38:59 +08:00
bus.business_type as businessType,
bus.business_amount as businessAmount
2024-09-13 10:09:30 +08:00
FROM sys_user u
LEFT JOIN ps_contract_info info on
2024-11-06 15:40:16 +08:00
u.user_id = info.custom_manager
2024-11-14 17:31:33 +08:00
<if test= "queryParam.startDate != null" >
and info.apply_date >= #{queryParam.startDate}
</if>
<if test= "queryParam.endDate != null" >
and info.apply_date < #{queryParam.endDate}
</if>
2024-09-13 10:09:30 +08:00
and info.contract_status != #{queryParam.contractStatus}
and info.is_cancel != #{queryParam.isCancel}
2024-11-18 16:38:59 +08:00
-- inner join sys_user_role ur on ur.user_id = u.user_id
-- inner join sys_role role on role.role_id = ur.role_id
LEFT JOIN ps_contract_business bus on bus.contract_code=info.contract_code
LEFT JOIN ps_contract_pay pay on info.contract_code=pay.contract_code and pay.pay_status=#{queryParam.payStatus} and pay.del_flag=0
2024-11-06 15:40:16 +08:00
${ew.getCustomSqlSegment}
2024-09-13 10:09:30 +08:00
</select>
<!-- 按人员成交数据【转介绍】 -->
<select id= "getUserContractSourceAmountsByDeptId" resultType= "com.pusong.business.domain.vo.home.UserContractAmountInfo" >
SELECT
u.user_id as userId,
u.nick_name as nickName,
IFNULL(info.contract_amount,0) as contractAmount,
info.is_due as isDue,
info.contract_code as contractCode,
2024-11-06 15:40:16 +08:00
cus.custom_source as customSource,
2024-11-19 14:18:41 +08:00
pay.id as payId,
2024-11-06 15:40:16 +08:00
pay.money as payedMoney
2024-09-13 10:09:30 +08:00
FROM sys_user u
2024-11-06 15:40:16 +08:00
inner join sys_user_role ur on ur.user_id = u.user_id
inner join sys_role role on role.role_id = ur.role_id
2024-09-13 10:09:30 +08:00
LEFT JOIN ps_contract_info info on
2024-11-14 17:31:33 +08:00
u.user_id = info.custom_manager
2024-09-13 10:09:30 +08:00
and info.contract_status != #{queryParam.contractStatus}
and info.is_cancel != #{queryParam.isCancel}
<if test= "queryParam.startDate != null" >
and info.apply_date >= #{queryParam.startDate}
</if>
<if test= "queryParam.endDate != null" >
and info.apply_date < #{queryParam.endDate}
</if>
LEFT JOIN ps_custom_info cus on info.custom_id=cus.id
2024-11-06 15:40:16 +08:00
LEFT JOIN ps_contract_pay pay on info.contract_code = pay.contract_code
and pay.pay_status = #{queryParam.payStatus} and pay.del_flag = 0
${ew.getCustomSqlSegment}
2024-09-13 10:09:30 +08:00
</select>
<!-- 按人员成交【转介绍】数据统计饼图 -->
<select id= "getJieShaoContractAndPayInfo" resultType= "com.pusong.business.domain.vo.home.UserContractAmountInfo" >
SELECT
u.user_id as userId,
u.nick_name as nickName,
info.contract_code as contractCode,
info.contract_amount as contractAmount,
pay.money as payedMoney
FROM sys_user u
LEFT JOIN ps_contract_info info on
u.user_id=info.custom_manager
<if test= "queryParam.startDate != null" >
and info.apply_date >= #{queryParam.startDate}
</if>
<if test= "queryParam.endDate != null" >
and info.apply_date < #{queryParam.endDate}
</if>
and info.contract_status != #{queryParam.contractStatus}
and info.is_cancel != #{queryParam.isCancel}
LEFT JOIN ps_contract_pay pay on
info.contract_code=pay.contract_code
and pay.pay_status=#{queryParam.payStatus}
and pay.del_flag=0
</select>
2024-09-10 14:23:51 +08:00
2024-09-12 15:21:57 +08:00
<sql id= "channel" >
2024-09-10 14:23:51 +08:00
select
2024-09-10 17:25:36 +08:00
cus.custom_source channel,
2024-09-10 14:23:51 +08:00
info.contract_code,
info.contract_amount,
pay.business_type,
2024-11-06 15:40:16 +08:00
pay.money,
(
select sum(sc.cost) from ps_contract_business_detail bd
left join ps_salary_config sc on sc.service_project = bd.business_project and sc.del_flag = 0
where bd.contract_code = info.contract_code and sc.post_id = up.post_id
) cost
2024-09-10 14:23:51 +08:00
from ps_contract_info info
2024-11-06 15:40:16 +08:00
left join ps_custom_info cus on info.custom_id = cus.id
2024-11-18 16:38:59 +08:00
left join ps_contract_pay pay on info.contract_code = pay.contract_code AND pay.pay_status = '1'
2024-11-12 15:18:10 +08:00
<if test= "startTime != null" >
AND pay.create_time > = #{startTime}
</if>
<if test= "endTime != null" >
2024-11-18 16:38:59 +08:00
AND pay.create_time < #{endTime}
2024-11-12 15:18:10 +08:00
</if>
2024-11-06 15:40:16 +08:00
left join sys_user_post up on up.user_id = info.custom_manager
2024-09-12 15:21:57 +08:00
</sql>
<select id= "byChannel" resultType= "com.pusong.business.domain.vo.home.ChannelPayInfo" >
<include refid= "channel" />
2024-09-10 14:23:51 +08:00
${ew.getCustomSqlSegment}
</select>
2024-09-12 15:21:57 +08:00
<select id= "byChannelUser" resultType= "com.pusong.business.domain.vo.home.ChannelPayInfo" >
<include refid= "channel" />
${ew.getCustomSqlSegment}
</select>
2024-09-10 14:23:51 +08:00
2024-10-31 10:49:37 +08:00
2024-11-06 15:40:16 +08:00
2024-10-31 10:49:37 +08:00
2024-07-31 17:04:22 +08:00
</mapper>