Compare commits

..

2 Commits

17 changed files with 1059 additions and 169 deletions

View File

@ -40,7 +40,6 @@ public class CrackdownStatusController {
mav.addObject("accessAuth", accessAuth); mav.addObject("accessAuth", accessAuth);
crackdownStatus.setQueryInfo();
List<CrackdownStatus> crackdownStatusList = crackdownStatusService.selectCrackdownStatusList(crackdownStatus); List<CrackdownStatus> crackdownStatusList = crackdownStatusService.selectCrackdownStatusList(crackdownStatus);
for (CrackdownStatus cds:crackdownStatusList) { for (CrackdownStatus cds:crackdownStatusList) {
@ -51,8 +50,6 @@ public class CrackdownStatusController {
} }
mav.addObject("crackdownStatusList", crackdownStatusList); mav.addObject("crackdownStatusList", crackdownStatusList);
crackdownStatus.setContentCnt(crackdownStatusService.selectCrackdownStatusListCnt(crackdownStatus));
crackdownStatus.setPaginationInfo();
mav.addObject("searchParams", crackdownStatus); mav.addObject("searchParams", crackdownStatus);
return mav; return mav;
} }

View File

@ -47,8 +47,6 @@ public class ProcessResultController {
} }
mav.addObject("processResultList", processResultList); mav.addObject("processResultList", processResultList);
processResult.setContentCnt(processResultService.selectProcessResultListCnt(processResult));
processResult.setPaginationInfo();
mav.addObject("searchParams", processResult); mav.addObject("searchParams", processResult);
return mav; return mav;
} }

View File

@ -39,7 +39,6 @@ public class SailorController {
String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/faStatistics/sailor").get(0).getAccessAuth(); String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/faStatistics/sailor").get(0).getAccessAuth();
mav.addObject("accessAuth", accessAuth); mav.addObject("accessAuth", accessAuth);
List<Sailor> sailorList = sailorService.selectSailorList(sailor); List<Sailor> sailorList = sailorService.selectSailorList(sailor);
for (Sailor s:sailorList) { for (Sailor s:sailorList) {

View File

@ -9,8 +9,11 @@ import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
import org.hibernate.annotations.DynamicInsert; import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate; import org.hibernate.annotations.DynamicUpdate;
import org.springframework.format.annotation.DateTimeFormat;
import javax.persistence.*; import javax.persistence.*;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
@Getter @Getter
@ -76,4 +79,127 @@ public class CrackdownStatus extends CrackdownStatusBaseEntity {
private List<Integer> violationDeleteKeyList; private List<Integer> violationDeleteKeyList;
@Transient @Transient
private List<Integer> sailorDeleteKeyList; private List<Integer> sailorDeleteKeyList;
@Transient
private String year;
@Transient
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate napoDate;
@Transient
private String violation;
@Transient
private String boatNameKr;
@Transient
private Integer tonStartCnt;
@Transient
private Integer tonEndCnt;
@Transient
private String boatMaterial;
@Transient
private String boatNnySung;
@Transient
private String boatNnySi;
@Transient
private String sailorNameKr;
@Transient
private String fisheryType;
@Transient
private String catchFishSpecies;
@Transient
private String catchCnt;
@Transient
private String offenseFishSpecies;
@Transient
private String offenseCatchCnt;
@Transient
private String offenseIllegalWasteQuantity;
@Transient
private String offenseQuantity;
@Transient
private String offenseAmount;
@Transient
private String processStatus;
@Transient
private String damboPayment;
@Transient
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate paymentPaymentDate;
@Transient
private Integer damboUnpaidAmount;
@Transient
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate consignmentStartDate;
@Transient
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate consignmentEndDate;
/*@Transient
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate evictionDt;*/
@Transient
private String isEvictionDt;
/*@Transient
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate returnDt;*/
@Transient
private String isReturnDt;
/*@Transient
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate confiscationDt;*/
@Transient
private String isConfiscationDt;
@Transient
private String isConsignmentStartDt;
@Transient
private String isDamboUnpaidAmount;
@Transient
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate boatDisposalDate;
@Transient
private String boatDisposalType;
@Transient
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate directHandoverDate;
@Transient
private String isDirectHandoverDt;
@Transient
private String handoverSeaPointLat;
@Transient
private String handoverSeaPointLon;
@Transient
private String handoverSeaPointDetail;
@Transient
private String handoverBoat;
@Transient
private String middleTakeoverBoat;
@Transient
private String captin;
@Transient
private String mate;
@Transient
private String warden;
@Transient
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate fieldIvsgtNapoDate;
@Transient
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate fieldIvsgtReleaseDate;
@Transient
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate pressurizedStartDate;
@Transient
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate pressurizedEndDate;
@Transient
private String distance;
@Transient
private String confiscationFrame;
@Transient
private String confiscationWidth;
@Transient
private String confiscationJo;
@Transient
private String confiscationGae;
@Transient
private String confiscationEtc;
} }

View File

@ -48,4 +48,13 @@ public class ProcessResult extends ProcessResultBaseEntity {
private List<CrackdownStatus> crackdownStatusList; private List<CrackdownStatus> crackdownStatusList;
@Transient @Transient
private List<FishingBoat> fishingBoatList; private List<FishingBoat> fishingBoatList;
@Transient
private String caseNum;
@Transient
private String crackdownPolice;
@Transient
private String year;
@Transient
private String violation;
} }

View File

@ -10,6 +10,8 @@ import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate; import org.hibernate.annotations.DynamicUpdate;
import javax.persistence.*; import javax.persistence.*;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
@Getter @Getter
@ -39,4 +41,15 @@ public class Sailor extends SailorBaseEntity {
private List<FishingBoat> fishingBoatList; private List<FishingBoat> fishingBoatList;
@Transient @Transient
private List<Violation> violationList; private List<Violation> violationList;
@Transient
private String year;
@Transient
private String crackdownPolice;
@Transient
private String crackdownBoat;
@Transient
private String boatNameKr;
@Transient
private LocalDateTime napoDt;
} }

View File

