게시판 디자인 작업중. 관리자메뉴 남음.

강석 최 2022-11-29 18:01:22 +09:00
parent cbce941558
commit 819955e441
27 changed files with 2556 additions and 2564 deletions

View File

@ -24,109 +24,107 @@ import java.util.List;
@RequestMapping("/faStatistics")
public class CrackdownStatusController {
private final AuthMgtService authMgtService;
private final CrackdownStatusService crackdownStatusService;
private final ViolationRepository violationRepository;
private final ProcessResultRepository processResultRepository;
private final FishingBoatRepository fishingBoatRepository;
private final SailorRepository sailorRepository;
private final AuthMgtService authMgtService;
private final CrackdownStatusService crackdownStatusService;
private final ViolationRepository violationRepository;
private final ProcessResultRepository processResultRepository;
private final FishingBoatRepository fishingBoatRepository;
private final SailorRepository sailorRepository;
@RequestMapping("/crackdownStatus")
public ModelAndView crackdownStatus(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus) {
ModelAndView mav = new ModelAndView("faStatistics/crackdownStatus/crackdownStatus");
@RequestMapping("/crackdownStatus")
public ModelAndView crackdownStatus(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus) {
ModelAndView mav = new ModelAndView("faStatistics/crackdownStatus/crackdownStatus");
//메뉴권한 확인
String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/faStatistics/crackdownStatus").get(0).getAccessAuth();
mav.addObject("accessAuth", accessAuth);
//메뉴권한 확인
String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/faStatistics/crackdownStatus").get(0).getAccessAuth();
mav.addObject("accessAuth", accessAuth);
List<CrackdownStatus> crackdownStatusList = crackdownStatusService.selectCrackdownStatusList(crackdownStatus);
for (CrackdownStatus cds:crackdownStatusList) {
cds.setViolationList(violationRepository.findByFbKey(cds.getFbKey()));
cds.setProcessResult(processResultRepository.findByCdsKey(cds.getCdsKey()).orElse(new ProcessResult()));
cds.setFishingBoat(fishingBoatRepository.findByCdsKey(cds.getCdsKey()).orElse(new FishingBoat()));
cds.setSailorList(sailorRepository.findByFbKey(cds.getFbKey()));
}
mav.addObject("crackdownStatusList", crackdownStatusList);
mav.addObject("searchParams", crackdownStatus);
return mav;
crackdownStatus.setYear(((Integer)LocalDateTime.now().getYear()).toString());
List<CrackdownStatus> crackdownStatusList = crackdownStatusService.selectCrackdownStatusList(crackdownStatus);
for (CrackdownStatus cds:crackdownStatusList) {
cds.setViolationList(violationRepository.findByFbKey(cds.getFbKey()));
cds.setProcessResult(processResultRepository.findByCdsKey(cds.getCdsKey()).orElse(new ProcessResult()));
cds.setFishingBoat(fishingBoatRepository.findByCdsKey(cds.getCdsKey()).orElse(new FishingBoat()));
cds.setSailorList(sailorRepository.findByFbKey(cds.getFbKey()));
}
@GetMapping("/crackdownStatus/crackdownStatusViewModal")
public ModelAndView crackdownStatusViewModal(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus){
ModelAndView mav = new ModelAndView("faStatistics/crackdownStatus/crackdownStatusViewModal");
crackdownStatus = crackdownStatusService.selectCrackdownStatus(crackdownStatus.getCdsKey());
crackdownStatus.setFishingBoat(fishingBoatRepository.findByCdsKey(crackdownStatus.getCdsKey()).orElse(null));
crackdownStatus.setProcessResult(processResultRepository.findByCdsKey(crackdownStatus.getCdsKey()).orElse(null));
crackdownStatus.setViolationList(violationRepository.findByFbKey(crackdownStatus.getFishingBoat().getFbKey()));
crackdownStatus.setSailorList(sailorRepository.findByFbKey(crackdownStatus.getFishingBoat().getFbKey()));
mav.addObject("crackdownStatusList", crackdownStatusList);
mav.addObject("searchParams", crackdownStatus);
return mav;
}
mav.addObject("crackdownStatus", crackdownStatus);
mav.addObject("userSeq",loginUser.getUserSeq());
//메뉴권한 확인
mav.addObject("accessAuth", authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/faStatistics/crackdownStatus").get(0).getAccessAuth());
return mav;
@GetMapping("/crackdownStatus/crackdownStatusViewModal")
public ModelAndView crackdownStatusViewModal(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus){
ModelAndView mav = new ModelAndView("faStatistics/crackdownStatus/crackdownStatusViewModal");
crackdownStatus = crackdownStatusService.selectCrackdownStatus(crackdownStatus.getCdsKey());
crackdownStatus.setFishingBoat(fishingBoatRepository.findByCdsKey(crackdownStatus.getCdsKey()).orElse(null));
crackdownStatus.setProcessResult(processResultRepository.findByCdsKey(crackdownStatus.getCdsKey()).orElse(null));
crackdownStatus.setViolationList(violationRepository.findByFbKey(crackdownStatus.getFishingBoat().getFbKey()));
crackdownStatus.setSailorList(sailorRepository.findByFbKey(crackdownStatus.getFishingBoat().getFbKey()));
mav.addObject("crackdownStatus", crackdownStatus);
mav.addObject("userSeq",loginUser.getUserSeq());
//메뉴권한 확인
mav.addObject("accessAuth", authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/faStatistics/crackdownStatus").get(0).getAccessAuth());
return mav;
}
@GetMapping("/crackdownStatus/crackdownStatusEditModal")
public ModelAndView crackdownStatusEditModal(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus){
ModelAndView mav = new ModelAndView("faStatistics/crackdownStatus/crackdownStatusEditModal");
if(crackdownStatus.getCdsKey()!=null){
crackdownStatus = crackdownStatusService.selectCrackdownStatus(crackdownStatus.getCdsKey());
crackdownStatus.setFishingBoat(fishingBoatRepository.findByCdsKey(crackdownStatus.getCdsKey()).orElse(null));
crackdownStatus.setProcessResult(processResultRepository.findByCdsKey(crackdownStatus.getCdsKey()).orElse(null));
crackdownStatus.setViolationList(violationRepository.findByFbKey(crackdownStatus.getFishingBoat().getFbKey()));
crackdownStatus.setSailorList(sailorRepository.findByFbKey(crackdownStatus.getFishingBoat().getFbKey()));
}else{
crackdownStatus.setWrtOrgan(loginUser.getOgCd());
crackdownStatus.setWrtPart(loginUser.getOfcCd());
crackdownStatus.setWrtUserGrd(loginUser.getGroupCd());
crackdownStatus.setWrtOrgan(loginUser.getOgCd());
crackdownStatus.setWrtUserNm(loginUser.getUserNm());
crackdownStatus.setWrtDt(LocalDateTime.now());
crackdownStatus.setFishingBoat(new FishingBoat());
crackdownStatus.getFishingBoat().setWrtOrgan(loginUser.getOgCd());
crackdownStatus.getFishingBoat().setWrtUserNm(loginUser.getUserNm());
crackdownStatus.getFishingBoat().setWrtDt(LocalDateTime.now());
crackdownStatus.setProcessResult(new ProcessResult());
crackdownStatus.getProcessResult().setWrtOrgan(loginUser.getOgCd());
crackdownStatus.getProcessResult().setWrtUserNm(loginUser.getUserNm());
crackdownStatus.getProcessResult().setWrtDt(LocalDateTime.now());
}
mav.addObject("crackdownStatus", crackdownStatus);
return mav;
}
@GetMapping("/crackdownStatus/crackdownStatusEditModal")
public ModelAndView crackdownStatusEditModal(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus){
ModelAndView mav = new ModelAndView("faStatistics/crackdownStatus/crackdownStatusEditModal");
if(crackdownStatus.getCdsKey()!=null){
crackdownStatus = crackdownStatusService.selectCrackdownStatus(crackdownStatus.getCdsKey());
crackdownStatus.setFishingBoat(fishingBoatRepository.findByCdsKey(crackdownStatus.getCdsKey()).orElse(null));
crackdownStatus.setProcessResult(processResultRepository.findByCdsKey(crackdownStatus.getCdsKey()).orElse(null));
crackdownStatus.setViolationList(violationRepository.findByFbKey(crackdownStatus.getFishingBoat().getFbKey()));
crackdownStatus.setSailorList(sailorRepository.findByFbKey(crackdownStatus.getFishingBoat().getFbKey()));
}else{
crackdownStatus.setWrtOrgan(loginUser.getOgCd());
crackdownStatus.setWrtPart(loginUser.getOfcCd());
crackdownStatus.setWrtUserGrd(loginUser.getGroupCd());
crackdownStatus.setWrtOrgan(loginUser.getOgCd());
crackdownStatus.setWrtUserNm(loginUser.getUserNm());
crackdownStatus.setWrtDt(LocalDateTime.now());
crackdownStatus.setFishingBoat(new FishingBoat());
crackdownStatus.getFishingBoat().setWrtOrgan(loginUser.getOgCd());
crackdownStatus.getFishingBoat().setWrtUserNm(loginUser.getUserNm());
crackdownStatus.getFishingBoat().setWrtDt(LocalDateTime.now());
crackdownStatus.setProcessResult(new ProcessResult());
crackdownStatus.getProcessResult().setWrtOrgan(loginUser.getOgCd());
crackdownStatus.getProcessResult().setWrtUserNm(loginUser.getUserNm());
crackdownStatus.getProcessResult().setWrtDt(LocalDateTime.now());
}
mav.addObject("crackdownStatus", crackdownStatus);
return mav;
}
@GetMapping("/crackdownStatus/crackdownStatusHistoryViewModal")
public ModelAndView crackdownStatusHistoryViewModal(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus){
ModelAndView mav = new ModelAndView("faStatistics/crackdownStatus/crackdownStatusHistoryViewModal");
List<CrackdownStatusVersion> crackdownStatusVersionList = crackdownStatusService.selectCrackdownStatusVersionList(crackdownStatus.getCdsKey());
@GetMapping("/crackdownStatus/crackdownStatusHistoryViewModal")
public ModelAndView crackdownStatusHistoryViewModal(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus){
ModelAndView mav = new ModelAndView("faStatistics/crackdownStatus/crackdownStatusHistoryViewModal");
List<CrackdownStatusVersion> crackdownStatusVersionList = crackdownStatusService.selectCrackdownStatusVersionList(crackdownStatus.getCdsKey());
mav.addObject("crackdownStatusVersionList", crackdownStatusVersionList);
mav.addObject("crackdownStatus", crackdownStatus);
return mav;
}
mav.addObject("crackdownStatusVersionList", crackdownStatusVersionList);
mav.addObject("crackdownStatus", crackdownStatus);
return mav;
}
@GetMapping("/crackdownStatus/crackdownStatusHistoryDetail")
public ModelAndView crackdownStatusHistoryDetail(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatusVersion crackdownStatusVersion){
ModelAndView mav = new ModelAndView("faStatistics/crackdownStatus/crackdownStatusHistoryDetail");
@GetMapping("/crackdownStatus/crackdownStatusHistoryDetail")
public ModelAndView crackdownStatusHistoryDetail(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatusVersion crackdownStatusVersion){
ModelAndView mav = new ModelAndView("faStatistics/crackdownStatus/crackdownStatusHistoryDetail");
crackdownStatusVersion = crackdownStatusService.selectCrackdownStatusVersion(crackdownStatusVersion.getVersionNo(), crackdownStatusVersion.getCdsKey());
crackdownStatusVersion = crackdownStatusService.selectCrackdownStatusVersion(crackdownStatusVersion.getVersionNo(), crackdownStatusVersion.getCdsKey());
mav.addObject("crackdownStatusVersion", crackdownStatusVersion);
return mav;
}
mav.addObject("crackdownStatusVersion", crackdownStatusVersion);
return mav;
}
@PostMapping("/crackdownStatus/saveCrackdownStatus")
public Integer saveCrackdownStatus(@AuthenticationPrincipal UserInfo loginUser,
CrackdownStatus crackdownStatus,
FishingBoat fishingBoat,
ProcessResult processResult){
crackdownStatus.setWrtUserSeq(loginUser.getUserSeq());
crackdownStatus.setFishingBoat(fishingBoat);
crackdownStatus.setProcessResult(processResult);
return crackdownStatusService.saveCrackdownStatus(crackdownStatus);
}
@PostMapping("/crackdownStatus/saveCrackdownStatus")
public Integer saveCrackdownStatus(@AuthenticationPrincipal UserInfo loginUser,
CrackdownStatus crackdownStatus,
FishingBoat fishingBoat,
ProcessResult processResult){
crackdownStatus.setWrtUserSeq(loginUser.getUserSeq());
crackdownStatus.setFishingBoat(fishingBoat);
crackdownStatus.setProcessResult(processResult);
return crackdownStatusService.saveCrackdownStatus(crackdownStatus);
}
}

View File

@ -114,7 +114,7 @@
inner join hash_tag b on a.tag_key = b.tag_key
where a.affair_key = #{affairKey}
</select>
<sql id="searchStatistics">
<if test='userNm != null and userNm != ""'>
and wrt_user_nm like '%'||#{userNm}||'%'
@ -129,7 +129,7 @@
and ab.affair_key in (
select affair_key
from affair_rating ar2
inner join organ_config oc2
inner join organ_config oc2
on ar2.rating_organ = oc2.organ_cd
<where>
<if test='rating != null and rating != ""'>
@ -149,7 +149,7 @@
)
</if>
</sql>
<sql id="statisticsCategory1">
<choose>
<when test='category1 != null and category1 != ""'>
@ -163,7 +163,7 @@
</otherwise>
</choose>
</sql>
<sql id="statisticsCategory2">
<choose>
<when test='category2 != null and category2 != ""'>
@ -177,7 +177,7 @@
</otherwise>
</choose>
</sql>
<sql id="statisticsCategory3">
<choose>
<when test='category3 != null and category3 != ""'>
@ -191,7 +191,7 @@
</otherwise>
</choose>
</sql>
<sql id="statisticsCategory4">
<choose>
<when test='category4 != null and category4 != ""'>
@ -205,7 +205,7 @@
</otherwise>
</choose>
</sql>
<select id="selectStatusTotal" resultType="TypeStatistics" parameterType="TypeStatistics">
select item_cd as wrt_organ,
item_value,
@ -247,7 +247,7 @@
and ab.affair_key in (
select affair_key
from affair_rating ar2
inner join organ_config oc2
inner join organ_config oc2
on ar2.rating_organ = oc2.organ_cd
<where>
<if test='rating != null and rating != ""'>
@ -290,11 +290,11 @@
#{item}
</foreach>
</if>
group by wrt_organ)b on
group by wrt_organ)b on
a.item_cd = b.wrt_organ
order by wrt_organ asc
</select>
<select id="selecType1ListCnt" resultType="TypeStatistics" parameterType="TypeStatistics">
select b.item_cd as wrt_organ ,
b.item_value,
@ -306,7 +306,7 @@
from code_mgt
where category_cd = 'DC01'
<include refid="statisticsCategory1"></include>
)a left join
)a left join
(select item_cd,
item_value
from code_mgt
@ -319,7 +319,7 @@
</foreach>
</if>
order by item_cd asc) b on 1=1
left outer join
left outer join
(select wrt_organ,
affair_type1 as affair_type,
count(*) as cnt
@ -328,11 +328,11 @@
where ab.affair_key = ar.affair_key
and (ar.organ_up != 'T' or ar.organ_up is null)
<include refid="searchStatistics"></include>
group by wrt_organ,affair_type1) c
group by wrt_organ,affair_type1) c
on a.item_cd = c.affair_type and b.item_cd = c.wrt_organ
order by wrt_organ,affair_type asc
</select>
<select id="selecType2ListCnt" resultType="TypeStatistics" parameterType="TypeStatistics">
select b.item_cd as wrt_organ ,
b.item_value,
@ -344,7 +344,7 @@
from code_mgt
where category_cd = 'DC02'
<include refid="statisticsCategory2"></include>
)a left join
)a left join
(select item_cd,
item_value
from code_mgt
@ -357,7 +357,7 @@
</foreach>
</if>
order by item_cd asc) b on 1=1
left outer join
left outer join
(select wrt_organ,
affair_type2 as affair_type,
count(*) as cnt
@ -366,11 +366,11 @@
where ab.affair_key = ar.affair_key
and (ar.organ_up != 'T' or ar.organ_up is null)
<include refid="searchStatistics"></include>
group by wrt_organ,affair_type2) c
group by wrt_organ,affair_type2) c
on a.item_cd = c.affair_type and b.item_cd = c.wrt_organ
order by wrt_organ,affair_type asc
</select>
<select id="selecType3ListCnt" resultType="TypeStatistics" parameterType="TypeStatistics">
select b.item_cd as wrt_organ ,
b.item_value,
@ -382,7 +382,7 @@
from code_mgt
where category_cd = 'DC03'
<include refid="statisticsCategory3"></include>
)a left join
)a left join
(select item_cd,
item_value
from code_mgt
@ -395,7 +395,7 @@
</foreach>
</if>
order by item_cd asc) b on 1=1
left outer join
left outer join
(select wrt_organ,
affair_type3 as affair_type,
count(*) as cnt
@ -404,11 +404,11 @@
where ab.affair_key = ar.affair_key
and (ar.organ_up != 'T' or ar.organ_up is null)
<include refid="searchStatistics"></include>
group by wrt_organ,affair_type3) c
group by wrt_organ,affair_type3) c
on a.item_cd = c.affair_type and b.item_cd = c.wrt_organ
order by wrt_organ,affair_type asc
</select>
<select id="selecType4ListCnt" resultType="TypeStatistics" parameterType="TypeStatistics">
select b.item_cd as wrt_organ ,
b.item_value,
@ -420,7 +420,7 @@
from code_mgt
where category_cd = 'DC04'
<include refid="statisticsCategory4"></include>
)a left join
)a left join
(select item_cd,
item_value
from code_mgt
@ -433,7 +433,7 @@
</foreach>
</if>
order by item_cd asc) b on 1=1
left outer join
left outer join
(select wrt_organ,
affair_type4 as affair_type,
count(*) as cnt
@ -442,26 +442,26 @@
where ab.affair_key = ar.affair_key
and (ar.organ_up != 'T' or ar.organ_up is null)
<include refid="searchStatistics"></include>
group by wrt_organ,affair_type4) c
group by wrt_organ,affair_type4) c
on a.item_cd = c.affair_type and b.item_cd = c.wrt_organ
order by wrt_organ,affair_type asc
</select>
<sql id="raitingSearch">
<if test='userNm != null and userNm != ""'>
and wrt_user_nm like '%'||#{userNm}||'%'
</if>
<if test='startDate != null and startDate != ""'>
<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>
<if test='rating != null and rating != "" or sangbo != null and sangbo != ""'>
and ab.affair_key in (
select affair_key
from affair_rating ar2
inner join organ_config oc2
inner join organ_config oc2
on ar2.rating_organ = oc2.organ_cd
<where>
<if test='rating != null and rating != ""'>
@ -505,7 +505,7 @@
</foreach>
</if>
</sql>
<select id="selectRatingStatusTotal" resultType="TypeStatistics" parameterType="TypeStatistics">
select item_cd as wrt_organ,
item_value,
@ -530,17 +530,17 @@
) a
left outer join
(select ab.wrt_organ,
count(*) as cnt
count(*) as cnt
from affair_board ab,
affair_rating ar
where ab.affair_key = ar.affair_key
and (ar.organ_up != 'T' or ar.organ_up is null)
<include refid="raitingSearch"></include>
group by ab.wrt_organ) c
on a.item_cd = c.wrt_organ
on a.item_cd = c.wrt_organ
order by item_cd asc
</select>
<select id="selectSangboTotal" resultType="TypeStatistics" parameterType="TypeStatistics">
select item_cd as wrt_organ,
item_value,
@ -551,8 +551,8 @@
item_value
from code_mgt
where category_cd = 'OG'
and use_chk = 'T') a left join
(select organ_type
and use_chk = 'T') a left join
(select organ_type
from organ_config
<where>
<choose>
@ -571,7 +571,7 @@
left outer join
(select ab.wrt_organ,
oc.organ_type,
count(*) as cnt
count(*) as cnt
from affair_board ab,
affair_rating ar,
organ_config oc
@ -583,7 +583,7 @@
on a.item_cd = c.wrt_organ and b.organ_type = c.organ_type
order by item_cd, affairType asc
</select>
<select id="selectArrCntList" resultType="TypeStatistics" parameterType="TypeStatistics">
select a.item_cd as wrt_organ,
b.item_cd as affairType,
@ -593,9 +593,9 @@
item_value
from code_mgt
where category_cd = 'OG'
and use_chk = 'T') a left join
and use_chk = 'T') a left join
(select item_cd
from code_mgt
from code_mgt
where category_cd='AAR'
<choose>
<when test='rating != null and rating != ""'>
@ -609,18 +609,18 @@
</otherwise>
</choose>
) b on 1=1
left outer join
left outer join
(select ab.wrt_organ,
ar.affair_rate,
count(*) as cnt
count(*) as cnt
from affair_board ab,
affair_rating ar
where ab.affair_key = ar.affair_key
and (ar.organ_up != 'T' or ar.organ_up is null)
<include refid="raitingSearch"></include>
group by ab.wrt_organ,ar.affair_rate) c
group by ab.wrt_organ,ar.affair_rate) c
on c.wrt_organ = a.item_cd and c.affair_rate = b.item_cd
order by wrt_organ,affairType asc
</select>
</mapper>

