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

강석 최 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") @RequestMapping("/faStatistics")
public class CrackdownStatusController { public class CrackdownStatusController {
private final AuthMgtService authMgtService; private final AuthMgtService authMgtService;
private final CrackdownStatusService crackdownStatusService; private final CrackdownStatusService crackdownStatusService;
private final ViolationRepository violationRepository; private final ViolationRepository violationRepository;
private final ProcessResultRepository processResultRepository; private final ProcessResultRepository processResultRepository;
private final FishingBoatRepository fishingBoatRepository; private final FishingBoatRepository fishingBoatRepository;
private final SailorRepository sailorRepository; private final SailorRepository sailorRepository;
@RequestMapping("/crackdownStatus") @RequestMapping("/crackdownStatus")
public ModelAndView crackdownStatus(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus) { public ModelAndView crackdownStatus(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus) {
ModelAndView mav = new ModelAndView("faStatistics/crackdownStatus/crackdownStatus"); ModelAndView mav = new ModelAndView("faStatistics/crackdownStatus/crackdownStatus");
//메뉴권한 확인
String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/faStatistics/crackdownStatus").get(0).getAccessAuth();
mav.addObject("accessAuth", accessAuth);
//메뉴권한 확인 crackdownStatus.setYear(((Integer)LocalDateTime.now().getYear()).toString());
String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/faStatistics/crackdownStatus").get(0).getAccessAuth(); List<CrackdownStatus> crackdownStatusList = crackdownStatusService.selectCrackdownStatusList(crackdownStatus);
for (CrackdownStatus cds:crackdownStatusList) {
mav.addObject("accessAuth", accessAuth); cds.setViolationList(violationRepository.findByFbKey(cds.getFbKey()));
cds.setProcessResult(processResultRepository.findByCdsKey(cds.getCdsKey()).orElse(new ProcessResult()));
List<CrackdownStatus> crackdownStatusList = crackdownStatusService.selectCrackdownStatusList(crackdownStatus); cds.setFishingBoat(fishingBoatRepository.findByCdsKey(cds.getCdsKey()).orElse(new FishingBoat()));
cds.setSailorList(sailorRepository.findByFbKey(cds.getFbKey()));
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;
} }
@GetMapping("/crackdownStatus/crackdownStatusViewModal") mav.addObject("crackdownStatusList", crackdownStatusList);
public ModelAndView crackdownStatusViewModal(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus){ mav.addObject("searchParams", crackdownStatus);
ModelAndView mav = new ModelAndView("faStatistics/crackdownStatus/crackdownStatusViewModal"); return mav;
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); @GetMapping("/crackdownStatus/crackdownStatusViewModal")
mav.addObject("userSeq",loginUser.getUserSeq()); public ModelAndView crackdownStatusViewModal(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus){
//메뉴권한 확인 ModelAndView mav = new ModelAndView("faStatistics/crackdownStatus/crackdownStatusViewModal");
mav.addObject("accessAuth", authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/faStatistics/crackdownStatus").get(0).getAccessAuth()); crackdownStatus = crackdownStatusService.selectCrackdownStatus(crackdownStatus.getCdsKey());
return mav; 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") @GetMapping("/crackdownStatus/crackdownStatusHistoryViewModal")
public ModelAndView crackdownStatusEditModal(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus){ public ModelAndView crackdownStatusHistoryViewModal(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus){
ModelAndView mav = new ModelAndView("faStatistics/crackdownStatus/crackdownStatusEditModal"); ModelAndView mav = new ModelAndView("faStatistics/crackdownStatus/crackdownStatusHistoryViewModal");
if(crackdownStatus.getCdsKey()!=null){ List<CrackdownStatusVersion> crackdownStatusVersionList = crackdownStatusService.selectCrackdownStatusVersionList(crackdownStatus.getCdsKey());
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") mav.addObject("crackdownStatusVersionList", crackdownStatusVersionList);
public ModelAndView crackdownStatusHistoryViewModal(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus){ mav.addObject("crackdownStatus", crackdownStatus);
ModelAndView mav = new ModelAndView("faStatistics/crackdownStatus/crackdownStatusHistoryViewModal"); return mav;
List<CrackdownStatusVersion> crackdownStatusVersionList = crackdownStatusService.selectCrackdownStatusVersionList(crackdownStatus.getCdsKey()); }
mav.addObject("crackdownStatusVersionList", crackdownStatusVersionList); @GetMapping("/crackdownStatus/crackdownStatusHistoryDetail")
mav.addObject("crackdownStatus", crackdownStatus); public ModelAndView crackdownStatusHistoryDetail(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatusVersion crackdownStatusVersion){
return mav; ModelAndView mav = new ModelAndView("faStatistics/crackdownStatus/crackdownStatusHistoryDetail");
}
@GetMapping("/crackdownStatus/crackdownStatusHistoryDetail") crackdownStatusVersion = crackdownStatusService.selectCrackdownStatusVersion(crackdownStatusVersion.getVersionNo(), crackdownStatusVersion.getCdsKey());
public ModelAndView crackdownStatusHistoryDetail(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatusVersion crackdownStatusVersion){
ModelAndView mav = new ModelAndView("faStatistics/crackdownStatus/crackdownStatusHistoryDetail");
crackdownStatusVersion = crackdownStatusService.selectCrackdownStatusVersion(crackdownStatusVersion.getVersionNo(), crackdownStatusVersion.getCdsKey()); mav.addObject("crackdownStatusVersion", crackdownStatusVersion);
return mav;
}
mav.addObject("crackdownStatusVersion", crackdownStatusVersion); @PostMapping("/crackdownStatus/saveCrackdownStatus")
return mav; public Integer saveCrackdownStatus(@AuthenticationPrincipal UserInfo loginUser,
} CrackdownStatus crackdownStatus,
FishingBoat fishingBoat,
@PostMapping("/crackdownStatus/saveCrackdownStatus") ProcessResult processResult){
public Integer saveCrackdownStatus(@AuthenticationPrincipal UserInfo loginUser, crackdownStatus.setWrtUserSeq(loginUser.getUserSeq());
CrackdownStatus crackdownStatus, crackdownStatus.setFishingBoat(fishingBoat);
FishingBoat fishingBoat, crackdownStatus.setProcessResult(processResult);
ProcessResult processResult){ return crackdownStatusService.saveCrackdownStatus(crackdownStatus);
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 inner join hash_tag b on a.tag_key = b.tag_key
where a.affair_key = #{affairKey} where a.affair_key = #{affairKey}
</select> </select>
<sql id="searchStatistics"> <sql id="searchStatistics">
<if test='userNm != null and userNm != ""'> <if test='userNm != null and userNm != ""'>
and wrt_user_nm like '%'||#{userNm}||'%' and wrt_user_nm like '%'||#{userNm}||'%'
@ -129,7 +129,7 @@
and ab.affair_key in ( and ab.affair_key in (
select affair_key select affair_key
from affair_rating ar2 from affair_rating ar2
inner join organ_config oc2 inner join organ_config oc2
on ar2.rating_organ = oc2.organ_cd on ar2.rating_organ = oc2.organ_cd
<where> <where>
<if test='rating != null and rating != ""'> <if test='rating != null and rating != ""'>
@ -149,7 +149,7 @@
) )
</if> </if>
</sql> </sql>
<sql id="statisticsCategory1"> <sql id="statisticsCategory1">
<choose> <choose>
<when test='category1 != null and category1 != ""'> <when test='category1 != null and category1 != ""'>
@ -163,7 +163,7 @@
</otherwise> </otherwise>
</choose> </choose>
</sql> </sql>
<sql id="statisticsCategory2"> <sql id="statisticsCategory2">
<choose> <choose>
<when test='category2 != null and category2 != ""'> <when test='category2 != null and category2 != ""'>
@ -177,7 +177,7 @@
</otherwise> </otherwise>
</choose> </choose>
</sql> </sql>
<sql id="statisticsCategory3"> <sql id="statisticsCategory3">
<choose> <choose>
<when test='category3 != null and category3 != ""'> <when test='category3 != null and category3 != ""'>
@ -191,7 +191,7 @@
</otherwise> </otherwise>
</choose> </choose>
</sql> </sql>
<sql id="statisticsCategory4"> <sql id="statisticsCategory4">
<choose> <choose>
<when test='category4 != null and category4 != ""'> <when test='category4 != null and category4 != ""'>
@ -205,7 +205,7 @@
</otherwise> </otherwise>
</choose> </choose>
</sql> </sql>
<select id="selectStatusTotal" resultType="TypeStatistics" parameterType="TypeStatistics"> <select id="selectStatusTotal" resultType="TypeStatistics" parameterType="TypeStatistics">
select item_cd as wrt_organ, select item_cd as wrt_organ,
item_value, item_value,
@ -247,7 +247,7 @@
and ab.affair_key in ( and ab.affair_key in (
select affair_key select affair_key
from affair_rating ar2 from affair_rating ar2
inner join organ_config oc2 inner join organ_config oc2
on ar2.rating_organ = oc2.organ_cd on ar2.rating_organ = oc2.organ_cd
<where> <where>
<if test='rating != null and rating != ""'> <if test='rating != null and rating != ""'>
@ -290,11 +290,11 @@
#{item} #{item}
</foreach> </foreach>
</if> </if>
group by wrt_organ)b on group by wrt_organ)b on
a.item_cd = b.wrt_organ a.item_cd = b.wrt_organ
order by wrt_organ asc order by wrt_organ asc
</select> </select>
<select id="selecType1ListCnt" resultType="TypeStatistics" parameterType="TypeStatistics"> <select id="selecType1ListCnt" resultType="TypeStatistics" parameterType="TypeStatistics">
select b.item_cd as wrt_organ , select b.item_cd as wrt_organ ,
b.item_value, b.item_value,
@ -306,7 +306,7 @@
from code_mgt from code_mgt
where category_cd = 'DC01' where category_cd = 'DC01'
<include refid="statisticsCategory1"></include> <include refid="statisticsCategory1"></include>
)a left join )a left join
(select item_cd, (select item_cd,
item_value item_value
from code_mgt from code_mgt
@ -319,7 +319,7 @@
</foreach> </foreach>
</if> </if>
order by item_cd asc) b on 1=1 order by item_cd asc) b on 1=1
left outer join left outer join
(select wrt_organ, (select wrt_organ,
affair_type1 as affair_type, affair_type1 as affair_type,
count(*) as cnt count(*) as cnt
@ -328,11 +328,11 @@
where ab.affair_key = ar.affair_key where ab.affair_key = ar.affair_key
and (ar.organ_up != 'T' or ar.organ_up is null) and (ar.organ_up != 'T' or ar.organ_up is null)
<include refid="searchStatistics"></include> <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 on a.item_cd = c.affair_type and b.item_cd = c.wrt_organ
order by wrt_organ,affair_type asc order by wrt_organ,affair_type asc
</select> </select>
<select id="selecType2ListCnt" resultType="TypeStatistics" parameterType="TypeStatistics"> <select id="selecType2ListCnt" resultType="TypeStatistics" parameterType="TypeStatistics">
select b.item_cd as wrt_organ , select b.item_cd as wrt_organ ,
b.item_value, b.item_value,
@ -344,7 +344,7 @@
from code_mgt from code_mgt
where category_cd = 'DC02' where category_cd = 'DC02'
<include refid="statisticsCategory2"></include> <include refid="statisticsCategory2"></include>
)a left join )a left join
(select item_cd, (select item_cd,
item_value item_value
from code_mgt from code_mgt
@ -357,7 +357,7 @@
</foreach> </foreach>
</if> </if>
order by item_cd asc) b on 1=1 order by item_cd asc) b on 1=1
left outer join left outer join
(select wrt_organ, (select wrt_organ,
affair_type2 as affair_type, affair_type2 as affair_type,
count(*) as cnt count(*) as cnt
@ -366,11 +366,11 @@
where ab.affair_key = ar.affair_key where ab.affair_key = ar.affair_key
and (ar.organ_up != 'T' or ar.organ_up is null) and (ar.organ_up != 'T' or ar.organ_up is null)
<include refid="searchStatistics"></include> <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 on a.item_cd = c.affair_type and b.item_cd = c.wrt_organ
order by wrt_organ,affair_type asc order by wrt_organ,affair_type asc
</select> </select>
<select id="selecType3ListCnt" resultType="TypeStatistics" parameterType="TypeStatistics"> <select id="selecType3ListCnt" resultType="TypeStatistics" parameterType="TypeStatistics">
select b.item_cd as wrt_organ , select b.item_cd as wrt_organ ,
b.item_value, b.item_value,
@ -382,7 +382,7 @@
from code_mgt from code_mgt
where category_cd = 'DC03' where category_cd = 'DC03'
<include refid="statisticsCategory3"></include> <include refid="statisticsCategory3"></include>
)a left join )a left join
(select item_cd, (select item_cd,
item_value item_value
from code_mgt from code_mgt
@ -395,7 +395,7 @@
</foreach> </foreach>
</if> </if>
order by item_cd asc) b on 1=1 order by item_cd asc) b on 1=1
left outer join left outer join
(select wrt_organ, (select wrt_organ,
affair_type3 as affair_type, affair_type3 as affair_type,
count(*) as cnt count(*) as cnt
@ -404,11 +404,11 @@
where ab.affair_key = ar.affair_key where ab.affair_key = ar.affair_key
and (ar.organ_up != 'T' or ar.organ_up is null) and (ar.organ_up != 'T' or ar.organ_up is null)
<include refid="searchStatistics"></include> <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 on a.item_cd = c.affair_type and b.item_cd = c.wrt_organ
order by wrt_organ,affair_type asc order by wrt_organ,affair_type asc
</select> </select>
<select id="selecType4ListCnt" resultType="TypeStatistics" parameterType="TypeStatistics"> <select id="selecType4ListCnt" resultType="TypeStatistics" parameterType="TypeStatistics">
select b.item_cd as wrt_organ , select b.item_cd as wrt_organ ,
b.item_value, b.item_value,
@ -420,7 +420,7 @@
from code_mgt from code_mgt
where category_cd = 'DC04' where category_cd = 'DC04'
<include refid="statisticsCategory4"></include> <include refid="statisticsCategory4"></include>
)a left join )a left join
(select item_cd, (select item_cd,
item_value item_value
from code_mgt from code_mgt
@ -433,7 +433,7 @@
</foreach> </foreach>
</if> </if>
order by item_cd asc) b on 1=1 order by item_cd asc) b on 1=1
left outer join left outer join
(select wrt_organ, (select wrt_organ,
affair_type4 as affair_type, affair_type4 as affair_type,
count(*) as cnt count(*) as cnt
@ -442,26 +442,26 @@
where ab.affair_key = ar.affair_key where ab.affair_key = ar.affair_key
and (ar.organ_up != 'T' or ar.organ_up is null) and (ar.organ_up != 'T' or ar.organ_up is null)
<include refid="searchStatistics"></include> <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 on a.item_cd = c.affair_type and b.item_cd = c.wrt_organ
order by wrt_organ,affair_type asc order by wrt_organ,affair_type asc
</select> </select>
<sql id="raitingSearch"> <sql id="raitingSearch">
<if test='userNm != null and userNm != ""'> <if test='userNm != null and userNm != ""'>
and wrt_user_nm like '%'||#{userNm}||'%' and wrt_user_nm like '%'||#{userNm}||'%'
</if> </if>
<if test='startDate != null and startDate != ""'> <if test='startDate != null and startDate != ""'>
and wrt_dt >= #{startDate}::date and wrt_dt >= #{startDate}::date
</if> </if>
<if test='endDate != null and endDate != ""'> <if test='endDate != null and endDate != ""'>
and wrt_dt &lt;= #{endDate}::date+1 and wrt_dt &lt;= #{endDate}::date+1
</if> </if>
<if test='rating != null and rating != "" or sangbo != null and sangbo != ""'> <if test='rating != null and rating != "" or sangbo != null and sangbo != ""'>
and ab.affair_key in ( and ab.affair_key in (
select affair_key select affair_key
from affair_rating ar2 from affair_rating ar2
inner join organ_config oc2 inner join organ_config oc2
on ar2.rating_organ = oc2.organ_cd on ar2.rating_organ = oc2.organ_cd
<where> <where>
<if test='rating != null and rating != ""'> <if test='rating != null and rating != ""'>
@ -505,7 +505,7 @@
</foreach> </foreach>
</if> </if>
</sql> </sql>
<select id="selectRatingStatusTotal" resultType="TypeStatistics" parameterType="TypeStatistics"> <select id="selectRatingStatusTotal" resultType="TypeStatistics" parameterType="TypeStatistics">
select item_cd as wrt_organ, select item_cd as wrt_organ,
item_value, item_value,
@ -530,17 +530,17 @@
) a ) a
left outer join left outer join
(select ab.wrt_organ, (select ab.wrt_organ,
count(*) as cnt count(*) as cnt
from affair_board ab, from affair_board ab,
affair_rating ar affair_rating ar
where ab.affair_key = ar.affair_key where ab.affair_key = ar.affair_key
and (ar.organ_up != 'T' or ar.organ_up is null) and (ar.organ_up != 'T' or ar.organ_up is null)
<include refid="raitingSearch"></include> <include refid="raitingSearch"></include>
group by ab.wrt_organ) c 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 order by item_cd asc
</select> </select>
<select id="selectSangboTotal" resultType="TypeStatistics" parameterType="TypeStatistics"> <select id="selectSangboTotal" resultType="TypeStatistics" parameterType="TypeStatistics">
select item_cd as wrt_organ, select item_cd as wrt_organ,
item_value, item_value,
@ -551,8 +551,8 @@
item_value item_value
from code_mgt from code_mgt
where category_cd = 'OG' where category_cd = 'OG'
and use_chk = 'T') a left join and use_chk = 'T') a left join
(select organ_type (select organ_type
from organ_config from organ_config
<where> <where>
<choose> <choose>
@ -571,7 +571,7 @@
left outer join left outer join
(select ab.wrt_organ, (select ab.wrt_organ,
oc.organ_type, oc.organ_type,
count(*) as cnt count(*) as cnt
from affair_board ab, from affair_board ab,
affair_rating ar, affair_rating ar,
organ_config oc organ_config oc
@ -583,7 +583,7 @@
on a.item_cd = c.wrt_organ and b.organ_type = c.organ_type on a.item_cd = c.wrt_organ and b.organ_type = c.organ_type
order by item_cd, affairType asc order by item_cd, affairType asc
</select> </select>
<select id="selectArrCntList" resultType="TypeStatistics" parameterType="TypeStatistics"> <select id="selectArrCntList" resultType="TypeStatistics" parameterType="TypeStatistics">
select a.item_cd as wrt_organ, select a.item_cd as wrt_organ,
b.item_cd as affairType, b.item_cd as affairType,
@ -593,9 +593,9 @@
item_value item_value
from code_mgt from code_mgt
where category_cd = 'OG' where category_cd = 'OG'
and use_chk = 'T') a left join and use_chk = 'T') a left join
(select item_cd (select item_cd
from code_mgt from code_mgt
where category_cd='AAR' where category_cd='AAR'
<choose> <choose>
<when test='rating != null and rating != ""'> <when test='rating != null and rating != ""'>
@ -609,18 +609,18 @@
</otherwise> </otherwise>
</choose> </choose>
) b on 1=1 ) b on 1=1
left outer join left outer join
(select ab.wrt_organ, (select ab.wrt_organ,
ar.affair_rate, ar.affair_rate,
count(*) as cnt count(*) as cnt
from affair_board ab, from affair_board ab,
affair_rating ar affair_rating ar
where ab.affair_key = ar.affair_key where ab.affair_key = ar.affair_key
and (ar.organ_up != 'T' or ar.organ_up is null) and (ar.organ_up != 'T' or ar.organ_up is null)
<include refid="raitingSearch"></include> <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 on c.wrt_organ = a.item_cd and c.affair_rate = b.item_cd
order by wrt_organ,affairType asc order by wrt_organ,affairType asc
</select> </select>
</mapper> </mapper>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -22,110 +22,110 @@
<div class="row mx-0"> <div class="row mx-0">
<div class="col-12 card bg-light"> <div class="col-12 card bg-light">
<div class="card-body"> <div class="card-body">
<div class="card"> <form method="get" th:action="@{/faStatistics/internationalCrimeArrest}" id="icaSearchForm">
<div class="card-body"> <input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<form method="get" th:action="@{/faStatistics/internationalCrimeArrest}" id="icaSearchForm"> <input type="hidden" name="dateSelector" value="wrtDt">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}"> <div class="row justify-content-between py-1">
<input type="hidden" name="dateSelector" value="wrtDt"> <div class="col-auto">
<div class="row justify-content-between py-1"> <select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<div class="col-auto"> <th:block th:each="num : ${#numbers.sequence(1,5)}">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt"> <option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
<th:block th:each="num : ${#numbers.sequence(1,5)}"> </th:block>
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option> </select>
</th:block> </div>
</select> <div class="col-8">
</div> <div class="row">
<div class="col-8"> <div class="col-11">
<div class="row"> <div class="row justify-content-end">
<div class="col-11"> <div class="col-2">
<div class="row justify-content-end"> <input type="text" class="form-control form-control-sm" placeholder="사건번호" name="caseNum" th:value="${searchParams.caseNum}">
<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>
</div> </div>
<div class="col-1 d-grid gap-2"> <div class="col-2">
<input type="submit" class="btn btn-primary" id="searchBtn" value="검색"> <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>
</div> </div>
<div class="col-1 d-grid gap-2">
<input type="submit" class="btn btn-primary" id="searchBtn" value="검색">
</div>
</div> </div>
</form> </div>
</div>
</form>
<div class="card">
<div class="card-body">
<div class="row"> <div class="row">
<div class="col-12"> <div class="col-12">
<table class="table table-sm table-hover table-bordered ws-nowrap" id="ivsgtTable"> <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="row mx-0">
<div class="col-12 card bg-light text-center"> <div class="col-12 card bg-light text-center">
<div class="card-body"> <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="row justify-content-start">
<div class="col-12"> <div class="col-12">
<div class="card"> <div class="card">
<div class="card-body"> <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="row">
<div class="col-12"> <div class="col-12">
<input type="hidden" id="selectedKey"> <input type="hidden" id="selectedKey">

View File

@ -29,7 +29,7 @@
<li><a href="/userMgt/userMgtPage" class="dropdown-item">외사경찰관리</a></li> <li><a href="/userMgt/userMgtPage" class="dropdown-item">외사경찰관리</a></li>
<li><a href="/authMgt/authMgtPage" 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="/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> </th:block>
</ul> </ul>
</li> </li>

View File

@ -42,73 +42,77 @@
</select> </select>
</div> </div>
<div class="col-8"> <div class="col-8">
<div class="row justify-content-end"> <div class="row">
<div class="col-11"> <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="row justify-content-end">
<div class="col-2"> <div class="col-11">
<input type="text" class="form-control form-control-sm" placeholder="제목" name="title" th:value="${searchParams.title}"> <div class="row justify-content-end pb-1" th:if="${accessAuth eq 'ACC003'}">
</div> <div class="col-2">
<div class="col-2"> <select class="form-select form-select-sm" name="wrtOrgan">
<select class="form-select form-select-sm" name="affairStatus"> <option value="">관서 선택</option>
<option value="">상태 선택</option> <th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:each="commonCode:${session.commonCode.get('DST')}"> <th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.affairStatus}"></option> <option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.wrtOrgan}"></option>
</th:block> </th:block>
</select> </th:block>
</div> </select>
<div class="col-4"> </div>
<div class="input-group w-auto input-daterange" id="dateSelectorDiv"> <div class="col-2">
<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" placeholder="작성자" name="wrtUserNm" th:value="${searchParams.wrtUserNm}">
<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="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> </div>
</div> </div>

View File

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

View File

@ -7,9 +7,12 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<h4>외사경찰 교육 현황</h4>
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/> <input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/> <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="row mx-0">
<div class="col-12 card bg-light text-center"> <div class="col-12 card bg-light text-center">
<div class="card-body"> <div class="card-body">
@ -27,131 +30,121 @@
</li> </li>
</ul> </ul>
<div class="tab-content bg-white border border-top-0 p-3" id="userContent"> <div class="tab-content bg-white border border-top-0 p-3" id="userContent">
<div class="card"> <form id="searchFm" method="get" th:action="@{/police/educationMgt}">
<div class="card-body"> <input type="hidden" name="excel">
<div class="row"> <input type="hidden" name="userStatus" th:value="${userStatus}">
<div class="col-12"> <input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<form id="searchFm" method="get" th:action="@{/police/educationMgt}"> <div class="row justify-content-between pb-1">
<input type="hidden" name="excel"> <div class="col-auto">
<input type="hidden" name="userStatus" th:value="${userStatus}"> <select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}"> <th:block th:each="num : ${#numbers.sequence(1,5)}">
<div class="row justify-content-between py-1"> <option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
<div class="col-auto"> </th:block>
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt"> </select>
<th:block th:each="num : ${#numbers.sequence(1,5)}"> </div>
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option> <div class="col-8">
</th:block> <div class="row justify-content-end">
</select> <div class="col-auto">
</div> <select class="form-select form-select-sm" name="ogCd">
</div> <option value="">관서 선택</option>
<div class="row justify-content-end pe-3 py-1"> <th:block th:each="commonCode:${session.commonCode.get('OG')}">
<div class="col-auto"> <th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
<div class="row justify-content-end"> <option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${searchParams.ogCd eq commonCode.itemCd}"></option>
<div class="col-auto"> </th:block>
<select class="form-select form-select-sm" name="ogCd"> </th:block>
<option value="">관서 선택</option> </select>
<th:block th:each="commonCode:${session.commonCode.get('OG')}"> </div>
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}"> <div class="col-auto">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${searchParams.ogCd eq commonCode.itemCd}"></option> <select class="form-select form-select-sm" name="sex">
</th:block> <option value="">성별</option>
</th:block> <th:block th:each="commonCode:${session.commonCode.get('SEX')}">
</select> <option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${searchParams.sex eq commonCode.itemCd}"></option>
</div> </th:block>
<div class="col-auto"> </select>
<select class="form-select form-select-sm" name="sex"> </div>
<option value="">성별</option> <div class="col-auto">
<th:block th:each="commonCode:${session.commonCode.get('SEX')}"> <input type="text" class="form-control form-control-sm" placeholder="이름" name="userNm" th:value="${searchParams.userNm}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${searchParams.sex eq commonCode.itemCd}"></option> </div>
</th:block> <div class="col-auto">
</select> <input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
</div> </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">
</div> </div>
</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> </div>
</div> </div>

View File

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

View File

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

View File

@ -15,48 +15,48 @@
<div class="row mx-0"> <div class="row mx-0">
<div class="col-12 card bg-light text-center"> <div class="col-12 card bg-light text-center">
<div class="card-body"> <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="row justify-content-start">
<div class="col-12"> <div class="col-12">
<div class="card"> <div class="card">
<div class="card-body"> <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="row">
<div class="col-12"> <div class="col-12">
<table class="table table-sm table-hover table-bordered"> <table class="table table-sm table-hover table-bordered">

View File

@ -15,51 +15,51 @@
<div class="row mx-0"> <div class="row mx-0">
<div class="col-12 card bg-light text-center"> <div class="col-12 card bg-light text-center">
<div class="card-body"> <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="col-12">
<div class="card"> <div class="card">
<div class="card-body"> <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="row">
<div class="col-12"> <div class="col-12">
<table class="table table-sm table-hover table-bordered"> <table class="table table-sm table-hover table-bordered">

View File

@ -16,48 +16,48 @@
<div class="row mx-0"> <div class="row mx-0">
<div class="col-12 card bg-light text-center"> <div class="col-12 card bg-light text-center">
<div class="card-body"> <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="row justify-content-start">
<div class="col-12"> <div class="col-12">
<div class="card"> <div class="card">
<div class="card-body"> <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="row">
<div class="col-12"> <div class="col-12">
<table class="table table-sm table-hover table-bordered"> <table class="table table-sm table-hover table-bordered">

View File

@ -7,170 +7,180 @@
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<h4>민간 통역인 현황</h4>
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/> <input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/> <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="row mx-0">
<div class="col-12 card bg-light text-center"> <div class="col-12 card bg-light text-center">
<div class="card-body"> <div class="card-body">
<form id="searchFm" method="get" th:action="@{/translator/info}"> <form id="searchFm" method="get" th:action="@{/translator/info}">
<input type="hidden" name="excel"> <input type="hidden" name="excel">
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}"> <input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
<div class="row pe-3 py-1"> <div class="row justify-content-between py-1">
<div class="col-1"> <div class="col-auto">
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt"> <select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
<th:block th:each="num : ${#numbers.sequence(1,5)}"> <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> <option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
</th:block> </th:block>
</select> </select>
</div> </div>
<div class="col-10"> <div class="col-8">
<div class="row justify-content-end pb-1"> <div class="row">
<div class="col-auto"> <div class="col-11">
<select class="form-select form-select-sm" name="dmlYn"> <div class="row justify-content-end pb-1">
<option value="">해촉 선택</option> <div class="col-2">
<option value="O" th:selected="${'O' eq searchParams.dmlYn}">O</option> <select class="form-select form-select-sm" name="dmlYn">
<option value="X" th:selected="${'X' eq searchParams.dmlYn}">X</option> <option value="">해촉 선택</option>
</select> <option value="O" th:selected="${'O' eq searchParams.dmlYn}">O</option>
</div> <option value="X" th:selected="${'X' eq searchParams.dmlYn}">X</option>
<div class="col-auto"> </select>
<select class="form-select form-select-sm" name="ogdp1"> </div>
<option value="">관서 선택</option> <div class="col-2">
<th:block th:each="commonCode:${session.commonCode.get('OG')}"> <select class="form-select form-select-sm" name="ogdp1">
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}"> <option value="">관서 선택</option>
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.ogdp1}"></option> <th:block th:each="commonCode:${session.commonCode.get('OG')}">
</th:block> <th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
</th:block> <option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.ogdp1}"></option>
</select> </th:block>
</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>
</th:block> </th:block>
<th:block th:each="num : ${#numbers.sequence(searchParams.startNum, searchParams.endNum)}"> </select>
<li class="page-item" th:data-pageindex="${num}" th:classappend="${searchParams.pageIndex==num?'active':''}"> </div>
<a class="page-link" href="#" th:text="${num}"></a> <div class="col-2">
</li> <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:block th:if="${searchParams.maxNum>searchParams.endNum+2}"> </select>
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)+3}"> </div>
<a class="page-link" href="#" aria-label="Next"> <div class="col-2">
<span aria-hidden="true">&raquo;</span> <select class="form-select form-select-sm" name="trVisa">
</a> <option value="">비자 선택</option>
</li> <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> </th:block>
</ul> </select>
</nav> </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>
<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>
<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> </div>
</div> </div>
@ -188,114 +198,114 @@
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
<form id="translatorInsert" action="#" method="post"> <form id="translatorInsert" action="#" method="post">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/> <input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/> <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<br> <br>
<div class="row mb-1"> <div class="row mb-1">
<label for="ogdp1" class="col-sm-1 col-form-label text-center fs-13 fw-bold">관서</label> <label for="ogdp1" class="col-sm-1 col-form-label text-center fs-13 fw-bold">관서</label>
<div class="col-sm-3"> <div class="col-sm-3">
<select class="form-select" id="ogdp1" name="ogdp1" th:disabled="${accessAuth ne 'ACC003'}"> <select class="form-select" id="ogdp1" name="ogdp1" th:disabled="${accessAuth ne 'ACC003'}">
<option value="">선택</option> <option value="">선택</option>
<th:block th:each="commonCode:${session.commonCode.get('OG')}"> <th:block th:each="commonCode:${session.commonCode.get('OG')}">
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}"> <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> <option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq userOrgan}"></option>
</th:block>
</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> </div>
<label for="lang" class="col-sm-1 col-form-label text-center fs-13 fw-bold">언어</label> <div class="row mb-1">
<div class="col-sm-3"> <label for="trName" class="col-sm-1 col-form-label text-center fs-13 fw-bold">성명</label>
<select class="form-select" id="lang" name="trLang"> <div class="col-sm-3">
<option value="">선택</option> <input type="text" class="form-control" id="trName" name="trName">
<th:block th:each="commonCode:${session.commonCode.get('LGG')}"> </div>
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"></option> <label for="trSex" class="col-sm-1 col-form-label text-center fs-13 fw-bold">성별</label>
</th:block> <div class="col-sm-3">
</select> <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> </div>
<label for="trCareer" class="col-sm-1 col-form-label text-center fs-13 fw-bold">경력</label> <div class="row mb-1">
<div class="col-sm-3"> <label for="trNny" class="col-sm-1 col-form-label text-center fs-13 fw-bold">국적</label>
<input type="text" class="form-control" id="trCareer" name="trCareer"> <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> <div class="row mb-1">
<div class="row mb-1"> <label for="trCft" class="col-sm-1 col-form-label text-center fs-13 fw-bold">자격증</label>
<label for="trName" class="col-sm-1 col-form-label text-center fs-13 fw-bold">성명</label> <div class="col-sm-3">
<div class="col-sm-3"> <input type="text" class="form-control" id="trCft" name="trCft">
<input type="text" class="form-control" id="trName" name="trName"> </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>
<label for="trSex" class="col-sm-1 col-form-label text-center fs-13 fw-bold">성별</label> <div class="mb-2 row">
<div class="col-sm-3"> <label for="dmlYn" class="col-sm-1 col-form-label text-center fs-13 fw-bold">해촉</label>
<select class="form-select" id="trSex" name="trSex"> <div class="col-sm-3">
<option value="">선택</option> <select class="form-select" id="dmlYn" name="dmlYn">
<th:block th:each="commonCode:${session.commonCode.get('SEX')}"> <option value="">선택</option>
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"></option> <option value="O">O</option>
</th:block> <option value="X">X</option>
</select> </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> </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>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal" id="closeModalBtn">닫기</button> <button type="button" class="btn btn-secondary" data-bs-dismiss="modal" id="closeModalBtn">닫기</button>

View File

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

View File

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

View File

@ -44,10 +44,10 @@
<div class="row justify-content-end"> <div class="row justify-content-end">
<div class="col-auto"> <div class="col-auto">
<button type="button" class="btn btn-sm btn-info" id="syncBtn" th:disabled="${#strings.isEmpty(userInfo.dicCode)}">인사시스템 정보 연동</button> <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>
<div class="col-auto"> <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> </div>
</div> </div>