Merge branch 'dev' into xithoon

# Conflicts:
#	src/main/resources/application-local.yml
pull/24/head
xhoon 2 months ago
commit 8a88e7c128

@ -0,0 +1,135 @@
# GIT
## 목차
- [0. 개요](#0-개요)
- [1. Branch](#1-Branch)
- [2. Commit](#2-Commit)
- [3. Push](#3-Push)
- [4. Pull Request](#4-Pull-Request)
- [5. 배포](#5-배포)
### 0. 개요
Git Branch, Commit & push 전략을 설명하는 가이드</br></br>
- Git은 Local / Remote 로 나누어진다.
- 1(Branch), 2(Commit)은 [Local]에서 하는 작업이다.
- 3(Push)는 Local -> Remote 로 업로드 하는 과정이다 (svn으로 치면 commit)
- svn은 한번의 커밋으로 원본을 바로 수정하는 반면, 깃은 Local에서 커밋을 하고, 체크후 푸쉬를 한다.
- 더욱 안전한 형상관리가 가능하다.
<img src="src/main/webapp/resources/img/git-img1.png"> </br></br>
### 0-1. 기본 원칙
- 에러가 나고 있는 상황은 절대로 Main(dev)에 Push하지 않는다.
- Push 하기 전, 무조건 Main(dev)를 본인이 작업한 Branch에 Update(Pull) 받고 충돌체크를 한다.
- Push 하기 전, 프로젝트 정상기동은 반드시 체크한다.</br>
*위 사항을 지키지 않을시 공동 작업자들이 힘들어짐.*
</br></br></br></br></br>
### 1. Branch
- 레파지토리, 작업공간이라고 생각하면된다.
- Local Branch 와 Remote Branch 로 나눠진다.
- Local Branch 는 작업자가 원하는 만큼 원할때 마음것 만들고 지우고 해도 된다.
- 단, 여러 Local Branch를 Remote에 Push 할꺼면 작업자의 폴더를 만들어서 해당 폴더안에 깔끔하게 정리하도록 한다.
- 각기 다른 작업을 한 Branch는 Merge후 하나로 만들어서 Push 하도록 한다.
<img src="src/main/webapp/resources/img/git-img2.png"> </br></br>
</br></br></br></br></br></br>
### 2. Commit
- SVN 이랑 다르게 Local Branch 에서 스냅샷을 찍는 개념임.
- 해당 Commit을 Push 함으로 최종 저장함.
- Local Branch 끼리 이동(Check Out) 할때는 변경사항을 커밋해야 다른 Branch에 영향을 안줌.
</br></br>
- 추후 형상관리 이슈추적을 위해 커밋메시지는 가능한 자세히 작업내용을 적도록 함.
- 아래는 커밋메시지 예제이다.
```
-----------------------------------------------
feat : Sample 작업
1. sample 프론트 페이지 작업
2. sample 조회 쿼리 작업
3. sample 벨리데이션 추가
-----------------------------------------------
fix : 프로퍼티 설정 수정 및 db 주소 수정
1. 운영 프로퍼티 키값 수정
2. db 수정 211.xxx.xxx.xx -> 211.xxx.xxx.xx
-----------------------------------------------
```
아래는 Commit Message Rule
```
//아래와 같이 여러가지가 있지만 feat/fix/refactor 정도면 충분할꺼 같다.
feat -> 새로운 기능에 대한 커밋
fix -> 버그 수정에 대한 커밋
refactor -> 코드 리팩토링에 대한 커밋
build -> 빌드 관련 파일 수정 / 모듈 설치 또는 삭제에 대한 커밋
chore -> 그 외 자잘한 수정에 대한 커밋
ci -> ci 관련 설정 수정에 대한 커밋
docs -> 문서 수정에 대한 커밋
style -> 코드 스타일 혹은 포맷 등에 관한 커밋
test -> 테스트 코드 수정에 대한 커밋
perf -> 성능 개선에 대한 커밋
```
### 3. Push
- Remote Branch 에 Commit을 밀어넣는 과정이다.
- 기존 SVN으로 따지면 Commit 과 같은과정이다.
</br></br>
- 현재 Git 전략 구성은 prod(master) / dev(dev) / developer(개발자 브랜치) 로 나누도록 한다.
- prod(master) : 운영서버에 배포될 소스.
- dev(dev) : 회사 개발서버(테스트)에 배포될 소스.
- developer(개발자 브랜치) : 각 개발자들이 임시로 저장하는 소스. (사실상 커밋만으로도 충분해서 임시푸시는 지양한다.)
</br></br></br></br>
[작업(개발/완료후Push)에 앞서 해야하는 과정들]</br>
Remote Dev(항상 가장 최신버전임. master가 1.0.0 버전이라면 dev는 아직 배포가 되지않은 1.0.1의 느낌)
1. Remote Dev를 Local Dev에 업데이트 (Remote Dev는 다른작업자들이 한 작업이 수시로 업데이트됨)
2. Local Dev - Local developer 를 Merge
</br></br>
** 하루 개발시작전, 개발완료 후 Push 직전 해당과정을 꼭 거쳐서 소스 충돌이 없도록 한다. ** </br>
** Push 직전 Merge 후, 구동에 문제 없으면 Push 하도록 한다. **
</br></br></br></br></br></br>
### 4. Pull-Request
Mian Remote Branch에 병합요청 (Merge)
- 각 개발자들은 developer(개발자 브랜치) 자신의 Local Branch 에서 작업을 한다.
- 작업이 완료되면, Remote dev/master 에 Push 하는게 아닌 Remote developer(개발자 브랜치)에 Push 한다.
- 이후, git에 들어가서 Pull Request를 생성한다.
- 해당 Pull Request는 관리자가 체크 후 구동에 문제가 없으면 수락한다. 문제가 있을시 롤백 및 요청을 거잘한다.
- 수락이되면 작업내용이 dev에 반영된다.
- 거절이 되면 다시 작업하고 다시 요청을 보내도록 한다.
</br></br>
<img src="src/main/webapp/resources/img/git-img3.png"></br></br>
<img src="src/main/webapp/resources/img/git-img4.png"></br></br>
<img src="src/main/webapp/resources/img/git-img5.png"></br></br>
<img src="src/main/webapp/resources/img/git-img6.png"></br></br>
</br></br></br></br></br></br></br>
### 5. 배포
- 배포는 Remote Master 브랜치를 기준으로 배포한다.

@ -62,6 +62,33 @@ ext {
egovFrameVersion = '4.3.0' //
}
def schema = "new"
def isNew = false
springBoot {
mainClass = "go.kr.project.CleanParkingWorkerApplication" // /!
}
sourceSets {
main {
java {
//
setSrcDirs(["src/main/java", "src/schemas"])
if (isNew) {
// old
exclude "go/kr/project/domain/entity/**"
exclude "go/kr/project/domain/repo/**"
} else {
// new
exclude "go/kr/project/domain/entity_new/**"
exclude "go/kr/project/domain/repo_new/**"
}
}
resources {
setSrcDirs(["src/main/resources"])
}
}
}
dependencies {
// ===== =====
// - MVC, REST,
@ -163,8 +190,8 @@ dependencies {
// == 3.0 ==
// implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
// annotationProcessor "com.querydsl:querydsl-apt:5.0.0:jakarta"
// annotationProcessor "jakarta.annotation:jakarta.annotation-api"
// annotationProcessor "jakarta.persistence:jakarta.persistence-api"
// annotationProcessor "javax.annotation:javax.annotation-api"
// annotationProcessor "javax.persistence:javax.persistence-api"
//
// compileOnly 'org.projectlombok:lombok'
// annotationProcessor 'org.projectlombok:lombok'
@ -174,8 +201,8 @@ dependencies {
implementation 'com.querydsl:querydsl-jpa'
annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jpa"
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"
annotationProcessor "javax.annotation:javax.annotation-api"
annotationProcessor "javax.persistence:javax.persistence-api"
// === QueryDsl end ===

@ -27,7 +27,8 @@ public class EgovConfigInterceptor implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(authInterceptor())
.addPathPatterns("/**") // 모든 경로에 적용
// .addPathPatterns("/**") // 모든 경로에 적용
.addPathPatterns("/__disabled__/**") // 인터셉터 미적용 임시 우회
.excludePathPatterns(interceptorProperties.getInterceptorExclude()); // 접근 제어 예외 URL 패턴 제외
}

@ -1,74 +1,74 @@
package egovframework.config.JPAConf;
import com.querydsl.jpa.impl.JPAQueryFactory;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.orm.jpa.JpaTransactionManager;
import org.springframework.orm.jpa.JpaVendorAdapter;
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.orm.jpa.persistenceunit.PersistenceUnitManager;
import org.springframework.transaction.PlatformTransactionManager;
import javax.persistence.EntityManagerFactory;
import javax.sql.DataSource;
import java.util.HashMap;
@Configuration
@EnableJpaRepositories(
basePackages = "go.kr.project.domain.repo.cp", // Clean Parking용 레포지토리 경로
entityManagerFactoryRef = "cpEntityManagerFactory",
transactionManagerRef = "cpTransactionManager"
)
public class CpDbConf {
@Bean
@Primary
@ConfigurationProperties("spring.datasource.cp")
public DataSourceProperties cpDataSourceProperties() {
return new DataSourceProperties();
}
@Bean
@Primary
public DataSource cpDataSource() {
return cpDataSourceProperties().initializeDataSourceBuilder().build();
}
@Bean
@Primary
public LocalContainerEntityManagerFactoryBean cpEntityManagerFactory(@Qualifier("cpEntityManagerFactoryBuilder") EntityManagerFactoryBuilder builder) {
return builder
.dataSource(cpDataSource())
.packages("go.kr.project.domain.entity")
.persistenceUnit("cp")
.build();
}
@Bean(name = "cpEntityManagerFactoryBuilder")
public EntityManagerFactoryBuilder entityManagerFactoryBuilder(
JpaVendorAdapter jpaVendorAdapter,
ObjectProvider<PersistenceUnitManager> persistenceUnitManager
) {
return new EntityManagerFactoryBuilder(jpaVendorAdapter, new HashMap<>(), persistenceUnitManager.getIfAvailable());
}
@Bean(name = "cpJpaTransactionManager")
@Primary
public PlatformTransactionManager cpTransactionManager(
@Qualifier("cpEntityManagerFactory") EntityManagerFactory cpEntityManagerFactory) {
return new JpaTransactionManager(cpEntityManagerFactory);
}
@Bean
@Primary
public JPAQueryFactory cpQueryFactory(@Qualifier("cpEntityManagerFactory") EntityManagerFactory emf) {
return new JPAQueryFactory(emf.createEntityManager());
}
}
//package egovframework.config.JPAConf;
//
//import com.querydsl.jpa.impl.JPAQueryFactory;
//import org.springframework.beans.factory.ObjectProvider;
//import org.springframework.beans.factory.annotation.Qualifier;
//import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
//import org.springframework.boot.context.properties.ConfigurationProperties;
//import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.context.annotation.Primary;
//import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
//import org.springframework.orm.jpa.JpaTransactionManager;
//import org.springframework.orm.jpa.JpaVendorAdapter;
//import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
//import org.springframework.orm.jpa.persistenceunit.PersistenceUnitManager;
//import org.springframework.transaction.PlatformTransactionManager;
//
//import javax.persistence.EntityManagerFactory;
//import javax.sql.DataSource;
//import java.util.HashMap;
//
//@Configuration
//@EnableJpaRepositories(
// basePackages = "go.kr.project.domain.repo.cp", // Clean Parking용 레포지토리 경로
// entityManagerFactoryRef = "cpEntityManagerFactory",
// transactionManagerRef = "cpTransactionManager"
//)
//public class CpDbConf {
//
// @Bean
// @Primary
// @ConfigurationProperties("spring.datasource.cp")
// public DataSourceProperties cpDataSourceProperties() {
// return new DataSourceProperties();
// }
//
// @Bean
// @Primary
// public DataSource cpDataSource() {
// return cpDataSourceProperties().initializeDataSourceBuilder().build();
// }
//
// @Bean
// @Primary
// public LocalContainerEntityManagerFactoryBean cpEntityManagerFactory(@Qualifier("cpEntityManagerFactoryBuilder") EntityManagerFactoryBuilder builder) {
// return builder
// .dataSource(cpDataSource())
// .packages("go.kr.project.domain.entity")
// .persistenceUnit("cp")
// .build();
// }
// @Bean(name = "cpEntityManagerFactoryBuilder")
// public EntityManagerFactoryBuilder entityManagerFactoryBuilder(
// JpaVendorAdapter jpaVendorAdapter,
// ObjectProvider<PersistenceUnitManager> persistenceUnitManager
// ) {
// return new EntityManagerFactoryBuilder(jpaVendorAdapter, new HashMap<>(), persistenceUnitManager.getIfAvailable());
// }
//
//
// @Bean(name = "cpJpaTransactionManager")
// @Primary
// public PlatformTransactionManager cpTransactionManager(
// @Qualifier("cpEntityManagerFactory") EntityManagerFactory cpEntityManagerFactory) {
// return new JpaTransactionManager(cpEntityManagerFactory);
// }
//
// @Bean
// @Primary
// public JPAQueryFactory cpQueryFactory(@Qualifier("cpEntityManagerFactory") EntityManagerFactory emf) {
// return new JPAQueryFactory(emf.createEntityManager());
// }
//}

@ -1,67 +1,67 @@
package egovframework.config.JPAConf;
import com.querydsl.jpa.impl.JPAQueryFactory;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.orm.jpa.JpaTransactionManager;
import org.springframework.orm.jpa.JpaVendorAdapter;
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.orm.jpa.persistenceunit.PersistenceUnitManager;
import org.springframework.transaction.PlatformTransactionManager;
import javax.persistence.EntityManagerFactory;
import javax.sql.DataSource;
import java.util.HashMap;
@Configuration
@EnableJpaRepositories(
basePackages = "go.kr.project.domain.repo.ep", // Electric Parking용 레포지토리 경로
entityManagerFactoryRef = "epEntityManagerFactory",
transactionManagerRef = "epTransactionManager"
)
public class EpDbConf {
@Bean
@ConfigurationProperties("spring.datasource.ep")
public DataSourceProperties epDataSourceProperties() {
return new DataSourceProperties();
}
@Bean
public DataSource epDataSource() {
return epDataSourceProperties().initializeDataSourceBuilder().build();
}
@Bean
public LocalContainerEntityManagerFactoryBean epEntityManagerFactory(@Qualifier("epEntityManagerFactoryBuilder") EntityManagerFactoryBuilder builder) {
return builder
.dataSource(epDataSource())
.packages("go.kr.project.domain.entity")
.persistenceUnit("ep")
.build();
}
@Bean(name = "epEntityManagerFactoryBuilder")
public EntityManagerFactoryBuilder entityManagerFactoryBuilder(
JpaVendorAdapter jpaVendorAdapter,
ObjectProvider<PersistenceUnitManager> persistenceUnitManager
) {
return new EntityManagerFactoryBuilder(jpaVendorAdapter, new HashMap<>(), persistenceUnitManager.getIfAvailable());
}
@Bean(name = "epJpaTransactionManager")
public PlatformTransactionManager epTransactionManager(@Qualifier("epEntityManagerFactory") EntityManagerFactory epEntityManagerFactory) {
return new JpaTransactionManager(epEntityManagerFactory);
}
@Bean
public JPAQueryFactory epQueryFactory(@Qualifier("epEntityManagerFactory") EntityManagerFactory emf) {
return new JPAQueryFactory(emf.createEntityManager());
}
}
//package egovframework.config.JPAConf;
//
//import com.querydsl.jpa.impl.JPAQueryFactory;
//import org.springframework.beans.factory.ObjectProvider;
//import org.springframework.beans.factory.annotation.Qualifier;
//import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
//import org.springframework.boot.context.properties.ConfigurationProperties;
//import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
//import org.springframework.orm.jpa.JpaTransactionManager;
//import org.springframework.orm.jpa.JpaVendorAdapter;
//import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
//import org.springframework.orm.jpa.persistenceunit.PersistenceUnitManager;
//import org.springframework.transaction.PlatformTransactionManager;
//
//import javax.persistence.EntityManagerFactory;
//import javax.sql.DataSource;
//import java.util.HashMap;
//
//@Configuration
//@EnableJpaRepositories(
// basePackages = "go.kr.project.domain.repo.ep", // Electric Parking용 레포지토리 경로
// entityManagerFactoryRef = "epEntityManagerFactory",
// transactionManagerRef = "epTransactionManager"
//)
//public class EpDbConf {
//
// @Bean
// @ConfigurationProperties("spring.datasource.ep")
// public DataSourceProperties epDataSourceProperties() {
// return new DataSourceProperties();
// }
//
// @Bean
// public DataSource epDataSource() {
// return epDataSourceProperties().initializeDataSourceBuilder().build();
// }
//
// @Bean
// public LocalContainerEntityManagerFactoryBean epEntityManagerFactory(@Qualifier("epEntityManagerFactoryBuilder") EntityManagerFactoryBuilder builder) {
// return builder
// .dataSource(epDataSource())
// .packages("go.kr.project.domain.entity")
// .persistenceUnit("ep")
// .build();
// }
//
// @Bean(name = "epEntityManagerFactoryBuilder")
// public EntityManagerFactoryBuilder entityManagerFactoryBuilder(
// JpaVendorAdapter jpaVendorAdapter,
// ObjectProvider<PersistenceUnitManager> persistenceUnitManager
// ) {
// return new EntityManagerFactoryBuilder(jpaVendorAdapter, new HashMap<>(), persistenceUnitManager.getIfAvailable());
// }
//
// @Bean(name = "epJpaTransactionManager")
// public PlatformTransactionManager epTransactionManager(@Qualifier("epEntityManagerFactory") EntityManagerFactory epEntityManagerFactory) {
// return new JpaTransactionManager(epEntityManagerFactory);
// }
// @Bean
// public JPAQueryFactory epQueryFactory(@Qualifier("epEntityManagerFactory") EntityManagerFactory emf) {
// return new JPAQueryFactory(emf.createEntityManager());
// }
//
//}

@ -1,13 +1,25 @@
//package egovframework.config.JPAConf;
//
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.orm.jpa.JpaVendorAdapter;
//import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
//
//@Configuration
//public class JPAConfig {
//
package egovframework.config.JPAConf;
import com.querydsl.jpa.impl.JPAQueryFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.orm.jpa.JpaVendorAdapter;
import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
@Configuration
public class JPAConfig {
@PersistenceContext
private EntityManager em;
@Bean
public JPAQueryFactory jpaQueryFactory() {
return new JPAQueryFactory(em);
}
// @Bean
// public JpaVendorAdapter jpaVendorAdapter() {
// HibernateJpaVendorAdapter adapter = new HibernateJpaVendorAdapter();
@ -16,4 +28,4 @@
// adapter.setDatabasePlatform("org.hibernate.dialect.MySQLDialect");
// return adapter;
// }
//}
}

@ -11,9 +11,7 @@ import io.swagger.v3.oas.annotations.responses.ApiResponses;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@ -53,4 +51,10 @@ public class MinwonInitController {
return ApiResponseUtil.successWithGrid(result, dto);
}
@PostMapping("/postman/test")
public ResponseEntity<?> test(@RequestBody MinwonInitDto.Request.Test test) {
return ResponseEntity.ok(minwonInitService.insertSometing(test));
}
}

@ -0,0 +1,93 @@
package go.kr.project.biz.minwon.init.controller;
import egovframework.constant.TilesConstants;
import go.kr.project.biz.minwon.init.model.SampleDto;
import go.kr.project.biz.minwon.init.service.SampleService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
// 컨트롤러 어노테이션
// 컨트롤러의 역할을 한다는 표시이다.
// 컨트롤러 = 화면(브라우저) 에서 요청하는 url을 받는 역할
@Controller
// 로킹을 할수있는 어노테이션. log.info(); 를 통해 값들을 출력할 수 있다.
@Slf4j
// 생성자 인젝션을 자동으로 해주는 어노테이션
// https://dreamcoding.tistory.com/83 참고
// 해당 용어들이 어려우면 그냥 어노테이션을 붙이고 그 밑에 private final을 붙여 Service 객체를 불러온다고 생각하면 된다.
@RequiredArgsConstructor
public class SampleController {
// 위에서 설명한 생성자 인젝션이다.
private final SampleService sampleService;
// GetMapping 안에 있는 Url을 요청하면 해당 컨트롤러 매소드(함수)로 들어온다
// 이걸 [엔드포인트]라고 한다.
//자바파일은 클래스와 매서드(함수)들로 이루어지는데 아래 링크를 한번 읽고오면 이해가 빠르다.
//https://velog.io/@luna001631/%EC%9E%90%EB%B0%94JAVA-%EB%A9%94%EC%86%8C%EB%93%9Cmethod%EB%9E%80
//첨부한 링크들에서 이해가 안가는 부분있으면 정민 호출하면 최대한 쉽게 풀어 설명해주려고 노력한다.
//추가로 변수나 매서드명을 만들때 축약어는 지양한다. 길어도 상관없다.
//누가 읽어도 무슨동작을 하는지 예측되도록 정의하는것이 좋다.
// ex) 좋은예 : samplePageReturn / 나쁜예 : smplPgRtrn
// ex) 좋은예 : findCpMainByMmcode / 나쁜예 : srchCm
//줄인다고 성능이 빨라지는것도 아니며 길이 제한이 있는것도 아니다.
//남이 읽기 좋은 코드를 만든다고 생각하고 만들어야 한다.
@GetMapping("/minwon/init/sample.do")
public String samplePageReturn() {
// .do로 리턴하는건 jsp페이지를 찾아서 리턴하라는 표시이다
// 꼭 스트링으로 리턴해야한다. 스트링리턴이 아니면 페이지를 찾지 않고 문자열을 리턴해버린다.
// webapp/WEB-INF/views 안에있는 jsp 페이지를 찾아준다.
// 타일즈는 화면 레이아웃이다. 기본적으로는 BASE를 붙이면 된다.
// 이렇게 리턴함면 sample.jsp를 찾아서 리턴해준다.
return "biz/minwon/init/sample" + TilesConstants.BASE;
}
// Sample.jsp 에서 만든 ajax 요청을 받는 매소드(함수)이다.
// 받아서 비즈니스에 맞춰 로직을 짜면 된다.
// 아래를 보면 위와 다르게 GetMapping 이 아니라 PostMapping이다.
// https://dev-coco.tistory.com/60 아래 블로그를 참고
@PostMapping("/minwon/init/sample-search-myBatis.ajax")
public ResponseEntity<?> sampleAjaxMybatis(@RequestBody SampleDto.Request.Search testDto) {
// Dto란
// https://people-analysis.tistory.com/269
// 프론트에서 바디로 넘어온 데이터를 @RequestBody를 통해 맵핑한다. 키값이 맞아야 벨류를 가져온다.
List<SampleDto.Response.cpMain> result = sampleService.searchSampleMybatis(testDto);
//해당 리턴은 http 리스폰스 응답객체로 리턴을 해주는것이다.
//http는 헤더 바디 메시지 등등으로 이루어져있다.
//해당 형식을 ResponseEntity에서 구현하고 있음으로 백엔드 응답을 바디에 담아서 보내주기만 하면된다.
//아래는 Http 에 대한 설명이다.
//https://hahahoho5915.tistory.com/62
return ResponseEntity.ok(result);
}
@PostMapping("/minwon/init/sample-search-JPA.ajax")
public ResponseEntity<?> sampleAjaxJPA(@RequestBody SampleDto.Request.Search testDto) {
// jpa도 똑같다.
// db호출을 마이바티스로 할것이냐 Jpa로 할것이냐 차이다.
// 마이바티스는 매퍼인터페이스와 매퍼xml을 통해 만들어야 하는 반면
// jpa는 자바로 모두 해결이 된다. = ORM
// https://dbjh.tistory.com/77
// 자바로 해결가능한것의 장점은 1. 코드 작성시 오타와 자동완성을 지원한다. 2.컴파일에러는 개발시 미리 알수있다. 3.재사용성이 뛰어나다. 정도가 있다.
// 1번만 되어도 생상성이 확 올라가서 결국 최종적으로는 jpa사용을 지향하는것이 좋아보인다.
List<SampleDto.Response.cpMain> result = sampleService.searchSampleJPA(testDto);
return ResponseEntity.ok(result);
}
}

@ -0,0 +1,16 @@
package go.kr.project.biz.minwon.init.mapper;
import go.kr.project.biz.minwon.init.model.SampleDto;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
//마이바티스 매퍼는 해당 어노테이션을 붙여 꼭 표시해줘야한다.
// 여기서 최종 쿼리가 있는 xml과 연결된다.
@Mapper
public interface SampleMapper {
//Sql문이 있는 xml파일과 이어주는 고리이다.
//이 매서드가 호출되면서 sql문이 나간다.
List<SampleDto.Response.cpMain> selectAllSample(SampleDto.Request.Search searchDto);
}

@ -4,10 +4,23 @@ import go.kr.project.system.common.model.DefaultVO;
import go.kr.project.system.common.model.PagingVO;
import lombok.*;
import javax.validation.Valid;
public class MinwonInitDto {
public static class Request {
@Getter
@Setter
public static class Test {
private String aaa;
private String bbb;
private String ccc;
}
@Getter
@Setter
public static class SearchMinwonInitList extends PagingVO {

@ -0,0 +1,37 @@
package go.kr.project.biz.minwon.init.model;
import lombok.Getter;
import lombok.Setter;
public class SampleDto {
// 요즘 트렌드에 맞춰 이너클레스를 사용한다.
// Request(파라미터를 받을 형식 객체) 와 Response(응답해줄 형식 객체)로 나눠서 관리한다.
//프론트에서 파라미터 받아오는 객체
public static class Request {
@Getter
@Setter
public static class Search {
//예제로
private String mmState;
}
}
//디비 조회해서 프론트로 반납해주는 객체
public static class Response {
@Getter
@Setter
public static class cpMain {
private String mmCode;
private String mmState;
private String mmCarno;
private Integer mmKeum1;
private Integer mmKeum2;
private String mmDate;
private String mmTime;
}
}
}

@ -0,0 +1,47 @@
package go.kr.project.biz.minwon.init.repository;
import com.querydsl.core.types.Projections;
import com.querydsl.jpa.impl.JPAQueryFactory;
import go.kr.project.biz.minwon.init.model.MinwonInitDto;
import go.kr.project.biz.minwon.init.model.SampleDto;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Repository;
import java.util.List;
import static go.kr.project.domain.entity.QCpMain.cpMain;
@Repository
@RequiredArgsConstructor
public class SampleQueryDslRepository {
private final JPAQueryFactory queryFactory;
public List<SampleDto.Response.cpMain> findSample(SampleDto.Request.Search testDto) {
//해당 QueryDsl문법이 어렵다면, sql문을 ChatGpt에 붙여넣고 QueryDsl로 바꿔달라고 하면 바꿔준다.
//읽어보고 맞다면 붙여넣으면 된다.
List<SampleDto.Response.cpMain> result = queryFactory
.select(
Projections.fields(
SampleDto.Response.cpMain.class,
//만약 컬럼과 바인딩할 객체의 명이 다르다면 as로 dto에 맞추면 된다.
cpMain.mmCode.as("mmCode"),
cpMain.mmState,
cpMain.mmCarno,
cpMain.mmKeum1,
cpMain.mmKeum2,
cpMain.mmDate,
cpMain.mmTime
)
)
.from(cpMain)
.where(
cpMain.mmState.eq(testDto.getMmState())
)
.fetch();
return result;
}
}

@ -5,10 +5,12 @@ import org.springframework.stereotype.Service;
import java.util.List;
public interface MinwonInitService {
public interface MinwonInitService{
List<MinwonInitDto.Response.InitAnswers> findInitAnswers(MinwonInitDto.Request.SearchMinwonInitList dto);
MinwonInitDto.Request.Test insertSometing(MinwonInitDto.Request.Test answers);
}

@ -0,0 +1,18 @@
package go.kr.project.biz.minwon.init.service;
import go.kr.project.biz.minwon.init.model.SampleDto;
import java.util.List;
// 실제 로직을 이어주는 인터페이스이다.
// 해당 인터페이스를 정의하면 반드시 implements를 통해 구현을 해야한다.
// 사실 이 인터페이스는 필요없다고 생각하지만 eGov 필수사항이라 어쩔수 없이 넣었다.
public interface SampleService {
//여기는 여러가지 동작을 넣을수 있겠다.
//이 인터페이스에 정의한 매소드는 반드시 impl로 구현해야함.
//조회
List<SampleDto.Response.cpMain> searchSampleMybatis(SampleDto.Request.Search testDto);
List<SampleDto.Response.cpMain> searchSampleJPA(SampleDto.Request.Search testDto);
}

@ -6,11 +6,13 @@ import go.kr.project.biz.minwon.init.service.MinwonInitService;
import go.kr.project.domain.repo.cp.CpAnswerRepository;
import go.kr.project.domain.repo.cp.CpMainRepository;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
@Slf4j
@RequiredArgsConstructor
public class MinwonInitServiceImpl implements MinwonInitService {
@ -23,4 +25,24 @@ public class MinwonInitServiceImpl implements MinwonInitService {
return minwonInitQueryDslRepository.findInitAnswers(dto);
}
@Override
public MinwonInitDto.Request.Test insertSometing(MinwonInitDto.Request.Test test) {
if (test.getAaa().equals("111")) {
test.setAaa("일번");
}
if (test.getBbb().equals("222")) {
test.setBbb("이번");
}
if (test.getCcc().equals("333")) {
test.setCcc("삼번");
}
return test;
}
}

@ -0,0 +1,84 @@
package go.kr.project.biz.minwon.init.service.impl;
import go.kr.project.biz.minwon.init.mapper.SampleMapper;
import go.kr.project.biz.minwon.init.model.SampleDto;
import go.kr.project.biz.minwon.init.repository.SampleQueryDslRepository;
import go.kr.project.biz.minwon.init.service.SampleService;
import go.kr.project.domain.entity.CpMain;
import go.kr.project.domain.repo.cp.CpMainRepository;
import lombok.RequiredArgsConstructor;
import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.stream.Collectors;
//아까 어쩔수 없이 넣은 인터페이스의 구현체이다.
//컨트롤러에서 인터페이스를 호출하면 이게 실행되는것이다.
// EgovAbstractServiceImpl 이 이고브 상속때문에 인터페이스를 만든다.. 제길
//서비스 어노테이션은 꼭 붙여야된다.
@Service
//컨트롤러에서 설명한 생성자 인젝션 어노테이션이다. dao(매퍼인터페이스)를 사용하기 위함이다.
@RequiredArgsConstructor
public class SampleServiceImpl extends EgovAbstractServiceImpl implements SampleService {
//dao : DataBase Access Object로 디비와 연겷하는 역할은 한다.
// 현재 프로젝트에서는 dao역할은 mybatis 매퍼인터페이스로 한다.
private final SampleMapper sampleMapper;
//Jpa 레파지토리 주입 (선택)
//Jpa를 통한 조회를 할때 주입해줘야한다.
private final CpMainRepository cpMainRepository;
//QueryDsl을 사용할때 주입한다.(선택)
private final SampleQueryDslRepository sampleQueryDslRepository;
@Override
public List<SampleDto.Response.cpMain> searchSampleMybatis(SampleDto.Request.Search testDto) {
// 매퍼 xml의 resultType을 리턴값으로 받아야한다.
List<SampleDto.Response.cpMain> result = sampleMapper.selectAllSample(testDto);
return result;
}
@Override
//매소드에 대한 트렌젝션을 해주는 어노테이션.
@Transactional
public List<SampleDto.Response.cpMain> searchSampleJPA(SampleDto.Request.Search testDto) {
//Jpa 레파지토리를 통한 조회
//Jpa 레파지토리의 경우 조회한 결과가 엔티티 객체임. dto와는 다른객체임.
//그래서 엔티티로 조회해 왔으면 dto로 변환하는 과정이 필요함.
//간단하면 스트림(stream) 빌더(builder)를 많이 씀.
//1.Jpa 레파지토리 방식
//간단한 조회(단일)의 경우를 많이씀.
//조인이 필요한경우 Jpql로 인터페이스에 작성을 해야하는데 컨트롤러에서 설명한 1번의 장정이 사라짐.
//그래서 대안책으로 나온 라이브러리가 2.QueryDsl임.
List<CpMain> jpaResult = cpMainRepository.findByMmState(testDto.getMmState());
List<SampleDto.Response.cpMain> convertEntityToDtoResult = jpaResult.stream()
.map(entity -> {
SampleDto.Response.cpMain dto = new SampleDto.Response.cpMain();
dto.setMmCode(entity.getMmCode());
dto.setMmState(entity.getMmState());
dto.setMmCarno(entity.getMmCarno());
dto.setMmKeum1(entity.getMmKeum1());
dto.setMmKeum2(entity.getMmKeum2());
dto.setMmDate(entity.getMmDate());
dto.setMmTime(entity.getMmTime());
return dto;
})
.collect(Collectors.toList());
//2. QueryDsl방식
//복잡한 조인, 벌크인서트, 벌크업데이트등을 쉽게 할수 있음.
//장점은 Jpa레파지토리의 내장매서드를 알 필요 없이 기존 쿼리문과 비슷한 형태로 쓸수 있음.
//1. 번의 단순한 조회일 경우도 QueryDsl을 써도 무방함.
List<SampleDto.Response.cpMain> queryDslResult = sampleQueryDslRepository.findSample(testDto);
//리턴은 주석을 바꿔가며 테스트 해볼수 있다.
// return convertEntityToDtoResult;
return queryDslResult;
}
}

@ -1,9 +1,15 @@
package go.kr.project.biz.totalInfo.controller;
import egovframework.constant.MessageConstants;
import egovframework.constant.TilesConstants;
import egovframework.util.ApiResponseUtil;
import go.kr.project.biz.minwon.init.model.MinwonInitDto;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Controller
@RequiredArgsConstructor
@ -14,4 +20,16 @@ public class TotalInfoController {
return "biz/totalInfo/totalInfo_popup" + TilesConstants.POPUP;
}
@PostMapping("/total/info/info.ajax")
@ResponseBody
public ResponseEntity<?> getMinwonInitListAjax() {
return ApiResponseUtil.success("");
}
}

@ -1,133 +0,0 @@
package go.kr.project.domain.entity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.time.LocalDateTime;
@Entity
@Table(name = "tb_user")
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class TbUser {
@Id
@Column(name = "USER_ID", length = 12, nullable = false)
private String userId;
@Column(name = "USER_ACNT", length = 20, nullable = false, unique = true)
private String userAcnt;
@Column(name = "USER_NM", length = 50, nullable = false)
private String userNm;
@Column(name = "PASSWD", length = 200, nullable = false)
private String passwd;
@Column(name = "PASSWD_HINT", length = 100)
private String passwdHint;
@Column(name = "PASSWD_NSR", length = 100)
private String passwdNsr;
@Column(name = "EMP_NO", length = 20)
private String empNo;
@Column(name = "GENDER", length = 1)
private String gender;
@Column(name = "ZIP", length = 6)
private String zip;
@Column(name = "ADDR", length = 150)
private String addr;
@Column(name = "DADDR", length = 150)
private String daddr;
@Column(name = "AREA_NO", length = 10)
private String areaNo;
@Column(name = "EML_ADDR", length = 50)
private String emlAddr;
@Column(name = "ORG_CD", length = 20)
private String orgCd;
@Column(name = "USER_GROUP_ID", length = 20)
private String userGroupId;
@Column(name = "NSTT_CD", length = 8, nullable = false)
private String nsttCd;
@Column(name = "POS_NM", length = 60)
private String posNm;
@Column(name = "CRTFC_DN", length = 20)
private String crtfcDn;
@Column(name = "LOCK_YN", length = 1)
private String lockYn;
@Column(name = "LOCK_CNT", nullable = false)
private Integer lockCnt;
@Column(name = "LOCK_DTTM")
private LocalDateTime lockDttm;
@Column(name = "REG_DTTM")
private LocalDateTime regDttm;
@Column(name = "RGTR", length = 12)
private String rgtr;
@Column(name = "MDFCN_DTTM")
private LocalDateTime mdfcnDttm;
@Column(name = "MDFR", length = 12)
private String mdfr;
@Column(name = "USER_STATUS", length = 20, nullable = false)
private String userStatus;
@Column(name = "FXNO", length = 20)
private String fxno;
@Column(name = "TELNO", length = 20)
private String telno;
@Column(name = "MBL_TELNO", length = 20)
private String mblTelno;
@Column(name = "BRDT", length = 20)
private String brdt;
@Column(name = "DEPT_CD", length = 7)
private String deptCd;
@Column(name = "USE_YN", length = 1, nullable = false)
private String useYn;
@Column(name = "RSDNT_NO", length = 200)
private String rsdntNo;
@Column(name = "PASSWD_INIT_YN", length = 1)
private String passwdInitYn;
@Column(name = "UM_CODE", length = 50, unique = true)
private String umCode;
@Column(name = "SSG_CODE", length = 50)
private String ssgCode;
@Column(name = "DB_KEY", length = 2)
private String dbKey;
}

@ -1,9 +0,0 @@
package go.kr.project.domain.repo.cp;
import go.kr.project.domain.entity.TbUser;
import go.kr.project.system.login.model.LoginUserVO;
import org.springframework.data.jpa.repository.JpaRepository;
public interface CpTbUserRepository extends JpaRepository<TbUser, Long> {
TbUser findByUserAcnt(String userAcnt);
}

@ -1,7 +0,0 @@
package go.kr.project.domain.repo.ep;
import go.kr.project.domain.entity.CpSgg;
import org.springframework.data.jpa.repository.JpaRepository;
public interface EpSggRepository extends JpaRepository<CpSgg, Long> {
}

@ -1,9 +0,0 @@
package go.kr.project.domain.repo.ep;
import go.kr.project.domain.entity.TbUser;
import go.kr.project.system.login.model.LoginUserVO;
import org.springframework.data.jpa.repository.JpaRepository;
public interface EpTbUserRepository extends JpaRepository<TbUser, Long> {
TbUser findByUserAcnt(String userAcnt);
}

@ -1,12 +0,0 @@
package go.kr.project.domain.repo.ep;
import go.kr.project.domain.entity.CpUser;
import go.kr.project.system.login.model.LoginUserVO;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.Optional;
public interface EpUserRepository extends JpaRepository<CpUser, Long> {
LoginUserVO findByUmName(String userAcnt);
}

@ -6,10 +6,7 @@ import egovframework.constant.SessionConstants;
import egovframework.dataSourece.DataSourceContextHolder;
import egovframework.exception.MessageException;
import egovframework.util.EgovFileScrty;
import go.kr.project.domain.repo.cp.CpTbUserRepository;
import go.kr.project.domain.repo.cp.CpUserRepository;
import go.kr.project.domain.repo.ep.EpTbUserRepository;
import go.kr.project.domain.repo.ep.EpUserRepository;
import go.kr.project.system.login.mapper.LoginMapper;
import go.kr.project.system.login.model.LoginUserVO;
import go.kr.project.system.login.model.SessionVO;

@ -9,36 +9,35 @@ spring:
restart:
enabled: true
datasource:
cp:
driver-class-name: org.mariadb.jdbc.Driver
url: jdbc:mariadb://211.119.124.122:53306/demon_test_cp?useUnicode=true&characterEncoding=utf8
username: root
password: xit5811807
hikari:
maximum-pool-size: 104
minimum-idle: 5
connection-timeout: 30000
idle-timeout: 600000
max-lifetime: 1800000
validation-timeout: 60000 #60초
auto-commit: false
#hikari.connection-test-query 는 JDBC 4.0 이상을 사용하면 설정하지 않는 것을 권장. (공식문서)
#connection-test-query: select 1
driver-class-name: org.mariadb.jdbc.Driver
url: jdbc:mariadb://211.119.124.122:53306/demon_test_cp?useUnicode=true&characterEncoding=utf8
username: root
password: xit5811807
hikari:
maximum-pool-size: 10
minimum-idle: 5
connection-timeout: 30000
idle-timeout: 600000
max-lifetime: 1800000
validation-timeout: 60000 #60초
auto-commit: false
#hikari.connection-test-query 는 JDBC 4.0 이상을 사용하면 설정하지 않는 것을 권장. (공식문서)
#connection-test-query: select 1
ep:
driver-class-name: org.mariadb.jdbc.Driver
url: jdbc:mariadb://211.119.124.122:53306/demon_test_ep?useUnicode=true&characterEncoding=utf8
username: root
password: xit5811807
hikari:
maximum-pool-size: 10
minimum-idle: 5
connection-timeout: 30000
idle-timeout: 600000
max-lifetime: 1800000
validation-timeout: 60000 #60초
#hikari.connection-test-query 는 JDBC 4.0 이상을 사용하면 설정하지 않는 것을 권장. (공식문서)
#connection-test-query: select 1
# ep:
# driver-class-name: org.mariadb.jdbc.Driver
# url: jdbc:mariadb://211.119.124.122:53306/demon_test_ep?useUnicode=true&characterEncoding=utf8
# username: root
# password: xit5811807
# hikari:
# maximum-pool-size: 10
# minimum-idle: 5
# connection-timeout: 30000
# idle-timeout: 600000
# max-lifetime: 1800000
# validation-timeout: 60000 #60초
# #hikari.connection-test-query 는 JDBC 4.0 이상을 사용하면 설정하지 않는 것을 권장. (공식문서)
# #connection-test-query: select 1
jpa:
show-sql: false
hibernate:

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="go.kr.project.bbs.mapper.BbsPostAnswerMapper">
<mapper namespace="go.kr.project.biz.bbs.mapper.BbsPostAnswerMapper">
<!-- 답변 정보 조회 -->
<select id="selectAnswer" parameterType="String" resultType="BbsPostAnswerVO">

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- 여기는 매퍼인터페이스를 경로를 정확히 입력해야 바인딩이 된다. -->
<mapper namespace="go.kr.project.biz.minwon.init.mapper.SampleMapper">
<!--
매퍼인터페이스의 매소드명과 id가 일치해야 한다.
parameterType은 사용할 파라미터,
resultType은 쿼리 결과를 반납하는 객체를 넣어준다.
아래 보면 이너클래스는 $형태로 들어간다.
-->
<select id="selectAllSample"
parameterType="go.kr.project.biz.minwon.init.model.SampleDto$Request$Search"
resultType="go.kr.project.biz.minwon.init.model.SampleDto$Response$cpMain">
select *
from cp_main
where 1=1
and mm_state = #{mmState}
</select>
</mapper>

@ -11,6 +11,7 @@
</section>
</div>
</section>
<input type="text" id="bbs_no">
<div class="contants_body">
<div class="gs_b_top">
<ul class="lef">
@ -279,7 +280,7 @@
this.instance.on('dblclick', function(ev) {
var popUrl = '${pageContext.request.contextPath}/total/info.do';
var popTitle = "비밀번호 변경";
var popOption = "width=800px, height=455px, resizable=yes, scrollbars=yes, location=no, top=100px, left=100px";
var popOption = "width=1400px, height=900px, resizable=yes, scrollbars=yes, location=no, top=100px, left=100px";
window.open(popUrl, popTitle, popOption);
<%--if (ev.rowKey !== undefined && ev.columnName !== '_number') {--%>
<%-- var rowData = self.instance.getRow(ev.rowKey);--%>
@ -369,6 +370,28 @@
// 페이지 로드 시 초기화
$(function() {
NoticeList.init();
// $.ajax({
// url: "http://localhost:8080/postman/test",
// type: 'POST',
// contentType: 'application/json',
// data: JSON.stringify({
// aaa: "111",
// bbb: "222",
// ccc: "333"
// }), // 비어 있어도 {}
// success: function(response) {
// console.log(response);
// $("#bbs_no").val(response.asBbsNo);
// console.log($("#bbs_no").val());
//
//
// },
// error: function(xhr, status, error) {
// // 에러 처리는 xit-common.js의 ajaxError에서 처리됨
// }
// });
});
// 전역 네임스페이스에 모듈 노출

@ -0,0 +1,151 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--
<script type="text/javascript"> 이전까지가 html 영역이다.
해당 영역은 화면 스케치 영역이라고 생각하면 된다.
--%>
<div class="main_body">
<input type="text" id="input1" value="샘플 인풋1"></br>
<input type="text" id="input2" value="샘플 인풋2"></br>
<input type="text" id="input3" value="샘플 인풋3"></br>
<input type="text" id="input4" value="샘플 인풋4"></br>
</br></br></br>
<input type="button" id="mybatis-call" value="샘플 myBatis 호출 버튼">
</br>
<input type="button" id="jpa-call" value="샘플 Jpa 호출 버튼">
</br>
<input type="button" id="clear" value="조회결과 클리어">
<div>
<pre id="result"></pre>
</div>
</br></br></br></br>
<select>
<option value="aaa">aaa</option>
<option value="bbb">bbb</option>
<option value="ccc">ccc</option>
<option value="ddd">ddd</option>
<option value="eee">eee</option>
</select>
</br></br></br></br>
<input type="checkbox"> 샘플 체크박스1
<input type="checkbox"> 샘플 체크박스2
<input type="checkbox"> 샘플 체크박스3
</br></br></br></br>
<input type="date">
</br>
</div>
<%--
아래부터가 JS(자바스크립트이다)
자바스크립트는 위에 있는 html 요소들을 동적으로 컨트롤하는 역할을 한다.
자바 스크립트에는 정해진 룰은 없지만 편의를 위해 코드 템플릿을 만들어 사용하도록 한다.
--%>
<script type="text/javascript">
// 전체 코드를 함수화 한다
const fnBiz = {
init: () => {
fnBiz.search();
},
search: () => {
// $.ajax({
// url: "/minwon/init/sample-search.ajax",
// type: "POST",
// contentType: 'application/json',
// data: JSON.stringify({ "id" : "" }),
// success: function(response) {
//
// },
// error: function(xhr, status, error) {
//
// }
// });
},
eventListener: () => {
//이벤트 리스너이다
//이벤트 리스너란 html 태그에 동작을 넣어주는것이다.
//html에서 만든 Botton 태그는 그냥 버튼 모양일뿐 아무것도 아니다.
//아래 리스너를 넣어줌으로써 동작이 완성되는것이다.
$("#mybatis-call").on("click", () => {
//아작스는 비동기 서버호출 함수이다. 아래 블로그 설명글 참고
//https://jbground.tistory.com/4
$.ajax({
url: "/minwon/init/sample-search-myBatis.ajax",
type: "POST",
contentType: 'application/json',
data: JSON.stringify({ mmState : "01" }),
success: function(response) {
//요청에 대한 응답 정상적으로 넘어오면 response 안에 담긴다.
//해당 response로 화면에서 컨트롤 해주면된다.
$("#result").text("");
$("#result").text(JSON.stringify(response, null, 2));
},
error: function(xhr, status, error) {
$("#result").text("조회 실패");
}
});
});
$("#jpa-call").on("click", () => {
console.log("aaa")
$.ajax({
url: "/minwon/init/sample-search-JPA.ajax",
type: "POST",
contentType: 'application/json',
dataType: 'json',
data: JSON.stringify({ mmState : "01" }),
success: function(response) {
$("#result").text("");
$("#result").text(JSON.stringify(response, null, 2));
},
error: function(xhr, status, error) {
$("#result").text("조회 실패");
}
});
});
$("#clear").on("click", () => {
$("#result").text("");
})
}
}
// $(function) 은 제이쿼리 초기화 함수로 $(document).ready(function(){}) 과 똑같은 코드이다
// 초기화라 함은 도큐멘트 (페이지) 가 열릴때 실행되는 코드이다.
// 아래는 페이지가 열리면서, fnBiz.init() 을 실행시키라는 뜻이다.
// 예를들어 페이지 진입하면서 바로 조회를 하게 만들고 싶다면, 에제와 같이 init함수 안에 조회하는 함수호출해버리면 된다.
// 안에 로직을 나열해도 상관없지만, 추후 유지보수를 위해 함수를 기능별로 묶어 함수호출을 통한 플로우 개발을 지향한다.
$(function () {
fnBiz.eventListener();
fnBiz.init();
});
</script>

@ -6,11 +6,242 @@
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>개별총정보</title>
</head>
<body>
요거슨 개별총정보
</body>
</html>
<%--<link rel="stylesheet" href="https://code.jquery.com/ui/1.13.2/themes/base/jquery-ui.css">--%>
<div class="main_body">
요거슨 개별 총 정보
<div id="tabs" class="main_body">
<ul>
<li><a href="#tabs-a">위반정보</a></li>
<li><a href="#tabs-b">의견진술</a></li>
<li><a href="#tabs-c">세부내역</a></li>
<li><a href="#tabs-d">부과이후</a></li>
<li><a href="#tabs-e">민원내역</a></li>
</ul>
<div id="tabs-a">
<div class="detail-card">
<div class="card-header">
<div class="title">개별 총정보</div>
<div class="actions">
<span class="pill">Double Click 민원원본보기</span>
<button type="button" class="close-btn">닫기 Esc</button>
</div>
</div>
<!-- 상단 네비/페이지 인디케이터 -->
<div class="card-toolbar">
<div class="page-indicator"><span id="pageNow">2</span> of <span id="pageTotal">4</span></div>
<div class="nav-group">
<button type="button" class="nav-btn" data-act="first">◀◀</button>
<button type="button" class="nav-btn" data-act="prev">◀</button>
<button type="button" class="nav-btn" data-act="next">▶</button>
<button type="button" class="nav-btn" data-act="last">▶▶</button>
</div>
</div>
<div class="detail-body">
<!-- 좌측 정보 -->
<div class="left">
<div class="section-title">위반 정보</div>
<div class="subnote">등록구분/위반일시/위반내역 등</div>
<div class="form-grid">
<div class="lbl">등록구분</div>
<div class="fld"><input type="text" value="자동등록" readonly></div>
<div class="lbl">자료출처</div>
<div class="fld"><input type="text" value="생활불편" readonly></div>
<div class="lbl">위반일시</div>
<div class="fld"><input type="text" value="2025-06-04 20:01" readonly></div>
<div class="lbl">위반명</div>
<div class="fld"><input type="text" value="주차위반" readonly></div>
<div class="lbl">신고자</div>
<div class="fld"><input type="text" value="손관기" readonly></div>
<div class="lbl">연락처</div>
<div class="fld"><input type="text" value="01096686113" readonly></div>
<div class="lbl">담당자</div>
<div class="fld"><input type="text" value="부선영" readonly></div>
<div class="lbl">공개여부</div>
<div class="fld">
<input type="text" value="미공개" readonly>
</div>
<div class="lbl">신고내용</div>
<div class="fld block">
<textarea readonly>[예시] …신고 내용이 여기에 표시됩니다…</textarea>
</div>
<div class="lbl">위반장소</div>
<div class="fld"><input type="text" value="대장동 592" readonly></div>
<div class="lbl">접수번호</div>
<div class="fld"><input type="text" value="1AA-2506-0104234" readonly></div>
<div class="lbl">접수일자</div>
<div class="fld"><input type="text" value="2025-06-04" readonly></div>
<div class="lbl">목록번호</div>
<div class="fld"><input type="text" value="0159002" readonly></div>
<div class="lbl">법정동</div>
<div class="fld"><input type="text" value="대장동" readonly></div>
<div></div><div></div>
<div class="lbl">사진등록금액</div>
<div class="fld"><input type="text" value="80,000" readonly></div>
<div class="lbl">부과금액</div>
<div class="fld"><input type="text" value="100,000" readonly></div>
<div class="lbl">감액금액</div>
<div class="fld"><input type="text" value="" readonly></div>
<div class="lbl">총수납액</div>
<div class="fld"><input type="text" value="" readonly></div>
<div class="lbl">잔액</div>
<div class="fld"><input class="hl" type="text" value="80,000" readonly></div>
<div class="lbl">특기사항</div>
<div class="fld">
<button type="button" class="btn btn-light" id="btnSpecial">특기사항 보기</button>
</div>
<div class="block bar"></div>
<div class="lbl">처리상태일시</div>
<div class="fld"><input type="text" value="2025-07-29 09:05" readonly></div>
<div class="lbl">처리상태</div>
<div class="fld"><input class="hl" type="text" value="차적조회완료" readonly></div>
<div class="lbl">차량명</div>
<div class="fld"><input type="text" value="쎄토스71" readonly></div>
<div class="lbl">차량색상</div>
<div class="fld"><input type="text" value="차량색상" readonly></div>
<div class="lbl">연료구분</div>
<div class="fld"><input type="text" value="" readonly></div>
<div></div><div></div>
<div class="block bar"></div>
<div class="section-title block">소유주 정보</div>
<div class="lbl">소유주</div>
<div class="fld"><input type="text" value="고선묵66" readonly></div>
<div class="lbl">등록구분</div>
<div class="fld"><input type="text" value="" readonly></div>
<div class="lbl">주민번호</div>
<div class="fld"><input type="text" value="******-*******" readonly></div>
<div class="lbl">우편번호</div>
<div class="fld"><input type="text" value="17613" readonly></div>
<div class="lbl">주소</div>
<div class="fld block"><input type="text" value="경기도 안성시 공도읍 마장공단3길 43, 201호66" readonly></div>
<div class="lbl">번지</div>
<div class="fld"><input type="text" value="" readonly></div>
<div class="lbl">차대번호</div>
<div class="fld"><input type="text" value="KLAYA75ADEK598855" readonly></div>
<div class="lbl">도로코드</div>
<div class="fld"><input type="text" value="" readonly></div>
<div></div><div></div>
</div>
</div>
<!-- 우측 사진/지도/프리뷰 -->
<div class="right">
<div class="section-title">사진</div>
<div class="thumbs" id="photoThumbs">
<div class="thumb" data-src="${pageContext.request.contextPath}/static/img/sample-1.jpg">
<img src="${pageContext.request.contextPath}/static/img/sample-1.jpg" alt="사진 1">
</div>
<div class="thumb" data-src="${pageContext.request.contextPath}/static/img/sample-2.jpg">
<img src="${pageContext.request.contextPath}/static/img/sample-2.jpg" alt="사진 2">
</div>
<div class="thumb" data-src="${pageContext.request.contextPath}/static/img/sample-map.jpg">
<img src="${pageContext.request.contextPath}/static/img/sample-map.jpg" alt="지도 썸네일">
</div>
</div>
<div class="mapbox">
<img src="${pageContext.request.contextPath}/static/img/sample-map.jpg" alt="지도">
</div>
<div class="preview" id="photoPreviewBox">
<img id="photoPreview" src="${pageContext.request.contextPath}/static/img/sample-1.jpg" alt="미리보기">
</div>
</div>
</div>
<div class="statusbar">
<div class="status-left">2025-00000037</div>
<div class="status-right">
<span><span class="count-dot" id="photoCount">3</span> 사진</span>
<label><input type="checkbox" id="hidePhoto"> 사진 안보이기</label>
</div>
</div>
</div>
</div>
<div id="tabs-b">
의견진술
</div>
<div id="tabs-c">
세부내역
</div>
<div id="tabs-d">
부과이후
</div>
<div id="tabs-e">
민원내역
</div>
</div>
</div>
<!-- /Main body -->
<%--<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>--%>
<%--<script src="https://code.jquery.com/ui/1.13.2/jquery-ui.min.js"></script>--%>
<script type="text/javascript">
const fnBiz = {
init: () => {
},
search: () => {
$.ajax({
url: "",
type: "POST",
data: { id : "" },
success: function(response) {
},
error: function(xhr, status, error) {
}
});
}
}
$(function () {
$("#tabs").tabs();
fnBiz.init();
});
</script>

@ -40,10 +40,12 @@
<!-- options: blue,cyan,dark,gray,green,pink,purple,red,royal,ash,crimson,namn,frost -->
<link rel="stylesheet" href="<c:url value='/css/bootstrap-datepicker.min.css' />">
<link rel="stylesheet" href="<c:url value='/css/style_new.css' />">
<link rel="stylesheet" href="<c:url value='/css/jquery-ui.css' />">
<%--================== Main Scripts ======================--%>
<script type="text/javascript" src="<c:url value='/js/jquery.min.js' />"></script>
<script type="text/javascript" src="<c:url value='/js/jquery-ui.min.js' />"></script>
<script type="text/javascript" src="<c:url value='/js/bootstrap.bundle.min.js' />"></script>
<script type="text/javascript" src="<c:url value='/js/bootstrap-datepicker.min.js' />"></script>
<!-- Plugins -->

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -244,4 +244,53 @@
margin: 8px 0;
font-size: 13px;
line-height: 1.4;
}
}
:root{
--green:#8bc34a; --border:#d9d9d9; --muted:#6b7280; --text:#111827;
--panel:#f7f7f7; --focus:rgba(37,99,235,.35); --warn:#fff3cd; --ok:#10b981;
}
/* 카드/헤더 */
.detail-card{border:1px solid var(--border); border-radius:10px; overflow:hidden; background:#fff;}
.detail-card .card-header{display:flex; justify-content:space-between; align-items:center; background:var(--green); color:#fff; padding:10px 12px;}
.card-header .title{font-weight:700}
.card-header .actions{display:flex; gap:6px; align-items:center}
.pill{font-size:12px; background:rgba(255,255,255,.25); padding:3px 8px; border-radius:999px}
.btn,.nav-btn,.close-btn{border:1px solid rgba(0,0,0,.15); background:#fff; color:#333; padding:3px 8px; border-radius:6px; cursor:pointer; font-size:12px}
.btn:focus,.nav-btn:focus,.close-btn:focus{outline:none; box-shadow:0 0 0 3px var(--focus)}
/* 본문 레이아웃 */
.detail-body{display:grid; grid-template-columns: 3fr 1fr; gap:16px; padding:16px; background:var(--panel)}
.left,.right{background:#fff; border:1px solid var(--border); border-radius:8px; padding:12px}
.section-title{font-weight:700; margin-bottom:8px}
.subnote{font-size:12px; color:#888; text-align:right; margin-top:-4px; margin-bottom:8px}
/* 폼 그리드 */
.form-grid{display:grid; grid-template-columns: 110px 1fr 110px 1fr; gap:8px 10px}
.lbl{align-self:center; color:#444; font-size:13px}
.fld input,.fld textarea,.fld select{width:100%; padding:6px 8px; border:1px solid var(--border); border-radius:6px; font-size:13px; background:#fff}
.fld input[readonly],.fld textarea[readonly]{background:#fafafa}
.fld textarea{height:80px; resize:vertical}
.badge{display:inline-block; background:#eef2ff; color:#1d4ed8; border:1px solid #c7d2fe; padding:3px 8px; border-radius:999px; font-size:12px}
.hl{background:var(--warn)}
.block{grid-column: 1 / -1}
.bar{height:1px; background:var(--border); margin:8px 0}
/* 우측 썸네일/지도/미리보기 */
.right .thumbs{display:flex; flex-direction:column; gap:8px; max-height:260px; overflow:auto; margin-bottom:10px}
.thumb{border:1px solid var(--border); border-radius:6px; overflow:hidden; cursor:pointer}
.thumb img{display:block; width:100%; height:auto}
.mapbox{border:1px solid var(--border); border-radius:6px; overflow:hidden; margin-top:8px}
.mapbox img{display:block; width:100%; height:auto}
.preview{border:1px dashed var(--border); border-radius:6px; height:220px; display:flex; align-items:center; justify-content:center; margin-top:10px; background:#fafafa}
.preview img{max-width:100%; max-height:100%; display:block}
/* 하단 상태바 */
.statusbar{display:flex; align-items:center; justify-content:space-between; padding:8px 12px; border-top:1px solid var(--border); background:#fff}
.status-left{color:#0a7f2e; font-weight:700}
.status-right{display:flex; gap:14px; align-items:center; color:#333}
.count-dot{display:inline-flex; align-items:center; justify-content:center; width:18px; height:18px; border-radius:999px; background:var(--ok); color:#fff; font-size:12px}

@ -1,14 +1,8 @@
package go.kr.project.domain.entity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.*;
import lombok.*;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

@ -1,8 +1,7 @@
package go.kr.project.domain.entity;
import lombok.Getter;
import javax.persistence.*;
import lombok.Getter;
@Entity
@Table(name = "cp_bdong", indexes = {

@ -1,12 +1,11 @@
package go.kr.project.domain.entity;
import javax.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import javax.persistence.*;
@Entity
@Table(name = "cp_cancel", indexes = {
@Index(name = "CP_CANCEL_IDX1", columnList = "CC_MMCODE"),

@ -0,0 +1,222 @@
package go.kr.project.domain.entity;
import javax.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
@Entity
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Table(name = "cp_goji_prt",
indexes = {
@Index(name = "CP_GOJI_PRT_IDX1", columnList = "GP_MMCODE, GP_SDATE"),
@Index(name = "CP_GOJI_PRT_IDX2", columnList = "GP_SGGCODE, GP_LAWGB, GP_PRTGB, GP_STATE, GP_SEND_DATE, GP_SEND_TIME"),
@Index(name = "CP_GOJI_PRT_IDX3", columnList = "GP_SGGCODE, GP_TTCODE"),
@Index(name = "CP_GOJI_PRT_IDX4", columnList = "GP_SGGCODE, GP_GTCODE"),
@Index(name = "CP_GOJI_PRT_IDX6", columnList = "GP_REGIST_NO"),
@Index(name = "CP_GOJI_PRT_IDX7", columnList = "GP_SGGCODE, GP_MM_CARNO"),
@Index(name = "CP_GOJI_PRT_IDX8", columnList = "GP_SGGCODE, GP_ACC_YEAR, GP_LVY_NO"),
@Index(name = "CP_GOJI_PRT_IDX9", columnList = "GP_CON_KEY, GP_REGIST_NO")
})
public class CpGojiPrt {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "GP_CODE", nullable = false)
private Long gpCode;
@Column(name = "GP_LAWGB", length = 2)
private String gpLawgb;
@Column(name = "GP_PRTGB", length = 1)
private String gpPrtgb;
@Column(name = "GP_TTCODE")
private Long gpTtcode;
@Column(name = "GP_GTCODE")
private Long gpGtcode;
@Column(name = "GP_SGGCODE", length = 5)
private String gpSggcode;
@Column(name = "GP_MMCODE", length = 16)
private String gpMmcode;
@Column(name = "GP_MM_CARNO", length = 100)
private String gpMmCarno;
@Column(name = "GP_MM_WDATETIME", length = 30)
private String gpMmWdatetime;
@Column(name = "GP_MM_SGPOS", length = 200)
private String gpMmSgpos;
@Column(name = "GP_LVY_KEY", length = 20)
private String gpLvyKey;
@Column(name = "GP_ACC_YEAR", length = 6)
private String gpAccYear;
@Column(name = "GP_LVY_NO", length = 6)
private String gpLvyNo;
@Column(name = "GP_ACCOUNT_NO", length = 20)
private String gpAccountNo;
@Column(name = "GP_ERC_NO", length = 19)
private String gpErcNo;
@Column(name = "GP_SDATE", length = 8)
private String gpSdate;
@Column(name = "GP_EDATE", length = 8)
private String gpEdate;
@Column(name = "GP_KEUM_T")
private Integer gpKeumT;
@Column(name = "GP_KEUM_A")
private Integer gpKeumA;
@Column(name = "GP_KEUM_B")
private Integer gpKeumB;
@Column(name = "GP_NAME", length = 100)
private String gpName;
@Column(name = "GP_JNO", length = 100)
private String gpJno;
@Column(name = "GP_JUSO", length = 100)
private String gpJuso;
@Column(name = "GP_BUNJI", length = 100)
private String gpBunji;
@Column(name = "GP_ZIP", length = 6)
private String gpZip;
@Column(name = "GP_REGIST_NO", length = 15)
private String gpRegistNo;
@Column(name = "GP_SEND_DATE", length = 8)
private String gpSendDate;
@Column(name = "GP_SEND_TIME", length = 8)
private String gpSendTime;
@Column(name = "GP_RETURN_CD", length = 100)
private String gpReturnCd;
@Column(name = "GP_RECV_NAME", length = 30)
private String gpRecvName;
@Column(name = "GP_RECV_RELT", length = 30)
private String gpRecvRelt;
@Column(name = "GP_STATE", length = 1)
private String gpState;
@Column(name = "GP_STATE_OLD", length = 1)
private String gpStateOld;
@Column(name = "GP_SEND_DATE_OLD", length = 8)
private String gpSendDateOld;
@Column(name = "GP_SEND_TIME_OLD", length = 8)
private String gpSendTimeOld;
@Column(name = "GP_SUNAP", length = 1)
private String gpSunap;
@Column(name = "GP_ADDR_UPDATE", length = 1)
private String gpAddrUpdate;
@Column(name = "GP_KEUM", length = 7)
private String gpKeum;
@Column(name = "GP_CON_KEY", length = 30)
private String gpConKey;
@Column(name = "GP_ACCOUNT_NO2", length = 20)
private String gpAccountNo2;
@Column(name = "GP_ACCOUNT_NO3", length = 20)
private String gpAccountNo3;
@Column(name = "GP_BANK_NM", length = 20)
private String gpBankNm;
@Column(name = "GP_BANK_NM2", length = 20)
private String gpBankNm2;
@Column(name = "GP_BANK_NM3", length = 20)
private String gpBankNm3;
@Column(name = "GP_ACCOUNT_NO4", length = 20)
private String gpAccountNo4;
@Column(name = "GP_ACCOUNT_NO5", length = 20)
private String gpAccountNo5;
@Column(name = "GP_ACCOUNT_NO6", length = 20)
private String gpAccountNo6;
@Column(name = "GP_ACCOUNT_NO7", length = 20)
private String gpAccountNo7;
@Column(name = "GP_ACCOUNT_NO8", length = 20)
private String gpAccountNo8;
@Column(name = "GP_ACCOUNT_NO9", length = 20)
private String gpAccountNo9;
@Column(name = "GP_ACCOUNT_NO10", length = 20)
private String gpAccountNo10;
@Column(name = "GP_ACCOUNT_NO11", length = 20)
private String gpAccountNo11;
@Column(name = "GP_BANK_NM4", length = 20)
private String gpBankNm4;
@Column(name = "GP_BANK_NM5", length = 20)
private String gpBankNm5;
@Column(name = "GP_BANK_NM6", length = 20)
private String gpBankNm6;
@Column(name = "GP_BANK_NM7", length = 20)
private String gpBankNm7;
@Column(name = "GP_BANK_NM8", length = 20)
private String gpBankNm8;
@Column(name = "GP_BANK_NM9", length = 20)
private String gpBankNm9;
@Column(name = "GP_BANK_NM10", length = 20)
private String gpBankNm10;
@Column(name = "GP_BANK_NM11", length = 20)
private String gpBankNm11;
@Column(name = "GP_TAXNO", length = 40)
private String gpTaxno;
@Column(name = "GP_PAY_OUT_DATE", length = 8)
private String gpPayOutDate;
@Column(name = "GP_ELPOST_STATE", length = 2)
private String gpElpostState;
public void changeGpSunapAfterSunap() {
this.gpSunap = "1";
}
}

@ -0,0 +1,63 @@
package go.kr.project.domain.entity;
import javax.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
@Entity
@Table(
name = "cp_goji_send_hist",
indexes = {
@Index(name = "CP_GOJI_SEND_HIST_IDX1", columnList = "GH_GPCODE"),
@Index(name = "CP_GOJI_SEND_HIST_IDX2", columnList = "GH_SGGCODE, GH_SEND_DATE, GH_SEND_TIME"),
@Index(name = "CP_GOJI_SEND_HIST_IDX3", columnList = "GH_CON_KEY, GH_REGINO")
}
)
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class CpGojiSendHist {
@Id
@Column(name = "GH_CODE", length = 18, nullable = false)
private String ghCode; // PK
@Column(name = "GH_GPCODE")
private Integer ghGpcode; // int(10)
@Column(name = "GH_SGGCODE", length = 5)
private String ghSggcode; // varchar(5)
@Column(name = "GH_CON_KEY", length = 30)
private String ghConKey; // varchar(30)
@Column(name = "GH_REGINO", length = 13)
private String ghRegino; // varchar(13)
@Column(name = "GH_SEND_DATE", length = 8)
private String ghSendDate; // varchar(8) (yyyyMMdd)
@Column(name = "GH_SEND_TIME", length = 4)
private String ghSendTime; // varchar(4) (HHmm)
@Column(name = "GH_RETURN_CD_STR", length = 100)
private String ghReturnCdStr; // varchar(100)
@Column(name = "GH_RECV_NAME", length = 70)
private String ghRecvName; // varchar(70)
@Column(name = "GH_RECV_RELT", length = 100)
private String ghRecvRelt; // varchar(100)
@Column(name = "GH_RESULT_CD", length = 2)
private String ghResultCd; // varchar(2)
@Column(name = "GH_RETURN_CD", length = 2)
private String ghReturnCd; // varchar(2)
@Column(name = "GH_RECV_RELT_CD", length = 2)
private String ghRecvReltCd; // varchar(2)
}

@ -0,0 +1,109 @@
package go.kr.project.domain.entity;
import javax.persistence.*;
import lombok.*;
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
@EqualsAndHashCode(of = "tgCode")
@Entity
@Table(
name = "cp_gojit",
indexes = {
@Index(name = "CP_GOJIT_IDX1", columnList = "TG_SGGCODE,TG_GB,TG_SDATE"),
@Index(name = "CP_GOJIT_IDX2", columnList = "TG_INDT"),
@Index(name = "CP_GOJIT_IDX3", columnList = "TG_NOTICE_KEY")
}
)
public class CpGojit {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "TG_CODE", nullable = false, updatable = false)
private Long tgCode;
@Column(name = "TG_SGGCODE", length = 5)
private String tgSggCode;
@Column(name = "TG_LAWGB", length = 2)
private String tgLawGb;
@Column(name = "TG_GB", length = 1)
private String tgGb;
@Column(name = "TG_DLGB", length = 1)
private String tgDlgb;
@Column(name = "TG_SRC_SDATE", length = 8)
private String tgSrcSdate;
@Column(name = "TG_SRC_EDATE", length = 8)
private String tgSrcEdate;
@Column(name = "TG_SDATE", length = 8)
private String tgSdate;
@Column(name = "TG_EDATE", length = 8)
private String tgEdate;
@Column(name = "TG_TITLE", length = 100)
private String tgTitle;
@Column(name = "TG_DOCNO", length = 40)
private String tgDocno;
@Column(name = "TG_ETC", length = 100)
private String tgEtc;
@Column(name = "TG_TOTCOUNT")
private Integer tgTotcount;
@Column(name = "TG_TOTKEUM")
private Long tgTotkeum;
@Column(name = "TG_INDT", length = 14)
private String tgIndt;
@Column(name = "TG_INUSER")
private Integer tgInuser;
@Column(name = "TG_CON_KEY", length = 40)
private String tgConKey;
@Column(name = "TG_POST_SE_CD", length = 3)
private String tgPostSeCd;
@Column(name = "TG_IS_RESEND", length = 1)
private String tgIsResend;
@Column(name = "TG_NOTICE_KEY", length = 13)
private String tgNoticeKey;
@Column(name = "TG_POST_PROC_STT", length = 2)
private String tgPostProcStt;
@Column(name = "TG_UNITY_SNDNG_MASTR_ID", length = 20)
private String tgUnitySndngMastrId;
@Column(name = "TG_DELETE", length = 2)
private String tgDelete;
@Column(name = "TG_POST_YN", length = 2)
private String tgPostYn;
@Column(name = "TG_ELPOST_YN", length = 2)
private String tgElpostYn;
public void changeTgPostProcStt(String tgPostProcStt) {
this.tgPostProcStt = tgPostProcStt;
}
public void changeTgCode(Long tgCode) {
this.tgCode = tgCode;
}
}

@ -0,0 +1,47 @@
package go.kr.project.domain.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
@Entity
@Table(name = "cp_imagesize")
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class CpImagesize {
@Id
@Column(name = "IS_MMCODE", length = 16, nullable = false)
private String isMmcode;
@Column(name = "IS_IMAGE1", columnDefinition = "int default 0")
private Integer isImage1;
@Column(name = "IS_IMAGE2", columnDefinition = "int default 0")
private Integer isImage2;
@Column(name = "IS_IMAGE3", columnDefinition = "int default 0")
private Integer isImage3;
@Column(name = "IS_IMAGE4", columnDefinition = "int default 0")
private Integer isImage4;
@Column(name = "IS_VIDEO", columnDefinition = "int default 0")
private Integer isVideo;
@Column(name = "IS_RECALL1", columnDefinition = "int default 0")
private Integer isRecall1;
@Column(name = "IS_RECALL2", columnDefinition = "int default 0")
private Integer isRecall2;
@Column(name = "IS_RECALL3", columnDefinition = "int default 0")
private Integer isRecall3;
}

@ -0,0 +1,49 @@
package go.kr.project.domain.entity;
import javax.persistence.*;
import lombok.*;
@Entity
@Table(
name = "cp_instruct",
indexes = {
@Index(name = "CP_INSTRUCT_IDX1", columnList = "IT_MMCODE"),
@Index(name = "CP_INSTRUCT_IDX2", columnList = "IT_SGGCODE, IT_DATE")
}
)
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Builder
@ToString
public class CpInstruct {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "IT_CODE", nullable = false)
private Long itCode;
@Column(name = "IT_SGGCODE", length = 5)
private String itSggcode;
@Column(name = "IT_MMCODE", length = 16)
private String itMmcode;
@Column(name = "IT_DATE", length = 8)
private String itDate;
@Column(name = "IT_CAUSE", length = 2)
private String itCause;
@Column(name = "IT_ETC", length = 100)
private String itEtc;
@Column(name = "IT_INDT", length = 14)
private String itIndt;
@Column(name = "IT_INUSER")
private Integer itInuser;
}

@ -0,0 +1,34 @@
package go.kr.project.domain.entity;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
@Entity
@Table(name = "cp_instruct_answer")
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class CpInstructAnswer {
@EmbeddedId
private CpInstructAnswerId id;
@Column(name = "IA_ID", length = 50)
private String iaId;
@Column(name = "IA_ANSWERTEXT", length = 500)
private String iaAnswerText;
@Column(name = "IA_MAILTITLE", length = 100)
private String iaMailtitle;
@Column(name = "IA_MAILTEXT", length = 1000)
private String iaMailtext;
}

@ -0,0 +1,21 @@
package go.kr.project.domain.entity;
import javax.persistence.Column;
import javax.persistence.Embeddable;
import lombok.*;
import java.io.Serializable;
@Embeddable
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
@EqualsAndHashCode
public class CpInstructAnswerId implements Serializable {
@Column(name = "IA_SGGCODE", length = 5, nullable = false)
private String iaSggcode;
@Column(name = "IA_CODE", length = 3, nullable = false)
private String iaCode;
}

@ -1,14 +1,13 @@
package go.kr.project.domain.entity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
@Entity
@Table(name = "cp_main")
@ -159,4 +158,32 @@ public class CpMain {
@Column(name = "MM_TRANSMIT_TEAM", length = 50)
private String mmTransmitTeam;
public void changeMmStateAfterSunap() {
String newState;
switch (this.mmState) {
case "41":
newState = "71";
break;
case "51":
newState = "72";
break;
case "52":
newState = "73";
break;
case "53":
newState = "74";
break;
case "54":
case "55":
newState = "75";
break;
default:
newState = "71";
break;
}
this.mmState = newState;
}
}

@ -1,14 +1,13 @@
package go.kr.project.domain.entity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
@Entity
@Table(name = "cp_main_etc1")

@ -0,0 +1,134 @@
package go.kr.project.domain.entity;
import javax.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
@Entity
@Table(name = "cp_match")
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class CpMatch {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "MC_CODE", nullable = false)
private Long mcCode;
@Column(name = "MC_MMCODE", length = 16)
private String mcMmcode;
@Column(name = "MC_MM_WDATETIME", length = 30)
private String mcMmWdatetime;
@Column(name = "MC_MM_SGPOS", length = 200)
private String mcMmSgpos;
@Column(name = "MC_BDONG", length = 30)
private String mcBdong;
@Column(name = "MC_LVY_KEY_0", length = 20)
private String mcLvyKey0;
@Column(name = "MC_LVY_KEY", length = 20)
private String mcLvyKey;
@Column(name = "MC_ACC_YEAR", length = 6)
private String mcAccYear;
@Column(name = "MC_LVY_NO", length = 6)
private String mcLvyNo;
@Column(name = "MC_ACCOUNT_NO", length = 20)
private String mcAccountNo;
@Column(name = "MC_ERC_NO", length = 19)
private String mcErcNo;
@Column(name = "MC_KEUM_T", length = 8)
private String mcKeumT;
@Column(name = "MC_KEUM_A", length = 8)
private String mcKeumA;
@Column(name = "MC_KEUM_B", length = 8)
private String mcKeumB;
@Column(name = "MC_INDT", length = 14)
private String mcIndt;
@Column(name = "MC_EDITDT", length = 14)
private String mcEditdt;
@Column(name = "MC_STATE", length = 1)
private String mcState;
@Column(name = "MC_ACCOUNT_NO2", length = 20)
private String mcAccountNo2;
@Column(name = "MC_ACCOUNT_NO3", length = 20)
private String mcAccountNo3;
@Column(name = "MC_BANK_NM", length = 20)
private String mcBankNm;
@Column(name = "MC_BANK_NM2", length = 20)
private String mcBankNm2;
@Column(name = "MC_BANK_NM3", length = 20)
private String mcBankNm3;
@Column(name = "MC_ACCOUNT_NO4", length = 20)
private String mcAccountNo4;
@Column(name = "MC_ACCOUNT_NO5", length = 20)
private String mcAccountNo5;
@Column(name = "MC_ACCOUNT_NO6", length = 20)
private String mcAccountNo6;
@Column(name = "MC_ACCOUNT_NO7", length = 20)
private String mcAccountNo7;
@Column(name = "MC_ACCOUNT_NO8", length = 20)
private String mcAccountNo8;
@Column(name = "MC_ACCOUNT_NO9", length = 20)
private String mcAccountNo9;
@Column(name = "MC_ACCOUNT_NO10", length = 20)
private String mcAccountNo10;
@Column(name = "MC_ACCOUNT_NO11", length = 20)
private String mcAccountNo11;
@Column(name = "MC_BANK_NM4", length = 20)
private String mcBankNm4;
@Column(name = "MC_BANK_NM5", length = 20)
private String mcBankNm5;
@Column(name = "MC_BANK_NM6", length = 20)
private String mcBankNm6;
@Column(name = "MC_BANK_NM7", length = 20)
private String mcBankNm7;
@Column(name = "MC_BANK_NM8", length = 20)
private String mcBankNm8;
@Column(name = "MC_BANK_NM9", length = 20)
private String mcBankNm9;
@Column(name = "MC_BANK_NM10", length = 20)
private String mcBankNm10;
@Column(name = "MC_BANK_NM11", length = 20)
private String mcBankNm11;
}

@ -1,12 +1,8 @@
package go.kr.project.domain.entity;
import javax.persistence.*;
import lombok.Getter;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.Table;
@Entity
@Table(name = "cp_setinfo")
@Getter

@ -1,11 +1,11 @@
package go.kr.project.domain.entity;
import javax.persistence.Column;
import javax.persistence.Embeddable;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.NoArgsConstructor;
import javax.persistence.Column;
import javax.persistence.Embeddable;
import java.io.Serializable;
import java.util.Objects;

@ -1,11 +1,10 @@
package go.kr.project.domain.entity;
import lombok.Getter;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import lombok.Getter;
@Entity
@Table(name = "cp_sgg")
@ -14,7 +13,7 @@ public class CpSgg {
@Id
@Column(name = "SG_SGGCODE", length = 5, nullable = false)
private String sgSggCode;
private String sgSggcode;
@Column(name = "SG_SGGNAME", length = 20)
private String sgSggName;

@ -1,16 +1,13 @@
package go.kr.project.domain.entity;
import javax.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import javax.persistence.*;
@Entity
@Table(name = "cp_user", indexes = {
@Index(name = "CP_USER_IDX1", columnList = "UM_SGGCODE")
})
@Table(name = "tb_user")
@Getter
@NoArgsConstructor
@AllArgsConstructor

@ -1,12 +1,8 @@
package go.kr.project.domain.entity;
import javax.persistence.*;
import lombok.Getter;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.Table;
@Entity
@Table(name = "cp_violation")
@Getter

@ -0,0 +1,39 @@
package go.kr.project.domain.entity;
import javax.persistence.Column;
import javax.persistence.Embeddable;
import lombok.*;
import java.io.Serializable;
import java.util.Objects;
@Embeddable
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CpViolationId implements Serializable {
@Column(name = "VL_SGGCODE", length = 5, nullable = false)
private String vlSggcode;
@Column(name = "VL_JOBGROUP", length = 2, nullable = false)
private String vlJobgroup;
@Column(name = "VL_CODE", length = 2, nullable = false)
private String vlCode;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof CpViolationId)) return false;
CpViolationId that = (CpViolationId) o;
return Objects.equals(vlSggcode, that.vlSggcode)
&& Objects.equals(vlJobgroup, that.vlJobgroup)
&& Objects.equals(vlCode, that.vlCode);
}
@Override
public int hashCode() {
return Objects.hash(vlSggcode, vlJobgroup, vlCode);
}
}

@ -0,0 +1,56 @@
package go.kr.project.domain.entity;
import javax.persistence.*;
import lombok.*;
@Entity
@Table(
name = "epost_deliv_result",
indexes = {
@Index(name = "EPOST_DELIV_RESULT_IDX1", columnList = "CON_KEY, REGINO, DELIVYMD, DELIVHHMI")
}
)
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class EpostDelivResult {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "SEQ_KEY", nullable = false, updatable = false)
private Long seqKey;
@Column(name = "CON_KEY", nullable = false, length = 30)
private String conKey;
@Column(name = "REGINO", nullable = false, length = 13)
private String regino;
@Column(name = "DELIVYMD", nullable = false, length = 8)
private String delivYmd;
@Column(name = "DELIVHHMI", nullable = false, length = 4)
private String delivHhmi;
@Column(name = "OUTSIDUSERID", length = 13)
private String outsidUserId;
@Column(name = "DELIVRSLTCD", length = 2)
private String delivRsltCd;
@Column(name = "NONDELIVREASNCD", length = 2)
private String nonDelivReasnCd;
@Column(name = "NONDELIVREASNCDNM", length = 60)
private String nonDelivReasnCdNm;
@Column(name = "SUBRECPRSNNM", length = 70)
private String subRecPrsnNm;
@Column(name = "RELRECPRSNCD", length = 2)
private String relRecPrsnCd;
@Column(name = "RELRECPRSNCDNM", length = 100)
private String relRecPrsnCdNm;
}

@ -0,0 +1,34 @@
package go.kr.project.domain.entity;
import javax.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
@Entity
@Table(name = "epost_make_result")
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
@IdClass(EpostMakeResultId.class)
public class EpostMakeResult {
@Id
@Column(name = "CON_KEY", nullable = false, length = 30)
private String conKey;
@Id
@Column(name = "RGST_NMBR", nullable = false, length = 13)
private String rgstNmbr;
@Column(name = "RELETCDATA", length = 200)
private String reletcData;
@Column(name = "DATA_CD", length = 2)
private String dataCd;
@Column(name = "MAIL_CNT", length = 5)
private String mailCnt;
}

@ -0,0 +1,17 @@
package go.kr.project.domain.entity;
import lombok.AllArgsConstructor;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Getter
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode
public class EpostMakeResultId implements Serializable {
private String conKey;
private String rgstNmbr;
}

@ -0,0 +1,62 @@
package go.kr.project.domain.entity;
import javax.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
@Entity
@Table(
name = "epost_rcept_result",
indexes = {
@Index(name = "EPOST_RCEPT_RESULT_IDX2", columnList = "RELETCDATA, DIV_KB, EXTRI_REGYMD")
}
)
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class EpostRceptResult {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "RR_CODE", nullable = false, updatable = false)
private Long rrCode;
@Column(name = "CON_ORG", nullable = false, length = 13)
private String conOrg;
@Column(name = "RELORSECT_CD", nullable = false, length = 15)
private String relOrSectCd;
@Column(name = "RELETCDATA", nullable = false, length = 200)
private String reletcData;
@Column(name = "EXTRI_REGYMD", nullable = false, length = 8)
private String extriRegYmd;
@Column(name = "RCEPT_YMD", length = 8)
private String rceptYmd;
@Column(name = "RCEPT_ID", length = 5)
private String rceptId;
@Column(name = "DIV_KB", nullable = false, length = 3)
private String divKb;
@Column(name = "RCEPT_CNT", nullable = false)
private Integer rceptCnt;
@Column(name = "RCEPT_AMT")
private Integer rceptAmt;
@Column(name = "USEFEE_AMT")
private Integer usefeeAmt;
@Column(name = "TOTPOST_PRC")
private Integer totpostPrc;
@Column(name = "JOB_CD")
private Integer jobCd;
}

@ -0,0 +1,31 @@
package go.kr.project.domain.entity;
import javax.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
@Entity
@Table(
name = "epost_rgst_nmbr",
indexes = {
@Index(name = "EPOST_RGST_NMBR_IDX1", columnList = "PCURSOR")
}
)
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class EpostRgstNmbr {
@Id
@Column(name = "RGST_NMBR", columnDefinition = "char(13)", nullable = false)
private String rgstNmbr;
@Column(name = "RGST_NMBR_NEXT", columnDefinition = "char(13)")
private String rgstNmbrNext;
@Column(name = "PCURSOR", columnDefinition = "char(1)")
private String pcursor;
}

@ -0,0 +1,205 @@
package go.kr.project.domain.entity;
import javax.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
@Entity
@Table(name = "epost_sender_detail")
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
@IdClass(EpostSenderDetailId.class)
public class EpostSenderDetail {
@Id
@Column(name = "CON_KEY", nullable = false, length = 30)
private String conKey;
@Id
@Column(name = "RGST_NMBR", nullable = false, length = 13)
private String rgstNmbr;
@Column(name = "RECEV_SEQ", length = 20)
private String recevSeq;
@Column(name = "RECEV_CODE", length = 10)
private String recevCode;
@Column(name = "RECEV_BAR1D", length = 18)
private String recevBar1d;
@Column(name = "RECEV_BAR2D", length = 170)
private String recevBar2d;
@Column(name = "RECEV_BILL_NUMBER", length = 21)
private String recevBillNumber;
@Column(name = "RECEV_DOC_CD1", length = 60)
private String recevDocCd1;
@Column(name = "RECEV_DOC_CD2", length = 30)
private String recevDocCd2;
@Column(name = "RECEV_DOC_CD3", length = 6)
private String recevDocCd3;
@Column(name = "RECEV_DOC_CD4", length = 60)
private String recevDocCd4;
@Column(name = "RECEV_DOC_CD5", length = 15)
private String recevDocCd5;
@Column(name = "RECEV_SUBJ1", length = 6)
private String recevSubj1;
@Column(name = "RECEV_SUBJ2", length = 6)
private String recevSubj2;
@Column(name = "RECEV_SUBJ3", length = 14)
private String recevSubj3;
@Column(name = "RECEV_VIOLATE_DT", length = 30)
private String recevViolateDt;
@Column(name = "RECEV_VIOLATE_DONG", length = 39)
private String recevViolateDong;
@Column(name = "RECEV_VIOLATE_PLACE", length = 80)
private String recevViolatePlace;
@Column(name = "RECEV_LAWS", length = 70)
private String recevLaws;
@Column(name = "RECEV_PAY_NUMBER1", length = 17)
private String recevPayNumber1;
@Column(name = "RECEV_PAY_NUMBER2", length = 15)
private String recevPayNumber2;
@Column(name = "RECEV_OCR0", length = 32)
private String recevOcr0;
@Column(name = "RECEV_OCR1", length = 54)
private String recevOcr1;
@Column(name = "RECEV_OCR2", length = 54)
private String recevOcr2;
@Column(name = "RECEV_ONLINE_PAY_NUMBER", length = 30)
private String recevOnlinePayNumber;
@Column(name = "RECEV_VACCOUNT_NUMBER", length = 50)
private String recevVaccountNumber;
@Column(name = "RECEV_VACCOUNT_NUMBER2", length = 50)
private String recevVaccountNumber2;
@Column(name = "RECEV_VACCOUNT_NUMBER3", length = 50)
private String recevVaccountNumber3;
@Column(name = "RECEV_VACCOUNT_NUMBER4", length = 50)
private String recevVaccountNumber4;
@Column(name = "RECEV_VACCOUNT_NUMBER5", length = 50)
private String recevVaccountNumber5;
@Column(name = "RECEV_VACCOUNT_NUMBER6", length = 50)
private String recevVaccountNumber6;
@Column(name = "RECEV_VACCOUNT_NUMBER7", length = 50)
private String recevVaccountNumber7;
@Column(name = "RECEV_VACCOUNT_NUMBER8", length = 50)
private String recevVaccountNumber8;
@Column(name = "RECEV_VACCOUNT_NUMBER9", length = 50)
private String recevVaccountNumber9;
@Column(name = "RECEV_VACCOUNT_NUMBER10", length = 50)
private String recevVaccountNumber10;
@Column(name = "RECEV_VACCOUNT_NUMBER11", length = 50)
private String recevVaccountNumber11;
@Column(name = "RECEV_FINE_PRICE", length = 10)
private String recevFinePrice;
@Column(name = "RECEV_PAY_PRICE", length = 10)
private String recevPayPrice;
@Column(name = "RECEV_PAY_DT", length = 15)
private String recevPayDt;
@Column(name = "RECEV_PAY_IN_DATE", length = 20)
private String recevPayInDate;
@Column(name = "RECEV_PAY_IN_PRICE", length = 20)
private String recevPayInPrice;
@Column(name = "RECEV_PAY_IN_ADD_PRICE", length = 20)
private String recevPayInAddPrice;
@Column(name = "RECEV_PAY_IN_DEFAULT_PRICE", length = 20)
private String recevPayInDefaultPrice;
@Column(name = "RECEV_PAY_OUT_DATE", length = 20)
private String recevPayOutDate;
@Column(name = "RECEV_PAY_OUT_PRICE", length = 20)
private String recevPayOutPrice;
@Column(name = "RECEV_PAY_OUT_ADD_PRICE", length = 20)
private String recevPayOutAddPrice;
@Column(name = "RECEV_PAY_OUT_DEFAULT_PRICE", length = 20)
private String recevPayOutDefaultPrice;
@Column(name = "RECEV_CAR_NUMBER", length = 50)
private String recevCarNumber;
@Column(name = "RECEV_CAR_OWNER_ZIPCODE", length = 6)
private String recevCarOwnerZipcode;
@Column(name = "RECEV_CAR_OWNER_ADDR", length = 100)
private String recevCarOwnerAddr;
@Column(name = "RECEV_CAR_OWNER_DETAILADDR", length = 160)
private String recevCarOwnerDetailaddr;
@Column(name = "RECEV_CAR_OWNER_NM", length = 60)
private String recevCarOwnerNm;
@Column(name = "RECEV_CAR_OWNER_SSN", length = 6)
private String recevCarOwnerSsn;
@Column(name = "RECEV_EVIDENCE_NUMBER", length = 24)
private String recevEvidenceNumber;
@Column(name = "RECEV_PHOTO_CNT")
private Integer recevPhotoCnt; // int(2)
@Column(name = "RECEV_PHOTO_FILE1", length = 80)
private String recevPhotoFile1;
@Column(name = "RECEV_PHOTO_FILE2", length = 80)
private String recevPhotoFile2;
@Column(name = "RECEV_PHOTO_FILE3", length = 80)
private String recevPhotoFile3;
@Column(name = "RECEV_PHOTO_FILE4", length = 80)
private String recevPhotoFile4;
@Column(name = "DELIV_RESULT_CODE")
private Integer delivResultCode; // int(10)
@Column(name = "MAKE_RESULT_CD", length = 2)
private String makeResultCd;
@Column(name = "POST_SEND_STATE", length = 2)
private String postSendState;
}

@ -0,0 +1,17 @@
package go.kr.project.domain.entity;
import lombok.AllArgsConstructor;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Getter
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode
public class EpostSenderDetailId implements Serializable {
private String conKey;
private String rgstNmbr;
}

@ -0,0 +1,159 @@
package go.kr.project.domain.entity;
import javax.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
@Entity
@Table(
name = "epost_sender_reg",
indexes = {
@Index(name = "EPOST_SENDER_REG_IDX1", columnList = "REG_YMD, POST_PROC_STT"),
@Index(name = "EPOST_SENDER_REG_IDX2", columnList = "REG_YMD, RELORSECT_CD, POST_PROC_STT")
}
)
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class EpostSenderReg {
@Id
@Column(name = "CON_KEY", nullable = false, length = 30)
private String conKey;
@Column(name = "RCEPT_ID", length = 5) // char(5)
private String rceptId;
@Column(name = "DATA_CD", length = 2)
private String dataCd;
@Column(name = "DIV_KB", length = 3)
private String divKb;
@Column(name = "DFPAYYN", length = 3)
private String dfpayyn;
@Column(name = "RCPT_KB", length = 3)
private String rcptKb;
@Column(name = "SEAL_CD", length = 3)
private String sealCd;
@Column(name = "WORD_KB", length = 3)
private String wordKb;
@Column(name = "MAIL_CNT")
private Integer mailCnt; // int(5)
@Column(name = "RECEV_CNT")
private Integer recevCnt; // int(7)
@Column(name = "ENV_CD", length = 3)
private String envCd;
@Column(name = "COLOR_YN", length = 1)
private String colorYn;
@Column(name = "MM_YN", length = 1)
private String mmYn;
@Column(name = "FLEX_CD", length = 1)
private String flexCd;
@Column(name = "DM_CNT")
private Integer dmCnt; // int(2)
@Column(name = "SB_FG", length = 1)
private String sbFg;
@Column(name = "APVL_NB", length = 10)
private String apvlNb;
@Column(name = "SEND_DATE", length = 8)
private String sendDate;
@Column(name = "SEND_TIME", length = 6)
private String sendTime;
@Column(name = "RELORSECT_CD", length = 15)
private String relorsectCd;
@Column(name = "RECEV_SENDER_ORG_CODE", length = 15)
private String recevSenderOrgCode;
@Column(name = "RECEV_SENDER_NM", length = 40)
private String recevSenderNm;
@Column(name = "RECEV_SENDER_ZIPCODE", length = 6)
private String recevSenderZipcode;
@Column(name = "RECEV_SENDER_ADDR", length = 60)
private String recevSenderAddr;
@Column(name = "RECEV_SENDER_DETAIL_ADDR", length = 100)
private String recevSenderDetailAddr;
@Column(name = "RECEV_SENDER_DEPART_TEL", length = 60)
private String recevSenderDepartTel;
@Column(name = "RECEV_SENDER_DEPART_NM", length = 30)
private String recevSenderDepartNm;
@Column(name = "RECEV_DIV_CD", length = 1)
private String recevDivCd;
@Column(name = "RECEV_PRINT_DT", length = 21)
private String recevPrintDt;
@Column(name = "RECEV_PRINT_YEAR", length = 4)
private String recevPrintYear;
@Column(name = "RECEV_PRINT_MONTH", length = 2)
private String recevPrintMonth;
@Column(name = "RECEV_PRINT_DAY", length = 2)
private String recevPrintDay;
@Column(name = "RECEV_SENDER_FAX", length = 20)
private String recevSenderFax;
@Column(name = "RECEV_SERDER_STAFF", length = 30) // 원문 컬럼명 그대로
private String recevSerderStaff;
@Column(name = "RECEV_SENDER_EMAIL", length = 60)
private String recevSenderEmail;
@Column(name = "JOB_CD", length = 4)
private String jobCd;
@Column(name = "POST_PROC_STT", length = 2)
private String postProcStt;
@Column(name = "DELETE_AT", length = 1)
private String deleteAt;
@Column(name = "REG_YMD", length = 8)
private String regYmd;
@Column(name = "RCEPT_YMD", length = 8)
private String rceptYmd;
@Column(name = "REG_SYS_SE", length = 10)
private String regSysSe;
@Column(name = "TG_CODE", length = 10)
private String tgCode;
public void changePostProcStt(String postProcStt) {
this.postProcStt = postProcStt;
}
public void changeRceptYmd(String rceptYmd) {
this.rceptYmd = rceptYmd;
}
}

@ -0,0 +1,81 @@
package go.kr.project.domain.entity;
import javax.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
@Entity
@Table(name = "tb_cntc_sndng_detail")
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class TbCntcSndngDetail {
@Id
@Column(name = "unity_sndng_detail_id", length = 20, nullable = false)
private String unitySndngDetailId; // 통합 발송 상세 ID (PK)
@Column(name = "unity_sndng_mastr_id", length = 20)
private String unitySndngMastrId; // 통합 발송 마스터 ID
@Column(name = "signgu_code", length = 50)
private String signguCode; // 시군구 코드
@Column(name = "ffnlg_code", length = 2)
private String ffnlgCode; // 과태료 코드
@Column(name = "main_code", length = 30)
private String mainCode; // 메인 코드
@Column(name = "vhcle_no", length = 30)
private String vhcleNo; // 차량 번호
@Column(name = "ihidnum", length = 100)
private String ihidnum; // 주민등록번호
@Column(name = "moblphon_no", length = 20)
private String moblphonNo; // 핸드폰 번호
@Column(name = "nm", length = 200)
private String nm; // 성명
@Column(name = "adres", length = 300)
private String adres; // 주소
@Column(name = "detail_adres", length = 300)
private String detailAdres; // 상세 주소
@Column(name = "zip", length = 5)
private String zip; // 우편번호
@Lob
@Column(name = "tmplt_msg_data")
private String tmpltMsgData; // 템플릿 메시지 데이터 (LONGTEXT)
@Lob
@Column(name = "mobile_page_cn")
private String mobilePageCn; // 모바일 페이지 내용 (LONGTEXT)
@Column(name = "use_instt_idntfc_id", length = 30)
private String useInsttIdntfcId; // 이용 기관 식별 ID
@Column(name = "external_document_uuid", length = 40)
private String externalDocumentUuid; // 외부 문서 식별 번호
@Column(name = "regist_dt")
private LocalDateTime registDt; // 등록일자
@Column(name = "register", length = 20)
private String register; // 등록자
@Column(name = "updt_dt")
private LocalDateTime updtDt; // 수정일자
@Column(name = "updusr", length = 20)
private String updusr; // 수정자
}

@ -0,0 +1,63 @@
package go.kr.project.domain.entity;
import javax.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
@Entity
@Table(name = "tb_cntc_sndng_result")
@IdClass(TbCntcSndngResultId.class)
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class TbCntcSndngResult {
@Id
@Column(name = "unity_sndng_detail_id", length = 20, nullable = false)
private String unitySndngDetailId; // PK1
@Id
@Column(name = "sndng_se_code", length = 20, nullable = false)
private String sndngSeCode; // PK2
@Column(name = "signgu_code", length = 50)
private String signguCode; // 시군구 코드
@Column(name = "ffnlg_code", length = 2)
private String ffnlgCode; // 과태료 코드
@Column(name = "sndng_result_sttus", length = 50)
private String sndngResultSttus; // 발송 결과 상태
@Column(name = "requst_dt", length = 20)
private String requstDt; // 요청 일시 (문자열 컬럼 정의대로 String)
@Column(name = "inqire_dt", length = 20)
private String inqireDt; // 조회 일시
@Column(name = "readng_dt", length = 20)
private String readngDt; // 열람 일시
@Column(name = "error_cn", length = 1000)
private String errorCn; // 오류 내용
@Column(name = "rgist_no", length = 13)
private String rgistNo; // 등기번호
@Column(name = "regist_dt")
private LocalDateTime registDt; // 등록일자
@Column(name = "register", length = 20)
private String register; // 등록자
@Column(name = "updt_dt")
private LocalDateTime updtDt; // 수정일자
@Column(name = "updusr", length = 20)
private String updusr; // 수정자
}

@ -0,0 +1,17 @@
package go.kr.project.domain.entity;
import lombok.AllArgsConstructor;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Getter
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode
public class TbCntcSndngResultId implements Serializable {
private String unitySndngDetailId; // varchar(20)
private String sndngSeCode; // varchar(20)
}

@ -0,0 +1,117 @@
package go.kr.project.domain.entity;
import javax.persistence.*;
import lombok.*;
import org.hibernate.annotations.Comment;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
@Entity
@Table(name = "tb_answer")
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class CpAnswer {
@Id
@Column(name = "crdn_id", length = 16)
@Comment("단속 ID")
private String asMmcode;
@Column(name = "sgg_cd", length = 5)
@Comment("시군구코드")
private String asSggcode;
@Column(name = "rcpt_se", length = 3)
@Comment("접수구분")
private String asIngb;
@Column(name = "rcpt_ymd", length = 8)
@Comment("접수일자")
private String asJsdate;
@Column(name = "cvlcpt_rcpt_no", length = 30)
@Comment("민원 접수 번호")
private String asJsno;
@Column(name = "ans_rcpt_no", length = 30)
@Comment("답변 접수 번호")
private String asJsnoM;
@Column(name = "list_no", length = 15)
@Comment("목록번호")
private String asBbsNo;
@Column(name = "ans_expry_ymd", length = 16)
@Comment("답변만료일자")
private String asLimitDt;
@Column(name = "dcl", length = 50)
@Comment("신고자")
private String asUser;
@Column(name = "cnpl", length = 20)
@Comment("연락처")
private String asTel;
@Column(name = "mobl_no", length = 20)
@Comment("모바일 번호")
private String asCell;
@Column(name = "eml", length = 50)
@Comment("이메일")
private String asEmail;
@Column(name = "prcs_stts", length = 1)
@Comment("처리상태")
private String asState;
@Column(name = "ans_se", length = 1)
@Comment("답변구분")
private String asPostCd;
@Column(name = "ans_ymd", length = 14)
@Comment("답변일자")
private String asPostDt;
@Column(name = "mdfcn_dt", length = 14)
@Comment("수정일시")
private String asStateDt;
@Column(name = "ans_cn", length = 1000)
@Comment("답변내용")
private String asText;
@Column(name = "prcs_pic", length = 5)
@Comment("처리 담당자")
private Integer asReuser;
@Column(name = "prk_infr_se", length = 1)
@Comment("주차 침해 구분")
private String asInline;
@Column(name = "dclr_sys_cd", length = 8)
@Comment("신고 시스템 코드")
private String asSysGubunC;
@Column(name = "dclr_inst_cd", length = 7)
@Comment("전파항목코드")
private String asPetiAncCodeV;
@Column(name = "dclr_data_cd", length = 30)
@Comment("신고자료코드")
private String asPetiNoC;
public void changeState(String newState) {
this.asState = newState;
}
public void changePostDtNow() {
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
this.asPostDt = LocalDateTime.now().format(dtf);
}
}

@ -0,0 +1,28 @@
package go.kr.project.domain.entity;
import javax.persistence.*;
import lombok.Getter;
import org.hibernate.annotations.Comment;
@Entity
@Table(name = "tb_stdg")
@Getter
public class CpBdong {
@Id
@Column(name = "stdg_cd", length = 10)
@Comment("법정동코드")
private String bdCode;
@Column(name = "sggnm", length = 40)
@Comment("시군구명")
private String bdSggName;
@Column(name = "stdgnm", length = 40)
@Comment("법정동명")
private String bdDongName;
@Column(name = "use_yn", length = 1)
@Comment("사용여부")
private String bdEnable;
}

@ -0,0 +1,50 @@
package go.kr.project.domain.entity;
import javax.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Comment;
@Entity
@Table(name = "tb_nrcg")
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class CpCancel {
@Id
@Column(name = "nrcg_id")
@Comment("불인정 ID")
private Long ccCode;
@Column(name = "sggcd", length = 5)
@Comment("시군구코드")
private String ccSggcode;
@Column(name = "crdn_id", length = 16)
@Comment("단속 ID")
private String ccMmcode;
@Column(name = "nrcg_ymd", length = 8)
@Comment("불인정일자")
private String ccDate;
@Column(name = "nrcg_rsn", length = 3)
@Comment("불인정사유")
private String ccCause;
@Column(name = "excptnmttr", length = 100)
@Comment("특이사항")
private String ccEtc;
@Column(name = "nrcg_dt", length = 14)
@Comment("불인정일시")
private String ccIndt;
@Column(name = "prcs_pic")
@Comment("처리 담당자")
private Integer ccInuser;
}

@ -0,0 +1,267 @@
package go.kr.project.domain.entity;
import javax.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Comment;
@Entity
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Table(name = "tb_infrm_dtl")
public class CpGojiPrt {
@Id
@Column(name = "INFRMDTL_ID")
@Comment("고지상세 ID")
private Long gpCode;
@Column(name = "VLTNCN_CD", length = 2)
@Comment("위반내용 코드")
private String gpLawgb;
@Column(name = "SNDNG_SE", length = 1)
@Comment("발송구분")
private String gpPrtgb;
@Column(name = "INFRMLIST_ID")
@Comment("고지목록 ID")
private Long gpTtcode;
@Column(name = "SVBTC_ID")
@Comment("공시송달 ID")
private Long gpGtcode;
@Column(name = "SGG_CD", length = 5)
@Comment("시군구코드")
private String gpSggcode;
@Column(name = "CRDN_ID", length = 16)
@Comment("단속 ID")
private String gpMmcode;
@Column(name = "VHRNO", length = 100)
@Comment("자동차등록번호")
private String gpMmCarno;
@Column(name = "VLTN_DT", length = 30)
@Comment("위반일시")
private String gpMmWdatetime;
@Column(name = "VLTN_PLC", length = 200)
@Comment("위반장소")
private String gpMmSgpos;
@Column(name = "LEVY_CD", length = 11)
@Comment("부과코드")
private String gpLvyKey;
@Column(name = "ACNTG_YR", length = 6)
@Comment("회계년도")
private String gpAccYear;
@Column(name = "LEVY_NO", length = 6)
@Comment("부과번호")
private String gpLvyNo;
@Column(name = "EPAYNO", length = 19)
@Comment("전자납부번호")
private String gpErcNo;
@Column(name = "LEVY_YMD", length = 8)
@Comment("부과일자")
private String gpSdate;
@Column(name = "DUDT_YMD", length = 8)
@Comment("납기일자")
private String gpEdate;
@Column(name = "MNTX")
@Comment("본세")
private Integer gpKeumT;
@Column(name = "ADDTX")
@Comment("가산세")
private Integer gpKeumA;
@Column(name = "GRAMT")
@Comment("총금액")
private Integer gpKeumB;
@Column(name = "TXPR", length = 100)
@Comment("납세자")
private String gpName;
@Column(name = "RRNO", length = 100)
@Comment("주민등록번호")
private String gpJno;
@Column(name = "ADDR", length = 100)
@Comment("주소")
private String gpJuso;
@Column(name = "DTL_ADDR", length = 100)
@Comment("상세주소")
private String gpBunji;
@Column(name = "ZIP", length = 6)
@Comment("우편번호")
private String gpZip;
@Column(name = "RGNO", length = 15)
@Comment("등기번호")
private String gpRegistNo;
@Column(name = "SNDNG_YMD", length = 8)
@Comment("발송일자")
private String gpSendDate;
@Column(name = "SNDNG_HR", length = 8)
@Comment("발송시간")
private String gpSendTime;
@Column(name = "SNDBK_RSN", length = 100)
@Comment("반송사유")
private String gpReturnCd;
@Column(name = "ADDRSE_NM", length = 30)
@Comment("수취인명")
private String gpRecvName;
@Column(name = "ADDRSE_REL", length = 30)
@Comment("수취인 관계")
private String gpRecvRelt;
@Column(name = "DATA_STTS", length = 1)
@Comment("자료 상태")
private String gpState;
@Column(name = "BFR_DATA_STTS", length = 1)
@Comment("이전 자료 상태")
private String gpStateOld;
@Column(name = "BFR_SNDNG_YMD", length = 8)
@Comment("이전 발송일자")
private String gpSendDateOld;
@Column(name = "BFR_SNDNG_HR", length = 8)
@Comment("이전 발송시간")
private String gpSendTimeOld;
@Column(name = "RCVMT_YN", length = 1)
@Comment("수납여부")
private String gpSunap;
@Column(name = "UPDT_YN", length = 1)
@Comment("갱신 여부")
private String gpAddrUpdate;
@Column(name = "FRST_MNTX", length = 7)
@Comment("최초본세")
private String gpKeum;
@Column(name = "MAIL_LINK_CD", length = 30)
@Comment("우편 연계 코드")
private String gpConKey;
@Column(name = "VRACTNO_1", length = 20)
@Comment("가상계좌번호 1")
private String gpAccountNo1;
@Column(name = "VRACTNO_2", length = 20)
@Comment("가상계좌번호 2")
private String gpAccountNo2;
@Column(name = "VRACTNO_3", length = 20)
@Comment("가상계좌번호 3")
private String gpAccountNo3;
@Column(name = "VRACTNO_4", length = 20)
@Comment("가상계좌번호 4")
private String gpAccountNo4;
@Column(name = "VRACTNO_5", length = 20)
@Comment("가상계좌번호 5")
private String gpAccountNo5;
@Column(name = "VRACTNO_6", length = 20)
@Comment("가상계좌번호 6")
private String gpAccountNo6;
@Column(name = "VRACTNO_7", length = 20)
@Comment("가상계좌번호 7")
private String gpAccountNo7;
@Column(name = "VRACTNO_8", length = 20)
@Comment("가상계좌번호 8")
private String gpAccountNo8;
@Column(name = "VRACTNO_9", length = 20)
@Comment("가상계좌번호 9")
private String gpAccountNo9;
@Column(name = "VRACTNO_10", length = 20)
@Comment("가상계좌번호 10")
private String gpAccountNo10;
@Column(name = "VRACTNO_11", length = 20)
@Comment("가상계좌번호 11")
private String gpAccountNo11;
@Column(name = "BANKNM_1", length = 20)
@Comment("은행명1")
private String gpBankNm1;
@Column(name = "BANKNM_2", length = 20)
@Comment("은행명2")
private String gpBankNm2;
@Column(name = "BANKNM_3", length = 20)
@Comment("은행명3")
private String gpBankNm3;
@Column(name = "BANKNM_4", length = 20)
@Comment("은행명4")
private String gpBankNm4;
@Column(name = "BANKNM_5", length = 20)
@Comment("은행명5")
private String gpBankNm5;
@Column(name = "BANKNM_6", length = 20)
@Comment("은행명6")
private String gpBankNm6;
@Column(name = "BANKNM_7", length = 20)
@Comment("은행명7")
private String gpBankNm7;
@Column(name = "BANKNM_8", length = 20)
@Comment("은행명8")
private String gpBankNm8;
@Column(name = "BANKNM_9", length = 20)
@Comment("은행명9")
private String gpBankNm9;
@Column(name = "BANKNM_10", length = 20)
@Comment("은행명10")
private String gpBankNm10;
@Column(name = "BANKNM_11", length = 20)
@Comment("은행명11")
private String gpBankNm11;
@Column(name = "TXTN_NO", length = 40)
@Comment("과세번호")
private String gpTaxno;
public void changeGpSunapAfterSunap() {
this.gpSunap = "1";
}
}

@ -0,0 +1,70 @@
package go.kr.project.domain.entity;
import javax.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Comment;
@Entity
@Table(name = "tb_infrm_sndng_rcd")
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class CpGojiSendHist {
@Id
@Column(name = "INFRMSNDNGRCD_ID", length = 18)
@Comment("고지발송기록 ID")
private String ghCode;
@Column(name = "INFRMDTL_ID")
@Comment("고지상세 ID")
private Integer ghGpcode;
@Column(name = "SGG_CD", length = 5)
@Comment("시군구 코드")
private String ghSggcode;
@Column(name = "MAIL_LINK_CD", length = 30)
@Comment("우편 연계 코드")
private String ghConKey;
@Column(name = "RG_NO", length = 13)
@Comment("등기번호")
private String ghRegino;
@Column(name = "SNDNG_YMD", length = 8)
@Comment("발송일자")
private String ghSendDate;
@Column(name = "SNDNG_HR", length = 4)
@Comment("발송시간")
private String ghSendTime;
@Column(name = "SNDBK_SE", length = 100)
@Comment("반송구분")
private String ghReturnCdStr;
@Column(name = "ADDRSE_NM", length = 70)
@Comment("수취인명")
private String ghRecvName;
@Column(name = "ADDRSE_REL", length = 100)
@Comment("수취인 관계")
private String ghRecvRelt;
@Column(name = "DLVR_RSLT_CD", length = 2)
@Comment("배달 결과 코드")
private String ghResultCd;
@Column(name = "UNDLVR_RSN_CD", length = 2)
@Comment("미배달사유코드")
private String ghReturnCd;
@Column(name = "RCPN_REL_CD", length = 2)
@Comment("수령인관계코드")
private String ghRecvReltCd;
}

@ -0,0 +1,121 @@
package go.kr.project.domain.entity;
import javax.persistence.*;
import lombok.*;
import org.hibernate.annotations.Comment;
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Entity
@Table(name = "tb_infrm_list")
public class CpGojit {
@Id
@Column(name = "INFRMLIST_ID")
@Comment("고지목록 ID")
private Long tgCode;
@Column(name = "SGG_CD", length = 5)
@Comment("시군구 코드")
private String tgSggcode;
@Column(name = "VLTNCN_CD", length = 2)
@Comment("위반내용 코드")
private String tgLawgb;
@Column(name = "INFRM_SE", length = 1)
@Comment("고지 구분")
private String tgGb;
@Column(name = "REG_SE", length = 1)
@Comment("등록 구분")
private String tgDlgb;
@Column(name = "LEVY_EXTR_YMD", length = 8)
@Comment("부과 추출 일자")
private String tgSrcSdate;
@Column(name = "DUDT_EXTR_YMD", length = 8)
@Comment("납기 추출 일자")
private String tgSrcEdate;
@Column(name = "LEVY_YMD", length = 8)
@Comment("부과 일자")
private String tgSdate;
@Column(name = "DUDT_YMD", length = 8)
@Comment("납기 일자")
private String tgEdate;
@Column(name = "TTL", length = 100)
@Comment("제목")
private String tgTitle;
@Column(name = "OFDOC_NO", length = 40)
@Comment("공문 번호")
private String tgDocno;
@Column(name = "EXCPTNMTTR", length = 100)
@Comment("특이사항")
private String tgEtc;
@Column(name = "LEVY_NOCS")
@Comment("부과 건수")
private Integer tgTotcount;
@Column(name = "GRAMT")
@Comment("총금액")
private Long tgTotkeum;
@Column(name = "REG_DT", length = 14)
@Comment("등록 일시")
private String tgIndt;
@Column(name = "REG_PIC")
@Comment("등록 담당자")
private Integer tgInuser;
@Column(name = "MAIL_LINK_CD", length = 30)
@Comment("우편 연계 코드")
private String tgConKey;
@Column(name = "SNDNG_SE", length = 3)
@Comment("발송 구분")
private String tgPostSeCd;
@Column(name = "SNDBK_YN", length = 1)
@Comment("반송 여부")
private String tgIsResend;
@Column(name = "GD_PHRS_CD", length = 13)
@Comment("안내 문구 코드")
private String tgNoticeKey;
@Column(name = "TRSM_TRGT", length = 2)
@Comment("전송 대상")
private String tgPostProcStt;
@Column(name = "TG_UNITY_SNDNG_MASTR_ID", length = 20)
private String tgUnitySndngMastrId;
@Column(name = "TG_DELETE", length = 2)
private String tgDelete;
@Column(name = "TG_POST_YN", length = 2)
private String tgPostYn;
@Column(name = "TG_ELPOST_YN", length = 2)
private String tgElpostYn;
public void changeTgPostProcStt(String tgPostProcStt) {
this.tgPostProcStt = tgPostProcStt;
}
public void changeTgCode(Long tgCode) {
this.tgCode = tgCode;
}
}

@ -0,0 +1,57 @@
package go.kr.project.domain.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Comment;
@Entity
@Table(name = "tb_photosz")
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class CpImagesize {
@Id
@Column(name = "CRDN_ID", length = 16)
@Comment("단속 ID")
private String isMmcode;
@Column(name = "IMG_SZ_1")
@Comment("이미지크기1")
private Integer isImage1;
@Column(name = "IMG_SZ_2")
@Comment("이미지크기2")
private Integer isImage2;
@Column(name = "IMG_SZ_3")
@Comment("이미지크기3")
private Integer isImage3;
@Column(name = "IMG_SZ_4")
@Comment("이미지크기4")
private Integer isImage4;
@Column(name = "VDO_SZ")
@Comment("동영상크기")
private Integer isVideo;
@Column(name = "OPNNSTTMT_IMG_SZ_1")
@Comment("의견진술이미지크기1")
private Integer isRecall1;
@Column(name = "OPNNSTTMT_IMG_SZ_2")
@Comment("의견진술이미지크기2")
private Integer isRecall2;
@Column(name = "OPNNSTTMT_IMG_SZ_3")
@Comment("의견진술이미지크기3")
private Integer isRecall3;
}

@ -0,0 +1,50 @@
package go.kr.project.domain.entity;
import javax.persistence.*;
import lombok.*;
import org.hibernate.annotations.Comment;
@Entity
@Table(name = "tb_bfhd_oper")
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
@ToString
public class CpInstruct {
@Id
@Column(name = "BFHDOPER_ID")
@Comment("사전운영 ID")
private Long itCode;
@Column(name = "SGG_CD", length = 5)
@Comment("시군구 코드")
private String itSggcode;
@Column(name = "CRDN_ID", length = 16)
@Comment("단속 ID")
private String itMmcode;
@Column(name = "BFHD_OPER_YMD", length = 8)
@Comment("사전 운영 일자")
private String itDate;
@Column(name = "BFHD_OPER_RSN", length = 2)
@Comment("사전 운영 사유")
private String itCause;
@Column(name = "EXCPTNMTTR", length = 100)
@Comment("특이사항")
private String itEtc;
@Column(name = "REG_DT", length = 14)
@Comment("등록일시")
private String itIndt;
@Column(name = "REG_USER_CD")
@Comment("등록 사용자 코드")
private Integer itInuser;
}

@ -0,0 +1,40 @@
package go.kr.project.domain.entity;
import go.kr.project.domain.entity.CpInstructAnswerId;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Comment;
@Entity
@Table(name = "tb_bfhd_oper_ans")
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class CpInstructAnswer {
@EmbeddedId
private CpInstructAnswerId id;
@Column(name = "BFHD_OPER_KND_NM", length = 50)
@Comment("사전운영 종류명")
private String iaId;
@Column(name = "BFHD_OPER_ANS_CN", length = 500)
@Comment("사전운영 답변 내용")
private String iaAnswertext;
@Column(name = "BFHD_OPER_DOC_TTL", length = 100)
@Comment("사전운영 문서 제목")
private String iaMailtitle;
@Column(name = "BFHD_OPER_DOC_CN", length = 1000)
@Comment("사전운영 문서 내용")
private String iaMailtext;
}

@ -0,0 +1,23 @@
package go.kr.project.domain.entity;
import javax.persistence.Column;
import javax.persistence.Embeddable;
import lombok.*;
import org.hibernate.annotations.Comment;
@Embeddable
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
@EqualsAndHashCode
public class CpInstructAnswerId {
@Column(name = "SGG_CD", length = 5)
@Comment("시군구 코드")
private String iaSggcode;
@Column(name = "BFHD_OPER_KND_CD", length = 3)
@Comment("사전운영 종류 코드")
private String iaCode;
}

@ -0,0 +1,206 @@
package go.kr.project.domain.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Comment;
@Entity
@Table(name = "tb_crdn")
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class CpMain {
@Id
@Column(name = "CRDN_ID", length = 16)
@Comment("단속 ID")
private String mmCode;
@Column(name = "SGG_CD", length = 5)
@Comment("시군구 코드")
private String mmSggcode;
@Column(name = "REG_SE", length = 1)
@Comment("등록 구분")
private String mmDlgb;
@Column(name = "DATA_SRC", length = 1)
@Comment("자료 출처")
private String mmIngb;
@Column(name = "REG_YMD", length = 8)
@Comment("등록 일자")
private String mmDate;
@Column(name = "REG_HR", length = 4)
@Comment("등록 시간")
private String mmTime;
@Column(name = "VLTN_CN_CD", length = 2)
@Comment("위반 내용 코드")
private String mmLawgb;
@Column(name = "DCL", length = 500)
@Comment("신고자")
private String mmSgnm;
@Column(name = "DCL_CNPL", length = 100)
@Comment("신고자 연락처")
private String mmSgtel;
@Column(name = "DCLR_CN", length = 1000)
@Comment("신고 내용")
private String mmSgcont;
@Column(name = "VLTN_PLC", length = 200)
@Comment("위반 장소")
private String mmSgpos;
@Column(name = "STDG_CD", length = 10)
@Comment("법정동 코드")
private String mmBdcode;
@Column(name = "VLTN_PLC_XCRD", length = 20)
@Comment("위반 장소 X좌표")
private String mmGpsX;
@Column(name = "VLTN_PLC_YCRD", length = 20)
@Comment("위반 장소 Y좌표")
private String mmGpsY;
@Column(name = "TOWNG_YN", length = 1)
@Comment("견인 여부")
private String mmTrac;
@Column(name = "CRDN_GD_NO", length = 20)
@Comment("단속 안내 번호")
private String mmSno;
@Column(name = "PHOTO_BYNG")
@Comment("사진 매수")
private Integer mmImagecnt;
@Column(name = "VDO_YN", length = 1)
@Comment("동영상 여부")
private String mmImagegb;
@Column(name = "VHRNO", length = 20)
@Comment("자동차등록번호")
private String mmCarno;
@Column(name = "VIN", length = 25)
@Comment("차대번호")
private String mmVhmno;
@Column(name = "VHCL_SE", length = 1)
@Comment("차량구분")
private String mmCargb;
@Column(name = "CARMDL", length = 1)
@Comment("차종")
private String mmCarkind;
@Column(name = "OWNR_ID", length = 13)
@Comment("소유자 ID")
private String mmOmcode;
@Column(name = "BFHD_WRNTC_PBLCNDAY", length = 8)
@Comment("사전통보서 발행일")
private String mmSdate;
@Column(name = "BFHD_WRNTC_DUDTDAY", length = 8)
@Comment("사전통보서 납기일")
private String mmEdate;
@Column(name = "LEVY_BFR_AMT")
@Comment("부과 이전 금액")
private Integer mmKeum1;
@Column(name = "LEVY_AMT")
@Comment("부과 금액")
private Integer mmKeum2;
@Column(name = "RCVMT_AMT")
@Comment("수납 금액")
private Integer mmSukeum;
@Column(name = "RDAMT")
@Comment("감액")
private Integer mmMinusKeum;
@Column(name = "ADTN_AMT")
@Comment("가산금액")
private Integer mmAddKeum;
@Column(name = "OPNNSTTMT_YN", length = 1)
@Comment("의견진술 여부")
private String mmRecall;
@Column(name = "RGTR")
@Comment("등록자")
private Integer mmInuser;
@Column(name = "REG_DT", length = 14)
@Comment("등록 일시")
private String mmIndt;
@Column(name = "PRCS_STTS", length = 2)
@Comment("처리 상태")
private String mmState;
@Column(name = "LAST_PRCS_DT", length = 14)
@Comment("최종 처리 일시")
private String mmStateDt;
@Column(name = "CVR_INQ_YN", length = 1)
@Comment("표지 조회 여부")
private String mmCarcheck;
@Column(name = "RRG_BFR_CRDN_ID", length = 13)
@Comment("재등록 이전 단속 ID")
private String mmPrecode;
@Column(name = "EXCPTNMTTR", length = 100)
@Comment("특이사항")
private String mmEtc;
@Column(name = "VDO_FILENM", length = 30)
@Comment("동영상 파일명")
private String mmVideofilenm;
@Column(name = "SPCCRDNZONE_YN", length = 1)
@Comment("특별단속구역 여부")
private String mmSafezone;
@Column(name = "VHCL_NM", length = 4)
@Comment("위반횟수")
private String mmViorcnt;
@Column(name = "VLTN_NMTM", length = 4)
@Comment("추가 등록시간")
private String mmTime2;
@Column(name = "ADD_REG_HR", length = 60)
@Comment("차량이름")
private String mmCarname;
public void changeMmStateAfterSunap() {
this.mmState = switch (this.mmState) {
case "41" -> "71";
case "51" -> "72";
case "52" -> "73";
case "53" -> "74";
case "54", "55" -> "75";
default -> "71";
};
}
}

@ -0,0 +1,37 @@
package go.kr.project.domain.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Comment;
@Entity
@Table(name = "tb_cvlcpt_cn")
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class CpMainEtc1 {
@Id
@Column(name = "CRDN_ID", length = 16)
@Comment("단속 ID")
private String mmCode;
@Column(name = "RCPT_YMD", length = 8)
@Comment("접수일자")
private String mmJsdate;
@Column(name = "RCPT_NO", length = 30)
@Comment("접수번호")
private String mmKey;
@Column(name = "RCPT_CN", length = 4000)
@Comment("접수내용")
private String mmText;
}

@ -0,0 +1,172 @@
package go.kr.project.domain.entity;
import javax.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Comment;
@Entity
@Table(name = "tb_nxrp_link")
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class CpMatch {
@Id
@Column(name = "NXRP_LINK_ID")
@Comment("세외수입 연계 ID")
private Long mcCode;
@Column(name = "CRDN_ID", length = 16)
@Comment("단속 ID")
private String mcMmcode;
@Column(name = "VLTN_DT", length = 30)
@Comment("위반일시")
private String mcMmWdatetime;
@Column(name = "VLTN_PLC", length = 200)
@Comment("위반장소")
private String mcMmSgpos;
@Column(name = "STDG", length = 30)
@Comment("법정동")
private String mcBdong;
@Column(name = "BFHD_NTFCTN_LEVY_CD", length = 20)
@Comment("사전 통보 부과 코드")
private String mcLvyKey0;
@Column(name = "LEVY_CD", length = 20)
@Comment("부과 코드")
private String mcLvyKey;
@Column(name = "ACNTG_YR", length = 6)
@Comment("회계연도")
private String mcAccYear;
@Column(name = "LEVY_NO", length = 6)
@Comment("부과번호")
private String mcLvyNo;
@Column(name = "VRACTNO_1", length = 20)
@Comment("가상계좌번호1")
private String mcAccountNo1;
@Column(name = "VRACTNO_2", length = 20)
@Comment("가상계좌번호2")
private String mcAccountNo2;
@Column(name = "VRACTNO_3", length = 20)
@Comment("가상계좌번호3")
private String mcAccountNo3;
@Column(name = "VRACTNO_4", length = 20)
@Comment("가상계좌번호4")
private String mcAccountNo4;
@Column(name = "VRACTNO_5", length = 20)
@Comment("가상계좌번호5")
private String mcAccountNo5;
@Column(name = "VRACTNO_6", length = 20)
@Comment("가상계좌번호6")
private String mcAccountNo6;
@Column(name = "VRACTNO_7", length = 20)
@Comment("가상계좌번호7")
private String mcAccountNo7;
@Column(name = "VRACTNO_8", length = 20)
@Comment("가상계좌번호8")
private String mcAccountNo8;
@Column(name = "VRACTNO_9", length = 20)
@Comment("가상계좌번호9")
private String mcAccountNo9;
@Column(name = "VRACTNO_10", length = 20)
@Comment("가상계좌번호10")
private String mcAccountNo10;
@Column(name = "VRACTNO_11", length = 20)
@Comment("가상계좌번호11")
private String mcAccountNo11;
@Column(name = "BANKNM_1", length = 20)
@Comment("은행명1")
private String mcBankNm1;
@Column(name = "BANKNM_2", length = 20)
@Comment("은행명2")
private String mcBankNm2;
@Column(name = "BANKNM_3", length = 20)
@Comment("은행명3")
private String mcBankNm3;
@Column(name = "BANKNM_4", length = 20)
@Comment("은행명4")
private String mcBankNm4;
@Column(name = "BANKNM_5", length = 20)
@Comment("은행명5")
private String mcBankNm5;
@Column(name = "BANKNM_6", length = 20)
@Comment("은행명6")
private String mcBankNm6;
@Column(name = "BANKNM_7", length = 20)
@Comment("은행명7")
private String mcBankNm7;
@Column(name = "BANKNM_8", length = 20)
@Comment("은행명8")
private String mcBankNm8;
@Column(name = "BANKNM_9", length = 20)
@Comment("은행명9")
private String mcBankNm9;
@Column(name = "BANKNM_10", length = 20)
@Comment("은행명10")
private String mcBankNm10;
@Column(name = "BANKNM_11", length = 20)
@Comment("은행명11")
private String mcBankNm11;
@Column(name = "EPAYNO", length = 19)
@Comment("전자납부번호")
private String mcErcNo;
@Column(name = "MNTX", length = 8)
@Comment("본세")
private String mcKeumT;
@Column(name = "ADDTX", length = 8)
@Comment("가산세")
private String mcKeumA;
@Column(name = "LEVY_AMT", length = 8)
@Comment("부과금액")
private String mcKeumB;
@Column(name = "REG_DT", length = 14)
@Comment("등록일시")
private String mcIndt;
@Column(name = "MDFCN_DT", length = 14)
@Comment("수정일시")
private String mcEditdt;
@Column(name = "DATA_STTS", length = 1)
@Comment("자료 상태")
private String mcState;
}

@ -0,0 +1,95 @@
package go.kr.project.domain.entity;
import go.kr.project.domain.entity.CpSetinfoId;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.Table;
import lombok.Getter;
import org.hibernate.annotations.Comment;
@Entity
@Table(name = "tb_stng")
@Getter
public class CpSetinfo {
// @Id
// @Column(name = "CODE_NAME", length = 50)
// private String codeName;
//
// @Id
// @Column(name = "GROUP_CODE", length = 50)
// private String groupCode;
//
// @Id
// @Column(name = "DETAIL_CODE", length = 50)
// private String detailCode;
@EmbeddedId
private CpSetinfoId id;
@Column(name = "CD_VRBL_1")
@Comment("코드변수1")
private Integer intValue1;
@Column(name = "CD_VRBL_2")
@Comment("코드변수2")
private Integer intValue2;
@Column(name = "CD_VRBL_3")
@Comment("코드변수3")
private Integer intValue3;
@Column(name = "CD_VRBL_4")
@Comment("코드변수4")
private Integer intValue4;
@Column(name = "CD_VRBL_5")
@Comment("코드변수5")
private Integer intValue5;
@Column(name = "LTR_VRBL_1", length = 1000)
@Comment("문자변수1")
private String strValue1;
@Column(name = "LTR_VRBL_2", length = 1000)
@Comment("문자변수2")
private String strValue2;
@Column(name = "LTR_VRBL_3", length = 1000)
@Comment("문자변수3")
private String strValue3;
@Column(name = "LTR_VRBL_4", length = 1000)
@Comment("문자변수4")
private String strValue4;
@Column(name = "LTR_VRBL_5", length = 1000)
@Comment("문자변수5")
private String strValue5;
@Column(name = "LTR_VRBL_6", length = 1000)
@Comment("문자변수6")
private String strValue6;
@Column(name = "LTR_VRBL_7", length = 1000)
@Comment("문자변수7")
private String strValue7;
@Column(name = "LTR_VRBL_8", length = 1000)
@Comment("문자변수8")
private String strValue8;
@Column(name = "LTR_VRBL_9", length = 1000)
@Comment("문자변수9")
private String strValue9;
@Column(name = "LTR_VRBL_10", length = 1000)
@Comment("문자변수10")
private String strValue10;
@Column(name = "LTR_VRBL_11", length = 1000)
@Comment("문자변수11")
private String strValue11;
}

@ -0,0 +1,41 @@
package go.kr.project.domain.entity;
import javax.persistence.Column;
import javax.persistence.Embeddable;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Objects;
@Embeddable
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CpSetinfoId implements Serializable {
@Column(name = "CD_NM")
private String codeName;
@Column(name = "CD_GROUP")
private String groupCode;
@Column(name = "DTL_CD")
private String detailCode;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof CpSetinfoId)) return false;
CpSetinfoId that = (CpSetinfoId) o;
return Objects.equals(codeName, that.codeName)
&& Objects.equals(groupCode, that.groupCode)
&& Objects.equals(detailCode, that.detailCode);
}
@Override
public int hashCode() {
return Objects.hash(codeName, groupCode, detailCode);
}
}

@ -0,0 +1,26 @@
package go.kr.project.domain.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import lombok.Getter;
@Entity
@Table(name = "tb_sgg")
@Getter
public class CpSgg {
@Id
@Column(name = "SGG_CD", length = 5, nullable = false)
private String sgSggcode;
@Column(name = "SGG_NM", length = 20)
private String sgSggName;
@Column(name = "USE_YN", length = 1)
private String sgEnable;
@Column(name = "DEPT_CD", length = 10)
private String sgDepCode;
}

@ -0,0 +1,85 @@
package go.kr.project.domain.entity;
import javax.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Comment;
@Entity
@Table(name = "tb_user")
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class CpUser {
@Id
@Column(name = "USER_ID")
@Comment("사용자 ID")
private Integer umCode;
@Column(name = "SGG_CD", length = 5)
@Comment("시군구 코드")
private String umSggcode;
@Column(name = "TASK_RLM_SE", length = 1)
@Comment("업무 영역 구분")
private String umLevelcd;
@Column(name = "SGG_SE", length = 50)
@Comment("시군구 구분")
private String umLevel;
@Column(name = "FLNM", length = 50)
@Comment("성명")
private String umName;
@Column(name = "TELNO", length = 50)
@Comment("전화번호")
private String umTelno;
@Column(name = "EML", length = 50)
@Comment("이메일")
private String umEmail;
@Column(name = "DOC_PSTN", length = 100)
@Comment("문서 위치")
private String umHwpdirc;
@Column(name = "PSWD", length = 100)
@Comment("비밀번호")
private String umPass;
@Column(name = "AUTHRT", length = 100)
@Comment("권한")
private String umPermision;
@Column(name = "PBADMS_ID", length = 100)
@Comment("행정 ID")
private String umSeallUser;
@Column(name = "NXRP_ID", length = 100)
@Comment("세외수입 ID")
private String umTaxeUser;
@Column(name = "REG_DT", length = 14)
@Comment("등록 일시")
private String umIndt;
@Column(name = "USE_YN", length = 1)
@Comment("사용 여부")
private String umEnable;
@Column(name = "TASK_GROUP_CD", length = 3)
@Comment("업무 그룹 코드")
private String umJobGroup;
@Column(name = "DEL_DT", length = 14)
@Comment("삭제 일시")
private String umDeldt;
@Column(name = "IP", length = 30)
@Comment("IP")
private String umIp;
}

@ -0,0 +1,70 @@
package go.kr.project.domain.entity;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.Table;
import lombok.Getter;
import org.hibernate.annotations.Comment;
@Entity
@Table(name = "cp_violation")
@Getter
public class CpViolation {
// @Id
// @Column(name = "VL_SGGCODE", length = 5, nullable = false)
// private String vlSggcode;
//
// @Id
// @Column(name = "VL_JOBGROUP", length = 2, nullable = false)
// private String vlJobgroup;
//
// @Id
// @Column(name = "VL_CODE", length = 2, nullable = false)
// private String vlCode;
@EmbeddedId
private CpViolationId id;
@Column(name = "VLTN_KND", length = 30)
@Comment("위반 종류")
private String vlId;
@Column(name = "VLTN_LWRG_1", length = 100)
@Comment("위반 법규 1")
private String vlLaw1;
@Column(name = "VLTN_LWRG_2", length = 3)
@Comment("위반 법규 2")
private String vlLaw2;
@Column(name = "VLTN_LWRG_3", length = 3)
@Comment("위반 법규 3")
private String vlLaw3;
@Column(name = "USE_YN", length = 1)
@Comment("사용 여부")
private String vlEnable;
@Column(name = "ACNTG_CD", length = 2)
@Comment("회계 코드")
private String vlSemok1;
@Column(name = "TXITM_CD", length = 6)
@Comment("세목 코드")
private String vlSemok2;
@Column(name = "VLTN_AMT")
@Comment("위반 금액")
private Integer vlKeum;
@Column(name = "VLTN_ANS", length = 50)
@Comment("위반 답변")
private String vlAnswer;
@Column(name = "TXITM_SE_CD", length = 3)
@Comment("세목 구분 코드")
private String vlSemok3;
}

@ -1,11 +1,12 @@
package go.kr.project.domain.entity;
import javax.persistence.Column;
import javax.persistence.Embeddable;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Comment;
import javax.persistence.Column;
import javax.persistence.Embeddable;
import java.io.Serializable;
import java.util.Objects;
@ -38,4 +39,4 @@ public class CpViolationId implements Serializable {
return Objects.hash(vlSggcode, vlJobgroup, vlCode);
}
}
}

@ -0,0 +1,69 @@
package go.kr.project.domain.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Comment;
@Entity
@Table(name = "tb_dlvr_rslt")
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class EpostDelivResult {
@Id
@Column(name = "DLVR_RSLT__ID")
@Comment("배송 결과 ID")
private Long seqKey;
@Column(name = "MAIL_LINK_CD", length = 30)
@Comment("우편 연계 코드")
private String conKey;
@Column(name = "RG_NO", length = 13)
@Comment("등기번호")
private String regino;
@Column(name = "DLVR_YMD", length = 8)
@Comment("배송 일자")
private String delivYmd;
@Column(name = "DLVR_HR", length = 4)
@Comment("배송 시간")
private String delivHhmi;
@Column(name = "SNDR", length = 13)
@Comment("발송자")
private String outsidUserId;
@Column(name = "DLVR_STTS", length = 2)
@Comment("배송 상태")
private String delivRsltCd;
@Column(name = "SNDBK_RSN_CD", length = 2)
@Comment("반송 사유 코드")
private String nonDelivReasnCd;
@Column(name = "SNDBK_RSN", length = 60)
@Comment("반송 사유")
private String nonDelivReasnCdNm;
@Column(name = "ADDRSE_NM", length = 70)
@Comment("수취인 명")
private String subRecPrsnNm;
@Column(name = "ADDRSE_REL_CD", length = 2)
@Comment("수취인 관계 코드")
private String relRecPrsnCd;
@Column(name = "ADDRSE_REL", length = 100)
@Comment("수취인 관계")
private String relRecPrsnCdNm;
}

@ -0,0 +1,39 @@
package go.kr.project.domain.entity;
import javax.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Comment;
@Entity
@Table(name = "epost_make_result")
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
@IdClass(EpostMakeResultId.class)
public class EpostMakeResult {
@Id
@Column(name = "MAIL_LINK_CD", length = 30)
@Comment("우편 연계 코드")
private String conKey;
@Column(name = "RG_NO", length = 13)
@Comment("등기 번호")
private String rgstNmbr;
@Column(name = "MAIL_LINK_ADD_DSCTN", length = 200)
@Comment("우편 연계 추가 내역")
private String reletcData;
@Column(name = "DATA_STTS", length = 2)
@Comment("자료 상태")
private String dataCd;
@Column(name = "CN_BYNG", length = 5)
@Comment("내용 매수")
private String mailCnt;
}

@ -0,0 +1,17 @@
package go.kr.project.domain.entity;
import lombok.AllArgsConstructor;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Getter
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode
public class EpostMakeResultId implements Serializable {
private String conKey;
private String rgstNmbr;
}

@ -0,0 +1,70 @@
package go.kr.project.domain.entity;
import javax.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Comment;
@Entity
@Table(name = "tb_mail_crg")
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class EpostRceptResult {
@Id
@Column(name = "MAIL_CRG_ID")
@Comment("우편 요금 ID")
private Integer rrCode;
@Column(name = "OTSD_INST_SE_CD", length = 13)
@Comment("외부 기관 구분 코드")
private String conOrg;
@Column(name = "DEPT_CD", length = 15)
@Comment("부서 코드")
private String relOrSectCd;
@Column(name = "MAIL_LINK_ADD_DSCTN", length = 200)
@Comment("우편 연계 추가내역")
private String reletcData;
@Column(name = "INST_SNDNG_YMD", length = 8)
@Comment("기관 발송 일자")
private String extriRegYmd;
@Column(name = "RCPT_YMD", length = 8)
@Comment("접수 일자")
private String rceptYmd;
@Column(name = "RCPT_PSTOFC_UNQ_NO", length = 5)
@Comment("접수 우체국 고유 번호")
private String rceptId;
@Column(name = "HNDL_SE", length = 3)
@Comment("취급 구분")
private String divKb;
@Column(name = "NOCS")
@Comment("건수")
private Integer rceptCnt;
@Column(name = "BSC_AMT")
@Comment("기본 금액")
private Integer rceptAmt;
@Column(name = "VAT")
@Comment("부가가치세")
private Integer useFeeAmt;
@Column(name = "GRAMT")
@Comment("총금액")
private Integer totPostPrc;
@Column(name = "MAIL_KND")
@Comment("우편 종류")
private Integer jobCd;
}

@ -0,0 +1,26 @@
package go.kr.project.domain.entity;
import javax.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
@Entity
@Table(name = "tb_rg_no")
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class EpostRgstNmbr {
@Id
@Column(name = "RG_NO", columnDefinition = "char(13)", nullable = false)
private String rgstNmbr;
@Column(name = "AFTR_RG_NO", columnDefinition = "char(13)")
private String rgstNmbrNext;
@Column(name = "USE_YN", columnDefinition = "char(1)")
private String pcursor;
}

@ -0,0 +1,267 @@
package go.kr.project.domain.entity;
import javax.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Comment;
@Entity
@Table(name = "tb_mail_link_dtl")
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
@IdClass(EpostSenderDetailId.class)
public class EpostSenderDetail {
@Id
@Column(name = "MAIL_LINK_CD", length = 30)
@Comment("우편 연계 코드")
private String conKey;
@Id
@Column(name = "RG_NO", length = 13)
@Comment("등기번호")
private String rgstNmbr;
@Column(name = "DTL_SN", length = 20)
@Comment("상세 순번")
private String recevSeq;
@Column(name = "SNDNG_CD", length = 10)
@Comment("발송 코드")
private String recevCode;
@Column(name = "IDNTF_CD_1", length = 18)
@Comment("식별 코드 1")
private String recevBar1d;
@Column(name = "IDNTF_CD_2", length = 170)
@Comment("식별 코드 2")
private String recevBar2d;
@Column(name = "INFRMNO", length = 21)
@Comment("고지번호")
private String recevBillNumber;
@Column(name = "DOC_KND_1", length = 60)
@Comment("문서 종류 1")
private String recevDocCd1;
@Column(name = "DOC_KND_2", length = 30)
@Comment("문서 종류 2")
private String recevDocCd2;
@Column(name = "DOC_KND_3", length = 6)
@Comment("문서 종류 3")
private String recevDocCd3;
@Column(name = "DOC_KND_4", length = 60)
@Comment("문서 종류 4")
private String recevDocCd4;
@Column(name = "DOC_KND_5", length = 15)
@Comment("문서 종류 5")
private String recevDocCd5;
@Column(name = "SBJCTNM_1", length = 6)
@Comment("과목명1")
private String recevSubj1;
@Column(name = "SBJCTNM_2", length = 6)
@Comment("과목명2")
private String recevSubj2;
@Column(name = "SBJCTNM_3", length = 14)
@Comment("과목명3")
private String recevSubj3;
@Column(name = "VLTN_DT", length = 30)
@Comment("위반 일시")
private String recevViolateDt;
@Column(name = "STDG_NM", length = 39)
@Comment("법정동 명")
private String recevViolateDong;
@Column(name = "VLTN_PLC", length = 80)
@Comment("위반 장소")
private String recevViolatePlace;
@Column(name = "VLTN_LWRG", length = 70)
@Comment("위반 법규")
private String recevLaws;
@Column(name = "PAY_NO_1", length = 17)
@Comment("납부 번호 1")
private String recevPayNumber1;
@Column(name = "PAY_NO_2", length = 15)
@Comment("납부 번호 2")
private String recevPayNumber2;
@Column(name = "OCR_0", length = 32)
@Comment("OCR0")
private String recevOcr0;
@Column(name = "OCR_1", length = 54)
@Comment("OCR1")
private String recevOcr1;
@Column(name = "OCR_2", length = 54)
@Comment("OCR2")
private String recevOcr2;
@Column(name = "EPAYNO", length = 30)
@Comment("전자납부번호")
private String recevOnlinePayNumber;
@Column(name = "VRACTNO_1", length = 50)
@Comment("가상계좌번호 1")
private String recevVaccountNumber;
@Column(name = "VRACTNO_2", length = 50)
@Comment("가상계좌번호 2")
private String recevVaccountNumber2;
@Column(name = "VRACTNO_3", length = 50)
@Comment("가상계좌번호 3")
private String recevVaccountNumber3;
@Column(name = "VRACTNO_4", length = 50)
@Comment("가상계좌번호 4")
private String recevVaccountNumber4;
@Column(name = "VRACTNO_5", length = 50)
@Comment("가상계좌번호 5")
private String recevVaccountNumber5;
@Column(name = "VRACTNO_6", length = 50)
@Comment("가상계좌번호 6")
private String recevVaccountNumber6;
@Column(name = "VRACTNO_7", length = 50)
@Comment("가상계좌번호 7")
private String recevVaccountNumber7;
@Column(name = "VRACTNO_8", length = 50)
@Comment("가상계좌번호 8")
private String recevVaccountNumber8;
@Column(name = "VRACTNO_9", length = 50)
@Comment("가상계좌번호 9")
private String recevVaccountNumber9;
@Column(name = "VRACTNO_10", length = 50)
@Comment("가상계좌번호 10")
private String recevVaccountNumber10;
@Column(name = "VRACTNO_11", length = 50)
@Comment("가상계좌번호 11")
private String recevVaccountNumber11;
@Column(name = "FFNLG", length = 10)
@Comment("과태료")
private String recevFinePrice;
@Column(name = "PAY_AMT", length = 10)
@Comment("납부 금액")
private String recevPayPrice;
@Column(name = "PAY_TERM", length = 15)
@Comment("납부 기한")
private String recevPayDt;
@Column(name = "DUDT_BFR_TERM", length = 20)
@Comment("납기 이전 기한")
private String recevPayInDate;
@Column(name = "DUDT_BFR_AMT", length = 20)
@Comment("납기 이전 금액")
private String recevPayInPrice;
@Column(name = "DUDT_BFR_ADDTX", length = 20)
@Comment("납기 이전 가산세")
private String recevPayInAddPrice;
@Column(name = "DUDT_BFR_NPMNT_DSPS_RT", length = 20)
@Comment("납기 이전 체납 처분 비율")
private String recevPayInDefaultPrice;
@Column(name = "VHRNO", length = 50)
@Comment("자동차등록번호")
private String recevCarNumber;
@Column(name = "ZIP", length = 6)
@Comment("우편번호")
private String recevCarOwnerZipcode;
@Column(name = "ADDR", length = 100)
@Comment("주소")
private String recevCarOwnerAddr;
@Column(name = "DTL_ADDR", length = 160)
@Comment("상세 주소")
private String recevCarOwnerDetailaddr;
@Column(name = "OWNR", length = 60)
@Comment("소유자")
private String recevCarOwnerNm;
@Column(name = "RRNO_FRDGT", length = 6)
@Comment("주민등록번호 앞자리")
private String recevCarOwnerSsn;
@Column(name = "PHOTO_BYNG")
@Comment("사진 매수")
private Integer recevPhotoCnt;
@Column(name = "PHOTO_FILE_NM_1", length = 80)
@Comment("사진 파일 명 1")
private String recevPhotoFile1;
@Column(name = "PHOTO_FILE_NM_2", length = 80)
@Comment("사진 파일 명 2")
private String recevPhotoFile2;
@Column(name = "PHOTO_FILE_NM_3", length = 80)
@Comment("사진 파일 명 3")
private String recevPhotoFile3;
@Column(name = "PHOTO_FILE_NM_4", length = 80)
@Comment("사진 파일 명 4")
private String recevPhotoFile4;
@Column(name = "DLVR_RSLT_ID")
@Comment("배달 결과 ID")
private Integer delivResultCode;
@Column(name = "FBCTN_RSLT_ID", length = 2)
@Comment("제작 결과 ID")
private String makeResultCd;
@Column(name = "POST_SEND_STATE", length = 2)
private String postSendState;
@Column(name = "DUDT_AFTR_TERM", length = 20)
@Comment("납기 이후 기한")
private String recevPayOutDate;
@Column(name = "DUDT_AFTR_ADDTX", length = 20)
@Comment("납기 이후 가산세")
private String recevPayOutAddPrice;
@Column(name = "DUDT_AFTR_NPMNT_DSPS_RT", length = 20)
@Comment("납기 이후 체납 처분 비율")
private String recevPayOutDefaultPrice;
@Column(name = "DUDT_AFTR_AMT", length = 20)
@Comment("납기 이후 금액")
private String recevPayOutPrice;
@Column(name = "CRDN_GD_NO", length = 24)
@Comment("단속 안내 번호")
private String recevEvidenceNumber;
}

@ -0,0 +1,17 @@
package go.kr.project.domain.entity;
import lombok.AllArgsConstructor;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Getter
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode
public class EpostSenderDetailId implements Serializable {
private String conKey;
private String rgstNmbr;
}

@ -0,0 +1,196 @@
package go.kr.project.domain.entity;
import javax.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Comment;
@Entity
@Table(name = "tb_mail_link_list")
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class EpostSenderReg {
@Id
@Column(name = "MAIL_LINK_CD", length = 30)
@Comment("우편 연계 코드")
private String conKey;
@Column(name = "RCPT_PSTOFC_UNQ_ID", length = 5)
@Comment("접수 우체국 고유 ID")
private String rceptId;
@Column(name = "RCPT_CD", length = 2)
@Comment("접수 코드")
private String dataCd;
@Column(name = "HNDL_SE", length = 3)
@Comment("취급 구분")
private String divKb;
@Column(name = "ATRZ_MTHD", length = 3)
@Comment("결재 방법")
private String dfpayyn;
@Column(name = "CN_TYPE", length = 3)
@Comment("내용 유형")
private String rcptKb;
@Column(name = "CN_DTL_CD", length = 3)
@Comment("내용 상세 코드")
private String sealCd;
@Column(name = "CN_KND", length = 3)
@Comment("내용 종류")
private String wordKb;
@Column(name = "CN_BYNG")
@Comment("내용 매수")
private Integer mailCnt;
@Column(name = "ADDRSE_CNT")
@Comment("수취인 수")
private Integer recevCnt;
@Column(name = "MAIL_PKG_CD", length = 3)
@Comment("우편 패키지 코드")
private String envCd;
@Column(name = "COLR_YN", length = 1)
@Comment("색상 여부(흑백/컬러)")
private String colorYn;
@Column(name = "LINK_MTH", length = 1)
@Comment("연계 방식(메일머지/PDF)")
private String mmYn;
@Column(name = "PRINT_SE_CD", length = 1)
@Comment("인쇄 구분 코드(단면, 양면)")
private String flexCd;
@Column(name = "ATCH_CNT")
@Comment("첨부 수 (기본값 0)")
private Integer dmCnt;
@Column(name = "SNDBK_NEED_YN", length = 1)
@Comment("반송 필요 여부")
private String sbFg;
@Column(name = "APRV_NO", length = 10)
@Comment("승인 번호")
private String apvlNb;
@Column(name = "APLY_YMD", length = 8)
@Comment("신청 일자")
private String sendDate;
@Column(name = "TRSM_HR", length = 6)
@Comment("전송 시간")
private String sendTime;
@Column(name = "LINK_INST_ATRZ_DEPTCD", length = 15)
@Comment("연계 기관 결재 부서 코드")
private String relorsectCd;
@Column(name = "SNDNG_INST_CD", length = 15)
@Comment("발송 기관 코드")
private String recevSenderOrgCode;
@Column(name = "SNDR_NM", length = 40)
@Comment("발송자 명")
private String recevSenderNm;
@Column(name = "SNDR_ZIP", length = 6)
@Comment("발송자 우편번호")
private String recevSenderZipcode;
@Column(name = "ADDR", length = 60)
@Comment("주소")
private String recevSenderAddr;
@Column(name = "DADDR", length = 100)
@Comment("상세 주소")
private String recevSenderDetailAddr;
@Column(name = "LEVY_DEPT_TELNO", length = 60)
@Comment("부과 부서 전화번호")
private String recevSenderDepartTel;
@Column(name = "LEVY_DEPT", length = 30)
@Comment("부과 부서")
private String recevSenderDepartNm;
@Column(name = "RG_SE_CD", length = 1)
@Comment("등기 구분 코드")
private String recevDivCd;
@Column(name = "OTPT_DT", length = 21)
@Comment("출력 일시")
private String recevPrintDt;
@Column(name = "OTPT_YR", length = 4)
@Comment("출력 연도")
private String recevPrintYear;
@Column(name = "OTPT_MM", length = 2)
@Comment("출력 월")
private String recevPrintMonth;
@Column(name = "OTPT_DAY", length = 2)
@Comment("출력 일")
private String recevPrintDay;
@Column(name = "LEVY_DEPT_FAX_NO", length = 20)
@Comment("부과 부서 팩스 번호")
private String recevSenderFax;
@Column(name = "LEVY_DEPT_PIC", length = 30)
@Comment("부과 부서 담당자")
private String recevSerderStaff;
@Column(name = "LEVY_DEPT_EML", length = 60)
@Comment("부과 부서 이메일")
private String recevSenderEmail;
@Column(name = "MAIL_KND_CD", length = 4)
@Comment("우편 종류 코드")
private String jobCd;
@Column(name = "PRCS_STTS", length = 2)
@Comment("처리 상태")
private String postProcStt;
@Column(name = "DEL_YN", length = 1)
@Comment("삭제 여부")
private String deleteAt;
@Column(name = "REG_YMD", length = 8)
@Comment("등록 일자")
private String regYmd;
@Column(name = "RCPT_YMD", length = 8)
@Comment("접수 일자")
private String rceptYmd;
@Column(name = "RGTR", length = 10)
@Comment("등록자")
private String regSysSe;
@Column(name = "INFRM_LIST_ID", length = 10)
@Comment("고지 목록 ID")
private String tgCode;
public void changePostProcStt(String postProcStt) {
this.postProcStt = postProcStt;
}
public void changeRceptYmd(String rceptYmd) {
this.rceptYmd = rceptYmd;
}
}

@ -0,0 +1,81 @@
package go.kr.project.domain.entity;
import javax.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
@Entity
@Table(name = "tb_cntc_sndng_detail")
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class TbCntcSndngDetail {
@Id
@Column(name = "unity_sndng_detail_id", length = 20, nullable = false)
private String unitySndngDetailId; // 통합 발송 상세 ID (PK)
@Column(name = "unity_sndng_mastr_id", length = 20)
private String unitySndngMastrId; // 통합 발송 마스터 ID
@Column(name = "signgu_code", length = 50)
private String signguCode; // 시군구 코드
@Column(name = "ffnlg_code", length = 2)
private String ffnlgCode; // 과태료 코드
@Column(name = "main_code", length = 30)
private String mainCode; // 메인 코드
@Column(name = "vhcle_no", length = 30)
private String vhcleNo; // 차량 번호
@Column(name = "ihidnum", length = 100)
private String ihidnum; // 주민등록번호
@Column(name = "moblphon_no", length = 20)
private String moblphonNo; // 핸드폰 번호
@Column(name = "nm", length = 200)
private String nm; // 성명
@Column(name = "adres", length = 300)
private String adres; // 주소
@Column(name = "detail_adres", length = 300)
private String detailAdres; // 상세 주소
@Column(name = "zip", length = 5)
private String zip; // 우편번호
@Lob
@Column(name = "tmplt_msg_data")
private String tmpltMsgData; // 템플릿 메시지 데이터 (LONGTEXT)
@Lob
@Column(name = "mobile_page_cn")
private String mobilePageCn; // 모바일 페이지 내용 (LONGTEXT)
@Column(name = "use_instt_idntfc_id", length = 30)
private String useInsttIdntfcId; // 이용 기관 식별 ID
@Column(name = "external_document_uuid", length = 40)
private String externalDocumentUuid; // 외부 문서 식별 번호
@Column(name = "regist_dt")
private LocalDateTime registDt; // 등록일자
@Column(name = "register", length = 20)
private String register; // 등록자
@Column(name = "updt_dt")
private LocalDateTime updtDt; // 수정일자
@Column(name = "updusr", length = 20)
private String updusr; // 수정자
}

@ -0,0 +1,63 @@
package go.kr.project.domain.entity;
import javax.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
@Entity
@Table(name = "tb_cntc_sndng_result")
@IdClass(TbCntcSndngResultId.class)
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class TbCntcSndngResult {
@Id
@Column(name = "unity_sndng_detail_id", length = 20, nullable = false)
private String unitySndngDetailId; // PK1
@Id
@Column(name = "sndng_se_code", length = 20, nullable = false)
private String sndngSeCode; // PK2
@Column(name = "signgu_code", length = 50)
private String signguCode; // 시군구 코드
@Column(name = "ffnlg_code", length = 2)
private String ffnlgCode; // 과태료 코드
@Column(name = "sndng_result_sttus", length = 50)
private String sndngResultSttus; // 발송 결과 상태
@Column(name = "requst_dt", length = 20)
private String requstDt; // 요청 일시 (문자열 컬럼 정의대로 String)
@Column(name = "inqire_dt", length = 20)
private String inqireDt; // 조회 일시
@Column(name = "readng_dt", length = 20)
private String readngDt; // 열람 일시
@Column(name = "error_cn", length = 1000)
private String errorCn; // 오류 내용
@Column(name = "rgist_no", length = 13)
private String rgistNo; // 등기번호
@Column(name = "regist_dt")
private LocalDateTime registDt; // 등록일자
@Column(name = "register", length = 20)
private String register; // 등록자
@Column(name = "updt_dt")
private LocalDateTime updtDt; // 수정일자
@Column(name = "updusr", length = 20)
private String updusr; // 수정자
}

@ -0,0 +1,15 @@
package go.kr.project.domain.entity;
import lombok.AllArgsConstructor;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
@Getter
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode
public class TbCntcSndngResultId {
private String unitySndngDetailId; // varchar(20)
private String sndngSeCode; // varchar(20)
}

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save