Files
ibs-fullstack/ibs/src/main/resources/mapper/custmap/CustMapMapper.xml

372 lines
16 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.ruoyi.ibs.custmap.mapper.CustMapMapper">
<select id="selectCustMapListByCircle" parameterType="CustMapCircleDTO" resultType="CustMapVO">
SELECT
id, cust_name, lp_name, start_date, province, city, regist_capi_show, phone_number,
address_detail, longitude, latitude,social_credit_code,new_company_flag_${dept} as new_company_flag, cust_type,
ST_Distance_Sphere(
point(longitude, latitude),
point(#{targetLng}, #{targetLat})
) AS distance
FROM
cust_info_radar
WHERE
latitude BETWEEN #{targetLat} - #{latRange} AND #{targetLat} + #{latRange}
AND longitude BETWEEN #{targetLng} - #{lngRange} AND #{targetLng} + #{lngRange}
<include refid="selectConditions"></include>
HAVING #{dist} * 1000 > distance
<include refid="orderCondition"></include>
limit #{pageIndex}, #{size}
</select>
<select id="exportCustMapListByCircle" parameterType="CustMapCircleExcelDTO" resultType="CustMapExcelVO">
SELECT
*, new_company_flag_${dept} as new_company_flag
FROM
cust_info_radar
WHERE
latitude BETWEEN #{targetLat} - #{latRange} AND #{targetLat} + #{latRange}
AND longitude BETWEEN #{targetLng} - #{lngRange} AND #{targetLng} + #{lngRange}
<include refid="selectConditions"></include>
HAVING #{dist} * 1000 > ST_Distance_Sphere(point(longitude, latitude),point(#{targetLng}, #{targetLat}))
</select>
<select id="countCustMapListByCircle" parameterType="CustMapCircleDTO" resultType="Long">
SELECT
count(distinct cust_id)
FROM
cust_info_radar
WHERE
latitude BETWEEN #{targetLat} - #{latRange} AND #{targetLat} + #{latRange}
AND longitude BETWEEN #{targetLng} - #{lngRange} AND #{targetLng} + #{lngRange}
<include refid="selectConditions"></include>
AND #{dist} * 1000 > ST_Distance_Sphere(point(longitude, latitude), point(#{targetLng}, #{targetLat}))
</select>
<select id="selectCustMapListByPolygon" parameterType="CustMapPolygonDTO" resultType="CustMapVO">
SELECT
id, cust_name, lp_name, start_date, province, city, regist_capi_show, phone_number,
address_detail, longitude, latitude,social_credit_code,new_company_flag_${dept} as new_company_flag,cust_type
FROM
cust_info_radar
WHERE
<if test=" minLat != null and minLng != null and maxLat != null and maxLng != null ">
latitude BETWEEN #{minLat} AND #{maxLat}
AND longitude BETWEEN #{minLng} AND #{maxLng}
AND
</if>
ST_Contains(ST_GeomFromText(#{wkt}), point(longitude, latitude))
<include refid="selectConditions"></include>
<include refid="orderCondition"></include>
limit #{pageIndex}, #{size}
</select>
<select id="countCustMapListByPolygon" parameterType="CustMapPolygonDTO" resultType="Long">
SELECT
count(distinct cust_id)
FROM
cust_info_radar
WHERE
latitude BETWEEN #{minLat} AND #{maxLat}
AND longitude BETWEEN #{minLng} AND #{maxLng}
AND ST_Contains(ST_GeomFromText(#{wkt}), point(longitude, latitude))
<include refid="selectConditions"></include>
</select>
<select id="exportCustMapListByPolygon" parameterType="CustMapPolygonExcelDTO" resultType="CustMapExcelVO">
SELECT
*, new_company_flag_${dept} as new_company_flag
FROM
cust_info_radar
WHERE
ST_Contains(ST_GeomFromText(#{wkt}), point(longitude, latitude))
<include refid="selectConditions"></include>
</select>
<select id="selectLngAndLat" resultType="CustMapVO">
select id,longitude,latitude
from cust_info_radar
where code is null
and longitude is not null
and latitude is not null
and id > #{lastId}
order by id
limit #{limit}
</select>
<update id="saveCodeToCustMap">
<foreach collection="updateDataList" item="item" separator=";">
update cust_info_radar
set code = #{item.code}
where id = #{item.id}
</foreach>
</update>
<sql id="selectConditions">
<!-- 机构类型 -->
<if test="companyTypeList != null and companyTypeList.size() > 0">
<if test="companyTypeInclude != null and companyTypeInclude">
AND company_type IN
</if>
<if test="companyTypeInclude != null and !companyTypeInclude">
AND company_type NOT IN
</if>
<foreach collection="companyTypeList" item="companyType" open="(" separator="," close=")">
#{companyType}
</foreach>
</if>
<!-- 企业规模 -->
<if test="custScaleList != null and custScaleList.size() > 0">
AND cust_scale IN
<foreach collection="custScaleList" item="custScale" open="(" separator="," close=")">
#{custScale}
</foreach>
</if>
<!-- 联系电话 -->
<if test="isPhoneNumber != null">
AND ISNULL(phone_number) = #{isPhoneNumber}
</if>
<!-- 邮箱 -->
<if test="isEmail != null">
AND ISNULL(email) = #{isEmail}
</if>
<!-- 省份地区 -->
<if test="province != null and province != ''">
AND province = #{province}
</if>
<if test="city != null and city != ''">
AND city = #{city}
</if>
<if test="county != null and county != ''">
AND county = #{county}
</if>
<if test="street != null and street != ''">
AND street = #{street}
</if>
<if test="community != null and community != ''">
AND community = #{community}
</if>
<!-- 所在行业 -->
<if test="belongBusinessList != null and belongBusinessList.size() > 0">
AND belong_business IN
<foreach collection="belongBusinessList" item="belongBusiness" open="(" separator="," close=")">
#{belongBusiness}
</foreach>
</if>
<!-- 成立年限 -->
<if test="startDateIntervalList != null and startDateIntervalList.size() > 0">
AND
<foreach collection="startDateIntervalList" item="param" open="(" separator=" OR " close=")">
start_date BETWEEN (CURDATE() - INTERVAL #{param.max} MONTH) AND (CURDATE() - INTERVAL #{param.min} MONTH)
</foreach>
</if>
<!-- 经营状态 -->
<if test="statusList != null and statusList.size() > 0">
<if test="statusInclude != null and statusInclude">
AND status IN
</if>
<if test="statusInclude != null and !statusInclude">
AND status NOT IN
</if>
<foreach collection="statusList" item="status" open="(" separator="," close=")">
#{status}
</foreach>
</if>
<!-- 注册资本 -->
<if test="registCapiCur != null and registCapiCur != ''">
AND regist_capi_cur = #{registCapiCur}
</if>
<if test="registCapiIntervalList != null and registCapiIntervalList.size() > 0">
AND
<foreach collection="registCapiIntervalList" item="param" open="(" separator=" OR " close=")">
regist_capi_value BETWEEN #{param.min} AND #{param.max}
</foreach>
</if>
<!-- 实缴资本 -->
<if test="recCapCur != null and recCapCur != ''">
AND rec_cap_cur = #{recCapCur}
</if>
<if test="recCapIntervalList != null and recCapIntervalList.size() > 0">
AND
<foreach collection="recCapIntervalList" item="param" open="(" separator=" OR " close=")">
rec_cap_value BETWEEN #{param.min} AND #{param.max}
</foreach>
</if>
<!-- 养老保险参保人数 -->
<if test="businessInfoPenInsurIntervalList != null and businessInfoPenInsurIntervalList.size() > 0">
AND
<foreach collection="businessInfoPenInsurIntervalList" item="param" open="(" separator=" OR " close=")">
business_info_pen_insur_num BETWEEN #{param.min} AND #{param.max}
</foreach>
</if>
<!-- 医疗保险参保人数 -->
<if test="businessInfoMediInsurIntervalList != null and businessInfoMediInsurIntervalList.size() > 0">
AND
<foreach collection="businessInfoMediInsurIntervalList" item="param" open="(" separator=" OR " close=")">
business_info_medi_insur_num BETWEEN #{param.min} AND #{param.max}
</foreach>
</if>
<!-- 有无进出口信息 -->
<if test="businessInfoImExportFlag != null ">
AND business_info_im_export_flag = #{businessInfoImExportFlag}
</if>
<if test="businessInfoImExportCreditGradeList != null and businessInfoImExportCreditGradeList.size() > 0">
AND business_info_im_export_credit_grade IN
<foreach collection="businessInfoImExportCreditGradeList" item="businessInfoImExportCreditGrade" open="(" separator="," close=")">
#{businessInfoImExportCreditGrade}
</foreach>
</if>
<!-- 有无政府扶持和奖励 -->
<if test="businessInfoGovSupportFlag != null ">
AND business_info_gov_support_flag = #{businessInfoGovSupportFlag}
</if>
<!-- 有无融资信息 -->
<if test="businessInfoFinaInfoFlag != null ">
AND business_info_fina_info_flag = #{businessInfoFinaInfoFlag}
</if>
<if test="businessInfoFinaRoundList != null and businessInfoFinaRoundList.size() > 0">
AND business_info_fina_round IN
<foreach collection="businessInfoFinaRoundList" item="businessInfoFinaRound" open="(" separator="," close=")">
#{businessInfoFinaRound}
</foreach>
</if>
<!-- 有无商标信息 -->
<if test="intelPropRightTrademarkInfoFlag != null ">
AND intel_prop_right_trademark_info_flag = #{intelPropRightTrademarkInfoFlag}
</if>
<!-- 有无专利信息 -->
<if test="intelPropRightPatentInfoFlag != null ">
AND intel_prop_right_patent_info_flag = #{intelPropRightPatentInfoFlag}
</if>
<!-- 有无软件著作权 -->
<if test="intelPropRightSoftCopyrightFlag != null ">
AND intel_prop_right_soft_copyright_flag = #{intelPropRightSoftCopyrightFlag}
</if>
<!-- 科技等级-类型 -->
<if test="technologyLvlTypeList != null and technologyLvlTypeList.size() > 0">
AND technology_lvl_type IN
<foreach collection="technologyLvlTypeList" item="technologyLvlType" open="(" separator="," close=")">
#{technologyLvlType}
</foreach>
</if>
<!-- 科技等级-状态 -->
<if test="technologyLvlStateList != null and technologyLvlStateList.size() > 0">
AND technology_lvl_state IN
<foreach collection="technologyLvlStateList" item="technologyLvlState" open="(" separator="," close=")">
#{technologyLvlState}
</foreach>
</if>
<!-- 科技等级-级别 -->
<if test="technologyLvlLevelList != null and technologyLvlLevelList.size() > 0">
AND technology_lvl_level IN
<foreach collection="technologyLvlLevelList" item="technologyLvlLevel" open="(" separator="," close=")">
#{technologyLvlLevel}
</foreach>
</if>
<!-- 有无上市信息 -->
<if test="capMarketListInfoFlag != null ">
AND cap_market_list_info_flag = #{capMarketListInfoFlag}
</if>
<!-- 有无失信信息 -->
<if test="riskCharDisInfoFlag != null ">
AND risk_char_dis_info_flag = #{riskCharDisInfoFlag}
</if>
<!-- 有无破产清算 -->
<if test="riskCharBankruptcyLiquiFlag != null ">
AND risk_char_bankruptcy_liqui_flag = #{riskCharBankruptcyLiquiFlag}
</if>
<!-- 有无变更记录 -->
<if test="riskCharChangeRecordFlag != null ">
AND risk_char_change_record_flag = #{riskCharChangeRecordFlag}
</if>
<!-- 有无失信被执行人 -->
<if test="riskCharDisPersonFlag != null ">
AND risk_char_dis_person_flag = #{riskCharDisPersonFlag}
</if>
<!-- 有无严重失信违法 -->
<if test="riskCharSncFlag != null ">
AND risk_char_snc_flag = #{riskCharSncFlag}
</if>
<!-- 有无限制高消费 -->
<if test="riskCharRhcFlag != null ">
AND risk_char_rhc_flag = #{riskCharRhcFlag}
</if>
<!-- 有无行政处罚 -->
<if test="operatRiskAdminPenaltyFlag != null ">
AND operat_risk_admin_penalty_flag = #{operatRiskAdminPenaltyFlag}
</if>
<!-- 有无环保处罚 -->
<if test="operatRiskEnvirPenaltyFlag != null ">
AND operat_risk_envir_penalty_flag = #{operatRiskEnvirPenaltyFlag}
</if>
<!-- 有无欠税信息 -->
<if test="operatRiskOweTaxInfoFlag != null ">
AND operat_risk_owe_tax_info_flag = #{operatRiskOweTaxInfoFlag}
</if>
<!-- 有无终末案件 -->
<if test="operatRiskFinalCaseFlag != null ">
AND operat_risk_final_case_flag = #{operatRiskFinalCaseFlag}
</if>
<!-- 有无未结案件 -->
<if test="operatRiskUnfinishCaseFlag != null ">
AND operat_risk_unfinish_case_flag = #{operatRiskUnfinishCaseFlag}
</if>
<!-- 新增企业标识 -->
<if test="newCompanyFlag != null">
AND new_company_flag_${dept} = #{newCompanyFlag}
</if>
<!-- 是否是分支机构 -->
<if test="isBranchFlag != null">
AND is_branch_flag = #{isBranchFlag}
</if>
<!-- 是否有分支机构 -->
<if test="isHasBranchFlag != null">
AND is_has_branch_flag = #{isHasBranchFlag}
</if>
<!-- 纳税信用等级 -->
<if test="nsxydjList != null and nsxydjList.size() > 0">
AND nsxydj IN
<foreach collection="nsxydjList" item="nsxydj" open="(" separator="," close=")">
#{nsxydj}
</foreach>
</if>
<!-- 税收违法 -->
<if test="isSswf != null">
AND is_sswf = #{isSswf}
</if>
<!-- 经营异常 -->
<if test="isJyyc != null">
AND is_jyyc = #{isJyyc}
</if>
<!-- 资质证书 -->
<if test="zzzsCodeList != null and zzzsCodeList.size() > 0">
AND
<foreach collection="zzzsCodeList" item="zc" open="(" separator=" or " close=")">
find_in_set(#{zc},zzzs_code)
</foreach>
</if>
<!-- 法人变更 -->
<if test="isFrbg != null">
AND is_frbg = #{isFrbg}
</if>
<!-- 股权冻结 -->
<if test="isGqdj != null">
AND is_gqdj = #{isGqdj}
</if>
</sql>
<sql id="orderCondition">
ORDER BY id
<if test="isAsc != null and isAsc">
asc
</if>
<if test="isAsc != null and !isAsc">
desc
</if>
</sql>
</mapper>