View File

@ -4,118 +4,101 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dbnt.faisp.main.translator.mapper.TranslatorMapper">
<select id="selectTranslatorList" resultType="Translator" parameterType="Translator">
select a.translator_key,
version_no,
c.item_value as ogdp1,
d.item_value as tr_lang,
tr_career,
tr_name,
e.item_value as tr_sex,
tr_age,
f.item_value as tr_nny,
g.item_value as tr_edu,
tr_cft,
h.item_value as tr_visa,
dml_yn,
apt_dt,
tr_phone
from translator_info a
inner join (select translator_key, max(version_no) as lastVer
from translator_info
group by translator_key) b
on a.translator_key =b.translator_key and a.version_no = b.lastVer
left outer join code_mgt c on a.ogdp1 = c.item_cd
left outer join code_mgt d on a.tr_lang = d.item_cd
left outer join code_mgt e on a.tr_sex = e.item_cd
left outer join code_mgt f on a.tr_nny = f.item_cd
left outer join code_mgt g on a.tr_edu = g.item_cd
left outer join code_mgt h on a.tr_visa = h.item_cd
where ogdp1 in
<sql id="selectTranslatorListWhere">
<where>
ogdp1 in
<foreach collection="downOrganCdList" item="item" index="index" separator="," open="(" close=")">
#{item}
#{item}
</foreach>
<if test='trLang != null and trLang != ""'>
and tr_lang = #{trLang}
and tr_lang = #{trLang}
</if>
<if test='ogdp1 != null and ogdp1 != ""'>
and ogdp1 = #{ogdp1}
and ogdp1 = #{ogdp1}
</if>
<if test='trName != null and trName != ""'>
and tr_name = #{trName}
and tr_name = #{trName}
</if>
<if test='trNny != null and trNny != ""'>
and tr_nny = #{trNny}
and tr_nny = #{trNny}
</if>
<if test='trVisa != null and trVisa != ""'>
and tr_visa = #{trVisa}
and tr_visa = #{trVisa}
</if>
<if test='aptDt != null'>
and to_char(apt_dt,'YYYY-MM-DD') = #{aptDt}::VARCHAR
<if test='startDate != null and startDate != ""'>
and apt_dt >= #{startDate}::date
</if>
<if test='endDate != null and endDate != ""'>
and apt_dt &lt;= #{endDate}::date+1
</if>
<if test='dmlYn != null and dmlYn != ""'>
and dml_yn = #{dmlYn}
and dml_yn = #{dmlYn}
</if>
order by translator_key desc
</where>
</sql>
<select id="selectTranslatorList" resultType="Translator" parameterType="Translator">
select a.translator_key,
version_no,
c.item_value as ogdp1,
d.item_value as tr_lang,
tr_career,
tr_name,
e.item_value as tr_sex,
tr_age,
f.item_value as tr_nny,
g.item_value as tr_edu,
tr_cft,
h.item_value as tr_visa,
dml_yn,
apt_dt,
tr_phone
from translator_info a
inner join (select translator_key, max(version_no) as lastVer
from translator_info
group by translator_key) b
on a.translator_key =b.translator_key and a.version_no = b.lastVer
left outer join code_mgt c on a.ogdp1 = c.item_cd
left outer join code_mgt d on a.tr_lang = d.item_cd
left outer join code_mgt e on a.tr_sex = e.item_cd
left outer join code_mgt f on a.tr_nny = f.item_cd
left outer join code_mgt g on a.tr_edu = g.item_cd
left outer join code_mgt h on a.tr_visa = h.item_cd
<include refid="selectTranslatorListWhere"></include>
order by translator_key desc
limit #{rowCnt} offset #{firstIndex}
</select>
<select id="selectTranslatorListCnt" resultType="int" parameterType="Translator">
select count(*)
from(
select a.translator_key,
version_no,
c.item_value as ogdp1,
d.item_value as tr_lang,
tr_career,
tr_name,
e.item_value as tr_sex,
tr_age,
f.item_value as tr_nny,
g.item_value as tr_edu,
tr_cft,
h.item_value as tr_visa,
dml_yn,
apt_dt,
tr_phone
from translator_info a
inner join (select translator_key, max(version_no) as lastVer
from translator_info
group by translator_key) b
on a.translator_key =b.translator_key and a.version_no = b.lastVer
left outer join code_mgt c on a.ogdp1 = c.item_cd
left outer join code_mgt d on a.tr_lang = d.item_cd
left outer join code_mgt e on a.tr_sex = e.item_cd
left outer join code_mgt f on a.tr_nny = f.item_cd
left outer join code_mgt g on a.tr_edu = g.item_cd
left outer join code_mgt h on a.tr_visa = h.item_cd
where ogdp1 in
<foreach collection="downOrganCdList" item="item" index="index" separator="," open="(" close=")">
#{item}
</foreach>
<if test='trLang != null and trLang != ""'>
and tr_lang = #{trLang}
</if>
<if test='ogdp1 != null and ogdp1 != ""'>
and ogdp1 = #{ogdp1}
</if>
<if test='trName != null and trName != ""'>
and tr_name = #{trName}
</if>
<if test='trNny != null and trNny != ""'>
and tr_nny = #{trNny}
</if>
<if test='trVisa != null and trVisa != ""'>
and tr_visa = #{trVisa}
</if>
<if test='aptDt != null'>
and to_char(apt_dt,'YYYY-MM-DD') = #{aptDt}::VARCHAR
</if>
<if test='dmlYn != null and dmlYn != ""'>
and dml_yn = #{dmlYn}
</if>
) a
from(
select a.translator_key,
version_no,
c.item_value as ogdp1,
d.item_value as tr_lang,
tr_career,
tr_name,
e.item_value as tr_sex,
tr_age,
f.item_value as tr_nny,
g.item_value as tr_edu,
tr_cft,
h.item_value as tr_visa,
dml_yn,
apt_dt,
tr_phone
from translator_info a
inner join (select translator_key, max(version_no) as lastVer
from translator_info
group by translator_key) b
on a.translator_key =b.translator_key and a.version_no = b.lastVer
left outer join code_mgt c on a.ogdp1 = c.item_cd
left outer join code_mgt d on a.tr_lang = d.item_cd
left outer join code_mgt e on a.tr_sex = e.item_cd
left outer join code_mgt f on a.tr_nny = f.item_cd
left outer join code_mgt g on a.tr_edu = g.item_cd
left outer join code_mgt h on a.tr_visa = h.item_cd
<include refid="selectTranslatorListWhere"></include>
) a
</select>
<select id="selectHistoryList" resultType="Translator" parameterType="Translator">

View File

