pusong-crm/pusong-modules/pusong-business/src/main/resources/mapper/business/PsContractInfoMapper.xml

136 lines
5.5 KiB
XML
Raw Normal View History

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,
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-08-15 17:53:31 +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)
as invoice_ossid
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>
<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 &lt; #{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-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 &lt; #{queryParam.endDate}
</if>
LEFT JOIN ps_contract_business bus on bus.contract_code=info.contract_code
WHERE u.dept_id=#{queryParam.deptId}
</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,
pay.money
from ps_contract_info info
2024-09-12 15:21:57 +08:00
left join ps_custom_info cus on info.custom_id = cus.id
left join ps_contract_pay pay on info.contract_code = pay.contract_code
</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-07-31 17:04:22 +08:00
</mapper>