Files
nanguangszwlback/mhd_bms/src/main/resources/mapper/SettlementCustomersMapper.xml
T

216 lines
13 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.mhd.bms.domain.settlementCustomers.repository.mapper.SettlementCustomersMapper">
<resultMap type="com.mhd.bms.domain.settlementCustomers.repository.po.SettlementCustomersPO" id="SettlementCustomersResult">
<result property="settlementCustomersId" column="settlement_customers_id" />
<result property="topOrganizationId" column="top_organization_id" />
<result property="organizationId" column="organization_id" />
<result property="organizationName" column="organization_name" />
<result property="settlementCustomersCode" column="settlement_customers_code" />
<result property="settlementEntityId" column="settlement_entity_id" />
<result property="settlementEntity" column="settlement_entity" />
<result property="settlementMethod" column="settlement_method" />
<result property="settlementMethodCode" column="settlement_method_code" />
<result property="bankName" column="bank_name" />
<result property="bankCardNumber" column="bank_card_number" />
<result property="bankBindingName" column="bank_binding_name" />
<result property="remark" column="remark" />
<result property="mainRole" column="main_role" />
<result property="customerType" column="customer_type" />
<result property="customerTypeCode" column="customer_type_code" />
<result property="projectCode" column="project_code" />
<result property="projectName" column="project_name" />
<result property="ncCode" column="nc_code" />
<result property="settlementObject" column="settlement_object" />
<result property="createTime" column="create_time" />
<result property="createBy" column="create_by" />
<result property="createByName" column="create_by_name" />
<result property="updateTime" column="update_time" />
<result property="updateBy" column="update_by" />
<result property="updateByName" column="update_by_name" />
<result property="delFlag" column="del_flag" />
<result property="settlementCurrency" column="settlement_currency" />
<result property="businessDocumentId" column="business_document_id" />
<result property="businessFlow" column="business_flow" />
<result property="originalBusinessNum" column="original_business_num" />
<result property="serviceItemsName" column="service_items_name" />
<result property="firstSubjectName" column="first_subject_name" />
<result property="secondSubjectName" column="second_subject_name" />
<result property="businessState" column="business_state" />
<result property="documentType" column="document_type" />
<result property="documentTypeCode" column="document_type_code" />
<result property="businessCreateTime" column="business_create_time" />
</resultMap>
<sql id="business_document_where">
<if test="settlementCustomersDO.businessFlow != null and settlementCustomersDO.businessFlow != ''">
and bd.business_flow like concat('%', #{settlementCustomersDO.businessFlow}, '%')
</if>
<if test="settlementCustomersDO.originalBusinessNum != null and settlementCustomersDO.originalBusinessNum != ''">
and bd.original_business_num like concat('%', #{settlementCustomersDO.originalBusinessNum}, '%')
</if>
<if test="settlementCustomersDO.serviceItemsName != null and settlementCustomersDO.serviceItemsName != ''">
and bd.service_items_name like concat('%', #{settlementCustomersDO.serviceItemsName}, '%')
</if>
<if test="settlementCustomersDO.firstSubjectName != null and settlementCustomersDO.firstSubjectName != ''">
and bd.first_subject_name like concat('%', #{settlementCustomersDO.firstSubjectName}, '%')
</if>
<if test="settlementCustomersDO.secondSubjectName != null and settlementCustomersDO.secondSubjectName != ''">
and bd.second_subject_name like concat('%', #{settlementCustomersDO.secondSubjectName}, '%')
</if>
<if test="settlementCustomersDO.businessState != null">
and bd.business_state = #{settlementCustomersDO.businessState}
</if>
<if test="settlementCustomersDO.documentType != null and settlementCustomersDO.documentType != ''">
and bd.document_type like concat('%', #{settlementCustomersDO.documentType}, '%')
</if>
<if test="settlementCustomersDO.documentTypeCode != null and settlementCustomersDO.documentTypeCode != ''">
and bd.document_type_code = #{settlementCustomersDO.documentTypeCode}
</if>
</sql>
<sql id="settlement_customers_columns">
a.settlement_customers_id,
a.top_organization_id,
a.organization_id,
a.organization_name,
a.settlement_customers_code,
a.settlement_entity_id,
a.settlement_entity,
a.settlement_method,
a.settlement_method_code,
a.bank_name,
a.bank_card_number,
a.bank_binding_name,
a.remark,
a.main_role,
a.customer_type,
a.customer_type_code,
a.project_code,
a.project_name,
a.nc_code,
a.create_time,
a.create_by,
a.create_by_name,
a.update_time,
a.update_by,
a.update_by_name,
a.del_flag
</sql>
<select id="queryList" parameterType="com.mhd.bms.domain.settlementCustomers.repository.todo.SettlementCustomersDO"
resultMap="SettlementCustomersResult">
select
<include refid="settlement_customers_columns"/>,
COALESCE(a.settlement_currency, b.SETTLEMENT_CURRENCY) as settlement_currency,
bd.business_document_id,
bd.business_flow,
bd.original_business_num,
bd.service_items_name,
bd.first_subject_name,
bd.second_subject_name,
bd.business_state,
bd.document_type,
bd.document_type_code,
bd.create_time as business_create_time
from settlement_customers a
left join "NGWL_TEST_USER"."USER_SHIPPER" b on a.settlement_entity_id = b.user_id
<choose>
<when test="(settlementCustomersDO.businessFlow != null and settlementCustomersDO.businessFlow != '')
or (settlementCustomersDO.originalBusinessNum != null and settlementCustomersDO.originalBusinessNum != '')
or (settlementCustomersDO.serviceItemsName != null and settlementCustomersDO.serviceItemsName != '')
or (settlementCustomersDO.firstSubjectName != null and settlementCustomersDO.firstSubjectName != '')
or (settlementCustomersDO.secondSubjectName != null and settlementCustomersDO.secondSubjectName != '')
or settlementCustomersDO.businessState != null
or (settlementCustomersDO.documentType != null and settlementCustomersDO.documentType != '')
or (settlementCustomersDO.documentTypeCode != null and settlementCustomersDO.documentTypeCode != '')">
inner join business_document bd on bd.settlement_customers_code = a.settlement_customers_code and bd.del_flag = 1
</when>
<otherwise>
left join business_document bd on bd.business_document_id = (
select max(business_document_id) from business_document
where settlement_customers_code = a.settlement_customers_code and del_flag = 1
)
</otherwise>
</choose>
where a.del_flag = 1
<include refid="common_where"/>
ORDER BY a.create_time IS NULL, a.create_time DESC, bd.create_time DESC
</select>
<select id="querySettlementObjects"
resultType="com.mhd.bms.domain.settlementCustomers.repository.po.SettlementCustomersPO">
select
settlement_customers_code,settlement_entity,CONCAT(settlement_customers_code,settlement_entity) settlement_object
from settlement_customers
where del_flag = 1
</select>
<sql id="common_where">
<if test="settlementCustomersDO.settlementEntity != null and settlementCustomersDO.settlementEntity != ''">
and a.settlement_entity like concat('%', #{settlementCustomersDO.settlementEntity}, '%')
</if>
<if test="settlementCustomersDO.settlementCustomersCode != null and settlementCustomersDO.settlementCustomersCode != ''">
and a.settlement_customers_code like concat('%', #{settlementCustomersDO.settlementCustomersCode}, '%')
</if>
<if test="settlementCustomersDO.settlementMethod != null and settlementCustomersDO.settlementMethod != ''">
and a.settlement_method like concat('%', #{settlementCustomersDO.settlementMethod}, '%')
</if>
<if test="settlementCustomersDO.settlementMethodCode != null and settlementCustomersDO.settlementMethodCode != ''">
and a.settlement_method_code = #{settlementCustomersDO.settlementMethodCode}
</if>
<if test="settlementCustomersDO.remark != null and settlementCustomersDO.remark != ''">
and a.remark like concat('%', #{settlementCustomersDO.remark}, '%')
</if>
<choose>
<when test="(settlementCustomersDO.businessFlow != null and settlementCustomersDO.businessFlow != '')
or (settlementCustomersDO.originalBusinessNum != null and settlementCustomersDO.originalBusinessNum != '')
or (settlementCustomersDO.serviceItemsName != null and settlementCustomersDO.serviceItemsName != '')
or (settlementCustomersDO.firstSubjectName != null and settlementCustomersDO.firstSubjectName != '')
or (settlementCustomersDO.secondSubjectName != null and settlementCustomersDO.secondSubjectName != '')
or settlementCustomersDO.businessState != null
or (settlementCustomersDO.documentType != null and settlementCustomersDO.documentType != '')
or (settlementCustomersDO.documentTypeCode != null and settlementCustomersDO.documentTypeCode != '')">
<include refid="business_document_where"/>
<if test="settlementCustomersDO.createTimeStart != null and settlementCustomersDO.createTimeStart != ''">
and date_format(bd.create_time,'%Y-%m-%d') <![CDATA[>=]]> #{settlementCustomersDO.createTimeStart}
</if>
<if test="settlementCustomersDO.createTimeEnd != null and settlementCustomersDO.createTimeEnd != ''">
and date_format(bd.create_time,'%Y-%m-%d') <![CDATA[<=]]> #{settlementCustomersDO.createTimeEnd}
</if>
</when>
<otherwise>
<if test="settlementCustomersDO.createTimeStart != null and settlementCustomersDO.createTimeStart != ''">
AND date_format(a.create_time,'%Y-%m-%d') <![CDATA[>=]]> #{settlementCustomersDO.createTimeStart}
</if>
<if test="settlementCustomersDO.createTimeEnd != null and settlementCustomersDO.createTimeEnd != ''">
AND date_format(a.create_time,'%Y-%m-%d') <![CDATA[<=]]> #{settlementCustomersDO.createTimeEnd}
</if>
</otherwise>
</choose>
<if test="settlementCustomersDO.createByName != null and settlementCustomersDO.createByName != ''">
and a.create_by_name like concat('%', #{settlementCustomersDO.createByName}, '%')
</if>
<if test="settlementCustomersDO.mainRole != null and settlementCustomersDO.mainRole != ''">
and a.main_role = #{settlementCustomersDO.mainRole}
</if>
<if test="settlementCustomersDO.organizationId != null">
AND (
a.organization_id = #{settlementCustomersDO.organizationId}
OR b.org_code LIKE concat('%', #{settlementCustomersDO.organizationId}, '%')
)
</if>
<if test="settlementCustomersDO.topOrganizationId != null and settlementCustomersDO.topOrganizationId != ''">
and a.top_organization_id = #{settlementCustomersDO.topOrganizationId}
</if>
<if test="settlementCustomersDO.customerType != null and settlementCustomersDO.customerType != ''">
and a.customer_type = #{settlementCustomersDO.customerType}
</if>
<if test="settlementCustomersDO.customerTypeCode != null and settlementCustomersDO.customerTypeCode != ''">
and a.customer_type_code = #{settlementCustomersDO.customerTypeCode}
</if>
</sql>
</mapper>