대상 구분 컬럼 삭제

main
박성영 2 weeks ago
parent 6521e3e09b
commit b157c28e1e

@ -0,0 +1,35 @@
create table tb_car_ffnlg_trgt_incmp
(
CAR_FFNLG_TRGT_INCMP_ID varchar(20) not null comment '자동차 과태료 대상 미필 ID'
primary key,
RCPT_YMD varchar(8) null comment '접수 일자',
PRGRM_ID varchar(10) null comment '프로그램 ID',
PRCS_YMD varchar(100) null comment '처리 일자',
OTPT_DT varchar(100) null comment '출력 일시',
NO decimal null comment '번호',
VHCLNO varchar(30) null comment '차량번호',
OWNR_NM varchar(75) null comment '소유자 명',
RRNO varchar(100) null comment '주민등록번호',
CAR_NM varchar(100) null comment '자동차 명',
USE_STRHLD_ADDR varchar(600) null comment '사용 본거지 주소',
INSP_VLD_PRD varchar(30) null comment '검사 유효 기간',
TASK_PRCS_STTS_CD varchar(2) null comment '업무 처리 상태 코드',
TASK_PRCS_YMD varchar(8) null comment '업무 처리 일자',
RMRK varchar(4000) null comment '비고',
CAR_BASS_MATTER_INQIRE_ID varchar(20) null comment '자동차 기본 사항 조회 ID',
CAR_LEDGER_FRMBK_ID varchar(20) null comment '자동차 등록 원부 갑 ID',
CAR_BSC_MTTR_INQ_FLNM varchar(75) null comment '자동차 기본 사항 조회 성명',
CAR_BSC_MTTR_INQ_SGG_CD varchar(5) null comment '자동차 기본 사항 조회 시군구 코드',
CAR_BSC_MTTR_INQ_SGG_NM varchar(75) null comment '자동차 기본 사항 조회 시군구 명',
CAR_REG_FRMBK_CHG_TASK_SE_CD varchar(2) null comment '자동차 등록 원부갑 변경 업무 구분 코드',
CAR_REG_FRMBK_CHG_TASK_SE_NM varchar(75) null comment '자동차 등록 원부갑 변경 업무 구분 명',
CAR_REG_FRMBK_CHG_YMD varchar(8) null comment '자동차 등록 원부갑 변경 일자',
CAR_REG_FRMBK_DTL varchar(2000) null comment '자동차 등록 원부갑 상세',
REG_DT datetime null comment '등록 일시',
RGTR varchar(11) null comment '등록자',
DEL_YN char not null comment '삭제 여부',
DEL_DT datetime null comment '삭제 일시',
DLTR varchar(11) null comment '삭제자'
)
comment '자동차 과태료 대상 미필';