@ -69,11 +69,6 @@
--bs-modal-width : 1440px;
}
/*사이드바 카테고리 트리*/
.btn-toggle:hover, .btn-toggle:focus {
/*color: rgba(0, 0, 0, .85);
background-color: #d2eaf4;*/
}
.btn-toggle::before {
content: url("/img/bootstrap-icons-1.9.1/caret-right-fill.svg");
filter: invert(100%);
@ -82,14 +77,17 @@
content: url("/img/bootstrap-icons-1.9.1/caret-down-fill.svg");
}
.fs-13{
font-size: 13px;
.fs-10{
font-size: 10px;
}
.fs-11{
font-size: 11px;
}
.fs-10{
font-size: 10px;
.fs-12{
font-size: 12px;
}
.fs-13{
font-size: 13px;
}
.pl-15{
padding-left: 15%;

View File

@ -1,6 +1,12 @@
let trCarrerList=[];
let selectedIdx=0;
$(function(){
$("#dateSelectorDiv").datepicker({
format: "yyyy-mm-dd",
language: "ko",
autoclose: true
});
})
$(document).on('click', '.userInfoTr', function (event){
$("#selectedKey").val($(this).find(".trKey").val())
$("#selectedVerNo").val($(this).find(".verNo").val())

View File

@ -77,8 +77,12 @@ $(document).on('click', '#syncToKwmsAllBtn', function (){
})
}
})
if(confirm(userList.length+"건의 정보를 갱신하시겠습니까?")){
syncUserInfoToKwms(userList);
if(userList.length===0){
alert("대상을 선택해주세요.")
}else{
if(confirm(userList.length+"건의 정보를 갱신하시겠습니까?")){
syncUserInfoToKwms(userList);
}
}
})

View File

@ -8,125 +8,123 @@
<div layout:fragment="content">
<main>
<h4>사용자 로그</h4>
<ul class="nav nav-tabs" id="boardTab" role="tablist">
<li class="nav-item" role="presentation">
<button class="nav-link" id="requestTab" data-bs-toggle="tab" type="button" role="tab">메뉴로그</button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link active" id="inoutTab" data-bs-toggle="tab" type="button" role="tab">접속로그</button>
</li>
</ul>
<div class="row mx-0">
<div class="col-12 tab-content bg-white border border-top-0 p-2">
<form method="get" th:action="@{/userMgt/userLog/inoutLog}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
</th:block>
</select>
</div>
<div class="col-6">
<div class="row">
<div class="col-10">
<div class="row justify-content-end pb-1">
<div class="col-4">
<select class="form-select form-select-sm" name="inoutType">
<option value="">결과</option>
<th:block th:each="code:${session.commonCode.get('IOT')}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${searchParams.inoutType eq code.itemCd}"></option>
</th:block>
</select>
</div>
<div class="col-4">
<input type="text" class="form-control form-control-sm" name="contactIp" placeholder="아이피" th:value="${searchParams.contactIp}">
</div>
</div>
<div class="card bg-light">
<div class="card-body">
<ul class="nav nav-tabs" id="boardTab" role="tablist">
<li class="nav-item" role="presentation">
<button class="nav-link" id="requestTab" data-bs-toggle="tab" type="button" role="tab">메뉴로그</button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link active" id="inoutTab" data-bs-toggle="tab" type="button" role="tab">접속로그</button>
</li>
</ul>
<div class="row mx-0">
<div class="col-12 tab-content bg-white border border-top-0 p-2">
<form method="get" th:action="@{/userMgt/userLog/inoutLog}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
</th:block>
</select>
</div>
<div class="col-8">
<div class="row">
<div class="col-4">
<input type="text" class="form-control form-control-sm" name="userBelong" placeholder="사용자" th:value="${searchParams.userBelong}">
</div>
<div class="col-8">
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
<div class="col-11">
<div class="row justify-content-end pb-1">
<div class="col-2">
<select class="form-select form-select-sm" name="inoutType">
<option value="">결과</option>
<th:block th:each="code:${session.commonCode.get('IOT')}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${searchParams.inoutType eq code.itemCd}"></option>
</th:block>
</select>
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm" name="contactIp" placeholder="아이피" th:value="${searchParams.contactIp}">
</div>
</div>
<div class="row justify-content-end">
<div class="col-2">
<input type="text" class="form-control form-control-sm" name="userBelong" placeholder="사용자" th:value="${searchParams.userBelong}">
</div>
<div class="col-4">
<div class="input-group input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
</div>
</div>
</div>
<div class="col-1 d-grid gap-0">
<input type="submit" class="btn btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>
<div class="col-2 d-grid gap-2">
<input type="submit" class="btn btn-sm btn-primary mx-2" id="searchBtn" value="검색">
</div>
</div>
</div>
</div>
</form>
<div class="row justify-content-start">
<div class="col-12">
<div class="card">
<div class="card-body">
<div class="row">
<table class="table table-sm table-hover table-bordered">
<thead>
<tr class="table-secondary">
<th>접속아이피</th>
<th>결과</th>
<th>사용자</th>
<th>등록일</th>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="inoutLogTr" th:each="log:${logList}">
<input type="hidden" class="contactIp" th:value="${log.contactIp}">
<th:block th:each="code:${session.commonCode.get('IOT')}">
<th:block th:if="${code.itemCd eq log.inoutType}">
<input type="hidden" class="inoutType" th:value="${code.itemValue}">
</th:block>
</form>
<div class="row">
<div class="col-12">
<table class="table table-sm table-hover table-bordered">
<thead>
<tr class="table-secondary">
<th>접속아이피</th>
<th>결과</th>
<th>사용자</th>
<th>등록일</th>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="inoutLogTr" th:each="log:${logList}">
<input type="hidden" class="contactIp" th:value="${log.contactIp}">
<th:block th:each="code:${session.commonCode.get('IOT')}">
<th:block th:if="${code.itemCd eq log.inoutType}">
<input type="hidden" class="inoutType" th:value="${code.itemValue}">
</th:block>
<input type="hidden" class="sessionId" th:value="${log.sessionId}">
<input type="hidden" class="userBelong" th:value="${log.userBelong}">
<input type="hidden" class="wrtDt" th:value="${#temporals.format(log.wrtDt, 'yyyy-MM-dd HH:mm:ss')}">
<td th:text="${log.contactIp}"></td>
<td>
<th:block th:each="code:${session.commonCode.get('IOT')}">
<th:block th:if="${code.itemCd eq log.inoutType}" th:text="${code.itemValue}"></th:block>
</th:block>
</td>
<td th:text="${log.userBelong}"></td>
<td th:text="${#temporals.format(log.wrtDt, 'yyyy-MM-dd HH:mm:ss')}"></td>
</tr>
</tbody>
</table>
</div>
<div class="row justify-content-center">
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination mb-0">
<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==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>
</th:block>
<input type="hidden" class="sessionId" th:value="${log.sessionId}">
<input type="hidden" class="userBelong" th:value="${log.userBelong}">
<input type="hidden" class="wrtDt" th:value="${#temporals.format(log.wrtDt, 'yyyy-MM-dd HH:mm:ss')}">
<td th:text="${log.contactIp}"></td>
<td>
<th:block th:each="code:${session.commonCode.get('IOT')}">
<th:block th:if="${code.itemCd eq log.inoutType}" th:text="${code.itemValue}"></th:block>
</th:block>
</td>
<td th:text="${log.userBelong}"></td>
<td th:text="${#temporals.format(log.wrtDt, 'yyyy-MM-dd HH:mm:ss')}"></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="row justify-content-center">
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination mb-0">
<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==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>

View File

@ -8,123 +8,121 @@
<div layout:fragment="content">
<main>
<h4>사용자 로그</h4>
<ul class="nav nav-tabs" id="boardTab" role="tablist">
<li class="nav-item" role="presentation">
<button class="nav-link active" id="requestTab" data-bs-toggle="tab" type="button" role="tab">메뉴로그</button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link" id="inoutTab" data-bs-toggle="tab" type="button" role="tab">접속로그</button>
</li>
</ul>
<div class="row mx-0">
<div class="col-12 tab-content bg-white border border-top-0 p-2">
<form method="get" th:action="@{/userMgt/userLog/requestLog}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
</th:block>
</select>
</div>
<div class="col-6">
<div class="row justify-content-end">
<div class="col-10">
<div class="row pb-1">
<div class="col-4">
<input type="text" class="form-control form-control-sm" name="contactIp" placeholder="아이피" th:value="${searchParams.contactIp}">
</div>
<div class="col-4">
<input type="text" class="form-control form-control-sm" name="requestUrl" placeholder="URL" th:value="${searchParams.requestUrl}">
</div>
<div class="col-4">
<select class="form-select form-select-sm" name="requestMethod">
<option value="">접근방식</option>
<option value="GET" th:selected="${searchParams.requestMethod eq 'GET'}">GET</option>
<option value="POST" th:selected="${searchParams.requestMethod eq 'POST'}">POST</option>
</select>
</div>
</div>
<div class="card bg-light">
<div class="card-body">
<ul class="nav nav-tabs" id="boardTab" role="tablist">
<li class="nav-item" role="presentation">
<button class="nav-link active" id="requestTab" data-bs-toggle="tab" type="button" role="tab">메뉴로그</button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link" id="inoutTab" data-bs-toggle="tab" type="button" role="tab">접속로그</button>
</li>
</ul>
<div class="row mx-0">
<div class="col-12 tab-content bg-white border border-top-0 p-2">
<form method="get" th:action="@{/userMgt/userLog/requestLog}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
</th:block>
</select>
</div>
<div class="col-8">
<div class="row">
<div class="col-4">
<input type="text" class="form-control form-control-sm" name="userBelong" placeholder="사용자" th:value="${searchParams.userBelong}">
</div>
<div class="col-8">
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
<div class="col-11">
<div class="row justify-content-end pb-1">
<div class="col-2">
<input type="text" class="form-control form-control-sm" name="contactIp" placeholder="아이피" th:value="${searchParams.contactIp}">
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm" name="requestUrl" placeholder="URL" th:value="${searchParams.requestUrl}">
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="requestMethod">
<option value="">접근방식</option>
<option value="GET" th:selected="${searchParams.requestMethod eq 'GET'}">GET</option>
<option value="POST" th:selected="${searchParams.requestMethod eq 'POST'}">POST</option>
</select>
</div>
</div>
<div class="row justify-content-end">
<div class="col-2">
<input type="text" class="form-control form-control-sm" name="userBelong" placeholder="사용자" th:value="${searchParams.userBelong}">
</div>
<div class="col-4">
<div class="input-group input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
</div>
</div>
</div>
<div class="col-1 d-grid gap-0">
<input type="submit" class="btn btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>
<div class="col-2 d-grid gap-2">
<input type="submit" class="btn btn-sm btn-primary mx-2" id="searchBtn" value="검색">
</div>
</div>
</form>
<div class="row">
<div class="col-12">
<table class="table table-sm table-hover table-bordered">
<thead>
<tr class="table-secondary">
<th>접속아이피</th>
<th>요청 URL</th>
<th>접근 방식</th>
<th>사용자</th>
<th>등록일</th>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="requestLogTr" th:each="log:${logList}">
<input type="hidden" class="contactIp" th:value="${log.contactIp}">
<input type="hidden" class="requestUrl" th:value="${log.requestUrl}">
<input type="hidden" class="requestMethod" th:value="${log.requestMethod}">
<input type="hidden" class="searchParams" th:value="${log.searchParams}">
<input type="hidden" class="handlerDescription" th:value="${log.handlerDescription}">
<input type="hidden" class="userBelong" th:value="${log.userBelong}">
<input type="hidden" class="wrtDt" th:value="${#temporals.format(log.wrtDt, 'yyyy-MM-dd HH:mm:ss')}">
<td th:text="${log.contactIp}"></td>
<td th:text="${log.requestUrl}"></td>
<td th:text="${log.requestMethod}"></td>
<td th:text="${log.userBelong}"></td>
<td th:text="${#temporals.format(log.wrtDt, 'yyyy-MM-dd HH:mm:ss')}"></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</form>
<div class="row justify-content-start">
<div class="col-12">
<div class="card">
<div class="card-body">
<div class="row">
<table class="table table-sm table-hover table-bordered">
<thead>
<tr class="table-secondary">
<th>접속아이피</th>
<th>요청 URL</th>
<th>접근 방식</th>
<th>사용자</th>
<th>등록일</th>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="requestLogTr" th:each="log:${logList}">
<input type="hidden" class="contactIp" th:value="${log.contactIp}">
<input type="hidden" class="requestUrl" th:value="${log.requestUrl}">
<input type="hidden" class="requestMethod" th:value="${log.requestMethod}">
<input type="hidden" class="searchParams" th:value="${log.searchParams}">
<input type="hidden" class="handlerDescription" th:value="${log.handlerDescription}">
<input type="hidden" class="userBelong" th:value="${log.userBelong}">
<input type="hidden" class="wrtDt" th:value="${#temporals.format(log.wrtDt, 'yyyy-MM-dd HH:mm:ss')}">
<td th:text="${log.contactIp}"></td>
<td th:text="${log.requestUrl}"></td>
<td th:text="${log.requestMethod}"></td>
<td th:text="${log.userBelong}"></td>
<td th:text="${#temporals.format(log.wrtDt, 'yyyy-MM-dd HH:mm:ss')}"></td>
</tr>
</tbody>
</table>
</div>
<div class="row justify-content-center">
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination mb-0">
<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==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 class="row justify-content-center">
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination mb-0">
<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==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>

View File

@ -7,173 +7,171 @@
</th:block>
<div layout:fragment="content">
<main>
<h4>외사경찰 관리</h4>
<ul class="nav nav-tabs" id="boardTab" role="tablist">
<li class="nav-item" role="presentation">
<button class="nav-link" th:classappend="${searchParams.userStatus eq 'USC003'?'active':''}" id="apprvTab" data-bs-toggle="tab" type="button" role="tab">승인목록</button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link" th:classappend="${searchParams.userStatus ne 'USC003'?'active':''}" id="stayTab" data-bs-toggle="tab" type="button" role="tab">승인대기</button>
</li>
</ul>
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row mx-0">
<div class="col-12 tab-content bg-white border border-top-0 p-2">
<form method="get" th:action="@{/userMgt/userMgtPage}">
<input type="hidden" name="userStatus" id="userStatus" th:value="${searchParams.userStatus}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<div class="row justify-content-end">
<h4>외사경찰 관리</h4>
<div class="card bg-light">
<div class="card-body">
<ul class="nav nav-tabs" id="boardTab" role="tablist">
<li class="nav-item" role="presentation">
<button class="nav-link" th:classappend="${searchParams.userStatus eq 'USC003'?'active':''}" id="apprvTab" data-bs-toggle="tab" type="button" role="tab">승인목록</button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link" th:classappend="${searchParams.userStatus ne 'USC003'?'active':''}" id="stayTab" data-bs-toggle="tab" type="button" role="tab">승인대기</button>
</li>
</ul>
<div class="row mx-0">
<div class="col-12 tab-content bg-white border border-top-0 p-2">
<form method="get" th:action="@{/userMgt/userMgtPage}">
<input type="hidden" name="userStatus" id="userStatus" th:value="${searchParams.userStatus}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="ogCd">
<option value="">관서 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${searchParams.ogCd==commonCode.itemCd}"></option>
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="ofcCd">
<option value="">부서 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OFC')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${searchParams.ofcCd==commonCode.itemCd}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="titleCd">
<option value="">계급 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('JT')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${searchParams.titleCd==commonCode.itemCd}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" name="userNm" placeholder="사용자명" th:value="${searchParams.userNm}">
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" name="userId" placeholder="사용자 아이디" th:value="${searchParams.userId}">
</div>
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
<div class="row justify-content-end">
<div class="col-auto">
<select class="form-select form-select-sm" name="ogCd">
<option value="">관서 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${searchParams.ogCd==commonCode.itemCd}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="ofcCd">
<option value="">부서 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OFC')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${searchParams.ofcCd==commonCode.itemCd}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="titleCd">
<option value="">계급 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('JT')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${searchParams.titleCd==commonCode.itemCd}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" name="userNm" placeholder="사용자명" th:value="${searchParams.userNm}">
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" name="userId" placeholder="사용자 아이디" th:value="${searchParams.userId}">
</div>
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>
</div>
</form>
<div class="row">
<div class="col-12">
<table class="table table-sm table-hover table-bordered">
<thead>
<tr class="table-secondary">
<th> <input type="checkbox" class="allChk"></th>
<th>소속</th>
<th>부서</th>
<th>계급</th>
<th>성명</th>
<th>아이디</th>
<th>식별번호</th>
<th>등록일</th>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="userInfoTr" th:each="userInfo:${userInfoList}">
<input type="hidden" name="userSeq" class="userSeq" th:value="${userInfo.userSeq}">
<input type="hidden" name="dicCode" class="dicCode" th:value="${userInfo.dicCode}">
<td class="checkBoxTd">
<input type="checkbox" id="userChk" name="userChk" class="userInfoCheckBox" th:value="${userInfo.userSeq}">
</td>
<th:block th:if="${userInfo.ogCd eq null or userInfo.ogCd eq ''}">
<td></td>
</th:block>
<th:block th:unless="${userInfo.ogCd eq null or userInfo.ogCd eq ''}">
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${commonCode.itemCd == userInfo.ogCd}">
<td th:text="${commonCode.itemValue}"></td>
</th:block>
</th:block>
</th:block>
<th:block th:if="${userInfo.ofcCd eq null or userInfo.ofcCd eq ''}">
<td></td>
</th:block>
<th:block th:unless="${userInfo.ofcCd eq null or userInfo.ofcCd eq ''}">
<th:block th:each="commonCode:${session.commonCode.get('OFC')}">
<th:block th:if="${commonCode.itemCd == userInfo.ofcCd}">
<td th:text="${commonCode.itemValue}"></td>
</th:block>
</th:block>
</th:block>
<th:block th:if="${userInfo.titleCd eq null or userInfo.titleCd eq ''}">
<td></td>
</th:block>
<th:block th:unless="${userInfo.titleCd eq null or userInfo.titleCd eq ''}">
<th:block th:each="commonCode:${session.commonCode.get('JT')}">
<th:block th:if="${commonCode.itemCd == userInfo.titleCd}">
<td th:text="${commonCode.itemValue}"></td>
</th:block>
</th:block>
</th:block>
<td th:text="${userInfo.userNm}"></td>
<td th:text="${userInfo.userId}"></td>
<td th:text="${userInfo.dicCode}"></td>
<td th:text="${#temporals.format(userInfo.wrtDt, 'yyyy-MM-dd HH:mm:ss')}"></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</form>
<div class="row justify-content-start">
<div class="col-12">
<div class="card">
<div class="card-body">
<div class="row">
<table class="table table-sm table-hover table-bordered">
<thead>
<tr class="table-secondary">
<th> <input type="checkbox" class="allChk"></th>
<th>소속</th>
<th>부서</th>
<th>계급</th>
<th>성명</th>
<th>아이디</th>
<th>식별번호</th>
<th>등록일</th>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="userInfoTr" th:each="userInfo:${userInfoList}">
<input type="hidden" name="userSeq" class="userSeq" th:value="${userInfo.userSeq}">
<input type="hidden" name="dicCode" class="dicCode" th:value="${userInfo.dicCode}">
<td class="checkBoxTd">
<input type="checkbox" id="userChk" name="userChk" class="userInfoCheckBox" th:value="${userInfo.userSeq}">
</td>
<th:block th:if="${userInfo.ogCd eq null or userInfo.ogCd eq ''}">
<td></td>
</th:block>
<th:block th:unless="${userInfo.ogCd eq null or userInfo.ogCd eq ''}">
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${commonCode.itemCd == userInfo.ogCd}">
<td th:text="${commonCode.itemValue}"></td>
</th:block>
</th:block>
</th:block>
<th:block th:if="${userInfo.ofcCd eq null or userInfo.ofcCd eq ''}">
<td></td>
</th:block>
<th:block th:unless="${userInfo.ofcCd eq null or userInfo.ofcCd eq ''}">
<th:block th:each="commonCode:${session.commonCode.get('OFC')}">
<th:block th:if="${commonCode.itemCd == userInfo.ofcCd}">
<td th:text="${commonCode.itemValue}"></td>
</th:block>
</th:block>
</th:block>
<th:block th:if="${userInfo.titleCd eq null or userInfo.titleCd eq ''}">
<td></td>
</th:block>
<th:block th:unless="${userInfo.titleCd eq null or userInfo.titleCd eq ''}">
<th:block th:each="commonCode:${session.commonCode.get('JT')}">
<th:block th:if="${commonCode.itemCd == userInfo.titleCd}">
<td th:text="${commonCode.itemValue}"></td>
</th:block>
</th:block>
</th:block>
<td th:text="${userInfo.userNm}"></td>
<td th:text="${userInfo.userId}"></td>
<td th:text="${userInfo.dicCode}"></td>
<td th:text="${#temporals.format(userInfo.wrtDt, 'yyyy-MM-dd HH:mm:ss')}"></td>
</tr>
</tbody>
</table>
</div>
<div class="row justify-content-between">
<div class="col-auto">
<th:block th:if="${searchParams.userStatus eq 'USC002'}">
<input type="button" class="btn btn-danger" value="반려" id="companionBtn">
<div class="row justify-content-between">
<div class="col-auto">
<th:block th:if="${searchParams.userStatus eq 'USC002'}">
<input type="button" class="btn btn-danger" value="반려" id="companionBtn">
</th:block>
<th:block th:if="${searchParams.userStatus eq 'USC003'}">
<button type="button" class="btn btn-info" id="syncToKwmsAllBtn">인사시스템 정보 불러오기</button>
</th:block>
</div>
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination mb-0">
<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:if="${searchParams.userStatus eq 'USC003'}">
<button type="button" class="btn btn-info" id="syncToKwmsAllBtn">인사시스템 정보 불러오기</button>
<th:block th:each="num : ${#numbers.sequence(searchParams.startNum, searchParams.endNum)}">
<li class="page-item" th:data-pageindex="${num}" th:classappend="${searchParams.pageIndex==num?'active':''}">
<a class="page-link" href="#" th:text="${num}"></a>
</li>
</th:block>
</div>
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination mb-0">
<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==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 class="col-auto">
<th:block th:if="${searchParams.userStatus eq 'USC002'}">
<input type="button" class="btn btn-success" value="외사경찰 승인" id="approvalBtn">
<input type="button" class="btn btn-warning" value="비외사경찰 승인" id="notPoliceBtn">
</th:block>
</div>
</div>
<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 class="col-auto">
<th:block th:if="${searchParams.userStatus eq 'USC002'}">
<input type="button" class="btn btn-success" value="외사경찰 승인" id="approvalBtn">
<input type="button" class="btn btn-warning" value="비외사경찰 승인" id="notPoliceBtn">
</th:block>
</div>
</div>
</div>

View File

@ -16,126 +16,122 @@
<div class="row mx-0">
<div class="col-12 card bg-light text-center">
<div class="card-body">
<div class="row justify-content-start">
<div class="col-12">
<div class="card">
<div class="card-body">
<form id="searchFm" method="get" th:action="@{/equip/pvreUseList}">
<input type="hidden" name="excel">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<button type="button" class="btn btn-sm btn-success" id="goExcel">엑셀다운</button>
</div>
</div>
<div class="row justify-content-end py-1">
<div class="col-1" th:if="${accessAuth eq 'ACC003'}">
<select class="form-select form-select-sm" name="mgtOrgan">
<option value="">경찰서</option>
<th:block th:each="organList:${organList}">
<option th:value="${organList.item_cd}" th:text="${organList.item_value}" th:selected="${organList.item_cd eq searchParams.mgtOrgan}"></option>
</th:block>
</select>
</div>
<div class="col-1">
<input type="text" class="form-control form-control-sm" placeholder="연번" name="useNo" th:value="${searchParams.useNo}">
</div>
<div class="col-1">
<select class="form-select form-select-sm" name="detailType">
<option value="">사용사유</option>
<th:block th:each="commonCode:${session.commonCode.get('PVREUSE')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.detailType}"></option>
</th:block>
</select>
</div>
<div class="col-2">
<div class="input-group input-daterange" id="dateSelectorDiv">
<select class="form-select form-select-sm w-30" name="dateSelector">
<option value="">조건선택</option>
<option value="useDt" th:selected="${searchParams.dateSelector eq 'useDt'}">사용일</option>
<option value="wrtDt" th:selected="${searchParams.dateSelector eq 'wrtDt'}">최종수정일</option>
</select>
<input type="text" class="form-control form-control-sm w-35" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm w-35" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
</div>
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div>
</form>
<div class="row">
<div class="col-12">
<table class="table table-sm table-hover table-bordered">
<thead>
<tr class="table-secondary">
<th> <input type="checkbox" id="chk-all" class="useCheckBox"></th>
<th>연번</th>
<th>경찰서</th>
<th>사용일시</th>
<th>사용사유</th>
<th>사용인원</th>
<th>비고</th>
<th>최종수정일</th>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="useTr" th:each="list:${useList}" th:data-useNo="${list.useNo}" th:data-mgtOrgan="${list.mgtOrgan}" th:data-useType="${list.useType}">
<td class="useChk"><input type="checkbox" name="useChk" class="useCheckBox"></td>
<td th:text="${list.useNo}"></td>
<td th:text="${list.sosok}"></td>
<td th:text="${list.useDt}"></td>
<td th:text="${list.detailTypeName}" th:if="${list.detailType != 'PVREUSE007'}"></td>
<td th:text="${list.detailSelf}" th:unless="${list.detailType != 'PVREUSE007'}"></td>
<td th:text="${list.peopleCnt}"></td>
<td th:text="${list.description}"></td>
<td th:text="${#temporals.format(list.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="row justify-content-between">
<div class="col-auto">
<button type="button" class="btn btn-warning" id="historyBtn">수정이력</button>
<button type="button" class="btn btn-danger" id="deleteUse" th:if="${accessAuth eq 'ACC003'}">삭제</button>
</div>
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination mb-0">
<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==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 class="col-auto">
<button type="button" class="btn btn-primary" id="addPvre" th:unless="${accessAuth eq 'ACC001'}">등록</button>
</div>
</div>
<form id="searchFm" method="get" th:action="@{/equip/pvreUseList}">
<input type="hidden" name="excel">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<button type="button" class="btn btn-sm btn-success" id="goExcel">엑셀다운</button>
</div>
</div>
<div class="row justify-content-end py-1">
<div class="col-1" th:if="${accessAuth eq 'ACC003'}">
<select class="form-select form-select-sm" name="mgtOrgan">
<option value="">경찰서</option>
<th:block th:each="organList:${organList}">
<option th:value="${organList.item_cd}" th:text="${organList.item_value}" th:selected="${organList.item_cd eq searchParams.mgtOrgan}"></option>
</th:block>
</select>
</div>
<div class="col-1">
<input type="text" class="form-control form-control-sm" placeholder="연번" name="useNo" th:value="${searchParams.useNo}">
</div>
<div class="col-1">
<select class="form-select form-select-sm" name="detailType">
<option value="">사용사유</option>
<th:block th:each="commonCode:${session.commonCode.get('PVREUSE')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.detailType}"></option>
</th:block>
</select>
</div>
<div class="col-2">
<div class="input-group input-daterange" id="dateSelectorDiv">
<select class="form-select form-select-sm w-30" name="dateSelector">
<option value="">조건선택</option>
<option value="useDt" th:selected="${searchParams.dateSelector eq 'useDt'}">사용일</option>
<option value="wrtDt" th:selected="${searchParams.dateSelector eq 'wrtDt'}">최종수정일</option>
</select>
<input type="text" class="form-control form-control-sm w-35" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm w-35" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
</div>
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div>
</form>
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-12">
<table class="table table-sm table-hover table-bordered">
<thead>
<tr class="table-secondary">
<th> <input type="checkbox" id="chk-all" class="useCheckBox"></th>
<th>연번</th>
<th>경찰서</th>
<th>사용일시</th>
<th>사용사유</th>
<th>사용인원</th>
<th>비고</th>
<th>최종수정일</th>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="useTr" th:each="list:${useList}" th:data-useNo="${list.useNo}" th:data-mgtOrgan="${list.mgtOrgan}" th:data-useType="${list.useType}">
<td class="useChk"><input type="checkbox" name="useChk" class="useCheckBox"></td>
<td th:text="${list.useNo}"></td>
<td th:text="${list.sosok}"></td>
<td th:text="${list.useDt}"></td>
<td th:text="${list.detailTypeName}" th:if="${list.detailType != 'PVREUSE007'}"></td>
<td th:text="${list.detailSelf}" th:unless="${list.detailType != 'PVREUSE007'}"></td>
<td th:text="${list.peopleCnt}"></td>
<td th:text="${list.description}"></td>
<td th:text="${#temporals.format(list.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="row justify-content-between">
<div class="col-auto">
<button type="button" class="btn btn-warning" id="historyBtn">수정이력</button>
<button type="button" class="btn btn-danger" id="deleteUse" th:if="${accessAuth eq 'ACC003'}">삭제</button>
</div>
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination mb-0">
<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==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 class="col-auto">
<button type="button" class="btn btn-primary" id="addPvre" th:unless="${accessAuth eq 'ACC001'}">등록</button>
</div>
</div>
</div>

View File

@ -16,126 +16,122 @@
<div class="row mx-0">
<div class="col-12 card bg-light text-center">
<div class="card-body">
<div class="row justify-content-start">
<div class="col-12">
<div class="card">
<div class="card-body">
<form id="searchFm" method="get" th:action="@{/equip/qirUseList}">
<input type="hidden" name="excel">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<button type="button" class="btn btn-sm btn-success" id="goExcel">엑셀다운</button>
</div>
</div>
<div class="row justify-content-end py-1">
<div class="col-1" th:if="${accessAuth eq 'ACC003'}">
<select class="form-select form-select-sm" name="mgtOrgan">
<option value="">경찰서</option>
<th:block th:each="organList:${organList}">
<option th:value="${organList.item_cd}" th:text="${organList.item_value}" th:selected="${organList.item_cd eq searchParams.mgtOrgan}"></option>
</th:block>
</select>
</div>
<div class="col-1">
<input type="text" class="form-control form-control-sm" placeholder="연번" name="useNo" th:value="${searchParams.useNo}">
</div>
<div class="col-1">
<select class="form-select form-select-sm" name="detailType">
<option value="">사용사유</option>
<th:block th:each="commonCode:${session.commonCode.get('QIRUSE')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.detailType}"></option>
</th:block>
</select>
</div>
<div class="col-2">
<div class="input-group input-daterange" id="dateSelectorDiv">
<select class="form-select form-select-sm w-30" name="dateSelector">
<option value="">조건</option>
<option value="useDt" th:selected="${searchParams.dateSelector eq 'useDt'}">사용일</option>
<option value="wrtDt" th:selected="${searchParams.dateSelector eq 'wrtDt'}">최종수정일</option>
</select>
<input type="text" class="form-control form-control-sm w-35" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm w-35" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
</div>
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div>
</form>
<div class="row">
<div class="col-12">
<table class="table table-sm table-hover table-bordered">
<thead>
<tr class="table-secondary">
<th> <input type="checkbox" id="chk-all" class="useCheckBox"></th>
<th>연번</th>
<th>경찰서</th>
<th>사용일시</th>
<th>사용사유</th>
<th>사용인원</th>
<th>비고</th>
<th>최종수정일</th>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="useTr" th:each="list:${useList}" th:data-useNo="${list.useNo}" th:data-mgtOrgan="${list.mgtOrgan}" th:data-useType="${list.useType}">
<td class="useChk"><input type="checkbox" name="useChk" class="useCheckBox"></td>
<td th:text="${list.useNo}"></td>
<td th:text="${list.sosok}"></td>
<td th:text="${list.useDt}"></td>
<td th:text="${list.detailTypeName}" th:if="${list.detailType != 'QIRUSE006'}"></td>
<td th:text="${list.detailSelf}" th:unless="${list.detailType != 'QIRUSE006'}"></td>
<td th:text="${list.peopleCnt}"></td>
<td th:text="${list.description}"></td>
<td th:text="${#temporals.format(list.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="row justify-content-between">
<div class="col-auto">
<button type="button" class="btn btn-warning" id="historyBtn">수정이력</button>
<button type="button" class="btn btn-danger" id="deleteUse" th:if="${accessAuth eq 'ACC003'}">삭제</button>
</div>
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination mb-0">
<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==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 class="col-auto">
<button type="button" class="btn btn-primary" id="addQir" th:unless="${accessAuth eq 'ACC001'}">등록</button>
</div>
</div>
<form id="searchFm" method="get" th:action="@{/equip/qirUseList}">
<input type="hidden" name="excel">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<button type="button" class="btn btn-sm btn-success" id="goExcel">엑셀다운</button>
</div>
</div>
<div class="row justify-content-end py-1">
<div class="col-1" th:if="${accessAuth eq 'ACC003'}">
<select class="form-select form-select-sm" name="mgtOrgan">
<option value="">경찰서</option>
<th:block th:each="organList:${organList}">
<option th:value="${organList.item_cd}" th:text="${organList.item_value}" th:selected="${organList.item_cd eq searchParams.mgtOrgan}"></option>
</th:block>
</select>
</div>
<div class="col-1">
<input type="text" class="form-control form-control-sm" placeholder="연번" name="useNo" th:value="${searchParams.useNo}">
</div>
<div class="col-1">
<select class="form-select form-select-sm" name="detailType">
<option value="">사용사유</option>
<th:block th:each="commonCode:${session.commonCode.get('QIRUSE')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.detailType}"></option>
</th:block>
</select>
</div>
<div class="col-2">
<div class="input-group input-daterange" id="dateSelectorDiv">
<select class="form-select form-select-sm w-30" name="dateSelector">
<option value="">조건</option>
<option value="useDt" th:selected="${searchParams.dateSelector eq 'useDt'}">사용일</option>
<option value="wrtDt" th:selected="${searchParams.dateSelector eq 'wrtDt'}">최종수정일</option>
</select>
<input type="text" class="form-control form-control-sm w-35" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm w-35" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
</div>
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div>
</form>
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-12">
<table class="table table-sm table-hover table-bordered">
<thead>
<tr class="table-secondary">
<th> <input type="checkbox" id="chk-all" class="useCheckBox"></th>
<th>연번</th>
<th>경찰서</th>
<th>사용일시</th>
<th>사용사유</th>
<th>사용인원</th>
<th>비고</th>
<th>최종수정일</th>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="useTr" th:each="list:${useList}" th:data-useNo="${list.useNo}" th:data-mgtOrgan="${list.mgtOrgan}" th:data-useType="${list.useType}">
<td class="useChk"><input type="checkbox" name="useChk" class="useCheckBox"></td>
<td th:text="${list.useNo}"></td>
<td th:text="${list.sosok}"></td>
<td th:text="${list.useDt}"></td>
<td th:text="${list.detailTypeName}" th:if="${list.detailType != 'QIRUSE006'}"></td>
<td th:text="${list.detailSelf}" th:unless="${list.detailType != 'QIRUSE006'}"></td>
<td th:text="${list.peopleCnt}"></td>
<td th:text="${list.description}"></td>
<td th:text="${#temporals.format(list.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="row justify-content-between">
<div class="col-auto">
<button type="button" class="btn btn-warning" id="historyBtn">수정이력</button>
<button type="button" class="btn btn-danger" id="deleteUse" th:if="${accessAuth eq 'ACC003'}">삭제</button>
</div>
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination mb-0">
<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==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 class="col-auto">
<button type="button" class="btn btn-primary" id="addQir" th:unless="${accessAuth eq 'ACC001'}">등록</button>
</div>
</div>
</div>

View File

@ -22,110 +22,110 @@
<div class="row mx-0">
<div class="col-12 card bg-light">
<div class="card-body">
<div class="card">
<div class="card-body">
<form method="get" th:action="@{/faStatistics/internationalCrimeArrest}" id="icaSearchForm">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<input type="hidden" name="dateSelector" value="wrtDt">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
</th:block>
</select>
</div>
<div class="col-8">
<div class="row">
<div class="col-11">
<div class="row justify-content-end">
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="사건번호" name="caseNum" th:value="${searchParams.caseNum}">
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="organ">
<option value="">지방청 선택</option>
<th:block th:each="organConfig:${organConfigList}">
<th:block th:if="${organConfig.parentOrgan eq 'OG001' && organConfig.organType ne 'OGC001'}">
<option th:value="${organConfig.organCd}" th:text="${organConfig.organNm}" th:selected="${organConfig.organCd eq searchParams.organ}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-2" id="departmentDiv">
<select class="form-select form-select-sm" name="department">
<option value="">경찰서 선택</option>
<th:block th:each="organConfig:${organConfigList}">
<th:block th:if="${organConfig.parentOrgan ne null && organConfig.organType ne 'OGC002'}">
<option th:value="${organConfig.organCd}" th:text="${organConfig.organNm}" th:selected="${organConfig.organCd eq searchParams.department}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="crimeType" id="searchCrimeType">
<option value="">범죄테마 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('CTH')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.crimeType}"></option>
</th:block>
</select>
</div>
</div>
<div class="row justify-content-end">
<div class="col-2">
<select class="form-select form-select-sm" name="violationType" id="searchViolationType">
<option value="">위반유형 선택</option>
<th:block th:each="num : ${#numbers.sequence(1,#lists.size(session.commonCode.get('CTH')))}">
<th:block th:each="commonCode:${session.commonCode.get('CTH'+num)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${internationalCrimeArrest.violationType eq commonCode.itemCd}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="죄명" name="crimeName" th:value="${searchParams.crimeName}">
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="발생원표" name="occurTable" th:value="${searchParams.occurTable}">
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="검거원표" name="arrestTable" th:value="${searchParams.arrestTable}">
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="피의자원표" name="suspectTable" th:value="${searchParams.suspectTable}">
</div>
</div>
<div class="row justify-content-end">
<div class="col-2">
<input type="text" class="form-control form-control-sm dateSelector" placeholder="범죄인지" name="crimeAwarenessDt" id="crimeAwarenessDt" th:value="${#temporals.format(searchParams.crimeAwarenessDt, 'yyyy-MM-dd')}">
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm dateSelector" placeholder="사건송치" name="caseSentDt" id="caseSentDt" th:value="${#temporals.format(searchParams.caseSentDt, 'yyyy-MM-dd')}">
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="processResult" id="processResult">
<option value="">신병처리 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('PCR')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq searchParams.processResult}"></option>
</th:block>
</select>
</div>
<div class="col-4">
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
</div>
</div>
<form method="get" th:action="@{/faStatistics/internationalCrimeArrest}" id="icaSearchForm">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<input type="hidden" name="dateSelector" value="wrtDt">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
</th:block>
</select>
</div>
<div class="col-8">
<div class="row">
<div class="col-11">
<div class="row justify-content-end">
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="사건번호" name="caseNum" th:value="${searchParams.caseNum}">
</div>
<div class="col-1 d-grid gap-2">
<input type="submit" class="btn btn-primary" id="searchBtn" value="검색">
<div class="col-2">
<select class="form-select form-select-sm" name="organ">
<option value="">지방청 선택</option>
<th:block th:each="organConfig:${organConfigList}">
<th:block th:if="${organConfig.parentOrgan eq 'OG001' && organConfig.organType ne 'OGC001'}">
<option th:value="${organConfig.organCd}" th:text="${organConfig.organNm}" th:selected="${organConfig.organCd eq searchParams.organ}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-2" id="departmentDiv">
<select class="form-select form-select-sm" name="department">
<option value="">경찰서 선택</option>
<th:block th:each="organConfig:${organConfigList}">
<th:block th:if="${organConfig.parentOrgan ne null && organConfig.organType ne 'OGC002'}">
<option th:value="${organConfig.organCd}" th:text="${organConfig.organNm}" th:selected="${organConfig.organCd eq searchParams.department}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="crimeType" id="searchCrimeType">
<option value="">범죄테마 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('CTH')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.crimeType}"></option>
</th:block>
</select>
</div>
</div>
<div class="row justify-content-end">
<div class="col-2">
<select class="form-select form-select-sm" name="violationType" id="searchViolationType">
<option value="">위반유형 선택</option>
<th:block th:each="num : ${#numbers.sequence(1,#lists.size(session.commonCode.get('CTH')))}">
<th:block th:each="commonCode:${session.commonCode.get('CTH'+num)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${internationalCrimeArrest.violationType eq commonCode.itemCd}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="죄명" name="crimeName" th:value="${searchParams.crimeName}">
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="발생원표" name="occurTable" th:value="${searchParams.occurTable}">
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="검거원표" name="arrestTable" th:value="${searchParams.arrestTable}">
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="피의자원표" name="suspectTable" th:value="${searchParams.suspectTable}">
</div>
</div>
<div class="row justify-content-end">
<div class="col-2">
<input type="text" class="form-control form-control-sm dateSelector" placeholder="범죄인지" name="crimeAwarenessDt" id="crimeAwarenessDt" th:value="${#temporals.format(searchParams.crimeAwarenessDt, 'yyyy-MM-dd')}">
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm dateSelector" placeholder="사건송치" name="caseSentDt" id="caseSentDt" th:value="${#temporals.format(searchParams.caseSentDt, 'yyyy-MM-dd')}">
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="processResult" id="processResult">
<option value="">신병처리 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('PCR')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq searchParams.processResult}"></option>
</th:block>
</select>
</div>
<div class="col-4">
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
</div>
</div>
</div>
<div class="col-1 d-grid gap-2">
<input type="submit" class="btn btn-primary" id="searchBtn" value="검색">
</div>
</div>
</form>
</div>
</div>
</form>
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-12">
<table class="table table-sm table-hover table-bordered ws-nowrap" id="ivsgtTable">

