OWL ITS + 탐지시스템(인터넷 진흥원)
wyu
2021-12-27 d8a82b24ce7062a7d631e95a972891a4316fb355
Merge branch 'master' of http://192.168.0.25:9001/r/owl-kisa
1개 파일 추가됨
15개 파일 변경됨
14개 파일 삭제됨
1842 ■■■■ 파일 변경됨
src/main/java/kr/wisestone/owl/constant/MsgConstants.java 2 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/data/CheckIssueData.java 45 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/WorkflowTransitionService.java 2 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java 18 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/WorkflowTransitionServiceImpl.java 7 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/vo/IssueVo.java 28 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/web/controller/ApiController.java 39 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/migration/V1_10__Alter_Table.sql 26 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/migration/V1_11__Alter_Table.sql 214 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/migration/V1_12__Alter_Table.sql 1 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/migration/V1_13__Alter_Table.sql 17 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/migration/V1_14__Alter_Table.sql 16 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/migration/V1_15__Alter_Table.sql 22 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/migration/V1_1__Initial_Setup.sql 849 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/migration/V1_2__Alter_Table.sql 1 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/migration/V1_2__insert_default_data.sql 143 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/migration/V1_3__Alter_Table.sql 2 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/migration/V1_4__Alter_Table.sql 14 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/migration/V1_5__Alter_Table.sql 10 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/migration/V1_6__Alter_Table.sql 59 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/migration/V1_7__Alter_Table.sql 1 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/migration/V1_8__Alter_Table.sql 63 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/migration/V1_9__Alter_Table.sql 71 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/mybatis/query-template/issue-template.xml 3 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js 27 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/i18n/ko/global.json 4 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/issue/issueAddTableConfig.controller.js 109 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/issue/issueList.controller.js 43 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/user/userModify.controller.js 2 ●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/user/userModify.html 4 ●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/constant/MsgConstants.java
@@ -251,5 +251,7 @@
    public static final String API_ISSUE_NOT_EXIST = "API_ISSUE_NOT_EXIST";     // 수정할 이슈를 찾을수 없습니다.
    public static final String API_COMPLETE_ISSUE_STATUS_NOT_EXIST = "API_COMPLETE_ISSUE_STATUS_NOT_EXIST";     // 자동 종료 처리할 상태가 설정되지 않았습니다.
    public static final String API_ISSUE_STATUS_NOT_EXIST = "API_ISSUE_STATUS_NOT_EXIST";     // 이슈 상태를 찾을수 없습니다
    public static final String API_ISSUE_STATUS_IS_NULL = "API_ISSUE_STATUS_IS_NULL";     // 이슈 상태 값이 없습니다.
    public static final String API_CUSTOM_FIELD_NOT_EXIST = "API_CUSTOM_FIELD_NOT_EXIST";     // 사용자 정의 필드를 존재하지 않습니다.
    public static final String API_ISSUE_STATUS_NOT_IN_WORKFLOW = "API_ISSUE_STATUS_NOT_IN_WORKFLOW";     // 이슈 상태가 워크플로우에 포함되어 있지 않습니다
}
src/main/java/kr/wisestone/owl/data/CheckIssueData.java
@@ -1,12 +1,8 @@
package kr.wisestone.owl.data;
import kr.wisestone.owl.config.CommonConfiguration;
import kr.wisestone.owl.domain.*;
import kr.wisestone.owl.service.*;
import kr.wisestone.owl.util.ConvertUtil;
import kr.wisestone.owl.web.form.IssueForm;
import org.springframework.beans.factory.annotation.Autowired;
// issue 유효성 체크용 클래스
public class CheckIssueData {
@@ -18,48 +14,7 @@
    Priority priority;
    Severity severity;
    @Autowired
    private IssueService issueService;
    @Autowired
    private WorkspaceService workspaceService;
    @Autowired
    private ProjectService projectService;
    @Autowired
    private IssueStatusService issueStatusService;
    @Autowired
    private IssueTypeService issueTypeService;
    @Autowired
    private PriorityService priorityService;
    @Autowired
    private SeverityService severityService;
    public CheckIssueData() {}
    public boolean CheckData(User user, IssueForm issueForm) {
        //  사용하고 있는 업무 공간이 활성 상태인지 확인한다. 사용 공간에서 로그인한 사용자가 비활성인지 확인한다.
        this.workspaceService.checkUseWorkspace(user, user.getLastWorkspaceId());
        Issue issue = this.issueService.getIssue(issueForm.getId());
        IssueStatus oldIssueStatus = issue.getIssueStatus();
        //  프로젝트 유효성 체크
        Project project = this.projectService.getProject(issueForm.getProjectId());
        //  이슈 상태 유효성 체크
        IssueStatus issueStatus = this.issueStatusService.getIssueStatus(issueForm.getIssueStatusId());
        //  이슈 유형 유효성 체크
        IssueType issueType = this.issueTypeService.getIssueType(issueForm.getIssueTypeId());
        //  우선순위 유효성 체크
        Priority priority = this.priorityService.getPriority(issueForm.getPriorityId());
        //  중요도 유효성 체크
        Severity severity = this.severityService.getSeverity(issueForm.getSeverityId());
        return true;
    }
    public Issue getIssue() {
        return issue;
src/main/java/kr/wisestone/owl/service/WorkflowTransitionService.java
@@ -16,6 +16,8 @@
    List<WorkflowTransition> findByWorkflowId(Long workflowId);
    boolean contains(Long issueStatusId, Long workflowId);
    List<WorkflowTransitionVo> findBySourceIssueStatusIdAndWorkflowId(Long sourceIssueStatusId, Long workflowId);
    void modify(Workflow workflow, List<IssueStatusVo> issueStatusVos);
src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -187,6 +187,9 @@
    private UserDepartmentService userDepartmentService;
    @Autowired
    private WorkflowTransitionService workflowTransitionService;
    @Autowired
    private UserDepartmentRepository userDepartmentRepository;
    @Autowired
@@ -194,6 +197,9 @@
    @Autowired
    private WorkflowDepartmentRepository workflowDepartmentRepository;
    @Autowired
    WorkflowService workflowService;
    @Override
    protected JpaRepository<Issue, Long> getRepository() {
@@ -234,7 +240,6 @@
        }
        Workflow workflow = issueType.getWorkflow();
        if (issueApiForm.getApiType().equals(IssueApiForm.ApiType.add)) {
            // 이슈 상태가 지정되어 있지 않을 경우 워크플로우 대기 상태 값으로 지정
            List<Long> departmentIds = this.workflowDepartmentService.findFirstDepartmentIds(workflow);
@@ -243,8 +248,15 @@
                    issueForm.addDepartmentId(departmentId);
                }
            }
        } else if (issueApiForm.getIssueStatusId() == null){
            throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.API_ISSUE_STATUS_NOT_EXIST));
        } else {
            if (issueApiForm.getIssueStatusId() == null){
                throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.API_ISSUE_STATUS_IS_NULL));
            }
            // 워크플로우에서 사용 중인 이슈 상태인지 체크
            else if (!this.workflowTransitionService.contains(issueApiForm.getIssueStatusId(), workflow.getId())) {
                throw new OwlRuntimeException(
                        this.messageAccessor.getMessage(MsgConstants.API_ISSUE_STATUS_NOT_IN_WORKFLOW));
            }
        }
        // 프로젝트 입력
src/main/java/kr/wisestone/owl/service/impl/WorkflowTransitionServiceImpl.java
@@ -131,6 +131,13 @@
        return this.workflowTransitionRepository.findByWorkflowId(workflowId);
    }
    // 워크플로우에 사용되는 이슈 상태인지 확인한다
    @Override
    public boolean contains(Long issueStatusId, Long workflowId) {
        List<WorkflowTransitionVo> workflowTransitionVos = this.findBySourceIssueStatusIdAndWorkflowId(issueStatusId, workflowId);
        return workflowTransitionVos != null && workflowTransitionVos.size() > 0;
    }
    //  이슈 상태와 연결된 전이선 정보를 조회한다.
    @Override
    @Transactional(readOnly = true)
src/main/java/kr/wisestone/owl/vo/IssueVo.java
@@ -67,6 +67,10 @@
    private List<UsePartnerVo> usePartnerVos = Lists.newArrayList();
    private String companyName;
    private String ispName;
    private String hostingName;
    public IssueVo(){}
    public Long getId() {
@@ -530,4 +534,28 @@
    public void setParentIssueId(Long parentIssueId) {
        this.parentIssueId = parentIssueId;
    }
    public String getCompanyName() {
        return companyName;
    }
    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }
    public String getIspName() {
        return ispName;
    }
    public void setIspName(String ispName) {
        this.ispName = ispName;
    }
    public String getHostingName() {
        return hostingName;
    }
    public void setHostingName(String hostingName) {
        this.hostingName = hostingName;
    }
}
src/main/java/kr/wisestone/owl/web/controller/ApiController.java
@@ -3,16 +3,12 @@
import kr.wisestone.owl.constant.Constants;
import kr.wisestone.owl.constant.MsgConstants;
import kr.wisestone.owl.domain.Issue;
import kr.wisestone.owl.domain.User;
import kr.wisestone.owl.exception.OwlRuntimeException;
import kr.wisestone.owl.service.IssueService;
import kr.wisestone.owl.util.ConvertUtil;
import kr.wisestone.owl.web.form.IssueApiForm;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
@@ -28,19 +24,6 @@
    @Autowired
    private IssueService issueService;
    //  이슈 추가(json 방식으로 파일전송)
//    @RequestMapping(value = "api/issue", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
//    public
//    @ResponseBody
//    Map<String, Object> addIssue(@RequestBody Map<String, Map<String, Object>> params) {
//        Map<String, Object> resJsonData = new HashMap<>();
//
//        IssueApiForm issueForm = IssueApiForm.make(params.get(Constants.REQ_KEY_CONTENT));
//        Issue issue = this.issueService.addApiIssue(issueForm);
//        //  버전 생성
//        this.issueService.addIssueVersion(issue.getId());
//        return this.setSuccessMessage(resJsonData);
//    }
    @RequestMapping(value = "api/issue", method = RequestMethod.POST)
    public
    @ResponseBody