@ -36,28 +36,28 @@ import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
* Controller * Controller
* , TXT * , TXT
*/ */
@Controller @Controller
@RequestMapping("/carInspectionPenalty/registration") @RequestMapping("/carInspectionPenalty/registration")
@RequiredArgsConstructor @RequiredArgsConstructor
@Slf4j @Slf4j
@Tag(name = "자동차 과태료 대상 등록", description = "자동차 과태료 대상 등록 및 목록 조회 API") @Tag(name = "자동차 지연 과태료 대상 등록", description = "자동차 지연 과태료 대상 등록 및 목록 조회 API")
public class CarFfnlgTrgtController { public class CarFfnlgTrgtController {
private final CarFfnlgTrgtService service; private final CarFfnlgTrgtService service;
private final CommonCodeService commonCodeService; private final CommonCodeService commonCodeService;
/** /**
* *
* @param model * @param model
* @return * @return
*/ */
@GetMapping("/list.do") @GetMapping("/list.do")
@Operation(summary = "과태료 대상 목록 화면", description = "과태료 대상 목록 조회 화면을 제공합니다.") @Operation(summary = "지연 과태료 대상 목록 화면", description = "지연 과태료 대상 목록 조회 화면을 제공합니다.")
public String list(Model model) { public String list(Model model) {
log.debug("과태료 대상 목록 화면 요청"); log.debug("지연 과태료 대상 목록 화면 요청");
// 업무 처리 상태 코드 조회 (공통코드) // 업무 처리 상태 코드 조회 (공통코드)
CmmnCodeSearchVO taskPrcsSttsCdSearchVO = CmmnCodeSearchVO.builder() CmmnCodeSearchVO taskPrcsSttsCdSearchVO = CmmnCodeSearchVO.builder()
@ -68,7 +68,7 @@ public class CarFfnlgTrgtController {
.build(); .build();
model.addAttribute("taskPrcsSttsCdList", commonCodeService.selectCodeDetailList(taskPrcsSttsCdSearchVO)); model.addAttribute("taskPrcsSttsCdList", commonCodeService.selectCodeDetailList(taskPrcsSttsCdSearchVO));
// 과태료 대상 구분 코드 조회 (공통코드) // 지연 과태료 대상 구분 코드 조회 (공통코드)
CmmnCodeSearchVO ffnlgTrgtSeCdSearchVO = CmmnCodeSearchVO.builder() CmmnCodeSearchVO ffnlgTrgtSeCdSearchVO = CmmnCodeSearchVO.builder()
.searchCdGroupId("FFNLG_TRGT_SE_CD") .searchCdGroupId("FFNLG_TRGT_SE_CD")
.searchUseYn("Y") .searchUseYn("Y")
@ -81,14 +81,14 @@ public class CarFfnlgTrgtController {
} }
/** /**
* AJAX * AJAX
* @param paramVO * @param paramVO
* @return * @return
*/ */
@PostMapping("/list.ajax") @PostMapping("/list.ajax")
@Operation(summary = "과태료 대상 목록 조회", description = "과태료 대상 목록을 조회하고 JSON 형식으로 반환합니다.") @Operation(summary = "지연 과태료 대상 목록 조회", description = "지연 과태료 대상 목록을 조회하고 JSON 형식으로 반환합니다.")
public ResponseEntity<?> listAjax(@ModelAttribute CarFfnlgTrgtVO paramVO) { public ResponseEntity<?> listAjax(@ModelAttribute CarFfnlgTrgtVO paramVO) {
log.debug("과태료 대상 목록 조회 AJAX - 검색조건: {}", paramVO); log.debug("지연 과태료 대상 목록 조회 AJAX - 검색조건: {}", paramVO);
// 1. 총 개수 조회 // 1. 총 개수 조회
int totalCount = service.selectListTotalCount(paramVO); int totalCount = service.selectListTotalCount(paramVO);
@ -106,13 +106,13 @@ public class CarFfnlgTrgtController {
} }
/** /**
* (EUC-KR ) * (EUC-KR )
* . * .
* - : EUC-KR ( 2) * - : EUC-KR ( 2)
* - // docs/-EUC-KR.txt * - // docs/-EUC-KR.txt
*/ */
@GetMapping("/download.do") @GetMapping("/download.do")
@Operation(summary = "과태료 대상 목록 다운로드", description = "EUC-KR 인코딩의 고정폭 텍스트로 목록을 샘플과 동일한 포맷으로 다운로드합니다.") @Operation(summary = "지연 과태료 대상 목록 다운로드", description = "EUC-KR 인코딩의 고정폭 텍스트로 목록을 샘플과 동일한 포맷으로 다운로드합니다.")
public void download( public void download(
@ModelAttribute CarFfnlgTrgtVO paramVO, @ModelAttribute CarFfnlgTrgtVO paramVO,
HttpServletResponse response HttpServletResponse response
@ -227,16 +227,16 @@ public class CarFfnlgTrgtController {
} }
/** /**
* *
* @param carFfnlgTrgtId ID * @param carFfnlgTrgtId ID
* @return * @return
*/ */
@GetMapping("/selectOne.ajax") @GetMapping("/selectOne.ajax")
@Operation(summary = "과태료 대상 상세 조회", description = "과태료 대상 상세 정보를 조회합니다.") @Operation(summary = "지연 과태료 대상 상세 조회", description = "지연 과태료 대상 상세 정보를 조회합니다.")
public ResponseEntity<?> selectOne( public ResponseEntity<?> selectOne(
@Parameter(description = "과태료 대상 ID") @RequestParam String carFfnlgTrgtId) { @Parameter(description = "지연 과태료 대상 ID") @RequestParam String carFfnlgTrgtId) {
log.debug("과태료 대상 상세 조회 - ID: {}", carFfnlgTrgtId); log.debug("지연 과태료 대상 상세 조회 - ID: {}", carFfnlgTrgtId);
try { try {
CarFfnlgTrgtVO vo = new CarFfnlgTrgtVO(); CarFfnlgTrgtVO vo = new CarFfnlgTrgtVO();
@ -251,22 +251,22 @@ public class CarFfnlgTrgtController {
} }
} catch (Exception e) { } catch (Exception e) {
log.error("과태료 대상 상세 조회 중 오류 발생", e); log.error("지연 과태료 대상 상세 조회 중 오류 발생", e);
return ApiResponseUtil.error("조회 중 오류가 발생했습니다: " + e.getMessage()); return ApiResponseUtil.error("조회 중 오류가 발생했습니다: " + e.getMessage());
} }
} }
/** /**
* () * ()
* @param carFfnlgTrgtId ID * @param carFfnlgTrgtId ID
* @return * @return
*/ */
@PostMapping("/delete.ajax") @PostMapping("/delete.ajax")
@Operation(summary = "과태료 대상 삭제", description = "과태료 대상을 삭제(논리삭제)합니다.") @Operation(summary = "지연 과태료 대상 삭제", description = "지연 과태료 대상을 삭제(논리삭제)합니다.")
public ResponseEntity<?> delete( public ResponseEntity<?> delete(
@Parameter(description = "과태료 대상 ID") @RequestParam String carFfnlgTrgtId) { @Parameter(description = "지연 과태료 대상 ID") @RequestParam String carFfnlgTrgtId) {
log.info("과태료 대상 삭제 요청 - ID: {}", carFfnlgTrgtId); log.info("지연 과태료 대상 삭제 요청 - ID: {}", carFfnlgTrgtId);
try { try {
String dltr = SessionUtil.getUserId(); String dltr = SessionUtil.getUserId();
@ -287,14 +287,14 @@ public class CarFfnlgTrgtController {
} }
} catch (Exception e) { } catch (Exception e) {
log.error("과태료 대상 삭제 중 오류 발생", e); log.error("지연 과태료 대상 삭제 중 오류 발생", e);
return ApiResponseUtil.error("삭제 중 오류가 발생했습니다: " + e.getMessage()); return ApiResponseUtil.error("삭제 중 오류가 발생했습니다: " + e.getMessage());
} }
} }
/** /**
* API / * API /
* @param targetList * @param targetList
* @return * @return
*/ */
@PostMapping("/compareWithApi.ajax") @PostMapping("/compareWithApi.ajax")
@ -369,13 +369,13 @@ public class CarFfnlgTrgtController {
} }
/** /**
* *
* @param deleteIds ID * @param deleteIds ID
* @return * @return
*/ */
@PostMapping("/deleteBatch.ajax") @PostMapping("/deleteBatch.ajax")
@ResponseBody @ResponseBody
@Operation(summary = "과태료 대상 일괄 삭제", description = "선택된 과태료 대상 목록을 일괄 삭제합니다.") @Operation(summary = "지연 과태료 대상 일괄 삭제", description = "선택된 지연 과태료 대상 목록을 일괄 삭제합니다.")
public ResponseEntity<?> deleteBatch(@RequestBody List<String> deleteIds) { public ResponseEntity<?> deleteBatch(@RequestBody List<String> deleteIds) {
log.info("일괄 삭제 요청 - 선택된 데이터 건수: {}", deleteIds != null ? deleteIds.size() : 0); log.info("일괄 삭제 요청 - 선택된 데이터 건수: {}", deleteIds != null ? deleteIds.size() : 0);
@ -419,7 +419,7 @@ public class CarFfnlgTrgtController {
} }
/** /**
* AJAX * AJAX
* , , . * , , .
* *
* @param modifyData // VO * @param modifyData // VO
@ -427,9 +427,9 @@ public class CarFfnlgTrgtController {
*/ */
@PostMapping("/saveAll.ajax") @PostMapping("/saveAll.ajax")
@ResponseBody @ResponseBody
@Operation(summary = "과태료 대상 정보 일괄 저장", description = "생성, 수정, 삭제된 과태료 대상 데이터를 일괄 처리합니다.") @Operation(summary = "지연 과태료 대상 정보 일괄 저장", description = "생성, 수정, 삭제된 지연 과태료 대상 데이터를 일괄 처리합니다.")
public ResponseEntity<?> saveAllAjax(@RequestBody CarFfnlgTrgtModifiedDataVO modifyData) { public ResponseEntity<?> saveAllAjax(@RequestBody CarFfnlgTrgtModifiedDataVO modifyData) {
log.info("과태료 대상 일괄 저장 요청 - 수정: {}건, 생성: {}건, 삭제: {}건", log.info("지연 과태료 대상 일괄 저장 요청 - 수정: {}건, 생성: {}건, 삭제: {}건",
modifyData.getUpdatedRows() != null ? modifyData.getUpdatedRows().size() : 0, modifyData.getUpdatedRows() != null ? modifyData.getUpdatedRows().size() : 0,
modifyData.getCreatedRows() != null ? modifyData.getCreatedRows().size() : 0, modifyData.getCreatedRows() != null ? modifyData.getCreatedRows().size() : 0,
modifyData.getDeletedRows() != null ? modifyData.getDeletedRows().size() : 0); modifyData.getDeletedRows() != null ? modifyData.getDeletedRows().size() : 0);
@ -437,12 +437,12 @@ public class CarFfnlgTrgtController {
try { try {
int result = service.saveCarFfnlgTrgts(modifyData); int result = service.saveCarFfnlgTrgts(modifyData);
if (result > 0) { if (result > 0) {
return ApiResponseUtil.success("과태료 대상 정보가 저장되었습니다."); return ApiResponseUtil.success("지연 과태료 대상 정보가 저장되었습니다.");
} else { } else {
return ApiResponseUtil.error("저장할 데이터가 없습니다."); return ApiResponseUtil.error("저장할 데이터가 없습니다.");
} }
} catch (Exception e) { } catch (Exception e) {
log.error("과태료 대상 일괄 저장 중 오류 발생", e); log.error("지연 과태료 대상 일괄 저장 중 오류 발생", e);
return ApiResponseUtil.error("저장 중 오류가 발생했습니다: " + e.getMessage()); return ApiResponseUtil.error("저장 중 오류가 발생했습니다: " + e.getMessage());
} }
} }
@ -534,32 +534,32 @@ public class CarFfnlgTrgtController {
} }
/** /**
* *
* *
* @param paramVO VO * @param paramVO VO
* @param request HTTP * @param request HTTP
* @param response HTTP * @param response HTTP
*/ */
@PostMapping("/excel.do") @PostMapping("/excel.do")
@Operation(summary = "과태료 대상 목록 엑셀 다운로드", description = "과태료 대상 목록을 엑셀 파일로 다운로드합니다.") @Operation(summary = "지연 과태료 대상 목록 엑셀 다운로드", description = "지연 과태료 대상 목록을 엑셀 파일로 다운로드합니다.")
public void downloadExcel( public void downloadExcel(
@ModelAttribute CarFfnlgTrgtVO paramVO, @ModelAttribute CarFfnlgTrgtVO paramVO,
HttpServletRequest request, HttpServletRequest request,
HttpServletResponse response) { HttpServletResponse response) {
try { try {
log.debug("과태료 대상 목록 엑셀 다운로드 요청"); log.debug("지연 과태료 대상 목록 엑셀 다운로드 요청");
// 페이징 처리 없이 전체 데이터 조회 // 페이징 처리 없이 전체 데이터 조회
paramVO.setPagingYn("N"); paramVO.setPagingYn("N");
// 과태료 대상 목록 조회 // 지연 과태료 대상 목록 조회
List<CarFfnlgTrgtExcelVO> excelList = service.selectListForExcel(paramVO); List<CarFfnlgTrgtExcelVO> excelList = service.selectListForExcel(paramVO);
// 엑셀 파일 생성 및 다운로드 // 엑셀 파일 생성 및 다운로드
String filename = "과태료대상목록_" + java.time.LocalDateTime.now().format(java.time.format.DateTimeFormatter.ofPattern("yyyyMMddHHmmss")) + ".xlsx"; String filename = "과태료대상목록_" + java.time.LocalDateTime.now().format(java.time.format.DateTimeFormatter.ofPattern("yyyyMMddHHmmss")) + ".xlsx";
new SxssfExcelFile(ExcelSheetData.of(excelList, CarFfnlgTrgtExcelVO.class, "과태료 대상 목록 " + excelList.size() + "건"), request, response, filename); new SxssfExcelFile(ExcelSheetData.of(excelList, CarFfnlgTrgtExcelVO.class, "지연 과태료 대상 목록 " + excelList.size() + "건"), request, response, filename);
log.debug("과태료 대상 목록 엑셀 다운로드 완료 - 파일명: {}, 건수: {}", filename, excelList.size()); log.debug("지연 과태료 대상 목록 엑셀 다운로드 완료 - 파일명: {}, 건수: {}", filename, excelList.size());
} catch (Exception e) { } catch (Exception e) {
log.error("엑셀 다운로드 중 오류 발생", e); log.error("엑셀 다운로드 중 오류 발생", e);
} }

@ -18,10 +18,6 @@ import lombok.*;
@ExcelSheet(name = "과태료대상목록") @ExcelSheet(name = "과태료대상목록")
public class CarFfnlgTrgtExcelVO { public class CarFfnlgTrgtExcelVO {
/** 대상구분 */
@ExcelColumn(headerName = "대상구분", headerWidth = 15, align = ExcelColumn.Align.CENTER)
private String ffnlgTrgtSeCdNm;
/** 접수일자 */ /** 접수일자 */
@ExcelColumn(headerName = "접수일자", headerWidth = 15, align = ExcelColumn.Align.CENTER) @ExcelColumn(headerName = "접수일자", headerWidth = 15, align = ExcelColumn.Align.CENTER)
private String rcptYmd; private String rcptYmd;

@ -65,7 +65,6 @@ public class CarFfnlgTrgtVO extends PagingVO {
private String dltr; // 삭제자 private String dltr; // 삭제자
// 조회용 필드 // 조회용 필드
private String ffnlgTrgtSeCdNm; // 대상구분 코드명
private String taskPrcsSttsCdNm; // 업무 처리 상태 코드명 private String taskPrcsSttsCdNm; // 업무 처리 상태 코드명
private String rgtrNm; // 등록자명 private String rgtrNm; // 등록자명

@ -192,8 +192,6 @@ public class CarFfnlgTrgtServiceImpl extends EgovAbstractServiceImpl implements
} }
// 업무 처리 상태 및 등록자 설정 // 업무 처리 상태 및 등록자 설정
// TODO : txt upload 시 1 지연 코드 하드코딩
vo.setFfnlgTrgtSeCd("1"); // 지연
vo.setTaskPrcsSttsCd(TaskPrcsSttsConstants.TASK_PRCS_STTS_CD_01_RCPT); // 01=접수 vo.setTaskPrcsSttsCd(TaskPrcsSttsConstants.TASK_PRCS_STTS_CD_01_RCPT); // 01=접수
vo.setTaskPrcsYmd(LocalDate.now().format(DATE_FORMATTER)); vo.setTaskPrcsYmd(LocalDate.now().format(DATE_FORMATTER));
vo.setRcptYmd(LocalDate.now().format(DATE_FORMATTER)); // 접수일자는 현재 날짜 vo.setRcptYmd(LocalDate.now().format(DATE_FORMATTER)); // 접수일자는 현재 날짜

@ -96,7 +96,7 @@ interceptor:
# - application-dev.yml: 개발 환경 # - application-dev.yml: 개발 환경
# - application-prd.yml: 운영 환경 # - application-prd.yml: 운영 환경
# ===== 자동차 과태료 TXT 파일 파싱 설정 ===== # ===== 자동차 과태료 TXT, PRN 파일 파싱 설정 =====
# hangul-byte-size에 따라 자동으로 적절한 바이트 길이 설정을 선택합니다. # hangul-byte-size에 따라 자동으로 적절한 바이트 길이 설정을 선택합니다.
# - hangul-byte-size: 2 → byte-size-2 설정 사용 (EUC-KR, MS949) # - hangul-byte-size: 2 → byte-size-2 설정 사용 (EUC-KR, MS949)
# - hangul-byte-size: 3 → byte-size-3 설정 사용 (UTF-8) # - hangul-byte-size: 3 → byte-size-3 설정 사용 (UTF-8)

@ -18,9 +18,6 @@
<if test='schOwnrNm != null and schOwnrNm != ""'> <if test='schOwnrNm != null and schOwnrNm != ""'>
AND t.OWNR_NM LIKE CONCAT('%', #{schOwnrNm}, '%') AND t.OWNR_NM LIKE CONCAT('%', #{schOwnrNm}, '%')
</if> </if>
<if test='schFfnlgTrgtSeCd != null and schFfnlgTrgtSeCd != ""'>
AND t.FFNLG_TRGT_SE_CD = #{schFfnlgTrgtSeCd}
</if>
<if test='schTaskPrcsSttsCd != null and schTaskPrcsSttsCd.size() > 0'> <if test='schTaskPrcsSttsCd != null and schTaskPrcsSttsCd.size() > 0'>
AND t.TASK_PRCS_STTS_CD IN AND t.TASK_PRCS_STTS_CD IN
<foreach collection="schTaskPrcsSttsCd" item="item" open="(" separator="," close=")"> <foreach collection="schTaskPrcsSttsCd" item="item" open="(" separator="," close=")">
@ -46,12 +43,6 @@
WHERE CD_GROUP_ID = 'TASK_PRCS_STTS_CD' WHERE CD_GROUP_ID = 'TASK_PRCS_STTS_CD'
AND USE_YN = 'Y' AND USE_YN = 'Y'
) cd ON t.TASK_PRCS_STTS_CD = cd.CD_ID ) cd ON t.TASK_PRCS_STTS_CD = cd.CD_ID
LEFT JOIN (
SELECT CD_ID, CD_NM
FROM tb_cd_detail
WHERE CD_GROUP_ID = 'FFNLG_TRGT_SE_CD'
AND USE_YN = 'Y'
) cd2 ON t.FFNLG_TRGT_SE_CD = cd2.CD_ID
WHERE t.DEL_DT IS NULL WHERE t.DEL_DT IS NULL
<include refid="searchCondition"/> <include refid="searchCondition"/>
</select> </select>
@ -62,7 +53,6 @@
t.CAR_FFNLG_TRGT_ID AS carFfnlgTrgtId, t.CAR_FFNLG_TRGT_ID AS carFfnlgTrgtId,
t.RCPT_YMD AS rcptYmd, t.RCPT_YMD AS rcptYmd,
t.FFNLG_TRGT_SE_CD AS ffnlgTrgtSeCd, t.FFNLG_TRGT_SE_CD AS ffnlgTrgtSeCd,
cd2.CD_NM as ffnlgTrgtSeCdNm,
t.INSPSTN_CD AS inspstnCd, t.INSPSTN_CD AS inspstnCd,
t.INSP_YMD AS inspYmd, t.INSP_YMD AS inspYmd,
t.VHCLNO AS vhclno, t.VHCLNO AS vhclno,
@ -105,12 +95,6 @@
WHERE CD_GROUP_ID = 'TASK_PRCS_STTS_CD' WHERE CD_GROUP_ID = 'TASK_PRCS_STTS_CD'
AND USE_YN = 'Y' AND USE_YN = 'Y'
) cd ON t.TASK_PRCS_STTS_CD = cd.CD_ID ) cd ON t.TASK_PRCS_STTS_CD = cd.CD_ID
LEFT JOIN (
SELECT CD_ID, CD_NM
FROM tb_cd_detail
WHERE CD_GROUP_ID = 'FFNLG_TRGT_SE_CD'
AND USE_YN = 'Y'
) cd2 ON t.FFNLG_TRGT_SE_CD = cd2.CD_ID
WHERE t.DEL_DT IS NULL WHERE t.DEL_DT IS NULL
<include refid="searchCondition"/> <include refid="searchCondition"/>
ORDER BY t.CAR_FFNLG_TRGT_ID ASC ORDER BY t.CAR_FFNLG_TRGT_ID ASC
@ -125,7 +109,6 @@
t.CAR_FFNLG_TRGT_ID AS carFfnlgTrgtId, t.CAR_FFNLG_TRGT_ID AS carFfnlgTrgtId,
t.RCPT_YMD AS rcptYmd, t.RCPT_YMD AS rcptYmd,
t.FFNLG_TRGT_SE_CD AS ffnlgTrgtSeCd, t.FFNLG_TRGT_SE_CD AS ffnlgTrgtSeCd,
cd2.CD_NM as ffnlgTrgtSeCdNm,
t.INSPSTN_CD AS inspstnCd, t.INSPSTN_CD AS inspstnCd,
t.INSP_YMD AS inspYmd, t.INSP_YMD AS inspYmd,
t.VHCLNO AS vhclno, t.VHCLNO AS vhclno,
@ -168,12 +151,6 @@
WHERE CD_GROUP_ID = 'TASK_PRCS_STTS_CD' WHERE CD_GROUP_ID = 'TASK_PRCS_STTS_CD'
AND USE_YN = 'Y' AND USE_YN = 'Y'
) cd ON t.TASK_PRCS_STTS_CD = cd.CD_ID ) cd ON t.TASK_PRCS_STTS_CD = cd.CD_ID
LEFT JOIN (
SELECT CD_ID, CD_NM
FROM tb_cd_detail
WHERE CD_GROUP_ID = 'FFNLG_TRGT_SE_CD'
AND USE_YN = 'Y'
) cd2 ON t.FFNLG_TRGT_SE_CD = cd2.CD_ID
WHERE t.CAR_FFNLG_TRGT_ID = #{carFfnlgTrgtId} WHERE t.CAR_FFNLG_TRGT_ID = #{carFfnlgTrgtId}
AND t.DEL_DT IS NULL AND t.DEL_DT IS NULL
</select> </select>
@ -182,7 +159,6 @@
<!-- 과태료 대상 목록 엑셀 다운로드용 조회 --> <!-- 과태료 대상 목록 엑셀 다운로드용 조회 -->
<select id="selectListForExcel" parameterType="CarFfnlgTrgtVO" resultType="CarFfnlgTrgtExcelVO"> <select id="selectListForExcel" parameterType="CarFfnlgTrgtVO" resultType="CarFfnlgTrgtExcelVO">
SELECT SELECT
cd2.CD_NM as ffnlgTrgtSeCdNm,
DATE_FORMAT(STR_TO_DATE(t.RCPT_YMD, '%Y%m%d'), '%Y-%m-%d') AS rcptYmd, DATE_FORMAT(STR_TO_DATE(t.RCPT_YMD, '%Y%m%d'), '%Y-%m-%d') AS rcptYmd,
t.INSPSTN_CD AS inspstnCd, t.INSPSTN_CD AS inspstnCd,
DATE_FORMAT(STR_TO_DATE(t.INSP_YMD, '%Y%m%d'), '%Y-%m-%d') AS inspYmd, DATE_FORMAT(STR_TO_DATE(t.INSP_YMD, '%Y%m%d'), '%Y-%m-%d') AS inspYmd,
@ -217,12 +193,6 @@
WHERE CD_GROUP_ID = 'TASK_PRCS_STTS_CD' WHERE CD_GROUP_ID = 'TASK_PRCS_STTS_CD'
AND USE_YN = 'Y' AND USE_YN = 'Y'
) cd ON t.TASK_PRCS_STTS_CD = cd.CD_ID ) cd ON t.TASK_PRCS_STTS_CD = cd.CD_ID
LEFT JOIN (
SELECT CD_ID, CD_NM
FROM tb_cd_detail
WHERE CD_GROUP_ID = 'FFNLG_TRGT_SE_CD'
AND USE_YN = 'Y'
) cd2 ON t.FFNLG_TRGT_SE_CD = cd2.CD_ID
WHERE t.DEL_DT IS NULL WHERE t.DEL_DT IS NULL
<include refid="searchCondition"/> <include refid="searchCondition"/>
ORDER BY t.CAR_FFNLG_TRGT_ID ASC ORDER BY t.CAR_FFNLG_TRGT_ID ASC
@ -233,7 +203,6 @@
INSERT INTO tb_car_ffnlg_trgt ( INSERT INTO tb_car_ffnlg_trgt (
CAR_FFNLG_TRGT_ID, CAR_FFNLG_TRGT_ID,
RCPT_YMD, RCPT_YMD,
FFNLG_TRGT_SE_CD,
INSPSTN_CD, INSPSTN_CD,
INSP_YMD, INSP_YMD,
VHCLNO, VHCLNO,
@ -267,7 +236,6 @@
) VALUES ( ) VALUES (
CONCAT('CFT', LPAD(NEXTVAL(seq_car_ffnlg_trgt_id), 17, '0')), CONCAT('CFT', LPAD(NEXTVAL(seq_car_ffnlg_trgt_id), 17, '0')),
#{rcptYmd}, #{rcptYmd},
#{ffnlgTrgtSeCd},
#{inspstnCd}, #{inspstnCd},
#{inspYmd}, #{inspYmd},
#{vhclno}, #{vhclno},

@ -41,21 +41,6 @@
<li> <li>
<input type="text" id="schOwnrNm" name="schOwnrNm" class="input" style="width: 150px;" maxlength="75" autocomplete="off"/> <input type="text" id="schOwnrNm" name="schOwnrNm" class="input" style="width: 150px;" maxlength="75" autocomplete="off"/>
</li> </li>
</ul>
<ul class="rig2">
<li><button type="button" id="search_btn" class="newbtnss bg1">검색</button></li>
<li><button type="button" id="reset_btn" class="newbtnss bg5" style="margin-left: 5px;">초기화</button></li>
</ul>
<ul class="lef2">
<li class="th">대상구분</li>
<li>
<select id="schFfnlgTrgtSeCd" name="schFfnlgTrgtSeCd" class="input" style="width: 120px;">
<option value="">전체</option>
<c:forEach var="code" items="${ffnlgTrgtSeCdList}">
<option value="${code.cdId}">${code.cdNm}</option>
</c:forEach>
</select>
</li>
<li class="th">처리상태</li> <li class="th">처리상태</li>
<li> <li>
<c:forEach var="code" items="${taskPrcsSttsCdList}"> <c:forEach var="code" items="${taskPrcsSttsCdList}">
@ -66,7 +51,10 @@
</c:forEach> </c:forEach>
</li> </li>
</ul> </ul>
<ul class="rig2">
<li><button type="button" id="search_btn" class="newbtnss bg1">검색</button></li>
<li><button type="button" id="reset_btn" class="newbtnss bg5" style="margin-left: 5px;">초기화</button></li>
</ul>
</div> </div>
<div class="gs_booking"> <div class="gs_booking">
<div class="row"> <div class="row">
@ -140,7 +128,6 @@
var schInspYmdEnd = $.trim(nvl($("#schInspYmdEnd").val(), "")); var schInspYmdEnd = $.trim(nvl($("#schInspYmdEnd").val(), ""));
var schVhclno = $.trim(nvl($("#schVhclno").val(), "")); var schVhclno = $.trim(nvl($("#schVhclno").val(), ""));
var schOwnrNm = $.trim(nvl($("#schOwnrNm").val(), "")); var schOwnrNm = $.trim(nvl($("#schOwnrNm").val(), ""));
var schFfnlgTrgtSeCd = $.trim(nvl($("#schFfnlgTrgtSeCd").val(), ""));
// 체크박스에서 선택된 값들을 배열로 수집 // 체크박스에서 선택된 값들을 배열로 수집
var schTaskPrcsSttsCd = []; var schTaskPrcsSttsCd = [];
@ -154,7 +141,6 @@
SEARCH_COND.schInspYmdEnd = schInspYmdEnd.replace(/-/g, ''); SEARCH_COND.schInspYmdEnd = schInspYmdEnd.replace(/-/g, '');
SEARCH_COND.schVhclno = schVhclno; SEARCH_COND.schVhclno = schVhclno;
SEARCH_COND.schOwnrNm = schOwnrNm; SEARCH_COND.schOwnrNm = schOwnrNm;
SEARCH_COND.schFfnlgTrgtSeCd = schFfnlgTrgtSeCd;
SEARCH_COND.schTaskPrcsSttsCd = schTaskPrcsSttsCd; SEARCH_COND.schTaskPrcsSttsCd = schTaskPrcsSttsCd;
}; };
@ -169,7 +155,6 @@
if (SEARCH_COND.schInspYmdEnd) params.push('schInspYmdEnd=' + encodeURIComponent(SEARCH_COND.schInspYmdEnd)); if (SEARCH_COND.schInspYmdEnd) params.push('schInspYmdEnd=' + encodeURIComponent(SEARCH_COND.schInspYmdEnd));
if (SEARCH_COND.schVhclno) params.push('schVhclno=' + encodeURIComponent(SEARCH_COND.schVhclno)); if (SEARCH_COND.schVhclno) params.push('schVhclno=' + encodeURIComponent(SEARCH_COND.schVhclno));
if (SEARCH_COND.schOwnrNm) params.push('schOwnrNm=' + encodeURIComponent(SEARCH_COND.schOwnrNm)); if (SEARCH_COND.schOwnrNm) params.push('schOwnrNm=' + encodeURIComponent(SEARCH_COND.schOwnrNm));
if (SEARCH_COND.schFfnlgTrgtSeCd) params.push('schFfnlgTrgtSeCd=' + encodeURIComponent(SEARCH_COND.schFfnlgTrgtSeCd));
// 배열로 전달 // 배열로 전달
if (SEARCH_COND.schTaskPrcsSttsCd && SEARCH_COND.schTaskPrcsSttsCd.length > 0) { if (SEARCH_COND.schTaskPrcsSttsCd && SEARCH_COND.schTaskPrcsSttsCd.length > 0) {
SEARCH_COND.schTaskPrcsSttsCd.forEach(function(val) { SEARCH_COND.schTaskPrcsSttsCd.forEach(function(val) {
@ -198,7 +183,6 @@
schInspYmdEnd: '검사일자 종료', schInspYmdEnd: '검사일자 종료',
schVhclno: '차량번호', schVhclno: '차량번호',
schOwnrNm: '소유자명', schOwnrNm: '소유자명',
schFfnlgTrgtSeCd: '대상구분',
schTaskPrcsSttsCd: '처리상태' schTaskPrcsSttsCd: '처리상태'
}; };
@ -240,7 +224,7 @@
// 달라진 조건 찾기 // 달라진 조건 찾기
var differences = []; var differences = [];
var searchFields = ['schRcptYmdStart', 'schRcptYmdEnd', 'schInspYmdStart', 'schInspYmdEnd', var searchFields = ['schRcptYmdStart', 'schRcptYmdEnd', 'schInspYmdStart', 'schInspYmdEnd',
'schVhclno', 'schOwnrNm', 'schFfnlgTrgtSeCd', 'schTaskPrcsSttsCd']; 'schVhclno', 'schOwnrNm', 'schTaskPrcsSttsCd'];
searchFields.forEach(function(field) { searchFields.forEach(function(field) {
var currentValue = SEARCH_COND[field]; var currentValue = SEARCH_COND[field];
@ -373,8 +357,6 @@
return totalCount - (page - 1) * perPage - rowIndex; return totalCount - (page - 1) * perPage - rowIndex;
} }
}, },
{ header: '과태료대상구분코드', name: 'ffnlgTrgtSeCd', align: 'center', width: 120, hidden: true },
{ header: '대상구분', name: 'ffnlgTrgtSeCdNm', align: 'center', width: 120 },
{ header: '접수일자', name: 'rcptYmd', align: 'center', width: 100, { header: '접수일자', name: 'rcptYmd', align: 'center', width: 100,
formatter: function(e) { formatter: function(e) {
return e.value ? moment(e.value, 'YYYYMMDD').format('YYYY-MM-DD') : ''; return e.value ? moment(e.value, 'YYYYMMDD').format('YYYY-MM-DD') : '';
@ -708,7 +690,6 @@
$("#schInspYmdEnd").val(""); $("#schInspYmdEnd").val("");
$("#schVhclno").val(""); $("#schVhclno").val("");
$("#schOwnrNm").val(""); $("#schOwnrNm").val("");
$("#schFfnlgTrgtSeCd").val("");
// 체크박스 모두 해제 // 체크박스 모두 해제
$("input[name='schTaskPrcsSttsCd']").prop('checked', false); $("input[name='schTaskPrcsSttsCd']").prop('checked', false);
self.grid.reload(); self.grid.reload();

Loading…
Cancel
Save