게시판 디자인 작업중. 관리자메뉴 남음.
parent
cbce941558
commit
819955e441
|
|
@ -24,109 +24,107 @@ import java.util.List;
|
|||
@RequestMapping("/faStatistics")
|
||||
public class CrackdownStatusController {
|
||||
|
||||
private final AuthMgtService authMgtService;
|
||||
private final CrackdownStatusService crackdownStatusService;
|
||||
private final ViolationRepository violationRepository;
|
||||
private final ProcessResultRepository processResultRepository;
|
||||
private final FishingBoatRepository fishingBoatRepository;
|
||||
private final SailorRepository sailorRepository;
|
||||
private final AuthMgtService authMgtService;
|
||||
private final CrackdownStatusService crackdownStatusService;
|
||||
private final ViolationRepository violationRepository;
|
||||
private final ProcessResultRepository processResultRepository;
|
||||
private final FishingBoatRepository fishingBoatRepository;
|
||||
private final SailorRepository sailorRepository;
|
||||
|
||||
@RequestMapping("/crackdownStatus")
|
||||
public ModelAndView crackdownStatus(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus) {
|
||||
ModelAndView mav = new ModelAndView("faStatistics/crackdownStatus/crackdownStatus");
|
||||
@RequestMapping("/crackdownStatus")
|
||||
public ModelAndView crackdownStatus(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus) {
|
||||
ModelAndView mav = new ModelAndView("faStatistics/crackdownStatus/crackdownStatus");
|
||||
//메뉴권한 확인
|
||||
String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/faStatistics/crackdownStatus").get(0).getAccessAuth();
|
||||
mav.addObject("accessAuth", accessAuth);
|
||||
|
||||
//메뉴권한 확인
|
||||
String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/faStatistics/crackdownStatus").get(0).getAccessAuth();
|
||||
|
||||
mav.addObject("accessAuth", accessAuth);
|
||||
|
||||
List<CrackdownStatus> crackdownStatusList = crackdownStatusService.selectCrackdownStatusList(crackdownStatus);
|
||||
|
||||
for (CrackdownStatus cds:crackdownStatusList) {
|
||||
cds.setViolationList(violationRepository.findByFbKey(cds.getFbKey()));
|
||||
cds.setProcessResult(processResultRepository.findByCdsKey(cds.getCdsKey()).orElse(new ProcessResult()));
|
||||
cds.setFishingBoat(fishingBoatRepository.findByCdsKey(cds.getCdsKey()).orElse(new FishingBoat()));
|
||||
cds.setSailorList(sailorRepository.findByFbKey(cds.getFbKey()));
|
||||
}
|
||||
|
||||
mav.addObject("crackdownStatusList", crackdownStatusList);
|
||||
mav.addObject("searchParams", crackdownStatus);
|
||||
return mav;
|
||||
crackdownStatus.setYear(((Integer)LocalDateTime.now().getYear()).toString());
|
||||
List<CrackdownStatus> crackdownStatusList = crackdownStatusService.selectCrackdownStatusList(crackdownStatus);
|
||||
for (CrackdownStatus cds:crackdownStatusList) {
|
||||
cds.setViolationList(violationRepository.findByFbKey(cds.getFbKey()));
|
||||
cds.setProcessResult(processResultRepository.findByCdsKey(cds.getCdsKey()).orElse(new ProcessResult()));
|
||||
cds.setFishingBoat(fishingBoatRepository.findByCdsKey(cds.getCdsKey()).orElse(new FishingBoat()));
|
||||
cds.setSailorList(sailorRepository.findByFbKey(cds.getFbKey()));
|
||||
}
|
||||
|
||||
@GetMapping("/crackdownStatus/crackdownStatusViewModal")
|
||||
public ModelAndView crackdownStatusViewModal(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus){
|
||||
ModelAndView mav = new ModelAndView("faStatistics/crackdownStatus/crackdownStatusViewModal");
|
||||
crackdownStatus = crackdownStatusService.selectCrackdownStatus(crackdownStatus.getCdsKey());
|
||||
crackdownStatus.setFishingBoat(fishingBoatRepository.findByCdsKey(crackdownStatus.getCdsKey()).orElse(null));
|
||||
crackdownStatus.setProcessResult(processResultRepository.findByCdsKey(crackdownStatus.getCdsKey()).orElse(null));
|
||||
crackdownStatus.setViolationList(violationRepository.findByFbKey(crackdownStatus.getFishingBoat().getFbKey()));
|
||||
crackdownStatus.setSailorList(sailorRepository.findByFbKey(crackdownStatus.getFishingBoat().getFbKey()));
|
||||
mav.addObject("crackdownStatusList", crackdownStatusList);
|
||||
mav.addObject("searchParams", crackdownStatus);
|
||||
return mav;
|
||||
}
|
||||
|
||||
mav.addObject("crackdownStatus", crackdownStatus);
|
||||
mav.addObject("userSeq",loginUser.getUserSeq());
|
||||
//메뉴권한 확인
|
||||
mav.addObject("accessAuth", authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/faStatistics/crackdownStatus").get(0).getAccessAuth());
|
||||
return mav;
|
||||
@GetMapping("/crackdownStatus/crackdownStatusViewModal")
|
||||
public ModelAndView crackdownStatusViewModal(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus){
|
||||
ModelAndView mav = new ModelAndView("faStatistics/crackdownStatus/crackdownStatusViewModal");
|
||||
crackdownStatus = crackdownStatusService.selectCrackdownStatus(crackdownStatus.getCdsKey());
|
||||
crackdownStatus.setFishingBoat(fishingBoatRepository.findByCdsKey(crackdownStatus.getCdsKey()).orElse(null));
|
||||
crackdownStatus.setProcessResult(processResultRepository.findByCdsKey(crackdownStatus.getCdsKey()).orElse(null));
|
||||
crackdownStatus.setViolationList(violationRepository.findByFbKey(crackdownStatus.getFishingBoat().getFbKey()));
|
||||
crackdownStatus.setSailorList(sailorRepository.findByFbKey(crackdownStatus.getFishingBoat().getFbKey()));
|
||||
|
||||
mav.addObject("crackdownStatus", crackdownStatus);
|
||||
mav.addObject("userSeq",loginUser.getUserSeq());
|
||||
//메뉴권한 확인
|
||||
mav.addObject("accessAuth", authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/faStatistics/crackdownStatus").get(0).getAccessAuth());
|
||||
return mav;
|
||||
}
|
||||
|
||||
@GetMapping("/crackdownStatus/crackdownStatusEditModal")
|
||||
public ModelAndView crackdownStatusEditModal(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus){
|
||||
ModelAndView mav = new ModelAndView("faStatistics/crackdownStatus/crackdownStatusEditModal");
|
||||
if(crackdownStatus.getCdsKey()!=null){
|
||||
crackdownStatus = crackdownStatusService.selectCrackdownStatus(crackdownStatus.getCdsKey());
|
||||
crackdownStatus.setFishingBoat(fishingBoatRepository.findByCdsKey(crackdownStatus.getCdsKey()).orElse(null));
|
||||
crackdownStatus.setProcessResult(processResultRepository.findByCdsKey(crackdownStatus.getCdsKey()).orElse(null));
|
||||
crackdownStatus.setViolationList(violationRepository.findByFbKey(crackdownStatus.getFishingBoat().getFbKey()));
|
||||
crackdownStatus.setSailorList(sailorRepository.findByFbKey(crackdownStatus.getFishingBoat().getFbKey()));
|
||||
}else{
|
||||
crackdownStatus.setWrtOrgan(loginUser.getOgCd());
|
||||
crackdownStatus.setWrtPart(loginUser.getOfcCd());
|
||||
crackdownStatus.setWrtUserGrd(loginUser.getGroupCd());
|
||||
crackdownStatus.setWrtOrgan(loginUser.getOgCd());
|
||||
crackdownStatus.setWrtUserNm(loginUser.getUserNm());
|
||||
crackdownStatus.setWrtDt(LocalDateTime.now());
|
||||
crackdownStatus.setFishingBoat(new FishingBoat());
|
||||
crackdownStatus.getFishingBoat().setWrtOrgan(loginUser.getOgCd());
|
||||
crackdownStatus.getFishingBoat().setWrtUserNm(loginUser.getUserNm());
|
||||
crackdownStatus.getFishingBoat().setWrtDt(LocalDateTime.now());
|
||||
crackdownStatus.setProcessResult(new ProcessResult());
|
||||
crackdownStatus.getProcessResult().setWrtOrgan(loginUser.getOgCd());
|
||||
crackdownStatus.getProcessResult().setWrtUserNm(loginUser.getUserNm());
|
||||
crackdownStatus.getProcessResult().setWrtDt(LocalDateTime.now());
|
||||
}
|
||||
mav.addObject("crackdownStatus", crackdownStatus);
|
||||
return mav;
|
||||
}
|
||||
|
||||
@GetMapping("/crackdownStatus/crackdownStatusEditModal")
|
||||
public ModelAndView crackdownStatusEditModal(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus){
|
||||
ModelAndView mav = new ModelAndView("faStatistics/crackdownStatus/crackdownStatusEditModal");
|
||||
if(crackdownStatus.getCdsKey()!=null){
|
||||
crackdownStatus = crackdownStatusService.selectCrackdownStatus(crackdownStatus.getCdsKey());
|
||||
crackdownStatus.setFishingBoat(fishingBoatRepository.findByCdsKey(crackdownStatus.getCdsKey()).orElse(null));
|
||||
crackdownStatus.setProcessResult(processResultRepository.findByCdsKey(crackdownStatus.getCdsKey()).orElse(null));
|
||||
crackdownStatus.setViolationList(violationRepository.findByFbKey(crackdownStatus.getFishingBoat().getFbKey()));
|
||||
crackdownStatus.setSailorList(sailorRepository.findByFbKey(crackdownStatus.getFishingBoat().getFbKey()));
|
||||
}else{
|
||||
crackdownStatus.setWrtOrgan(loginUser.getOgCd());
|
||||
crackdownStatus.setWrtPart(loginUser.getOfcCd());
|
||||
crackdownStatus.setWrtUserGrd(loginUser.getGroupCd());
|
||||
crackdownStatus.setWrtOrgan(loginUser.getOgCd());
|
||||
crackdownStatus.setWrtUserNm(loginUser.getUserNm());
|
||||
crackdownStatus.setWrtDt(LocalDateTime.now());
|
||||
crackdownStatus.setFishingBoat(new FishingBoat());
|
||||
crackdownStatus.getFishingBoat().setWrtOrgan(loginUser.getOgCd());
|
||||
crackdownStatus.getFishingBoat().setWrtUserNm(loginUser.getUserNm());
|
||||
crackdownStatus.getFishingBoat().setWrtDt(LocalDateTime.now());
|
||||
crackdownStatus.setProcessResult(new ProcessResult());
|
||||
crackdownStatus.getProcessResult().setWrtOrgan(loginUser.getOgCd());
|
||||
crackdownStatus.getProcessResult().setWrtUserNm(loginUser.getUserNm());
|
||||
crackdownStatus.getProcessResult().setWrtDt(LocalDateTime.now());
|
||||
}
|
||||
mav.addObject("crackdownStatus", crackdownStatus);
|
||||
return mav;
|
||||
}
|
||||
@GetMapping("/crackdownStatus/crackdownStatusHistoryViewModal")
|
||||
public ModelAndView crackdownStatusHistoryViewModal(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus){
|
||||
ModelAndView mav = new ModelAndView("faStatistics/crackdownStatus/crackdownStatusHistoryViewModal");
|
||||
List<CrackdownStatusVersion> crackdownStatusVersionList = crackdownStatusService.selectCrackdownStatusVersionList(crackdownStatus.getCdsKey());
|
||||
|
||||
@GetMapping("/crackdownStatus/crackdownStatusHistoryViewModal")
|
||||
public ModelAndView crackdownStatusHistoryViewModal(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatus crackdownStatus){
|
||||
ModelAndView mav = new ModelAndView("faStatistics/crackdownStatus/crackdownStatusHistoryViewModal");
|
||||
List<CrackdownStatusVersion> crackdownStatusVersionList = crackdownStatusService.selectCrackdownStatusVersionList(crackdownStatus.getCdsKey());
|
||||
mav.addObject("crackdownStatusVersionList", crackdownStatusVersionList);
|
||||
mav.addObject("crackdownStatus", crackdownStatus);
|
||||
return mav;
|
||||
}
|
||||
|
||||
mav.addObject("crackdownStatusVersionList", crackdownStatusVersionList);
|
||||
mav.addObject("crackdownStatus", crackdownStatus);
|
||||
return mav;
|
||||
}
|
||||
@GetMapping("/crackdownStatus/crackdownStatusHistoryDetail")
|
||||
public ModelAndView crackdownStatusHistoryDetail(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatusVersion crackdownStatusVersion){
|
||||
ModelAndView mav = new ModelAndView("faStatistics/crackdownStatus/crackdownStatusHistoryDetail");
|
||||
|
||||
@GetMapping("/crackdownStatus/crackdownStatusHistoryDetail")
|
||||
public ModelAndView crackdownStatusHistoryDetail(@AuthenticationPrincipal UserInfo loginUser, CrackdownStatusVersion crackdownStatusVersion){
|
||||
ModelAndView mav = new ModelAndView("faStatistics/crackdownStatus/crackdownStatusHistoryDetail");
|
||||
crackdownStatusVersion = crackdownStatusService.selectCrackdownStatusVersion(crackdownStatusVersion.getVersionNo(), crackdownStatusVersion.getCdsKey());
|
||||
|
||||
crackdownStatusVersion = crackdownStatusService.selectCrackdownStatusVersion(crackdownStatusVersion.getVersionNo(), crackdownStatusVersion.getCdsKey());
|
||||
mav.addObject("crackdownStatusVersion", crackdownStatusVersion);
|
||||
return mav;
|
||||
}
|
||||
|
||||
mav.addObject("crackdownStatusVersion", crackdownStatusVersion);
|
||||
return mav;
|
||||
}
|
||||
|
||||
@PostMapping("/crackdownStatus/saveCrackdownStatus")
|
||||
public Integer saveCrackdownStatus(@AuthenticationPrincipal UserInfo loginUser,
|
||||
CrackdownStatus crackdownStatus,
|
||||
FishingBoat fishingBoat,
|
||||
ProcessResult processResult){
|
||||
crackdownStatus.setWrtUserSeq(loginUser.getUserSeq());
|
||||
crackdownStatus.setFishingBoat(fishingBoat);
|
||||
crackdownStatus.setProcessResult(processResult);
|
||||
return crackdownStatusService.saveCrackdownStatus(crackdownStatus);
|
||||
}
|
||||
@PostMapping("/crackdownStatus/saveCrackdownStatus")
|
||||
public Integer saveCrackdownStatus(@AuthenticationPrincipal UserInfo loginUser,
|
||||
CrackdownStatus crackdownStatus,
|
||||
FishingBoat fishingBoat,
|
||||
ProcessResult processResult){
|
||||
crackdownStatus.setWrtUserSeq(loginUser.getUserSeq());
|
||||
crackdownStatus.setFishingBoat(fishingBoat);
|
||||
crackdownStatus.setProcessResult(processResult);
|
||||
return crackdownStatusService.saveCrackdownStatus(crackdownStatus);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -114,7 +114,7 @@
|
|||
inner join hash_tag b on a.tag_key = b.tag_key
|
||||
where a.affair_key = #{affairKey}
|
||||
</select>
|
||||
|
||||
|
||||
<sql id="searchStatistics">
|
||||
<if test='userNm != null and userNm != ""'>
|
||||
and wrt_user_nm like '%'||#{userNm}||'%'
|
||||
|
|
@ -129,7 +129,7 @@
|
|||
and ab.affair_key in (
|
||||
select affair_key
|
||||
from affair_rating ar2
|
||||
inner join organ_config oc2
|
||||
inner join organ_config oc2
|
||||
on ar2.rating_organ = oc2.organ_cd
|
||||
<where>
|
||||
<if test='rating != null and rating != ""'>
|
||||
|
|
@ -149,7 +149,7 @@
|
|||
)
|
||||
</if>
|
||||
</sql>
|
||||
|
||||
|
||||
<sql id="statisticsCategory1">
|
||||
<choose>
|
||||
<when test='category1 != null and category1 != ""'>
|
||||
|
|
@ -163,7 +163,7 @@
|
|||
</otherwise>
|
||||
</choose>
|
||||
</sql>
|
||||
|
||||
|
||||
<sql id="statisticsCategory2">
|
||||
<choose>
|
||||
<when test='category2 != null and category2 != ""'>
|
||||
|
|
@ -177,7 +177,7 @@
|
|||
</otherwise>
|
||||
</choose>
|
||||
</sql>
|
||||
|
||||
|
||||
<sql id="statisticsCategory3">
|
||||
<choose>
|
||||
<when test='category3 != null and category3 != ""'>
|
||||
|
|
@ -191,7 +191,7 @@
|
|||
</otherwise>
|
||||
</choose>
|
||||
</sql>
|
||||
|
||||
|
||||
<sql id="statisticsCategory4">
|
||||
<choose>
|
||||
<when test='category4 != null and category4 != ""'>
|
||||
|
|
@ -205,7 +205,7 @@
|
|||
</otherwise>
|
||||
</choose>
|
||||
</sql>
|
||||
|
||||
|
||||
<select id="selectStatusTotal" resultType="TypeStatistics" parameterType="TypeStatistics">
|
||||
select item_cd as wrt_organ,
|
||||
item_value,
|
||||
|
|
@ -247,7 +247,7 @@
|
|||
and ab.affair_key in (
|
||||
select affair_key
|
||||
from affair_rating ar2
|
||||
inner join organ_config oc2
|
||||
inner join organ_config oc2
|
||||
on ar2.rating_organ = oc2.organ_cd
|
||||
<where>
|
||||
<if test='rating != null and rating != ""'>
|
||||
|
|
@ -290,11 +290,11 @@
|
|||
#{item}
|
||||
</foreach>
|
||||
</if>
|
||||
group by wrt_organ)b on
|
||||
group by wrt_organ)b on
|
||||
a.item_cd = b.wrt_organ
|
||||
order by wrt_organ asc
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selecType1ListCnt" resultType="TypeStatistics" parameterType="TypeStatistics">
|
||||
select b.item_cd as wrt_organ ,
|
||||
b.item_value,
|
||||
|
|
@ -306,7 +306,7 @@
|
|||
from code_mgt
|
||||
where category_cd = 'DC01'
|
||||
<include refid="statisticsCategory1"></include>
|
||||
)a left join
|
||||
)a left join
|
||||
(select item_cd,
|
||||
item_value
|
||||
from code_mgt
|
||||
|
|
@ -319,7 +319,7 @@
|
|||
</foreach>
|
||||
</if>
|
||||
order by item_cd asc) b on 1=1
|
||||
left outer join
|
||||
left outer join
|
||||
(select wrt_organ,
|
||||
affair_type1 as affair_type,
|
||||
count(*) as cnt
|
||||
|
|
@ -328,11 +328,11 @@
|
|||
where ab.affair_key = ar.affair_key
|
||||
and (ar.organ_up != 'T' or ar.organ_up is null)
|
||||
<include refid="searchStatistics"></include>
|
||||
group by wrt_organ,affair_type1) c
|
||||
group by wrt_organ,affair_type1) c
|
||||
on a.item_cd = c.affair_type and b.item_cd = c.wrt_organ
|
||||
order by wrt_organ,affair_type asc
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selecType2ListCnt" resultType="TypeStatistics" parameterType="TypeStatistics">
|
||||
select b.item_cd as wrt_organ ,
|
||||
b.item_value,
|
||||
|
|
@ -344,7 +344,7 @@
|
|||
from code_mgt
|
||||
where category_cd = 'DC02'
|
||||
<include refid="statisticsCategory2"></include>
|
||||
)a left join
|
||||
)a left join
|
||||
(select item_cd,
|
||||
item_value
|
||||
from code_mgt
|
||||
|
|
@ -357,7 +357,7 @@
|
|||
</foreach>
|
||||
</if>
|
||||
order by item_cd asc) b on 1=1
|
||||
left outer join
|
||||
left outer join
|
||||
(select wrt_organ,
|
||||
affair_type2 as affair_type,
|
||||
count(*) as cnt
|
||||
|
|
@ -366,11 +366,11 @@
|
|||
where ab.affair_key = ar.affair_key
|
||||
and (ar.organ_up != 'T' or ar.organ_up is null)
|
||||
<include refid="searchStatistics"></include>
|
||||
group by wrt_organ,affair_type2) c
|
||||
group by wrt_organ,affair_type2) c
|
||||
on a.item_cd = c.affair_type and b.item_cd = c.wrt_organ
|
||||
order by wrt_organ,affair_type asc
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selecType3ListCnt" resultType="TypeStatistics" parameterType="TypeStatistics">
|
||||
select b.item_cd as wrt_organ ,
|
||||
b.item_value,
|
||||
|
|
@ -382,7 +382,7 @@
|
|||
from code_mgt
|
||||
where category_cd = 'DC03'
|
||||
<include refid="statisticsCategory3"></include>
|
||||
)a left join
|
||||
)a left join
|
||||
(select item_cd,
|
||||
item_value
|
||||
from code_mgt
|
||||
|
|
@ -395,7 +395,7 @@
|
|||
</foreach>
|
||||
</if>
|
||||
order by item_cd asc) b on 1=1
|
||||
left outer join
|
||||
left outer join
|
||||
(select wrt_organ,
|
||||
affair_type3 as affair_type,
|
||||
count(*) as cnt
|
||||
|
|
@ -404,11 +404,11 @@
|
|||
where ab.affair_key = ar.affair_key
|
||||
and (ar.organ_up != 'T' or ar.organ_up is null)
|
||||
<include refid="searchStatistics"></include>
|
||||
group by wrt_organ,affair_type3) c
|
||||
group by wrt_organ,affair_type3) c
|
||||
on a.item_cd = c.affair_type and b.item_cd = c.wrt_organ
|
||||
order by wrt_organ,affair_type asc
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selecType4ListCnt" resultType="TypeStatistics" parameterType="TypeStatistics">
|
||||
select b.item_cd as wrt_organ ,
|
||||
b.item_value,
|
||||
|
|
@ -420,7 +420,7 @@
|
|||
from code_mgt
|
||||
where category_cd = 'DC04'
|
||||
<include refid="statisticsCategory4"></include>
|
||||
)a left join
|
||||
)a left join
|
||||
(select item_cd,
|
||||
item_value
|
||||
from code_mgt
|
||||
|
|
@ -433,7 +433,7 @@
|
|||
</foreach>
|
||||
</if>
|
||||
order by item_cd asc) b on 1=1
|
||||
left outer join
|
||||
left outer join
|
||||
(select wrt_organ,
|
||||
affair_type4 as affair_type,
|
||||
count(*) as cnt
|
||||
|
|
@ -442,26 +442,26 @@
|
|||
where ab.affair_key = ar.affair_key
|
||||
and (ar.organ_up != 'T' or ar.organ_up is null)
|
||||
<include refid="searchStatistics"></include>
|
||||
group by wrt_organ,affair_type4) c
|
||||
group by wrt_organ,affair_type4) c
|
||||
on a.item_cd = c.affair_type and b.item_cd = c.wrt_organ
|
||||
order by wrt_organ,affair_type asc
|
||||
</select>
|
||||
|
||||
|
||||
<sql id="raitingSearch">
|
||||
<if test='userNm != null and userNm != ""'>
|
||||
and wrt_user_nm like '%'||#{userNm}||'%'
|
||||
</if>
|
||||
<if test='startDate != null and startDate != ""'>
|
||||
<if test='startDate != null and startDate != ""'>
|
||||
and wrt_dt >= #{startDate}::date
|
||||
</if>
|
||||
<if test='endDate != null and endDate != ""'>
|
||||
and wrt_dt <= #{endDate}::date+1
|
||||
</if>
|
||||
</if>
|
||||
<if test='rating != null and rating != "" or sangbo != null and sangbo != ""'>
|
||||
and ab.affair_key in (
|
||||
select affair_key
|
||||
from affair_rating ar2
|
||||
inner join organ_config oc2
|
||||
inner join organ_config oc2
|
||||
on ar2.rating_organ = oc2.organ_cd
|
||||
<where>
|
||||
<if test='rating != null and rating != ""'>
|
||||
|
|
@ -505,7 +505,7 @@
|
|||
</foreach>
|
||||
</if>
|
||||
</sql>
|
||||
|
||||
|
||||
<select id="selectRatingStatusTotal" resultType="TypeStatistics" parameterType="TypeStatistics">
|
||||
select item_cd as wrt_organ,
|
||||
item_value,
|
||||
|
|
@ -530,17 +530,17 @@
|
|||
) a
|
||||
left outer join
|
||||
(select ab.wrt_organ,
|
||||
count(*) as cnt
|
||||
count(*) as cnt
|
||||
from affair_board ab,
|
||||
affair_rating ar
|
||||
where ab.affair_key = ar.affair_key
|
||||
and (ar.organ_up != 'T' or ar.organ_up is null)
|
||||
<include refid="raitingSearch"></include>
|
||||
group by ab.wrt_organ) c
|
||||
on a.item_cd = c.wrt_organ
|
||||
on a.item_cd = c.wrt_organ
|
||||
order by item_cd asc
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selectSangboTotal" resultType="TypeStatistics" parameterType="TypeStatistics">
|
||||
select item_cd as wrt_organ,
|
||||
item_value,
|
||||
|
|
@ -551,8 +551,8 @@
|
|||
item_value
|
||||
from code_mgt
|
||||
where category_cd = 'OG'
|
||||
and use_chk = 'T') a left join
|
||||
(select organ_type
|
||||
and use_chk = 'T') a left join
|
||||
(select organ_type
|
||||
from organ_config
|
||||
<where>
|
||||
<choose>
|
||||
|
|
@ -571,7 +571,7 @@
|
|||
left outer join
|
||||
(select ab.wrt_organ,
|
||||
oc.organ_type,
|
||||
count(*) as cnt
|
||||
count(*) as cnt
|
||||
from affair_board ab,
|
||||
affair_rating ar,
|
||||
organ_config oc
|
||||
|
|
@ -583,7 +583,7 @@
|
|||
on a.item_cd = c.wrt_organ and b.organ_type = c.organ_type
|
||||
order by item_cd, affairType asc
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selectArrCntList" resultType="TypeStatistics" parameterType="TypeStatistics">
|
||||
select a.item_cd as wrt_organ,
|
||||
b.item_cd as affairType,
|
||||
|
|
@ -593,9 +593,9 @@
|
|||
item_value
|
||||
from code_mgt
|
||||
where category_cd = 'OG'
|
||||
and use_chk = 'T') a left join
|
||||
and use_chk = 'T') a left join
|
||||
(select item_cd
|
||||
from code_mgt
|
||||
from code_mgt
|
||||
where category_cd='AAR'
|
||||
<choose>
|
||||
<when test='rating != null and rating != ""'>
|
||||
|
|
@ -609,18 +609,18 @@
|
|||
</otherwise>
|
||||
</choose>
|
||||
) b on 1=1
|
||||
left outer join
|
||||
left outer join
|
||||
(select ab.wrt_organ,
|
||||
ar.affair_rate,
|
||||
count(*) as cnt
|
||||
count(*) as cnt
|
||||
from affair_board ab,
|
||||
affair_rating ar
|
||||
where ab.affair_key = ar.affair_key
|
||||
and (ar.organ_up != 'T' or ar.organ_up is null)
|
||||
<include refid="raitingSearch"></include>
|
||||
group by ab.wrt_organ,ar.affair_rate) c
|
||||
group by ab.wrt_organ,ar.affair_rate) c
|
||||
on c.wrt_organ = a.item_cd and c.affair_rate = b.item_cd
|
||||
order by wrt_organ,affairType asc
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
|
|
@ -4,118 +4,101 @@
|
|||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
|
||||
<mapper namespace="com.dbnt.faisp.main.translator.mapper.TranslatorMapper">
|
||||
|
||||
<select id="selectTranslatorList" resultType="Translator" parameterType="Translator">
|
||||
select a.translator_key,
|
||||
version_no,
|
||||
c.item_value as ogdp1,
|
||||
d.item_value as tr_lang,
|
||||
tr_career,
|
||||
tr_name,
|
||||
e.item_value as tr_sex,
|
||||
tr_age,
|
||||
f.item_value as tr_nny,
|
||||
g.item_value as tr_edu,
|
||||
tr_cft,
|
||||
h.item_value as tr_visa,
|
||||
dml_yn,
|
||||
apt_dt,
|
||||
tr_phone
|
||||
from translator_info a
|
||||
inner join (select translator_key, max(version_no) as lastVer
|
||||
from translator_info
|
||||
group by translator_key) b
|
||||
on a.translator_key =b.translator_key and a.version_no = b.lastVer
|
||||
left outer join code_mgt c on a.ogdp1 = c.item_cd
|
||||
left outer join code_mgt d on a.tr_lang = d.item_cd
|
||||
left outer join code_mgt e on a.tr_sex = e.item_cd
|
||||
left outer join code_mgt f on a.tr_nny = f.item_cd
|
||||
left outer join code_mgt g on a.tr_edu = g.item_cd
|
||||
left outer join code_mgt h on a.tr_visa = h.item_cd
|
||||
where ogdp1 in
|
||||
<sql id="selectTranslatorListWhere">
|
||||
<where>
|
||||
ogdp1 in
|
||||
<foreach collection="downOrganCdList" item="item" index="index" separator="," open="(" close=")">
|
||||
#{item}
|
||||
#{item}
|
||||
</foreach>
|
||||
<if test='trLang != null and trLang != ""'>
|
||||
and tr_lang = #{trLang}
|
||||
and tr_lang = #{trLang}
|
||||
</if>
|
||||
<if test='ogdp1 != null and ogdp1 != ""'>
|
||||
and ogdp1 = #{ogdp1}
|
||||
and ogdp1 = #{ogdp1}
|
||||
</if>
|
||||
<if test='trName != null and trName != ""'>
|
||||
and tr_name = #{trName}
|
||||
and tr_name = #{trName}
|
||||
</if>
|
||||
<if test='trNny != null and trNny != ""'>
|
||||
and tr_nny = #{trNny}
|
||||
and tr_nny = #{trNny}
|
||||
</if>
|
||||
<if test='trVisa != null and trVisa != ""'>
|
||||
and tr_visa = #{trVisa}
|
||||
and tr_visa = #{trVisa}
|
||||
</if>
|
||||
<if test='aptDt != null'>
|
||||
and to_char(apt_dt,'YYYY-MM-DD') = #{aptDt}::VARCHAR
|
||||
<if test='startDate != null and startDate != ""'>
|
||||
and apt_dt >= #{startDate}::date
|
||||
</if>
|
||||
<if test='endDate != null and endDate != ""'>
|
||||
and apt_dt <= #{endDate}::date+1
|
||||
</if>
|
||||
<if test='dmlYn != null and dmlYn != ""'>
|
||||
and dml_yn = #{dmlYn}
|
||||
and dml_yn = #{dmlYn}
|
||||
</if>
|
||||
order by translator_key desc
|
||||
</where>
|
||||
</sql>
|
||||
<select id="selectTranslatorList" resultType="Translator" parameterType="Translator">
|
||||
select a.translator_key,
|
||||
version_no,
|
||||
c.item_value as ogdp1,
|
||||
d.item_value as tr_lang,
|
||||
tr_career,
|
||||
tr_name,
|
||||
e.item_value as tr_sex,
|
||||
tr_age,
|
||||
f.item_value as tr_nny,
|
||||
g.item_value as tr_edu,
|
||||
tr_cft,
|
||||
h.item_value as tr_visa,
|
||||
dml_yn,
|
||||
apt_dt,
|
||||
tr_phone
|
||||
from translator_info a
|
||||
inner join (select translator_key, max(version_no) as lastVer
|
||||
from translator_info
|
||||
group by translator_key) b
|
||||
on a.translator_key =b.translator_key and a.version_no = b.lastVer
|
||||
left outer join code_mgt c on a.ogdp1 = c.item_cd
|
||||
left outer join code_mgt d on a.tr_lang = d.item_cd
|
||||
left outer join code_mgt e on a.tr_sex = e.item_cd
|
||||
left outer join code_mgt f on a.tr_nny = f.item_cd
|
||||
left outer join code_mgt g on a.tr_edu = g.item_cd
|
||||
left outer join code_mgt h on a.tr_visa = h.item_cd
|
||||
<include refid="selectTranslatorListWhere"></include>
|
||||
order by translator_key desc
|
||||
limit #{rowCnt} offset #{firstIndex}
|
||||
</select>
|
||||
|
||||
<select id="selectTranslatorListCnt" resultType="int" parameterType="Translator">
|
||||
select count(*)
|
||||
from(
|
||||
select a.translator_key,
|
||||
version_no,
|
||||
c.item_value as ogdp1,
|
||||
d.item_value as tr_lang,
|
||||
tr_career,
|
||||
tr_name,
|
||||
e.item_value as tr_sex,
|
||||
tr_age,
|
||||
f.item_value as tr_nny,
|
||||
g.item_value as tr_edu,
|
||||
tr_cft,
|
||||
h.item_value as tr_visa,
|
||||
dml_yn,
|
||||
apt_dt,
|
||||
tr_phone
|
||||
from translator_info a
|
||||
inner join (select translator_key, max(version_no) as lastVer
|
||||
from translator_info
|
||||
group by translator_key) b
|
||||
on a.translator_key =b.translator_key and a.version_no = b.lastVer
|
||||
left outer join code_mgt c on a.ogdp1 = c.item_cd
|
||||
left outer join code_mgt d on a.tr_lang = d.item_cd
|
||||
left outer join code_mgt e on a.tr_sex = e.item_cd
|
||||
left outer join code_mgt f on a.tr_nny = f.item_cd
|
||||
left outer join code_mgt g on a.tr_edu = g.item_cd
|
||||
left outer join code_mgt h on a.tr_visa = h.item_cd
|
||||
where ogdp1 in
|
||||
<foreach collection="downOrganCdList" item="item" index="index" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
<if test='trLang != null and trLang != ""'>
|
||||
and tr_lang = #{trLang}
|
||||
</if>
|
||||
<if test='ogdp1 != null and ogdp1 != ""'>
|
||||
and ogdp1 = #{ogdp1}
|
||||
</if>
|
||||
<if test='trName != null and trName != ""'>
|
||||
and tr_name = #{trName}
|
||||
</if>
|
||||
<if test='trNny != null and trNny != ""'>
|
||||
and tr_nny = #{trNny}
|
||||
</if>
|
||||
<if test='trVisa != null and trVisa != ""'>
|
||||
and tr_visa = #{trVisa}
|
||||
</if>
|
||||
<if test='aptDt != null'>
|
||||
and to_char(apt_dt,'YYYY-MM-DD') = #{aptDt}::VARCHAR
|
||||
</if>
|
||||
<if test='dmlYn != null and dmlYn != ""'>
|
||||
and dml_yn = #{dmlYn}
|
||||
</if>
|
||||
) a
|
||||
from(
|
||||
select a.translator_key,
|
||||
version_no,
|
||||
c.item_value as ogdp1,
|
||||
d.item_value as tr_lang,
|
||||
tr_career,
|
||||
tr_name,
|
||||
e.item_value as tr_sex,
|
||||
tr_age,
|
||||
f.item_value as tr_nny,
|
||||
g.item_value as tr_edu,
|
||||
tr_cft,
|
||||
h.item_value as tr_visa,
|
||||
dml_yn,
|
||||
apt_dt,
|
||||
tr_phone
|
||||
from translator_info a
|
||||
inner join (select translator_key, max(version_no) as lastVer
|
||||
from translator_info
|
||||
group by translator_key) b
|
||||
on a.translator_key =b.translator_key and a.version_no = b.lastVer
|
||||
left outer join code_mgt c on a.ogdp1 = c.item_cd
|
||||
left outer join code_mgt d on a.tr_lang = d.item_cd
|
||||
left outer join code_mgt e on a.tr_sex = e.item_cd
|
||||
left outer join code_mgt f on a.tr_nny = f.item_cd
|
||||
left outer join code_mgt g on a.tr_edu = g.item_cd
|
||||
left outer join code_mgt h on a.tr_visa = h.item_cd
|
||||
<include refid="selectTranslatorListWhere"></include>
|
||||
) a
|
||||
</select>
|
||||
|
||||
<select id="selectHistoryList" resultType="Translator" parameterType="Translator">
|
||||
|
|
|
|||
|
|
@ -69,11 +69,6 @@
|
|||
--bs-modal-width : 1440px;
|
||||
}
|
||||
|
||||
/*사이드바 카테고리 트리*/
|
||||
.btn-toggle:hover, .btn-toggle:focus {
|
||||
/*color: rgba(0, 0, 0, .85);
|
||||
background-color: #d2eaf4;*/
|
||||
}
|
||||
.btn-toggle::before {
|
||||
content: url("/img/bootstrap-icons-1.9.1/caret-right-fill.svg");
|
||||
filter: invert(100%);
|
||||
|
|
@ -82,14 +77,17 @@
|
|||
content: url("/img/bootstrap-icons-1.9.1/caret-down-fill.svg");
|
||||
}
|
||||
|
||||
.fs-13{
|
||||
font-size: 13px;
|
||||
.fs-10{
|
||||
font-size: 10px;
|
||||
}
|
||||
.fs-11{
|
||||
font-size: 11px;
|
||||
}
|
||||
.fs-10{
|
||||
font-size: 10px;
|
||||
.fs-12{
|
||||
font-size: 12px;
|
||||
}
|
||||
.fs-13{
|
||||
font-size: 13px;
|
||||
}
|
||||
.pl-15{
|
||||
padding-left: 15%;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,12 @@
|
|||
let trCarrerList=[];
|
||||
let selectedIdx=0;
|
||||
|
||||
$(function(){
|
||||
$("#dateSelectorDiv").datepicker({
|
||||
format: "yyyy-mm-dd",
|
||||
language: "ko",
|
||||
autoclose: true
|
||||
});
|
||||
})
|
||||
$(document).on('click', '.userInfoTr', function (event){
|
||||
$("#selectedKey").val($(this).find(".trKey").val())
|
||||
$("#selectedVerNo").val($(this).find(".verNo").val())
|
||||
|
|
|
|||
|
|
@ -77,8 +77,12 @@ $(document).on('click', '#syncToKwmsAllBtn', function (){
|
|||
})
|
||||
}
|
||||
})
|
||||
if(confirm(userList.length+"건의 정보를 갱신하시겠습니까?")){
|
||||
syncUserInfoToKwms(userList);
|
||||
if(userList.length===0){
|
||||
alert("대상을 선택해주세요.")
|
||||
}else{
|
||||
if(confirm(userList.length+"건의 정보를 갱신하시겠습니까?")){
|
||||
syncUserInfoToKwms(userList);
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
|
|
|
|||
|
|
@ -8,125 +8,123 @@
|
|||
<div layout:fragment="content">
|
||||
<main>
|
||||
<h4>사용자 로그</h4>
|
||||
<ul class="nav nav-tabs" id="boardTab" role="tablist">
|
||||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link" id="requestTab" data-bs-toggle="tab" type="button" role="tab">메뉴로그</button>
|
||||
</li>
|
||||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link active" id="inoutTab" data-bs-toggle="tab" type="button" role="tab">접속로그</button>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="row mx-0">
|
||||
<div class="col-12 tab-content bg-white border border-top-0 p-2">
|
||||
<form method="get" th:action="@{/userMgt/userLog/inoutLog}">
|
||||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<div class="row">
|
||||
<div class="col-10">
|
||||
<div class="row justify-content-end pb-1">
|
||||
<div class="col-4">
|
||||
<select class="form-select form-select-sm" name="inoutType">
|
||||
<option value="">결과</option>
|
||||
<th:block th:each="code:${session.commonCode.get('IOT')}">
|
||||
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${searchParams.inoutType eq code.itemCd}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<input type="text" class="form-control form-control-sm" name="contactIp" placeholder="아이피" th:value="${searchParams.contactIp}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="card bg-light">
|
||||
<div class="card-body">
|
||||
<ul class="nav nav-tabs" id="boardTab" role="tablist">
|
||||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link" id="requestTab" data-bs-toggle="tab" type="button" role="tab">메뉴로그</button>
|
||||
</li>
|
||||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link active" id="inoutTab" data-bs-toggle="tab" type="button" role="tab">접속로그</button>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="row mx-0">
|
||||
<div class="col-12 tab-content bg-white border border-top-0 p-2">
|
||||
<form method="get" th:action="@{/userMgt/userLog/inoutLog}">
|
||||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-8">
|
||||
<div class="row">
|
||||
<div class="col-4">
|
||||
<input type="text" class="form-control form-control-sm" name="userBelong" placeholder="사용자" th:value="${searchParams.userBelong}">
|
||||
</div>
|
||||
<div class="col-8">
|
||||
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
|
||||
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
|
||||
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
|
||||
<div class="col-11">
|
||||
<div class="row justify-content-end pb-1">
|
||||
<div class="col-2">
|
||||
<select class="form-select form-select-sm" name="inoutType">
|
||||
<option value="">결과</option>
|
||||
<th:block th:each="code:${session.commonCode.get('IOT')}">
|
||||
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${searchParams.inoutType eq code.itemCd}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<input type="text" class="form-control form-control-sm" name="contactIp" placeholder="아이피" th:value="${searchParams.contactIp}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-end">
|
||||
<div class="col-2">
|
||||
<input type="text" class="form-control form-control-sm" name="userBelong" placeholder="사용자" th:value="${searchParams.userBelong}">
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="input-group input-daterange" id="dateSelectorDiv">
|
||||
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
|
||||
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-1 d-grid gap-0">
|
||||
<input type="submit" class="btn btn-primary" id="searchBtn" value="검색">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-2 d-grid gap-2">
|
||||
<input type="submit" class="btn btn-sm btn-primary mx-2" id="searchBtn" value="검색">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="row justify-content-start">
|
||||
<div class="col-12">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<table class="table table-sm table-hover table-bordered">
|
||||
<thead>
|
||||
<tr class="table-secondary">
|
||||
<th>접속아이피</th>
|
||||
<th>결과</th>
|
||||
<th>사용자</th>
|
||||
<th>등록일</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-group-divider">
|
||||
<tr class="inoutLogTr" th:each="log:${logList}">
|
||||
<input type="hidden" class="contactIp" th:value="${log.contactIp}">
|
||||
<th:block th:each="code:${session.commonCode.get('IOT')}">
|
||||
<th:block th:if="${code.itemCd eq log.inoutType}">
|
||||
<input type="hidden" class="inoutType" th:value="${code.itemValue}">
|
||||
</th:block>
|
||||
</form>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<table class="table table-sm table-hover table-bordered">
|
||||
<thead>
|
||||
<tr class="table-secondary">
|
||||
<th>접속아이피</th>
|
||||
<th>결과</th>
|
||||
<th>사용자</th>
|
||||
<th>등록일</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-group-divider">
|
||||
<tr class="inoutLogTr" th:each="log:${logList}">
|
||||
<input type="hidden" class="contactIp" th:value="${log.contactIp}">
|
||||
<th:block th:each="code:${session.commonCode.get('IOT')}">
|
||||
<th:block th:if="${code.itemCd eq log.inoutType}">
|
||||
<input type="hidden" class="inoutType" th:value="${code.itemValue}">
|
||||
</th:block>
|
||||
<input type="hidden" class="sessionId" th:value="${log.sessionId}">
|
||||
<input type="hidden" class="userBelong" th:value="${log.userBelong}">
|
||||
<input type="hidden" class="wrtDt" th:value="${#temporals.format(log.wrtDt, 'yyyy-MM-dd HH:mm:ss')}">
|
||||
<td th:text="${log.contactIp}"></td>
|
||||
<td>
|
||||
<th:block th:each="code:${session.commonCode.get('IOT')}">
|
||||
<th:block th:if="${code.itemCd eq log.inoutType}" th:text="${code.itemValue}"></th:block>
|
||||
</th:block>
|
||||
</td>
|
||||
<td th:text="${log.userBelong}"></td>
|
||||
<td th:text="${#temporals.format(log.wrtDt, 'yyyy-MM-dd HH:mm:ss')}"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-auto">
|
||||
<nav aria-label="Page navigation">
|
||||
<ul class="pagination mb-0">
|
||||
<th:block th:if="${searchParams.pageIndex>3}">
|
||||
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)-3}">
|
||||
<a class="page-link" href="#" aria-label="Previous">
|
||||
<span aria-hidden="true">«</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">»</span>
|
||||
</a>
|
||||
</li>
|
||||
</th:block>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</th:block>
|
||||
<input type="hidden" class="sessionId" th:value="${log.sessionId}">
|
||||
<input type="hidden" class="userBelong" th:value="${log.userBelong}">
|
||||
<input type="hidden" class="wrtDt" th:value="${#temporals.format(log.wrtDt, 'yyyy-MM-dd HH:mm:ss')}">
|
||||
<td th:text="${log.contactIp}"></td>
|
||||
<td>
|
||||
<th:block th:each="code:${session.commonCode.get('IOT')}">
|
||||
<th:block th:if="${code.itemCd eq log.inoutType}" th:text="${code.itemValue}"></th:block>
|
||||
</th:block>
|
||||
</td>
|
||||
<td th:text="${log.userBelong}"></td>
|
||||
<td th:text="${#temporals.format(log.wrtDt, 'yyyy-MM-dd HH:mm:ss')}"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-auto">
|
||||
<nav aria-label="Page navigation">
|
||||
<ul class="pagination mb-0">
|
||||
<th:block th:if="${searchParams.pageIndex>3}">
|
||||
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)-3}">
|
||||
<a class="page-link" href="#" aria-label="Previous">
|
||||
<span aria-hidden="true">«</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">»</span>
|
||||
</a>
|
||||
</li>
|
||||
</th:block>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -8,123 +8,121 @@
|
|||
<div layout:fragment="content">
|
||||
<main>
|
||||
<h4>사용자 로그</h4>
|
||||
<ul class="nav nav-tabs" id="boardTab" role="tablist">
|
||||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link active" id="requestTab" data-bs-toggle="tab" type="button" role="tab">메뉴로그</button>
|
||||
</li>
|
||||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link" id="inoutTab" data-bs-toggle="tab" type="button" role="tab">접속로그</button>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="row mx-0">
|
||||
<div class="col-12 tab-content bg-white border border-top-0 p-2">
|
||||
<form method="get" th:action="@{/userMgt/userLog/requestLog}">
|
||||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<div class="row justify-content-end">
|
||||
<div class="col-10">
|
||||
<div class="row pb-1">
|
||||
<div class="col-4">
|
||||
<input type="text" class="form-control form-control-sm" name="contactIp" placeholder="아이피" th:value="${searchParams.contactIp}">
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<input type="text" class="form-control form-control-sm" name="requestUrl" placeholder="URL" th:value="${searchParams.requestUrl}">
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<select class="form-select form-select-sm" name="requestMethod">
|
||||
<option value="">접근방식</option>
|
||||
<option value="GET" th:selected="${searchParams.requestMethod eq 'GET'}">GET</option>
|
||||
<option value="POST" th:selected="${searchParams.requestMethod eq 'POST'}">POST</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card bg-light">
|
||||
<div class="card-body">
|
||||
<ul class="nav nav-tabs" id="boardTab" role="tablist">
|
||||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link active" id="requestTab" data-bs-toggle="tab" type="button" role="tab">메뉴로그</button>
|
||||
</li>
|
||||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link" id="inoutTab" data-bs-toggle="tab" type="button" role="tab">접속로그</button>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="row mx-0">
|
||||
<div class="col-12 tab-content bg-white border border-top-0 p-2">
|
||||
<form method="get" th:action="@{/userMgt/userLog/requestLog}">
|
||||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-8">
|
||||
<div class="row">
|
||||
<div class="col-4">
|
||||
<input type="text" class="form-control form-control-sm" name="userBelong" placeholder="사용자" th:value="${searchParams.userBelong}">
|
||||
</div>
|
||||
<div class="col-8">
|
||||
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
|
||||
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
|
||||
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
|
||||
<div class="col-11">
|
||||
<div class="row justify-content-end pb-1">
|
||||
<div class="col-2">
|
||||
<input type="text" class="form-control form-control-sm" name="contactIp" placeholder="아이피" th:value="${searchParams.contactIp}">
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<input type="text" class="form-control form-control-sm" name="requestUrl" placeholder="URL" th:value="${searchParams.requestUrl}">
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<select class="form-select form-select-sm" name="requestMethod">
|
||||
<option value="">접근방식</option>
|
||||
<option value="GET" th:selected="${searchParams.requestMethod eq 'GET'}">GET</option>
|
||||
<option value="POST" th:selected="${searchParams.requestMethod eq 'POST'}">POST</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-end">
|
||||
<div class="col-2">
|
||||
<input type="text" class="form-control form-control-sm" name="userBelong" placeholder="사용자" th:value="${searchParams.userBelong}">
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="input-group input-daterange" id="dateSelectorDiv">
|
||||
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
|
||||
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-1 d-grid gap-0">
|
||||
<input type="submit" class="btn btn-primary" id="searchBtn" value="검색">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-2 d-grid gap-2">
|
||||
<input type="submit" class="btn btn-sm btn-primary mx-2" id="searchBtn" value="검색">
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<table class="table table-sm table-hover table-bordered">
|
||||
<thead>
|
||||
<tr class="table-secondary">
|
||||
<th>접속아이피</th>
|
||||
<th>요청 URL</th>
|
||||
<th>접근 방식</th>
|
||||
<th>사용자</th>
|
||||
<th>등록일</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-group-divider">
|
||||
<tr class="requestLogTr" th:each="log:${logList}">
|
||||
<input type="hidden" class="contactIp" th:value="${log.contactIp}">
|
||||
<input type="hidden" class="requestUrl" th:value="${log.requestUrl}">
|
||||
<input type="hidden" class="requestMethod" th:value="${log.requestMethod}">
|
||||
<input type="hidden" class="searchParams" th:value="${log.searchParams}">
|
||||
<input type="hidden" class="handlerDescription" th:value="${log.handlerDescription}">
|
||||
<input type="hidden" class="userBelong" th:value="${log.userBelong}">
|
||||
<input type="hidden" class="wrtDt" th:value="${#temporals.format(log.wrtDt, 'yyyy-MM-dd HH:mm:ss')}">
|
||||
<td th:text="${log.contactIp}"></td>
|
||||
<td th:text="${log.requestUrl}"></td>
|
||||
<td th:text="${log.requestMethod}"></td>
|
||||
<td th:text="${log.userBelong}"></td>
|
||||
<td th:text="${#temporals.format(log.wrtDt, 'yyyy-MM-dd HH:mm:ss')}"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="row justify-content-start">
|
||||
<div class="col-12">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<table class="table table-sm table-hover table-bordered">
|
||||
<thead>
|
||||
<tr class="table-secondary">
|
||||
<th>접속아이피</th>
|
||||
<th>요청 URL</th>
|
||||
<th>접근 방식</th>
|
||||
<th>사용자</th>
|
||||
<th>등록일</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-group-divider">
|
||||
<tr class="requestLogTr" th:each="log:${logList}">
|
||||
<input type="hidden" class="contactIp" th:value="${log.contactIp}">
|
||||
<input type="hidden" class="requestUrl" th:value="${log.requestUrl}">
|
||||
<input type="hidden" class="requestMethod" th:value="${log.requestMethod}">
|
||||
<input type="hidden" class="searchParams" th:value="${log.searchParams}">
|
||||
<input type="hidden" class="handlerDescription" th:value="${log.handlerDescription}">
|
||||
<input type="hidden" class="userBelong" th:value="${log.userBelong}">
|
||||
<input type="hidden" class="wrtDt" th:value="${#temporals.format(log.wrtDt, 'yyyy-MM-dd HH:mm:ss')}">
|
||||
<td th:text="${log.contactIp}"></td>
|
||||
<td th:text="${log.requestUrl}"></td>
|
||||
<td th:text="${log.requestMethod}"></td>
|
||||
<td th:text="${log.userBelong}"></td>
|
||||
<td th:text="${#temporals.format(log.wrtDt, 'yyyy-MM-dd HH:mm:ss')}"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-auto">
|
||||
<nav aria-label="Page navigation">
|
||||
<ul class="pagination mb-0">
|
||||
<th:block th:if="${searchParams.pageIndex>3}">
|
||||
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)-3}">
|
||||
<a class="page-link" href="#" aria-label="Previous">
|
||||
<span aria-hidden="true">«</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">»</span>
|
||||
</a>
|
||||
</li>
|
||||
</th:block>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-auto">
|
||||
<nav aria-label="Page navigation">
|
||||
<ul class="pagination mb-0">
|
||||
<th:block th:if="${searchParams.pageIndex>3}">
|
||||
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)-3}">
|
||||
<a class="page-link" href="#" aria-label="Previous">
|
||||
<span aria-hidden="true">«</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">»</span>
|
||||
</a>
|
||||
</li>
|
||||
</th:block>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -7,173 +7,171 @@
|
|||
</th:block>
|
||||
<div layout:fragment="content">
|
||||
<main>
|
||||
<h4>외사경찰 관리</h4>
|
||||
<ul class="nav nav-tabs" id="boardTab" role="tablist">
|
||||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link" th:classappend="${searchParams.userStatus eq 'USC003'?'active':''}" id="apprvTab" data-bs-toggle="tab" type="button" role="tab">승인목록</button>
|
||||
</li>
|
||||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link" th:classappend="${searchParams.userStatus ne 'USC003'?'active':''}" id="stayTab" data-bs-toggle="tab" type="button" role="tab">승인대기</button>
|
||||
</li>
|
||||
</ul>
|
||||
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
|
||||
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
|
||||
<div class="row mx-0">
|
||||
<div class="col-12 tab-content bg-white border border-top-0 p-2">
|
||||
<form method="get" th:action="@{/userMgt/userMgtPage}">
|
||||
<input type="hidden" name="userStatus" id="userStatus" th:value="${searchParams.userStatus}">
|
||||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<div class="row justify-content-end">
|
||||
<h4>외사경찰 관리</h4>
|
||||
<div class="card bg-light">
|
||||
<div class="card-body">
|
||||
<ul class="nav nav-tabs" id="boardTab" role="tablist">
|
||||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link" th:classappend="${searchParams.userStatus eq 'USC003'?'active':''}" id="apprvTab" data-bs-toggle="tab" type="button" role="tab">승인목록</button>
|
||||
</li>
|
||||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link" th:classappend="${searchParams.userStatus ne 'USC003'?'active':''}" id="stayTab" data-bs-toggle="tab" type="button" role="tab">승인대기</button>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="row mx-0">
|
||||
<div class="col-12 tab-content bg-white border border-top-0 p-2">
|
||||
<form method="get" th:action="@{/userMgt/userMgtPage}">
|
||||
<input type="hidden" name="userStatus" id="userStatus" th:value="${searchParams.userStatus}">
|
||||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="ogCd">
|
||||
<option value="">관서 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${searchParams.ogCd==commonCode.itemCd}"></option>
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="ofcCd">
|
||||
<option value="">부서 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('OFC')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${searchParams.ofcCd==commonCode.itemCd}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="titleCd">
|
||||
<option value="">계급 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('JT')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${searchParams.titleCd==commonCode.itemCd}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<input type="text" class="form-control form-control-sm" name="userNm" placeholder="사용자명" th:value="${searchParams.userNm}">
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<input type="text" class="form-control form-control-sm" name="userId" placeholder="사용자 아이디" th:value="${searchParams.userId}">
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
|
||||
<div class="row justify-content-end">
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="ogCd">
|
||||
<option value="">관서 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${searchParams.ogCd==commonCode.itemCd}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="ofcCd">
|
||||
<option value="">부서 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('OFC')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${searchParams.ofcCd==commonCode.itemCd}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="titleCd">
|
||||
<option value="">계급 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('JT')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${searchParams.titleCd==commonCode.itemCd}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<input type="text" class="form-control form-control-sm" name="userNm" placeholder="사용자명" th:value="${searchParams.userNm}">
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<input type="text" class="form-control form-control-sm" name="userId" placeholder="사용자 아이디" th:value="${searchParams.userId}">
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<table class="table table-sm table-hover table-bordered">
|
||||
<thead>
|
||||
<tr class="table-secondary">
|
||||
<th> <input type="checkbox" class="allChk"></th>
|
||||
<th>소속</th>
|
||||
<th>부서</th>
|
||||
<th>계급</th>
|
||||
<th>성명</th>
|
||||
<th>아이디</th>
|
||||
<th>식별번호</th>
|
||||
<th>등록일</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-group-divider">
|
||||
<tr class="userInfoTr" th:each="userInfo:${userInfoList}">
|
||||
<input type="hidden" name="userSeq" class="userSeq" th:value="${userInfo.userSeq}">
|
||||
<input type="hidden" name="dicCode" class="dicCode" th:value="${userInfo.dicCode}">
|
||||
<td class="checkBoxTd">
|
||||
<input type="checkbox" id="userChk" name="userChk" class="userInfoCheckBox" th:value="${userInfo.userSeq}">
|
||||
</td>
|
||||
<th:block th:if="${userInfo.ogCd eq null or userInfo.ogCd eq ''}">
|
||||
<td></td>
|
||||
</th:block>
|
||||
<th:block th:unless="${userInfo.ogCd eq null or userInfo.ogCd eq ''}">
|
||||
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
|
||||
<th:block th:if="${commonCode.itemCd == userInfo.ogCd}">
|
||||
<td th:text="${commonCode.itemValue}"></td>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</th:block>
|
||||
<th:block th:if="${userInfo.ofcCd eq null or userInfo.ofcCd eq ''}">
|
||||
<td></td>
|
||||
</th:block>
|
||||
<th:block th:unless="${userInfo.ofcCd eq null or userInfo.ofcCd eq ''}">
|
||||
<th:block th:each="commonCode:${session.commonCode.get('OFC')}">
|
||||
<th:block th:if="${commonCode.itemCd == userInfo.ofcCd}">
|
||||
<td th:text="${commonCode.itemValue}"></td>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</th:block>
|
||||
<th:block th:if="${userInfo.titleCd eq null or userInfo.titleCd eq ''}">
|
||||
<td></td>
|
||||
</th:block>
|
||||
<th:block th:unless="${userInfo.titleCd eq null or userInfo.titleCd eq ''}">
|
||||
<th:block th:each="commonCode:${session.commonCode.get('JT')}">
|
||||
<th:block th:if="${commonCode.itemCd == userInfo.titleCd}">
|
||||
<td th:text="${commonCode.itemValue}"></td>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</th:block>
|
||||
<td th:text="${userInfo.userNm}"></td>
|
||||
<td th:text="${userInfo.userId}"></td>
|
||||
<td th:text="${userInfo.dicCode}"></td>
|
||||
<td th:text="${#temporals.format(userInfo.wrtDt, 'yyyy-MM-dd HH:mm:ss')}"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="row justify-content-start">
|
||||
<div class="col-12">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<table class="table table-sm table-hover table-bordered">
|
||||
<thead>
|
||||
<tr class="table-secondary">
|
||||
<th> <input type="checkbox" class="allChk"></th>
|
||||
<th>소속</th>
|
||||
<th>부서</th>
|
||||
<th>계급</th>
|
||||
<th>성명</th>
|
||||
<th>아이디</th>
|
||||
<th>식별번호</th>
|
||||
<th>등록일</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-group-divider">
|
||||
<tr class="userInfoTr" th:each="userInfo:${userInfoList}">
|
||||
<input type="hidden" name="userSeq" class="userSeq" th:value="${userInfo.userSeq}">
|
||||
<input type="hidden" name="dicCode" class="dicCode" th:value="${userInfo.dicCode}">
|
||||
<td class="checkBoxTd">
|
||||
<input type="checkbox" id="userChk" name="userChk" class="userInfoCheckBox" th:value="${userInfo.userSeq}">
|
||||
</td>
|
||||
<th:block th:if="${userInfo.ogCd eq null or userInfo.ogCd eq ''}">
|
||||
<td></td>
|
||||
</th:block>
|
||||
<th:block th:unless="${userInfo.ogCd eq null or userInfo.ogCd eq ''}">
|
||||
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
|
||||
<th:block th:if="${commonCode.itemCd == userInfo.ogCd}">
|
||||
<td th:text="${commonCode.itemValue}"></td>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</th:block>
|
||||
<th:block th:if="${userInfo.ofcCd eq null or userInfo.ofcCd eq ''}">
|
||||
<td></td>
|
||||
</th:block>
|
||||
<th:block th:unless="${userInfo.ofcCd eq null or userInfo.ofcCd eq ''}">
|
||||
<th:block th:each="commonCode:${session.commonCode.get('OFC')}">
|
||||
<th:block th:if="${commonCode.itemCd == userInfo.ofcCd}">
|
||||
<td th:text="${commonCode.itemValue}"></td>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</th:block>
|
||||
<th:block th:if="${userInfo.titleCd eq null or userInfo.titleCd eq ''}">
|
||||
<td></td>
|
||||
</th:block>
|
||||
<th:block th:unless="${userInfo.titleCd eq null or userInfo.titleCd eq ''}">
|
||||
<th:block th:each="commonCode:${session.commonCode.get('JT')}">
|
||||
<th:block th:if="${commonCode.itemCd == userInfo.titleCd}">
|
||||
<td th:text="${commonCode.itemValue}"></td>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</th:block>
|
||||
<td th:text="${userInfo.userNm}"></td>
|
||||
<td th:text="${userInfo.userId}"></td>
|
||||
<td th:text="${userInfo.dicCode}"></td>
|
||||
<td th:text="${#temporals.format(userInfo.wrtDt, 'yyyy-MM-dd HH:mm:ss')}"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="row justify-content-between">
|
||||
<div class="col-auto">
|
||||
<th:block th:if="${searchParams.userStatus eq 'USC002'}">
|
||||
<input type="button" class="btn btn-danger" value="반려" id="companionBtn">
|
||||
<div class="row justify-content-between">
|
||||
<div class="col-auto">
|
||||
<th:block th:if="${searchParams.userStatus eq 'USC002'}">
|
||||
<input type="button" class="btn btn-danger" value="반려" id="companionBtn">
|
||||
</th:block>
|
||||
<th:block th:if="${searchParams.userStatus eq 'USC003'}">
|
||||
<button type="button" class="btn btn-info" id="syncToKwmsAllBtn">인사시스템 정보 불러오기</button>
|
||||
</th:block>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<nav aria-label="Page navigation">
|
||||
<ul class="pagination mb-0">
|
||||
<th:block th:if="${searchParams.pageIndex>3}">
|
||||
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)-3}">
|
||||
<a class="page-link" href="#" aria-label="Previous">
|
||||
<span aria-hidden="true">«</span>
|
||||
</a>
|
||||
</li>
|
||||
</th:block>
|
||||
<th:block th:if="${searchParams.userStatus eq 'USC003'}">
|
||||
<button type="button" class="btn btn-info" id="syncToKwmsAllBtn">인사시스템 정보 불러오기</button>
|
||||
<th:block th:each="num : ${#numbers.sequence(searchParams.startNum, searchParams.endNum)}">
|
||||
<li class="page-item" th:data-pageindex="${num}" th:classappend="${searchParams.pageIndex==num?'active':''}">
|
||||
<a class="page-link" href="#" th:text="${num}"></a>
|
||||
</li>
|
||||
</th:block>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<nav aria-label="Page navigation">
|
||||
<ul class="pagination mb-0">
|
||||
<th:block th:if="${searchParams.pageIndex>3}">
|
||||
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)-3}">
|
||||
<a class="page-link" href="#" aria-label="Previous">
|
||||
<span aria-hidden="true">«</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">»</span>
|
||||
</a>
|
||||
</li>
|
||||
</th:block>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<th:block th:if="${searchParams.userStatus eq 'USC002'}">
|
||||
<input type="button" class="btn btn-success" value="외사경찰 승인" id="approvalBtn">
|
||||
<input type="button" class="btn btn-warning" value="비외사경찰 승인" id="notPoliceBtn">
|
||||
</th:block>
|
||||
</div>
|
||||
</div>
|
||||
<th:block th:if="${searchParams.maxNum>searchParams.endNum+2}">
|
||||
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)+3}">
|
||||
<a class="page-link" href="#" aria-label="Next">
|
||||
<span aria-hidden="true">»</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>
|
||||
|
|
|
|||
|
|
@ -16,126 +16,122 @@
|
|||
<div class="row mx-0">
|
||||
<div class="col-12 card bg-light text-center">
|
||||
<div class="card-body">
|
||||
<div class="row justify-content-start">
|
||||
<div class="col-12">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<form id="searchFm" method="get" th:action="@{/equip/pvreUseList}">
|
||||
<input type="hidden" name="excel">
|
||||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<button type="button" class="btn btn-sm btn-success" id="goExcel">엑셀다운</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-end py-1">
|
||||
<div class="col-1" th:if="${accessAuth eq 'ACC003'}">
|
||||
<select class="form-select form-select-sm" name="mgtOrgan">
|
||||
<option value="">경찰서</option>
|
||||
<th:block th:each="organList:${organList}">
|
||||
<option th:value="${organList.item_cd}" th:text="${organList.item_value}" th:selected="${organList.item_cd eq searchParams.mgtOrgan}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-1">
|
||||
<input type="text" class="form-control form-control-sm" placeholder="연번" name="useNo" th:value="${searchParams.useNo}">
|
||||
</div>
|
||||
<div class="col-1">
|
||||
<select class="form-select form-select-sm" name="detailType">
|
||||
<option value="">사용사유</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('PVREUSE')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.detailType}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<div class="input-group input-daterange" id="dateSelectorDiv">
|
||||
<select class="form-select form-select-sm w-30" name="dateSelector">
|
||||
<option value="">조건선택</option>
|
||||
<option value="useDt" th:selected="${searchParams.dateSelector eq 'useDt'}">사용일</option>
|
||||
<option value="wrtDt" th:selected="${searchParams.dateSelector eq 'wrtDt'}">최종수정일</option>
|
||||
</select>
|
||||
<input type="text" class="form-control form-control-sm w-35" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
|
||||
<input type="text" class="form-control form-control-sm w-35" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<table class="table table-sm table-hover table-bordered">
|
||||
<thead>
|
||||
<tr class="table-secondary">
|
||||
<th> <input type="checkbox" id="chk-all" class="useCheckBox"></th>
|
||||
<th>연번</th>
|
||||
<th>경찰서</th>
|
||||
<th>사용일시</th>
|
||||
<th>사용사유</th>
|
||||
<th>사용인원</th>
|
||||
<th>비고</th>
|
||||
<th>최종수정일</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-group-divider">
|
||||
<tr class="useTr" th:each="list:${useList}" th:data-useNo="${list.useNo}" th:data-mgtOrgan="${list.mgtOrgan}" th:data-useType="${list.useType}">
|
||||
<td class="useChk"><input type="checkbox" name="useChk" class="useCheckBox"></td>
|
||||
<td th:text="${list.useNo}"></td>
|
||||
<td th:text="${list.sosok}"></td>
|
||||
<td th:text="${list.useDt}"></td>
|
||||
<td th:text="${list.detailTypeName}" th:if="${list.detailType != 'PVREUSE007'}"></td>
|
||||
<td th:text="${list.detailSelf}" th:unless="${list.detailType != 'PVREUSE007'}"></td>
|
||||
<td th:text="${list.peopleCnt}"></td>
|
||||
<td th:text="${list.description}"></td>
|
||||
<td th:text="${#temporals.format(list.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-between">
|
||||
<div class="col-auto">
|
||||
<button type="button" class="btn btn-warning" id="historyBtn">수정이력</button>
|
||||
<button type="button" class="btn btn-danger" id="deleteUse" th:if="${accessAuth eq 'ACC003'}">삭제</button>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<nav aria-label="Page navigation">
|
||||
<ul class="pagination mb-0">
|
||||
<th:block th:if="${searchParams.pageIndex>3}">
|
||||
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)-3}">
|
||||
<a class="page-link" href="#" aria-label="Previous">
|
||||
<span aria-hidden="true">«</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">»</span>
|
||||
</a>
|
||||
</li>
|
||||
</th:block>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<button type="button" class="btn btn-primary" id="addPvre" th:unless="${accessAuth eq 'ACC001'}">등록</button>
|
||||
</div>
|
||||
</div>
|
||||
<form id="searchFm" method="get" th:action="@{/equip/pvreUseList}">
|
||||
<input type="hidden" name="excel">
|
||||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<button type="button" class="btn btn-sm btn-success" id="goExcel">엑셀다운</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-end py-1">
|
||||
<div class="col-1" th:if="${accessAuth eq 'ACC003'}">
|
||||
<select class="form-select form-select-sm" name="mgtOrgan">
|
||||
<option value="">경찰서</option>
|
||||
<th:block th:each="organList:${organList}">
|
||||
<option th:value="${organList.item_cd}" th:text="${organList.item_value}" th:selected="${organList.item_cd eq searchParams.mgtOrgan}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-1">
|
||||
<input type="text" class="form-control form-control-sm" placeholder="연번" name="useNo" th:value="${searchParams.useNo}">
|
||||
</div>
|
||||
<div class="col-1">
|
||||
<select class="form-select form-select-sm" name="detailType">
|
||||
<option value="">사용사유</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('PVREUSE')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.detailType}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<div class="input-group input-daterange" id="dateSelectorDiv">
|
||||
<select class="form-select form-select-sm w-30" name="dateSelector">
|
||||
<option value="">조건선택</option>
|
||||
<option value="useDt" th:selected="${searchParams.dateSelector eq 'useDt'}">사용일</option>
|
||||
<option value="wrtDt" th:selected="${searchParams.dateSelector eq 'wrtDt'}">최종수정일</option>
|
||||
</select>
|
||||
<input type="text" class="form-control form-control-sm w-35" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
|
||||
<input type="text" class="form-control form-control-sm w-35" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<table class="table table-sm table-hover table-bordered">
|
||||
<thead>
|
||||
<tr class="table-secondary">
|
||||
<th> <input type="checkbox" id="chk-all" class="useCheckBox"></th>
|
||||
<th>연번</th>
|
||||
<th>경찰서</th>
|
||||
<th>사용일시</th>
|
||||
<th>사용사유</th>
|
||||
<th>사용인원</th>
|
||||
<th>비고</th>
|
||||
<th>최종수정일</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-group-divider">
|
||||
<tr class="useTr" th:each="list:${useList}" th:data-useNo="${list.useNo}" th:data-mgtOrgan="${list.mgtOrgan}" th:data-useType="${list.useType}">
|
||||
<td class="useChk"><input type="checkbox" name="useChk" class="useCheckBox"></td>
|
||||
<td th:text="${list.useNo}"></td>
|
||||
<td th:text="${list.sosok}"></td>
|
||||
<td th:text="${list.useDt}"></td>
|
||||
<td th:text="${list.detailTypeName}" th:if="${list.detailType != 'PVREUSE007'}"></td>
|
||||
<td th:text="${list.detailSelf}" th:unless="${list.detailType != 'PVREUSE007'}"></td>
|
||||
<td th:text="${list.peopleCnt}"></td>
|
||||
<td th:text="${list.description}"></td>
|
||||
<td th:text="${#temporals.format(list.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-between">
|
||||
<div class="col-auto">
|
||||
<button type="button" class="btn btn-warning" id="historyBtn">수정이력</button>
|
||||
<button type="button" class="btn btn-danger" id="deleteUse" th:if="${accessAuth eq 'ACC003'}">삭제</button>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<nav aria-label="Page navigation">
|
||||
<ul class="pagination mb-0">
|
||||
<th:block th:if="${searchParams.pageIndex>3}">
|
||||
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)-3}">
|
||||
<a class="page-link" href="#" aria-label="Previous">
|
||||
<span aria-hidden="true">«</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">»</span>
|
||||
</a>
|
||||
</li>
|
||||
</th:block>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<button type="button" class="btn btn-primary" id="addPvre" th:unless="${accessAuth eq 'ACC001'}">등록</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -16,126 +16,122 @@
|
|||
<div class="row mx-0">
|
||||
<div class="col-12 card bg-light text-center">
|
||||
<div class="card-body">
|
||||
<div class="row justify-content-start">
|
||||
<div class="col-12">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<form id="searchFm" method="get" th:action="@{/equip/qirUseList}">
|
||||
<input type="hidden" name="excel">
|
||||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<button type="button" class="btn btn-sm btn-success" id="goExcel">엑셀다운</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-end py-1">
|
||||
<div class="col-1" th:if="${accessAuth eq 'ACC003'}">
|
||||
<select class="form-select form-select-sm" name="mgtOrgan">
|
||||
<option value="">경찰서</option>
|
||||
<th:block th:each="organList:${organList}">
|
||||
<option th:value="${organList.item_cd}" th:text="${organList.item_value}" th:selected="${organList.item_cd eq searchParams.mgtOrgan}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-1">
|
||||
<input type="text" class="form-control form-control-sm" placeholder="연번" name="useNo" th:value="${searchParams.useNo}">
|
||||
</div>
|
||||
<div class="col-1">
|
||||
<select class="form-select form-select-sm" name="detailType">
|
||||
<option value="">사용사유</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('QIRUSE')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.detailType}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<div class="input-group input-daterange" id="dateSelectorDiv">
|
||||
<select class="form-select form-select-sm w-30" name="dateSelector">
|
||||
<option value="">조건</option>
|
||||
<option value="useDt" th:selected="${searchParams.dateSelector eq 'useDt'}">사용일</option>
|
||||
<option value="wrtDt" th:selected="${searchParams.dateSelector eq 'wrtDt'}">최종수정일</option>
|
||||
</select>
|
||||
<input type="text" class="form-control form-control-sm w-35" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
|
||||
<input type="text" class="form-control form-control-sm w-35" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<table class="table table-sm table-hover table-bordered">
|
||||
<thead>
|
||||
<tr class="table-secondary">
|
||||
<th> <input type="checkbox" id="chk-all" class="useCheckBox"></th>
|
||||
<th>연번</th>
|
||||
<th>경찰서</th>
|
||||
<th>사용일시</th>
|
||||
<th>사용사유</th>
|
||||
<th>사용인원</th>
|
||||
<th>비고</th>
|
||||
<th>최종수정일</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-group-divider">
|
||||
<tr class="useTr" th:each="list:${useList}" th:data-useNo="${list.useNo}" th:data-mgtOrgan="${list.mgtOrgan}" th:data-useType="${list.useType}">
|
||||
<td class="useChk"><input type="checkbox" name="useChk" class="useCheckBox"></td>
|
||||
<td th:text="${list.useNo}"></td>
|
||||
<td th:text="${list.sosok}"></td>
|
||||
<td th:text="${list.useDt}"></td>
|
||||
<td th:text="${list.detailTypeName}" th:if="${list.detailType != 'QIRUSE006'}"></td>
|
||||
<td th:text="${list.detailSelf}" th:unless="${list.detailType != 'QIRUSE006'}"></td>
|
||||
<td th:text="${list.peopleCnt}"></td>
|
||||
<td th:text="${list.description}"></td>
|
||||
<td th:text="${#temporals.format(list.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-between">
|
||||
<div class="col-auto">
|
||||
<button type="button" class="btn btn-warning" id="historyBtn">수정이력</button>
|
||||
<button type="button" class="btn btn-danger" id="deleteUse" th:if="${accessAuth eq 'ACC003'}">삭제</button>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<nav aria-label="Page navigation">
|
||||
<ul class="pagination mb-0">
|
||||
<th:block th:if="${searchParams.pageIndex>3}">
|
||||
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)-3}">
|
||||
<a class="page-link" href="#" aria-label="Previous">
|
||||
<span aria-hidden="true">«</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">»</span>
|
||||
</a>
|
||||
</li>
|
||||
</th:block>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<button type="button" class="btn btn-primary" id="addQir" th:unless="${accessAuth eq 'ACC001'}">등록</button>
|
||||
</div>
|
||||
</div>
|
||||
<form id="searchFm" method="get" th:action="@{/equip/qirUseList}">
|
||||
<input type="hidden" name="excel">
|
||||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<button type="button" class="btn btn-sm btn-success" id="goExcel">엑셀다운</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-end py-1">
|
||||
<div class="col-1" th:if="${accessAuth eq 'ACC003'}">
|
||||
<select class="form-select form-select-sm" name="mgtOrgan">
|
||||
<option value="">경찰서</option>
|
||||
<th:block th:each="organList:${organList}">
|
||||
<option th:value="${organList.item_cd}" th:text="${organList.item_value}" th:selected="${organList.item_cd eq searchParams.mgtOrgan}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-1">
|
||||
<input type="text" class="form-control form-control-sm" placeholder="연번" name="useNo" th:value="${searchParams.useNo}">
|
||||
</div>
|
||||
<div class="col-1">
|
||||
<select class="form-select form-select-sm" name="detailType">
|
||||
<option value="">사용사유</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('QIRUSE')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.detailType}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<div class="input-group input-daterange" id="dateSelectorDiv">
|
||||
<select class="form-select form-select-sm w-30" name="dateSelector">
|
||||
<option value="">조건</option>
|
||||
<option value="useDt" th:selected="${searchParams.dateSelector eq 'useDt'}">사용일</option>
|
||||
<option value="wrtDt" th:selected="${searchParams.dateSelector eq 'wrtDt'}">최종수정일</option>
|
||||
</select>
|
||||
<input type="text" class="form-control form-control-sm w-35" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
|
||||
<input type="text" class="form-control form-control-sm w-35" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<table class="table table-sm table-hover table-bordered">
|
||||
<thead>
|
||||
<tr class="table-secondary">
|
||||
<th> <input type="checkbox" id="chk-all" class="useCheckBox"></th>
|
||||
<th>연번</th>
|
||||
<th>경찰서</th>
|
||||
<th>사용일시</th>
|
||||
<th>사용사유</th>
|
||||
<th>사용인원</th>
|
||||
<th>비고</th>
|
||||
<th>최종수정일</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-group-divider">
|
||||
<tr class="useTr" th:each="list:${useList}" th:data-useNo="${list.useNo}" th:data-mgtOrgan="${list.mgtOrgan}" th:data-useType="${list.useType}">
|
||||
<td class="useChk"><input type="checkbox" name="useChk" class="useCheckBox"></td>
|
||||
<td th:text="${list.useNo}"></td>
|
||||
<td th:text="${list.sosok}"></td>
|
||||
<td th:text="${list.useDt}"></td>
|
||||
<td th:text="${list.detailTypeName}" th:if="${list.detailType != 'QIRUSE006'}"></td>
|
||||
<td th:text="${list.detailSelf}" th:unless="${list.detailType != 'QIRUSE006'}"></td>
|
||||
<td th:text="${list.peopleCnt}"></td>
|
||||
<td th:text="${list.description}"></td>
|
||||
<td th:text="${#temporals.format(list.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-between">
|
||||
<div class="col-auto">
|
||||
<button type="button" class="btn btn-warning" id="historyBtn">수정이력</button>
|
||||
<button type="button" class="btn btn-danger" id="deleteUse" th:if="${accessAuth eq 'ACC003'}">삭제</button>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<nav aria-label="Page navigation">
|
||||
<ul class="pagination mb-0">
|
||||
<th:block th:if="${searchParams.pageIndex>3}">
|
||||
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)-3}">
|
||||
<a class="page-link" href="#" aria-label="Previous">
|
||||
<span aria-hidden="true">«</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">»</span>
|
||||
</a>
|
||||
</li>
|
||||
</th:block>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<button type="button" class="btn btn-primary" id="addQir" th:unless="${accessAuth eq 'ACC001'}">등록</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -22,110 +22,110 @@
|
|||
<div class="row mx-0">
|
||||
<div class="col-12 card bg-light">
|
||||
<div class="card-body">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<form method="get" th:action="@{/faStatistics/internationalCrimeArrest}" id="icaSearchForm">
|
||||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<input type="hidden" name="dateSelector" value="wrtDt">
|
||||
<div class="row justify-content-between py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-8">
|
||||
<div class="row">
|
||||
<div class="col-11">
|
||||
<div class="row justify-content-end">
|
||||
<div class="col-2">
|
||||
<input type="text" class="form-control form-control-sm" placeholder="사건번호" name="caseNum" th:value="${searchParams.caseNum}">
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<select class="form-select form-select-sm" name="organ">
|
||||
<option value="">지방청 선택</option>
|
||||
<th:block th:each="organConfig:${organConfigList}">
|
||||
<th:block th:if="${organConfig.parentOrgan eq 'OG001' && organConfig.organType ne 'OGC001'}">
|
||||
<option th:value="${organConfig.organCd}" th:text="${organConfig.organNm}" th:selected="${organConfig.organCd eq searchParams.organ}"></option>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-2" id="departmentDiv">
|
||||
<select class="form-select form-select-sm" name="department">
|
||||
<option value="">경찰서 선택</option>
|
||||
<th:block th:each="organConfig:${organConfigList}">
|
||||
<th:block th:if="${organConfig.parentOrgan ne null && organConfig.organType ne 'OGC002'}">
|
||||
<option th:value="${organConfig.organCd}" th:text="${organConfig.organNm}" th:selected="${organConfig.organCd eq searchParams.department}"></option>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<select class="form-select form-select-sm" name="crimeType" id="searchCrimeType">
|
||||
<option value="">범죄테마 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('CTH')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.crimeType}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-end">
|
||||
<div class="col-2">
|
||||
<select class="form-select form-select-sm" name="violationType" id="searchViolationType">
|
||||
<option value="">위반유형 선택</option>
|
||||
<th:block th:each="num : ${#numbers.sequence(1,#lists.size(session.commonCode.get('CTH')))}">
|
||||
<th:block th:each="commonCode:${session.commonCode.get('CTH'+num)}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${internationalCrimeArrest.violationType eq commonCode.itemCd}"></option>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<input type="text" class="form-control form-control-sm" placeholder="죄명" name="crimeName" th:value="${searchParams.crimeName}">
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<input type="text" class="form-control form-control-sm" placeholder="발생원표" name="occurTable" th:value="${searchParams.occurTable}">
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<input type="text" class="form-control form-control-sm" placeholder="검거원표" name="arrestTable" th:value="${searchParams.arrestTable}">
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<input type="text" class="form-control form-control-sm" placeholder="피의자원표" name="suspectTable" th:value="${searchParams.suspectTable}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-end">
|
||||
<div class="col-2">
|
||||
<input type="text" class="form-control form-control-sm dateSelector" placeholder="범죄인지" name="crimeAwarenessDt" id="crimeAwarenessDt" th:value="${#temporals.format(searchParams.crimeAwarenessDt, 'yyyy-MM-dd')}">
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<input type="text" class="form-control form-control-sm dateSelector" placeholder="사건송치" name="caseSentDt" id="caseSentDt" th:value="${#temporals.format(searchParams.caseSentDt, 'yyyy-MM-dd')}">
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<select class="form-select form-select-sm" name="processResult" id="processResult">
|
||||
<option value="">신병처리 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('PCR')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
|
||||
th:selected="${commonCode.itemCd eq searchParams.processResult}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
|
||||
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
|
||||
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<form method="get" th:action="@{/faStatistics/internationalCrimeArrest}" id="icaSearchForm">
|
||||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<input type="hidden" name="dateSelector" value="wrtDt">
|
||||
<div class="row justify-content-between py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-8">
|
||||
<div class="row">
|
||||
<div class="col-11">
|
||||
<div class="row justify-content-end">
|
||||
<div class="col-2">
|
||||
<input type="text" class="form-control form-control-sm" placeholder="사건번호" name="caseNum" th:value="${searchParams.caseNum}">
|
||||
</div>
|
||||
<div class="col-1 d-grid gap-2">
|
||||
<input type="submit" class="btn btn-primary" id="searchBtn" value="검색">
|
||||
<div class="col-2">
|
||||
<select class="form-select form-select-sm" name="organ">
|
||||
<option value="">지방청 선택</option>
|
||||
<th:block th:each="organConfig:${organConfigList}">
|
||||
<th:block th:if="${organConfig.parentOrgan eq 'OG001' && organConfig.organType ne 'OGC001'}">
|
||||
<option th:value="${organConfig.organCd}" th:text="${organConfig.organNm}" th:selected="${organConfig.organCd eq searchParams.organ}"></option>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-2" id="departmentDiv">
|
||||
<select class="form-select form-select-sm" name="department">
|
||||
<option value="">경찰서 선택</option>
|
||||
<th:block th:each="organConfig:${organConfigList}">
|
||||
<th:block th:if="${organConfig.parentOrgan ne null && organConfig.organType ne 'OGC002'}">
|
||||
<option th:value="${organConfig.organCd}" th:text="${organConfig.organNm}" th:selected="${organConfig.organCd eq searchParams.department}"></option>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<select class="form-select form-select-sm" name="crimeType" id="searchCrimeType">
|
||||
<option value="">범죄테마 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('CTH')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.crimeType}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-end">
|
||||
<div class="col-2">
|
||||
<select class="form-select form-select-sm" name="violationType" id="searchViolationType">
|
||||
<option value="">위반유형 선택</option>
|
||||
<th:block th:each="num : ${#numbers.sequence(1,#lists.size(session.commonCode.get('CTH')))}">
|
||||
<th:block th:each="commonCode:${session.commonCode.get('CTH'+num)}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${internationalCrimeArrest.violationType eq commonCode.itemCd}"></option>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<input type="text" class="form-control form-control-sm" placeholder="죄명" name="crimeName" th:value="${searchParams.crimeName}">
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<input type="text" class="form-control form-control-sm" placeholder="발생원표" name="occurTable" th:value="${searchParams.occurTable}">
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<input type="text" class="form-control form-control-sm" placeholder="검거원표" name="arrestTable" th:value="${searchParams.arrestTable}">
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<input type="text" class="form-control form-control-sm" placeholder="피의자원표" name="suspectTable" th:value="${searchParams.suspectTable}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-end">
|
||||
<div class="col-2">
|
||||
<input type="text" class="form-control form-control-sm dateSelector" placeholder="범죄인지" name="crimeAwarenessDt" id="crimeAwarenessDt" th:value="${#temporals.format(searchParams.crimeAwarenessDt, 'yyyy-MM-dd')}">
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<input type="text" class="form-control form-control-sm dateSelector" placeholder="사건송치" name="caseSentDt" id="caseSentDt" th:value="${#temporals.format(searchParams.caseSentDt, 'yyyy-MM-dd')}">
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<select class="form-select form-select-sm" name="processResult" id="processResult">
|
||||
<option value="">신병처리 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('PCR')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
|
||||
th:selected="${commonCode.itemCd eq searchParams.processResult}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
|
||||
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
|
||||
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-1 d-grid gap-2">
|
||||
<input type="submit" class="btn btn-primary" id="searchBtn" value="검색">
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<table class="table table-sm table-hover table-bordered ws-nowrap" id="ivsgtTable">
|
||||
|
|
|
|||
|
|
@ -16,77 +16,77 @@
|
|||
<div class="row mx-0">
|
||||
<div class="col-12 card bg-light text-center">
|
||||
<div class="card-body">
|
||||
<form id="searchFm" method="get" th:action="@{/target/partInfoList}">
|
||||
<input type="hidden" name="excel">
|
||||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-8">
|
||||
<div class="row">
|
||||
<div class="col-11">
|
||||
<div class="row justify-content-end pb-1">
|
||||
<div class="col-2">
|
||||
<select class="form-select form-select-sm" name="mgtOrgan">
|
||||
<option value="">해경서</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
|
||||
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.mgtOrgan}"></option>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<input type="text" class="form-control form-control-sm" name="landPolice" th:value="${searchParams.landPolice}" placeholder="육경서">
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<select class="form-select form-select-sm" name="mpWorkType">
|
||||
<option value="">해경서 근무방법</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('PIS')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.mpWorkType}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<select class="form-select form-select-sm" name="plWorkType">
|
||||
<option value="">육경서 근무방법</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('PIS')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.plWorkType}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-end">
|
||||
<div class="col-2">
|
||||
<input type="text" class="form-control form-control-sm" name="piManagerName" th:value="${searchParams.piManagerName}" placeholder="담당자">
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<input type="text" class="form-control form-control-sm" name="terminalNm" th:value="${searchParams.terminalNm}" placeholder="터미널명">
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
|
||||
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
|
||||
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-1 d-grid gap-2">
|
||||
<input type="submit" class="btn btn-primary" id="searchBtn" value="검색">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="row justify-content-start">
|
||||
<div class="col-12">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<form id="searchFm" method="get" th:action="@{/target/partInfoList}">
|
||||
<input type="hidden" name="excel">
|
||||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-8">
|
||||
<div class="row">
|
||||
<div class="col-11">
|
||||
<div class="row justify-content-end pb-1">
|
||||
<div class="col-2">
|
||||
<select class="form-select form-select-sm" name="mgtOrgan">
|
||||
<option value="">해경서</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
|
||||
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.mgtOrgan}"></option>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<input type="text" class="form-control form-control-sm" name="landPolice" th:value="${searchParams.landPolice}" placeholder="육경서">
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<select class="form-select form-select-sm" name="mpWorkType">
|
||||
<option value="">해경서 근무방법</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('PIS')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.mpWorkType}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<select class="form-select form-select-sm" name="plWorkType">
|
||||
<option value="">육경서 근무방법</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('PIS')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.plWorkType}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-end">
|
||||
<div class="col-2">
|
||||
<input type="text" class="form-control form-control-sm" name="piManagerName" th:value="${searchParams.piManagerName}" placeholder="담당자">
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<input type="text" class="form-control form-control-sm" name="terminalNm" th:value="${searchParams.terminalNm}" placeholder="터미널명">
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
|
||||
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
|
||||
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-1 d-grid gap-2">
|
||||
<input type="submit" class="btn btn-primary" id="searchBtn" value="검색">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<input type="hidden" id="selectedKey">
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@
|
|||
<li><a href="/userMgt/userMgtPage" class="dropdown-item">외사경찰관리</a></li>
|
||||
<li><a href="/authMgt/authMgtPage" class="dropdown-item">권한설정</a></li>
|
||||
<li><a href="/userMgt/userLog/requestLog" class="dropdown-item">사용자로그</a></li>
|
||||
<li><a href="#" class="dropdown-item">접속설정</a></li>
|
||||
<li><a href="#" class="dropdown-item disabled">접속설정</a></li>
|
||||
</th:block>
|
||||
</ul>
|
||||
</li>
|
||||
|
|
|
|||
|
|
@ -42,73 +42,77 @@
|
|||
</select>
|
||||
</div>
|
||||
<div class="col-8">
|
||||
<div class="row justify-content-end">
|
||||
<div class="row">
|
||||
<div class="col-11">
|
||||
<div class="row justify-content-end pb-1" th:if="${accessAuth eq 'ACC003'}">
|
||||
<div class="col-2">
|
||||
<select class="form-select form-select-sm" name="wrtOrgan">
|
||||
<option value="">관서 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
|
||||
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.wrtOrgan}"></option>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<input type="text" class="form-control form-control-sm" placeholder="작성자" name="wrtUserNm" th:value="${searchParams.wrtUserNm}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-end pb-1">
|
||||
<div class="col-2">
|
||||
<select class="form-select form-select-sm" name="affairType1">
|
||||
<option value="">분야1 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('DC01')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.affairType1}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<select class="form-select form-select-sm" name="affairType2">
|
||||
<option value="">분야2 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('DC02')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.affairType2}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<select class="form-select form-select-sm" name="affairType3">
|
||||
<option value="">분야3 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('DC03')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.affairType3}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<select class="form-select form-select-sm" name="affairType4">
|
||||
<option value="">분야4 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('DC04')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.affairType4}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-end">
|
||||
<div class="col-2">
|
||||
<input type="text" class="form-control form-control-sm" placeholder="제목" name="title" th:value="${searchParams.title}">
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<select class="form-select form-select-sm" name="affairStatus">
|
||||
<option value="">상태 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('DST')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.affairStatus}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
|
||||
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
|
||||
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
|
||||
<div class="col-11">
|
||||
<div class="row justify-content-end pb-1" th:if="${accessAuth eq 'ACC003'}">
|
||||
<div class="col-2">
|
||||
<select class="form-select form-select-sm" name="wrtOrgan">
|
||||
<option value="">관서 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
|
||||
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.wrtOrgan}"></option>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<input type="text" class="form-control form-control-sm" placeholder="작성자" name="wrtUserNm" th:value="${searchParams.wrtUserNm}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-end pb-1">
|
||||
<div class="col-2">
|
||||
<select class="form-select form-select-sm" name="affairType1">
|
||||
<option value="">분야1 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('DC01')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.affairType1}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<select class="form-select form-select-sm" name="affairType2">
|
||||
<option value="">분야2 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('DC02')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.affairType2}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<select class="form-select form-select-sm" name="affairType3">
|
||||
<option value="">분야3 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('DC03')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.affairType3}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<select class="form-select form-select-sm" name="affairType4">
|
||||
<option value="">분야4 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('DC04')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.affairType4}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-end">
|
||||
<div class="col-2">
|
||||
<input type="text" class="form-control form-control-sm" placeholder="제목" name="title" th:value="${searchParams.title}">
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<select class="form-select form-select-sm" name="affairStatus">
|
||||
<option value="">상태 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('DST')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.affairStatus}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
|
||||
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
|
||||
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -7,9 +7,12 @@
|
|||
</th:block>
|
||||
<div layout:fragment="content">
|
||||
<main>
|
||||
<h4>외사경찰 경력 현황</h4>
|
||||
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
|
||||
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
|
||||
<div class="row justify-content-between">
|
||||
<div class="col-auto"><h4>외사경찰 경력 현황</h4></div>
|
||||
<div class="col-auto"><p class="mb-0 mt-2">외사경찰 > 외사경찰 경력현황</p></div>
|
||||
</div>
|
||||
<div class="row mx-0">
|
||||
<div class="col-12 card bg-light text-center">
|
||||
<div class="card-body">
|
||||
|
|
@ -27,164 +30,156 @@
|
|||
</li>
|
||||
</ul>
|
||||
<div class="tab-content bg-white border border-top-0 p-3" id="userContent">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-12 pb-2">
|
||||
<form id="searchFm" method="get" th:action="@{/police/careerMgt}">
|
||||
<input type="hidden" name="userStatus" th:value="${userStatus}">
|
||||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between">
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<div class="row justify-content-end">
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="ogCd">
|
||||
<option value="">관서 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
|
||||
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${searchParams.ogCd eq commonCode.itemCd}"></option>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="sex">
|
||||
<option value="">성별</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('SEX')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${searchParams.sex eq commonCode.itemCd}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<input type="text" class="form-control form-control-sm" placeholder="이름" name="userNm" th:value="${searchParams.userNm}">
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<form id="searchFm" method="get" th:action="@{/police/careerMgt}">
|
||||
<input type="hidden" name="userStatus" th:value="${userStatus}">
|
||||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between pb-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<div class="row justify-content-end">
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="ogCd">
|
||||
<option value="">관서 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
|
||||
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${searchParams.ogCd eq commonCode.itemCd}"></option>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="sex">
|
||||
<option value="">성별</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('SEX')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${searchParams.sex eq commonCode.itemCd}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<input type="text" class="form-control form-control-sm" placeholder="이름" name="userNm" th:value="${searchParams.userNm}">
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<table class="table table-sm table-hover table-bordered">
|
||||
<thead>
|
||||
<tr class="table-secondary">
|
||||
<th>순번</th>
|
||||
<th>계급</th>
|
||||
<th>성명</th>
|
||||
<th>청</th>
|
||||
<th>부서</th>
|
||||
<th>생년월일</th>
|
||||
<th>성별</th>
|
||||
<th>외사경력</th>
|
||||
<th>수사경력</th>
|
||||
<th>정보경력</th>
|
||||
<th>보안경력</th>
|
||||
<th>국제경력</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-group-divider">
|
||||
<tr class="policeTr" th:each="police:${policeList}">
|
||||
<input type="hidden" class="userSeq" th:value="${police.userSeq}">
|
||||
<td th:text="${police.rownum}"></td>
|
||||
<td th:text="${police.titleCd}"></td>
|
||||
<td th:text="${police.userNm}"></td>
|
||||
<td th:text="${police.organNm}"></td>
|
||||
<td th:text="${police.ofcCd}"></td>
|
||||
<td th:text="${police.birthDate}"></td>
|
||||
<td th:text="${police.sex}"></td>
|
||||
<td>
|
||||
<th:block th:if="${police.crc001Sum ne null and police.crc001Sum ne 0}">
|
||||
<th:block th:if="${police.crc001Sum > 12}">
|
||||
<th:block th:text="|${police.crc001Sum/12}년 ${police.crc001Sum%12}개월|"></th:block>
|
||||
</th:block>
|
||||
<th:block th:unless="${police.crc001Sum > 12}">
|
||||
<th:block th:text="|${police.crc001Sum}개월|"></th:block>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</td>
|
||||
<td>
|
||||
<th:block th:if="${police.crc002Sum ne null and police.crc002Sum ne 0}">
|
||||
<th:block th:if="${police.crc002Sum > 12}">
|
||||
<th:block th:text="|${police.crc002Sum/12}년 ${police.crc002Sum%12}개월|"></th:block>
|
||||
</th:block>
|
||||
<th:block th:unless="${police.crc002Sum > 12}">
|
||||
<th:block th:text="|${police.crc002Sum}개월|"></th:block>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</td>
|
||||
<td>
|
||||
<th:block th:if="${police.crc003Sum ne null and police.crc003Sum ne 0}">
|
||||
<th:block th:if="${police.crc003Sum > 12}">
|
||||
<th:block th:text="|${police.crc003Sum/12}년 ${police.crc003Sum%12}개월|"></th:block>
|
||||
</th:block>
|
||||
<th:block th:unless="${police.crc003Sum > 12}">
|
||||
<th:block th:text="|${police.crc003Sum}개월|"></th:block>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</td>
|
||||
<td>
|
||||
<th:block th:if="${police.crc004Sum ne null and police.crc004Sum ne 0}">
|
||||
<th:block th:if="${police.crc004Sum > 12}">
|
||||
<th:block th:text="|${police.crc004Sum/12}년 ${police.crc004Sum%12}개월|"></th:block>
|
||||
</th:block>
|
||||
<th:block th:unless="${police.crc004Sum > 12}">
|
||||
<th:block th:text="|${police.crc004Sum}개월|"></th:block>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</td>
|
||||
<td>
|
||||
<th:block th:if="${police.crc005Sum ne null and police.crc005Sum ne 0}">
|
||||
<th:block th:if="${police.crc005Sum > 12}">
|
||||
<th:block th:text="|${police.crc005Sum/12}년 ${police.crc005Sum%12}개월|"></th:block>
|
||||
</th:block>
|
||||
<th:block th:unless="${police.crc005Sum > 12}">
|
||||
<th:block th:text="|${police.crc005Sum}개월|"></th:block>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-auto">
|
||||
<nav aria-label="Page navigation">
|
||||
<ul class="pagination mb-0">
|
||||
<th:block th:if="${searchParams.pageIndex>3}">
|
||||
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)-3}">
|
||||
<a class="page-link" href="#" aria-label="Previous">
|
||||
<span aria-hidden="true">«</span>
|
||||
</a>
|
||||
</li>
|
||||
</div>
|
||||
</form>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<table class="table table-sm table-hover table-bordered">
|
||||
<thead>
|
||||
<tr class="table-secondary">
|
||||
<th>순번</th>
|
||||
<th>계급</th>
|
||||
<th>성명</th>
|
||||
<th>청</th>
|
||||
<th>부서</th>
|
||||
<th>생년월일</th>
|
||||
<th>성별</th>
|
||||
<th>외사경력</th>
|
||||
<th>수사경력</th>
|
||||
<th>정보경력</th>
|
||||
<th>보안경력</th>
|
||||
<th>국제경력</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-group-divider">
|
||||
<tr class="policeTr" th:each="police:${policeList}">
|
||||
<input type="hidden" class="userSeq" th:value="${police.userSeq}">
|
||||
<td th:text="${police.rownum}"></td>
|
||||
<td th:text="${police.titleCd}"></td>
|
||||
<td th:text="${police.userNm}"></td>
|
||||
<td th:text="${police.organNm}"></td>
|
||||
<td th:text="${police.ofcCd}"></td>
|
||||
<td th:text="${police.birthDate}"></td>
|
||||
<td th:text="${police.sex}"></td>
|
||||
<td>
|
||||
<th:block th:if="${police.crc001Sum ne null and police.crc001Sum ne 0}">
|
||||
<th:block th:if="${police.crc001Sum > 12}">
|
||||
<th:block th:text="|${police.crc001Sum/12}년 ${police.crc001Sum%12}개월|"></th:block>
|
||||
</th:block>
|
||||
<th:block th:each="num : ${#numbers.sequence(searchParams.startNum, searchParams.endNum)}">
|
||||
<li class="page-item" th:data-pageindex="${num}" th:classappend="${searchParams.pageIndex==num?'active':''}">
|
||||
<a class="page-link" href="#" th:text="${num}"></a>
|
||||
</li>
|
||||
<th:block th:unless="${police.crc001Sum > 12}">
|
||||
<th:block th:text="|${police.crc001Sum}개월|"></th:block>
|
||||
</th:block>
|
||||
<th:block th:if="${searchParams.maxNum>searchParams.endNum+2}">
|
||||
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)+3}">
|
||||
<a class="page-link" href="#" aria-label="Next">
|
||||
<span aria-hidden="true">»</span>
|
||||
</a>
|
||||
</li>
|
||||
</th:block>
|
||||
</td>
|
||||
<td>
|
||||
<th:block th:if="${police.crc002Sum ne null and police.crc002Sum ne 0}">
|
||||
<th:block th:if="${police.crc002Sum > 12}">
|
||||
<th:block th:text="|${police.crc002Sum/12}년 ${police.crc002Sum%12}개월|"></th:block>
|
||||
</th:block>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<th:block th:unless="${police.crc002Sum > 12}">
|
||||
<th:block th:text="|${police.crc002Sum}개월|"></th:block>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</td>
|
||||
<td>
|
||||
<th:block th:if="${police.crc003Sum ne null and police.crc003Sum ne 0}">
|
||||
<th:block th:if="${police.crc003Sum > 12}">
|
||||
<th:block th:text="|${police.crc003Sum/12}년 ${police.crc003Sum%12}개월|"></th:block>
|
||||
</th:block>
|
||||
<th:block th:unless="${police.crc003Sum > 12}">
|
||||
<th:block th:text="|${police.crc003Sum}개월|"></th:block>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</td>
|
||||
<td>
|
||||
<th:block th:if="${police.crc004Sum ne null and police.crc004Sum ne 0}">
|
||||
<th:block th:if="${police.crc004Sum > 12}">
|
||||
<th:block th:text="|${police.crc004Sum/12}년 ${police.crc004Sum%12}개월|"></th:block>
|
||||
</th:block>
|
||||
<th:block th:unless="${police.crc004Sum > 12}">
|
||||
<th:block th:text="|${police.crc004Sum}개월|"></th:block>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</td>
|
||||
<td>
|
||||
<th:block th:if="${police.crc005Sum ne null and police.crc005Sum ne 0}">
|
||||
<th:block th:if="${police.crc005Sum > 12}">
|
||||
<th:block th:text="|${police.crc005Sum/12}년 ${police.crc005Sum%12}개월|"></th:block>
|
||||
</th:block>
|
||||
<th:block th:unless="${police.crc005Sum > 12}">
|
||||
<th:block th:text="|${police.crc005Sum}개월|"></th:block>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-auto">
|
||||
<nav aria-label="Page navigation">
|
||||
<ul class="pagination mb-0">
|
||||
<th:block th:if="${searchParams.pageIndex>3}">
|
||||
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)-3}">
|
||||
<a class="page-link" href="#" aria-label="Previous">
|
||||
<span aria-hidden="true">«</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">»</span>
|
||||
</a>
|
||||
</li>
|
||||
</th:block>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -7,9 +7,12 @@
|
|||
</th:block>
|
||||
<div layout:fragment="content">
|
||||
<main>
|
||||
<h4>외사경찰 교육 현황</h4>
|
||||
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
|
||||
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
|
||||
<div class="row justify-content-between">
|
||||
<div class="col-auto"><h4>외사경찰 교육 현황</h4></div>
|
||||
<div class="col-auto"><p class="mb-0 mt-2">외사경찰 > 외사경찰 교육 현황</p></div>
|
||||
</div>
|
||||
<div class="row mx-0">
|
||||
<div class="col-12 card bg-light text-center">
|
||||
<div class="card-body">
|
||||
|
|
@ -27,131 +30,121 @@
|
|||
</li>
|
||||
</ul>
|
||||
<div class="tab-content bg-white border border-top-0 p-3" id="userContent">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<form id="searchFm" method="get" th:action="@{/police/educationMgt}">
|
||||
<input type="hidden" name="excel">
|
||||
<input type="hidden" name="userStatus" th:value="${userStatus}">
|
||||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-end pe-3 py-1">
|
||||
<div class="col-auto">
|
||||
<div class="row justify-content-end">
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="ogCd">
|
||||
<option value="">관서 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
|
||||
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${searchParams.ogCd eq commonCode.itemCd}"></option>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="sex">
|
||||
<option value="">성별</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('SEX')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${searchParams.sex eq commonCode.itemCd}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<input type="text" class="form-control form-control-sm" placeholder="이름" name="userNm" th:value="${searchParams.userNm}">
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<table class="table table-sm table-hover table-bordered">
|
||||
<thead>
|
||||
<tr class="table-secondary">
|
||||
<th>순번</th>
|
||||
<th>계급</th>
|
||||
<th>성명</th>
|
||||
<th>청</th>
|
||||
<th>현부서<br>과</th>
|
||||
<th>생년월일</th>
|
||||
<th>성별</th>
|
||||
<th>고등학교</th>
|
||||
<th>전문대</th>
|
||||
<th>대학교</th>
|
||||
<th>석사</th>
|
||||
<th>박사</th>
|
||||
<th>전공</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-group-divider">
|
||||
<tr class="policeTr" th:each="list:${policeList}">
|
||||
<th:block>
|
||||
<input type="hidden" class="userSeq" th:value="${list.userSeq}">
|
||||
</th:block>
|
||||
<td th:text="${list.rownum}"></td>
|
||||
<td th:text="${list.titleCd}"></td>
|
||||
<td th:text="${list.userNm}"></td>
|
||||
<td th:text="${list.organNm}"></td>
|
||||
<td th:text="${list.ofcCd}"></td>
|
||||
<td th:text="${list.birthDate}"></td>
|
||||
<td th:text="${list.sex}"></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-between">
|
||||
<div class="col-auto">
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<nav aria-label="Page navigation">
|
||||
<ul class="pagination mb-0">
|
||||
<th:block th:if="${searchParams.pageIndex>3}">
|
||||
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)-3}">
|
||||
<a class="page-link" href="#" aria-label="Previous">
|
||||
<span aria-hidden="true">«</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">»</span>
|
||||
</a>
|
||||
</li>
|
||||
</th:block>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<form id="searchFm" method="get" th:action="@{/police/educationMgt}">
|
||||
<input type="hidden" name="excel">
|
||||
<input type="hidden" name="userStatus" th:value="${userStatus}">
|
||||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between pb-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-8">
|
||||
<div class="row justify-content-end">
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="ogCd">
|
||||
<option value="">관서 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
|
||||
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${searchParams.ogCd eq commonCode.itemCd}"></option>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="sex">
|
||||
<option value="">성별</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('SEX')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${searchParams.sex eq commonCode.itemCd}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<input type="text" class="form-control form-control-sm" placeholder="이름" name="userNm" th:value="${searchParams.userNm}">
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<table class="table table-sm table-hover table-bordered">
|
||||
<thead>
|
||||
<tr class="table-secondary">
|
||||
<th>순번</th>
|
||||
<th>계급</th>
|
||||
<th>성명</th>
|
||||
<th>청</th>
|
||||
<th>현부서<br>과</th>
|
||||
<th>생년월일</th>
|
||||
<th>성별</th>
|
||||
<th>고등학교</th>
|
||||
<th>전문대</th>
|
||||
<th>대학교</th>
|
||||
<th>석사</th>
|
||||
<th>박사</th>
|
||||
<th>전공</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-group-divider">
|
||||
<tr class="policeTr" th:each="list:${policeList}">
|
||||
<th:block>
|
||||
<input type="hidden" class="userSeq" th:value="${list.userSeq}">
|
||||
</th:block>
|
||||
<td th:text="${list.rownum}"></td>
|
||||
<td th:text="${list.titleCd}"></td>
|
||||
<td th:text="${list.userNm}"></td>
|
||||
<td th:text="${list.organNm}"></td>
|
||||
<td th:text="${list.ofcCd}"></td>
|
||||
<td th:text="${list.birthDate}"></td>
|
||||
<td th:text="${list.sex}"></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-between">
|
||||
<div class="col-auto">
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<nav aria-label="Page navigation">
|
||||
<ul class="pagination mb-0">
|
||||
<th:block th:if="${searchParams.pageIndex>3}">
|
||||
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)-3}">
|
||||
<a class="page-link" href="#" aria-label="Previous">
|
||||
<span aria-hidden="true">«</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">»</span>
|
||||
</a>
|
||||
</li>
|
||||
</th:block>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -7,9 +7,12 @@
|
|||
</th:block>
|
||||
<div layout:fragment="content">
|
||||
<main>
|
||||
<h4>외사경찰 정원/현원 현황</h4>
|
||||
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
|
||||
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
|
||||
<div class="row justify-content-between">
|
||||
<div class="col-auto"><h4>외사경찰 정원/현원 현황</h4></div>
|
||||
<div class="col-auto"><p class="mb-0 mt-2">외사경찰 > 외사경찰 정원/현원 현황</p></div>
|
||||
</div>
|
||||
<div class="row mx-0">
|
||||
<div class="col-12 card bg-light text-center">
|
||||
<div class="card-body">
|
||||
|
|
@ -28,10 +31,10 @@
|
|||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="row justify-content-start">
|
||||
<div class="col-12">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<table class="table table-sm table-hover table-bordered" id="psTable">
|
||||
<thead>
|
||||
<tr class="table-secondary">
|
||||
|
|
|
|||
|
|
@ -7,9 +7,12 @@
|
|||
</th:block>
|
||||
<div layout:fragment="content">
|
||||
<main>
|
||||
<h4 th:text="${userStatus eq 'USC003' ? '現 외사경찰 현황' : (userStatus eq 'USC006' ? '前 외사경찰 현황' : (userStatus eq 'USC007' ? '非 외사경찰 현황' : null))}"></h4>
|
||||
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
|
||||
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
|
||||
<div class="row justify-content-between">
|
||||
<div class="col-auto"><h4>외사경찰현황</h4></div>
|
||||
<div class="col-auto"><p class="mb-0 mt-2">외사경찰 > 외사경찰현황</p></div>
|
||||
</div>
|
||||
<div class="row mx-0">
|
||||
<div class="col-12 card bg-light text-center">
|
||||
<div class="card-body">
|
||||
|
|
@ -27,30 +30,30 @@
|
|||
</li>
|
||||
</ul>
|
||||
<div class="tab-content bg-white border border-top-0 p-3" id="userContent">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<form id="searchFm" method="get" th:action="@{/police/policeList}">
|
||||
<input type="hidden" name="excel">
|
||||
<input type="hidden" name="userStatus" th:value="${userStatus}">
|
||||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<button type="button" class="btn btn-success" id="goExcel">엑셀다운</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-end pe-3 py-1">
|
||||
<div class="col-auto">
|
||||
<div class="row pb-1">
|
||||
<div class="col-12">
|
||||
<form id="searchFm" method="get" th:action="@{/police/policeList}">
|
||||
<input type="hidden" name="excel">
|
||||
<input type="hidden" name="userStatus" th:value="${userStatus}">
|
||||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-end pb-1">
|
||||
<div class="col-auto">
|
||||
<button type="button" class="btn bnt-sm btn-success" id="goExcel">엑셀다운</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-between">
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-8">
|
||||
<div class="row">
|
||||
<div class="col-11">
|
||||
<div class="row justify-content-end">
|
||||
<div class="col-auto">
|
||||
<div class="col-2">
|
||||
<select class="form-select form-select-sm" name="ogCd">
|
||||
<option value="">관서 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
|
||||
|
|
@ -60,7 +63,7 @@
|
|||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<div class="col-2">
|
||||
<select class="form-select form-select-sm" name="sex">
|
||||
<option value="">성별</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('SEX')}">
|
||||
|
|
@ -68,108 +71,108 @@
|
|||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<div class="col-2">
|
||||
<input type="text" class="form-control form-control-sm" placeholder="이름" name="userNm" th:value="${searchParams.userNm}">
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-1 d-grid gap-2">
|
||||
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<table class="table table-sm table-hover table-bordered">
|
||||
<thead>
|
||||
<tr class="table-secondary">
|
||||
<th>순번</th>
|
||||
<th>계급</th>
|
||||
<th>성명</th>
|
||||
<th>청</th>
|
||||
<th>현부서<br>과</th>
|
||||
<th>생년월일</th>
|
||||
<th>성별</th>
|
||||
<th>최초<br>임용</th>
|
||||
<th>현 계급<br>임용</th>
|
||||
<th>현 부서<br>임용</th>
|
||||
<th>수사경과<br>보유여부</th>
|
||||
<th>외사경력</th>
|
||||
<th>입직<br>경로</th>
|
||||
<th>최종<br>수정일</th>
|
||||
<th:block th:if="${userStatus eq 'USC003'} and ${accessAuth eq 'ACC003'}">
|
||||
<th>전출<input type="checkbox" id="chk-all"></th>
|
||||
</th:block>
|
||||
<th:block th:if="${accessAuth eq 'ACC003'} and (${userStatus eq 'USC006'} or ${userStatus eq 'USC007'})">
|
||||
<th>전입<input type="checkbox" id="chk-all"></th>
|
||||
</th:block>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-group-divider">
|
||||
<tr class="policeTr" th:each="list:${policeList}">
|
||||
<th:block>
|
||||
<input type="hidden" class="userSeq" th:value="${list.userSeq}">
|
||||
</th:block>
|
||||
<td th:text="${list.rownum}"></td>
|
||||
<td th:text="${list.titleCd}"></td>
|
||||
<td th:text="${list.userNm}"></td>
|
||||
<td th:text="${list.organNm}"></td>
|
||||
<td th:text="${list.ofcCd}"></td>
|
||||
<td th:text="${list.birthDate}"></td>
|
||||
<td th:text="${list.sex}"></td>
|
||||
<td th:text="${list.policeInDate}"></td>
|
||||
<td th:text="${list.titleInDate}"></td>
|
||||
<td th:text="${list.ofcInDate}"></td>
|
||||
<td th:text="${list.outturnCd}"></td>
|
||||
<td></td>
|
||||
<td th:text="${list.jobInCd}"></td>
|
||||
<td th:text="${#temporals.format(list.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
|
||||
<th:block th:if="${userStatus eq 'USC003'} and ${accessAuth eq 'ACC003'}">
|
||||
<td class="checkBoxTd"><input type="checkbox" name="policeChk" class="policeCheckBox"></td>
|
||||
</th:block>
|
||||
<th:block th:if="${accessAuth eq 'ACC003'} and (${userStatus eq 'USC006'} or ${userStatus eq 'USC007'})">
|
||||
<td class="checkBoxTd"><input type="checkbox" name="policeChk" class="policeCheckBox"></td>
|
||||
</th:block>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-between">
|
||||
<div class="col-auto">
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<nav aria-label="Page navigation">
|
||||
<ul class="pagination mb-0">
|
||||
<th:block th:if="${searchParams.pageIndex>3}">
|
||||
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)-3}">
|
||||
<a class="page-link" href="#" aria-label="Previous">
|
||||
<span aria-hidden="true">«</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">»</span>
|
||||
</a>
|
||||
</li>
|
||||
</th:block>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<button type="button" class="btn btn-success" id="outBtn" th:if="${userStatus eq 'USC003'} and ${accessAuth eq 'ACC003'}">전출</button>
|
||||
<button type="button" class="btn btn-success" id="inBtn" th:if="${accessAuth eq 'ACC003'} and (${userStatus eq 'USC006'} or ${userStatus eq 'USC007'})">전입</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<table class="table table-sm table-hover table-bordered">
|
||||
<thead>
|
||||
<tr class="table-secondary">
|
||||
<th>순번</th>
|
||||
<th>계급</th>
|
||||
<th>성명</th>
|
||||
<th>청</th>
|
||||
<th>현부서<br>과</th>
|
||||
<th>생년월일</th>
|
||||
<th>성별</th>
|
||||
<th>최초<br>임용</th>
|
||||
<th>현 계급<br>임용</th>
|
||||
<th>현 부서<br>임용</th>
|
||||
<th>수사경과<br>보유여부</th>
|
||||
<th>외사경력</th>
|
||||
<th>입직<br>경로</th>
|
||||
<th>최종<br>수정일</th>
|
||||
<th:block th:if="${userStatus eq 'USC003'} and ${accessAuth eq 'ACC003'}">
|
||||
<th>전출<input type="checkbox" id="chk-all"></th>
|
||||
</th:block>
|
||||
<th:block th:if="${accessAuth eq 'ACC003'} and (${userStatus eq 'USC006'} or ${userStatus eq 'USC007'})">
|
||||
<th>전입<input type="checkbox" id="chk-all"></th>
|
||||
</th:block>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-group-divider">
|
||||
<tr class="policeTr" th:each="list:${policeList}">
|
||||
<th:block>
|
||||
<input type="hidden" class="userSeq" th:value="${list.userSeq}">
|
||||
</th:block>
|
||||
<td th:text="${list.rownum}"></td>
|
||||
<td th:text="${list.titleCd}"></td>
|
||||
<td th:text="${list.userNm}"></td>
|
||||
<td th:text="${list.organNm}"></td>
|
||||
<td th:text="${list.ofcCd}"></td>
|
||||
<td th:text="${list.birthDate}"></td>
|
||||
<td th:text="${list.sex}"></td>
|
||||
<td th:text="${list.policeInDate}"></td>
|
||||
<td th:text="${list.titleInDate}"></td>
|
||||
<td th:text="${list.ofcInDate}"></td>
|
||||
<td th:text="${list.outturnCd}"></td>
|
||||
<td></td>
|
||||
<td th:text="${list.jobInCd}"></td>
|
||||
<td th:text="${#temporals.format(list.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
|
||||
<th:block th:if="${userStatus eq 'USC003'} and ${accessAuth eq 'ACC003'}">
|
||||
<td class="checkBoxTd"><input type="checkbox" name="policeChk" class="policeCheckBox"></td>
|
||||
</th:block>
|
||||
<th:block th:if="${accessAuth eq 'ACC003'} and (${userStatus eq 'USC006'} or ${userStatus eq 'USC007'})">
|
||||
<td class="checkBoxTd"><input type="checkbox" name="policeChk" class="policeCheckBox"></td>
|
||||
</th:block>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-between">
|
||||
<div class="col-auto">
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<nav aria-label="Page navigation">
|
||||
<ul class="pagination mb-0">
|
||||
<th:block th:if="${searchParams.pageIndex>3}">
|
||||
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)-3}">
|
||||
<a class="page-link" href="#" aria-label="Previous">
|
||||
<span aria-hidden="true">«</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">»</span>
|
||||
</a>
|
||||
</li>
|
||||
</th:block>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<button type="button" class="btn btn-success" id="outBtn" th:if="${userStatus eq 'USC003'} and ${accessAuth eq 'ACC003'}">전출</button>
|
||||
<button type="button" class="btn btn-success" id="inBtn" th:if="${accessAuth eq 'ACC003'} and (${userStatus eq 'USC006'} or ${userStatus eq 'USC007'})">전입</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -15,48 +15,48 @@
|
|||
<div class="row mx-0">
|
||||
<div class="col-12 card bg-light text-center">
|
||||
<div class="card-body">
|
||||
<form method="get" th:action="@{/publicBoard/boardPage}">
|
||||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<div class="row justify-content-end">
|
||||
<div class="col-auto" sec:authorize="hasRole('ROLE_SUB_ADMIN')">
|
||||
<select class="form-select form-select-sm" name="wrtOrgan">
|
||||
<option value="">관서 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
|
||||
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.wrtOrgan}"></option>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<input type="text" class="form-control form-control-sm" placeholder="제목" name="title" th:value="${searchParams.title}">
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
|
||||
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
|
||||
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="row justify-content-start">
|
||||
<div class="col-12">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<form method="get" th:action="@{/publicBoard/boardPage}">
|
||||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<div class="row justify-content-end">
|
||||
<div class="col-auto" sec:authorize="hasRole('ROLE_SUB_ADMIN')">
|
||||
<select class="form-select form-select-sm" name="wrtOrgan">
|
||||
<option value="">관서 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
|
||||
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.wrtOrgan}"></option>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<input type="text" class="form-control form-control-sm" placeholder="제목" name="title" th:value="${searchParams.title}">
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
|
||||
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
|
||||
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<table class="table table-sm table-hover table-bordered">
|
||||
|
|
|
|||
|
|
@ -15,51 +15,51 @@
|
|||
<div class="row mx-0">
|
||||
<div class="col-12 card bg-light text-center">
|
||||
<div class="card-body">
|
||||
<div class="row justify-content-start">
|
||||
<form method="get" th:action="@{/publicBoard/noticePage}">
|
||||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<div class="row justify-content-end">
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="wrtOrgan">
|
||||
<option value="">관서 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
|
||||
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.wrtOrgan}"></option>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<input type="text" class="form-control form-control-sm" placeholder="작성자" name="wrtUserNm" th:value="${searchParams.wrtUserNm}">
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<input type="text" class="form-control form-control-sm" placeholder="제목" name="title" th:value="${searchParams.title}">
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
|
||||
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
|
||||
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-1 d-grid gap-0">
|
||||
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<form method="get" th:action="@{/publicBoard/noticePage}">
|
||||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<div class="row justify-content-end">
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="wrtOrgan">
|
||||
<option value="">관서 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
|
||||
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.wrtOrgan}"></option>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<input type="text" class="form-control form-control-sm" placeholder="작성자" name="wrtUserNm" th:value="${searchParams.wrtUserNm}">
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<input type="text" class="form-control form-control-sm" placeholder="제목" name="title" th:value="${searchParams.title}">
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
|
||||
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
|
||||
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<table class="table table-sm table-hover table-bordered">
|
||||
|
|
|
|||
|
|
@ -16,48 +16,48 @@
|
|||
<div class="row mx-0">
|
||||
<div class="col-12 card bg-light text-center">
|
||||
<div class="card-body">
|
||||
<form method="get" th:action="@{/publicBoard/qnaPage}">
|
||||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<div class="row justify-content-end">
|
||||
<div class="col-auto" sec:authorize="hasRole('ROLE_SUB_ADMIN')">
|
||||
<select class="form-select form-select-sm" name="wrtOrgan">
|
||||
<option value="">관서 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
|
||||
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.wrtOrgan}"></option>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<input type="text" class="form-control form-control-sm" placeholder="제목" name="title" th:value="${searchParams.title}">
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
|
||||
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
|
||||
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="row justify-content-start">
|
||||
<div class="col-12">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<form method="get" th:action="@{/publicBoard/qnaPage}">
|
||||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row justify-content-between py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt eq num*10}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<div class="row justify-content-end">
|
||||
<div class="col-auto" sec:authorize="hasRole('ROLE_SUB_ADMIN')">
|
||||
<select class="form-select form-select-sm" name="wrtOrgan">
|
||||
<option value="">관서 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
|
||||
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.wrtOrgan}"></option>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<input type="text" class="form-control form-control-sm" placeholder="제목" name="title" th:value="${searchParams.title}">
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
|
||||
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
|
||||
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<table class="table table-sm table-hover table-bordered">
|
||||
|
|
|
|||
|
|
@ -7,170 +7,180 @@
|
|||
</th:block>
|
||||
<div layout:fragment="content">
|
||||
<main>
|
||||
<h4>민간 통역인 현황</h4>
|
||||
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
|
||||
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
|
||||
<div class="row justify-content-between">
|
||||
<div class="col-auto"><h4>민간통역인 현황</h4></div>
|
||||
<div class="col-auto"><p class="mb-0 mt-2">민간통역인 > 민간통역인 현황</p></div>
|
||||
</div>
|
||||
<div class="row mx-0">
|
||||
<div class="col-12 card bg-light text-center">
|
||||
<div class="card-body">
|
||||
<form id="searchFm" method="get" th:action="@{/translator/info}">
|
||||
<input type="hidden" name="excel">
|
||||
<input type="hidden" name="pageIndex" id="pageIndex" th:value="${searchParams.pageIndex}">
|
||||
<div class="row pe-3 py-1">
|
||||
<div class="col-1">
|
||||
<div class="row justify-content-between py-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="rowCnt" id="rowCnt">
|
||||
<th:block th:each="num : ${#numbers.sequence(1,5)}">
|
||||
<option th:value="${num*10}" th:text="${num*10}" th:selected="${searchParams.rowCnt==num*10}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-10">
|
||||
<div class="row justify-content-end pb-1">
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="dmlYn">
|
||||
<option value="">해촉 선택</option>
|
||||
<option value="O" th:selected="${'O' eq searchParams.dmlYn}">O</option>
|
||||
<option value="X" th:selected="${'X' eq searchParams.dmlYn}">X</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="ogdp1">
|
||||
<option value="">관서 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
|
||||
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.ogdp1}"></option>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="trLang">
|
||||
<option value="">언어 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('LGG')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.trLang}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="trVisa">
|
||||
<option value="">비자 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('VISA')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.trVisa}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<select class="form-select form-select-sm" name="trNny">
|
||||
<option value="">국적선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('NNY')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.trNny}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row justify-content-end">
|
||||
<div class="col-auto">
|
||||
<input type="text" class="form-control form-select-sm" name="trName" th:value="${searchParams.trName}" placeholder="성명">
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<input type="text" class="form-control form-select-sm" name="aptDt" th:value="${searchParams.aptDt}" placeholder="위촉일" readonly>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-1 d-grid gap-2">
|
||||
<input type="submit" class="btn btn-lg btn-primary col-auto" id="searchBtn" value="검색">
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="row justify-content-start">
|
||||
<div class="col-12">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<input type="hidden" id="selectedKey">
|
||||
<input type="hidden" id="selectedVerNo">
|
||||
<table class="table table-sm table-hover table-bordered">
|
||||
<thead>
|
||||
<tr class="table-secondary">
|
||||
<th>연번</th>
|
||||
<th>관서명</th>
|
||||
<th>언어</th>
|
||||
<th>경력</th>
|
||||
<th>성명</th>
|
||||
<th>성별</th>
|
||||
<th>나이</th>
|
||||
<th>국적</th>
|
||||
<th>학력</th>
|
||||
<th>자격증</th>
|
||||
<th>비자</th>
|
||||
<th>해촉</th>
|
||||
<th>위촉일</th>
|
||||
<th>연락처</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-group-divider">
|
||||
<tr class="userInfoTr" data-bs-toggle="dropdown" aria-expanded="false" th:each="trInfo:${translatorList}">
|
||||
<input type="hidden" class="trKey" th:value="${trInfo.translatorKey}">
|
||||
<input type="hidden" class="verNo" th:value="${trInfo.versionNo}">
|
||||
<td>
|
||||
<p class="m-0" th:text="${trInfo.translatorKey}"></p>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a class="dropdown-item careerInfo" href="#">경력관리</a></li>
|
||||
<li><a class="dropdown-item translatorInfo" href="#">인적사항</a></li>
|
||||
</ul>
|
||||
</td>
|
||||
<td th:text="${trInfo.ogdp1}"></td>
|
||||
<td th:text="${trInfo.trLang}"></td>
|
||||
<td th:text="${trInfo.trCareer}"></td>
|
||||
<td th:text="${trInfo.trName}"></td>
|
||||
<td th:text="${trInfo.trSex}"></td>
|
||||
<td th:text="${trInfo.trAge}"></td>
|
||||
<td th:text="${trInfo.trNny}"></td>
|
||||
<td th:text="${trInfo.trEdu}"></td>
|
||||
<td th:text="${trInfo.trCft}"></td>
|
||||
<td th:text="${trInfo.trVisa}"></td>
|
||||
<td th:if="${trInfo.dmlYn == 'O'}">●</td>
|
||||
<td th:unless="${trInfo.dmlYn == 'O'}"></td>
|
||||
<td th:text="${trInfo.aptDt}"></td>
|
||||
<td th:text="${trInfo.trPhone}"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="row justify-content-between">
|
||||
<div class="col-auto">
|
||||
<button id="goExcel" class="btn btn-success">엑셀다운</button>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<nav aria-label="Page navigation">
|
||||
<ul class="pagination mb-0">
|
||||
<th:block th:if="${searchParams.pageIndex>3}">
|
||||
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)-3}">
|
||||
<a class="page-link" href="#" aria-label="Previous">
|
||||
<span aria-hidden="true">«</span>
|
||||
</a>
|
||||
</li>
|
||||
<div class="col-8">
|
||||
<div class="row">
|
||||
<div class="col-11">
|
||||
<div class="row justify-content-end pb-1">
|
||||
<div class="col-2">
|
||||
<select class="form-select form-select-sm" name="dmlYn">
|
||||
<option value="">해촉 선택</option>
|
||||
<option value="O" th:selected="${'O' eq searchParams.dmlYn}">O</option>
|
||||
<option value="X" th:selected="${'X' eq searchParams.dmlYn}">X</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<select class="form-select form-select-sm" name="ogdp1">
|
||||
<option value="">관서 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
|
||||
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.ogdp1}"></option>
|
||||
</th:block>
|
||||
</th:block>
|
||||
<th:block th:each="num : ${#numbers.sequence(searchParams.startNum, searchParams.endNum)}">
|
||||
<li class="page-item" th:data-pageindex="${num}" th:classappend="${searchParams.pageIndex==num?'active':''}">
|
||||
<a class="page-link" href="#" th:text="${num}"></a>
|
||||
</li>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<select class="form-select form-select-sm" name="trLang">
|
||||
<option value="">언어 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('LGG')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.trLang}"></option>
|
||||
</th:block>
|
||||
<th:block th:if="${searchParams.maxNum>searchParams.endNum+2}">
|
||||
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)+3}">
|
||||
<a class="page-link" href="#" aria-label="Next">
|
||||
<span aria-hidden="true">»</span>
|
||||
</a>
|
||||
</li>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<select class="form-select form-select-sm" name="trVisa">
|
||||
<option value="">비자 선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('VISA')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.trVisa}"></option>
|
||||
</th:block>
|
||||
</ul>
|
||||
</nav>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-end">
|
||||
<div class="col-2">
|
||||
<select class="form-select form-select-sm" name="trNny">
|
||||
<option value="">국적선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('NNY')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq searchParams.trNny}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<input type="text" class="form-control form-select-sm" name="trName" th:value="${searchParams.trName}" placeholder="성명">
|
||||
</div>
|
||||
<!--<div class="col-2">
|
||||
<input type="text" class="form-control form-select-sm" name="aptDt" th:value="${searchParams.aptDt}" placeholder="위촉일" readonly>
|
||||
</div>-->
|
||||
<div class="col-4">
|
||||
<div class="input-group input-daterange" id="dateSelectorDiv">
|
||||
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="위촉일" autocomplete="off" readonly th:value="${searchParams.startDate}">
|
||||
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="위촉일" autocomplete="off" readonly th:value="${searchParams.endDate}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<button data-bs-toggle="modal" class="btn btn-primary" data-bs-target="#translatorInsertModal" th:unless="${accessAuth eq 'ACC001'}">등록</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-1 d-grid gap-2">
|
||||
<input type="submit" class="btn btn-primary" id="searchBtn" value="검색">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<input type="hidden" id="selectedKey">
|
||||
<input type="hidden" id="selectedVerNo">
|
||||
<table class="table table-sm table-hover table-bordered">
|
||||
<thead>
|
||||
<tr class="table-secondary">
|
||||
<th>연번</th>
|
||||
<th>관서명</th>
|
||||
<th>언어</th>
|
||||
<th>경력</th>
|
||||
<th>성명</th>
|
||||
<th>성별</th>
|
||||
<th>나이</th>
|
||||
<th>국적</th>
|
||||
<th>학력</th>
|
||||
<th>자격증</th>
|
||||
<th>비자</th>
|
||||
<th>해촉</th>
|
||||
<th>위촉일</th>
|
||||
<th>연락처</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-group-divider">
|
||||
<tr class="userInfoTr" data-bs-toggle="dropdown" aria-expanded="false" th:each="trInfo:${translatorList}">
|
||||
<input type="hidden" class="trKey" th:value="${trInfo.translatorKey}">
|
||||
<input type="hidden" class="verNo" th:value="${trInfo.versionNo}">
|
||||
<td>
|
||||
<p class="m-0" th:text="${trInfo.translatorKey}"></p>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a class="dropdown-item careerInfo" href="#">경력관리</a></li>
|
||||
<li><a class="dropdown-item translatorInfo" href="#">인적사항</a></li>
|
||||
</ul>
|
||||
</td>
|
||||
<td th:text="${trInfo.ogdp1}"></td>
|
||||
<td th:text="${trInfo.trLang}"></td>
|
||||
<td th:text="${trInfo.trCareer}"></td>
|
||||
<td th:text="${trInfo.trName}"></td>
|
||||
<td th:text="${trInfo.trSex}"></td>
|
||||
<td th:text="${trInfo.trAge}"></td>
|
||||
<td th:text="${trInfo.trNny}"></td>
|
||||
<td th:text="${trInfo.trEdu}"></td>
|
||||
<td th:text="${trInfo.trCft}"></td>
|
||||
<td th:text="${trInfo.trVisa}"></td>
|
||||
<td th:if="${trInfo.dmlYn == 'O'}">●</td>
|
||||
<td th:unless="${trInfo.dmlYn == 'O'}"></td>
|
||||
<td th:text="${trInfo.aptDt}"></td>
|
||||
<td th:text="${trInfo.trPhone}"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-between">
|
||||
<div class="col-auto">
|
||||
<button id="goExcel" class="btn btn-success">엑셀다운</button>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<nav aria-label="Page navigation">
|
||||
<ul class="pagination mb-0">
|
||||
<th:block th:if="${searchParams.pageIndex>3}">
|
||||
<li class="page-item" th:data-pageindex="${(searchParams.pageIndex)-3}">
|
||||
<a class="page-link" href="#" aria-label="Previous">
|
||||
<span aria-hidden="true">«</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">»</span>
|
||||
</a>
|
||||
</li>
|
||||
</th:block>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<button data-bs-toggle="modal" class="btn btn-primary" data-bs-target="#translatorInsertModal" th:unless="${accessAuth eq 'ACC001'}">등록</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -188,114 +198,114 @@
|
|||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form id="translatorInsert" action="#" method="post">
|
||||
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
|
||||
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
|
||||
<br>
|
||||
<div class="row mb-1">
|
||||
<label for="ogdp1" class="col-sm-1 col-form-label text-center fs-13 fw-bold">관서</label>
|
||||
<div class="col-sm-3">
|
||||
<select class="form-select" id="ogdp1" name="ogdp1" th:disabled="${accessAuth ne 'ACC003'}">
|
||||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
|
||||
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq userOrgan}"></option>
|
||||
<form id="translatorInsert" action="#" method="post">
|
||||
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
|
||||
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
|
||||
<br>
|
||||
<div class="row mb-1">
|
||||
<label for="ogdp1" class="col-sm-1 col-form-label text-center fs-13 fw-bold">관서</label>
|
||||
<div class="col-sm-3">
|
||||
<select class="form-select" id="ogdp1" name="ogdp1" th:disabled="${accessAuth ne 'ACC003'}">
|
||||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
|
||||
<th:block th:if="${#lists.contains(mgtOrganList, commonCode.itemCd)}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${commonCode.itemCd eq userOrgan}"></option>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</select>
|
||||
</select>
|
||||
</div>
|
||||
<label for="lang" class="col-sm-1 col-form-label text-center fs-13 fw-bold">언어</label>
|
||||
<div class="col-sm-3">
|
||||
<select class="form-select" id="lang" name="trLang">
|
||||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('LGG')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<label for="trCareer" class="col-sm-1 col-form-label text-center fs-13 fw-bold">경력</label>
|
||||
<div class="col-sm-3">
|
||||
<input type="text" class="form-control" id="trCareer" name="trCareer">
|
||||
</div>
|
||||
</div>
|
||||
<label for="lang" class="col-sm-1 col-form-label text-center fs-13 fw-bold">언어</label>
|
||||
<div class="col-sm-3">
|
||||
<select class="form-select" id="lang" name="trLang">
|
||||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('LGG')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
<div class="row mb-1">
|
||||
<label for="trName" class="col-sm-1 col-form-label text-center fs-13 fw-bold">성명</label>
|
||||
<div class="col-sm-3">
|
||||
<input type="text" class="form-control" id="trName" name="trName">
|
||||
</div>
|
||||
<label for="trSex" class="col-sm-1 col-form-label text-center fs-13 fw-bold">성별</label>
|
||||
<div class="col-sm-3">
|
||||
<select class="form-select" id="trSex" name="trSex">
|
||||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('SEX')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<label for="trPhone" class="col-sm-1 col-form-label text-center fs-13 fw-bold">연락처</label>
|
||||
<div class="col-sm-3">
|
||||
<input type="text" class="form-control" id="trPhone" name="trPhone">
|
||||
</div>
|
||||
</div>
|
||||
<label for="trCareer" class="col-sm-1 col-form-label text-center fs-13 fw-bold">경력</label>
|
||||
<div class="col-sm-3">
|
||||
<input type="text" class="form-control" id="trCareer" name="trCareer">
|
||||
<div class="row mb-1">
|
||||
<label for="trNny" class="col-sm-1 col-form-label text-center fs-13 fw-bold">국적</label>
|
||||
<div class="col-sm-3">
|
||||
<select class="form-select" id="trNny" name="trNny">
|
||||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('NNY')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<label for="trAge" class="col-sm-1 col-form-label text-center fs-13 fw-bold">나이</label>
|
||||
<div class="col-sm-3">
|
||||
<input type="text" class="form-control" id="trAge" name="trAge">
|
||||
</div>
|
||||
<label for="trEdu" class="col-sm-1 col-form-label text-center fs-13 fw-bold">학력</label>
|
||||
<div class="col-sm-3">
|
||||
<select class="form-select" id="trEdu" name="trEdu">
|
||||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('EDU')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label for="trName" class="col-sm-1 col-form-label text-center fs-13 fw-bold">성명</label>
|
||||
<div class="col-sm-3">
|
||||
<input type="text" class="form-control" id="trName" name="trName">
|
||||
<div class="row mb-1">
|
||||
<label for="trCft" class="col-sm-1 col-form-label text-center fs-13 fw-bold">자격증</label>
|
||||
<div class="col-sm-3">
|
||||
<input type="text" class="form-control" id="trCft" name="trCft">
|
||||
</div>
|
||||
<label for="trVisa" class="col-sm-1 col-form-label text-center fs-13 fw-bold">비자</label>
|
||||
<div class="col-sm-3">
|
||||
<select class="form-select" id="trVisa" name="trVisa">
|
||||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('VISA')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<label for="aptDt" class="col-sm-1 col-form-label text-center fs-13 fw-bold">위촉일</label>
|
||||
<div class="col-sm-3">
|
||||
<input type="text" class="form-control" id="aptDt" name="aptDt" readonly>
|
||||
</div>
|
||||
</div>
|
||||
<label for="trSex" class="col-sm-1 col-form-label text-center fs-13 fw-bold">성별</label>
|
||||
<div class="col-sm-3">
|
||||
<select class="form-select" id="trSex" name="trSex">
|
||||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('SEX')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
<div class="mb-2 row">
|
||||
<label for="dmlYn" class="col-sm-1 col-form-label text-center fs-13 fw-bold">해촉</label>
|
||||
<div class="col-sm-3">
|
||||
<select class="form-select" id="dmlYn" name="dmlYn">
|
||||
<option value="">선택</option>
|
||||
<option value="O">O</option>
|
||||
<option value="X">X</option>
|
||||
</select>
|
||||
</div>
|
||||
<label for="remark" class="col-sm-1 col-form-label text-center fs-13 fw-bold">비고</label>
|
||||
<div class="col-sm-7">
|
||||
<input type="text" class="form-control" id="remark" name="remark">
|
||||
</div>
|
||||
</div>
|
||||
<label for="trPhone" class="col-sm-1 col-form-label text-center fs-13 fw-bold">연락처</label>
|
||||
<div class="col-sm-3">
|
||||
<input type="text" class="form-control" id="trPhone" name="trPhone">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label for="trNny" class="col-sm-1 col-form-label text-center fs-13 fw-bold">국적</label>
|
||||
<div class="col-sm-3">
|
||||
<select class="form-select" id="trNny" name="trNny">
|
||||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('NNY')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<label for="trAge" class="col-sm-1 col-form-label text-center fs-13 fw-bold">나이</label>
|
||||
<div class="col-sm-3">
|
||||
<input type="text" class="form-control" id="trAge" name="trAge">
|
||||
</div>
|
||||
<label for="trEdu" class="col-sm-1 col-form-label text-center fs-13 fw-bold">학력</label>
|
||||
<div class="col-sm-3">
|
||||
<select class="form-select" id="trEdu" name="trEdu">
|
||||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('EDU')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label for="trCft" class="col-sm-1 col-form-label text-center fs-13 fw-bold">자격증</label>
|
||||
<div class="col-sm-3">
|
||||
<input type="text" class="form-control" id="trCft" name="trCft">
|
||||
</div>
|
||||
<label for="trVisa" class="col-sm-1 col-form-label text-center fs-13 fw-bold">비자</label>
|
||||
<div class="col-sm-3">
|
||||
<select class="form-select" id="trVisa" name="trVisa">
|
||||
<option value="">선택</option>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('VISA')}">
|
||||
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<label for="aptDt" class="col-sm-1 col-form-label text-center fs-13 fw-bold">위촉일</label>
|
||||
<div class="col-sm-3">
|
||||
<input type="text" class="form-control" id="aptDt" name="aptDt" readonly>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-2 row">
|
||||
<label for="dmlYn" class="col-sm-1 col-form-label text-center fs-13 fw-bold">해촉</label>
|
||||
<div class="col-sm-3">
|
||||
<select class="form-select" id="dmlYn" name="dmlYn">
|
||||
<option value="">선택</option>
|
||||
<option value="O">O</option>
|
||||
<option value="X">X</option>
|
||||
</select>
|
||||
</div>
|
||||
<label for="remark" class="col-sm-1 col-form-label text-center fs-13 fw-bold">비고</label>
|
||||
<div class="col-sm-7">
|
||||
<input type="text" class="form-control" id="remark" name="remark">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal" id="closeModalBtn">닫기</button>
|
||||
|
|
|
|||
|
|
@ -7,68 +7,69 @@
|
|||
</th:block>
|
||||
<div layout:fragment="content">
|
||||
<main>
|
||||
<h4>어권별 현황</h4>
|
||||
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
|
||||
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
|
||||
<div class="row justify-content-between">
|
||||
<div class="col-auto"><h4>어권별 현황</h4></div>
|
||||
<div class="col-auto"><p class="mb-0 mt-2">민간통역인 > 어권별 현황</p></div>
|
||||
</div>
|
||||
<div class="row mx-0">
|
||||
<div class="col-12 card bg-light text-center">
|
||||
<div class="card-body">
|
||||
<div class="row justify-content-start">
|
||||
<div class="col-12">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="row justify-content-end">
|
||||
<div class="col-auto">
|
||||
<button id="excelDown" class="btn btn-success">엑셀다운</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<table class="table table-sm table-hover table-bordered">
|
||||
<thead>
|
||||
<tr class="table-secondary">
|
||||
<th colspan="2">어권별 구분</th>
|
||||
<th>총계</th>
|
||||
<th>중부청</th>
|
||||
<th>서해청</th>
|
||||
<th>남해청</th>
|
||||
<th>동해청</th>
|
||||
<th>제주청</th>
|
||||
</tr>
|
||||
<tr class="table-secondary">
|
||||
<th>연번</th>
|
||||
<th>계</th>
|
||||
<th:block th:if="${not #strings.isEmpty(total)}">
|
||||
<div class="row justify-content-end pb-1">
|
||||
<div class="col-auto">
|
||||
<button id="excelDown" class="btn btn-success">엑셀다운</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<table class="table table-sm table-hover table-bordered">
|
||||
<thead>
|
||||
<tr class="table-secondary">
|
||||
<th colspan="2">어권별 구분</th>
|
||||
<th>총계</th>
|
||||
<th>중부청</th>
|
||||
<th>서해청</th>
|
||||
<th>남해청</th>
|
||||
<th>동해청</th>
|
||||
<th>제주청</th>
|
||||
</tr>
|
||||
<tr class="table-secondary">
|
||||
<th>연번</th>
|
||||
<th>계</th>
|
||||
<th:block th:if="${not #strings.isEmpty(total)}">
|
||||
<th th:text="${total.total_total}"></th>
|
||||
<th th:text="${total.total_center}"></th>
|
||||
<th th:text="${total.total_west}"></th>
|
||||
<th th:text="${total.total_south}"></th>
|
||||
<th th:text="${total.total_east}"></th>
|
||||
<th th:text="${total.total_jeju}"></th>
|
||||
</th:block>
|
||||
<th:block th:unless="${not #strings.isEmpty(total)}">
|
||||
<th th:text="${total.total_jeju}"></th>
|
||||
</th:block>
|
||||
<th:block th:unless="${not #strings.isEmpty(total)}">
|
||||
<th>0</th>
|
||||
<th>0</th>
|
||||
<th>0</th>
|
||||
<th>0</th>
|
||||
<th>0</th>
|
||||
<th>0</th>
|
||||
</th:block>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-group-divider">
|
||||
<tr class="" th:each="cnt,index:${cntList}">
|
||||
<td th:text="${index.index+1}"></td>
|
||||
<td th:text="${cnt.lang}"></td>
|
||||
<td th:text="${cnt.cnt_total}"></td>
|
||||
<td th:text="${cnt.cnt_center}"></td>
|
||||
<td th:text="${cnt.cnt_west}"></td>
|
||||
<td th:text="${cnt.cnt_south}"></td>
|
||||
<td th:text="${cnt.cnt_east}"></td>
|
||||
<td th:text="${cnt.cnt_jeju}"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</th:block>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-group-divider">
|
||||
<tr class="" th:each="cnt,index:${cntList}">
|
||||
<td th:text="${index.index+1}"></td>
|
||||
<td th:text="${cnt.lang}"></td>
|
||||
<td th:text="${cnt.cnt_total}"></td>
|
||||
<td th:text="${cnt.cnt_center}"></td>
|
||||
<td th:text="${cnt.cnt_west}"></td>
|
||||
<td th:text="${cnt.cnt_south}"></td>
|
||||
<td th:text="${cnt.cnt_east}"></td>
|
||||
<td th:text="${cnt.cnt_jeju}"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -29,19 +29,18 @@
|
|||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<div class="row justify-content-end">
|
||||
<div class="col-10">
|
||||
<div class="row">
|
||||
<div class="col-3"></div>
|
||||
<div class="col-3">
|
||||
<div class="col-8">
|
||||
<div class="row">
|
||||
<div class="col-11">
|
||||
<div class="row justify-content-end pb-1">
|
||||
<div class="col-2">
|
||||
<select class="form-select form-select-sm" name="viewYn">
|
||||
<option value="">열람여부</option>
|
||||
<option value="Y" th:selected="${searchParams.viewYn eq 'Y'}">O</option>
|
||||
<option value="N" th:selected="${searchParams.viewYn eq 'N'}">X</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<div class="col-4">
|
||||
<div class="input-group">
|
||||
<select class="form-select form-select-sm" name="cat1Cd">
|
||||
<option value="">대분류</option>
|
||||
|
|
@ -63,10 +62,12 @@
|
|||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6 pt-1">
|
||||
</div>
|
||||
<div class="row justify-content-end">
|
||||
<div class="col-4">
|
||||
<input type="text" class="form-control form-control-sm" placeholder="메시지" name="alarmMsg" th:value="${searchParams.alarmMsg}">
|
||||
</div>
|
||||
<div class="col-6 pt-1">
|
||||
<div class="col-4">
|
||||
<div class="input-group w-auto input-daterange" id="dateSelectorDiv">
|
||||
<input type="text" class="form-control form-control-sm" id="startDate" name="startDate" placeholder="시작일" autocomplete="off" readonly th:value="${searchParams.startDate}">
|
||||
<input type="text" class="form-control form-control-sm" id="endDate" name="endDate" placeholder="종료일" autocomplete="off" readonly th:value="${searchParams.endDate}">
|
||||
|
|
@ -74,7 +75,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-2 d-grid gap-2">
|
||||
<div class="col-1 d-grid gap-0">
|
||||
<input type="submit" class="btn btn-sm btn-primary" id="searchBtn" value="검색">
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -86,45 +87,46 @@
|
|||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<table class="table table-sm table-hover table-bordered">
|
||||
<thead>
|
||||
<tr class="table-secondary">
|
||||
<th>대분류</th>
|
||||
<th>중분류</th>
|
||||
<th>소분류</th>
|
||||
<th>메시지</th>
|
||||
<th>열람여부</th>
|
||||
<th>등록일시</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-group-divider">
|
||||
<tr class="alarmTr" th:each="alarm:${pageAlarmList}">
|
||||
<input type="hidden" class="alarmKey" th:value="${alarm.alarmKey}">
|
||||
<input type="hidden" class="userSeq" th:value="${alarm.userSeq}">
|
||||
<td>
|
||||
<th:block th:each="code:${session.commonCode.get('CAT1')}">
|
||||
<th:block th:if="${code.itemCd eq alarm.cat1Cd}" th:text="${code.itemValue}"></th:block>
|
||||
</th:block>
|
||||
</td>
|
||||
<td>
|
||||
<th:block th:each="code:${session.commonCode.get('CAT2')}">
|
||||
<th:block th:if="${code.itemCd eq alarm.cat2Cd}" th:text="${code.itemValue}"></th:block>
|
||||
</th:block>
|
||||
</td>
|
||||
<td>
|
||||
<th:block th:each="code:${session.commonCode.get('CAT3')}">
|
||||
<th:block th:if="${code.itemCd eq alarm.cat3Cd}" th:text="${code.itemValue}"></th:block>
|
||||
</th:block>
|
||||
</td>
|
||||
<td th:text="${alarm.alarmMsg}"></td>
|
||||
<td th:text="${alarm.viewYn eq 'Y'?'O':'X'}"></td>
|
||||
<td th:text="${#temporals.format(alarm.wrtDt, 'yyyy-MM-dd HH:mm:ss')}"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="col-12">
|
||||
<table class="table table-sm table-hover table-bordered">
|
||||
<thead>
|
||||
<tr class="table-secondary">
|
||||
<th>대분류</th>
|
||||
<th>중분류</th>
|
||||
<th>소분류</th>
|
||||
<th>메시지</th>
|
||||
<th>열람여부</th>
|
||||
<th>등록일시</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-group-divider">
|
||||
<tr class="alarmTr" th:each="alarm:${pageAlarmList}">
|
||||
<input type="hidden" class="alarmKey" th:value="${alarm.alarmKey}">
|
||||
<input type="hidden" class="userSeq" th:value="${alarm.userSeq}">
|
||||
<td>
|
||||
<th:block th:each="code:${session.commonCode.get('CAT1')}">
|
||||
<th:block th:if="${code.itemCd eq alarm.cat1Cd}" th:text="${code.itemValue}"></th:block>
|
||||
</th:block>
|
||||
</td>
|
||||
<td>
|
||||
<th:block th:each="code:${session.commonCode.get('CAT2')}">
|
||||
<th:block th:if="${code.itemCd eq alarm.cat2Cd}" th:text="${code.itemValue}"></th:block>
|
||||
</th:block>
|
||||
</td>
|
||||
<td>
|
||||
<th:block th:each="code:${session.commonCode.get('CAT3')}">
|
||||
<th:block th:if="${code.itemCd eq alarm.cat3Cd}" th:text="${code.itemValue}"></th:block>
|
||||
</th:block>
|
||||
</td>
|
||||
<td th:text="${alarm.alarmMsg}"></td>
|
||||
<td th:text="${alarm.viewYn eq 'Y'?'O':'X'}"></td>
|
||||
<td th:text="${#temporals.format(alarm.wrtDt, 'yyyy-MM-dd HH:mm:ss')}"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-between">
|
||||
<div class="col-auto"></div>
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-auto">
|
||||
<nav aria-label="Page navigation">
|
||||
<ul class="pagination mb-0">
|
||||
|
|
@ -150,9 +152,6 @@
|
|||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<input type="button" class="btn btn-success" value="등록" id="addNoticeBtn" sec:authorize="hasRole('ROLE_SUB_ADMIN')">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -44,10 +44,10 @@
|
|||
<div class="row justify-content-end">
|
||||
<div class="col-auto">
|
||||
<button type="button" class="btn btn-sm btn-info" id="syncBtn" th:disabled="${#strings.isEmpty(userInfo.dicCode)}">인사시스템 정보 연동</button>
|
||||
<label for="syncBtn" style="font-size: 12px" th:if="${#strings.isEmpty(userInfo.dicCode)}">공무원식별번호가 필요합니다.</label>
|
||||
<label for="syncBtn" class="fs-12" th:if="${#strings.isEmpty(userInfo.dicCode)}">공무원식별번호가 필요합니다.</label>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<button type="button" class="btn btn-sm btn-primary" id="updateBtn">수정</button>
|
||||
<button type="button" class="btn btn-sm btn-success" id="updateBtn">수정</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Reference in New Issue