View File

@ -16,77 +16,77 @@
<div class="row mx-0">
<div class="col-12 card bg-light text-center">
<div class="card-body">
<form id="searchFm" method="get" th:action="@{/target/partInfoList}">
<input type="hidden" name="excel">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
</th:block>
</select>
</div>
<div class="col-8">
<div class="row">
<div class="col-11">
<div class="row justify-content-end pb-1">
<div class="col-2">
<select class="form-select form-select-sm" name="mgtOrgan">
<option value="">해경서</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.mgtOrgan}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm" name="landPolice" th:value="${searchParams.landPolice}" placeholder="육경서">
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="mpWorkType">
<option value="">해경서 근무방법</option>
<th:block th:each="commonCode:${session.commonCode.get('PIS')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.mpWorkType}"></option>
</th:block>
</select>
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="plWorkType">
<option value="">육경서 근무방법</option>
<th:block th:each="commonCode:${session.commonCode.get('PIS')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.plWorkType}"></option>
</th:block>
</select>
</div>
</div>
<div class="row justify-content-end">
<div class="col-2">
<input type="text" class="form-control form-control-sm" name="piManagerName" th:value="${searchParams.piManagerName}" placeholder="담당자">
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm" name="terminalNm" th:value="${searchParams.terminalNm}" placeholder="터미널명">
</div>
<div class="col-4">
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
</div>
</div>
</div>
<div class="col-1 d-grid gap-2">
<input type="submit" class="btn btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>
</div>
</form>
<div class="row justify-content-start">
<div class="col-12">
<div class="card">
<div class="card-body">
<form id="searchFm" method="get" th:action="@{/target/partInfoList}">
<input type="hidden" name="excel">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
</th:block>
</select>
</div>
<div class="col-8">
<div class="row">
<div class="col-11">
<div class="row justify-content-end pb-1">
<div class="col-2">
<select class="form-select form-select-sm" name="mgtOrgan">
<option value="">해경서</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.mgtOrgan}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm" name="landPolice" th:value="${searchParams.landPolice}" placeholder="육경서">
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="mpWorkType">
<option value="">해경서 근무방법</option>
<th:block th:each="commonCode:${session.commonCode.get('PIS')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.mpWorkType}"></option>
</th:block>
</select>
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="plWorkType">
<option value="">육경서 근무방법</option>
<th:block th:each="commonCode:${session.commonCode.get('PIS')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.plWorkType}"></option>
</th:block>
</select>
</div>
</div>
<div class="row justify-content-end">
<div class="col-2">
<input type="text" class="form-control form-control-sm" name="piManagerName" th:value="${searchParams.piManagerName}" placeholder="담당자">
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm" name="terminalNm" th:value="${searchParams.terminalNm}" placeholder="터미널명">
</div>
<div class="col-4">
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
</div>
</div>
</div>
<div class="col-1 d-grid gap-2">
<input type="submit" class="btn btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>
</div>
</form>
<div class="row">
<div class="col-12">
<input type="hidden" id="selectedKey">

