FAISP/src/main/resources/mybatisMapper/InternationalCrimeArrestMap...

182 lines
6.1 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.dbnt.faisp.main.faStatistics.internationalCrimeArrest.mapper.InternationalCrimeArrestMapper">
<sql id="selectInternationalCrimeArrestListWhere">
<where>
content_status &lt;> 'D'
<if test='organ != null and organ != ""'>
AND organ = #{organ}
</if>
<if test='department != null and department != ""'>
AND department = #{department}
</if>
<if test='crimeType != null and crimeType != ""'>
AND crime_type = #{crimeType}
</if>
<if test='violationType != null and violationType != ""'>
AND violation_type = #{violationType}
</if>
<if test='caseNum != null and caseNum != ""'>
AND case_num = #{caseNum}
</if>
<if test='crimeName != null and crimeName != ""'>
AND crime_name LIKE CONCAT('%', #{crimeName}, '%')
</if>
<if test='occurTable != null and occurTable != ""'>
AND occur_table LIKE CONCAT('%', #{occurTable}, '%')
</if>
<if test='arrestTable != null and arrestTable != ""'>
AND arrest_table LIKE CONCAT('%', #{arrestTable}, '%')
</if>
<if test='suspectTable != null and suspectTable != ""'>
AND suspect_table LIKE CONCAT('%', #{suspectTable}, '%')
</if>
<if test='crimeAwarenessDt != null'>
And crime_awareness_dt = #{crimeAwarenessDt}::DATE
</if>
<if test='caseSentDt != null'>
AND case_sent_dt = #{caseSentDt}::DATE
</if>
<if test='processResult != null and processResult != ""'>
AND process_result = #{processResult}
</if>
<if test='dateSelector == "wrtDt"'>
<if test='startDate != null and startDate != ""'>
And wrt_dt >= #{startDate}::DATE
</if>
<if test='endDate != null and endDate != ""'>
AND wrt_dt &lt;= #{endDate}::DATE+1
</if>
</if>
</where>
</sql>
<select id="selectInternationalCrimeArrestList" resultType="InternationalCrimeArrest" parameterType="InternationalCrimeArrest">
SELECT
i.ica_key,
i.organ,
i.department,
i.crime_type,
i.violation_type,
i.crime_name,
i.smuggling_amount,
i.occur_table,
i.arrest_table,
i.suspect_table,
i.crime_awareness_dt,
i.case_sent_dt,
i.process_result,
i.other_crime,
i.case_num,
i.case_overview,
i.arrest_area,
i.means,
i.crime_form,
i.purpose,
i.smuggled_goods,
i.crackdown_personel,
i.violation_amount,
i.destination,
i.content_status,
i.wrt_organ,
i.wrt_user_seq,
i.wrt_nm,
i.wrt_dt
FROM international_crime_arrest i
<include refid="selectInternationalCrimeArrestListWhere"></include>
ORDER BY i.ica_key DESC
LIMIT #{rowCnt} OFFSET #{firstIndex}
</select>
<select id="selectInternationalCrimeArrestListCnt" resultType="int" parameterType="InternationalCrimeArrest">
SELECT count(*)
FROM international_crime_arrest
<include refid="selectInternationalCrimeArrestListWhere"></include>
</select>
<select id="selectInternationalCrimeArrestParamList" resultType="com.dbnt.faisp.util.ParamMap" parameterType="InternationalCrimeArrest">
SELECT
i.ica_key,
i.occur_table,
i.arrest_table,
i.suspect_table,
to_char(i.crime_awareness_dt, 'YYYY-MM-DD') as crime_awareness_dt,
to_char(i.case_sent_dt, 'YYYY-MM-DD') as case_sent_dt,
i.other_crime,
i.case_num,
i.case_overview,
i.arrest_area,
i.crackdown_personel,
i.violation_amount,
i.destination,
i.content_status,
i.wrt_organ,
i.wrt_user_seq,
i.wrt_nm,
to_char(i.wrt_dt, 'YYYY-MM-DD HH24:MI') as wrt_dt,
cm1.item_value AS organ,
cm2.item_value AS department,
cm3.item_value AS crime_type,
cm4.item_value AS violation_type,
COALESCE(cm5.item_value, i.process_result) AS process_result,
COALESCE(cm6.item_value, i.means) AS means,
cm7.item_value AS crime_form,
COALESCE(cm8.item_value, i.purpose) AS purpose,
COALESCE(cm9.item_value, i.smuggled_goods) AS smuggled_goods,
concat(cm10.item_value,' ',cm11.item_value,' ',COALESCE(cm12.item_value, s.country)) as personal_information
FROM international_crime_arrest i
INNER JOIN suspect_person_info s
ON i.ica_key = s.ica_key
LEFT JOIn code_mgt cm1 ON i.organ = cm1.item_cd
LEFT JOIN code_mgt cm2 ON i.department = cm2.item_cd
LEFT JOIN code_mgt cm3 ON i.crime_type = cm3.item_cd
LEFT JOIN code_mgt cm4 ON i.violation_type = cm4.item_cd
LEFT JOIN code_mgt cm5 ON i.process_result = cm5.item_cd
LEFT JOIN code_mgt cm6 ON i.means = cm6.item_cd
LEFT JOIN code_mgt cm7 ON i.crime_form = cm7.item_cd
LEFT JOIN code_mgt cm8 ON i.purpose = cm8.item_cd
LEFT JOIN code_mgt cm9 ON i.smuggled_goods = cm9.item_cd
LEFT JOIN code_mgt cm10 ON s.sex = cm10.item_cd
LEFT JOIN code_mgt cm11 ON s.age = cm11.item_cd
LEFT JOIN code_mgt cm12 ON s.country = cm12.item_cd
<include refid="selectInternationalCrimeArrestListWhere"></include>
ORDER BY i.ica_key DESC
LIMIT #{rowCnt} OFFSET #{firstIndex}
</select>
<select id="selectSuspectPersonInfoParamList" resultType="com.dbnt.faisp.util.ParamMap" parameterType="int">
SELECT
s.spi_key,
s.ica_key,
s.sex,
s.age,
s.country,
s.stay_qualification,
s.stay_period_expired_dt,
s.entry_visa
FROM suspect_person_info s
INNER JOIN international_crime_arrest i
ON s.ica_key = i.ica_key
WHERE s.ica_key = #{icaKey}
</select>
<select id="icaDuplicateCount" resultType="int" parameterType="InternationalCrimeArrest">
SELECT
COUNT(*)
FROM (
SELECT
s.ica_key
, row_number() OVER (PARTITION BY s.ica_key) AS row
FROM suspect_person_info s
INNER JOIN international_crime_arrest i
ON s.ica_key = i.ica_key
<include refid="selectInternationalCrimeArrestListWhere"></include>
ORDER BY i.ica_key DESC
LIMIT #{rowCnt} OFFSET #{firstIndex}
) a
WHERE a.row > 1
</select>
</mapper>