@@ -57,7 +40,7 @@
        else if (issueForm.getCustomFieldValues() == null || issueForm.getCustomFieldValues().size() == 0) {
            throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.API_CUSTOM_FIELD_NOT_EXIST));
        }
        if (issueForm.getApiType() == IssueApiForm.ApiType.add) {
            List<Issue> issues = this.issueService.addApiIssue(issueForm);
            //  버전 생성
@@ -74,15 +57,15 @@
    }
    //  이슈 조회
    @RequestMapping(value = "/api/issueList", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
    public
    @ResponseBody
    Map<String, Object> find(@RequestBody Map<String, Map<String, Object>> params) {
        Map<String, Object> resJsonData = new HashMap<>();
        Pageable pageable = this.pageUtil.convertPageable(this.getPageVo(params));
        // todo
        return this.setSuccessMessage(resJsonData);
    }
//    @RequestMapping(value = "/api/issueList", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
//    public
//    @ResponseBody
//    Map<String, Object> find(@RequestBody Map<String, Map<String, Object>> params) {
//        Map<String, Object> resJsonData = new HashMap<>();
//        Pageable pageable = this.pageUtil.convertPageable(this.getPageVo(params));
//
//        // todo
//        return this.setSuccessMessage(resJsonData);
//    }
}
src/main/resources/migration/V1_10__Alter_Table.sql
File was deleted
src/main/resources/migration/V1_11__Alter_Table.sql
File was deleted
src/main/resources/migration/V1_12__Alter_Table.sql
File was deleted
src/main/resources/migration/V1_13__Alter_Table.sql
File was deleted
src/main/resources/migration/V1_14__Alter_Table.sql
File was deleted
src/main/resources/migration/V1_15__Alter_Table.sql
File was deleted
src/main/resources/migration/V1_1__Initial_Setup.sql
@@ -1,8 +1,8 @@
-- --------------------------------------------------------
-- 호스트:                          192.168.0.64
-- 서버 버전:                        10.1.13-MariaDB - Source distribution
-- 서버 OS:                        Linux
-- HeidiSQL 버전:                  10.1.0.5464
-- 호스트:                          127.0.0.1
-- 서버 버전:                        10.5.8-MariaDB - mariadb.org binary distribution
-- 서버 OS:                        Win64
-- HeidiSQL 버전:                  11.0.0.5919
-- --------------------------------------------------------
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
@@ -11,8 +11,21 @@
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
-- 테이블 dev_db.api_token 구조 내보내기
CREATE TABLE IF NOT EXISTS `api_token` (
    `id` bigint(11) NOT NULL AUTO_INCREMENT,
    `user_id` bigint(50) NOT NULL,
    `app_name` varchar(50) NOT NULL,
    `token` varchar(1024) NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`) USING BTREE,
    KEY `userIdIndex` (`user_id`) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 owl_en_1.5.attached_file 구조 내보내기
-- 테이블 dev_db.attached_file 구조 내보내기
CREATE TABLE IF NOT EXISTS `attached_file` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `issue_id` bigint(20) DEFAULT NULL,
@@ -27,16 +40,34 @@
    `modify_id` bigint(20) NOT NULL COMMENT 'modify_id',
    `modify_date` timestamp NULL DEFAULT NULL COMMENT 'modify_date',
    `aws_key` varchar(255) DEFAULT NULL,
    `attached_type` varchar(20) NOT NULL,
    PRIMARY KEY (`id`),
    KEY `issueIdIndex` (`issue_id`),
    KEY `workspaceIdIndex` (`workspace_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.attached_file:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `attached_file` DISABLE KEYS */;
/*!40000 ALTER TABLE `attached_file` ENABLE KEYS */;
-- 테이블 dev_db.company_field 구조 내보내기
CREATE TABLE IF NOT EXISTS `company_field` (
    `id` bigint(11) NOT NULL AUTO_INCREMENT,
    `name` varchar(50) NOT NULL,
    `manager` varchar(50) DEFAULT NULL,
    `tel` varchar(50) DEFAULT NULL,
    `email` varchar(255) DEFAULT NULL,
    `memo` varchar(255) DEFAULT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    `url` varchar(255) DEFAULT NULL,
    `isp_id` bigint(20) DEFAULT NULL,
    `hosting_id` bigint(20) DEFAULT NULL,
    PRIMARY KEY (`id`) USING BTREE,
    KEY `urlIndex` (`url`),
    KEY `ispIdIndex` (`isp_id`),
    KEY `hostingIdIndex` (`hosting_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 owl_en_1.5.custom_field 구조 내보내기
-- 테이블 dev_db.custom_field 구조 내보내기
CREATE TABLE IF NOT EXISTS `custom_field` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `workspace_id` bigint(20) NOT NULL,
@@ -45,34 +76,160 @@
    `default_value` varchar(100) NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    `use_flag` varchar(1) NOT NULL DEFAULT 'Y',
    `required_data` varchar(1) NOT NULL DEFAULT 'N',
    PRIMARY KEY (`id`),
    KEY `workspaceIdIndex` (`workspace_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.custom_field:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `custom_field` DISABLE KEYS */;
/*!40000 ALTER TABLE `custom_field` ENABLE KEYS */;
-- 테이블 dev_db.custom_field_api_default 구조 내보내기
CREATE TABLE IF NOT EXISTS `custom_field_api_default` (
    `id` bigint(11) NOT NULL AUTO_INCREMENT,
    `user_id` bigint(11) NOT NULL,
    `issue_type_id` bigint(11) NOT NULL,
    `custom_field_id` bigint(11) NOT NULL,
    `custom_field_value` varchar(300) NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`) USING BTREE,
    KEY `userIdIndex` (`user_id`) USING BTREE,
    KEY `issueTypeIdIndex` (`issue_type_id`) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 owl_en_1.5.custom_field_value 구조 내보내기
-- 테이블 dev_db.custom_field_api_overlap 구조 내보내기
CREATE TABLE IF NOT EXISTS `custom_field_api_overlap` (
    `id` bigint(11) NOT NULL AUTO_INCREMENT,
    `user_id` bigint(11) NOT NULL,
    `issue_type_id` bigint(11) NOT NULL,
    `custom_field_id` bigint(11) NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    `project_id` bigint(20) DEFAULT NULL,
    PRIMARY KEY (`id`) USING BTREE,
    KEY `userIdIndex` (`user_id`) USING BTREE,
    KEY `issueTypeIdIndex` (`issue_type_id`) USING BTREE,
    KEY `projectIdIndex` (`project_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 dev_db.custom_field_value 구조 내보내기
CREATE TABLE IF NOT EXISTS `custom_field_value` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `custom_field_id` bigint(20) NOT NULL,
    `value` varchar(100) NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`),
    KEY `customFieldIdIndex` (`custom_field_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.custom_field_value:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `custom_field_value` DISABLE KEYS */;
/*!40000 ALTER TABLE `custom_field_value` ENABLE KEYS */;
-- 테이블 dev_db.department 구조 내보내기
CREATE TABLE IF NOT EXISTS `department` (
    `id` bigint(11) NOT NULL AUTO_INCREMENT,
    `department_name` varchar(50) NOT NULL,
    `department_description` varchar(255) DEFAULT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 owl_en_1.5.issue 구조 내보내기
-- 테이블 dev_db.email_template 구조 내보내기
CREATE TABLE IF NOT EXISTS `email_template` (
    `id` bigint(11) NOT NULL AUTO_INCREMENT,
    `title` varchar(255) NOT NULL,
    `template` mediumtext NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 dev_db.event 구조 내보내기
CREATE TABLE IF NOT EXISTS `event` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `title` varchar(200) NOT NULL,
    `description` mediumtext NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `start_date` varchar(10) DEFAULT NULL COMMENT 'start_date',
    `end_date` varchar(10) DEFAULT NULL COMMENT 'end_date',
    `status` int(11) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 dev_db.faq 구조 내보내기
CREATE TABLE IF NOT EXISTS `faq` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `title` varchar(200) NOT NULL,
    `description` mediumtext NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `status` int(11) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 dev_db.guide 구조 내보내기
CREATE TABLE IF NOT EXISTS `guide` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `title` varchar(200) NOT NULL,
    `description` mediumtext NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `status` int(11) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 dev_db.hosting_field 구조 내보내기
CREATE TABLE IF NOT EXISTS `hosting_field` (
    `id` bigint(11) NOT NULL AUTO_INCREMENT,
    `code` varchar(50) NOT NULL,
    `name` varchar(50) NOT NULL,
    `manager` varchar(50) DEFAULT NULL,
    `tel` varchar(50) DEFAULT NULL,
    `email` varchar(255) DEFAULT NULL,
    `memo` varchar(255) DEFAULT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    `url` varchar(255) DEFAULT NULL,
    PRIMARY KEY (`id`) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 dev_db.isp_field 구조 내보내기
CREATE TABLE IF NOT EXISTS `isp_field` (
    `id` bigint(11) NOT NULL AUTO_INCREMENT,
    `code` varchar(50) NOT NULL,
    `name` varchar(50) NOT NULL,
    `manager` varchar(50) DEFAULT NULL,
    `tel` varchar(50) DEFAULT NULL,
    `email` varchar(255) DEFAULT NULL,
    `memo` varchar(255) DEFAULT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    `url` varchar(255) DEFAULT NULL,
    PRIMARY KEY (`id`) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 dev_db.issue 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
    `issue_status_id` bigint(20) DEFAULT NULL,
@@ -81,7 +238,7 @@
    `priority_id` bigint(20) DEFAULT NULL,
    `severity_id` bigint(20) DEFAULT NULL,
    `title` varchar(300) DEFAULT NULL,
    `description` mediumtext COMMENT 'description',
    `description` mediumtext DEFAULT NULL COMMENT 'description',
    `reverse_index` bigint(20) DEFAULT NULL,
    `issue_number` bigint(20) DEFAULT NULL,
    `start_date` varchar(20) DEFAULT NULL,
@@ -90,17 +247,40 @@
    `register_date` timestamp NULL DEFAULT NULL COMMENT 'register_date',
    `modify_id` bigint(20) NOT NULL COMMENT 'modify_id',
    `modify_date` timestamp NULL DEFAULT NULL COMMENT 'modify_date',
    `workflow_status_id` bigint(20) DEFAULT NULL,
    `parent_issue_id` bigint(11) DEFAULT NULL,
    `is_api` varchar(1) NOT NULL DEFAULT 'N',
    PRIMARY KEY (`id`),
    KEY `projectIdIndex` (`project_id`),
    KEY `reverseIndex` (`reverse_index`),
    KEY `issueTypeIdIndex` (`issue_type_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.issue:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `issue` DISABLE KEYS */;
/*!40000 ALTER TABLE `issue` ENABLE KEYS */;
-- 테이블 dev_db.issue_api_default 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_api_default` (
    `id` bigint(11) NOT NULL AUTO_INCREMENT,
    `user_id` bigint(11) NOT NULL,
    `issue_type_id` bigint(11) NOT NULL,
    `issue_status_id` bigint(20) DEFAULT NULL,
    `project_id` bigint(20) DEFAULT NULL,
    `priority_id` bigint(20) DEFAULT NULL,
    `severity_id` bigint(20) DEFAULT NULL,
    `title` varchar(300) DEFAULT NULL,
    `description` mediumtext DEFAULT NULL COMMENT 'description',
    `reverse_index` bigint(20) DEFAULT NULL,
    `issue_number` bigint(20) DEFAULT NULL,
    `start_date` varchar(20) DEFAULT NULL,
    `complete_date` varchar(20) DEFAULT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`) USING BTREE,
    KEY `userIdIndex` (`user_id`) USING BTREE,
    KEY `issueTypeIdIndex` (`issue_type_id`) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 owl_en_1.5.issue_comment 구조 내보내기
-- 테이블 dev_db.issue_comment 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_comment` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
    `issue_id` bigint(20) NOT NULL COMMENT 'issue_id',
@@ -115,11 +295,26 @@
    KEY `workspaceIdIndex` (`workspace_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='issue_comment';
-- 테이블 데이터 owl_en_1.5.issue_comment:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `issue_comment` DISABLE KEYS */;
/*!40000 ALTER TABLE `issue_comment` ENABLE KEYS */;
-- 테이블 dev_db.issue_company 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_company` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
    `issue_id` bigint(20) NOT NULL,
    `company_id` bigint(20) DEFAULT NULL,
    `name` varchar(50) DEFAULT NULL,
    `manager` varchar(50) DEFAULT NULL,
    `tel` varchar(50) DEFAULT NULL,
    `email` varchar(255) DEFAULT NULL,
    `memo` varchar(255) DEFAULT NULL,
    `register_id` bigint(20) NOT NULL COMMENT 'register_id',
    `register_date` timestamp NULL DEFAULT NULL COMMENT 'register_date',
    `modify_id` bigint(20) NOT NULL COMMENT 'modify_id',
    `modify_date` timestamp NULL DEFAULT NULL COMMENT 'modify_date',
    `url` varchar(255) DEFAULT NULL,
    PRIMARY KEY (`id`) USING BTREE,
    KEY `companyIdIndex` (`company_id`) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 owl_en_1.5.issue_custom_field_value 구조 내보내기
-- 테이블 dev_db.issue_custom_field_value 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_custom_field_value` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `issue_id` bigint(20) NOT NULL,
@@ -128,25 +323,38 @@
    `use_value` mediumtext NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`),
    KEY `customFieldIdIndex` (`custom_field_id`),
    KEY `issueTypeCustomFieldIdIndex` (`issue_type_custom_field_id`),
    KEY `issueIdIndex` (`issue_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.issue_custom_field_value:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `issue_custom_field_value` DISABLE KEYS */;
/*!40000 ALTER TABLE `issue_custom_field_value` ENABLE KEYS */;
-- 테이블 dev_db.issue_department 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_department` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `department_id` bigint(20) NOT NULL,
    `issue_id` bigint(20) NOT NULL,
    `workspace_id` bigint(20) NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    PRIMARY KEY (`id`),
    KEY `departmentIdAndIssueIdIndex` (`department_id`,`issue_id`),
    KEY `issueIdIndex` (`issue_id`),
    KEY `workspaceIdIndex` (`workspace_id`),
    KEY `departmentIdIndex` (`department_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 owl_en_1.5.issue_history 구조 내보내기
-- 테이블 dev_db.issue_history 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_history` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `issue_id` bigint(20) DEFAULT NULL,
    `project_id` bigint(20) DEFAULT NULL,
    `issue_history_type` varchar(10) NOT NULL,
    `description` mediumtext,
    `description` mediumtext DEFAULT NULL,
    `register_id` bigint(20) DEFAULT NULL,
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) DEFAULT NULL,
@@ -156,67 +364,123 @@
    KEY `projectIdIndex` (`project_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.issue_history:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `issue_history` DISABLE KEYS */;
/*!40000 ALTER TABLE `issue_history` ENABLE KEYS */;
-- 테이블 dev_db.issue_hosting 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_hosting` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
    `issue_id` bigint(20) NOT NULL,
    `hosting_id` bigint(20) DEFAULT NULL,
    `name` varchar(50) DEFAULT NULL,
    `code` varchar(50) DEFAULT NULL,
    `manager` varchar(50) DEFAULT NULL,
    `tel` varchar(50) DEFAULT NULL,
    `email` varchar(255) DEFAULT NULL,
    `memo` varchar(255) DEFAULT NULL,
    `register_id` bigint(20) NOT NULL COMMENT 'register_id',
    `register_date` timestamp NULL DEFAULT NULL COMMENT 'register_date',
    `modify_id` bigint(20) NOT NULL COMMENT 'modify_id',
    `modify_date` timestamp NULL DEFAULT NULL COMMENT 'modify_date',
    `url` varchar(255) DEFAULT NULL,
    PRIMARY KEY (`id`) USING BTREE,
    KEY `hostingIdIndex` (`hosting_id`) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 owl_en_1.5.issue_number_generator 구조 내보내기
-- 테이블 dev_db.issue_isp 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_isp` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
    `issue_id` bigint(20) NOT NULL,
    `isp_id` bigint(20) DEFAULT NULL,
    `name` varchar(50) DEFAULT NULL,
    `code` varchar(50) DEFAULT NULL,
    `manager` varchar(50) DEFAULT NULL,
    `tel` varchar(50) DEFAULT NULL,
    `email` varchar(255) DEFAULT NULL,
    `memo` varchar(255) DEFAULT NULL,
    `register_id` bigint(20) NOT NULL COMMENT 'register_id',
    `register_date` timestamp NULL DEFAULT NULL COMMENT 'register_date',
    `modify_id` bigint(20) NOT NULL COMMENT 'modify_id',
    `modify_date` timestamp NULL DEFAULT NULL COMMENT 'modify_date',
    `url` varchar(255) DEFAULT NULL,
    PRIMARY KEY (`id`) USING BTREE,
    KEY `ispIdIndex` (`isp_id`) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 dev_db.issue_number_generator 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_number_generator` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `project_id` bigint(20) NOT NULL,
    `number` bigint(20) NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`),
    KEY `projectIdIndex` (`project_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.issue_number_generator:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `issue_number_generator` DISABLE KEYS */;
/*!40000 ALTER TABLE `issue_number_generator` ENABLE KEYS */;
-- 테이블 dev_db.issue_relation 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_relation` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `issue_id` bigint(20) NOT NULL,
    `relation_issue_id` bigint(20) NOT NULL DEFAULT -1,
    `relation_issue_type` int(20) NOT NULL,
    `register_id` bigint(20) NOT NULL COMMENT 'register_id',
    `register_date` timestamp NULL DEFAULT NULL COMMENT 'register_date',
    `modify_id` bigint(20) NOT NULL COMMENT 'modify_id',
    `modify_date` timestamp NULL DEFAULT NULL COMMENT 'modify_date',
    PRIMARY KEY (`id`) USING BTREE,
    KEY `issueId` (`issue_id`) USING BTREE,
    KEY `relationIssueId` (`relation_issue_id`) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 owl_en_1.5.issue_risk 구조 내보내기
-- 테이블 dev_db.issue_reservation 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_reservation` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `issue_id` bigint(20) DEFAULT NULL,
    `workspace_id` bigint(20) DEFAULT NULL,
    `reservation` varchar(10) DEFAULT NULL,
    `issue_reservation_type` varchar(10) DEFAULT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`),
    KEY `workspaceIdIndex` (`workspace_id`),
    KEY `issueIdIndex` (`issue_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 dev_db.issue_risk 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_risk` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `issue_id` bigint(20) NOT NULL,
    `workspace_id` bigint(20) NOT NULL,
    `change_assignee_count` bigint(20) NOT NULL DEFAULT '0',
    `change_issue_status_count` bigint(20) NOT NULL DEFAULT '0',
    `change_assignee_count` bigint(20) NOT NULL DEFAULT 0,
    `change_issue_status_count` bigint(20) NOT NULL DEFAULT 0,
    `issue_status_ids` text NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
    `modify_date` timestamp NULL DEFAULT NULL,
    `change_department_count` bigint(20) NOT NULL DEFAULT 0,
    PRIMARY KEY (`id`),
    KEY `issueIdIndex` (`issue_id`),
    KEY `workspaceIdIndex` (`workspace_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.issue_risk:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `issue_risk` DISABLE KEYS */;
/*!40000 ALTER TABLE `issue_risk` ENABLE KEYS */;
-- 테이블 owl_en_1.5.issue_search 구조 내보내기
-- 테이블 dev_db.issue_search 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_search` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `workspace_id` bigint(20) NOT NULL,
    `user_id` bigint(20) NOT NULL,
    `conditions` mediumtext,
    `conditions` mediumtext DEFAULT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`),
    KEY `workspaceIdAndUserIdIndex` (`workspace_id`,`user_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.issue_search:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `issue_search` DISABLE KEYS */;
/*!40000 ALTER TABLE `issue_search` ENABLE KEYS */;
-- 테이블 owl_en_1.5.issue_status 구조 내보내기
-- 테이블 dev_db.issue_status 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_status` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `workspace_id` bigint(20) DEFAULT NULL,
@@ -233,30 +497,25 @@
    KEY `workspaceIdIndex` (`workspace_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.issue_status:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `issue_status` DISABLE KEYS */;
/*!40000 ALTER TABLE `issue_status` ENABLE KEYS */;
-- 테이블 owl_en_1.5.issue_table_config 구조 내보내기
-- 테이블 dev_db.issue_table_config 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_table_config` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `workspace_id` bigint(20) NOT NULL,
    `user_id` bigint(20) NOT NULL,
    `issue_table_configs` mediumtext CHARACTER SET utf8 NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `modify_date` timestamp NULL DEFAULT NULL,
    `issue_type_id` bigint(20) NOT NULL,
    `issue_table_type` int(11) NOT NULL,
    PRIMARY KEY (`id`),
    KEY `workspaceIdAndUserIdIndex` (`workspace_id`,`user_id`),
    KEY `workspaceIdIndex` (`workspace_id`)
    KEY `workspaceIdIndex` (`workspace_id`),
    KEY `issueTableTypeIndex` (`issue_table_type`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.issue_table_config:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `issue_table_config` DISABLE KEYS */;
/*!40000 ALTER TABLE `issue_table_config` ENABLE KEYS */;
-- 테이블 owl_en_1.5.issue_type 구조 내보내기
-- 테이블 dev_db.issue_type 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_type` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `workspace_id` bigint(20) NOT NULL,
@@ -264,31 +523,47 @@
    `name` varchar(15) NOT NULL,
    `description` mediumtext NOT NULL,
    `color` varchar(255) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_id` bigint(20) NOT NULL,
    `project_id` bigint(11) DEFAULT NULL,
    `use_partner` bigint(11) NOT NULL DEFAULT 0,
    PRIMARY KEY (`id`),
    KEY `workspaceIdIndex` (`workspace_id`),
    KEY `workflowIdIndex` (`workflow_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.issue_type:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `issue_type` DISABLE KEYS */;
/*!40000 ALTER TABLE `issue_type` ENABLE KEYS */;
-- 테이블 dev_db.issue_type_api_end_status 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_type_api_end_status` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `user_id` bigint(20) DEFAULT NULL,
    `project_id` bigint(20) DEFAULT NULL,
    `issue_type_id` bigint(20) DEFAULT NULL,
    `issue_status_id` bigint(20) DEFAULT NULL,
    `register_id` bigint(20) NOT NULL COMMENT 'register_id',
    `register_date` timestamp NULL DEFAULT NULL COMMENT 'register_date',
    `modify_id` bigint(20) NOT NULL COMMENT 'modify_id',
    `modify_date` timestamp NULL DEFAULT NULL COMMENT 'modify_date',
    PRIMARY KEY (`id`),
    KEY `userIdIndex` (`user_id`),
    KEY `projectIdIndex` (`project_id`),
    KEY `issueTypeIdIndex` (`issue_type_id`),
    KEY `issueStatusIdIndex` (`issue_status_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 owl_en_1.5.issue_type_custom_field 구조 내보내기
-- 테이블 dev_db.issue_type_custom_field 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_type_custom_field` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `project_id` bigint(20) NOT NULL,
    `issue_type_id` bigint(20) NOT NULL,
    `custom_field_id` bigint(20) NOT NULL,
    `field_option` varchar(10) NOT NULL,
    `position` bigint(20) NOT NULL DEFAULT '0',
    `position` bigint(20) NOT NULL DEFAULT 0,
    `register_id` bigint(20) NOT NULL,
    `modify_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`),
    KEY `projectIdIndex` (`project_id`),
    KEY `issueTypeIdIndex` (`issue_type_id`),
@@ -296,20 +571,16 @@
    KEY `projectIdAndIssueTypeIdIndex` (`project_id`,`issue_type_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.issue_type_custom_field:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `issue_type_custom_field` DISABLE KEYS */;
/*!40000 ALTER TABLE `issue_type_custom_field` ENABLE KEYS */;
-- 테이블 owl_en_1.5.issue_user 구조 내보내기
-- 테이블 dev_db.issue_user 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_user` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `user_id` bigint(20) NULL,
    `user_id` bigint(20) DEFAULT NULL,
    `issue_id` bigint(20) NOT NULL,
    `workspace_id` bigint(20) NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`),
    KEY `userIdAndIssueIdIndex` (`user_id`,`issue_id`),
    KEY `issueIdIndex` (`issue_id`),
@@ -317,35 +588,14 @@
    KEY `userIdIndex` (`user_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 owl_en_1.5.issue_department 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_department` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `department_id` bigint(20) NOT NULL,
    `issue_id` bigint(20) NOT NULL,
    `workspace_id` bigint(20) NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    PRIMARY KEY (`id`),
    KEY `departmentIdAndIssueIdIndex` (`department_id`,`issue_id`),
    KEY `issueIdIndex` (`issue_id`),
    KEY `workspaceIdIndex` (`workspace_id`),
    KEY `departmentIdIndex` (`department_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.issue_user:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `issue_user` DISABLE KEYS */;
/*!40000 ALTER TABLE `issue_user` ENABLE KEYS */;
-- 테이블 owl_en_1.5.issue_version_control 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_version_control` (
-- 테이블 dev_db.issue_version 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_version` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `workspace_id` bigint(20) DEFAULT NULL,
    `project_id` bigint(20) DEFAULT NULL,
    `issue_id` bigint(20) DEFAULT NULL,
    `version` bigint(20) DEFAULT NULL,
    `content` mediumtext,
    `content` mediumtext DEFAULT NULL,
    `register_id` bigint(20) DEFAULT NULL,
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) DEFAULT NULL,
@@ -356,25 +606,19 @@
    KEY `projectIdIndex` (`project_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.issue_version_control:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `issue_version_control` DISABLE KEYS */;
/*!40000 ALTER TABLE `issue_version_control` ENABLE KEYS */;
-- 테이블 owl_en_1.5.login_history 구조 내보내기
CREATE TABLE IF NOT EXISTS `login_history` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
    `user_id` bigint(20) NOT NULL COMMENT 'user_id',
    `login_date` timestamp NULL DEFAULT NULL COMMENT 'login_date',
    `logout_date` timestamp NULL DEFAULT NULL COMMENT 'logout_date',
    `login_ip` varchar(20) NOT NULL COMMENT 'login_ip',
-- 테이블 dev_db.notice 구조 내보내기
CREATE TABLE IF NOT EXISTS `notice` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `title` varchar(200) NOT NULL,
    `description` mediumtext NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='login_history';
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.login_history:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `login_history` DISABLE KEYS */;
/*!40000 ALTER TABLE `login_history` ENABLE KEYS */;
-- 테이블 owl_en_1.5.payment 구조 내보내기
-- 테이블 dev_db.payment 구조 내보내기
CREATE TABLE IF NOT EXISTS `payment` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `workspace_id` bigint(20) DEFAULT NULL,
@@ -389,11 +633,7 @@
    KEY `workspaceIdIndex` (`workspace_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.payment:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `payment` DISABLE KEYS */;
/*!40000 ALTER TABLE `payment` ENABLE KEYS */;
-- 테이블 owl_en_1.5.payment_history 구조 내보내기
-- 테이블 dev_db.payment_history 구조 내보내기
CREATE TABLE IF NOT EXISTS `payment_history` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `workspace_id` bigint(20) NOT NULL,
@@ -404,19 +644,15 @@
    `merchant_uid` varchar(255) NOT NULL,
    `payment_result` varchar(10) NOT NULL,
    `payment_response` mediumtext NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `register_date` timestamp NULL DEFAULT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `modify_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    PRIMARY KEY (`id`),
    KEY `workspaceIdIndex` (`workspace_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.payment_history:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `payment_history` DISABLE KEYS */;
/*!40000 ALTER TABLE `payment_history` ENABLE KEYS */;
-- 테이블 owl_en_1.5.permission 구조 내보내기
-- 테이블 dev_db.permission 구조 내보내기
CREATE TABLE IF NOT EXISTS `permission` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `name` varchar(50) NOT NULL,
@@ -427,7 +663,7 @@
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4;
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.permission:~12 rows (대략적) 내보내기
/*!40000 ALTER TABLE `permission` DISABLE KEYS */;
@@ -443,7 +679,8 @@
(9, '이슈 상태 통합 권한', 'ISSUE_STATUS_TOTAL', '01', 1, '2018-05-03 15:06:31', 1, '2018-05-03 15:06:32'),
(10, '워크플로우 통합 권한', 'WORKFLOW_TOTAL', '01', 1, '2018-05-03 15:07:09', 1, '2018-05-03 15:07:10'),
(11, '이슈 유형 통합 권한', 'ISSUE_TYPE_TOTAL', '01', 1, '2018-05-03 15:07:35', 1, '2018-05-03 15:07:36'),
(12, '사용자 정의 필드 통합 권한', 'CUSTOM_FIELD_TOTAL', '01', 1, '2018-05-03 15:07:55', 1, '2018-05-03 15:07:56');
(12, '사용자 정의 필드 통합 권한', 'CUSTOM_FIELD_TOTAL', '01', 1, '2018-05-03 15:07:55', 1, '2018-05-03 15:07:56'),
(13, '공지사항 조회 권한', 'NOTICE_READ', '01', 1, '2018-05-03 15:07:55', 1, '2018-05-03 15:07:56');
/*!40000 ALTER TABLE `permission` ENABLE KEYS */;
-- 테이블 owl_en_1.5.priority 구조 내보내기
@@ -460,18 +697,14 @@
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.priority:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `priority` DISABLE KEYS */;
/*!40000 ALTER TABLE `priority` ENABLE KEYS */;
-- 테이블 owl_en_1.5.project 구조 내보내기
-- 테이블 dev_db.project 구조 내보내기
CREATE TABLE IF NOT EXISTS `project` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
    `workspace_id` bigint(20) NOT NULL DEFAULT '0',
    `workspace_id` bigint(20) NOT NULL DEFAULT 0,
    `name` varchar(50) NOT NULL COMMENT 'name',
    `project_key` varchar(10) NOT NULL,
    `project_type` varchar(50) NOT NULL,
    `description` mediumtext COMMENT 'description',
    `description` mediumtext DEFAULT NULL COMMENT 'description',
    `status` varchar(2) NOT NULL DEFAULT '01' COMMENT '01:활성, 02:비활성',
    `start_date` varchar(10) DEFAULT NULL COMMENT 'start_date',
    `end_date` varchar(10) DEFAULT NULL COMMENT 'end_date',
@@ -484,95 +717,103 @@
    KEY `workspaceIdIndex` (`workspace_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='project';
-- 테이블 데이터 owl_en_1.5.project:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `project` DISABLE KEYS */;
/*!40000 ALTER TABLE `project` ENABLE KEYS */;
-- 테이블 dev_db.project_closure 구조 내보내기
CREATE TABLE IF NOT EXISTS `project_closure` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `project_id` bigint(20) NOT NULL,
    `parent_project_id` bigint(20) NOT NULL DEFAULT -1,
    `register_id` bigint(20) NOT NULL COMMENT 'register_id',
    `register_date` timestamp NULL DEFAULT NULL COMMENT 'register_date',
    `modify_id` bigint(20) NOT NULL COMMENT 'modify_id',
    `modify_date` timestamp NULL DEFAULT NULL COMMENT 'modify_date',
    PRIMARY KEY (`id`) USING BTREE,
    KEY `projectIdIndex` (`project_id`) USING BTREE,
    KEY `parentProjectIdIndex` (`parent_project_id`) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 owl_en_1.5.project_role 구조 내보내기
-- 테이블 dev_db.project_role 구조 내보내기
CREATE TABLE IF NOT EXISTS `project_role` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `project_id` bigint(20) NOT NULL,
    `name` varchar(50) NOT NULL,
    `role_type` varchar(2) NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`),
    KEY `projectIdIndex` (`project_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.project_role:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `project_role` DISABLE KEYS */;
/*!40000 ALTER TABLE `project_role` ENABLE KEYS */;
-- 테이블 dev_db.project_role_department 구조 내보내기
CREATE TABLE IF NOT EXISTS `project_role_department` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `project_role_id` bigint(20) NOT NULL,
    `department_id` bigint(20) NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    PRIMARY KEY (`id`),
    KEY `projectRoleIdAndDepartmentIdIndex` (`project_role_id`,`department_id`),
    KEY `departmentIdIndex` (`department_id`),
    KEY `projectRoleIdIndex` (`project_role_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 owl_en_1.5.project_role_permission 구조 내보내기
-- 테이블 dev_db.project_role_permission 구조 내보내기
CREATE TABLE IF NOT EXISTS `project_role_permission` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `project_role_id` bigint(20) NOT NULL,
    `permission_id` bigint(20) NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`),
    KEY `projectRoleIdIndex` (`project_role_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.project_role_permission:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `project_role_permission` DISABLE KEYS */;
/*!40000 ALTER TABLE `project_role_permission` ENABLE KEYS */;
-- 테이블 owl_en_1.5.project_role_user 구조 내보내기
-- 테이블 dev_db.project_role_user 구조 내보내기
CREATE TABLE IF NOT EXISTS `project_role_user` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `project_role_id` bigint(20) NOT NULL,
    `user_id` bigint(20) NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`),
    KEY `projectRoleIdAndUserIdIndex` (`project_role_id`,`user_id`),
    KEY `userIdIndex` (`user_id`),
    KEY `projectRoleIdIndex` (`project_role_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 owl_en_1.5.project_role_department 구조 내보내기
CREATE TABLE IF NOT EXISTS `project_role_department` (
-- 테이블 dev_db.qna 구조 내보내기
CREATE TABLE IF NOT EXISTS `qna` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `project_role_id` bigint(20) NOT NULL,
    `department_id` bigint(20) NOT NULL,
    `title` varchar(200) NOT NULL,
    `description` mediumtext NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `modify_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    PRIMARY KEY (`id`),
    KEY `projectRoleIdAndDepartmentIdIndex` (`project_role_id`,`department_id`),
    KEY `departmentIdIndex` (`department_id`),
    KEY `projectRoleIdIndex` (`project_role_id`)
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 owl_en_1.5.project_role_department 구조 내보내기
CREATE TABLE IF NOT EXISTS `project_role_department` (
-- 테이블 dev_db.qna_answer 구조 내보내기
CREATE TABLE IF NOT EXISTS `qna_answer` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `project_role_id` bigint(20) NOT NULL,
    `department_id` bigint(20) NULL,
    `ask_id` bigint(20) NOT NULL,
    `title` varchar(200) NOT NULL,
    `description` mediumtext NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `modify_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    PRIMARY KEY (`id`),
    KEY `projectRoleIdAndDepartmentIdIndex` (`project_role_id`,`department_id`),
    KEY `departmentIdIndex` (`department_id`),
    KEY `projectRoleIdIndex` (`project_role_id`)
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.project_role_user:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `project_role_user` DISABLE KEYS */;
/*!40000 ALTER TABLE `project_role_user` ENABLE KEYS */;
-- 테이블 owl_en_1.5.reservation_disable_user 구조 내보내기
-- 테이블 dev_db.reservation_disable_user 구조 내보내기
CREATE TABLE IF NOT EXISTS `reservation_disable_user` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `payment_id` bigint(20) DEFAULT NULL,
@@ -585,29 +826,37 @@
    KEY `paymentIdIndex` (`payment_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.reservation_disable_user:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `reservation_disable_user` DISABLE KEYS */;
/*!40000 ALTER TABLE `reservation_disable_user` ENABLE KEYS */;
-- 테이블 dev_db.schema_version 구조 내보내기
CREATE TABLE IF NOT EXISTS `schema_version` (
    `installed_rank` int(11) NOT NULL,
    `version` varchar(50) DEFAULT NULL,
    `description` varchar(200) NOT NULL,
    `type` varchar(20) NOT NULL,
    `script` varchar(1000) NOT NULL,
    `checksum` int(11) DEFAULT NULL,
    `installed_by` varchar(100) NOT NULL,
    `installed_on` timestamp NOT NULL DEFAULT current_timestamp(),
    `execution_time` int(11) NOT NULL,
    `success` tinyint(1) NOT NULL,
    PRIMARY KEY (`installed_rank`),
    KEY `schema_version_s_idx` (`success`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 테이블 owl_en_1.5.severity 구조 내보내기
-- 테이블 dev_db.severity 구조 내보내기
CREATE TABLE IF NOT EXISTS `severity` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `workspace_id` bigint(20) NOT NULL,
    `name` varchar(50) NOT NULL,
    `position` bigint(20) NOT NULL,
    `color` varchar(255) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_id` bigint(20) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.severity:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `severity` DISABLE KEYS */;
/*!40000 ALTER TABLE `severity` ENABLE KEYS */;
-- 테이블 owl_en_1.5.system_email 구조 내보내기
-- 테이블 dev_db.system_email 구조 내보내기
CREATE TABLE IF NOT EXISTS `system_email` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `send_address` varchar(50) NOT NULL,
@@ -616,16 +865,12 @@
    `send_yn` varchar(2) NOT NULL DEFAULT 'N',
    `register_id` bigint(20) NOT NULL,
    `modify_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.system_email:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `system_email` DISABLE KEYS */;
/*!40000 ALTER TABLE `system_email` ENABLE KEYS */;
-- 테이블 owl_en_1.5.system_role 구조 내보내기
-- 테이블 dev_db.system_role 구조 내보내기
CREATE TABLE IF NOT EXISTS `system_role` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `name` varchar(50) NOT NULL,
@@ -635,13 +880,15 @@
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4;
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.system_role:~2 rows (대략적) 내보내기
/*!40000 ALTER TABLE `system_role` DISABLE KEYS */;
INSERT INTO `system_role` (`id`, `name`, `role_type`, `register_id`, `register_date`, `modify_id`, `modify_date`) VALUES
(1, '일반 사용자 역할', '01', 1, '2017-12-29 21:37:15', 1, '2017-12-29 21:37:16'),
(2, '워크스페이스 관리자 역할', '02', 1, '2017-12-29 21:37:27', 1, '2017-12-29 21:37:28');
(2, '워크스페이스 관리자 역할', '02', 1, '2017-12-29 21:37:27', 1, '2017-12-29 21:37:28'),
(3, '프로젝트 사용자 역할', '03', 1, '2017-12-29 21:37:15', 1, '2017-12-29 21:37:15'),
(4, '프로젝트 관리자 역할', '04', 1, '2017-12-29 21:37:15', 1, '2017-12-29 21:37:15');
/*!40000 ALTER TABLE `system_role` ENABLE KEYS */;
-- 테이블 owl_en_1.5.system_role_permission 구조 내보내기
@@ -654,7 +901,7 @@
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8mb4;
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.system_role_permission:~18 rows (대략적) 내보내기
/*!40000 ALTER TABLE `system_role_permission` DISABLE KEYS */;
@@ -676,7 +923,9 @@
(15, 2, 9, 1, '2018-05-08 15:52:13', 1, '2018-05-08 15:52:14'),
(16, 2, 10, 1, '2018-05-08 15:52:20', 1, '2018-05-08 15:52:21'),
(17, 2, 11, 1, '2018-05-08 15:52:28', 1, '2018-05-08 15:52:28'),
(18, 2, 12, 1, '2018-05-08 15:52:35', 1, '2018-05-08 15:52:36');
(18, 2, 12, 1, '2018-05-08 15:52:35', 1, '2018-05-08 15:52:36'),
(19, 1, 13, 1, '2019-06-12 12:06:35', 1, '2019-06-12 12:06:37'),
(20, 2, 13, 1, '2019-06-12 12:06:47', 1, '2019-06-12 12:06:49');
/*!40000 ALTER TABLE `system_role_permission` ENABLE KEYS */;
-- 테이블 owl_en_1.5.system_role_user 구조 내보내기
@@ -693,11 +942,7 @@
    KEY `systemRoleidIndex` (`system_role_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.system_role_user:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `system_role_user` DISABLE KEYS */;
/*!40000 ALTER TABLE `system_role_user` ENABLE KEYS */;
-- 테이블 owl_en_1.5.user 구조 내보내기
-- 테이블 dev_db.user 구조 내보내기
CREATE TABLE IF NOT EXISTS `user` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `name` varchar(50) NOT NULL,
@@ -715,14 +960,29 @@
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`)
    `licensekey` varchar(255) DEFAULT NULL,
    `last_project_id` bigint(20) DEFAULT 0,
    `last_issue_type_id` bigint(20) DEFAULT 0,
    `last_login_date` timestamp NULL DEFAULT NULL,
    `level_id` bigint(11) DEFAULT NULL,
    `insert_type` varchar(1) NOT NULL DEFAULT 'N',
    PRIMARY KEY (`id`),
    KEY `levelIdIndex` (`level_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.user:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `user` DISABLE KEYS */;
/*!40000 ALTER TABLE `user` ENABLE KEYS */;
-- 테이블 dev_db.user_department 구조 내보내기
CREATE TABLE IF NOT EXISTS `user_department` (
    `id` bigint(11) NOT NULL AUTO_INCREMENT,
    `department_id` bigint(11) DEFAULT NULL,
    `user_id` bigint(11) DEFAULT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 owl_en_1.5.user_invite 구조 내보내기
-- 테이블 dev_db.user_invite 구조 내보내기
CREATE TABLE IF NOT EXISTS `user_invite` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `workspace_id` bigint(20) NOT NULL,
@@ -730,35 +990,41 @@
    `status` varchar(10) NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`),
    KEY `workspaceIdIndex` (`workspace_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.user_invite:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `user_invite` DISABLE KEYS */;
/*!40000 ALTER TABLE `user_invite` ENABLE KEYS */;
-- 테이블 owl_en_1.5.user_invite_project 구조 내보내기
-- 테이블 dev_db.user_invite_project 구조 내보내기
CREATE TABLE IF NOT EXISTS `user_invite_project` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `user_invite_id` bigint(20) NOT NULL,
    `project_id` bigint(20) NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`),
    KEY `userInviteIdIndex` (`user_invite_id`),
    KEY `projectIdIndex` (`project_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.user_invite_project:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `user_invite_project` DISABLE KEYS */;
/*!40000 ALTER TABLE `user_invite_project` ENABLE KEYS */;
-- 테이블 dev_db.user_level 구조 내보내기
CREATE TABLE IF NOT EXISTS `user_level` (
    `id` bigint(11) NOT NULL AUTO_INCREMENT,
    `level_name` varchar(50) NOT NULL,
    `permission` int(11) DEFAULT NULL,
    `register_id` bigint(20) NOT NULL COMMENT 'register_id',
    `register_date` timestamp NULL DEFAULT NULL COMMENT 'register_date',
    `modify_id` bigint(20) NOT NULL COMMENT 'modify_id',
    `modify_date` timestamp NULL DEFAULT NULL COMMENT 'modify_date',
    `default_yn` varchar(1) NOT NULL DEFAULT 'N',
    `basic_user` varchar(1) NOT NULL DEFAULT 'N',
    PRIMARY KEY (`id`) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 owl_en_1.5.user_like_issue 구조 내보내기
-- 테이블 dev_db.user_like_issue 구조 내보내기
CREATE TABLE IF NOT EXISTS `user_like_issue` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `user_id` bigint(20) NOT NULL,
@@ -766,35 +1032,27 @@
    `workspace_id` bigint(20) NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`),
    KEY `userIdIndex` (`user_id`),
    KEY `issueIdIndex` (`issue_id`),
    KEY `workspaceIdIndex` (`workspace_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.user_like_issue:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `user_like_issue` DISABLE KEYS */;
/*!40000 ALTER TABLE `user_like_issue` ENABLE KEYS */;
-- 테이블 owl_en_1.5.user_with_draw 구조 내보내기
-- 테이블 dev_db.user_with_draw 구조 내보내기
CREATE TABLE IF NOT EXISTS `user_with_draw` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `account` varchar(200) NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`),
    KEY `accountIndex` (`account`(191))
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.user_with_draw:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `user_with_draw` DISABLE KEYS */;
/*!40000 ALTER TABLE `user_with_draw` ENABLE KEYS */;
-- 테이블 owl_en_1.5.user_workspace 구조 내보내기
-- 테이블 dev_db.user_workspace 구조 내보내기
CREATE TABLE IF NOT EXISTS `user_workspace` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `user_id` bigint(20) DEFAULT NULL,
@@ -802,39 +1060,64 @@
    `manager_yn` varchar(2) NOT NULL DEFAULT 'N',
    `use_yn` varchar(2) NOT NULL DEFAULT 'N',
    `disable_position` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `register_date` timestamp NULL DEFAULT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `modify_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    PRIMARY KEY (`id`),
    KEY `userIdIndex` (`user_id`),
    KEY `workspaceIdIndex` (`workspace_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.user_workspace:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `user_workspace` DISABLE KEYS */;
/*!40000 ALTER TABLE `user_workspace` ENABLE KEYS */;
-- 테이블 owl_en_1.5.workflow 구조 내보내기
-- 테이블 dev_db.workflow 구조 내보내기
CREATE TABLE IF NOT EXISTS `workflow` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `workspace_id` bigint(20) NOT NULL,
    `name` varchar(50) NOT NULL,
    `description` mediumtext,
    `description` mediumtext DEFAULT NULL,
    `project_type` varchar(50) DEFAULT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `register_date` timestamp NULL DEFAULT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `modify_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    PRIMARY KEY (`id`),
    KEY `workspaceIdIndex` (`workspace_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.workflow:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `workflow` DISABLE KEYS */;
/*!40000 ALTER TABLE `workflow` ENABLE KEYS */;
-- 테이블 dev_db.workflow_department 구조 내보내기
CREATE TABLE IF NOT EXISTS `workflow_department` (
    `id` bigint(11) NOT NULL AUTO_INCREMENT,
    `workflow_id` bigint(11) DEFAULT NULL,
    `issue_status_id` bigint(11) DEFAULT NULL,
    `department_id` bigint(11) DEFAULT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`) USING BTREE,
    KEY `workflowIdIndex` (`workflow_id`) USING BTREE,
    KEY `issueStatusIdIndex` (`issue_status_id`) USING BTREE,
    KEY `departmentIdIndex` (`department_id`) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 owl_en_1.5.workflow_transition 구조 내보내기
-- 테이블 dev_db.workflow_status 구조 내보내기
CREATE TABLE IF NOT EXISTS `workflow_status` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `project_id` bigint(20) DEFAULT NULL,
    `name` varchar(255) CHARACTER SET utf8 NOT NULL DEFAULT '',
    `first_yn` varchar(1) CHARACTER SET utf8 NOT NULL DEFAULT 'N',
    `last_yn` varchar(1) CHARACTER SET utf8 NOT NULL DEFAULT 'N',
    `progress` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT '진행률',
    `color` varchar(255) CHARACTER SET utf8 NOT NULL DEFAULT '0',
    `position` bigint(20) NOT NULL DEFAULT 0,
    `register_id` bigint(20) NOT NULL COMMENT 'register_id',
    `register_date` timestamp NULL DEFAULT NULL COMMENT 'register_date',
    `modify_id` bigint(20) NOT NULL COMMENT 'modify_id',
    `modify_date` timestamp NULL DEFAULT NULL COMMENT 'modify_date',
    PRIMARY KEY (`id`) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 dev_db.workflow_transition 구조 내보내기
CREATE TABLE IF NOT EXISTS `workflow_transition` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `workflow_id` bigint(20) NOT NULL,
@@ -847,9 +1130,9 @@
    `correct_x` bigint(20) DEFAULT NULL,
    `correct_y` bigint(20) DEFAULT NULL,
    `direct` varchar(2) NOT NULL DEFAULT 'N',
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `register_date` timestamp NULL DEFAULT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `modify_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    PRIMARY KEY (`id`),
    KEY `workflowIdIndex` (`workflow_id`),
@@ -857,31 +1140,23 @@
    KEY `targetIssueStatusIdIndex` (`target_issue_status_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.workflow_transition:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `workflow_transition` DISABLE KEYS */;
/*!40000 ALTER TABLE `workflow_transition` ENABLE KEYS */;
-- 테이블 owl_en_1.5.workspace 구조 내보내기
-- 테이블 dev_db.workspace 구조 내보내기
CREATE TABLE IF NOT EXISTS `workspace` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `name` varchar(255) NOT NULL,
    `max_user` bigint(20) NOT NULL,
    `start_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `expire_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `start_date` timestamp NULL DEFAULT NULL,
    `expire_date` timestamp NULL DEFAULT NULL,
    `storage_size` bigint(20) NOT NULL,
    `use_traffic` bigint(20) DEFAULT NULL,
    `service_type` varchar(10) DEFAULT NULL,
    `register_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `register_date` timestamp NULL DEFAULT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `modify_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.workspace:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `workspace` DISABLE KEYS */;
/*!40000 ALTER TABLE `workspace` ENABLE KEYS */;
/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */;
/*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
src/main/resources/migration/V1_2__Alter_Table.sql
File was deleted
src/main/resources/migration/V1_2__insert_default_data.sql
New file
@@ -0,0 +1,143 @@
-- --------------------------------------------------------
-- 호스트:                          127.0.0.1
-- 서버 버전:                        10.5.8-MariaDB - mariadb.org binary distribution
-- 서버 OS:                        Win64
-- HeidiSQL 버전:                  11.0.0.5919
-- --------------------------------------------------------
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET NAMES utf8 */;
/*!50503 SET NAMES utf8mb4 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
-- 테이블 데이터 prod_db.custom_field:~7 rows (대략적) 내보내기
DELETE FROM `custom_field`;
/*!40000 ALTER TABLE `custom_field` DISABLE KEYS */;
INSERT INTO `custom_field` (`id`, `workspace_id`, `name`, `custom_field_type`, `default_value`, `register_id`, `modify_id`, `register_date`, `modify_date`, `use_flag`, `required_data`) VALUES
(1, 1, '탐지일시', 'DATETIME', '', 1, 1, '2021-12-03 15:45:42', '2021-12-03 15:45:42', 'Y', 'N'),
(2, 1, '경유지', 'SITE', '', 1, 1, '2021-12-03 15:45:48', '2021-12-03 20:49:11', 'Y', 'N'),
(3, 1, '국가', 'SINGLE_SELECT', '', 1, 1, '2021-12-03 15:47:05', '2021-12-03 15:47:05', 'Y', 'N'),
(4, 1, '도메인', 'SITE', '', 1, 1, '2021-12-03 20:49:40', '2021-12-03 20:49:40', 'Y', 'N'),
(5, 1, '유포지', 'IP_ADDRESS', '', 1, 1, '2021-12-06 09:03:18', '2021-12-06 09:16:50', 'Y', 'N'),
(6, 1, '탐지패턴', 'INPUT', '', 1, 1, '2021-12-06 10:10:12', '2021-12-06 10:10:12', 'Y', 'N'),
(7, 1, 'IP정보', 'IP_ADDRESS', '', 1, 1, '2021-12-14 13:19:22', '2021-12-14 13:19:22', 'Y', 'N');
/*!40000 ALTER TABLE `custom_field` ENABLE KEYS */;
-- 테이블 데이터 prod_db.issue_status:~22 rows (대략적) 내보내기
DELETE FROM `issue_status`;
/*!40000 ALTER TABLE `issue_status` DISABLE KEYS */;
INSERT INTO `issue_status` (`id`, `workspace_id`, `issue_status_type`, `name`, `default_yn`, `color`, `position`, `register_id`, `register_date`, `modify_id`, `modify_date`) VALUES
(1, 1, 'READY', '생성', 'Y', '#665fff', 1, 1, '2021-12-03 15:43:32', 1, '2021-12-03 15:43:32'),
(2, 1, 'OPEN', '진행', 'Y', '#98c220', 2, 1, '2021-12-03 15:43:32', 1, '2021-12-03 15:43:32'),
(3, 1, 'OPEN', '재진행', 'Y', '#c940ea', 3, 1, '2021-12-03 15:43:32', 1, '2021-12-03 15:43:32'),
(4, 1, 'OPEN', '확인', 'Y', '#febd35', 4, 1, '2021-12-03 15:43:32', 1, '2021-12-03 15:43:32'),
(5, 1, 'CLOSE', '종료', 'Y', '#888888', 5, 1, '2021-12-03 15:43:32', 1, '2021-12-03 15:43:32'),
(6, 1, 'CLOSE', '승인 불가', 'Y', '#888888', 6, 1, '2021-12-03 15:43:32', 1, '2021-12-06 11:38:20'),
(7, 1, 'CLOSE', '승인', 'Y', '#888888', 7, 1, '2021-12-03 15:43:32', 1, '2021-12-06 11:38:25'),
(8, 1, 'READY', '탐지', 'N', '#febd35', 0, 1, '2021-12-03 20:22:13', 1, '2021-12-03 20:22:13'),
(9, 1, 'OPEN', '1차 조치 완료', 'N', '#febd35', 0, 1, '2021-12-03 20:43:05', 1, '2021-12-03 20:43:05'),
(10, 1, 'OPEN', '2차 조치 완료', 'N', '#febd35', 0, 1, '2021-12-03 20:43:15', 1, '2021-12-03 20:43:15'),
(11, 1, 'OPEN', '3차 조치 완료', 'N', '#febd35', 0, 1, '2021-12-03 20:43:20', 1, '2021-12-03 20:43:20'),
(12, 1, 'OPEN', '공문 발송 완료', 'N', '#febd35', 0, 1, '2021-12-03 20:43:34', 1, '2021-12-03 20:43:34'),
(13, 1, 'CLOSE', '조치 완료', 'N', '#888888', 0, 1, '2021-12-03 20:43:46', 1, '2021-12-06 11:38:06'),
(14, 1, 'CLOSE', '완전비협조', 'N', '#888888', 0, 1, '2021-12-03 20:44:00', 1, '2021-12-06 11:36:53'),
(15, 1, 'OPEN', '차단검토요청', 'N', '#febd35', 0, 1, '2021-12-06 09:32:03', 1, '2021-12-06 09:32:03'),
(16, 1, 'OPEN', '차단확인요청', 'N', '#febd35', 0, 1, '2021-12-06 09:32:09', 1, '2021-12-06 09:32:09'),
(17, 1, 'CLOSE', '차단완료', 'N', '#888888', 0, 1, '2021-12-06 09:32:27', 1, '2021-12-06 11:38:12'),
(18, 1, 'OPEN', '조치요청', 'N', '#febd35', 0, 1, '2021-12-06 09:32:32', 1, '2021-12-06 09:32:32'),
(19, 1, 'OPEN', '조치확인요청', 'N', '#febd35', 0, 1, '2021-12-06 09:32:39', 1, '2021-12-06 09:32:39'),
(21, 1, 'OPEN', '분석 요청', 'N', '#febd35', 0, 1, '2021-12-06 09:51:11', 1, '2021-12-06 09:51:11'),
(22, 1, 'CLOSE', '접속 불가', 'N', '#888888', 0, 1, '2021-12-06 09:54:38', 1, '2021-12-06 11:37:04');
/*!40000 ALTER TABLE `issue_status` ENABLE KEYS */;
-- 테이블 데이터 prod_db.workflow:~4 rows (대략적) 내보내기
DELETE FROM `workflow`;
/*!40000 ALTER TABLE `workflow` DISABLE KEYS */;
INSERT INTO `workflow` (`id`, `workspace_id`, `name`, `description`, `project_type`, `register_date`, `register_id`, `modify_date`, `modify_id`) VALUES
(4, 1, '경유지 대응 워크플로우', NULL, NULL, '2021-12-03 20:48:19', 1, '2021-12-03 20:48:19', 1),
(5, 1, '유포지 대응 워크플로우', NULL, NULL, '2021-12-06 09:41:02', 1, '2021-12-06 09:41:02', 1),
(6, 1, '분석결과대응 워크플로우', NULL, NULL, '2021-12-06 09:47:20', 1, '2021-12-06 09:47:20', 1),
(7, 1, '악성도메인 워크플로우', NULL, NULL, '2021-12-06 09:58:20', 1, '2021-12-06 09:58:20', 1);
/*!40000 ALTER TABLE `workflow` ENABLE KEYS */;
-- 테이블 데이터 prod_db.workflow_status:~35 rows (대략적) 내보내기
DELETE FROM `workflow_status`;
/*!40000 ALTER TABLE `workflow_status` DISABLE KEYS */;
INSERT INTO `workflow_status` (`id`, `project_id`, `name`, `first_yn`, `last_yn`, `progress`, `color`, `position`, `register_id`, `register_date`, `modify_id`, `modify_date`) VALUES
(1, 1, '오픈', 'Y', 'N', 0, '#047bf8', 0, 1, '2021-12-03 15:49:46', 1, '2021-12-03 15:49:46'),
(2, 1, '할당', 'N', 'N', 20, '#e65252', 1, 1, '2021-12-03 15:49:46', 1, '2021-12-03 15:49:46'),
(3, 1, '해결', 'N', 'N', 50, '#5bc0de', 2, 1, '2021-12-03 15:49:46', 1, '2021-12-03 15:49:46'),
(4, 1, '확인', 'N', 'N', 70, '#5eb314', 3, 1, '2021-12-03 15:49:46', 1, '2021-12-03 15:49:46'),
(5, 1, '종료', 'N', 'Y', 100, '#b17247', 4, 1, '2021-12-03 15:49:46', 1, '2021-12-03 15:49:46'),
(6, 2, '오픈', 'Y', 'N', 0, '#047bf8', 0, 1, '2021-12-03 15:52:05', 1, '2021-12-03 15:52:05'),
(7, 2, '할당', 'N', 'N', 20, '#e65252', 1, 1, '2021-12-03 15:52:05', 1, '2021-12-03 15:52:05'),
(8, 2, '해결', 'N', 'N', 50, '#5bc0de', 2, 1, '2021-12-03 15:52:05', 1, '2021-12-03 15:52:05'),
(9, 2, '확인', 'N', 'N', 70, '#5eb314', 3, 1, '2021-12-03 15:52:05', 1, '2021-12-03 15:52:05'),
(10, 2, '종료', 'N', 'Y', 100, '#b17247', 4, 1, '2021-12-03 15:52:05', 1, '2021-12-03 15:52:05'),
(11, 3, '오픈', 'Y', 'N', 0, '#047bf8', 0, 9, '2021-12-14 19:17:39', 9, '2021-12-14 19:17:39'),
(12, 3, '할당', 'N', 'N', 20, '#e65252', 1, 9, '2021-12-14 19:17:39', 9, '2021-12-14 19:17:39'),
(13, 3, '해결', 'N', 'N', 50, '#5bc0de', 2, 9, '2021-12-14 19:17:39', 9, '2021-12-14 19:17:39'),
(14, 3, '확인', 'N', 'N', 70, '#5eb314', 3, 9, '2021-12-14 19:17:39', 9, '2021-12-14 19:17:39'),
(15, 3, '종료', 'N', 'Y', 100, '#b17247', 4, 9, '2021-12-14 19:17:39', 9, '2021-12-14 19:17:39'),
(16, 4, '오픈', 'Y', 'N', 0, '#047bf8', 0, 9, '2021-12-14 19:19:54', 9, '2021-12-14 19:19:54'),
(17, 4, '할당', 'N', 'N', 20, '#e65252', 1, 9, '2021-12-14 19:19:54', 9, '2021-12-14 19:19:54'),
(18, 4, '해결', 'N', 'N', 50, '#5bc0de', 2, 9, '2021-12-14 19:19:54', 9, '2021-12-14 19:19:54'),
(19, 4, '확인', 'N', 'N', 70, '#5eb314', 3, 9, '2021-12-14 19:19:54', 9, '2021-12-14 19:19:54'),
(20, 4, '종료', 'N', 'Y', 100, '#b17247', 4, 9, '2021-12-14 19:19:54', 9, '2021-12-14 19:19:54'),
(21, 5, '오픈', 'Y', 'N', 0, '#047bf8', 0, 9, '2021-12-14 19:25:10', 9, '2021-12-14 19:25:10'),
(22, 5, '할당', 'N', 'N', 20, '#e65252', 1, 9, '2021-12-14 19:25:10', 9, '2021-12-14 19:25:10'),
(23, 5, '해결', 'N', 'N', 50, '#5bc0de', 2, 9, '2021-12-14 19:25:10', 9, '2021-12-14 19:25:10'),
(24, 5, '확인', 'N', 'N', 70, '#5eb314', 3, 9, '2021-12-14 19:25:10', 9, '2021-12-14 19:25:10'),
(25, 5, '종료', 'N', 'Y', 100, '#b17247', 4, 9, '2021-12-14 19:25:10', 9, '2021-12-14 19:25:10'),
(26, 6, '오픈', 'Y', 'N', 0, '#047bf8', 0, 9, '2021-12-14 19:25:18', 9, '2021-12-14 19:25:18'),
(27, 6, '할당', 'N', 'N', 20, '#e65252', 1, 9, '2021-12-14 19:25:18', 9, '2021-12-14 19:25:18'),
(28, 6, '해결', 'N', 'N', 50, '#5bc0de', 2, 9, '2021-12-14 19:25:18', 9, '2021-12-14 19:25:18'),
(29, 6, '확인', 'N', 'N', 70, '#5eb314', 3, 9, '2021-12-14 19:25:18', 9, '2021-12-14 19:25:18'),
(30, 6, '종료', 'N', 'Y', 100, '#b17247', 4, 9, '2021-12-14 19:25:18', 9, '2021-12-14 19:25:18'),
(31, 7, '오픈', 'Y', 'N', 0, '#047bf8', 0, 9, '2021-12-14 19:25:37', 9, '2021-12-14 19:25:37'),
(32, 7, '할당', 'N', 'N', 20, '#e65252', 1, 9, '2021-12-14 19:25:37', 9, '2021-12-14 19:25:37'),
(33, 7, '해결', 'N', 'N', 50, '#5bc0de', 2, 9, '2021-12-14 19:25:37', 9, '2021-12-14 19:25:37'),
(34, 7, '확인', 'N', 'N', 70, '#5eb314', 3, 9, '2021-12-14 19:25:37', 9, '2021-12-14 19:25:37'),
(35, 7, '종료', 'N', 'Y', 100, '#b17247', 4, 9, '2021-12-14 19:25:37', 9, '2021-12-14 19:25:37');
/*!40000 ALTER TABLE `workflow_status` ENABLE KEYS */;
-- 테이블 데이터 prod_db.workflow_transition:~30 rows (대략적) 내보내기
DELETE FROM `workflow_transition`;
/*!40000 ALTER TABLE `workflow_transition` DISABLE KEYS */;
INSERT INTO `workflow_transition` (`id`, `workflow_id`, `source_issue_status_id`, `target_issue_status_id`, `source_x`, `source_y`, `target_x`, `target_y`, `correct_x`, `correct_y`, `direct`, `register_date`, `register_id`, `modify_date`, `modify_id`) VALUES
(58, 6, 1, 15, 132, 71, 300, 74, 148, 69, 'N', '2021-12-06 09:52:14', 1, '2021-12-06 09:52:14', 1),
(59, 6, 15, 16, 300, 74, 468, 73, 332, 72, 'N', '2021-12-06 09:52:14', 1, '2021-12-06 09:52:14', 1),
(60, 6, 15, 18, 300, 74, 396, 188, 390, 88, 'N', '2021-12-06 09:52:14', 1, '2021-12-06 09:52:14', 1),
(61, 6, 16, 17, 468, 73, 645, 75, 468, 73, 'N', '2021-12-06 09:52:14', 1, '2021-12-06 09:52:14', 1),
(62, 6, 18, 19, 396, 188, 556, 213, 476, 129, 'N', '2021-12-06 09:52:14', 1, '2021-12-06 09:52:14', 1),
(63, 6, 19, 18, 556, 213, 396, 188, 513, 232, 'N', '2021-12-06 09:52:14', 1, '2021-12-06 09:52:14', 1),
(64, 6, 19, 13, 556, 213, 671, 215, 556, 213, 'N', '2021-12-06 09:52:14', 1, '2021-12-06 09:52:14', 1),
(75, 7, 1, 21, 109, 36, 285, 38, 109, 36, 'N', '2021-12-10 14:32:25', 6, '2021-12-10 14:32:25', 6),
(76, 7, 15, 16, 377, 159, 565, 172, 377, 159, 'N', '2021-12-10 14:32:25', 6, '2021-12-10 14:32:25', 6),
(77, 7, 16, 17, 565, 172, 735, 179, 565, 172, 'N', '2021-12-10 14:32:25', 6, '2021-12-10 14:32:25', 6),
(78, 7, 21, 22, 285, 38, 486, 37, 285, 38, 'N', '2021-12-10 14:32:25', 6, '2021-12-10 14:32:25', 6),
(79, 7, 21, 15, 285, 38, 377, 159, 347, 43, 'N', '2021-12-10 14:32:25', 6, '2021-12-10 14:32:25', 6),
(80, 5, 1, 15, 38, 41, 162, 33, 117, 35, 'N', '2021-12-10 14:43:10', 6, '2021-12-10 14:43:10', 6),
(81, 5, 15, 16, 162, 33, 438, 30, 297, 30, 'N', '2021-12-10 14:43:10', 6, '2021-12-10 14:43:10', 6),
(82, 5, 15, 18, 162, 33, 274, 154, 286, 43, 'N', '2021-12-10 14:43:10', 6, '2021-12-10 14:43:10', 6),
(83, 5, 16, 17, 438, 30, 598, 30, 434, 30, 'N', '2021-12-10 14:43:10', 6, '2021-12-10 14:43:10', 6),
(84, 5, 18, 19, 274, 154, 433, 195, 363, 218, 'N', '2021-12-10 14:43:10', 6, '2021-12-10 14:43:10', 6),
(85, 5, 19, 18, 433, 195, 274, 154, 397, 82, 'N', '2021-12-10 14:43:10', 6, '2021-12-10 14:43:10', 6),
(86, 5, 19, 13, 433, 195, 605, 181, 432, 195, 'N', '2021-12-10 14:43:10', 6, '2021-12-10 14:43:10', 6),
(87, 4, 11, 12, 434, 227, 599, 211, 434, 227, 'N', '2021-12-13 17:01:35', 6, '2021-12-13 17:01:35', 6),
(88, 4, 11, 13, 434, 227, 441, 30, 434, 227, 'N', '2021-12-13 17:01:35', 6, '2021-12-13 17:01:35', 6),
(89, 4, 12, 14, 599, 211, 810, 153, 594, 218, 'N', '2021-12-13 17:01:35', 6, '2021-12-13 17:01:35', 6),
(90, 4, 12, 13, 599, 211, 441, 30, 599, 211, 'N', '2021-12-13 17:01:35', 6, '2021-12-13 17:01:35', 6),
(91, 4, 14, 13, 810, 153, 441, 30, 810, 153, 'N', '2021-12-13 17:01:35', 6, '2021-12-13 17:01:35', 6),
(92, 4, 8, 9, 44, 69, 132, 167, 76, 93, 'N', '2021-12-13 17:01:36', 6, '2021-12-13 17:01:36', 6),
(93, 4, 8, 13, 44, 69, 441, 30, 56, 69, 'N', '2021-12-13 17:01:36', 6, '2021-12-13 17:01:36', 6),
(94, 4, 9, 10, 132, 167, 276, 236, 140, 171, 'N', '2021-12-13 17:01:36', 6, '2021-12-13 17:01:36', 6),
(95, 4, 9, 13, 132, 167, 441, 30, 140, 171, 'N', '2021-12-13 17:01:36', 6, '2021-12-13 17:01:36', 6),
(96, 4, 10, 11, 276, 236, 434, 227, 282, 223, 'N', '2021-12-13 17:01:36', 6, '2021-12-13 17:01:36', 6),
(97, 4, 10, 13, 276, 236, 441, 30, 282, 223, 'N', '2021-12-13 17:01:36', 6, '2021-12-13 17:01:36', 6);
/*!40000 ALTER TABLE `workflow_transition` ENABLE KEYS */;
/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */;
/*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
src/main/resources/migration/V1_3__Alter_Table.sql
File was deleted
src/main/resources/migration/V1_4__Alter_Table.sql
File was deleted
src/main/resources/migration/V1_5__Alter_Table.sql
File was deleted
src/main/resources/migration/V1_6__Alter_Table.sql
File was deleted
src/main/resources/migration/V1_7__Alter_Table.sql
File was deleted
src/main/resources/migration/V1_8__Alter_Table.sql
File was deleted
src/main/resources/migration/V1_9__Alter_Table.sql
File was deleted
src/main/resources/mybatis/query-template/issue-template.xml
@@ -32,6 +32,9 @@
        severity.id as severityId,
        severity.name as severityName,
        severity.color as severityColor,
        ic.name AS companyName,
        ii.name AS ispName,
        ih.name AS hostingName,
        GROUP_CONCAT(issue_custom.use_value) AS useValue,
        IFNULL(temp_attached_file.attachedFileCount, 0) as attachedFileCount,
        IFNULL(temp_issue_comment.issueCommentCount, 0) as issueCommentCount
src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js
@@ -492,6 +492,33 @@
                                            makeTag += "</ul>";
                                            break;
                                        // 업체
                                        case "USE_COMPANY" :
                                            if (scope.data.companyName !== null) {
                                                makeTag += "<span ng-click=\"event.changeDetailView(data.id)\" class='cursor' translate='" + scope.data.companyName + "'></span>";
                                            }else {
                                                makeTag += "<span></span>";
                                            }
                                            break;
                                        // ISP
                                        case "USE_ISP" :
                                            if (scope.data.ispName !== null) {
                                                makeTag += "<span ng-click=\"event.changeDetailView(data.id)\" class='cursor' translate='" + scope.data.ispName + "'></span>";
                                            }else {
                                                makeTag += "<span></span>";
                                            }
                                            break;
                                        // 호스팅
                                        case "USE_HOSTING" :
                                            if (scope.data.ispName !== null) {
                                                makeTag += "<span ng-click=\"event.changeDetailView(data.id)\" class='cursor' translate='" + scope.data.hostingName + "'></span>";
                                            }else {
                                                makeTag += "<span></span>";
                                            }
                                            break;
                                        case "WORKFLOW_NAME":
                                            makeTag += "<span>" + scope.data.workflowVo.name + "</span>";
                                            break;
src/main/webapp/i18n/ko/global.json
@@ -232,6 +232,7 @@
        "failedToIssueTypeListLookup": "이슈 유형 목록 조회 실패",
        "failedToPriorityListLookup": "우선순위 목록 조회 실패",
        "failedToCriticalListLookup": "중요도 목록 조회 실패",
        "failedToPartnerListLookup": "파트너 목록 조회 실패",
        "failedToUserDefinedFieldListLookup": "사용자 정의 필드 목록 조회 실패",
        "failedToIssueTableColumnLookup": "이슈 테이블 컬럼 조회 실패",
        "failedToIssueAddIssueRelation": "연관 이슈 추가 실패",
@@ -697,6 +698,9 @@
        "register": "등록자",
        "startDate": "시작일",
        "endDate": "종료일",
        "company": "업체",
        "isp": "ISP",
        "hosting": "호스팅",
        "english": "영어",
        "korean": "한국어",
        "japaneseLanguage": "일본어",
src/main/webapp/scripts/app/issue/issueAddTableConfig.controller.js
@@ -8,14 +8,15 @@
        'angular'
    ],
    function (app, angular) {
        app.controller('issueAddTableConfigController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', 'SweetAlert', '$timeout', 'IssueTableConfig', 'IssueTypeCustomField', '$q', '$filter', 'parameter',
            function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, SweetAlert, $timeout, IssueTableConfig, IssueTypeCustomField, $q, $filter, parameter) {
        app.controller('issueAddTableConfigController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', 'SweetAlert', '$timeout', 'IssueTableConfig', 'Issue', 'IssueTypeCustomField', '$q', '$filter', 'parameter',
            function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, SweetAlert, $timeout, IssueTableConfig, Issue, IssueTypeCustomField, $q, $filter, parameter) {
                //  함수 모음
                $scope.fn = {
                    cancel : cancel,    //  팝업 창 닫기
                    formSubmit : formSubmit,    //  폼 전송
                    formCheck : formCheck,  //  폼 체크
                    getUsePartner : getUsePartner,
                    getCustomFields : getCustomFields,   //  사용자 정의 필드 목록을 가져온다.
                    getIssueAddTableConfigs : getIssueAddTableConfigs //  이슈 목록 테이블 설정 정보를 가져온다.
                };
@@ -85,7 +86,6 @@
                        position : 8,
                        display : false,
                        checkboxShow : true
                    }, {
                    }]
                };
@@ -135,6 +135,24 @@
                    $(document).unbind("keydown");  //  단축키 이벤트 제거
                }
                //  이슈유형 별 파트너 목록
                function getUsePartner() {
                    var deferred = $q.defer();
                    $scope.vm.partners = [];
                    Issue.findPartners($resourceProvider.getContent({issueTypeId : $rootScope.getCurrentIssueTypeId()},
                        $resourceProvider.getPageContent(0, 1))).then(function (result) {
                        if (result.data.message.status === "success") {
                            $scope.vm.partnerVos = result.data.data;
                        }
                        else {
                            SweetAlert.swal($filter("translate")("issue.failedToPartnerListLookup"), result.data.message.message, "error"); // 파트너 목록 조회 실패
                        }
                        deferred.resolve(result.data.data);
                    });
                    return deferred.promise;
                }
                //  사용자 정의 필드 목록을 가져온다.
                function getCustomFields() {
                    var deferred = $q.defer();
@@ -152,7 +170,7 @@
                }
                var content = {
                    delValue : $scope.vm.issueTableConfigs.splice(9,1),
                    //delValue : $scope.vm.issueTableConfigs.splice(12,1),
                    issueTableConfigs : JSON.stringify($scope.vm.issueTableConfigs),
                    issueTypeId : $rootScope.getCurrentIssueTypeId()
                };
@@ -179,46 +197,69 @@
                    return deferred.promise;
                }
                //  사용자 정의 필드를 조회한 후 표시할 이슈 테이블 컬럼을 준비한다.
                $scope.fn.getCustomFields().then(function (result) {
                    var count = 8;
                    angular.forEach(result, function (customField) {
                //  파트너를 조회한 후 표시할 이슈 테이블 컬럼을 준비한다.
                $scope.fn.getUsePartner().then(function (result) {
                    var count = 9;
                    angular.forEach(result, function (partner) {
                        $scope.vm.issueTableConfigs.push({
                            name : customField.name,
                            key : "CUSTOM_FIELD_" + customField.id,
                            name : partner.name,
                            key : (function () {
                                var key = "";
                                if (partner.name === "업체") {
                                    key = "COMPANY";
                                } else if(partner.name === "ISP") {
                                    key = "ISP";
                                } else {
                                    key = "HOSTING";
                                }
                                return key;
                            })(),
                            width : "width-100-p",
                            display : false,
                            checkboxShow : true,
                            position : count
                        });
                        count++;
                    });
                    //  이슈 목록 테이블 설정 정보를 가져온다.
                    $scope.fn.getIssueAddTableConfigs().then(function (issueTableConfigs) {
                        if ($rootScope.isDefined(issueTableConfigs)) {
                            $rootScope.spinner = true;
                            var saveTableConfigs = JSON.parse(issueTableConfigs);
                            angular.forEach(saveTableConfigs, function (saveTableConfig) {
                                for (var count in $scope.vm.issueTableConfigs) {
                                    var issueTableConfig = $scope.vm.issueTableConfigs[count];
                                    if (issueTableConfig.key === saveTableConfig.key) {
                                        issueTableConfig.display = saveTableConfig.display;
                                        issueTableConfig.width = saveTableConfig.width;
                                        issueTableConfig.position = saveTableConfig.position;
                                        break;
                                    }
                                }
                    //  사용자 정의 필드를 조회한 후 표시할 이슈 테이블 컬럼을 준비한다.
                    $scope.fn.getCustomFields().then(function (result) {
                        angular.forEach(result, function (customField) {
                            $scope.vm.issueTableConfigs.push({
                                name : customField.name,
                                key : "CUSTOM_FIELD_" + customField.id,
                                width : "width-100-p",
                                display : false,
                                checkboxShow : true,
                                position : count
                            });
                            count++;
                        });
                            $rootScope.spinner = false;
                        }
                    });
                        //  이슈 목록 테이블 설정 정보를 가져온다.
                        $scope.fn.getIssueAddTableConfigs().then(function (issueTableConfigs) {
                            if ($rootScope.isDefined(issueTableConfigs)) {
                                $rootScope.spinner = true;
                                var saveTableConfigs = JSON.parse(issueTableConfigs);
                                angular.forEach(saveTableConfigs, function (saveTableConfig) {
                                    for (var count in $scope.vm.issueTableConfigs) {
                                        var issueTableConfig = $scope.vm.issueTableConfigs[count];
                                        if (issueTableConfig.key === saveTableConfig.key) {
                                            issueTableConfig.display = saveTableConfig.display;
                                            issueTableConfig.width = saveTableConfig.width;
                                            issueTableConfig.position = saveTableConfig.position;
                                            break;
                                        }
                                    }
                                });
                                $rootScope.spinner = false;
                            }
                        });
                    })
                });
            }]);
src/main/webapp/scripts/app/issue/issueList.controller.js
@@ -408,6 +408,33 @@
                                .setColumnTooltip("미완료 하위이슈/전체 하위이슈")
                                .setDRenderer("DOWN_ISSUE_COUNT"));
                            break;
                        case "COMPANY" :   //  업체
                            $scope.vm.tableConfigs.push($tableProvider.config()
                                .setHName("common.company")
                                .setDName("companyName")
                                .setDType("renderer")
                                .setHWidth("bold " + issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDRenderer("USE_COMPANY"));
                            break;
                        case "ISP" :   //  ISP
                            $scope.vm.tableConfigs.push($tableProvider.config()
                                .setHName("common.isp")
                                .setDName("ispName")
                                .setDType("renderer")
                                .setHWidth("bold " + issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDRenderer("USE_ISP"));
                            break;
                        case "HOSTING" :   //  HOSTING
                            $scope.vm.tableConfigs.push($tableProvider.config()
                                .setHName("common.hosting")
                                .setDName("hostingName")
                                .setDType("renderer")
                                .setHWidth("bold " + issueTableConfig.width)
                                .setDAlign("text-center")
                                .setDRenderer("USE_HOSTING"));
                            break;
                    }
                    //  사용자 정의 필드 컬럼
@@ -1079,13 +1106,16 @@
                    var deferred = $q.defer();
                    $scope.vm.partners = [];
                    Issue.findPartners($resourceProvider.getContent({},
                    Issue.findPartners($resourceProvider.getContent({issueTypeId : $rootScope.getCurrentIssueTypeId()},
                        $resourceProvider.getPageContent(0, 1))).then(function (result) {
                        if (result.data.message.status === "success") {
                            $scope.vm.partnerVos = result.data.content;
                            angular.forEach(result.data.data, function (partner) {
                                $scope.vm.partners.push(partner);
                            });
                            //$scope.vm.partnerVos = result.data.data;
                        }
                        else {
                            SweetAlert.swal($filter("translate")("issue.failedToPriorityListLookup"), result.data.message.message, "error"); // 우선순위 목록 조회 실패
                            SweetAlert.swal($filter("translate")("issue.failedToPartnerListLookup"), result.data.message.message, "error"); // 파트너 목록 조회 실패
                        }
                        deferred.resolve(result.data.data);
@@ -1171,7 +1201,6 @@
                                        break;
                                }
                                $scope.vm.customFields.push(customField);
                            });
                        }
@@ -1192,8 +1221,8 @@
                    if ($rootScope.issueTypeMenu != null){
                        var content = {
                            issueTypeId : $rootScope.issueTypeMenu.id
                            }
                            issueTypeId : $rootScope.getCurrentIssueTypeId()
                        }
                        IssueTableConfig.detail($resourceProvider.getContent(content,
                            $resourceProvider.getPageContent(0, 1000))).then(function (result) {
@@ -1285,7 +1314,7 @@
                        getPriorities : $scope.fn.getPriorities(),
                        getSeverities : $scope.fn.getSeverities(),
                        getIssueStatuses : $scope.fn.getIssueStatuses(),
                        getCustomFields : $scope.fn.getCustomFields()
                        getCustomFields : $scope.fn.getCustomFields(),
                    };
                    $q.all(promises).then(function (results){
src/main/webapp/scripts/app/user/userModify.controller.js
@@ -89,7 +89,7 @@
                            if(result.data.data.reservationNotifyTime === "realTime"){
                                $scope.vm.form.realtimeNotify = true;
                            }else{
                                $scope.vm.form.reservationNotifyTime = result.data.data.reservationNotifyTime;
                                $scope.vm.form.reservationNotifyTime = "";
                            }
                        }
                        else {
src/main/webapp/views/user/userModify.html
@@ -35,7 +35,9 @@
            <div ng-show="vm.form.projectManagerYN" class="row">
                <div class="col-sm-6">
                    <div class="form-group">
                        <label for="userModifyForm3"><span translate="users.setEmailNotificationTime">이메일 알림 시간 설정</span> <code class="highlighter-rouge">*</code></label>
                        <label for="userModifyForm3"><span translate="users.setEmailNotificationTime">이메일 알림 시간 설정</span>
                            <!--<code class="highlighter-rouge">*</code>-->
                        </label>
                        &nbsp;&nbsp;
                        <input class="form-control"
                               type="checkbox"