View File

@ -29,7 +29,7 @@
<li><a href="/userMgt/userMgtPage" class="dropdown-item">외사경찰관리</a></li>
<li><a href="/authMgt/authMgtPage" class="dropdown-item">권한설정</a></li>
<li><a href="/userMgt/userLog/requestLog" class="dropdown-item">사용자로그</a></li>
<li><a href="#" class="dropdown-item">접속설정</a></li>
<li><a href="#" class="dropdown-item disabled">접속설정</a></li>
</th:block>
</ul>
</li>

View File

@ -42,73 +42,77 @@
</select>
</div>
<div class="col-8">
<div class="row justify-content-end">
<div class="row">
<div class="col-11">
<div class="row justify-content-end pb-1" th:if="${accessAuth eq 'ACC003'}">
<div class="col-2">
<select class="form-select form-select-sm" name="wrtOrgan">
<option value="">관서 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.wrtOrgan}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="작성자" name="wrtUserNm" th:value="${searchParams.wrtUserNm}">
</div>
</div>
<div class="row justify-content-end pb-1">
<div class="col-2">
<select class="form-select form-select-sm" name="affairType1">
<option value="">분야1 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('DC01')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.affairType1}"></option>
</th:block>
</select>
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="affairType2">
<option value="">분야2 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('DC02')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.affairType2}"></option>
</th:block>
</select>
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="affairType3">
<option value="">분야3 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('DC03')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.affairType3}"></option>
</th:block>
</select>
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="affairType4">
<option value="">분야4 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('DC04')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.affairType4}"></option>
</th:block>
</select>
</div>
</div>
<div class="row justify-content-end">
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="제목" name="title" th:value="${searchParams.title}">
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="affairStatus">
<option value="">상태 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('DST')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.affairStatus}"></option>
</th:block>
</select>
</div>
<div class="col-4">
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
<div class="col-11">
<div class="row justify-content-end pb-1" th:if="${accessAuth eq 'ACC003'}">
<div class="col-2">
<select class="form-select form-select-sm" name="wrtOrgan">
<option value="">관서 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.wrtOrgan}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="작성자" name="wrtUserNm" th:value="${searchParams.wrtUserNm}">
</div>
</div>
<div class="row justify-content-end pb-1">
<div class="col-2">
<select class="form-select form-select-sm" name="affairType1">
<option value="">분야1 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('DC01')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.affairType1}"></option>
</th:block>
</select>
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="affairType2">
<option value="">분야2 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('DC02')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.affairType2}"></option>
</th:block>
</select>
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="affairType3">
<option value="">분야3 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('DC03')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.affairType3}"></option>
</th:block>
</select>
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="affairType4">
<option value="">분야4 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('DC04')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.affairType4}"></option>
</th:block>
</select>
</div>
</div>
<div class="row justify-content-end">
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="제목" name="title" th:value="${searchParams.title}">
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="affairStatus">
<option value="">상태 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('DST')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.affairStatus}"></option>
</th:block>
</select>
</div>
<div class="col-4">
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
</div>
</div>
</div>
</div>

View File

