parent
e7288d4ccd
commit
b8772b7ccd
|
|
@ -63,8 +63,6 @@ public class CounterIntelligenceController {
|
||||||
String accessAuth = authMgtService.selectAccessConfigList
|
String accessAuth = authMgtService.selectAccessConfigList
|
||||||
(loginUser.getUserSeq(), "/counterIntelligence/ciWorkList").get(0).getAccessAuth();
|
(loginUser.getUserSeq(), "/counterIntelligence/ciWorkList").get(0).getAccessAuth();
|
||||||
mav.addObject("accessAuth", accessAuth);
|
mav.addObject("accessAuth", accessAuth);
|
||||||
mav.addObject("atCodeList", codeMgtService.selectCodeMgtList("AT"));
|
|
||||||
mav.addObject("at2CodeList", ciWork.getCiwKey()!=null?codeMgtService.selectCodeMgtList(ciWork.getArrestType1()):null);
|
|
||||||
mav.addObject("ciWork", ciWork);
|
mav.addObject("ciWork", ciWork);
|
||||||
return mav;
|
return mav;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import com.dbnt.faisp.main.counterIntelligence.activityCase.model.ActivityCase;
|
||||||
import com.dbnt.faisp.main.counterIntelligence.activityCase.service.ActivityCaseService;
|
import com.dbnt.faisp.main.counterIntelligence.activityCase.service.ActivityCaseService;
|
||||||
import com.dbnt.faisp.main.counterIntelligence.model.CounterIntelligenceWork;
|
import com.dbnt.faisp.main.counterIntelligence.model.CounterIntelligenceWork;
|
||||||
import com.dbnt.faisp.main.userInfo.model.UserInfo;
|
import com.dbnt.faisp.main.userInfo.model.UserInfo;
|
||||||
|
import com.dbnt.faisp.main.userInfo.service.UserInfoService;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.security.core.annotation.AuthenticationPrincipal;
|
import org.springframework.security.core.annotation.AuthenticationPrincipal;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
@ -23,6 +24,7 @@ public class ActivityCaseController {
|
||||||
private final ActivityCaseService activityCaseService;
|
private final ActivityCaseService activityCaseService;
|
||||||
private final AuthMgtService authMgtService;
|
private final AuthMgtService authMgtService;
|
||||||
private final CodeMgtService codeMgtService;
|
private final CodeMgtService codeMgtService;
|
||||||
|
private final UserInfoService userInfoService;
|
||||||
|
|
||||||
@GetMapping("/activityCaseList")
|
@GetMapping("/activityCaseList")
|
||||||
public ModelAndView activityCaseListPage(@AuthenticationPrincipal UserInfo loginUser, ActivityCase activityCase){
|
public ModelAndView activityCaseListPage(@AuthenticationPrincipal UserInfo loginUser, ActivityCase activityCase){
|
||||||
|
|
@ -49,7 +51,6 @@ public class ActivityCaseController {
|
||||||
public ModelAndView activityCaseEditModal(@AuthenticationPrincipal UserInfo loginUser, ActivityCase activityCase){
|
public ModelAndView activityCaseEditModal(@AuthenticationPrincipal UserInfo loginUser, ActivityCase activityCase){
|
||||||
ModelAndView mav = new ModelAndView("counterIntelligence/activityCase/activityCaseEditModal");
|
ModelAndView mav = new ModelAndView("counterIntelligence/activityCase/activityCaseEditModal");
|
||||||
|
|
||||||
mav.addObject("ciwrCodeList", codeMgtService.selectCodeMgtList("CIWR"));
|
|
||||||
if(activityCase.getCaseKey()==null){
|
if(activityCase.getCaseKey()==null){
|
||||||
activityCase.setWrtOrgan(loginUser.getOgCd());
|
activityCase.setWrtOrgan(loginUser.getOgCd());
|
||||||
activityCase.setWrtPart(loginUser.getOfcCd());
|
activityCase.setWrtPart(loginUser.getOfcCd());
|
||||||
|
|
@ -67,6 +68,20 @@ public class ActivityCaseController {
|
||||||
return mav;
|
return mav;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/getSuspectDiv")
|
||||||
|
public ModelAndView suspectDiv(){
|
||||||
|
ModelAndView mav = new ModelAndView("counterIntelligence/activityCase/suspectDiv");
|
||||||
|
|
||||||
|
return mav;
|
||||||
|
}
|
||||||
|
@GetMapping("/getOfficerDiv")
|
||||||
|
public ModelAndView officerDiv(Integer userSeq){
|
||||||
|
ModelAndView mav = new ModelAndView("counterIntelligence/activityCase/officerDiv");
|
||||||
|
mav.addObject("officer", userInfoService.selectUserInfo(userSeq));
|
||||||
|
mav.addObject("acoList", codeMgtService.selectCodeMgtList("ACO"));
|
||||||
|
return mav;
|
||||||
|
}
|
||||||
|
|
||||||
@GetMapping("/activityCaseViewModal")
|
@GetMapping("/activityCaseViewModal")
|
||||||
public ModelAndView activityCaseViewModal(@AuthenticationPrincipal UserInfo loginUser, ActivityCase activityCase){
|
public ModelAndView activityCaseViewModal(@AuthenticationPrincipal UserInfo loginUser, ActivityCase activityCase){
|
||||||
ModelAndView mav = new ModelAndView("counterIntelligence/activityCase/activityCaseViewModal");
|
ModelAndView mav = new ModelAndView("counterIntelligence/activityCase/activityCaseViewModal");
|
||||||
|
|
|
||||||
|
|
@ -30,30 +30,16 @@ public class ActivityCase extends BaseModel {
|
||||||
private Integer caseKey;
|
private Integer caseKey;
|
||||||
@Column(name = "status")
|
@Column(name = "status")
|
||||||
private String status;
|
private String status;
|
||||||
@Column(name = "division")
|
|
||||||
private String division;
|
|
||||||
@Column(name = "merging")
|
|
||||||
private String merging;
|
|
||||||
@Column(name = "receipt_num")
|
@Column(name = "receipt_num")
|
||||||
private String receiptNum;
|
private String receiptNum;
|
||||||
@Column(name = "receipt_dt")
|
@Column(name = "receipt_dt")
|
||||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
private LocalDateTime receiptDt;
|
private LocalDateTime receiptDt;
|
||||||
@Column(name = "case_num")
|
|
||||||
private String caseNum;
|
|
||||||
@Column(name = "result_num")
|
|
||||||
private String resultNum;
|
|
||||||
@Column(name = "result_dt")
|
@Column(name = "result_dt")
|
||||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
private LocalDateTime resultDt;
|
private LocalDateTime resultDt;
|
||||||
@Column(name = "receipt_clue")
|
@Column(name = "receipt_clue")
|
||||||
private String receiptClue;
|
private String receiptClue;
|
||||||
@Column(name = "crime")
|
|
||||||
private String crime;
|
|
||||||
@Column(name = "court")
|
|
||||||
private String court;
|
|
||||||
@Column(name = "memo")
|
|
||||||
private String memo;
|
|
||||||
@Column(name = "etc")
|
@Column(name = "etc")
|
||||||
private String etc;
|
private String etc;
|
||||||
@Column(name = "wrt_organ")
|
@Column(name = "wrt_organ")
|
||||||
|
|
@ -77,7 +63,7 @@ public class ActivityCase extends BaseModel {
|
||||||
@Transient
|
@Transient
|
||||||
private List<ActivityCaseOfficer> officerList;
|
private List<ActivityCaseOfficer> officerList;
|
||||||
@Transient
|
@Transient
|
||||||
private List<ActivityCasePeople> peopleList;
|
private List<ActivityCaseSuspect> suspectList;
|
||||||
@Transient
|
@Transient
|
||||||
private List<MultipartFile> multipartFileList;
|
private List<MultipartFile> multipartFileList;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,45 +0,0 @@
|
||||||
package com.dbnt.faisp.main.counterIntelligence.activityCase.model;
|
|
||||||
|
|
||||||
import lombok.*;
|
|
||||||
import org.hibernate.annotations.DynamicInsert;
|
|
||||||
import org.hibernate.annotations.DynamicUpdate;
|
|
||||||
|
|
||||||
import javax.persistence.*;
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
@Getter
|
|
||||||
@Setter
|
|
||||||
@Entity
|
|
||||||
@NoArgsConstructor
|
|
||||||
@DynamicInsert
|
|
||||||
@DynamicUpdate
|
|
||||||
@Table(name = "activity_case_file")
|
|
||||||
@IdClass(ActivityCasePeople.ActivityCasePeopleId.class)
|
|
||||||
public class ActivityCasePeople {
|
|
||||||
@Id
|
|
||||||
@Column(name = "case_key")
|
|
||||||
private Integer caseKey;
|
|
||||||
@Id
|
|
||||||
@Column(name = "people_seq")
|
|
||||||
private Integer peopleSeq;
|
|
||||||
@Column(name = "orig_nm")
|
|
||||||
private String origNm;
|
|
||||||
@Column(name = "conv_nm")
|
|
||||||
private String convNm;
|
|
||||||
@Column(name = "file_extn")
|
|
||||||
private String fileExtn;
|
|
||||||
@Column(name = "file_size")
|
|
||||||
private String fileSize;
|
|
||||||
@Column(name = "save_path")
|
|
||||||
private String savePath;
|
|
||||||
|
|
||||||
|
|
||||||
@Embeddable
|
|
||||||
@Data
|
|
||||||
@NoArgsConstructor
|
|
||||||
@AllArgsConstructor
|
|
||||||
public static class ActivityCasePeopleId implements Serializable {
|
|
||||||
private Integer caseKey;
|
|
||||||
private Integer peopleSeq;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -0,0 +1,54 @@
|
||||||
|
package com.dbnt.faisp.main.counterIntelligence.activityCase.model;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
import org.hibernate.annotations.DynamicInsert;
|
||||||
|
import org.hibernate.annotations.DynamicUpdate;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@Entity
|
||||||
|
@NoArgsConstructor
|
||||||
|
@DynamicInsert
|
||||||
|
@DynamicUpdate
|
||||||
|
@Table(name = "activity_case_suspect")
|
||||||
|
@IdClass(ActivityCaseSuspect.ActivityCaseSuspectId.class)
|
||||||
|
public class ActivityCaseSuspect {
|
||||||
|
@Id
|
||||||
|
@Column(name = "case_key")
|
||||||
|
private Integer caseKey;
|
||||||
|
@Id
|
||||||
|
@Column(name = "suspect_seq")
|
||||||
|
private Integer suspectSeq;
|
||||||
|
@Column(name = "type")
|
||||||
|
private String type;
|
||||||
|
@Column(name = "name")
|
||||||
|
private String name;
|
||||||
|
@Column(name = "sex")
|
||||||
|
private String sex;
|
||||||
|
@Column(name = "birth_date")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
|
private LocalDate birthDate;
|
||||||
|
@Column(name = "phone")
|
||||||
|
private String phone;
|
||||||
|
@Column(name = "job")
|
||||||
|
private String job;
|
||||||
|
@Column(name = "area")
|
||||||
|
private String area;
|
||||||
|
@Column(name = "etc")
|
||||||
|
private String etc;
|
||||||
|
|
||||||
|
|
||||||
|
@Embeddable
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public static class ActivityCaseSuspectId implements Serializable {
|
||||||
|
private Integer caseKey;
|
||||||
|
private Integer suspectSeq;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,13 +1,13 @@
|
||||||
package com.dbnt.faisp.main.counterIntelligence.activityCase.repository;
|
package com.dbnt.faisp.main.counterIntelligence.activityCase.repository;
|
||||||
|
|
||||||
import com.dbnt.faisp.main.counterIntelligence.activityCase.model.ActivityCasePeople;
|
import com.dbnt.faisp.main.counterIntelligence.activityCase.model.ActivityCaseSuspect;
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
|
|
||||||
public interface ActivityCasePeopleRepository extends JpaRepository<ActivityCasePeople, ActivityCasePeople.ActivityCasePeopleId> {
|
public interface ActivityCaseSuspectRepository extends JpaRepository<ActivityCaseSuspect, ActivityCaseSuspect.ActivityCaseSuspectId> {
|
||||||
|
|
||||||
void deleteByCaseKey(Integer caseKey);
|
void deleteByCaseKey(Integer caseKey);
|
||||||
}
|
}
|
||||||
|
|
@ -6,15 +6,11 @@ import com.dbnt.faisp.main.counterIntelligence.activityCase.mapper.ActivityCaseM
|
||||||
import com.dbnt.faisp.main.counterIntelligence.activityCase.model.ActivityCase;
|
import com.dbnt.faisp.main.counterIntelligence.activityCase.model.ActivityCase;
|
||||||
import com.dbnt.faisp.main.counterIntelligence.activityCase.model.ActivityCaseFile;
|
import com.dbnt.faisp.main.counterIntelligence.activityCase.model.ActivityCaseFile;
|
||||||
import com.dbnt.faisp.main.counterIntelligence.activityCase.model.ActivityCaseOfficer;
|
import com.dbnt.faisp.main.counterIntelligence.activityCase.model.ActivityCaseOfficer;
|
||||||
import com.dbnt.faisp.main.counterIntelligence.activityCase.model.ActivityCasePeople;
|
import com.dbnt.faisp.main.counterIntelligence.activityCase.model.ActivityCaseSuspect;
|
||||||
import com.dbnt.faisp.main.counterIntelligence.activityCase.repository.ActivityCaseFileRepository;
|
import com.dbnt.faisp.main.counterIntelligence.activityCase.repository.ActivityCaseFileRepository;
|
||||||
import com.dbnt.faisp.main.counterIntelligence.activityCase.repository.ActivityCaseOfficerRepository;
|
import com.dbnt.faisp.main.counterIntelligence.activityCase.repository.ActivityCaseOfficerRepository;
|
||||||
import com.dbnt.faisp.main.counterIntelligence.activityCase.repository.ActivityCasePeopleRepository;
|
import com.dbnt.faisp.main.counterIntelligence.activityCase.repository.ActivityCaseSuspectRepository;
|
||||||
import com.dbnt.faisp.main.counterIntelligence.activityCase.repository.ActivityCaseRepository;
|
import com.dbnt.faisp.main.counterIntelligence.activityCase.repository.ActivityCaseRepository;
|
||||||
import com.dbnt.faisp.main.counterIntelligence.mapper.CounterIntelligenceMapper;
|
|
||||||
import com.dbnt.faisp.main.counterIntelligence.model.*;
|
|
||||||
import com.dbnt.faisp.main.counterIntelligence.repository.*;
|
|
||||||
import com.dbnt.faisp.main.hashTag.service.HashTagService;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
@ -29,7 +25,7 @@ import java.util.UUID;
|
||||||
public class ActivityCaseService extends BaseService {
|
public class ActivityCaseService extends BaseService {
|
||||||
private final ActivityCaseRepository activityCaseRepository;
|
private final ActivityCaseRepository activityCaseRepository;
|
||||||
private final ActivityCaseFileRepository acfRepository;
|
private final ActivityCaseFileRepository acfRepository;
|
||||||
private final ActivityCasePeopleRepository acpRepository;
|
private final ActivityCaseSuspectRepository acsRepository;
|
||||||
private final ActivityCaseOfficerRepository acoRepository;
|
private final ActivityCaseOfficerRepository acoRepository;
|
||||||
private final ActivityCaseMapper activityCaseMapper;
|
private final ActivityCaseMapper activityCaseMapper;
|
||||||
|
|
||||||
|
|
@ -50,7 +46,7 @@ public class ActivityCaseService extends BaseService {
|
||||||
@Transactional
|
@Transactional
|
||||||
public Integer saveActivityCase(ActivityCase activityCase, List<Integer> deleteFileSeq) {
|
public Integer saveActivityCase(ActivityCase activityCase, List<Integer> deleteFileSeq) {
|
||||||
Integer caseKey = activityCaseRepository.save(activityCase).getCaseKey();
|
Integer caseKey = activityCaseRepository.save(activityCase).getCaseKey();
|
||||||
saveActivityCasePeople(caseKey, activityCase.getPeopleList());
|
saveActivityCaseSuspect(caseKey, activityCase.getSuspectList());
|
||||||
saveActivityCaseOfficer(caseKey, activityCase.getOfficerList());
|
saveActivityCaseOfficer(caseKey, activityCase.getOfficerList());
|
||||||
if(deleteFileSeq != null && deleteFileSeq.size()>0){
|
if(deleteFileSeq != null && deleteFileSeq.size()>0){
|
||||||
deleteActivityCaseFile(caseKey, deleteFileSeq);
|
deleteActivityCaseFile(caseKey, deleteFileSeq);
|
||||||
|
|
@ -62,9 +58,9 @@ public class ActivityCaseService extends BaseService {
|
||||||
return caseKey;
|
return caseKey;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void saveActivityCasePeople(Integer caseKey, List<ActivityCasePeople> peopleList) {
|
private void saveActivityCaseSuspect(Integer caseKey, List<ActivityCaseSuspect> suspectList) {
|
||||||
if(peopleList==null){
|
if(suspectList==null){
|
||||||
acpRepository.deleteByCaseKey(caseKey);
|
acsRepository.deleteByCaseKey(caseKey);
|
||||||
}else{
|
}else{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,9 @@ public class CounterIntelligenceWork extends BaseModel {
|
||||||
@Column(name = "work_start_date")
|
@Column(name = "work_start_date")
|
||||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
private LocalDate workStartDate;
|
private LocalDate workStartDate;
|
||||||
|
@Column(name = "work_plan_date")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
|
private LocalDate workPlanDate;
|
||||||
@Column(name = "work_end_date")
|
@Column(name = "work_end_date")
|
||||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
private LocalDate workEndDate;
|
private LocalDate workEndDate;
|
||||||
|
|
@ -42,10 +45,6 @@ public class CounterIntelligenceWork extends BaseModel {
|
||||||
@Column(name = "re_rating_date2")
|
@Column(name = "re_rating_date2")
|
||||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
private LocalDate reRatingDate2;
|
private LocalDate reRatingDate2;
|
||||||
@Column(name = "arrest_type1")
|
|
||||||
private String arrestType1;
|
|
||||||
@Column(name = "arrest_type2")
|
|
||||||
private String arrestType2;
|
|
||||||
@Column(name = "title")
|
@Column(name = "title")
|
||||||
private String title;
|
private String title;
|
||||||
@Column(name = "summary_info")
|
@Column(name = "summary_info")
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ spring.thymeleaf.mode=HTML
|
||||||
#Datasource Configuration
|
#Datasource Configuration
|
||||||
spring.sql.init.encoding=utf-8
|
spring.sql.init.encoding=utf-8
|
||||||
#maximum-pool-size: CPU core count
|
#maximum-pool-size: CPU core count
|
||||||
spring.datasource.hikari.maximum-pool-size=4
|
spring.datasource.hikari.maximum-pool-size=8
|
||||||
#postgresql
|
#postgresql
|
||||||
spring.datasource-main.driverClassName=org.postgresql.Driver
|
spring.datasource-main.driverClassName=org.postgresql.Driver
|
||||||
spring.datasource-main.jdbcUrl=jdbc:postgresql://10.187.142.13:5432/experdb
|
spring.datasource-main.jdbcUrl=jdbc:postgresql://10.187.142.13:5432/experdb
|
||||||
|
|
|
||||||
|
|
@ -46,8 +46,6 @@
|
||||||
a.work_end_date,
|
a.work_end_date,
|
||||||
a.re_rating_date1,
|
a.re_rating_date1,
|
||||||
a.re_rating_date2,
|
a.re_rating_date2,
|
||||||
a.arrest_type1,
|
|
||||||
a.arrest_type2,
|
|
||||||
a.title,
|
a.title,
|
||||||
a.wrt_organ,
|
a.wrt_organ,
|
||||||
a.wrt_part,
|
a.wrt_part,
|
||||||
|
|
|
||||||
|
|
@ -13,12 +13,6 @@
|
||||||
<if test='workRating != null and workRating != ""'>
|
<if test='workRating != null and workRating != ""'>
|
||||||
and a.work_rating = #{workRating}
|
and a.work_rating = #{workRating}
|
||||||
</if>
|
</if>
|
||||||
<if test='arrestType1 != null and arrestType1 != ""'>
|
|
||||||
and a.arrest_type1 = #{arrestType1}
|
|
||||||
</if>
|
|
||||||
<if test='arrestType2 != null and arrestType2 != ""'>
|
|
||||||
and a.arrest_type2 = #{arrestType2}
|
|
||||||
</if>
|
|
||||||
<if test='title != null and title != ""'>
|
<if test='title != null and title != ""'>
|
||||||
and a.title like '%'||#{title}||'%'
|
and a.title like '%'||#{title}||'%'
|
||||||
</if>
|
</if>
|
||||||
|
|
@ -86,8 +80,6 @@
|
||||||
a.work_end_date,
|
a.work_end_date,
|
||||||
a.re_rating_date1,
|
a.re_rating_date1,
|
||||||
a.re_rating_date2,
|
a.re_rating_date2,
|
||||||
a.arrest_type1,
|
|
||||||
a.arrest_type2,
|
|
||||||
a.title,
|
a.title,
|
||||||
a.wrt_organ,
|
a.wrt_organ,
|
||||||
a.wrt_part,
|
a.wrt_part,
|
||||||
|
|
@ -119,10 +111,10 @@
|
||||||
|
|
||||||
<select id="selectCiWorkStatisticsList" resultType="ciWorkStatistics" parameterType="ciWorkStatistics">
|
<select id="selectCiWorkStatisticsList" resultType="ciWorkStatistics" parameterType="ciWorkStatistics">
|
||||||
select work_rating,
|
select work_rating,
|
||||||
count(case when work_start_date > (#{year}||'-01-01')::date and work_start_date < (#{year}+1||'-01-01')::date then 1 end) as newWorkCnt,
|
count(case when work_start_date >= (#{year}||'-01-01')::date and work_start_date <= (#{year}+1||'-01-01')::date then 1 end) as newWorkCnt,
|
||||||
count(case when work_end_date > (#{year}+1||'-01-01')::date and work_end_date < (#{year}+2||'-01-01')::date then 1 end) as doingWorkCnt,
|
count(case when work_end_date is null or (work_end_date >= (#{year}+1||'-01-01')::date and work_end_date < (#{year}+2||'-01-01')::date) then 1 end) as doingWorkCnt,
|
||||||
count(case when work_start_date > (#{year}-1||'-01-01')::date and work_start_date < (#{year}||'-01-01')::date and work_end_date > (#{year}||'-01-01')::date and work_end_date < (#{year}+1||'-01-01')::date then 1 end) as prevYearWorkEndCnt,
|
count(case when work_start_date > (#{year}-1||'-01-01')::date and work_start_date <= (#{year}||'-01-01')::date and work_end_date >= (#{year}||'-01-01')::date and work_end_date < (#{year}+1||'-01-01')::date then 1 end) as prevYearWorkEndCnt,
|
||||||
count(case when work_start_date > (#{year}||'-01-01')::date and work_start_date < (#{year}+1||'-01-01')::date and work_end_date > (#{year}||'-01-01')::date and work_end_date < (#{year}+1||'-01-01')::date then 1 end) as thisYearWorkEndCnt
|
count(case when work_start_date >= (#{year}||'-01-01')::date and work_start_date <= (#{year}+1||'-01-01')::date and work_end_date >= (#{year}||'-01-01')::date and work_end_date < (#{year}+1||'-01-01')::date then 1 end) as thisYearWorkEndCnt
|
||||||
from counter_intelligence_work a
|
from counter_intelligence_work a
|
||||||
WHERE a.status = 'DST007'
|
WHERE a.status = 'DST007'
|
||||||
group by work_rating
|
group by work_rating
|
||||||
|
|
|
||||||
|
|
@ -3,10 +3,11 @@ $(document).on('click', '#addActivityCaseBtn', function (){
|
||||||
getActivityCaseEditModal(null);
|
getActivityCaseEditModal(null);
|
||||||
})
|
})
|
||||||
|
|
||||||
$(document).on('click', '#peopleAddBtn', function (){
|
$(document).on('click', '#suspectAddBtn', function (){
|
||||||
getPeopleDiv()
|
getSuspectDiv()
|
||||||
})
|
})
|
||||||
$(document).on('click', '#officerAddBtn', function (){
|
$(document).on('click', '#officerAddBtn', function (){
|
||||||
|
getUserModal
|
||||||
getOfficerDiv()
|
getOfficerDiv()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
@ -49,11 +50,31 @@ function getActivityCaseEditModal(caseKey){
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function getPeopleDiv(){
|
function getSuspectDiv(){
|
||||||
|
$.ajax({
|
||||||
|
url: '/counterIntelligence/getSuspectDiv',
|
||||||
|
type: 'GET',
|
||||||
|
dataType:"html",
|
||||||
|
success: function(html){
|
||||||
|
$("#suspectHome").append(html)
|
||||||
|
},
|
||||||
|
error:function(){
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
function getOfficerDiv(){
|
function getOfficerDiv(){
|
||||||
|
$.ajax({
|
||||||
|
url: '/counterIntelligence/getOfficerDiv',
|
||||||
|
type: 'GET',
|
||||||
|
dataType:"html",
|
||||||
|
success: function(html){
|
||||||
|
$("#officerHome").append(html)
|
||||||
|
},
|
||||||
|
error:function(){
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function getActivityCaseViewModal(caseKey){
|
function getActivityCaseViewModal(caseKey){
|
||||||
|
|
@ -160,14 +181,6 @@ function contentCheck(){
|
||||||
alert("등급을 선택해주세요.")
|
alert("등급을 선택해주세요.")
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(!$("#arrestType1").val()){
|
|
||||||
alert("검거유형1을 선택해주세요.")
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if(!$("#arrestType2").val()){
|
|
||||||
alert("검거유형2를 선택해주세요.")
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if(!$("#title").val()){
|
if(!$("#title").val()){
|
||||||
alert("공작명을 입력해주세요.")
|
alert("공작명을 입력해주세요.")
|
||||||
return false;
|
return false;
|
||||||
|
|
|
||||||
|
|
@ -12,10 +12,6 @@ $(document).on('click', '#addCiWorkBtn', function (){
|
||||||
getCiWorkEditModal(null);
|
getCiWorkEditModal(null);
|
||||||
})
|
})
|
||||||
|
|
||||||
$(document).on('change', '#arrestType1', function (){
|
|
||||||
getArrestType2Option(this.value);
|
|
||||||
})
|
|
||||||
|
|
||||||
$(document).on('click', '#saveTempBtn,#saveCiWorkBtn', function(){
|
$(document).on('click', '#saveTempBtn,#saveCiWorkBtn', function(){
|
||||||
saveCiWork($(this).attr("data-status"));
|
saveCiWork($(this).attr("data-status"));
|
||||||
})
|
})
|
||||||
|
|
@ -144,8 +140,8 @@ function contentCheck(){
|
||||||
alert("착수일을 입력해주세요.")
|
alert("착수일을 입력해주세요.")
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(!$("#workEndDate").val()){
|
if(!$("#workPlanDate").val()){
|
||||||
alert("종결일을 입력해주세요.")
|
alert("예정일을 입력해주세요.")
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(!$("#reRatingDate1").val()){
|
if(!$("#reRatingDate1").val()){
|
||||||
|
|
@ -160,14 +156,6 @@ function contentCheck(){
|
||||||
alert("등급을 선택해주세요.")
|
alert("등급을 선택해주세요.")
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(!$("#arrestType1").val()){
|
|
||||||
alert("검거유형1을 선택해주세요.")
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if(!$("#arrestType2").val()){
|
|
||||||
alert("검거유형2를 선택해주세요.")
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if(!$("#title").val()){
|
if(!$("#title").val()){
|
||||||
alert("공작명을 입력해주세요.")
|
alert("공작명을 입력해주세요.")
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -178,20 +166,3 @@ function contentCheck(){
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function getArrestType2Option(categoryCd){
|
|
||||||
$.ajax({
|
|
||||||
url: '/selectBoxOptions',
|
|
||||||
data: {categoryCd: categoryCd},
|
|
||||||
type: 'GET',
|
|
||||||
dataType:"html",
|
|
||||||
success: function(html){
|
|
||||||
const arrestType2 = $("#arrestType2");
|
|
||||||
arrestType2.empty().append(html);
|
|
||||||
},
|
|
||||||
error:function(){
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
@ -104,28 +104,14 @@
|
||||||
<thead>
|
<thead>
|
||||||
<tr class="table-secondary">
|
<tr class="table-secondary">
|
||||||
<th>순번</th>
|
<th>순번</th>
|
||||||
<th>첨부파일</th>
|
|
||||||
<th>경과</th>
|
|
||||||
<th>구분</th>
|
|
||||||
<th>병합</th>
|
|
||||||
<th>접수번호</th>
|
|
||||||
<th>사건번호</th>
|
|
||||||
<th>접수단서</th>
|
|
||||||
<th>피(혐)의자</th>
|
|
||||||
<th>죄명</th>
|
|
||||||
<th>피해자</th>
|
|
||||||
<th>진행상태</th>
|
<th>진행상태</th>
|
||||||
<th>지휘서/메모</th>
|
<th>접수번호</th>
|
||||||
<th>종결번호</th>
|
<th>접수일</th>
|
||||||
<th>결정</th>
|
<th>접수단서</th>
|
||||||
<th>요구/요청</th>
|
<th>혐의자</th>
|
||||||
<th>이의</th>
|
<th>담당관</th>
|
||||||
<th>자체재개</th>
|
|
||||||
<th>메모</th>
|
|
||||||
<th>정수사관</th>
|
|
||||||
<th>부수사관</th>
|
|
||||||
<th>주책임관</th>
|
|
||||||
<th>비고</th>
|
<th>비고</th>
|
||||||
|
<th>첨부파일</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody class="table-group-divider">
|
<tbody class="table-group-divider">
|
||||||
|
|
@ -228,5 +214,30 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="modal fade" id="userModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="userModalLabel" aria-hidden="true">
|
||||||
|
<div class="modal-dialog modal-xl modal-dialog-scrollable">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header bg-dark">
|
||||||
|
<h5 class="modal-title text-white" id="menuModalLabel">담당관 검색</h5>
|
||||||
|
<input type="hidden" id="modalUrl" value="/modal/userModal">
|
||||||
|
<button type="button" class="btn-close f-invert" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body text-nowrap" id="subModalBody">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12">
|
||||||
|
<form method="get" action="#" id="modalSearchForm">
|
||||||
|
<input type="hidden" name="pageIndex" id="modalPageIndex" value="1">
|
||||||
|
<input type="hidden" name="rowCnt" value="10">
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer bg-light">
|
||||||
|
<button type="button" class="btn btn-primary" id="getMenuBtn">추가</button>
|
||||||
|
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">닫기</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</html>
|
</html>
|
||||||
|
|
@ -34,20 +34,6 @@
|
||||||
<input type="text" class="form-control form-control-sm" id="wrtDt" name="wrtDt" th:value="${#temporals.format(activityCase.wrtDt, 'yyyy-MM-dd HH:mm')}" readonly>
|
<input type="text" class="form-control form-control-sm" id="wrtDt" name="wrtDt" th:value="${#temporals.format(activityCase.wrtDt, 'yyyy-MM-dd HH:mm')}" readonly>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row mb-1">
|
|
||||||
<label for="receiptNum" class="col-sm-1 col-form-label col-form-label-sm text-center">경과</label>
|
|
||||||
<div class="col-sm-2">
|
|
||||||
<input type="text" class="form-control form-control-sm" id="receiptNum" name="receiptNum" th:value="${activityCase.receiptNum}">
|
|
||||||
</div>
|
|
||||||
<label for="receiptNum" class="col-sm-1 col-form-label col-form-label-sm text-center">구분</label>
|
|
||||||
<div class="col-sm-2">
|
|
||||||
<input type="text" class="form-control form-control-sm" id="receiptNum" name="receiptNum" th:value="${activityCase.receiptNum}">
|
|
||||||
</div>
|
|
||||||
<label for="receiptNum" class="col-sm-1 col-form-label col-form-label-sm text-center">병합</label>
|
|
||||||
<div class="col-sm-2">
|
|
||||||
<input type="text" class="form-control form-control-sm" id="receiptNum" name="receiptNum" th:value="${activityCase.receiptNum}">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row mb-1">
|
<div class="row mb-1">
|
||||||
<label for="receiptNum" class="col-sm-1 col-form-label col-form-label-sm text-center">접수번호</label>
|
<label for="receiptNum" class="col-sm-1 col-form-label col-form-label-sm text-center">접수번호</label>
|
||||||
<div class="col-sm-2">
|
<div class="col-sm-2">
|
||||||
|
|
@ -61,61 +47,45 @@
|
||||||
<div class="col-sm-2">
|
<div class="col-sm-2">
|
||||||
<input type="text" class="form-control form-control-sm" id="receiptNum" name="receiptNum" th:value="${activityCase.receiptNum}">
|
<input type="text" class="form-control form-control-sm" id="receiptNum" name="receiptNum" th:value="${activityCase.receiptNum}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
<div class="row mb-1">
|
|
||||||
<label for="resultNum" class="col-sm-1 col-form-label col-form-label-sm text-center">관할법원</label>
|
|
||||||
<div class="col-sm-2">
|
|
||||||
<input type="text" class="form-control form-control-sm" id="resultNum" name="resultNum" th:value="${activityCase.resultNum}">
|
|
||||||
</div>
|
|
||||||
<label for="receiptNum" class="col-sm-1 col-form-label col-form-label-sm text-center">사건번호</label>
|
|
||||||
<div class="col-sm-2">
|
|
||||||
<input type="text" class="form-control form-control-sm" id="receiptNum" name="receiptNum" th:value="${activityCase.receiptNum}">
|
|
||||||
</div>
|
|
||||||
<label for="resultNum" class="col-sm-1 col-form-label col-form-label-sm text-center">종결번호</label>
|
|
||||||
<div class="col-sm-2">
|
|
||||||
<input type="text" class="form-control form-control-sm" id="resultNum" name="resultNum" th:value="${activityCase.resultNum}">
|
|
||||||
</div>
|
|
||||||
<label for="resultDt" class="col-sm-1 col-form-label col-form-label-sm text-center">종결일</label>
|
<label for="resultDt" class="col-sm-1 col-form-label col-form-label-sm text-center">종결일</label>
|
||||||
<div class="col-sm-2">
|
<div class="col-sm-2">
|
||||||
<input type="text" class="form-control form-control-sm dateSelector" id="resultDt" name="resultDt" th:value="${#temporals.format(activityCase.resultDt, 'yyyy-MM-dd')}" readonly>
|
<input type="text" class="form-control form-control-sm dateSelector" id="resultDt" name="resultDt" th:value="${#temporals.format(activityCase.resultDt, 'yyyy-MM-dd')}" readonly>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row mb-1 justify-content-center">
|
<div class="row mb-1 justify-content-center">
|
||||||
<label for="summaryInfo" class="col-sm-1 col-form-label col-form-label-sm text-center">사건개요</label>
|
<label for="summaryInfo" class="col-sm-1 col-form-label col-form-label-sm text-center">첩보개요</label>
|
||||||
<div class="col-sm-11">
|
<div class="col-sm-11">
|
||||||
<textarea class="form-control form-control-sm" id="summaryInfo" name="summaryInfo"></textarea>
|
<textarea class="form-control form-control-sm" id="summaryInfo" name="summaryInfo"></textarea>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row mb-1">
|
<div class="row mb-1">
|
||||||
<label for="summaryInfo" class="col-sm-1 col-form-label col-form-label-sm text-center">
|
<label for="summaryInfo" class="col-sm-1 col-form-label col-form-label-sm text-center">
|
||||||
관련자
|
혐의자
|
||||||
<button type="button" class="border-0 bg-white" id="peopleAddBtn">
|
<button type="button" class="border-0 bg-white" id="suspectAddBtn">
|
||||||
<i class="bi bi-plus-square text-primary"></i>
|
<i class="bi bi-plus-square text-primary"></i>
|
||||||
</button>
|
</button>
|
||||||
</label>
|
</label>
|
||||||
<div class="col-sm-11 border">
|
<div class="col-sm-11">
|
||||||
<div class="row" id="peopleHome">
|
<div class="border h-100">
|
||||||
|
<div class="row" id="suspectHome">
|
||||||
|
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row mb-1">
|
<div class="row mb-1">
|
||||||
<label for="summaryInfo" class="col-sm-1 col-form-label col-form-label-sm text-center">
|
<label for="summaryInfo" class="col-sm-1 col-form-label col-form-label-sm text-center">
|
||||||
수사관
|
담당관
|
||||||
<button type="button" class="border-0 bg-white" id="officerAddBtn">
|
<button type="button" class="border-0 bg-white" id="officerAddBtn">
|
||||||
<i class="bi bi-plus-square text-primary"></i>
|
<i class="bi bi-plus-square text-primary"></i>
|
||||||
</button>
|
</button>
|
||||||
</label>
|
</label>
|
||||||
<div class="col-sm-11 border">
|
|
||||||
<div class="row" id="officerHome">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row mb-1">
|
|
||||||
<label for="summaryInfo" class="col-sm-1 col-form-label col-form-label-sm text-center">지휘서/메모</label>
|
|
||||||
<div class="col-sm-11">
|
<div class="col-sm-11">
|
||||||
<input type="text" class="form-control form-control-sm" id="receiptNum" name="receiptNum" th:value="${activityCase.receiptNum}">
|
<div class="border h-100">
|
||||||
|
<div class="row" id="officerHome">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row mb-1">
|
<div class="row mb-1">
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
|
||||||
|
<div class="row my-1 officerRow">
|
||||||
|
<input type="hidden" class="userSeq" th:value="${officer.userSeq}">
|
||||||
|
<input type="hidden" class="ogCd" th:value="${officer.ogCd}">
|
||||||
|
<input type="hidden" class="ofcCd" th:value="${officer.ofcCd}">
|
||||||
|
<input type="hidden" class="titleCd" th:value="${officer.titleCd}">
|
||||||
|
<input type="hidden" class="userNm" th:value="${officer.userNm}">
|
||||||
|
<div class="col-2">
|
||||||
|
<select class="form-select form-select-sm">
|
||||||
|
<option value="">선택</option>
|
||||||
|
<th:block th:each="code:${acoList}">
|
||||||
|
<option th:value="${code.itemCd}" th:text="${code.itemValue}"></option>
|
||||||
|
</th:block>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="col-9">
|
||||||
|
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
|
||||||
|
<th:block th:if="${commonCode.itemCd eq officer.ogCd}" th:text="${commonCode.itemValue}"></th:block>
|
||||||
|
</th:block>
|
||||||
|
<th:block th:each="commonCode:${session.commonCode.get('OFC')}">
|
||||||
|
<th:block th:if="${commonCode.itemCd eq officer.ofcCd}" th:text="${commonCode.itemValue}"></th:block>
|
||||||
|
</th:block>
|
||||||
|
<th:block th:each="commonCode:${session.commonCode.get('JT')}">
|
||||||
|
<th:block th:if="${commonCode.itemCd eq officer.titleCd}" th:text="|${commonCode.itemValue} ${officer.userNm}|"></th:block>
|
||||||
|
</th:block>
|
||||||
|
<th:block th:text="${officer.userNm}"></th:block>
|
||||||
|
</div>
|
||||||
|
<div class="col-1">
|
||||||
|
<button type="button" class="btn btn-sm btn-outline-danger rowDeleteBtn"><i class="bi bi-x"></i></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</html>
|
||||||
|
|
@ -0,0 +1,59 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
|
||||||
|
<div class="col-sm-12 suspectDiv">
|
||||||
|
<div class="row mx-2 my-1">
|
||||||
|
<div class="col-12 mb-1">
|
||||||
|
<div class="row">
|
||||||
|
<label for="asdf" class="col-sm-1 col-form-label col-form-label-sm text-center">분류</label>
|
||||||
|
<div class="col-sm-2">
|
||||||
|
<input type="text" class="form-control form-control-sm" id="asdf">
|
||||||
|
</div>
|
||||||
|
<label for="asdf" class="col-sm-1 col-form-label col-form-label-sm text-center">성명</label>
|
||||||
|
<div class="col-sm-2">
|
||||||
|
<input type="text" class="form-control form-control-sm" id="asdf">
|
||||||
|
</div>
|
||||||
|
<label for="asdf" class="col-sm-1 col-form-label col-form-label-sm text-center">성별</label>
|
||||||
|
<div class="col-sm-2">
|
||||||
|
<input type="text" class="form-control form-control-sm" id="asdf">
|
||||||
|
</div>
|
||||||
|
<label for="asdf" class="col-sm-1 col-form-label col-form-label-sm text-center">생년월일</label>
|
||||||
|
<div class="col-sm-2">
|
||||||
|
<input type="text" class="form-control form-control-sm" id="asdf">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-12 mb-1">
|
||||||
|
<div class="row">
|
||||||
|
<label for="asdf" class="col-sm-1 col-form-label col-form-label-sm text-center">핸드폰</label>
|
||||||
|
<div class="col-sm-2">
|
||||||
|
<input type="text" class="form-control form-control-sm" id="asdf">
|
||||||
|
</div>
|
||||||
|
<label for="asdf" class="col-sm-1 col-form-label col-form-label-sm text-center">주소</label>
|
||||||
|
<div class="col-sm-2">
|
||||||
|
<input type="text" class="form-control form-control-sm" id="asdf">
|
||||||
|
</div>
|
||||||
|
<label for="asdf" class="col-sm-1 col-form-label col-form-label-sm text-center">직업</label>
|
||||||
|
<div class="col-sm-2">
|
||||||
|
<input type="text" class="form-control form-control-sm" id="asdf">
|
||||||
|
</div>
|
||||||
|
<label for="asdf" class="col-sm-1 col-form-label col-form-label-sm text-center">등록기준지</label>
|
||||||
|
<div class="col-sm-2">
|
||||||
|
<input type="text" class="form-control form-control-sm" id="asdf">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-12 mb-1">
|
||||||
|
<div class="row">
|
||||||
|
<label for="asdf" class="col-sm-1 col-form-label col-form-label-sm text-center">비고</label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<input type="text" class="form-control form-control-sm" id="asdf">
|
||||||
|
</div>
|
||||||
|
<div class="col-1">
|
||||||
|
<button type="button" class="btn btn-sm btn-outline-danger rowDeleteBtn"><i class="bi bi-x"></i></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr class="my-1 mx-2">
|
||||||
|
</div>
|
||||||
|
</html>
|
||||||
|
|
@ -62,26 +62,10 @@
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-2">
|
<div class="col-2">
|
||||||
<select class="form-select form-select-sm" name="arrestType1">
|
<input type="text" class="form-control form-control-sm" placeholder="제목" name="title" th:value="${searchParams.title}">
|
||||||
<option value="">검거유형1</option>
|
|
||||||
<th:block th:each="code:${session.commonCode.get('AT')}">
|
|
||||||
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq searchParams.arrestType1}"></option>
|
|
||||||
</th:block>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
<div class="col-2">
|
|
||||||
<select class="form-select form-select-sm" name="arrestType2">
|
|
||||||
<option value="">검거유형2</option>
|
|
||||||
<th:block th:each="code:${session.commonCode.get(arrestType1)}">
|
|
||||||
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq searchParams.arrestType2}"></option>
|
|
||||||
</th:block>
|
|
||||||
</select>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row justify-content-end">
|
<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">
|
<div class="col-2">
|
||||||
<input type="text" class="form-control form-control-sm" placeholder="해시태그" name="hashTags" th:value="${searchParams.hashTags}">
|
<input type="text" class="form-control form-control-sm" placeholder="해시태그" name="hashTags" th:value="${searchParams.hashTags}">
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -116,8 +100,6 @@
|
||||||
<thead>
|
<thead>
|
||||||
<tr class="table-secondary">
|
<tr class="table-secondary">
|
||||||
<th>등급</th>
|
<th>등급</th>
|
||||||
<th>검거유형1</th>
|
|
||||||
<th>검거유형2</th>
|
|
||||||
<th>공작명</th>
|
<th>공작명</th>
|
||||||
<th>착수일<br>/종결일</th>
|
<th>착수일<br>/종결일</th>
|
||||||
<th>관서</th>
|
<th>관서</th>
|
||||||
|
|
@ -136,16 +118,6 @@
|
||||||
<th:block th:if="${code.itemCd eq ciWork.workRating}" th:text="${code.itemValue}"></th:block>
|
<th:block th:if="${code.itemCd eq ciWork.workRating}" th:text="${code.itemValue}"></th:block>
|
||||||
</th:block>
|
</th:block>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
|
||||||
<th:block th:each="code:${session.commonCode.get('AT')}">
|
|
||||||
<th:block th:if="${code.itemCd eq ciWork.arrestType1}" th:text="${code.itemValue}"></th:block>
|
|
||||||
</th:block>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<th:block th:each="code:${session.commonCode.get(ciWork.arrestType1)}">
|
|
||||||
<th:block th:if="${code.itemCd eq ciWork.arrestType2}" th:text="${code.itemValue}"></th:block>
|
|
||||||
</th:block>
|
|
||||||
</td>
|
|
||||||
<td>
|
<td>
|
||||||
<th:block th:if="${ciWork.status eq 'DST002'}">[임시]</th:block>
|
<th:block th:if="${ciWork.status eq 'DST002'}">[임시]</th:block>
|
||||||
<th:block th:text="${ciWork.title}"></th:block>
|
<th:block th:text="${ciWork.title}"></th:block>
|
||||||
|
|
|
||||||
|
|
@ -45,18 +45,14 @@
|
||||||
<div class="col-sm-2">
|
<div class="col-sm-2">
|
||||||
<input type="text" class="form-control form-control-sm dateSelector" id="workStartDate" name="workStartDate" th:value="${#temporals.format(ciWork.workStartDate, 'yyyy-MM-dd')}" readonly>
|
<input type="text" class="form-control form-control-sm dateSelector" id="workStartDate" name="workStartDate" th:value="${#temporals.format(ciWork.workStartDate, 'yyyy-MM-dd')}" readonly>
|
||||||
</div>
|
</div>
|
||||||
<label for="workEndDate" class="col-sm-1 col-form-label col-form-label-sm text-center">종결일(예정)</label>
|
<label for="workPlanDate" class="col-sm-1 col-form-label col-form-label-sm text-center">예정일</label>
|
||||||
|
<div class="col-sm-2">
|
||||||
|
<input type="text" class="form-control form-control-sm dateSelector" id="workPlanDate" name="workPlanDate" th:value="${#temporals.format(ciWork.workPlanDate, 'yyyy-MM-dd')}" readonly>
|
||||||
|
</div>
|
||||||
|
<label for="workEndDate" class="col-sm-1 col-form-label col-form-label-sm text-center">종결일</label>
|
||||||
<div class="col-sm-2">
|
<div class="col-sm-2">
|
||||||
<input type="text" class="form-control form-control-sm dateSelector" id="workEndDate" name="workEndDate" th:value="${#temporals.format(ciWork.workEndDate, 'yyyy-MM-dd')}" readonly>
|
<input type="text" class="form-control form-control-sm dateSelector" id="workEndDate" name="workEndDate" th:value="${#temporals.format(ciWork.workEndDate, 'yyyy-MM-dd')}" readonly>
|
||||||
</div>
|
</div>
|
||||||
<label for="reRatingDate1" class="col-sm-1 col-form-label col-form-label-sm text-center">1차재평가</label>
|
|
||||||
<div class="col-sm-2">
|
|
||||||
<input type="text" class="form-control form-control-sm dateSelector" id="reRatingDate1" name="reRatingDate1" th:value="${#temporals.format(ciWork.reRatingDate1, 'yyyy-MM-dd')}" readonly>
|
|
||||||
</div>
|
|
||||||
<label for="reRatingDate2" class="col-sm-1 col-form-label col-form-label-sm text-center">2차재평가</label>
|
|
||||||
<div class="col-sm-2">
|
|
||||||
<input type="text" class="form-control form-control-sm dateSelector" id="reRatingDate2" name="reRatingDate2" th:value="${#temporals.format(ciWork.reRatingDate2, 'yyyy-MM-dd')}" readonly>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="row mb-1">
|
<div class="row mb-1">
|
||||||
<label for="workRating" class="col-sm-1 col-form-label col-form-label-sm text-center">등급</label>
|
<label for="workRating" class="col-sm-1 col-form-label col-form-label-sm text-center">등급</label>
|
||||||
|
|
@ -68,23 +64,13 @@
|
||||||
</th:block>
|
</th:block>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<label for="arrestType1" class="col-sm-1 col-form-label col-form-label-sm text-center">검거유형1</label>
|
<label for="reRatingDate1" class="col-sm-1 col-form-label col-form-label-sm text-center">1차재평가</label>
|
||||||
<div class="col-sm-2">
|
<div class="col-sm-2">
|
||||||
<select class="form-select form-select-sm" id="arrestType1" name="arrestType1">
|
<input type="text" class="form-control form-control-sm dateSelector" id="reRatingDate1" name="reRatingDate1" th:value="${#temporals.format(ciWork.reRatingDate1, 'yyyy-MM-dd')}" readonly>
|
||||||
<option value="">선택해주세요.</option>
|
|
||||||
<th:block th:each="code:${atCodeList}">
|
|
||||||
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq ciWork.arrestType1}"></option>
|
|
||||||
</th:block>
|
|
||||||
</select>
|
|
||||||
</div>
|
</div>
|
||||||
<label for="arrestType2" class="col-sm-1 col-form-label col-form-label-sm text-center">검거유형2</label>
|
<label for="reRatingDate2" class="col-sm-1 col-form-label col-form-label-sm text-center">2차재평가</label>
|
||||||
<div class="col-sm-2">
|
<div class="col-sm-2">
|
||||||
<select class="form-select form-select-sm" id="arrestType2" name="arrestType2">
|
<input type="text" class="form-control form-control-sm dateSelector" id="reRatingDate2" name="reRatingDate2" th:value="${#temporals.format(ciWork.reRatingDate2, 'yyyy-MM-dd')}" readonly>
|
||||||
<option value="">선택해주세요.</option>
|
|
||||||
<th:block th:each="code:${at2CodeList}">
|
|
||||||
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq ciWork.arrestType2}"></option>
|
|
||||||
</th:block>
|
|
||||||
</select>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row mb-1 justify-content-center">
|
<div class="row mb-1 justify-content-center">
|
||||||
|
|
|
||||||
|
|
@ -29,12 +29,10 @@
|
||||||
<div class="row mb-1">
|
<div class="row mb-1">
|
||||||
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">착수일</label>
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">착수일</label>
|
||||||
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${#temporals.format(ciWork.workStartDate, 'yyyy-MM-dd')}"></label>
|
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${#temporals.format(ciWork.workStartDate, 'yyyy-MM-dd')}"></label>
|
||||||
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">종결일(예정)</label>
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">예정일</label>
|
||||||
|
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${#temporals.format(ciWork.workPlanDate, 'yyyy-MM-dd')}"></label>
|
||||||
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">종결일</label>
|
||||||
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${#temporals.format(ciWork.workEndDate, 'yyyy-MM-dd')}"></label>
|
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${#temporals.format(ciWork.workEndDate, 'yyyy-MM-dd')}"></label>
|
||||||
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">1차재평가</label>
|
|
||||||
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${#temporals.format(ciWork.reRatingDate1, 'yyyy-MM-dd')}"></label>
|
|
||||||
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">2차재평가</label>
|
|
||||||
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${#temporals.format(ciWork.reRatingDate2, 'yyyy-MM-dd')}"></label>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="row mb-1">
|
<div class="row mb-1">
|
||||||
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">등급</label>
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">등급</label>
|
||||||
|
|
@ -43,18 +41,10 @@
|
||||||
<th:block th:if="${code.itemCd eq ciWork.workRating}" th:text="${code.itemValue}"></th:block>
|
<th:block th:if="${code.itemCd eq ciWork.workRating}" th:text="${code.itemValue}"></th:block>
|
||||||
</th:block>
|
</th:block>
|
||||||
</label>
|
</label>
|
||||||
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">검거유형1</label>
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">1차재평가</label>
|
||||||
<label class="col-sm-2 col-form-label col-form-label-sm text-start">
|
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${#temporals.format(ciWork.reRatingDate1, 'yyyy-MM-dd')}"></label>
|
||||||
<th:block th:each="code:${session.commonCode.get('AT')}">
|
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">2차재평가</label>
|
||||||
<th:block th:if="${code.itemCd eq ciWork.arrestType1}" th:text="${code.itemValue}"></th:block>
|
<label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${#temporals.format(ciWork.reRatingDate2, 'yyyy-MM-dd')}"></label>
|
||||||
</th:block>
|
|
||||||
</label>
|
|
||||||
<label class="col-sm-1 col-form-label col-form-label-sm text-center fw-bold">검거유형2</label>
|
|
||||||
<label class="col-sm-2 col-form-label col-form-label-sm text-start">
|
|
||||||
<th:block th:each="code:${session.commonCode.get(ciWork.arrestType1)}">
|
|
||||||
<th:block th:if="${code.itemCd eq ciWork.arrestType2}" th:text="${code.itemValue}"></th:block>
|
|
||||||
</th:block>
|
|
||||||
</label>
|
|
||||||
</div>
|
</div>
|
||||||
<hr class="my-1">
|
<hr class="my-1">
|
||||||
<div class="row mb-1">
|
<div class="row mb-1">
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue