FAISP/src/main/resources/mybatisMapper/CounterIntelligenceMapper.xml

332 lines
12 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.counterIntelligence.mapper.CounterIntelligenceMapper">
<sql id="selectCounterIntelligenceWorkListWhere">
<where>
a.status &lt;> 'DST008'
<if test='wrtUserSeq != null and wrtUserSeq != 0'>
and ((a.wrt_user_seq = #{wrtUserSeq} and a.status = 'DST002') or a.status = 'DST007')
</if>
<if test='workRating != null and workRating != ""'>
and a.work_rating = #{workRating}
</if>
<if test='arrestType1 != null and arrestType1 != ""'>
and a.arrest_type1 = #{arrestType1}
</if>
<if test='arrestType2 != null and arrestType2 != ""'>
and a.arrest_type2 = #{arrestType2}
</if>
<if test='title != null and title != ""'>
and a.title like '%'||#{title}||'%'
</if>
<if test='wrtUserNm != null and wrtUserNm != ""'>
and a.wrt_user_nm like '%'||#{wrtUserNm}||'%'
</if>
<if test='wrtOrgan != null and wrtOrgan != ""'>
and a.wrt_organ = #{wrtOrgan}
</if>
<if test='hashTags != null and hashTags != ""'>
and a.ciw_key in (
select aa.ciw_key
from hash_tag_link_ciw aa
inner join hash_tag ab on aa.tag_key = ab.tag_key
where ab.tag_nm like '%'||#{hashTags}||'%'
)
</if>
<if test='dateSelector == "workStartDate"'>
<if test='startDate != null and startDate != ""'>
and a.work_start_date >= #{startDate}::date
</if>
<if test='endDate != null and endDate != ""'>
and a.work_start_date &lt;= #{endDate}::date+1
</if>
</if>
<if test='dateSelector == "workEndDate"'>
<if test='startDate != null and startDate != ""'>
and a.work_end_date >= #{startDate}::date
</if>
<if test='endDate != null and endDate != ""'>
and a.work_end_date &lt;= #{endDate}::date+1
</if>
</if>
<if test='dateSelector == "reRatingDate1"'>
<if test='startDate != null and startDate != ""'>
and a.re_rating_date1 >= #{startDate}::date
</if>
<if test='endDate != null and endDate != ""'>
and a.re_rating_date1 &lt;= #{endDate}::date+1
</if>
</if>
<if test='dateSelector == "reRatingDate2"'>
<if test='startDate != null and startDate != ""'>
and a.re_rating_date2 >= #{startDate}::date
</if>
<if test='endDate != null and endDate != ""'>
and a.re_rating_date2 &lt;= #{endDate}::date+1
</if>
</if>
<if test='dateSelector == "wrtDt"'>
<if test='startDate != null and startDate != ""'>
and a.wrt_dt >= #{startDate}::date
</if>
<if test='endDate != null and endDate != ""'>
and a.wrt_dt &lt;= #{endDate}::date+1
</if>
</if>
</where>
</sql>
<select id="selectCounterIntelligenceWorkList" parameterType="CounterIntelligenceWork" resultType="CounterIntelligenceWork">
select a.ciw_key,
a.status,
a.work_rating,
a.work_start_date,
a.work_end_date,
a.re_rating_date1,
a.re_rating_date2,
a.arrest_type1,
a.arrest_type2,
a.title,
a.wrt_organ,
a.wrt_part,
a.wrt_user_seq,
a.wrt_user_grd,
a.wrt_user_nm,
a.wrt_dt,
b.fileCnt
from counter_intelligence_work a
left outer join (select ciw_key, count(*) as fileCnt from ciw_file group by ciw_key) b
on a.ciw_key = b.ciw_key
<include refid="selectCounterIntelligenceWorkListWhere"></include>
ORDER BY a.ciw_key DESC
LIMIT #{rowCnt} OFFSET #{firstIndex}
</select>
<select id="selectCounterIntelligenceWorkCnt" parameterType="CounterIntelligenceWork" resultType="int">
select count(*)
from counter_intelligence_work a
left outer join (select ciw_key, count(*) as fileCnt from ciw_file group by ciw_key) b
on a.ciw_key = b.ciw_key
<include refid="selectCounterIntelligenceWorkListWhere"></include>
</select>
<select id="selectHashTags" resultType="string" parameterType="int">
select array_to_string(array_agg(b.tag_nm), ' ') as hashTags
from hash_tag_link_ciw a
inner join hash_tag b on a.tag_key = b.tag_key
where a.ciw_key = #{ciwKey}
</select>
<select id="selectCiWorkStatisticsList" resultType="ciWorkStatistics" parameterType="ciWorkStatistics">
select work_rating,
count(case when work_start_date > (#{year}||'-01-01')::date and work_start_date &lt; (#{year}+1||'-01-01')::date then 1 end) as newWorkCnt,
count(case when work_end_date > (#{year}+1||'-01-01')::date and work_end_date &lt; (#{year}+2||'-01-01')::date then 1 end) as doingWorkCnt,
count(case when work_start_date > (#{year}-1||'-01-01')::date and work_start_date &lt; (#{year}||'-01-01')::date and work_end_date > (#{year}||'-01-01')::date and work_end_date &lt; (#{year}+1||'-01-01')::date then 1 end) as prevYearWorkEndCnt,
count(case when work_start_date > (#{year}||'-01-01')::date and work_start_date &lt; (#{year}+1||'-01-01')::date and work_end_date > (#{year}||'-01-01')::date and work_end_date &lt; (#{year}+1||'-01-01')::date then 1 end) as thisYearWorkEndCnt
from counter_intelligence_work a
WHERE a.status = 'DST007'
group by work_rating
order by work_rating
</select>
<select id="selectCiWorkYearList" resultType="int">
select year
from ( select EXTRACT(YEAR FROM work_start_date) AS year
from counter_intelligence_work
where status &lt;> 'DST008'
union
select EXTRACT(YEAR FROM now()) AS year
) a
group by year
order by year desc
</select>
<select id="selectCiaSaftyDemandList" parameterType="CounterIntelligenceActivity" resultType="CounterIntelligenceActivity">
select cia.ci_key,
cia.ci_type,
(select item_value from code_mgt where item_cd = cia.wrt_organ) as wrt_organ,
sdi.local_info,
sdi.outlook_problem,
(select item_value from code_mgt where item_cd = cia.wrt_user_grd) as wrt_user_grd,
cia.wrt_user_nm,
cia.wrt_dt
from counter_intelligence_activity cia,
safty_demand_info sdi
where cia.ci_key = sdi.ci_key
and cia.wrt_organ in
<foreach collection="downOrganCdList" item="item" index="index" separator="," open="(" close=")">
#{item}
</foreach>
ORDER BY cia.ci_key DESC
LIMIT #{rowCnt} OFFSET #{firstIndex}
</select>
<select id="selectCiaSaftyDemandListCnt" parameterType="CounterIntelligenceActivity" resultType="Integer">
select count(*)
from(
select cia.ci_key,
cia.ci_type,
(select item_value from code_mgt where item_cd = cia.wrt_organ) as wrt_organ,
sdi.local_info,
sdi.outlook_problem,
(select item_value from code_mgt where item_cd = cia.wrt_user_grd) as wrt_user_grd,
cia.wrt_user_nm,
cia.wrt_dt
from counter_intelligence_activity cia,
safty_demand_info sdi
where cia.ci_key = sdi.ci_key
and cia.wrt_organ in
<foreach collection="downOrganCdList" item="item" index="index" separator="," open="(" close=")">
#{item}
</foreach>
ORDER BY cia.ci_key DESC
)a
</select>
<select id="selectCiaManageCompanyList" parameterType="CounterIntelligenceActivity" resultType="CounterIntelligenceActivity">
select cia.ci_key,
cia.ci_type,
(select item_value from code_mgt where item_cd = mci.mgt_organ) as mgt_organ,
mci.company_nm,
mci.company_location,
mci.related_field,
mci.description,
mci.cell_phone,
mci.department,
mci."name",
(select item_value from code_mgt where item_cd = cia.wrt_user_grd) as wrt_user_grd,
cia.wrt_user_nm,
cia.wrt_dt
from counter_intelligence_activity cia,
manage_company_info mci
where cia.ci_key = mci.ci_key
and mci.mgt_organ in
<foreach collection="downOrganCdList" item="item" index="index" separator="," open="(" close=")">
#{item}
</foreach>
ORDER BY cia.ci_key DESC
LIMIT #{rowCnt} OFFSET #{firstIndex}
</select>
<select id="selectCiaManageCompanyListCnt" parameterType="CounterIntelligenceActivity" resultType="Integer">
select count(*)
from(
select cia.ci_key,
cia.ci_type,
(select item_value from code_mgt where item_cd = mci.mgt_organ) as mgt_organ,
mci.company_nm,
mci.company_location,
mci.related_field,
mci.description,
mci.cell_phone,
mci.department,
mci."name",
(select item_value from code_mgt where item_cd = cia.wrt_user_grd) as wrt_user_grd,
cia.wrt_user_nm,
cia.wrt_dt
from counter_intelligence_activity cia,
manage_company_info mci
where cia.ci_key = mci.ci_key
and mci.mgt_organ in
<foreach collection="downOrganCdList" item="item" index="index" separator="," open="(" close=")">
#{item}
</foreach>
ORDER BY cia.ci_key DESC
)a
</select>
<select id="selectCiaForeignerList" parameterType="CounterIntelligenceActivity" resultType="CounterIntelligenceActivity">
select cia.ci_key,
(select item_value from code_mgt where item_cd = fi.mgt_organ) as mgt_organ,
fi.manager,
fi.commu_location,
fi.commu_national,
fi.commu_address,
fi.select_reason,
fi.monitoring_info,
fi.fix_date,
(select item_value from code_mgt where item_cd = cia.wrt_user_grd) as wrt_user_grd,
cia.wrt_user_nm,
cia.wrt_dt
from counter_intelligence_activity cia,
foreigner_info fi
where cia.ci_key = fi.ci_key
and fi.mgt_organ in
<foreach collection="downOrganCdList" item="item" index="index" separator="," open="(" close=")">
#{item}
</foreach>
ORDER BY cia.ci_key DESC
LIMIT #{rowCnt} OFFSET #{firstIndex}
</select>
<select id="selectCiaForeignerListCnt" parameterType="CounterIntelligenceActivity" resultType="Integer">
select count(*)
from(
select cia.ci_key,
(select item_value from code_mgt where item_cd = fi.mgt_organ) as mgt_organ,
fi.manager,
fi.commu_location,
fi.commu_national,
fi.commu_address,
fi.select_reason,
fi.monitoring_info,
fi.fix_date,
(select item_value from code_mgt where item_cd = cia.wrt_user_grd) as wrt_user_grd,
cia.wrt_user_nm,
cia.wrt_dt
from counter_intelligence_activity cia,
foreigner_info fi
where cia.ci_key = fi.ci_key
and fi.mgt_organ in
<foreach collection="downOrganCdList" item="item" index="index" separator="," open="(" close=")">
#{item}
</foreach>
ORDER BY cia.ci_key DESC
)a
</select>
<select id="selectCiaEduList" parameterType="CounterIntelligenceActivity" resultType="CounterIntelligenceActivity">
select cia.ci_key,
(select item_value from code_mgt where item_cd = ei.mgt_organ) as mgt_organ,
ei.edu_date,
ei.edu_type,
ei.people_cnt,
ei.description,
(select item_value from code_mgt where item_cd = cia.wrt_user_grd) as wrt_user_grd,
cia.wrt_user_nm,
cia.wrt_dt
from counter_intelligence_activity cia,
edu_info ei
where cia.ci_key = ei.ci_key
and ei.mgt_organ in
<foreach collection="downOrganCdList" item="item" index="index" separator="," open="(" close=")">
#{item}
</foreach>
ORDER BY cia.ci_key DESC
LIMIT #{rowCnt} OFFSET #{firstIndex}
</select>
<select id="selectCiaEduListCnt" parameterType="CounterIntelligenceActivity" resultType="Integer">
select count(*)
from(
select cia.ci_key,
(select item_value from code_mgt where item_cd = ei.mgt_organ) as mgt_organ,
ei.edu_date,
ei.edu_type,
ei.people_cnt,
ei.description,
(select item_value from code_mgt where item_cd = cia.wrt_user_grd) as wrt_user_grd,
cia.wrt_user_nm,
cia.wrt_dt
from counter_intelligence_activity cia,
edu_info ei
where cia.ci_key = ei.ci_key
and ei.mgt_organ in
<foreach collection="downOrganCdList" item="item" index="index" separator="," open="(" close=")">
#{item}
</foreach>
ORDER BY cia.ci_key DESC
)a
</select>
</mapper>