@ -7,9 +7,12 @@
</th:block>
<div layout:fragment="content">
<main>
<h4>외사경찰 경력 현황</h4>
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row justify-content-between">
<div class="col-auto"><h4>외사경찰 경력 현황</h4></div>
<div class="col-auto"><p class="mb-0 mt-2">외사경찰 > 외사경찰 경력현황</p></div>
</div>
<div class="row mx-0">
<div class="col-12 card bg-light text-center">
<div class="card-body">
@ -27,164 +30,156 @@
</li>
</ul>
<div class="tab-content bg-white border border-top-0 p-3" id="userContent">
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-12 pb-2">
<form id="searchFm" method="get" th:action="@{/police/careerMgt}">
<input type="hidden" name="userStatus" th:value="${userStatus}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<div class="row justify-content-end">
<div class="col-auto">
<select class="form-select form-select-sm" name="ogCd">
<option value="">관서 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${searchParams.ogCd eq commonCode.itemCd}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="sex">
<option value="">성별</option>
<th:block th:each="commonCode:${session.commonCode.get('SEX')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${searchParams.sex eq commonCode.itemCd}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="이름" name="userNm" th:value="${searchParams.userNm}">
</div>
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>
</div>
</form>
<form id="searchFm" method="get" th:action="@{/police/careerMgt}">
<input type="hidden" name="userStatus" th:value="${userStatus}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between pb-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<div class="row justify-content-end">
<div class="col-auto">
<select class="form-select form-select-sm" name="ogCd">
<option value="">관서 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${searchParams.ogCd eq commonCode.itemCd}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="sex">
<option value="">성별</option>
<th:block th:each="commonCode:${session.commonCode.get('SEX')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${searchParams.sex eq commonCode.itemCd}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="이름" name="userNm" th:value="${searchParams.userNm}">
</div>
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>
<div class="row">
<div class="col-12">
<table class="table table-sm table-hover table-bordered">
<thead>
<tr class="table-secondary">
<th>순번</th>
<th>계급</th>
<th>성명</th>
<th></th>
<th>부서</th>
<th>생년월일</th>
<th>성별</th>
<th>외사경력</th>
<th>수사경력</th>
<th>정보경력</th>
<th>보안경력</th>
<th>국제경력</th>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="policeTr" th:each="police:${policeList}">
<input type="hidden" class="userSeq" th:value="${police.userSeq}">
<td th:text="${police.rownum}"></td>
<td th:text="${police.titleCd}"></td>
<td th:text="${police.userNm}"></td>
<td th:text="${police.organNm}"></td>
<td th:text="${police.ofcCd}"></td>
<td th:text="${police.birthDate}"></td>
<td th:text="${police.sex}"></td>
<td>
<th:block th:if="${police.crc001Sum ne null and police.crc001Sum ne 0}">
<th:block th:if="${police.crc001Sum > 12}">
<th:block th:text="|${police.crc001Sum/12}년 ${police.crc001Sum%12}개월|"></th:block>
</th:block>
<th:block th:unless="${police.crc001Sum > 12}">
<th:block th:text="|${police.crc001Sum}개월|"></th:block>
</th:block>
</th:block>
</td>
<td>
<th:block th:if="${police.crc002Sum ne null and police.crc002Sum ne 0}">
<th:block th:if="${police.crc002Sum > 12}">
<th:block th:text="|${police.crc002Sum/12}년 ${police.crc002Sum%12}개월|"></th:block>
</th:block>
<th:block th:unless="${police.crc002Sum > 12}">
<th:block th:text="|${police.crc002Sum}개월|"></th:block>
</th:block>
</th:block>
</td>
<td>
<th:block th:if="${police.crc003Sum ne null and police.crc003Sum ne 0}">
<th:block th:if="${police.crc003Sum > 12}">
<th:block th:text="|${police.crc003Sum/12}년 ${police.crc003Sum%12}개월|"></th:block>
</th:block>
<th:block th:unless="${police.crc003Sum > 12}">
<th:block th:text="|${police.crc003Sum}개월|"></th:block>
</th:block>
</th:block>
</td>
<td>
<th:block th:if="${police.crc004Sum ne null and police.crc004Sum ne 0}">
<th:block th:if="${police.crc004Sum > 12}">
<th:block th:text="|${police.crc004Sum/12}년 ${police.crc004Sum%12}개월|"></th:block>
</th:block>
<th:block th:unless="${police.crc004Sum > 12}">
<th:block th:text="|${police.crc004Sum}개월|"></th:block>
</th:block>
</th:block>
</td>
<td>
<th:block th:if="${police.crc005Sum ne null and police.crc005Sum ne 0}">
<th:block th:if="${police.crc005Sum > 12}">
<th:block th:text="|${police.crc005Sum/12}년 ${police.crc005Sum%12}개월|"></th:block>
</th:block>
<th:block th:unless="${police.crc005Sum > 12}">
<th:block th:text="|${police.crc005Sum}개월|"></th:block>
</th:block>
</th:block>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="row justify-content-center">
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination mb-0">
<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>
</div>
</form>
<div class="row">
<div class="col-12">
<table class="table table-sm table-hover table-bordered">
<thead>
<tr class="table-secondary">
<th>순번</th>
<th>계급</th>
<th>성명</th>
<th></th>
<th>부서</th>
<th>생년월일</th>
<th>성별</th>
<th>외사경력</th>
<th>수사경력</th>
<th>정보경력</th>
<th>보안경력</th>
<th>국제경력</th>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="policeTr" th:each="police:${policeList}">
<input type="hidden" class="userSeq" th:value="${police.userSeq}">
<td th:text="${police.rownum}"></td>
<td th:text="${police.titleCd}"></td>
<td th:text="${police.userNm}"></td>
<td th:text="${police.organNm}"></td>
<td th:text="${police.ofcCd}"></td>
<td th:text="${police.birthDate}"></td>
<td th:text="${police.sex}"></td>
<td>
<th:block th:if="${police.crc001Sum ne null and police.crc001Sum ne 0}">
<th:block th:if="${police.crc001Sum > 12}">
<th:block th:text="|${police.crc001Sum/12}년 ${police.crc001Sum%12}개월|"></th:block>
</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==num?'active':''}">
<a class="page-link" href="#" th:text="${num}"></a>
</li>
<th:block th:unless="${police.crc001Sum > 12}">
<th:block th:text="|${police.crc001Sum}개월|"></th:block>
</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>
</td>
<td>
<th:block th:if="${police.crc002Sum ne null and police.crc002Sum ne 0}">
<th:block th:if="${police.crc002Sum > 12}">
<th:block th:text="|${police.crc002Sum/12}년 ${police.crc002Sum%12}개월|"></th:block>
</th:block>
</ul>
</nav>
</div>
</div>
<th:block th:unless="${police.crc002Sum > 12}">
<th:block th:text="|${police.crc002Sum}개월|"></th:block>
</th:block>
</th:block>
</td>
<td>
<th:block th:if="${police.crc003Sum ne null and police.crc003Sum ne 0}">
<th:block th:if="${police.crc003Sum > 12}">
<th:block th:text="|${police.crc003Sum/12}년 ${police.crc003Sum%12}개월|"></th:block>
</th:block>
<th:block th:unless="${police.crc003Sum > 12}">
<th:block th:text="|${police.crc003Sum}개월|"></th:block>
</th:block>
</th:block>
</td>
<td>
<th:block th:if="${police.crc004Sum ne null and police.crc004Sum ne 0}">
<th:block th:if="${police.crc004Sum > 12}">
<th:block th:text="|${police.crc004Sum/12}년 ${police.crc004Sum%12}개월|"></th:block>
</th:block>
<th:block th:unless="${police.crc004Sum > 12}">
<th:block th:text="|${police.crc004Sum}개월|"></th:block>
</th:block>
</th:block>
</td>
<td>
<th:block th:if="${police.crc005Sum ne null and police.crc005Sum ne 0}">
<th:block th:if="${police.crc005Sum > 12}">
<th:block th:text="|${police.crc005Sum/12}년 ${police.crc005Sum%12}개월|"></th:block>
</th:block>
<th:block th:unless="${police.crc005Sum > 12}">
<th:block th:text="|${police.crc005Sum}개월|"></th:block>
</th:block>
</th:block>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="row justify-content-center">
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination mb-0">
<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==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>

View File

@ -7,9 +7,12 @@
</th:block>
<div layout:fragment="content">
<main>
<h4>외사경찰 교육 현황</h4>
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row justify-content-between">
<div class="col-auto"><h4>외사경찰 교육 현황</h4></div>
<div class="col-auto"><p class="mb-0 mt-2">외사경찰 > 외사경찰 교육 현황</p></div>
</div>
<div class="row mx-0">
<div class="col-12 card bg-light text-center">
<div class="card-body">
@ -27,131 +30,121 @@
</li>
</ul>
<div class="tab-content bg-white border border-top-0 p-3" id="userContent">
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-12">
<form id="searchFm" method="get" th:action="@{/police/educationMgt}">
<input type="hidden" name="excel">
<input type="hidden" name="userStatus" th:value="${userStatus}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
</th:block>
</select>
</div>
</div>
<div class="row justify-content-end pe-3 py-1">
<div class="col-auto">
<div class="row justify-content-end">
<div class="col-auto">
<select class="form-select form-select-sm" name="ogCd">
<option value="">관서 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${searchParams.ogCd eq commonCode.itemCd}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="sex">
<option value="">성별</option>
<th:block th:each="commonCode:${session.commonCode.get('SEX')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${searchParams.sex eq commonCode.itemCd}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="이름" name="userNm" th:value="${searchParams.userNm}">
</div>
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>
</div>
</form>
</div>
</div>
<div class="row">
<div class="col-12">
<table class="table table-sm table-hover table-bordered">
<thead>
<tr class="table-secondary">
<th>순번</th>
<th>계급</th>
<th>성명</th>
<th></th>
<th>현부서<br></th>
<th>생년월일</th>
<th>성별</th>
<th>고등학교</th>
<th>전문대</th>
<th>대학교</th>
<th>석사</th>
<th>박사</th>
<th>전공</th>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="policeTr" th:each="list:${policeList}">
<th:block>
<input type="hidden" class="userSeq" th:value="${list.userSeq}">
</th:block>
<td th:text="${list.rownum}"></td>
<td th:text="${list.titleCd}"></td>
<td th:text="${list.userNm}"></td>
<td th:text="${list.organNm}"></td>
<td th:text="${list.ofcCd}"></td>
<td th:text="${list.birthDate}"></td>
<td th:text="${list.sex}"></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="row justify-content-between">
<div class="col-auto">
</div>
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination mb-0">
<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==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 class="col-auto">
<form id="searchFm" method="get" th:action="@{/police/educationMgt}">
<input type="hidden" name="excel">
<input type="hidden" name="userStatus" th:value="${userStatus}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between pb-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
</th:block>
</select>
</div>
<div class="col-8">
<div class="row justify-content-end">
<div class="col-auto">
<select class="form-select form-select-sm" name="ogCd">
<option value="">관서 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${searchParams.ogCd eq commonCode.itemCd}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="sex">
<option value="">성별</option>
<th:block th:each="commonCode:${session.commonCode.get('SEX')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${searchParams.sex eq commonCode.itemCd}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="이름" name="userNm" th:value="${searchParams.userNm}">
</div>
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>
</div>
</form>
<div class="row">
<div class="col-12">
<table class="table table-sm table-hover table-bordered">
<thead>
<tr class="table-secondary">
<th>순번</th>
<th>계급</th>
<th>성명</th>
<th></th>
<th>현부서<br></th>
<th>생년월일</th>
<th>성별</th>
<th>고등학교</th>
<th>전문대</th>
<th>대학교</th>
<th>석사</th>
<th>박사</th>
<th>전공</th>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="policeTr" th:each="list:${policeList}">
<th:block>
<input type="hidden" class="userSeq" th:value="${list.userSeq}">
</th:block>
<td th:text="${list.rownum}"></td>
<td th:text="${list.titleCd}"></td>
<td th:text="${list.userNm}"></td>
<td th:text="${list.organNm}"></td>
<td th:text="${list.ofcCd}"></td>
<td th:text="${list.birthDate}"></td>
<td th:text="${list.sex}"></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="row justify-content-between">
<div class="col-auto">
</div>
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination mb-0">
<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==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 class="col-auto">
</div>
</div>
</div>
</div>

View File

@ -7,9 +7,12 @@
</th:block>
<div layout:fragment="content">
<main>
<h4>외사경찰 정원/현원 현황</h4>
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row justify-content-between">
<div class="col-auto"><h4>외사경찰 정원/현원 현황</h4></div>
<div class="col-auto"><p class="mb-0 mt-2">외사경찰 > 외사경찰 정원/현원 현황</p></div>
</div>
<div class="row mx-0">
<div class="col-12 card bg-light text-center">
<div class="card-body">
@ -28,10 +31,10 @@
</div>
</div>
</form>
<div class="row justify-content-start">
<div class="col-12">
<div class="card">
<div class="card-body">
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-12">
<table class="table table-sm table-hover table-bordered" id="psTable">
<thead>
<tr class="table-secondary">

View File

@ -7,9 +7,12 @@
</th:block>
<div layout:fragment="content">
<main>
<h4 th:text="${userStatus eq 'USC003' ? '現 외사경찰 현황' : (userStatus eq 'USC006' ? '前 외사경찰 현황' : (userStatus eq 'USC007' ? '非 외사경찰 현황' : null))}"></h4>
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row justify-content-between">
<div class="col-auto"><h4>외사경찰현황</h4></div>
<div class="col-auto"><p class="mb-0 mt-2">외사경찰 > 외사경찰현황</p></div>
</div>
<div class="row mx-0">
<div class="col-12 card bg-light text-center">
<div class="card-body">
@ -27,30 +30,30 @@
</li>
</ul>
<div class="tab-content bg-white border border-top-0 p-3" id="userContent">
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-12">
<form id="searchFm" method="get" th:action="@{/police/policeList}">
<input type="hidden" name="excel">
<input type="hidden" name="userStatus" th:value="${userStatus}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<button type="button" class="btn btn-success" id="goExcel">엑셀다운</button>
</div>
</div>
<div class="row justify-content-end pe-3 py-1">
<div class="col-auto">
<div class="row pb-1">
<div class="col-12">
<form id="searchFm" method="get" th:action="@{/police/policeList}">
<input type="hidden" name="excel">
<input type="hidden" name="userStatus" th:value="${userStatus}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-end pb-1">
<div class="col-auto">
<button type="button" class="btn bnt-sm btn-success" id="goExcel">엑셀다운</button>
</div>
</div>
<div class="row justify-content-between">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
</th:block>
</select>
</div>
<div class="col-8">
<div class="row">
<div class="col-11">
<div class="row justify-content-end">
<div class="col-auto">
<div class="col-2">
<select class="form-select form-select-sm" name="ogCd">
<option value="">관서 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
@ -60,7 +63,7 @@
</th:block>
</select>
</div>
<div class="col-auto">
<div class="col-2">
<select class="form-select form-select-sm" name="sex">
<option value="">성별</option>
<th:block th:each="commonCode:${session.commonCode.get('SEX')}">
@ -68,108 +71,108 @@
</th:block>
</select>
</div>
<div class="col-auto">
<div class="col-2">
<input type="text" class="form-control form-control-sm" placeholder="이름" name="userNm" th:value="${searchParams.userNm}">
</div>
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>
<div class="col-1 d-grid gap-2">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div>
</form>
</div>
</div>
</div>
<div class="row">
<div class="col-12">
<table class="table table-sm table-hover table-bordered">
<thead>
<tr class="table-secondary">
<th>순번</th>
<th>계급</th>
<th>성명</th>
<th></th>
<th>현부서<br></th>
<th>생년월일</th>
<th>성별</th>
<th>최초<br>임용</th>
<th>현 계급<br>임용</th>
<th>현 부서<br>임용</th>
<th>수사경과<br>보유여부</th>
<th>외사경력</th>
<th>입직<br>경로</th>
<th>최종<br>수정일</th>
<th:block th:if="${userStatus eq 'USC003'} and ${accessAuth eq 'ACC003'}">
<th>전출<input type="checkbox" id="chk-all"></th>
</th:block>
<th:block th:if="${accessAuth eq 'ACC003'} and (${userStatus eq 'USC006'} or ${userStatus eq 'USC007'})">
<th>전입<input type="checkbox" id="chk-all"></th>
</th:block>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="policeTr" th:each="list:${policeList}">
<th:block>
<input type="hidden" class="userSeq" th:value="${list.userSeq}">
</th:block>
<td th:text="${list.rownum}"></td>
<td th:text="${list.titleCd}"></td>
<td th:text="${list.userNm}"></td>
<td th:text="${list.organNm}"></td>
<td th:text="${list.ofcCd}"></td>
<td th:text="${list.birthDate}"></td>
<td th:text="${list.sex}"></td>
<td th:text="${list.policeInDate}"></td>
<td th:text="${list.titleInDate}"></td>
<td th:text="${list.ofcInDate}"></td>
<td th:text="${list.outturnCd}"></td>
<td></td>
<td th:text="${list.jobInCd}"></td>
<td th:text="${#temporals.format(list.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
<th:block th:if="${userStatus eq 'USC003'} and ${accessAuth eq 'ACC003'}">
<td class="checkBoxTd"><input type="checkbox" name="policeChk" class="policeCheckBox"></td>
</th:block>
<th:block th:if="${accessAuth eq 'ACC003'} and (${userStatus eq 'USC006'} or ${userStatus eq 'USC007'})">
<td class="checkBoxTd"><input type="checkbox" name="policeChk" class="policeCheckBox"></td>
</th:block>
</tr>
</tbody>
</table>
</div>
</div>
<div class="row justify-content-between">
<div class="col-auto">
</div>
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination mb-0">
<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==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 class="col-auto">
<button type="button" class="btn btn-success" id="outBtn" th:if="${userStatus eq 'USC003'} and ${accessAuth eq 'ACC003'}">전출</button>
<button type="button" class="btn btn-success" id="inBtn" th:if="${accessAuth eq 'ACC003'} and (${userStatus eq 'USC006'} or ${userStatus eq 'USC007'})">전입</button>
</div>
</div>
</form>
</div>
</div>
<div class="row">
<div class="col-12">
<table class="table table-sm table-hover table-bordered">
<thead>
<tr class="table-secondary">
<th>순번</th>
<th>계급</th>
<th>성명</th>
<th></th>
<th>현부서<br></th>
<th>생년월일</th>
<th>성별</th>
<th>최초<br>임용</th>
<th>현 계급<br>임용</th>
<th>현 부서<br>임용</th>
<th>수사경과<br>보유여부</th>
<th>외사경력</th>
<th>입직<br>경로</th>
<th>최종<br>수정일</th>
<th:block th:if="${userStatus eq 'USC003'} and ${accessAuth eq 'ACC003'}">
<th>전출<input type="checkbox" id="chk-all"></th>
</th:block>
<th:block th:if="${accessAuth eq 'ACC003'} and (${userStatus eq 'USC006'} or ${userStatus eq 'USC007'})">
<th>전입<input type="checkbox" id="chk-all"></th>
</th:block>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="policeTr" th:each="list:${policeList}">
<th:block>
<input type="hidden" class="userSeq" th:value="${list.userSeq}">
</th:block>
<td th:text="${list.rownum}"></td>
<td th:text="${list.titleCd}"></td>
<td th:text="${list.userNm}"></td>
<td th:text="${list.organNm}"></td>
<td th:text="${list.ofcCd}"></td>
<td th:text="${list.birthDate}"></td>
<td th:text="${list.sex}"></td>
<td th:text="${list.policeInDate}"></td>
<td th:text="${list.titleInDate}"></td>
<td th:text="${list.ofcInDate}"></td>
<td th:text="${list.outturnCd}"></td>
<td></td>
<td th:text="${list.jobInCd}"></td>
<td th:text="${#temporals.format(list.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
<th:block th:if="${userStatus eq 'USC003'} and ${accessAuth eq 'ACC003'}">
<td class="checkBoxTd"><input type="checkbox" name="policeChk" class="policeCheckBox"></td>
</th:block>
<th:block th:if="${accessAuth eq 'ACC003'} and (${userStatus eq 'USC006'} or ${userStatus eq 'USC007'})">
<td class="checkBoxTd"><input type="checkbox" name="policeChk" class="policeCheckBox"></td>
</th:block>
</tr>
</tbody>
</table>
</div>
</div>
<div class="row justify-content-between">
<div class="col-auto">
</div>
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination mb-0">
<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==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 class="col-auto">
<button type="button" class="btn btn-success" id="outBtn" th:if="${userStatus eq 'USC003'} and ${accessAuth eq 'ACC003'}">전출</button>
<button type="button" class="btn btn-success" id="inBtn" th:if="${accessAuth eq 'ACC003'} and (${userStatus eq 'USC006'} or ${userStatus eq 'USC007'})">전입</button>
</div>
</div>
</div>

