pusong-crm/pusong-modules/pusong-business/src/main/resources/mapper/business/PsCustomInfoMapper.xml
2024-08-27 18:08:50 +08:00

77 lines
3.8 KiB
XML

<?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.PsCustomInfoMapper">
<sql id="queryCustomerList" >
SELECT info.*
, usr.nick_name as custom_manager_name
,psinfo.custom_name as custom_introducer_name
,(select contract_code from ps_contract_info where custom_id = info.id and create_time = (select max(create_time) from ps_contract_info psi where psi.custom_id = info.id ) limit 0,1)
contract_code
,(select min(start_date) from ps_task_main where contract_code =
(select contract_code from ps_contract_info where custom_id = info.id and create_time = (select max(create_time) from ps_contract_info psi where psi.custom_id = info.id ) limit 0,1))
start_date
,EXISTS(SELECT * FROM ps_contract_info coninfo WHERE coninfo.custom_id = info.id and coninfo.contract_status != '10') have_contract
FROM ps_custom_info info
left join sys_user usr on info.custom_manager = usr.user_id
left join ps_custom_info psinfo on info.custom_introducer = psinfo.id
</sql>
<select id="selectPageCustomerList" resultType="com.pusong.business.domain.vo.PsCustomInfoVo">
<include refid="queryCustomerList"/>
${ew.getCustomSqlSegment}
</select>
<select id="selectPagePublicCustomerList" resultType="com.pusong.business.domain.vo.PsCustomInfoVo">
<include refid="queryCustomerList"/>
${ew.getCustomSqlSegment}
</select>
<select id="selectCustomerList" resultType="com.pusong.business.domain.vo.PsCustomInfoVo">
<include refid="queryCustomerList"/>
${ew.getCustomSqlSegment}
</select>
<select id="selectPageCustomerRecordList" resultType="com.pusong.business.domain.vo.PsCustomerRecordVo">
select
custom.id,
custom.create_time,
custom.custom_status,
custom.custom_source,
(select pci.custom_name from ps_custom_info pci where pci.id = custom.custom_introducer limit 0,1) custom_introducer,
con.contract_code,
custom.custom_name,
custom.custom_mobile,
(select GROUP_CONCAT(business.business_type SEPARATOR ',')
from ps_contract_business business where business.contract_code = con.contract_code) as business_type_name,
(select max(start_date) from ps_task_main ptm where ptm.contract_code = con.contract_code and ptm.task_type='1' ) start_date,
com.finance_account_no,
custom.custom_manager,
com.company_adress,
com.company_name,
com.customer_num,
com.customer_cert,
com.legal_person_name,
com.legal_person_idcard,
com.legal_person_phone,
(select GROUP_CONCAT(appoint.executor SEPARATOR ',')
from ps_task_appoint appoint where appoint.contract_code = con.contract_code) as executors,
con.sign_desc,
con.contract_amount,
con.finish_date,
con.confirm_ossid,
(select par.approver_status from ps_approver_record par where par.contract_code = con.contract_code and business_type = 'free' order by id desc limit 0,1) approver_status
from
ps_custom_info custom
left join
(select * from ps_contract_info info where info.create_time in (select max(pci.create_time) create_time from ps_contract_info pci group by pci.custom_id))
con on con.custom_id = custom.id
left join
ps_company_info com on com.id = con.company_id
${ew.getCustomSqlSegment}
</select>
</mapper>