@ -6,12 +6,265 @@
<mapper namespace="com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper.CrackdownStatusMapper"> <mapper namespace="com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper.CrackdownStatusMapper">
<sql id="selectCrackdownStatusListWhere"> <sql id="selectCrackdownStatusListWhere">
<where> <where>
<if test='year != null and year != ""'>
And EXTRACT(YEAR FROM pr.wrt_dt) = EXTRACT(YEAR FROM CAST(#{year} AS DATE)::TIMESTAMP)
</if>
<if test='caseNum != null and caseNum != ""'>
AND caseNum = #{caseNum}
</if>
<if test='nll != null and nll != ""'>
AND nll = #{nll}
</if>
<if test='napoDate != null'>
AND napo_dt::DATE = #{napoDate}::DATE
</if>
<if test='violation != null and violation != ""'>
AND violation = #{violation}
</if>
<if test='invasionType != null and invasionType != ""'>
AND invasion_type = #{invasionType}
</if>
<if test='napoSeaPointDetail != null and napoSeaPointDetail != ""'>
AND (
napo_sea_point_detail LIKE CONCAT('%', #{napoSeaPointDetail}, '%')
OR napo_sea_point_lon LIKE CONCAT('%', #{napoSeaPointDetail}, '%')
OR napo_sea_point_lat LIKE CONCAT('%', #{napoSeaPointDetail}, '%')
)
</if>
<if test='obstrExspdCnt != null and obstrExspdCnt != ""'>
AND obstr_exspd_cnt = #{obstrExspdCnt}
</if>
<if test='personDamageCnt != null and personDamageCnt != ""'>
AND person_damage_cnt = #{personDamageCnt}
</if>
<if test='personDamageAmount != null and personDamageAmount != ""'>
AND person_damage_amount = #{personDamageAmount}
</if>
<if test='personDamageDetail != null and personDamageDetail != ""'>
AND person_damage_detail LIKE CONCAT('%', #{personDamageDetail}, '%')
</if>
<if test='materialDamageCnt != null and materialDamageCnt != ""'>
AND material_damage_cnt = #{materialDamageCnt}
</if>
<if test='materialDamageAmount != null and materialDamageAmount != ""'>
AND material_damage_amount = #{materialDamageAmount}
</if>
<if test='materialDamageDetail != null and materialDamageDetail != ""'>
AND material_damage_detail LIKE CONCAT('%', #{materialDamageDetail}, '%')
</if>
<if test='caseAgency != null and caseAgency != ""'>
AND case_agency = #{caseAgency}
</if>
<if test='crackdownPolice != null and crackdownPolice != ""'>
AND crackdown_police = #{crackdownPolice}
</if>
<if test='crackdownBoat != null and crackdownBoat != ""'>
AND crackdown_boat = #{crackdownBoat}
</if>
<if test='mmsi != null and mmsi != ""'>
AND mmsi LIKE CONCAT('%', #{mmsi}, '%')
</if>
<if test='boatNameKr != null and boatNameKr != ""'>
AND boat_name_kr LIKE CONCAT('%', #{boatNameKr}, '%')
</if>
<if test='tonStartCnt != null and tonStartCnt != ""'>
AND ton_cnt <![CDATA[>=]]> #{tonStartCnt}
</if>
<if test='tonEndCnt != null and tonEndCnt != ""'>
AND ton_cnt <![CDATA[<=]]> #{tonEndCnt}
</if>
<if test='boatMaterial != null and boatMaterial != ""'>
AND boat_material = #{boatMaterial}
</if>
<if test='boatNnySung != null and boatNnySung != ""'>
AND boat_nny_sung LIKE CONCAT('%', #{boatNnySung}, '%')
</if>
<if test='boatNnySi != null and boatNnySi != ""'>
AND boat_nny_si LIKE CONCAT('%', #{boatNnySi}, '%')
</if>
<if test='sailorNameKr != null and sailorNameKr != ""'>
AND sailor_name_kr LIKE CONCAT('%', #{sailorNameKr}, '%')
</if>
<if test='fisheryType != null and fisheryType != ""'>
AND fishery_type = #{fisheryType}
</if>
<if test='catchFishSpecies != null and catchFishSpecies != ""'>
AND catch_fish_species LIKE CONCAT('%', #{catchFishSpecies}, '%')
</if>
<if test='catchCnt != null and catchCnt != ""'>
AND catch_cnt = #{catchCnt}
</if>
<if test='offenseFishSpecies != null and offenseFishSpecies != ""'>
AND offense_fish_species LIKE CONCAT('%', #{offenseFishSpecies}, '%')
</if>
<if test='offenseCatchCnt != null and offenseCatchCnt != ""'>
AND offense_catch_cnt = #{offenseCatchCnt}
</if>
<if test='offenseIllegalWasteQuantity != null and offenseIllegalWasteQuantity != ""'>
AND offense_illegal_waste_quantity = #{offenseIllegalWasteQuantity}
</if>
<if test='offenseQuantity != null and offenseQuantity != ""'>
AND offense_quantity = #{offenseQuantity}
</if>
<if test='offenseAmount != null and offenseAmount != ""'>
AND offense_amount = #{offenseAmount}
</if>
<if test='processStatus != null and processStatus != ""'>
AND process_status = #{processStatus}
</if>
<if test='damboPayment != null and damboPayment != ""'>
AND dambo_payment = #{damboPayment}
</if>
<if test='paymentPaymentDate != null'>
AND payment_payment_dt::DATE = #{paymentPaymentDate}::DATE
</if>
<if test='damboUnpaidAmount != null and damboUnpaidAmount != ""'>
AND dambo_unpaid_amount = #{damboUnpaidAmount}
</if>
<if test='isDamboUnpaidAmount != null and isDamboUnpaidAmount != ""'>
<if test='isDamboUnpaidAmount == "Y"'>
AND (
dambo_unpaid_amount IS NOT NULL
AND dambo_unpaid_amount > 0
)
</if>
<if test='isDamboUnpaidAmount == "N"'>
AND (
direct_handover_dt IS NULL
OR dambo_unpaid_amount = 0
)
</if>
</if>
<if test='isDirectHandoverDt != null and isDirectHandoverDt != ""'>
<if test='isDirectHandoverDt == "Y"'>
AND direct_handover_dt IS NOT NULL
</if>
<if test='isDirectHandoverDt == "N"'>
AND direct_handover_dt IS NULL
</if>
</if>
<!--<if test='evictionDt != null'>
AND eviction_dt = #{evictionDt}::DATE
</if>-->
<if test='isEvictionDt != null and isEvictionDt != ""'>
<if test='isEvictionDt == "Y"'>
AND eviction_dt IS NOT NULL
</if>
<if test='isEvictionDt == "N"'>
AND eviction_dt IS NULL
</if>
</if>
<!--<if test='returnDt != null'>
AND return_dt = #{returnDt}::DATE
</if>-->
<if test='isReturnDt != null and isReturnDt != ""'>
<if test='isReturnDt == "Y"'>
AND return_dt IS NOT NULL
</if>
<if test='isReturnDt == "N"'>
AND return_dt IS NULL
</if>
</if>
<if test='consignmentStartDate != null'>
AND consignment_start_dt = #{consignmentStartDate}::DATE
</if>
<if test='consignmentEndDate != null'>
AND consignment_end_dt = #{consignmentEndDate}::DATE
</if>
<!--<if test='confiscationDt != null'>
AND confiscation_dt = #{confiscationDt}::DATE
</if>-->
<if test='isConfiscationDt != null and isConfiscationDt != ""'>
<if test='isConfiscationDt == "Y"'>
AND confiscation_dt IS NOT NULL
</if>
<if test='isConfiscationDt == "N"'>
AND confiscation_dt IS NULL
</if>
</if>
<if test='isConsignmentStartDt != null and isConsignmentStartDt != ""'>
<if test='isConsignmentStartDt == "Y"'>
AND consignment_start_dt IS NOT NULL
</if>
<if test='isConsignmentStartDt == "N"'>
AND consignment_start_dt IS NULL
</if>
</if>
<!--<if test='isBoatDisposal != null'>
AND boat_disposal_dt = #{boatDisposalDt}::DATE
</if>-->
<if test='boatDisposalType != null and boatDisposalType != ""'>
AND boat_disposal_type = #{boatDisposalType}
</if>
<if test='directHandoverDate != null'>
AND direct_handover_dt::DATE = #{directHandoverDate}::DATE
</if>
<if test='handoverSeaPointDetail != null and handoverSeaPointDetail != ""'>
AND (
handover_sea_point_lat LIKE CONCAT('%', #{handoverSeaPointDetail}, '%')
OR handover_sea_point_lon LIKE CONCAT('%', #{handoverSeaPointDetail}, '%')
OR handover_sea_point_detail LIKE CONCAT('%', #{handoverSeaPointDetail}, '%')
)
</if>
<if test='handoverBoat != null and handoverBoat != ""'>
AND handover_boat LIKE CONCAT('%', #{handoverBoat}, '%')
</if>
<if test='middleTakeoverBoat != null and middleTakeoverBoat != ""'>
AND middle_takeover_boat LIKE CONCAT('%', #{middleTakeoverBoat}, '%')
</if>
<if test='captin != null and captin != ""'>
AND (
position = 'POS001'
AND is_restriction = #{captin}
)
</if>
<if test='mate != null and mate != ""'>
AND (
position = 'POS002'
AND is_restriction = #{mate}
)
</if>
<if test='warden != null and warden != ""'>
AND (
position = 'POS003'
AND is_restriction = #{warden}
)
</if>
<if test='fieldIvsgtNapoDate != null'>
AND field_ivsgt_napo_dt::DATE = #{fieldIvsgtNapoDate}::DATE
</if>
<if test='fieldIvsgtReleaseDate != null'>
AND field_ivsgt_release_dt::DATE = #{fieldIvsgtReleaseDate}::DATE
</if>
<!--<if test='pressurizedStartDt != null'>
AND pressurizedStartDt = #{pressurizedStartDt}::DATE
</if>
<if test='pressurizedEndDt != null'>
AND pressurizedEndDt = #{pressurizedEndDt}::DATE
</if>-->
<if test='distance != null and distance != ""'>
AND distance = #{distance}
</if>
<if test='confiscationFrame != null and confiscationFrame != ""'>
AND confiscation_frame = #{confiscationFrame}
</if>
<if test='confiscationWidth != null and confiscationWidth != ""'>
AND confiscation_width = #{confiscationWidth}
</if>
<if test='confiscationJo != null and confiscationJo != ""'>
AND confiscation_jo = #{confiscationJo}
</if>
<if test='confiscationGae != null and confiscationGae != ""'>
AND confiscation_gae = #{confiscationGae}
</if>
<if test='confiscationEtc != null and confiscationEtc != ""'>
AND confiscation_etc = #{confiscationEtc}
</if>
</where> </where>
</sql> </sql>
<select id="selectCrackdownStatusList" resultType="CrackdownStatus" parameterType="CrackdownStatus"> <select id="selectCrackdownStatusList" resultType="CrackdownStatus" parameterType="CrackdownStatus">
SELECT SELECT DISTINCT
cs.cds_key cs.cds_key
, cs.case_num , cs.case_num
, cs.napo_dt , cs.napo_dt
@ -85,11 +338,11 @@
, (SELECT count(*) FROM sailor s WHERE s.fb_key = fb.fb_key AND s.is_restriction = 'Y' AND s.position != 'POS004') AS restrictionTotal , (SELECT count(*) FROM sailor s WHERE s.fb_key = fb.fb_key AND s.is_restriction = 'Y' AND s.position != 'POS004') AS restrictionTotal
, (SELECT count(*) FROM sailor s WHERE s.fb_key = fb.fb_key AND s.is_restriction = 'N' AND s.position != 'POS004') AS notRestrictionTotal , (SELECT count(*) FROM sailor s WHERE s.fb_key = fb.fb_key AND s.is_restriction = 'N' AND s.position != 'POS004') AS notRestrictionTotal
, (SELECT count(*) FROM sailor s WHERE s.fb_key = fb.fb_key AND s.position = 'POS001' AND s.is_restriction = 'Y') AS restrictionCaptin , (SELECT count(*) FROM sailor s WHERE s.fb_key = fb.fb_key AND s.position = 'POS001' AND s.is_restriction = 'Y') AS restrictionCaptin
, (SELECT count(*) FROM sailor s WHERE s.fb_key = fb.fb_key AND s.position = 'POS001' AND s.is_restriction = 'Y') AS notRestrictionCaptin , (SELECT count(*) FROM sailor s WHERE s.fb_key = fb.fb_key AND s.position = 'POS001' AND s.is_restriction = 'N') AS notRestrictionCaptin
, (SELECT count(*) FROM sailor s WHERE s.fb_key = fb.fb_key AND s.position = 'POS002' AND s.is_restriction = 'Y') AS restrictionMate , (SELECT count(*) FROM sailor s WHERE s.fb_key = fb.fb_key AND s.position = 'POS002' AND s.is_restriction = 'Y') AS restrictionMate
, (SELECT count(*) FROM sailor s WHERE s.fb_key = fb.fb_key AND s.position = 'POS003' AND s.is_restriction = 'Y') AS restrictionWarden , (SELECT count(*) FROM sailor s WHERE s.fb_key = fb.fb_key AND s.position = 'POS003' AND s.is_restriction = 'Y') AS restrictionWarden
, (SELECT count(*) FROM sailor s WHERE s.fb_key = fb.fb_key AND s.position = 'POS002' AND s.is_restriction = 'Y') AS notRestrictionMate , (SELECT count(*) FROM sailor s WHERE s.fb_key = fb.fb_key AND s.position = 'POS002' AND s.is_restriction = 'N') AS notRestrictionMate
, (SELECT count(*) FROM sailor s WHERE s.fb_key = fb.fb_key AND s.position = 'POS003' AND s.is_restriction = 'Y') AS notRestrictionWarden , (SELECT count(*) FROM sailor s WHERE s.fb_key = fb.fb_key AND s.position = 'POS003' AND s.is_restriction = 'N') AS notRestrictionWarden
, (SELECT count(*) FROM sailor s WHERE s.fb_key = fb.fb_key AND s.is_restriction = 'Y' AND (s.position = 'POS005' or s."position" = 'POS006')) AS restrictionSailor , (SELECT count(*) FROM sailor s WHERE s.fb_key = fb.fb_key AND s.is_restriction = 'Y' AND (s.position = 'POS005' or s."position" = 'POS006')) AS restrictionSailor
, (SELECT count(*) FROM sailor s WHERE s.fb_key = fb.fb_key AND s.is_restriction = 'N' AND (s.position = 'POS005' or s."position" = 'POS006')) AS notRestrictionSailor , (SELECT count(*) FROM sailor s WHERE s.fb_key = fb.fb_key AND s.is_restriction = 'N' AND (s.position = 'POS005' or s."position" = 'POS006')) AS notRestrictionSailor
FROM crackdown_status cs FROM crackdown_status cs
@ -97,6 +350,10 @@
ON cs.cds_key = fb.cds_key ON cs.cds_key = fb.cds_key
INNER JOIN process_result pr INNER JOIN process_result pr
ON cs.cds_key = pr.cds_key ON cs.cds_key = pr.cds_key
LEFT JOIN sailor s
ON fb.fb_key = s.fb_key
LEFT JOIN violation v
ON fb.fb_key = v.fb_key
<include refid="selectCrackdownStatusListWhere"></include> <include refid="selectCrackdownStatusListWhere"></include>
ORDER BY cs.cds_key DESC ORDER BY cs.cds_key DESC
LIMIT #{rowCnt} OFFSET #{firstIndex} LIMIT #{rowCnt} OFFSET #{firstIndex}

View File

@ -6,12 +6,50 @@
<mapper namespace="com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper.ProcessResultMapper"> <mapper namespace="com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper.ProcessResultMapper">
<sql id="selectProcessResultListWhere"> <sql id="selectProcessResultListWhere">
<where> <where>
<if test='year != null and year != ""'>
And EXTRACT(YEAR FROM pr.wrt_dt) = EXTRACT(YEAR FROM CAST(#{year} AS DATE)::TIMESTAMP)
</if>
<if test='caseNum != null and caseNum != ""'>
AND caseNum = #{caseNum}
</if>
<if test='crackdownPolice != null and crackdownPolice != ""'>
AND crackdown_police = #{crackdownPolice}
</if>
<if test='boatNameKr != null and boatNameKr != ""'>
AND boat_name_kr LIKE CONCAT('%', #{boatNameKr}, '%')
</if>
<if test='violation != null and violation != ""'>
AND violation = #{violation}
</if>
<if test='sentencingCourt != null and sentencingCourt != ""'>
AND sentencing_court LIKE CONCAT('%', #{sentencingCourt}, '%')
</if>
<if test='sentencingDetail != null and sentencingDetail != ""'>
AND sentencing_detail LIKE CONCAT('%', #{sentencingDetail}, '%')
</if>
<if test='executionDetail != null and executionDetail != ""'>
AND execution_detail = #{executionDetail}
</if>
<if test='returnDt != null'>
AND return_dt = #{returnDt}::DATE
</if>
<if test='consignmentStartDt != null'>
AND consignment_start_dt = #{consignmentStartDt}::DATE
</if>
<if test='consignmentEndDt != null'>
AND consignment_end_dt = #{consignmentEndDt}::DATE
</if>
<if test='confiscationDt != null'>
AND confiscation_dt = #{confiscationDt}::DATE
</if>
<if test='boatDisposalDt != null'>
AND boat_disposal_dt = #{boatDisposalDt}::DATE
</if>
</where> </where>
</sql> </sql>
<select id="selectProcessResultList" resultType="ProcessResult" parameterType="ProcessResult"> <select id="selectProcessResultList" resultType="ProcessResult" parameterType="ProcessResult">
SELECT SELECT DISTINCT
pr.pr_key pr.pr_key
, cs.cds_key , cs.cds_key
, cs.case_num , cs.case_num
@ -27,23 +65,16 @@
, pr.consignment_end_dt , pr.consignment_end_dt
, pr.confiscation_dt , pr.confiscation_dt
, pr.boat_disposal_dt , pr.boat_disposal_dt
, pr.wrt_dt
FROM process_result pr FROM process_result pr
INNER JOIN crackdown_status cs INNER JOIN crackdown_status cs
ON pr.cds_key = cs.cds_key ON pr.cds_key = cs.cds_key
INNER JOIN fishing_boat fb INNER JOIN fishing_boat fb
ON pr.cds_key = fb.cds_key ON pr.cds_key = fb.cds_key
LEFT JOIN violation v
ON fb.fb_key = v.fb_key
<include refid="selectProcessResultListWhere"></include> <include refid="selectProcessResultListWhere"></include>
ORDER BY pr.cds_key DESC ORDER BY pr.pr_key DESC
LIMIT #{rowCnt} OFFSET #{firstIndex} LIMIT #{rowCnt} OFFSET #{firstIndex}
</select> </select>
<select id="selectProcessResultListCnt" resultType="int" parameterType="ProcessResult">
SELECT count(*)
FROM crackdown_status cs
INNER JOIN fishing_boat fb
ON cs.cds_key = fb.cds_key
INNER JOIN process_result pr
ON cs.cds_key = pr.cds_key
<include refid="selectProcessResultListWhere"></include>
</select>
</mapper> </mapper>

View File

@ -6,7 +6,39 @@
<mapper namespace="com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper.SailorMapper"> <mapper namespace="com.dbnt.faisp.main.faStatistics.crackdownsStatus.mapper.SailorMapper">
<sql id="selectSailorListWhere"> <sql id="selectSailorListWhere">
<where> <where>
<if test='year != null and year != ""'>
And EXTRACT(YEAR FROM s.wrt_dt) = EXTRACT(YEAR FROM CAST(#{year} AS DATE)::TIMESTAMP)
</if>
<if test='crackdownPolice != null and crackdownPolice != ""'>
AND crackdown_police = #{crackdownPolice}
</if>
<if test='crackdownBoat != null and crackdownBoat != ""'>
AND crackdown_boat = #{crackdownBoat}
</if>
<if test='sailorNameKr != null and sailorNameKr != ""'>
AND sailor_name_kr LIKE CONCAT('%', #{sailorNameKr}, '%')
</if>
<if test='residence != null and residence != ""'>
AND residence = #{residence}
</if>
<if test='education != null and education != ""'>
AND education = #{education}
</if>
<if test='position != null and position != ""'>
AND position = #{position}
</if>
<if test='career != null and career != ""'>
AND career = #{career}
</if>
<if test='similarCriminalHistory != null and similarCriminalHistory != ""'>
AND similar_criminal_history = #{similarCriminalHistory}
</if>
<if test='heterogeneousCriminalHistory != null and heterogeneousCriminalHistory != ""'>
AND heterogeneous_criminal_history = #{heterogeneousCriminalHistory}
</if>
<if test='arrestHistory != null and arrestHistory != ""'>
AND arrest_history = #{arrestHistory}
</if>
</where> </where>
</sql> </sql>
@ -37,8 +69,11 @@
, s.wrt_user_nm , s.wrt_user_nm
, s.wrt_dt , s.wrt_dt
FROM sailor s FROM sailor s
INNER JOIN fishing_boat f
ON s.fb_key = f.fb_key
INNER JOIN crackdown_status cs
ON f.cds_key = cs.cds_key
<include refid="selectSailorListWhere"></include> <include refid="selectSailorListWhere"></include>
ORDER BY s.sailor_key DESC ORDER BY s.sailor_key DESC
LIMIT #{rowCnt} OFFSET #{firstIndex}
</select> </select>
</mapper> </mapper>

View File

@ -1,3 +1,49 @@
$(function(){
$("#napoDate").datepicker({
format: "yyyy-mm-dd",
language: "ko"
});
$("#paymentPaymentDate").datepicker({
format: "yyyy-mm-dd",
language: "ko"
});
$("#consignmentStartDate").datepicker({
format: "yyyy-mm-dd",
language: "ko"
});
$("#consignmentEndDate").datepicker({
format: "yyyy-mm-dd",
language: "ko"
});
$("#confiscationDate").datepicker({
format: "yyyy-mm-dd",
language: "ko"
});
$("#boatDisposalDate").datepicker({
format: "yyyy-mm-dd",
language: "ko"
});
$("#directHandoverDate").datepicker({
format: "yyyy-mm-dd",
language: "ko"
});
$("#fieldIvsgtNapoDate").datepicker({
format: "yyyy-mm-dd",
language: "ko"
});
$("#fieldIvsgtReleaseDate").datepicker({
format: "yyyy-mm-dd",
language: "ko"
});
$("#pressurizedStartDate").datepicker({
format: "yyyy-mm-dd",
language: "ko"
});
$("#pressurizedEndDate").datepicker({
format: "yyyy-mm-dd",
language: "ko"
});
});
$(document).on('click', '#crackdownStatusAddBtn', function () { $(document).on('click', '#crackdownStatusAddBtn', function () {
getCrackdownStatusEditModal(null); getCrackdownStatusEditModal(null);
}); });
@ -296,7 +342,6 @@ function getCrackdownStatusEditModal(cdsKey){
function saveCrackdownStatus(saveYn){ function saveCrackdownStatus(saveYn){
$('input[name="fieldIvsgtTimeTaken"]').val(dateTimeCalc($("#fieldIvsgtNapoDt").val(), $("#fieldIvsgtReleaseDt").val())); $('input[name="fieldIvsgtTimeTaken"]').val(dateTimeCalc($("#fieldIvsgtNapoDt").val(), $("#fieldIvsgtReleaseDt").val()));
$('input[name="warrantReqTakeTime"]').val(dateTimeCalc($("#pressurizedStartDt").val(), $("#pressurizedEndDt").val()));
$('input[name="pressurizedTimeTaken"]').val(dateTimeCalc($("#pressurizedStartDt").val(), $("#pressurizedEndDt").val())); $('input[name="pressurizedTimeTaken"]').val(dateTimeCalc($("#pressurizedStartDt").val(), $("#pressurizedEndDt").val()));
if(contentCheck()){ if(contentCheck()){

View File

@ -1,3 +1,25 @@
$(function(){
$("#consignmentStartDt").datepicker({
format: "yyyy-mm-dd",
language: "ko"
});
$("#consignmentEndDt").datepicker({
format: "yyyy-mm-dd",
language: "ko"
});
$("#returnDt").datepicker({
format: "yyyy-mm-dd",
language: "ko"
});
$("#confiscationDt").datepicker({
format: "yyyy-mm-dd",
language: "ko"
});
$("#boatDisposalDt").datepicker({
format: "yyyy-mm-dd",
language: "ko"
});
});
$(document).on('click', '#processResultAddBtn', function () { $(document).on('click', '#processResultAddBtn', function () {
getProcessResultAddModal(null); getProcessResultAddModal(null);
}); });

View File

@ -101,6 +101,10 @@ $(document).on('change', '#crackdownBoat', function (){
} }
}); });
$(document).on('change', 'select[name="crackdownPolice"]', function (){
dynamicOption('select[name="crackdownBoat"]', $(this).val());
});
$(document).on('change', 'select[name="boatNameKr"]', function (){ $(document).on('change', 'select[name="boatNameKr"]', function (){
$('input[name="fbKey"]').val($('select[name="boatNameKr"] option:selected').data('key')); $('input[name="fbKey"]').val($('select[name="boatNameKr"] option:selected').data('key'));
$('input[name="cdsKey"]').val($('select[name="boatNameKr"] option:selected').data('key2')); $('input[name="cdsKey"]').val($('select[name="boatNameKr"] option:selected').data('key2'));
@ -202,6 +206,11 @@ function getSailorAddModal(){
success: function(html){ success: function(html){
$("#sailorAddModalContent").empty().append(html); $("#sailorAddModalContent").empty().append(html);
$("#sailorAddModal").modal('show'); $("#sailorAddModal").modal('show');
$("#birthdate").datepicker({
format: "yyyy-mm-dd",
language: "ko"
});
}, },
error:function(){ error:function(){

View File

@ -22,19 +22,306 @@
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}"> <input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between pe-3 py-1"> <div class="row justify-content-between pe-3 py-1">
<div class="col-auto"> <div class="col-auto">
<select class="form-select" name="rowCnt" id="rowCnt"> <div class="col-auto">
<th:block th:each="num : ${#numbers.sequence(1,5)}"> <select class="form-select form-select-sm" name="year">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option> <option value="">연도</option>
</th:block> <th:block th:each="year : ${#numbers.sequence(2020, 2030)}">
</select> <option th:value="${year + '-01-01'}" th:text="${year}" th:selected="${searchParams.year eq year}"></option>
</th:block>
</select>
</div>
</div>
<div class="col-10">
<div class="row justify-content-end">
<div class="col-auto">
<input class="form-control form-control-sm" name="napoDate" id="napoDate" placeholder="나포일시" th:value="${#temporals.format(searchParams.napoDate, 'yyyy-MM-dd')}">
</div>
<div class="col-auto">
<select class="form-select form-select-sm violation" name="violation">
<option value="">위반내용</option>
<th:block th:each="commonCode:${session.commonCode.get('VT')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq searchParams.violation}"></option>></option>
</th:block>
</select>
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="napoSeaPointDetail" id="napoSeaPointDetail" placeholder="위반장소" th:value="${searchParams.napoSeaPointDetail}">
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="invasionType">
<option value="">침범유형</option>
<th:block th:each="commonCode:${session.commonCode.get('IST')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq searchParams.invasionType}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="nll">
<option value="">NLL</option>
<option value="Y" th:selected="${searchParams.nll == 'Y'}">O</option>
<option value="N" th:selected="${searchParams.nll == 'N'}">X</option>
</select>
</div>
<div class="col-auto">
<input type="number" min="0" class="form-control form-control-sm" name="obstrExspdCnt" id="obstrExspdCnt" placeholder="인적피해 발생건수" th:value="${searchParams.obstrExspdCnt}">
</div>
<div class="col-auto">
<input type="number" min="0" class="form-control form-control-sm" name="personDamageCnt" id="personDamageCnt" placeholder="인적피해 피해인원" th:value="${searchParams.personDamageCnt}">
</div>
<div class="col-auto">
<input type="number" min="0" class="form-control form-control-sm" name="personDamageAmount" id="personDamageAmount" placeholder="인적피해 피해액" th:value="${searchParams.personDamageAmount}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="personDamageDetail" id="personDamageDetail" placeholder="인적피해 상세내용" th:value="${searchParams.personDamageDetail}">
</div>
<div class="col-auto">
<input type="number" min="0" class="form-control form-control-sm" name="materialDamageCnt" id="materialDamageCnt" placeholder="물적피해 발생건수" th:value="${searchParams.materialDamageCnt}">
</div>
<div class="col-auto">
<input type="number" min="0" class="form-control form-control-sm" name="materialDamageAmount" id="materialDamageAmount" placeholder="물적피해 피해액" th:value="${searchParams.materialDamageAmount}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="materialDamageDetail" id="materialDamageDetail" placeholder="물적피해 상세내용" th:value="${searchParams.materialDamageDetail}">
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="caseAgency">
<option value="">사건담당기관</option>
<th:block th:each="commonCode:${session.commonCode.get('ATA')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq searchParams.caseAgency}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="crackdownPolice">
<option value="">단속경찰서</option>
<th:block th:each="commonCode:${session.commonCode.get('CPO')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq searchParams.crackdownPolice}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="crackdownBoat">
<option value="">단속함정</option>
<th:block th:each="num : ${#numbers.sequence(1,#lists.size(session.commonCode.get('CPO')))}">
<th:block th:if="${'CPO'+num == searchParams.crackdownPolice}" th:each="commonCode:${session.commonCode.get('CPO'+num)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${searchParams.crackdownBoat eq commonCode.itemCd}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="mmsi" id="mmsi" placeholder="MMSI.NO" th:value="${searchParams.mmsi}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="boatNameKr" id="boatNameKr" placeholder="선명" th:value="${searchParams.boatNameKr}">
</div>
<div class="col-auto">
<div style="display: flex;">
<input type="number" min="0" class="form-control form-control-sm" name="tonStartCnt" id="tonStartCnt" placeholder="톤수 (~이상)" th:value="${searchParams.tonStartCnt}">
~<input type="number" min="0" class="form-control form-control-sm" name="tonEndCnt" id="tonEndCnt" placeholder="톤수 (~이하)" th:value="${searchParams.tonEndCnt}">
</div>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="boatMaterial" id="boatMaterial">
<option value="">선질</option>
<th:block th:each="commonCode:${session.commonCode.get('BM')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq searchParams.boatMaterial}"></option>
</th:block>
<option value="etc">직접입력</option>
</select>
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="boatNnySung" id="boatNnySung" placeholder="선적 성" th:value="${searchParams.boatNnySung}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="boatNnySi" id="boatNnySi" placeholder="선적 시" th:value="${searchParams.boatNnySi}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="sailorNameKr" id="sailorNameKr" placeholder="선장명" th:value="${searchParams.sailorNameKr}">
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="fisheryType" id="fisheryType">
<option value="">선종</option>
<th:block th:each="commonCode:${session.commonCode.get('FT')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq searchParams.fisheryType}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="catchFishSpecies" id="catchFishSpecies" placeholder="어획물 축소기재 어종" th:value="${searchParams.catchFishSpecies}">
</div>
<!--<div class="col-auto">
<input class="form-control form-control-sm" name="catchCnt" id="catchCnt" placeholder="어획물 축소기재 수량" th:value="${searchParams.catchCnt}">
</div>-->
<div class="col-auto">
<input class="form-control form-control-sm" name="offenseFishSpecies" id="offenseFishSpecies" placeholder="범칙물 어종" th:value="${searchParams.offenseFishSpecies}">
</div>
<!--<div class="col-auto">
<input class="form-control form-control-sm" name="offenseCatchCnt" id="offenseCatchCnt" placeholder="범칙물 어획량" th:value="${searchParams.offenseCatchCnt}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="offenseIllegalWasteQuantity" id="offenseIllegalWasteQuantity" placeholder="범칙물 폐기량" th:value="${searchParams.offenseIllegalWasteQuantity}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="offenseQuantity" id="offenseQuantity" placeholder="범칙물 위판량" th:value="${searchParams.offenseQuantity}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="offenseAmount" id="offenseAmount" placeholder="범칙물 위판금액" th:value="${searchParams.offenseAmount}">
</div>-->
<div class="col-auto">
<select class="form-select form-select-sm" name="processStatus" id="processStatus">
<option value="">처리현황</option>
<th:block th:each="commonCode:${session.commonCode.get('PR')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq searchParams.processStatus}"></option>
</th:block>
</select>
</div>
<!--<div class="col-auto">
<input class="form-control form-control-sm" name="damboPayment" id="damboPayment" placeholder="담보금 납부액" th:value="${searchParams.damboPayment}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="paymentPaymentDate" id="paymentPaymentDate" placeholder="담보금 납부일시" th:value="${#temporals.format(searchParams.paymentPaymentDate, 'yyyy-MM-dd')}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="damboUnpaidAmount" id="damboUnpaidAmount" placeholder="담보금 미납액" th:value="${searchParams.damboUnpaidAmount}">
</div>-->
<div class="col-auto">
<select class="form-select form-select-sm" name="isDamboUnpaidAmount" th:value="${searchParams.isDamboUnpaidAmount}">
<option value="">담보금 미납 여부</option>
<option value="Y" th:selected="${searchParams.isDamboUnpaidAmount eq 'Y'}">O</option>
<option value="N" th:selected="${searchParams.isDamboUnpaidAmount eq 'N'}">X</option>
</select>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="isDirectHandoverDt" th:value="${searchParams.isDirectHandoverDt}">
<option value="">직접인계 여부</option>
<option value="Y" th:selected="${searchParams.isDirectHandoverDt eq 'Y'}">O</option>
<option value="N" th:selected="${searchParams.isDirectHandoverDt eq 'N'}">X</option>
</select>
</div>
<div class="col-auto">
<!--<input class="form-control form-control-sm" name="evictionDt" id="evictionDt" placeholder="퇴거일" th:value="${#temporals.format(searchParams.evictionDt, 'yyyy-MM-dd')}">-->
<select class="form-select form-select-sm" name="isEvictionDt" th:value="${searchParams.isEvictionDt}">
<option value="">퇴거여부</option>
<option value="Y" th:selected="${searchParams.isEvictionDt eq 'Y'}">O</option>
<option value="N" th:selected="${searchParams.isEvictionDt eq 'N'}">X</option>
</select>
</div>
<div class="col-auto">
<!--<input class="form-control form-control-sm" name="returnDt" id="returnDt" placeholder="환부일" th:value="${#temporals.format(searchParams.returnDt, 'yyyy-MM-dd')}">-->
<select class="form-select form-select-sm" name="isReturnDt" th:value="${searchParams.isReturnDt}">
<option value="">환부여부</option>
<option value="Y" th:selected="${searchParams.isReturnDt eq 'Y'}">O</option>
<option value="N" th:selected="${searchParams.isReturnDt eq 'N'}">X</option>
</select>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="isConsignmentStartDt" th:value="${searchParams.isConsignmentStartDt}">
<option value="">위탁관리 여부</option>
<option value="Y" th:selected="${searchParams.isConsignmentStartDt eq 'Y'}">O</option>
<option value="N" th:selected="${searchParams.isConsignmentStartDt eq 'N'}">X</option>
</select>
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="consignmentStartDate" id="consignmentStartDate" placeholder="위탁시작일" th:value="${#temporals.format(searchParams.consignmentStartDate, 'yyyy-MM-dd')}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="consignmentEndDate" id="consignmentEndDate" placeholder="위탁종료일" th:value="${#temporals.format(searchParams.consignmentEndDate, 'yyyy-MM-dd')}">
</div>
<div class="col-auto">
<!--<input class="form-control form-control-sm" name="confiscationDt" id="confiscationDt" placeholder="몰수확정일" th:value="${#temporals.format(searchParams.confiscationDt, 'yyyy-MM-dd')}">-->
<select class="form-select form-select-sm" name="isConfiscationDt" th:value="${searchParams.isConfiscationDt}">
<option value="">침몰여부</option>
<option value="Y" th:selected="${searchParams.isConfiscationDt eq 'Y'}">O</option>
<option value="N" th:selected="${searchParams.isConfiscationDt eq 'N'}">X</option>
</select>
</div>
<!--<div class="col-auto">
<input class="form-control form-control-sm" name="boatDisposalDt" id="boatDisposalDt" placeholder="폐선일" th:value="${#temporals.format(searchParams.boatDisposalDt, 'yyyy-MM-dd')}">
</div>-->
<div class="col-auto">
<select class="form-select form-select-sm" name="boatDisposalType" th:value="${searchParams.boatDisposalType}">
<option value="">폐선종류</option>
<th:block th:each="commonCode:${session.commonCode.get('BDT')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq searchParams.boatDisposalType}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="directHandoverDate" id="directHandoverDate" placeholder="직접인계일" th:value="${#temporals.format(searchParams.directHandoverDate, 'yyyy-MM-dd')}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="handoverSeaPointDetail" id="handoverSeaPointDetail" placeholder="직접인계 해점" th:value="${searchParams.handoverSeaPointDetail}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="handoverBoat" id="handoverBoat" placeholder="인계함정" th:value="${searchParams.handoverBoat}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="middleTakeoverBoat" id="middleTakeoverBoat" placeholder="중측 인수함정" th:value="${searchParams.middleTakeoverBoat}">
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="captin">
<option value="">선장 구속여부</option>
<option value="Y" th:selected="${searchParams.captin eq 'Y'}">구속</option>
<option value="N" th:selected="${searchParams.captin eq 'N'}">불구속</option>
</select>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="mate">
<option value="">향해장 구속여부</option>
<option value="Y" th:selected="${searchParams.mate eq 'Y'}">구속</option>
<option value="N" th:selected="${searchParams.mate eq 'N'}">불구속</option>
</select>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="warden">
<option value="">기관장 구속여부</option>
<option value="Y" th:selected="${searchParams.warden eq 'Y'}">구속</option>
<option value="N" th:selected="${searchParams.warden eq 'N'}">불구속</option>
</select>
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="fieldIvsgtNapoDate" id="fieldIvsgtNapoDate" placeholder="현장조사 나포일시" th:value="${#temporals.format(searchParams.fieldIvsgtNapoDate, 'yyyy-MM-dd')}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="fieldIvsgtReleaseDate" id="fieldIvsgtReleaseDate" placeholder="현장조사 석방일시" th:value="${#temporals.format(searchParams.fieldIvsgtReleaseDate, 'yyyy-MM-dd')}">
</div>
<!--<div class="col-auto">
<input class="form-control form-control-sm" name="pressurizedStartDt" id="pressurizedStartDt" placeholder="압송시작일" th:value="${#temporals.format(searchParams.pressurizedStartDt, 'yyyy-MM-dd')}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="pressurizedEndDt" id="pressurizedEndDt" placeholder="압송종료일" th:value="${#temporals.format(searchParams.pressurizedEndDt, 'yyyy-MM-dd')}">
</div>-->
<div class="col-auto">
<input class="form-control form-control-sm" name="distance" id="distance" placeholder="거리" th:value="${searchParams.distance}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="confiscationFrame" id="confiscationFrame" placeholder="틀" th:value="${searchParams.confiscationFrame}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="confiscationWidth" id="confiscationWidth" placeholder="폭" th:value="${searchParams.confiscationWidth}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="confiscationJo" id="confiscationJo" placeholder="조" th:value="${searchParams.confiscationJo}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="confiscationGae" id="confiscationGae" placeholder="개" th:value="${searchParams.confiscationGae}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="confiscationEtc" id="confiscationEtc" placeholder="기타" th:value="${searchParams.confiscationEtc}">
</div>
</div>
</div> </div>
<div class="col-auto"> <div class="col-auto">
<div class="row justify-content-end"> <input type="submit" class="btn btn-sm btn-primary col-auto" id="searchBtn" value="검색">
<!--<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="사건번호" name="caseNum" th:value="${searchParams.caseNum}">
</div>-->
<input type="submit" class="btn btn-sm btn-primary col-auto" id="searchBtn" value="검색">
</div>
</div> </div>
</div> </div>
</form> </form>
@ -44,8 +331,8 @@
<tr> <tr>
<th rowspan="4">연번</th> <th rowspan="4">연번</th>
<th rowspan="4">나포일시</th> <th rowspan="4">나포일시</th>
<th rowspan="4">위반장소</th>
<th rowspan="4">위반내용</th> <th rowspan="4">위반내용</th>
<th rowspan="4">위반장소</th>
<th colspan="4">침범유형</th> <th colspan="4">침범유형</th>
<th rowspan="3">NLL</th> <th rowspan="3">NLL</th>
<th colspan="7">특수공무집행방해</th> <th colspan="7">특수공무집행방해</th>
@ -116,13 +403,13 @@
<th rowspan="3">중측인수함정</th> <th rowspan="3">중측인수함정</th>
<th rowspan="2"></th> <th rowspan="2"></th>
<th rowspan="2">선장</th> <th rowspan="2">선장</th>
<th rowspan="2">해장</th> <th rowspan="2">해장</th>
<th rowspan="2">기관장</th> <th rowspan="2">기관장</th>
<th rowspan="2">선원</th> <th rowspan="2">선원</th>
<th rowspan="2">구속척수(몰수판결)</th> <th rowspan="2">구속척수(몰수판결)</th>
<th rowspan="2"></th> <th rowspan="2"></th>
<th rowspan="2">선장</th> <th rowspan="2">선장</th>
<th rowspan="2">해장</th> <th rowspan="2">해장</th>
<th rowspan="2">기관장</th> <th rowspan="2">기관장</th>
<th rowspan="2">선원</th> <th rowspan="2">선원</th>
<th rowspan="2">불구속척수</th> <th rowspan="2">불구속척수</th>
@ -224,15 +511,15 @@
<div th:text="${crackdownStatus.napoSeaPointDetail}"></div> <div th:text="${crackdownStatus.napoSeaPointDetail}"></div>
</td> </td>
<th:block th:each="commonCode:${session.commonCode.get('IST')}"> <th:block th:each="commonCode:${session.commonCode.get('IST')}">
<td th:if="${crackdownStatus.invasionType ne null && crackdownStatus.invasionType eq 'IST001' && crackdownStatus.invasionType eq commonCode.itemCd}" th:text="1"></td> <td th:if="${crackdownStatus.invasionType ne null && crackdownStatus.invasionType eq commonCode.itemCd}" th:text="1"></td>
<td th:if="${crackdownStatus.invasionType ne commonCode.itemCd}" th:text="0"></td> <td th:if="${crackdownStatus.invasionType ne commonCode.itemCd}" th:text="0"></td>
</th:block> </th:block>
<td th:text="${crackdownStatus.nll eq 'Y' ? 1 : 0}"></td> <td th:text="${crackdownStatus.nll eq 'Y' ? 1 : 0}"></td>
<td th:text="${crackdownStatus.personDamageCnt ne 0 && crackdownStatus.personDamageAmount ne 0 ? 1 : 0}"></td> <td th:text="${crackdownStatus.obstrExspdCnt}"></td>
<td th:text="${crackdownStatus.personDamageCnt}"></td> <td th:text="${crackdownStatus.personDamageCnt}"></td>
<td th:text="${crackdownStatus.personDamageAmount}"></td> <td th:text="${crackdownStatus.personDamageAmount}"></td>
<td th:text="${crackdownStatus.personDamageDetail}"></td> <td th:text="${crackdownStatus.personDamageDetail}"></td>
<td th:text="${crackdownStatus.materialDamageCnt ne 0 && crackdownStatus.materialDamageAmount ne 0 ? 1 : 0}"></td> <td th:text="${crackdownStatus.materialDamageCnt}"></td>
<td th:text="${crackdownStatus.materialDamageAmount}"></td> <td th:text="${crackdownStatus.materialDamageAmount}"></td>
<td th:text="${crackdownStatus.materialDamageDetail}"></td> <td th:text="${crackdownStatus.materialDamageDetail}"></td>
<th:block th:each="commonCode:${session.commonCode.get('ATA')}"> <th:block th:each="commonCode:${session.commonCode.get('ATA')}">
@ -346,35 +633,6 @@
<button class="btn btn-sm btn-primary col-auto" id="cdsDownExcel">엑셀 다운로드</button> <button class="btn btn-sm btn-primary col-auto" id="cdsDownExcel">엑셀 다운로드</button>
<button class="btn btn-sm btn-primary col-auto" id="crackdownStatusAddBtn">등록</button> <button class="btn btn-sm btn-primary col-auto" id="crackdownStatusAddBtn">등록</button>
</div> </div>
<!-- 페이징 -->
<div class="row justify-content-center">
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination">
<th:block th:if="${searchParams.pageIndex>3}">
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)-3}">
<a class="page-link" href="#" aria-label="Previous">
<span aria-hidden="true">&laquo;</span>
</a>
</li>
</th:block>
<th:block th:each="num : ${#numbers.sequence(searchParams.startNum, searchParams.endNum)}">
<li class="page-item" th:data-pageindex="${num}" th:classappend="${searchParams.pageIndex eq num?'active':''}">
<a class="page-link" href="#" th:text="${num}"></a>
</li>
</th:block>
<th:block th:if="${searchParams.maxNum>searchParams.endNum+2}">
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)+3}">
<a class="page-link" href="#" aria-label="Next">
<span aria-hidden="true">&raquo;</span>
</a>
</li>
</th:block>
</ul>
</nav>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>

View File

@ -35,12 +35,6 @@
<option value="N" th:selected="${crackdownStatus.nll == 'N'}">X</option> <option value="N" th:selected="${crackdownStatus.nll == 'N'}">X</option>
</select> </select>
</div> </div>
<label class="col-sm-1 col-form-label text-center">위반장소</label>
<div class="col-sm-2">
<input class="form-control" placeholder="위도" name="napoSeaPointLat" th:value="${crackdownStatus.napoSeaPointLat}">
<input class="form-control" placeholder="경도" name="napoSeaPointLon" th:value="${crackdownStatus.napoSeaPointLon}">
<input class="form-control" placeholder="상세내용" name="napoSeaPointDetail" th:value="${crackdownStatus.napoSeaPointDetail}">
</div>
<div class="col-sm-1"> <div class="col-sm-1">
<label class="col-form-label text-center">위반내용</label> <label class="col-form-label text-center">위반내용</label>
<button type="button" class="btn btn-primary col-auto" id="violationAddBtn">+</button> <button type="button" class="btn btn-primary col-auto" id="violationAddBtn">+</button>
@ -82,6 +76,12 @@
</th:block> </th:block>
</th:block> </th:block>
</div> </div>
<label class="col-sm-1 col-form-label text-center">위반장소</label>
<div class="col-sm-2">
<input class="form-control" placeholder="위도" name="napoSeaPointLat" th:value="${crackdownStatus.napoSeaPointLat}">
<input class="form-control" placeholder="경도" name="napoSeaPointLon" th:value="${crackdownStatus.napoSeaPointLon}">
<input class="form-control" placeholder="상세내용" name="napoSeaPointDetail" th:value="${crackdownStatus.napoSeaPointDetail}">
</div>
<label class="col-sm-1 col-form-label text-center">침범유형</label> <label class="col-sm-1 col-form-label text-center">침범유형</label>
<div class="col-sm-2"> <div class="col-sm-2">
<select class="form-select form-select-sm" name="invasionType"> <select class="form-select form-select-sm" name="invasionType">
@ -388,7 +388,7 @@
<option value="N" th:selected="${crackdownStatus.sailorList ne null && #aggregates.sum(crackdownStatus.sailorList.?[position == 'POS001' && isRestriction == 'N'].![1]) != null}">불구속</option> <option value="N" th:selected="${crackdownStatus.sailorList ne null && #aggregates.sum(crackdownStatus.sailorList.?[position == 'POS001' && isRestriction == 'N'].![1]) != null}">불구속</option>
</select> </select>
</div> </div>
<label class="col-sm-1 col-form-label text-center">해장</label> <label class="col-sm-1 col-form-label text-center">해장</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input type="hidden" name="mateSailorKey" th:value="${crackdownStatus.sailorList ne null ? #aggregates.sum(crackdownStatus.sailorList.?[position == 'POS002'].![sailorKey]) : null}"> <input type="hidden" name="mateSailorKey" th:value="${crackdownStatus.sailorList ne null ? #aggregates.sum(crackdownStatus.sailorList.?[position == 'POS002'].![sailorKey]) : null}">
<select class="form-select form-select-sm" name="mate"> <select class="form-select form-select-sm" name="mate">
@ -440,9 +440,13 @@
<div class="col-sm-2"> <div class="col-sm-2">
<input class="form-control" name="fieldIvsgtReleaseDt" id="fieldIvsgtReleaseDt" th:value="${#temporals.format(crackdownStatus.fieldIvsgtReleaseDt, 'yyyy-MM-dd HH:mm')}"> <input class="form-control" name="fieldIvsgtReleaseDt" id="fieldIvsgtReleaseDt" th:value="${#temporals.format(crackdownStatus.fieldIvsgtReleaseDt, 'yyyy-MM-dd HH:mm')}">
</div> </div>
<label class="col-sm-1 col-form-label text-center">소요시간</label> <!--<label class="col-sm-1 col-form-label text-center">소요시간</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input class="form-control" name="fieldIvsgtTimeTaken" readonly> <input class="form-control" name="fieldIvsgtTimeTaken" readonly>
</div>-->
<label class="col-sm-1 col-form-label text-center">영장청구<br>소요시간</label>
<div class="col-sm-2">
<input class="form-control" name="warrantReqTakeTime">
</div> </div>
</div> </div>
<div class="mb-3 row"> <div class="mb-3 row">
@ -457,10 +461,10 @@
<div class="col-sm-2"> <div class="col-sm-2">
<input class="form-control" name="pressurizedEndDt" id="pressurizedEndDt" th:value="${#temporals.format(crackdownStatus.pressurizedEndDt, 'yyyy-MM-dd HH:mm')}"> <input class="form-control" name="pressurizedEndDt" id="pressurizedEndDt" th:value="${#temporals.format(crackdownStatus.pressurizedEndDt, 'yyyy-MM-dd HH:mm')}">
</div> </div>
<label class="col-sm-1 col-form-label text-center">영장청구<br>소요시간</label> <!--<label class="col-sm-1 col-form-label text-center">압송<br>소요시간</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input class="form-control" name="warrantReqTakeTime" readonly> <input class="form-control" name="pressurizedTimeTaken" readonly>
</div> </div>-->
<label class="col-sm-1 col-form-label text-center">거리</label> <label class="col-sm-1 col-form-label text-center">거리</label>
<div class="col-sm-2"> <div class="col-sm-2">
<input class="form-control" name="distance" th:value="${crackdownStatus.distance}"> <input class="form-control" name="distance" th:value="${crackdownStatus.distance}">

View File

@ -401,7 +401,7 @@
<option value="N" th:selected="${#aggregates.sum(crackdownStatus.sailorList.?[position == 'POS001' && isRestriction == 'N'].![1]) != null}">불구속</option> <option value="N" th:selected="${#aggregates.sum(crackdownStatus.sailorList.?[position == 'POS001' && isRestriction == 'N'].![1]) != null}">불구속</option>
</select> </select>
</div> </div>
<label class="col-sm-1 col-form-label text-center">해장</label> <label class="col-sm-1 col-form-label text-center">해장</label>
<div class="col-sm-2"> <div class="col-sm-2">
<select class="form-select form-select-sm" name="mate"> <select class="form-select form-select-sm" name="mate">
<option value="">선택</option> <option value="">선택</option>

View File

@ -18,20 +18,76 @@
<div class="col-12 card"> <div class="col-12 card">
<div class="card-body"> <div class="card-body">
<form method="get" th:action="@{/faStatistics/processResult}" id="processResultSearchForm"> <form method="get" th:action="@{/faStatistics/processResult}" id="processResultSearchForm">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between pe-3 py-1"> <div class="row justify-content-between pe-3 py-1">
<div class="col-auto"> <div class="col-auto">
<select class="form-select" name="rowCnt" id="rowCnt"> <div class="col-auto">
<th:block th:each="num : ${#numbers.sequence(1,5)}"> <select class="form-select form-select-sm" name="year">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option> <option value="">연도</option>
</th:block> <th:block th:each="year : ${#numbers.sequence(2020, 2030)}">
</select> <option th:value="${year + '-01-01'}" th:text="${year}" th:selected="${searchParams.year eq year}"></option>
</th:block>
</select>
</div>
</div> </div>
<div class="col-auto"> <div class="col-10">
<div class="row justify-content-end"> <div class="row justify-content-end">
<!--<div class="col-auto"> <div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="사건번호" name="caseNum" th:value="${searchParams.caseNum}"> <input type="text" class="form-control form-control-sm" placeholder="사건번호" name="sailorNameKr" th:value="${searchParams.caseNum}">
</div>--> </div>
<div class="col-auto">
<select class="form-select form-select-sm" name="crackdownPolice" id="crackdownPolice">
<option value="">사건담당경찰서</option>
<th:block th:each="commonCode:${session.commonCode.get('CPO')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${searchParams.crackdownPolice eq commonCode.itemCd}"></option>
</th:block>
<option value="etc" th:selected="${searchParams.crackdownPolice ne '' && searchParams.crackdownPolice ne null && !#strings.contains(searchParams.crackdownPolice, 'CPO')}">직접입력</option>
</select>
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="boatNameKr" id="boatNameKr" placeholder="피의자(선박명)" th:value="${searchParams.boatNameKr}">
</div>
<div class="col-auto">
<select class="form-select form-select-sm violation" name="violation">
<option value="">위반내용</option>
<th:block th:each="commonCode:${session.commonCode.get('VT')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq searchParams.violation}"></option>></option>
</th:block>
</select>
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="sentencingCourt" id="sentencingCourt" placeholder="선고법원" th:value="${searchParams.sentencingCourt}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="sentencingDetail" id="sentencingDetail" placeholder="선고내용" th:value="${searchParams.sentencingDetail}">
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="executionDetail" id="executionDetail">
<option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('PR')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq searchParams.executionDetail}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="returnDt" id="returnDt" placeholder="환부일" th:value="${#temporals.format(searchParams.returnDt, 'yyyy-MM-dd')}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="consignmentStartDt" id="consignmentStartDt" placeholder="위탁시작일" th:value="${#temporals.format(searchParams.consignmentStartDt, 'yyyy-MM-dd')}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="consignmentEndDt" id="consignmentEndDt" placeholder="위탁종료일" th:value="${#temporals.format(searchParams.consignmentEndDt, 'yyyy-MM-dd')}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="confiscationDt" id="confiscationDt" placeholder="몰수확정일" th:value="${#temporals.format(searchParams.confiscationDt, 'yyyy-MM-dd')}">
</div>
<div class="col-auto">
<input class="form-control form-control-sm" name="boatDisposalDt" id="boatDisposalDt" placeholder="폐선일" th:value="${#temporals.format(searchParams.boatDisposalDt, 'yyyy-MM-dd')}">
</div>
</div>
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary col-auto" id="searchBtn" value="검색"> <input type="submit" class="btn btn-sm btn-primary col-auto" id="searchBtn" value="검색">
</div> </div>
</div> </div>
@ -50,8 +106,8 @@
<th>선고법원</th> <th>선고법원</th>
<th>집행내용</th> <th>집행내용</th>
<th>환부일</th> <th>환부일</th>
<th>위탁종료일</th>
<th>위탁시작일</th> <th>위탁시작일</th>
<th>위탁종료일</th>
<th>몰수확정일</th> <th>몰수확정일</th>
<th>폐선일(인계한 날짜)</th> <th>폐선일(인계한 날짜)</th>
<th>최종수정일</th> <th>최종수정일</th>
@ -111,35 +167,6 @@
<button class="btn btn-sm btn-primary col-auto" id="processResultDownExcel">엑셀 다운로드</button> <button class="btn btn-sm btn-primary col-auto" id="processResultDownExcel">엑셀 다운로드</button>
<button class="btn btn-sm btn-primary col-auto" id="processResultAddBtn">등록</button> <button class="btn btn-sm btn-primary col-auto" id="processResultAddBtn">등록</button>
</div> </div>
<!-- 페이징 -->
<div class="row justify-content-center">
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination">
<th:block th:if="${searchParams.pageIndex>3}">
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)-3}">
<a class="page-link" href="#" aria-label="Previous">
<span aria-hidden="true">&laquo;</span>
</a>
</li>
</th:block>
<th:block th:each="num : ${#numbers.sequence(searchParams.startNum, searchParams.endNum)}">
<li class="page-item" th:data-pageindex="${num}" th:classappend="${searchParams.pageIndex eq num?'active':''}">
<a class="page-link" href="#" th:text="${num}"></a>
</li>
</th:block>
<th:block th:if="${searchParams.maxNum>searchParams.endNum+2}">
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)+3}">
<a class="page-link" href="#" aria-label="Next">
<span aria-hidden="true">&raquo;</span>
</a>
</li>
</th:block>
</ul>
</nav>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>

View File

@ -18,20 +18,109 @@
<div class="col-12 card"> <div class="col-12 card">
<div class="card-body"> <div class="card-body">
<form method="get" th:action="@{/faStatistics/sailor}" id="sailorSearchForm"> <form method="get" th:action="@{/faStatistics/sailor}" id="sailorSearchForm">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between pe-3 py-1"> <div class="row justify-content-between pe-3 py-1">
<div class="col-auto"> <div class="col-auto">
<select class="form-select" name="rowCnt" id="rowCnt"> <div class="col-auto">
<th:block th:each="num : ${#numbers.sequence(1,5)}"> <select class="form-select form-select-sm" name="year">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option> <option value="">연도</option>
</th:block> <th:block th:each="year : ${#numbers.sequence(2020, 2030)}">
</select> <option th:value="${year + '-01-01'}" th:text="${year}" th:selected="${searchParams.year eq year}"></option>
</th:block>
</select>
</div>
</div> </div>
<div class="col-auto"> <div class="col-10">
<div class="row justify-content-end"> <div class="row justify-content-end">
<!--<div class="col-auto"> <div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="사건번호" name="caseNum" th:value="${searchParams.caseNum}"> <select class="form-select form-select-sm" name="crackdownPolice">
</div>--> <option value="">단속경찰서</option>
<th:block th:each="commonCode:${session.commonCode.get('CPO')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq searchParams.crackdownPolice}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="crackdownBoat">
<option value="">단속함정</option>
<th:block th:each="num : ${#numbers.sequence(1,#lists.size(session.commonCode.get('CPO')))}">
<th:block th:if="${'CPO'+num == searchParams.crackdownPolice}" th:each="commonCode:${session.commonCode.get('CPO'+num)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${searchParams.crackdownBoat eq commonCode.itemCd}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="선원명(한글)" name="sailorNameKr" th:value="${searchParams.sailorNameKr}">
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="residence">
<option value="">거주지</option>
<th:block th:each="commonCode:${session.commonCode.get('RSC')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq searchParams.residence}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="education">
<option value="">학력</option>
<th:block th:each="commonCode:${session.commonCode.get('SED')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq searchParams.education}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="position">
<option value="">선박 내 직책</option>
<th:block th:each="commonCode:${session.commonCode.get('POS')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq searchParams.position}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="career">
<option value="">승선경력</option>
<th:block th:each="commonCode:${session.commonCode.get('BE')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq searchParams.career}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="similarCriminalHistory">
<option value="">동종 범죄경력</option>
<option value="1" th:selected="${searchParams.similarCriminalHistory == 1}">1건</option>
<option value="2" th:selected="${searchParams.similarCriminalHistory == 2}">2건</option>
<option value="3" th:selected="${searchParams.similarCriminalHistory == 3}">3건</option>
<option value="4" th:selected="${searchParams.similarCriminalHistory == 4}">4이상</option>
<option value="0" th:selected="${searchParams.similarCriminalHistory == 0}">없음</option>
</select>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="heterogeneousCriminalHistory">
<option value="">이종 범죄경력</option>
<option value="1" th:selected="${searchParams.heterogeneousCriminalHistory == 1}">1건</option>
<option value="2" th:selected="${searchParams.heterogeneousCriminalHistory == 2}">2건</option>
<option value="3" th:selected="${searchParams.heterogeneousCriminalHistory == 3}">3건</option>
<option value="4" th:selected="${searchParams.heterogeneousCriminalHistory == 4}">4이상</option>
<option value="0" th:selected="${searchParams.heterogeneousCriminalHistory == 0}">없음</option>
</select>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="arrestHistory">
<option value="">검거이력</option>
<option value="1" th:selected="${searchParams.arrestHistory == 1}">1건</option>
<option value="2" th:selected="${searchParams.arrestHistory == 2}">2건</option>
<option value="3" th:selected="${searchParams.arrestHistory == 3}">3건</option>
<option value="4" th:selected="${searchParams.arrestHistory == 4}">4이상</option>
<option value="0" th:selected="${searchParams.arrestHistory == 0}">없음</option>
</select>
</div>
</div>
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary col-auto" id="searchBtn" value="검색"> <input type="submit" class="btn btn-sm btn-primary col-auto" id="searchBtn" value="검색">
</div> </div>
</div> </div>
@ -187,11 +276,11 @@
<td th:text="${sailor.position eq 'POS003' ? 1 : 0}"></td> <td th:text="${sailor.position eq 'POS003' ? 1 : 0}"></td>
<td th:text="${sailor.position eq 'POS005' ? 1 : 0}"></td> <td th:text="${sailor.position eq 'POS005' ? 1 : 0}"></td>
<td th:text="${sailor.position eq 'POS006' ? 1 : 0}"></td> <td th:text="${sailor.position eq 'POS006' ? 1 : 0}"></td>
<td th:text="${sailor.education == 'BE001' ? 1 : 0}"></td> <td th:text="${sailor.career == 'BE001' ? 1 : 0}"></td>
<td th:text="${sailor.education == 'BE002' ? 1 : 0}"></td> <td th:text="${sailor.career == 'BE002' ? 1 : 0}"></td>
<td th:text="${sailor.education == 'BE003' ? 1 : 0}"></td> <td th:text="${sailor.career == 'BE003' ? 1 : 0}"></td>
<td th:text="${sailor.education == 'BE004' ? 1 : 0}"></td> <td th:text="${sailor.career == 'BE004' ? 1 : 0}"></td>
<td th:text="${sailor.education == 'BE005' ? 1 : 0}"></td> <td th:text="${sailor.career == 'BE005' ? 1 : 0}"></td>
<td th:text="${sailor.similarCriminalHistory == 1 ? 1 : 0}"></td> <td th:text="${sailor.similarCriminalHistory == 1 ? 1 : 0}"></td>
<td th:text="${sailor.similarCriminalHistory == 2 ? 1 : 0}"></td> <td th:text="${sailor.similarCriminalHistory == 2 ? 1 : 0}"></td>
<td th:text="${sailor.similarCriminalHistory == 3 ? 1 : 0}"></td> <td th:text="${sailor.similarCriminalHistory == 3 ? 1 : 0}"></td>
@ -221,35 +310,6 @@
<button class="btn btn-sm btn-primary col-auto" id="sailorDownExcel">엑셀 다운로드</button> <button class="btn btn-sm btn-primary col-auto" id="sailorDownExcel">엑셀 다운로드</button>
<button class="btn btn-sm btn-primary col-auto" id="sailorAddBtn">등록</button> <button class="btn btn-sm btn-primary col-auto" id="sailorAddBtn">등록</button>
</div> </div>
<!-- 페이징 -->
<div class="row justify-content-center">
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination">
<th:block th:if="${searchParams.pageIndex>3}">
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)-3}">
<a class="page-link" href="#" aria-label="Previous">
<span aria-hidden="true">&laquo;</span>
</a>
</li>
</th:block>
<th:block th:each="num : ${#numbers.sequence(searchParams.startNum, searchParams.endNum)}">
<li class="page-item" th:data-pageindex="${num}" th:classappend="${searchParams.pageIndex eq num?'active':''}">
<a class="page-link" href="#" th:text="${num}"></a>
</li>
</th:block>
<th:block th:if="${searchParams.maxNum>searchParams.endNum+2}">
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)+3}">
<a class="page-link" href="#" aria-label="Next">
<span aria-hidden="true">&raquo;</span>
</a>
</li>
</th:block>
</ul>
</nav>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>