View File

@ -15,48 +15,48 @@
<div class="row mx-0">
<div class="col-12 card bg-light text-center">
<div class="card-body">
<form method="get" th:action="@{/publicBoard/boardPage}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<div class="row justify-content-end">
<div class="col-auto" sec:authorize="hasRole('ROLE_SUB_ADMIN')">
<select class="form-select form-select-sm" name="wrtOrgan">
<option value="">관서 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.wrtOrgan}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="제목" name="title" th:value="${searchParams.title}">
</div>
<div class="col-4">
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
</div>
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>
</div>
</form>
<div class="row justify-content-start">
<div class="col-12">
<div class="card">
<div class="card-body">
<form method="get" th:action="@{/publicBoard/boardPage}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<div class="row justify-content-end">
<div class="col-auto" sec:authorize="hasRole('ROLE_SUB_ADMIN')">
<select class="form-select form-select-sm" name="wrtOrgan">
<option value="">관서 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.wrtOrgan}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="제목" name="title" th:value="${searchParams.title}">
</div>
<div class="col-4">
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
</div>
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>
</div>
</form>
<div class="row">
<div class="col-12">
<table class="table table-sm table-hover table-bordered">

View File

@ -15,51 +15,51 @@
<div class="row mx-0">
<div class="col-12 card bg-light text-center">
<div class="card-body">
<div class="row justify-content-start">
<form method="get" th:action="@{/publicBoard/noticePage}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<div class="row justify-content-end">
<div class="col-auto">
<select class="form-select form-select-sm" name="wrtOrgan">
<option value="">관서 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.wrtOrgan}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="작성자" name="wrtUserNm" th:value="${searchParams.wrtUserNm}">
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="제목" name="title" th:value="${searchParams.title}">
</div>
<div class="col-4">
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
</div>
<div class="col-1 d-grid gap-0">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>
</div>
</form>
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-body">
<form method="get" th:action="@{/publicBoard/noticePage}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<div class="row justify-content-end">
<div class="col-auto">
<select class="form-select form-select-sm" name="wrtOrgan">
<option value="">관서 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.wrtOrgan}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="작성자" name="wrtUserNm" th:value="${searchParams.wrtUserNm}">
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="제목" name="title" th:value="${searchParams.title}">
</div>
<div class="col-4">
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
</div>
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>
</div>
</form>
<div class="row">
<div class="col-12">
<table class="table table-sm table-hover table-bordered">

View File

@ -16,48 +16,48 @@
<div class="row mx-0">
<div class="col-12 card bg-light text-center">
<div class="card-body">
<form method="get" th:action="@{/publicBoard/qnaPage}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<div class="row justify-content-end">
<div class="col-auto" sec:authorize="hasRole('ROLE_SUB_ADMIN')">
<select class="form-select form-select-sm" name="wrtOrgan">
<option value="">관서 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.wrtOrgan}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="제목" name="title" th:value="${searchParams.title}">
</div>
<div class="col-4">
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
</div>
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>
</div>
</form>
<div class="row justify-content-start">
<div class="col-12">
<div class="card">
<div class="card-body">
<form method="get" th:action="@{/publicBoard/qnaPage}">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<div class="row justify-content-end">
<div class="col-auto" sec:authorize="hasRole('ROLE_SUB_ADMIN')">
<select class="form-select form-select-sm" name="wrtOrgan">
<option value="">관서 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.wrtOrgan}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-auto">
<input type="text" class="form-control form-control-sm" placeholder="제목" name="title" th:value="${searchParams.title}">
</div>
<div class="col-4">
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
</div>
<div class="col-auto">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>
</div>
</form>
<div class="row">
<div class="col-12">
<table class="table table-sm table-hover table-bordered">

View File

@ -7,170 +7,180 @@
</th:block>
<div layout:fragment="content">
<main>
<h4>민간 통역인 현황</h4>
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row justify-content-between">
<div class="col-auto"><h4>민간통역인 현황</h4></div>
<div class="col-auto"><p class="mb-0 mt-2">민간통역인 > 민간통역인 현황</p></div>
</div>
<div class="row mx-0">
<div class="col-12 card bg-light text-center">
<div class="card-body">
<form id="searchFm" method="get" th:action="@{/translator/info}">
<input type="hidden" name="excel">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row pe-3 py-1">
<div class="col-1">
<div class="row justify-content-between py-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}">
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
</th:block>
</select>
</div>
<div class="col-10">
<div class="row justify-content-end pb-1">
<div class="col-auto">
<select class="form-select form-select-sm" name="dmlYn">
<option value="">해촉 선택</option>
<option value="O" th:selected="${'O' eq searchParams.dmlYn}">O</option>
<option value="X" th:selected="${'X' eq searchParams.dmlYn}">X</option>
</select>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="ogdp1">
<option value="">관서 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.ogdp1}"></option>
</th:block>
</th:block>
</select>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="trLang">
<option value="">언어 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('LGG')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.trLang}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="trVisa">
<option value="">비자 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('VISA')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.trVisa}"></option>
</th:block>
</select>
</div>
<div class="col-auto">
<select class="form-select form-select-sm" name="trNny">
<option value="">국적선택</option>
<th:block th:each="commonCode:${session.commonCode.get('NNY')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.trNny}"></option>
</th:block>
</select>
</div>
</div>
<div class="row justify-content-end">
<div class="col-auto">
<input type="text" class="form-control form-select-sm" name="trName" th:value="${searchParams.trName}" placeholder="성명">
</div>
<div class="col-auto">
<input type="text" class="form-control form-select-sm" name="aptDt" th:value="${searchParams.aptDt}" placeholder="위촉일" readonly>
</div>
</div>
</div>
<div class="col-1 d-grid gap-2">
<input type="submit" class="btn btn-lg btn-primary col-auto" id="searchBtn" value="검색">
</div>
</div>
</form>
<div class="row justify-content-start">
<div class="col-12">
<div class="card">
<div class="card-body">
<div class="row">
<input type="hidden" id="selectedKey">
<input type="hidden" id="selectedVerNo">
<table class="table table-sm table-hover table-bordered">
<thead>
<tr class="table-secondary">
<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>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="userInfoTr" data-bs-toggle="dropdown" aria-expanded="false" th:each="trInfo:${translatorList}">
<input type="hidden" class="trKey" th:value="${trInfo.translatorKey}">
<input type="hidden" class="verNo" th:value="${trInfo.versionNo}">
<td>
<p class="m-0" th:text="${trInfo.translatorKey}"></p>
<ul class="dropdown-menu">
<li><a class="dropdown-item careerInfo" href="#">경력관리</a></li>
<li><a class="dropdown-item translatorInfo" href="#">인적사항</a></li>
</ul>
</td>
<td th:text="${trInfo.ogdp1}"></td>
<td th:text="${trInfo.trLang}"></td>
<td th:text="${trInfo.trCareer}"></td>
<td th:text="${trInfo.trName}"></td>
<td th:text="${trInfo.trSex}"></td>
<td th:text="${trInfo.trAge}"></td>
<td th:text="${trInfo.trNny}"></td>
<td th:text="${trInfo.trEdu}"></td>
<td th:text="${trInfo.trCft}"></td>
<td th:text="${trInfo.trVisa}"></td>
<td th:if="${trInfo.dmlYn == 'O'}"></td>
<td th:unless="${trInfo.dmlYn == 'O'}"></td>
<td th:text="${trInfo.aptDt}"></td>
<td th:text="${trInfo.trPhone}"></td>
</tr>
</tbody>
</table>
</div>
<div class="row justify-content-between">
<div class="col-auto">
<button id="goExcel" class="btn btn-success">엑셀다운</button>
</div>
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination mb-0">
<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>
<div class="col-8">
<div class="row">
<div class="col-11">
<div class="row justify-content-end pb-1">
<div class="col-2">
<select class="form-select form-select-sm" name="dmlYn">
<option value="">해촉 선택</option>
<option value="O" th:selected="${'O' eq searchParams.dmlYn}">O</option>
<option value="X" th:selected="${'X' eq searchParams.dmlYn}">X</option>
</select>
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="ogdp1">
<option value="">관서 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.ogdp1}"></option>
</th:block>
</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==num?'active':''}">
<a class="page-link" href="#" th:text="${num}"></a>
</li>
</select>
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="trLang">
<option value="">언어 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('LGG')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.trLang}"></option>
</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>
</select>
</div>
<div class="col-2">
<select class="form-select form-select-sm" name="trVisa">
<option value="">비자 선택</option>
<th:block th:each="commonCode:${session.commonCode.get('VISA')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.trVisa}"></option>
</th:block>
</ul>
</nav>
</select>
</div>
</div>
<div class="row justify-content-end">
<div class="col-2">
<select class="form-select form-select-sm" name="trNny">
<option value="">국적선택</option>
<th:block th:each="commonCode:${session.commonCode.get('NNY')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.trNny}"></option>
</th:block>
</select>
</div>
<div class="col-2">
<input type="text" class="form-control form-select-sm" name="trName" th:value="${searchParams.trName}" placeholder="성명">
</div>
<!--<div class="col-2">
<input type="text" class="form-control form-select-sm" name="aptDt" th:value="${searchParams.aptDt}" placeholder="위촉일" readonly>
</div>-->
<div class="col-4">
<div class="input-group input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="위촉일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="위촉일" autocomplete="off" readonly th:value="${searchParams.endDate}">
</div>
</div>
</div>
<div class="col-auto">
<button data-bs-toggle="modal" class="btn btn-primary" data-bs-target="#translatorInsertModal" th:unless="${accessAuth eq 'ACC001'}">등록</button>
</div>
</div>
<div class="col-1 d-grid gap-2">
<input type="submit" class="btn btn-primary" id="searchBtn" value="검색">
</div>
</div>
</div>
</div>
</form>
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-12">
<input type="hidden" id="selectedKey">
<input type="hidden" id="selectedVerNo">
<table class="table table-sm table-hover table-bordered">
<thead>
<tr class="table-secondary">
<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>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="userInfoTr" data-bs-toggle="dropdown" aria-expanded="false" th:each="trInfo:${translatorList}">
<input type="hidden" class="trKey" th:value="${trInfo.translatorKey}">
<input type="hidden" class="verNo" th:value="${trInfo.versionNo}">
<td>
<p class="m-0" th:text="${trInfo.translatorKey}"></p>
<ul class="dropdown-menu">
<li><a class="dropdown-item careerInfo" href="#">경력관리</a></li>
<li><a class="dropdown-item translatorInfo" href="#">인적사항</a></li>
</ul>
</td>
<td th:text="${trInfo.ogdp1}"></td>
<td th:text="${trInfo.trLang}"></td>
<td th:text="${trInfo.trCareer}"></td>
<td th:text="${trInfo.trName}"></td>
<td th:text="${trInfo.trSex}"></td>
<td th:text="${trInfo.trAge}"></td>
<td th:text="${trInfo.trNny}"></td>
<td th:text="${trInfo.trEdu}"></td>
<td th:text="${trInfo.trCft}"></td>
<td th:text="${trInfo.trVisa}"></td>
<td th:if="${trInfo.dmlYn == 'O'}"></td>
<td th:unless="${trInfo.dmlYn == 'O'}"></td>
<td th:text="${trInfo.aptDt}"></td>
<td th:text="${trInfo.trPhone}"></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="row justify-content-between">
<div class="col-auto">
<button id="goExcel" class="btn btn-success">엑셀다운</button>
</div>
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination mb-0">
<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==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 class="col-auto">
<button data-bs-toggle="modal" class="btn btn-primary" data-bs-target="#translatorInsertModal" th:unless="${accessAuth eq 'ACC001'}">등록</button>
</div>
</div>
</div>
@ -188,114 +198,114 @@
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<form id="translatorInsert" action="#" method="post">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<br>
<div class="row mb-1">
<label for="ogdp1" class="col-sm-1 col-form-label text-center fs-13 fw-bold">관서</label>
<div class="col-sm-3">
<select class="form-select" id="ogdp1" name="ogdp1" th:disabled="${accessAuth ne 'ACC003'}">
<option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq userOrgan}"></option>
<form id="translatorInsert" action="#" method="post">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<br>
<div class="row mb-1">
<label for="ogdp1" class="col-sm-1 col-form-label text-center fs-13 fw-bold">관서</label>
<div class="col-sm-3">
<select class="form-select" id="ogdp1" name="ogdp1" th:disabled="${accessAuth ne 'ACC003'}">
<option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq userOrgan}"></option>
</th:block>
</th:block>
</th:block>
</select>
</select>
</div>
<label for="lang" class="col-sm-1 col-form-label text-center fs-13 fw-bold">언어</label>
<div class="col-sm-3">
<select class="form-select" id="lang" name="trLang">
<option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('LGG')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"></option>
</th:block>
</select>
</div>
<label for="trCareer" class="col-sm-1 col-form-label text-center fs-13 fw-bold">경력</label>
<div class="col-sm-3">
<input type="text" class="form-control" id="trCareer" name="trCareer">
</div>
</div>
<label for="lang" class="col-sm-1 col-form-label text-center fs-13 fw-bold">언어</label>
<div class="col-sm-3">
<select class="form-select" id="lang" name="trLang">
<option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('LGG')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"></option>
</th:block>
</select>
<div class="row mb-1">
<label for="trName" class="col-sm-1 col-form-label text-center fs-13 fw-bold">성명</label>
<div class="col-sm-3">
<input type="text" class="form-control" id="trName" name="trName">
</div>
<label for="trSex" class="col-sm-1 col-form-label text-center fs-13 fw-bold">성별</label>
<div class="col-sm-3">
<select class="form-select" id="trSex" name="trSex">
<option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('SEX')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"></option>
</th:block>
</select>
</div>
<label for="trPhone" class="col-sm-1 col-form-label text-center fs-13 fw-bold">연락처</label>
<div class="col-sm-3">
<input type="text" class="form-control" id="trPhone" name="trPhone">
</div>
</div>
<label for="trCareer" class="col-sm-1 col-form-label text-center fs-13 fw-bold">경력</label>
<div class="col-sm-3">
<input type="text" class="form-control" id="trCareer" name="trCareer">
<div class="row mb-1">
<label for="trNny" class="col-sm-1 col-form-label text-center fs-13 fw-bold">국적</label>
<div class="col-sm-3">
<select class="form-select" id="trNny" name="trNny">
<option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('NNY')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"></option>
</th:block>
</select>
</div>
<label for="trAge" class="col-sm-1 col-form-label text-center fs-13 fw-bold">나이</label>
<div class="col-sm-3">
<input type="text" class="form-control" id="trAge" name="trAge">
</div>
<label for="trEdu" class="col-sm-1 col-form-label text-center fs-13 fw-bold">학력</label>
<div class="col-sm-3">
<select class="form-select" id="trEdu" name="trEdu">
<option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('EDU')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"></option>
</th:block>
</select>
</div>
</div>
</div>
<div class="row mb-1">
<label for="trName" class="col-sm-1 col-form-label text-center fs-13 fw-bold">성명</label>
<div class="col-sm-3">
<input type="text" class="form-control" id="trName" name="trName">
<div class="row mb-1">
<label for="trCft" class="col-sm-1 col-form-label text-center fs-13 fw-bold">자격증</label>
<div class="col-sm-3">
<input type="text" class="form-control" id="trCft" name="trCft">
</div>
<label for="trVisa" class="col-sm-1 col-form-label text-center fs-13 fw-bold">비자</label>
<div class="col-sm-3">
<select class="form-select" id="trVisa" name="trVisa">
<option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('VISA')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"></option>
</th:block>
</select>
</div>
<label for="aptDt" class="col-sm-1 col-form-label text-center fs-13 fw-bold">위촉일</label>
<div class="col-sm-3">
<input type="text" class="form-control" id="aptDt" name="aptDt" readonly>
</div>
</div>
<label for="trSex" class="col-sm-1 col-form-label text-center fs-13 fw-bold">성별</label>
<div class="col-sm-3">
<select class="form-select" id="trSex" name="trSex">
<option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('SEX')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"></option>
</th:block>
</select>
<div class="mb-2 row">
<label for="dmlYn" class="col-sm-1 col-form-label text-center fs-13 fw-bold">해촉</label>
<div class="col-sm-3">
<select class="form-select" id="dmlYn" name="dmlYn">
<option value="">선택</option>
<option value="O">O</option>
<option value="X">X</option>
</select>
</div>
<label for="remark" class="col-sm-1 col-form-label text-center fs-13 fw-bold">비고</label>
<div class="col-sm-7">
<input type="text" class="form-control" id="remark" name="remark">
</div>
</div>
<label for="trPhone" class="col-sm-1 col-form-label text-center fs-13 fw-bold">연락처</label>
<div class="col-sm-3">
<input type="text" class="form-control" id="trPhone" name="trPhone">
</div>
</div>
<div class="row mb-1">
<label for="trNny" class="col-sm-1 col-form-label text-center fs-13 fw-bold">국적</label>
<div class="col-sm-3">
<select class="form-select" id="trNny" name="trNny">
<option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('NNY')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"></option>
</th:block>
</select>
</div>
<label for="trAge" class="col-sm-1 col-form-label text-center fs-13 fw-bold">나이</label>
<div class="col-sm-3">
<input type="text" class="form-control" id="trAge" name="trAge">
</div>
<label for="trEdu" class="col-sm-1 col-form-label text-center fs-13 fw-bold">학력</label>
<div class="col-sm-3">
<select class="form-select" id="trEdu" name="trEdu">
<option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('EDU')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"></option>
</th:block>
</select>
</div>
</div>
<div class="row mb-1">
<label for="trCft" class="col-sm-1 col-form-label text-center fs-13 fw-bold">자격증</label>
<div class="col-sm-3">
<input type="text" class="form-control" id="trCft" name="trCft">
</div>
<label for="trVisa" class="col-sm-1 col-form-label text-center fs-13 fw-bold">비자</label>
<div class="col-sm-3">
<select class="form-select" id="trVisa" name="trVisa">
<option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('VISA')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"></option>
</th:block>
</select>
</div>
<label for="aptDt" class="col-sm-1 col-form-label text-center fs-13 fw-bold">위촉일</label>
<div class="col-sm-3">
<input type="text" class="form-control" id="aptDt" name="aptDt" readonly>
</div>
</div>
<div class="mb-2 row">
<label for="dmlYn" class="col-sm-1 col-form-label text-center fs-13 fw-bold">해촉</label>
<div class="col-sm-3">
<select class="form-select" id="dmlYn" name="dmlYn">
<option value="">선택</option>
<option value="O">O</option>
<option value="X">X</option>
</select>
</div>
<label for="remark" class="col-sm-1 col-form-label text-center fs-13 fw-bold">비고</label>
<div class="col-sm-7">
<input type="text" class="form-control" id="remark" name="remark">
</div>
</div>
</form>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal" id="closeModalBtn">닫기</button>

View File

@ -7,68 +7,69 @@
</th:block>
<div layout:fragment="content">
<main>
<h4>어권별 현황</h4>
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="row justify-content-between">
<div class="col-auto"><h4>어권별 현황</h4></div>
<div class="col-auto"><p class="mb-0 mt-2">민간통역인 > 어권별 현황</p></div>
</div>
<div class="row mx-0">
<div class="col-12 card bg-light text-center">
<div class="card-body">
<div class="row justify-content-start">
<div class="col-12">
<div class="card">
<div class="card-body">
<div class="row justify-content-end">
<div class="col-auto">
<button id="excelDown" class="btn btn-success">엑셀다운</button>
</div>
</div>
<div class="row">
<table class="table table-sm table-hover table-bordered">
<thead>
<tr class="table-secondary">
<th colspan="2">어권별 구분</th>
<th>총계</th>
<th>중부청</th>
<th>서해청</th>
<th>남해청</th>
<th>동해청</th>
<th>제주청</th>
</tr>
<tr class="table-secondary">
<th>연번</th>
<th></th>
<th:block th:if="${not #strings.isEmpty(total)}">
<div class="row justify-content-end pb-1">
<div class="col-auto">
<button id="excelDown" class="btn btn-success">엑셀다운</button>
</div>
</div>
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-12">
<table class="table table-sm table-hover table-bordered">
<thead>
<tr class="table-secondary">
<th colspan="2">어권별 구분</th>
<th>총계</th>
<th>중부청</th>
<th>서해청</th>
<th>남해청</th>
<th>동해청</th>
<th>제주청</th>
</tr>
<tr class="table-secondary">
<th>연번</th>
<th></th>
<th:block th:if="${not #strings.isEmpty(total)}">
<th th:text="${total.total_total}"></th>
<th th:text="${total.total_center}"></th>
<th th:text="${total.total_west}"></th>
<th th:text="${total.total_south}"></th>
<th th:text="${total.total_east}"></th>
<th th:text="${total.total_jeju}"></th>
</th:block>
<th:block th:unless="${not #strings.isEmpty(total)}">
<th th:text="${total.total_jeju}"></th>
</th:block>
<th:block th:unless="${not #strings.isEmpty(total)}">
<th>0</th>
<th>0</th>
<th>0</th>
<th>0</th>
<th>0</th>
<th>0</th>
</th:block>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="" th:each="cnt,index:${cntList}">
<td th:text="${index.index+1}"></td>
<td th:text="${cnt.lang}"></td>
<td th:text="${cnt.cnt_total}"></td>
<td th:text="${cnt.cnt_center}"></td>
<td th:text="${cnt.cnt_west}"></td>
<td th:text="${cnt.cnt_south}"></td>
<td th:text="${cnt.cnt_east}"></td>
<td th:text="${cnt.cnt_jeju}"></td>
</tr>
</tbody>
</table>
</div>
</th:block>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="" th:each="cnt,index:${cntList}">
<td th:text="${index.index+1}"></td>
<td th:text="${cnt.lang}"></td>
<td th:text="${cnt.cnt_total}"></td>
<td th:text="${cnt.cnt_center}"></td>
<td th:text="${cnt.cnt_west}"></td>
<td th:text="${cnt.cnt_south}"></td>
<td th:text="${cnt.cnt_east}"></td>
<td th:text="${cnt.cnt_jeju}"></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>

View File

@ -29,19 +29,18 @@
</th:block>
</select>
</div>
<div class="col-6">
<div class="row justify-content-end">
<div class="col-10">
<div class="row">
<div class="col-3"></div>
<div class="col-3">
<div class="col-8">
<div class="row">
<div class="col-11">
<div class="row justify-content-end pb-1">
<div class="col-2">
<select class="form-select form-select-sm" name="viewYn">
<option value="">열람여부</option>
<option value="Y" th:selected="${searchParams.viewYn eq 'Y'}">O</option>
<option value="N" th:selected="${searchParams.viewYn eq 'N'}">X</option>
</select>
</div>
<div class="col-6">
<div class="col-4">
<div class="input-group">
<select class="form-select form-select-sm" name="cat1Cd">
<option value="">대분류</option>
@ -63,10 +62,12 @@
</select>
</div>
</div>
<div class="col-6 pt-1">
</div>
<div class="row justify-content-end">
<div class="col-4">
<input type="text" class="form-control form-control-sm" placeholder="메시지" name="alarmMsg" th:value="${searchParams.alarmMsg}">
</div>
<div class="col-6 pt-1">
<div class="col-4">
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
@ -74,7 +75,7 @@
</div>
</div>
</div>
<div class="col-2 d-grid gap-2">
<div class="col-1 d-grid gap-0">
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div>
</div>
@ -86,45 +87,46 @@
<div class="card">
<div class="card-body">
<div class="row">
<table class="table table-sm table-hover table-bordered">
<thead>
<tr class="table-secondary">
<th>대분류</th>
<th>중분류</th>
<th>소분류</th>
<th>메시지</th>
<th>열람여부</th>
<th>등록일시</th>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="alarmTr" th:each="alarm:${pageAlarmList}">
<input type="hidden" class="alarmKey" th:value="${alarm.alarmKey}">
<input type="hidden" class="userSeq" th:value="${alarm.userSeq}">
<td>
<th:block th:each="code:${session.commonCode.get('CAT1')}">
<th:block th:if="${code.itemCd eq alarm.cat1Cd}" th:text="${code.itemValue}"></th:block>
</th:block>
</td>
<td>
<th:block th:each="code:${session.commonCode.get('CAT2')}">
<th:block th:if="${code.itemCd eq alarm.cat2Cd}" th:text="${code.itemValue}"></th:block>
</th:block>
</td>
<td>
<th:block th:each="code:${session.commonCode.get('CAT3')}">
<th:block th:if="${code.itemCd eq alarm.cat3Cd}" th:text="${code.itemValue}"></th:block>
</th:block>
</td>
<td th:text="${alarm.alarmMsg}"></td>
<td th:text="${alarm.viewYn eq 'Y'?'O':'X'}"></td>
<td th:text="${#temporals.format(alarm.wrtDt, 'yyyy-MM-dd HH:mm:ss')}"></td>
</tr>
</tbody>
</table>
<div class="col-12">
<table class="table table-sm table-hover table-bordered">
<thead>
<tr class="table-secondary">
<th>대분류</th>
<th>중분류</th>
<th>소분류</th>
<th>메시지</th>
<th>열람여부</th>
<th>등록일시</th>
</tr>
</thead>
<tbody class="table-group-divider">
<tr class="alarmTr" th:each="alarm:${pageAlarmList}">
<input type="hidden" class="alarmKey" th:value="${alarm.alarmKey}">
<input type="hidden" class="userSeq" th:value="${alarm.userSeq}">
<td>
<th:block th:each="code:${session.commonCode.get('CAT1')}">
<th:block th:if="${code.itemCd eq alarm.cat1Cd}" th:text="${code.itemValue}"></th:block>
</th:block>
</td>
<td>
<th:block th:each="code:${session.commonCode.get('CAT2')}">
<th:block th:if="${code.itemCd eq alarm.cat2Cd}" th:text="${code.itemValue}"></th:block>
</th:block>
</td>
<td>
<th:block th:each="code:${session.commonCode.get('CAT3')}">
<th:block th:if="${code.itemCd eq alarm.cat3Cd}" th:text="${code.itemValue}"></th:block>
</th:block>
</td>
<td th:text="${alarm.alarmMsg}"></td>
<td th:text="${alarm.viewYn eq 'Y'?'O':'X'}"></td>
<td th:text="${#temporals.format(alarm.wrtDt, 'yyyy-MM-dd HH:mm:ss')}"></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="row justify-content-between">
<div class="col-auto"></div>
<div class="row justify-content-center">
<div class="col-auto">
<nav aria-label="Page navigation">
<ul class="pagination mb-0">
@ -150,9 +152,6 @@
</ul>
</nav>
</div>
<div class="col-auto">
<input type="button" class="btn btn-success" value="등록" id="addNoticeBtn" sec:authorize="hasRole('ROLE_SUB_ADMIN')">
</div>
</div>
</div>
</div>

View File

@ -44,10 +44,10 @@
<div class="row justify-content-end">
<div class="col-auto">
<button type="button" class="btn btn-sm btn-info" id="syncBtn" th:disabled="${#strings.isEmpty(userInfo.dicCode)}">인사시스템 정보 연동</button>
<label for="syncBtn" style="font-size: 12px" th:if="${#strings.isEmpty(userInfo.dicCode)}">공무원식별번호가 필요합니다.</label>
<label for="syncBtn" class="fs-12" th:if="${#strings.isEmpty(userInfo.dicCode)}">공무원식별번호가 필요합니다.</label>
</div>
<div class="col-auto">
<button type="button" class="btn btn-sm btn-primary" id="updateBtn">수정</button>
<button type="button" class="btn btn-sm btn-success" id="updateBtn">수정</button>
</div>
</div>
</div>