OWL ITS + 탐지시스템(인터넷 진흥원)
- issue_company 테이블에 컬럼 추가 및 'tel' 컬럼 사이즈 변경
- 이슈 추가,수정 시 업체 추가된 항목들 추가
- 하위이슈 페이징 오류 수정
27개 파일 변경됨
1650 ■■■■ 파일 변경됨
src/main/java/kr/wisestone/owl/domain/IssueCompany.java 55 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java 29 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/HostingFieldServiceImpl.java 28 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/IspFieldServiceImpl.java 28 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/IssueCompanyServiceImpl.java 10 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java 30 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/vo/IssueCompanyVo.java 91 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/vo/IssueVo.java 4 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/web/form/CompanyFieldForm.java 36 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/web/form/IssueForm.java 60 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/migration/V1_3__insert_new_data.sql 13 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/companyField/companyFieldList.controller.js 23 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/companyField/companyFieldModify.controller.js 20 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/hostingField/hostingFieldList.controller.js 9 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/hostingField/hostingFieldModify.controller.js 20 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/ispField/ispFieldList.controller.js 9 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/ispField/ispFieldModify.controller.js 20 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/issue/issueAdd.controller.js 125 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/issue/issueAddDown.controller.js 134 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/issue/issueAddRelation.controller.js 125 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/issue/issueModify.controller.js 143 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/companyField/companyFieldAdd.html 2 ●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/issue/issueAdd.html 149 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/issue/issueAddDown.html 145 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/issue/issueAddRelation.html 146 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/issue/issueDetail.html 45 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/issue/issueModify.html 151 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/domain/IssueCompany.java
@@ -20,6 +20,13 @@
    private String url;
    private String memo;
    private Long companyTypeId;
    private Long parentSectorId;
    private Long childSectorId;
    private Long regionId;
    private Long statusId;
    private String statusName;
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "issue_id")
    private Issue issue;
@@ -112,4 +119,52 @@
    public void setUrl(String url) {
        this.url = url;
    }
    public Long getCompanyTypeId() {
        return companyTypeId;
    }
    public void setCompanyTypeId(Long companyTypeId) {
        this.companyTypeId = companyTypeId;
    }
    public Long getParentSectorId() {
        return parentSectorId;
    }
    public void setParentSectorId(Long parentSectorId) {
        this.parentSectorId = parentSectorId;
    }
    public Long getChildSectorId() {
        return childSectorId;
    }
    public void setChildSectorId(Long childSectorId) {
        this.childSectorId = childSectorId;
    }
    public Long getRegionId() {
        return regionId;
    }
    public void setRegionId(Long regionId) {
        this.regionId = regionId;
    }
    public Long getStatusId() {
        return statusId;
    }
    public void setStatusId(Long statusId) {
        this.statusId = statusId;
    }
    public String getStatusName() {
        return statusName;
    }
    public void setStatusName(String statusName) {
        this.statusName = statusName;
    }
}
src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java
@@ -85,12 +85,19 @@
        this.verifyUrl(companyFieldForm.getUrl(), null);
        if (companyFieldForm.getTelList() != null && companyFieldForm.getTelList().size() > 0) {
            String[] tels = ConvertUtil.ToArray(companyFieldForm.getTelList());
            companyFieldForm.setTel(Arrays.toString(tels));
            String tels = companyFieldForm.getTelList().toString();
            if (tels.contains("[")) {
                tels = tels.substring(1, tels.indexOf("]"));
            }
            companyFieldForm.setTel(tels.trim());
        }
        if (companyFieldForm.getEmailList() != null && companyFieldForm.getEmailList().size() > 0) {
            String[] emails = ConvertUtil.ToArray(companyFieldForm.getEmailList());
            companyFieldForm.setEmail(Arrays.toString(emails));
            String emails = companyFieldForm.getEmailList().toString();
            String email = "";
            if (emails.contains("[")) {
                email = emails.substring(1, emails.indexOf("]"));
            }
            companyFieldForm.setEmail(email.trim());
        }
        CompanyField companyField = ConvertUtil.copyProperties(companyFieldForm, CompanyField.class);
@@ -203,12 +210,18 @@
        this.verifyUrl(companyFieldForm.getUrl(), companyFieldForm.getId());
        if (companyFieldForm.getTelList() != null && companyFieldForm.getTelList().size() > 0) {
            String[] tels = ConvertUtil.ToArray(companyFieldForm.getTelList());
            companyFieldForm.setTel(Arrays.toString(tels));
            String tels = companyFieldForm.getTelList().toString();
            if (tels.contains("[")) {
                tels = tels.substring(1, tels.indexOf("]"));
            }
            companyFieldForm.setTel(tels.trim());
        }
        if (companyFieldForm.getEmailList() != null && companyFieldForm.getEmailList().size() > 0) {
            String[] emails = ConvertUtil.ToArray(companyFieldForm.getEmailList());
            companyFieldForm.setEmail(Arrays.toString(emails));
            String emails = companyFieldForm.getEmailList().toString();
            if (emails.contains("[")) {
                emails = emails.substring(1, emails.indexOf("]"));
            }
            companyFieldForm.setEmail(emails.trim());
        }
        CompanyField companyField = ConvertUtil.copyProperties(companyFieldForm, CompanyField.class);
src/main/java/kr/wisestone/owl/service/impl/HostingFieldServiceImpl.java
@@ -66,12 +66,18 @@
    @Override
    public HostingField add(HostingFieldForm HostingFieldForm) {
        if (HostingFieldForm.getTelList() != null && HostingFieldForm.getTelList().size() > 0) {
            String[] tels = ConvertUtil.ToArray(HostingFieldForm.getTelList());
            HostingFieldForm.setTel(Arrays.toString(tels));
            String tels = HostingFieldForm.getTelList().toString();
            if (tels.contains("[")) {
                tels = tels.substring(1, tels.indexOf("]"));
            }
            HostingFieldForm.setTel(tels.trim());
        }
        if (HostingFieldForm.getEmailList() != null && HostingFieldForm.getEmailList().size() > 0) {
            String[] emails = ConvertUtil.ToArray(HostingFieldForm.getEmailList());
            HostingFieldForm.setEmail(Arrays.toString(emails));
            String emails = HostingFieldForm.getEmailList().toString();
            if (emails.contains("[")) {
                emails = emails.substring(1, emails.indexOf("]"));
            }
            HostingFieldForm.setEmail(emails.trim());
        }
        HostingField hostingField = ConvertUtil.copyProperties(HostingFieldForm, HostingField.class);
@@ -117,12 +123,18 @@
    @Override
    public void modify(HostingFieldForm HostingFieldForm) {
        if (HostingFieldForm.getTelList() != null && HostingFieldForm.getTelList().size() > 0) {
            String[] tels = ConvertUtil.ToArray(HostingFieldForm.getTelList());
            HostingFieldForm.setTel(Arrays.toString(tels));
            String tels = HostingFieldForm.getTelList().toString();
            if (tels.contains("[")) {
                tels = tels.substring(1, tels.indexOf("]"));
            }
            HostingFieldForm.setTel(tels.trim());
        }
        if (HostingFieldForm.getEmailList() != null && HostingFieldForm.getEmailList().size() > 0) {
            String[] emails = ConvertUtil.ToArray(HostingFieldForm.getEmailList());
            HostingFieldForm.setEmail(Arrays.toString(emails));
            String emails = HostingFieldForm.getEmailList().toString();
            if (emails.contains("[")) {
                emails = emails.substring(1, emails.indexOf("]"));
            }
            HostingFieldForm.setEmail(emails.trim());
        }
        HostingField HostingField = ConvertUtil.copyProperties(HostingFieldForm, HostingField.class);
        hostingFieldRepository.saveAndFlush(HostingField);
src/main/java/kr/wisestone/owl/service/impl/IspFieldServiceImpl.java
@@ -66,12 +66,18 @@
    @Override
    public IspField add(IspFieldForm IspFieldForm) {
        if (IspFieldForm.getTelList() != null && IspFieldForm.getTelList().size() > 0) {
            String[] tels = ConvertUtil.ToArray(IspFieldForm.getTelList());
            IspFieldForm.setTel(Arrays.toString(tels));
            String tels = IspFieldForm.getTelList().toString();
            if (tels.contains("[")) {
                tels = tels.substring(1, tels.indexOf("]"));
            }
            IspFieldForm.setTel(tels.trim());
        }
        if (IspFieldForm.getEmailList() != null && IspFieldForm.getEmailList().size() > 0) {
            String[] emails = ConvertUtil.ToArray(IspFieldForm.getEmailList());
            IspFieldForm.setEmail(Arrays.toString(emails));
            String emails = IspFieldForm.getEmailList().toString();
            if (emails.contains("[")) {
                emails = emails.substring(1, emails.indexOf("]"));
            }
            IspFieldForm.setEmail(emails.trim());
        }
        IspField ispField = ConvertUtil.copyProperties(IspFieldForm, IspField.class);
@@ -117,12 +123,18 @@
    @Override
    public void modify(IspFieldForm IspFieldForm) {
        if (IspFieldForm.getTelList() != null && IspFieldForm.getTelList().size() > 0) {
            String[] tels = ConvertUtil.ToArray(IspFieldForm.getTelList());
            IspFieldForm.setTel(Arrays.toString(tels));
            String tels = IspFieldForm.getTelList().toString();
            if (tels.contains("[")) {
                tels = tels.substring(1, tels.indexOf("]"));
            }
            IspFieldForm.setTel(tels.trim());
        }
        if (IspFieldForm.getEmailList() != null && IspFieldForm.getEmailList().size() > 0) {
            String[] emails = ConvertUtil.ToArray(IspFieldForm.getEmailList());
            IspFieldForm.setEmail(Arrays.toString(emails));
            String emails = IspFieldForm.getEmailList().toString();
            if (emails.contains("[")) {
                emails = emails.substring(1, emails.indexOf("]"));
            }
            IspFieldForm.setEmail(emails.trim());
        }
        IspField IspField = ConvertUtil.copyProperties(IspFieldForm, IspField.class);
src/main/java/kr/wisestone/owl/service/impl/IssueCompanyServiceImpl.java
@@ -69,6 +69,11 @@
                        issueCompany.setManager(MapUtil.getString(param, "manager"));
                        issueCompany.setTel(MapUtil.getString(param, "tel"));
                        issueCompany.setMemo(MapUtil.getString(param, "memo"));
                        issueCompany.setCompanyTypeId(MapUtil.getLong(param, "companyTypeId"));
                        issueCompany.setParentSectorId(MapUtil.getLong(param, "parentSectorId"));
                        issueCompany.setChildSectorId(MapUtil.getLong(param, "childSectorId"));
                        issueCompany.setRegionId(MapUtil.getLong(param, "regionId"));
                        issueCompany.setStatusId(MapUtil.getLong(param, "statusId"));
                    } else  { //추가 할 경우
                        issueCompany = ConvertUtil.convertMapToClass(param, IssueCompany.class);
                        issueCompany.setIssue(issue);
@@ -92,6 +97,11 @@
                companyFieldForm.setManager(issueForm.getCompanyManager());
                companyFieldForm.setTel(issueForm.getCompanyTel());
                companyFieldForm.setMemo(issueForm.getCompanyMemo());
                companyFieldForm.setCompanyTypeName(issueForm.getCompanyTypeName());
                companyFieldForm.setParentSectorName(issueForm.getParentSectorName());
                companyFieldForm.setChildSectorName(issueForm.getChildSectorName());
                companyFieldForm.setRegionName(issueForm.getRegionName());
                companyFieldForm.setStatusName(issueForm.getStatusName());
                CompanyField companyField = this.companyFieldService.addCompany(companyFieldForm);
src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -87,6 +87,9 @@
    private CompanyFieldService companyFieldService;
    @Autowired
    private CompanyFieldCategoryService companyFieldCategoryService;
    @Autowired
    private IspFieldService ispFieldService;
    @Autowired
@@ -1555,7 +1558,10 @@
        List<Issue> downIssueList = this.issueRepository.findByParentIssueId(issue.getId());
        if(downIssueList != null && downIssueList.size() > 0) {
            int startPage = (int) Math.floor(issueVo.getDownPage()/issueVo.getDownPageSize());
            int startPage = 0;
            if (issueVo.getDownPage() != 0) {
                startPage = (int) Math.floor(issueVo.getDownPage()/issueVo.getDownPageSize());
            }
            Pageable pageable = PageRequest.of(startPage, issueVo.getDownPageSize());
            downIssues = this.issueRepository.findByParentIssueId(issue.getId(), pageable);
        }
@@ -1673,7 +1679,7 @@
            issueVo.setRelTotalCount(totalCount);
            for (Map<String, Object> result : results) {
                IssueRelationVo issueRelationVo = ConvertUtil.convertMapToClass(result, IssueRelationVo.class);
                Issue relationIssue = this.findOne(issueRelationVo.getId());
                Issue relationIssue = this.findOne(MapUtil.getLong(result, "relationIssueId"));
                IssueVo relIssueVo = ConvertUtil.copyProperties(relationIssue, IssueVo.class);
                Project project = this.projectService.getProject(relationIssue.getProject().getId());
                relIssueVo.setProjectId(project.getId());
@@ -2792,6 +2798,26 @@
            CompanyField companyField = issueCompany.getCompanyField();
            if (companyField != null) {
                issueCompanyVo.setCompanyId(issueCompany.getCompanyField().getId());
                if (issueCompany.getCompanyTypeId() != null) {
                    CompanyFieldCategory companyType = this.companyFieldCategoryService.find(issueCompany.getCompanyTypeId());
                    issueCompanyVo.setCompanyTypeName(companyType.getUseValue());
                }
                if (issueCompany.getParentSectorId() != null) {
                    CompanyFieldCategory parentSector = this.companyFieldCategoryService.find(issueCompany.getParentSectorId());
                    issueCompanyVo.setParentSectorName(parentSector.getUseValue());
                }
                if (issueCompany.getChildSectorId() != null) {
                    CompanyFieldCategory childSector = this.companyFieldCategoryService.find(issueCompany.getChildSectorId());
                    issueCompanyVo.setChildSectorName(childSector.getUseValue());
                }
                if (issueCompany.getRegionId() != null) {
                    CompanyFieldCategory region = this.companyFieldCategoryService.find(issueCompany.getRegionId());
                    issueCompanyVo.setRegionName(region.getUseValue());
                }
                if (issueCompany.getStatusId() != null) {
                    CompanyFieldCategory status = this.companyFieldCategoryService.find(issueCompany.getStatusId());
                    issueCompanyVo.setStatusName(status.getUseValue());
                }
            }
            issueCompanyVos.add(issueCompanyVo);
        }
src/main/java/kr/wisestone/owl/vo/IssueCompanyVo.java
@@ -13,6 +13,17 @@
    private String email;
    private String memo;
    private Long companyTypeId;
    private Long parentSectorId;
    private Long childSectorId;
    private Long regionId;
    private Long statusId;
    private String companyTypeName;
    private String parentSectorName;
    private String childSectorName;
    private String regionName;
    private String statusName;
    public IssueCompanyVo(){}
    public Long getId() {
@@ -78,4 +89,84 @@
    public void setUrl(String url) {
        this.url = url;
    }
    public Long getCompanyTypeId() {
        return companyTypeId;
    }
    public void setCompanyTypeId(Long companyTypeId) {
        this.companyTypeId = companyTypeId;
    }
    public Long getParentSectorId() {
        return parentSectorId;
    }
    public void setParentSectorId(Long parentSectorId) {
        this.parentSectorId = parentSectorId;
    }
    public Long getChildSectorId() {
        return childSectorId;
    }
    public void setChildSectorId(Long childSectorId) {
        this.childSectorId = childSectorId;
    }
    public Long getRegionId() {
        return regionId;
    }
    public void setRegionId(Long regionId) {
        this.regionId = regionId;
    }
    public Long getStatusId() {
        return statusId;
    }
    public void setStatusId(Long statusId) {
        this.statusId = statusId;
    }
    public String getCompanyTypeName() {
        return companyTypeName;
    }
    public void setCompanyTypeName(String companyTypeName) {
        this.companyTypeName = companyTypeName;
    }
    public String getParentSectorName() {
        return parentSectorName;
    }
    public void setParentSectorName(String parentSectorName) {
        this.parentSectorName = parentSectorName;
    }
    public String getChildSectorName() {
        return childSectorName;
    }
    public void setChildSectorName(String childSectorName) {
        this.childSectorName = childSectorName;
    }
    public String getRegionName() {
        return regionName;
    }
    public void setRegionName(String regionName) {
        this.regionName = regionName;
    }
    public String getStatusName() {
        return statusName;
    }
    public void setStatusName(String statusName) {
        this.statusName = statusName;
    }
}
src/main/java/kr/wisestone/owl/vo/IssueVo.java
@@ -73,13 +73,13 @@
    private int relPage;
    private int relPageNumber;
    private int relPageSize;
    private int relPageSize = 10;
    private int relTotalPage = 1;
    private Long relTotalCount = 0L;
    private int downPage;
    private int downPageNumber;
    private int downPageSize;
    private int downPageSize = 10;
    private int downTotalPage = 1;
    private Long downTotalCount = 0L;
src/main/java/kr/wisestone/owl/web/form/CompanyFieldForm.java
@@ -20,6 +20,10 @@
    private Long childSectorId;
    private Long regionId;
    private Long statusId;
    private String companyTypeName;
    private String parentSectorName;
    private String childSectorName;
    private String regionName;
    private String statusName;
    private Long registerId;    //  등록자 아이디 - insert batch 에서 사용
@@ -156,4 +160,36 @@
    public void setRegisterId(Long registerId) {
        this.registerId = registerId;
    }
    public String getCompanyTypeName() {
        return companyTypeName;
    }
    public void setCompanyTypeName(String companyTypeName) {
        this.companyTypeName = companyTypeName;
    }
    public String getParentSectorName() {
        return parentSectorName;
    }
    public void setParentSectorName(String parentSectorName) {
        this.parentSectorName = parentSectorName;
    }
    public String getChildSectorName() {
        return childSectorName;
    }
    public void setChildSectorName(String childSectorName) {
        this.childSectorName = childSectorName;
    }
    public String getRegionName() {
        return regionName;
    }
    public void setRegionName(String regionName) {
        this.regionName = regionName;
    }
}
src/main/java/kr/wisestone/owl/web/form/IssueForm.java
@@ -48,6 +48,11 @@
    private String companyUrl;
    private String companyEmail;
    private String companyMemo;
    private String companyTypeName;
    private String parentSectorName;
    private String childSectorName;
    private String regionName;
    private String statusName;
    private String ispName;
    private String ispCode;
@@ -177,6 +182,21 @@
        }
        if (MapUtil.getString(params, "companyMemo") != null) {
            form.setCompanyMemo(MapUtil.getString(params, "companyMemo"));
        }
        if (MapUtil.getString(params, "companyTypeName") != null) {
            form.setCompanyTypeName(MapUtil.getString(params, "companyTypeName"));
        }
        if (MapUtil.getString(params, "parentSectorName") != null) {
            form.setParentSectorName(MapUtil.getString(params, "parentSectorName"));
        }
        if (MapUtil.getString(params, "childSectorName") != null) {
            form.setChildSectorName(MapUtil.getString(params, "childSectorName"));
        }
        if (MapUtil.getString(params, "regionName") != null) {
            form.setRegionName(MapUtil.getString(params, "regionName"));
        }
        if (MapUtil.getString(params, "statusName") != null) {
            form.setStatusName(MapUtil.getString(params, "statusName"));
        }
        if (MapUtil.getString(params, "ispName") != null) {
@@ -659,4 +679,44 @@
    public void setHostingMemo(String hostingMemo) {
        this.hostingMemo = hostingMemo;
    }
    public String getCompanyTypeName() {
        return companyTypeName;
    }
    public void setCompanyTypeName(String companyTypeName) {
        this.companyTypeName = companyTypeName;
    }
    public String getParentSectorName() {
        return parentSectorName;
    }
    public void setParentSectorName(String parentSectorName) {
        this.parentSectorName = parentSectorName;
    }
    public String getChildSectorName() {
        return childSectorName;
    }
    public void setChildSectorName(String childSectorName) {
        this.childSectorName = childSectorName;
    }
    public String getRegionName() {
        return regionName;
    }
    public void setRegionName(String regionName) {
        this.regionName = regionName;
    }
    public String getStatusName() {
        return statusName;
    }
    public void setStatusName(String statusName) {
        this.statusName = statusName;
    }
}
src/main/resources/migration/V1_3__insert_new_data.sql
@@ -157,4 +157,15 @@
ALTER TABLE `company_field` MODIFY `tel` varchar(255);
ALTER TABLE `isp_field` MODIFY `tel` varchar(255);
ALTER TABLE `hosting_field` MODIFY `tel` varchar(255);
ALTER TABLE `hosting_field` MODIFY `tel` varchar(255);
ALTER TABLE `issue_company` ADD COLUMN `company_type_id` bigint(11) NULL;
ALTER TABLE `issue_company` ADD COLUMN `parent_sector_id` bigint(11) NULL;
ALTER TABLE `issue_company` ADD COLUMN `child_sector_id` bigint(11) NULL;
ALTER TABLE `issue_company` ADD COLUMN `region_id` bigint(11) NULL;
ALTER TABLE `issue_company` ADD COLUMN `status_id` bigint(11) NULL;
ALTER TABLE `issue_company` ADD COLUMN `status_name` varchar(50) NULL;
ALTER TABLE `issue_company` MODIFY `tel` varchar(255);
ALTER TABLE `issue_isp` MODIFY `tel` varchar(255);
ALTER TABLE `issue_hosting` MODIFY `tel` varchar(255);
src/main/webapp/scripts/app/companyField/companyFieldList.controller.js
@@ -163,19 +163,20 @@
                            // 전화번호 조회시 하이픈 추가 해서 조회
                            result.data.data.forEach(function (data) {
                                if (data.tel != null && data.tel !== "") {
                                    var tels = data.tel;
                                    if (data.tel.indexOf("[") !== -1){
                                        var tels = data.tel.substr(1, data.tel.indexOf("]")-1);
                                        var telArr = tels.split(",");
                                        for (var i = 0; i < telArr.length; i++) {
                                            let hyphen = telArr[i].trim();
                                            telArr[i] = hyphen.replace(/(^02.{0}|^01.{1}|[0-9]{3})([0-9]+)([0-9]{4})/, "$1-$2-$3");
                                            if (telArr[i] === "") {
                                                telArr.splice(i,1);
                                            }
                                        }
                                        data.tel = telArr.join();
                                        tels = data.tel.substr(1, data.tel.indexOf("]")-1);
                                    }
                                    var telArr = tels.split(",");
                                    for (var i = 0; i < telArr.length; i++) {
                                        let hyphen = telArr[i].trim();
                                        telArr[i] = hyphen.replace(/(^02.{0}|^01.{1}|[0-9]{3})([0-9]+)([0-9]{4})/, "$1-$2-$3");
                                        if (telArr[i] === "") {
                                            telArr.splice(i,1);
                                        }
                                    }
                                    data.tel = telArr.join();
                                }
                            });
src/main/webapp/scripts/app/companyField/companyFieldModify.controller.js
@@ -354,10 +354,14 @@
                                if (result.data.content.tel != null) {
                                    var inputTels = $scope.vm.form.inputTels;
                                    var tels = result.data.content.tel.substr(1, result.data.content.tel.indexOf("]")-1);
                                    var telArr = tels.split(", ");
                                    var tels = result.data.content.tel;
                                    if (result.data.content.tel.indexOf("[") !== -1){
                                        tels = result.data.content.tel.substr(1, result.data.content.tel.indexOf("]")-1);
                                    }
                                    var telArr = tels.split(",");
                                    angular.forEach(telArr, function (tel) {
                                        inputTels.push(tel);
                                        var tell = tel.trim();
                                        inputTels.push(tell);
                                    });
                                    inputTels  = inputTels.filter(function(item) {
                                        return item !== null && item !== undefined && item !== '';
@@ -371,10 +375,14 @@
                                if (result.data.content.email != null) {
                                    var inputMails = $scope.vm.form.inputMails;
                                    var emails = result.data.content.email.substr(1, result.data.content.email.indexOf("]")-1);
                                    var emailArr = emails.split(", ");
                                    var emails = result.data.content.email
                                    if (result.data.content.email.indexOf("[") !== -1){
                                        emails = result.data.content.email.substr(1, result.data.content.email.indexOf("]")-1);
                                    }
                                    var emailArr = emails.split(",");
                                    angular.forEach(emailArr, function (email) {
                                        inputMails.push(email);
                                        var mail = email.trim();
                                        inputMails.push(mail);
                                    });
                                    inputMails  = inputMails.filter(function(item) {
                                        return item !== null && item !== undefined && item !== '';
src/main/webapp/scripts/app/hostingField/hostingFieldList.controller.js
@@ -131,7 +131,10 @@
                            // 전화번호 조회시 하이픈 추가 해서 조회
                            result.data.data.forEach(function (data) {
                                if (data.tel != null && data.tel !== "") {
                                    var tels = data.tel.substr(1, data.tel.indexOf("]")-1);
                                    var tels = data.tel;
                                    if (data.tel.indexOf("[") !== -1){
                                        tels = data.tel.substr(1, data.tel.indexOf("]")-1);
                                    }
                                    var telArr = tels.split(",");
                                    for (var i = 0; i < telArr.length; i++) {
@@ -148,7 +151,9 @@
                            // 이메일 조회시 배열 형태 제거
                            result.data.data.forEach(function (data) {
                                if (data.email != null && data.email !== "") {
                                    data.email = data.email.substr(1, data.email.indexOf("]")-1);
                                    if (data.email.indexOf("[") !== -1){
                                        data.email = data.email.substr(1, data.email.indexOf("]")-1);
                                    }
                                }
                            });
src/main/webapp/scripts/app/hostingField/hostingFieldModify.controller.js
@@ -189,10 +189,14 @@
                                if (result.data.content.tel != null) {
                                    var inputTels = $scope.vm.form.inputTels;
                                    var tels = result.data.content.tel.substr(1, result.data.content.tel.indexOf("]")-1);
                                    var telArr = tels.split(", ");
                                    var tels = result.data.content.tel;
                                    if (result.data.content.tel.indexOf("[") !== -1){
                                        tels = result.data.content.tel.substr(1, result.data.content.tel.indexOf("]")-1);
                                    }
                                    var telArr = tels.split(",");
                                    angular.forEach(telArr, function (tel) {
                                        inputTels.push(tel);
                                        var tell = tel.trim();
                                        inputTels.push(tell);
                                    });
                                    inputTels  = inputTels.filter(function(item) {
                                        return item !== null && item !== undefined && item !== '';
@@ -206,10 +210,14 @@
                                if (result.data.content.email != null) {
                                    var inputMails = $scope.vm.form.inputMails;
                                    var emails = result.data.content.email.substr(1, result.data.content.email.indexOf("]")-1);
                                    var emailArr = emails.split(", ");
                                    var emails = result.data.content.email
                                    if (result.data.content.email.indexOf("[") !== -1){
                                        emails = result.data.content.email.substr(1, result.data.content.email.indexOf("]")-1);
                                    }
                                    var emailArr = emails.split(",");
                                    angular.forEach(emailArr, function (email) {
                                        inputMails.push(email);
                                        var mail = email.trim();
                                        inputMails.push(mail);
                                    });
                                    inputMails  = inputMails.filter(function(item) {
                                        return item !== null && item !== undefined && item !== '';
src/main/webapp/scripts/app/ispField/ispFieldList.controller.js
@@ -131,7 +131,10 @@
                            // 전화번호 조회시 하이픈 추가 해서 조회
                            result.data.data.forEach(function (data) {
                                if (data.tel != null && data.tel !== "") {
                                    var tels = data.tel.substr(1, data.tel.indexOf("]")-1);
                                    var tels = data.tel;
                                    if (data.tel.indexOf("[") !== -1){
                                        tels = data.tel.substr(1, data.tel.indexOf("]")-1);
                                    }
                                    var telArr = tels.split(",");
                                    for (var i = 0; i < telArr.length; i++) {
@@ -148,7 +151,9 @@
                            // 이메일 조회시 배열 형태 제거
                            result.data.data.forEach(function (data) {
                                if (data.email != null && data.email !== "") {
                                    data.email = data.email.substr(1, data.email.indexOf("]")-1);
                                    if (data.email.indexOf("[") !== -1){
                                        data.email = data.email.substr(1, data.email.indexOf("]")-1);
                                    }
                                }
                            });
src/main/webapp/scripts/app/ispField/ispFieldModify.controller.js
@@ -188,10 +188,14 @@
                                if (result.data.content.tel != null) {
                                    var inputTels = $scope.vm.form.inputTels;
                                    var tels = result.data.content.tel.substr(1, result.data.content.tel.indexOf("]")-1);
                                    var telArr = tels.split(", ");
                                    var tels = result.data.content.tel;
                                    if (result.data.content.tel.indexOf("[") !== -1){
                                        tels = result.data.content.tel.substr(1, result.data.content.tel.indexOf("]")-1);
                                    }
                                    var telArr = tels.split(",");
                                    angular.forEach(telArr, function (tel) {
                                        inputTels.push(tel);
                                        var tell = tel.trim();
                                        inputTels.push(tell);
                                    });
                                    inputTels  = inputTels.filter(function(item) {
                                        return item !== null && item !== undefined && item !== '';
@@ -205,10 +209,14 @@
                                if (result.data.content.email != null) {
                                    var inputMails = $scope.vm.form.inputMails;
                                    var emails = result.data.content.email.substr(1, result.data.content.email.indexOf("]")-1);
                                    var emailArr = emails.split(", ");
                                    var emails = result.data.content.email
                                    if (result.data.content.email.indexOf("[") !== -1){
                                        emails = result.data.content.email.substr(1, result.data.content.email.indexOf("]")-1);
                                    }
                                    var emailArr = emails.split(",");
                                    angular.forEach(emailArr, function (email) {
                                        inputMails.push(email);
                                        var mail = email.trim();
                                        inputMails.push(mail);
                                    });
                                    inputMails  = inputMails.filter(function(item) {
                                        return item !== null && item !== undefined && item !== '';
src/main/webapp/scripts/app/issue/issueAdd.controller.js
@@ -39,6 +39,11 @@
                    containsPartner : containsPartner,
                    getPartners : getPartners,
                    getDepartments : getDepartments,
                    getCompanyTypeListCallBack : getCompanyTypeListCallBack,
                    getParentSectorListCallBack : getParentSectorListCallBack,
                    getChildSectorListCallBack : getChildSectorListCallBack,
                    getRegionListCallBack : getRegionListCallBack,
                    getStatusListCallBack : getStatusListCallBack,
                };
                $scope.vm = {
@@ -60,7 +65,17 @@
                        startCompleteDateRange : "", //  시작일 ~ 종료일
                        detectingDateRange : "", //  탐지일
                        issueCustomFields : [],  //  이슈에서 사용되는 사용자 정의 필드
                        issueStatusId: ""
                        issueStatusId: "",
                        companyTypeId : "",
                        companyType : "", //기업구분
                        parentSectorId : "",
                        parentSector : "", //업종(대분류)
                        childSectorId : "",
                        childSector : "", //업종(중분류)
                        regionId : "",
                        region : "", //지역
                        statusId : "",
                        status : "", //상태
                    },
                    infiniteAdd : false,    //  연속 생성
                    projectName : "",   //  프로젝트 명 검색
@@ -113,6 +128,26 @@
                        hostingField : {
                            page : 0,
                            totalPage : 0
                        },
                        companyType : {
                            page : 0,
                            totalPage : 0
                        },
                        parentSector : {
                            page : 0,
                            totalPage : 0
                        },
                        childSector : {
                            page : 0,
                            totalPage : 0
                        },
                        region : {
                            page : 0,
                            totalPage : 0
                        },
                        status : {
                            page : 0,
                            totalPage : 0
                        }
                    },
                    summerNote : {
@@ -123,6 +158,14 @@
                    priorities : [],    //  우선순위 정보
                    severities : [],    //  중요도 정보
                    fileTableConfigs : [],   //  파일 업로드 정보 테이블
                    typeCategory : {
                        companyType : "COMPANYTYPE",
                        parentSector : "PARENTSECTOR",
                        childSector : "CHILDSECTOR",
                        region : "REGION",
                        status : "STATUS"
                    },
                };
                // 연관 일감 관련
@@ -380,6 +423,31 @@
                    $scope.vm.autoCompletePage.hostingField.totalPage = result.data.page.totalPage;
                }
                // 기업구분 autocomplete page 업데이트
                function getCompanyTypeListCallBack(result) {
                    $scope.vm.autoCompletePage.companyType.totalPage = result.data.page.totalPage;
                }
                // 업종(대분류) autocomplete page 업데이트
                function getParentSectorListCallBack(result) {
                    $scope.vm.autoCompletePage.parentSector.totalPage = result.data.page.totalPage;
                }
                // 업종(중분류) 카테고리 autocomplete page 업데이트
                function getChildSectorListCallBack(result) {
                    $scope.vm.autoCompletePage.childSector.totalPage = result.data.page.totalPage;
                }
                // 지역 카테고리 autocomplete page 업데이트
                function getRegionListCallBack(result) {
                    $scope.vm.autoCompletePage.region.totalPage = result.data.page.totalPage;
                }
                // 상태 카테고리 autocomplete page 업데이트
                function getStatusListCallBack(result) {
                    $scope.vm.autoCompletePage.status.totalPage = result.data.page.totalPage;
                }
                // 폼 체크
                function formCheck(formInvalid) {
                    if (formInvalid) {
@@ -400,6 +468,16 @@
                    $scope.vm.companyEmail = result[0].email;
                    $scope.vm.companyUrl = result[0].url;
                    $scope.vm.companyMemo = result[0].memo;
                    $scope.vm.form.companyTypeId = result[0].companyTypeId;
                    $scope.vm.form.parentSectorId = result[0].parentSectorId;
                    $scope.vm.form.childSectorId = result[0].childSectorId;
                    $scope.vm.form.regionId = result[0].regionId;
                    $scope.vm.form.statusId = result[0].statusId;
                    $scope.vm.form.companyType = result[0].companyTypeName;
                    $scope.vm.form.parentSector = result[0].parentSectorName;
                    $scope.vm.form.childSector = result[0].childSectorName;
                    $scope.vm.form.region = result[0].regionName;
                    $scope.vm.form.status = result[0].statusName;
                    $scope.vm.ispId = "";
                    $scope.vm.ispName = "";
@@ -561,7 +639,12 @@
                                    tel : $scope.vm.companyTel,
                                    email :$scope.vm.companyEmail,
                                    url :$scope.vm.companyUrl,
                                    memo : $scope.vm.companyMemo
                                    memo : $scope.vm.companyMemo,
                                    companyTypeId : companyField.companyTypeId,
                                    parentSectorId : companyField.parentSectorId,
                                    childSectorId : companyField.childSectorId,
                                    regionId : companyField.regionId,
                                    statusId : companyField.statusId
                                });
                            }
                            return issueCompanyFields;
@@ -572,6 +655,44 @@
                        companyEmail :$scope.vm.companyEmail,
                        companyUrl :$scope.vm.companyUrl,
                        companyMemo : $scope.vm.companyMemo,
                        companyTypeId : (function () {
                            var companyTypeId = -1;
                            if ($scope.vm.form.companyTypes != null) {
                                companyTypeId = $scope.vm.form.companyTypes[0].id;
                            }
                            return companyTypeId;
                        })(),
                        parentSectorId : (function () {
                            var parentSectorId = -1;
                            if ($scope.vm.form.parentSectors != null) {
                                parentSectorId = $scope.vm.form.parentSectors[0].id;
                            }
                            return parentSectorId;
                        })(),
                        childSectorId : (function () {
                            var childSectorId = -1;
                            if ($scope.vm.form.childSectors != null) {
                                childSectorId = $scope.vm.form.childSectors[0].id;
                            }
                            return childSectorId;
                        })(),
                        regionId : (function () {
                            var regionId = -1;
                            if ($scope.vm.form.regions != null) {
                                regionId = $scope.vm.form.regions[0].id;
                            }
                            return regionId;
                        })(),
                        statusId : (function () {
                            var statusId = -1;
                            if ($scope.vm.form.statuses != null) {
                                statusId = $scope.vm.form.statuses[0].id;
                            } else if ($scope.vm.form.status !== ""){
                                statusId = 120; //직접입력 일 경우
                            }
                            return statusId;
                        })(),
                        statusName : $scope.vm.form.status,
                        issueIspFields : (function () {
                            var issueIspFields = [];
src/main/webapp/scripts/app/issue/issueAddDown.controller.js
@@ -40,6 +40,11 @@
                    getPartners : getPartners,
                    addDownIssue : addDownIssue,
                    getDepartments : getDepartments,
                    getCompanyTypeListCallBack : getCompanyTypeListCallBack,
                    getParentSectorListCallBack : getParentSectorListCallBack,
                    getChildSectorListCallBack : getChildSectorListCallBack,
                    getRegionListCallBack : getRegionListCallBack,
                    getStatusListCallBack : getStatusListCallBack,
                };
                $scope.vm = {
@@ -63,6 +68,16 @@
                        detectingDateRange : "", //  탐지일
                        issueCustomFields : [],  //  이슈에서 사용되는 사용자 정의 필드
                        removeFiles : [], // 삭제 파일
                        companyTypeId : "",
                        companyType : "", //기업구분
                        parentSectorId : "",
                        parentSector : "", //업종(대분류)
                        childSectorId : "",
                        childSector : "", //업종(중분류)
                        regionId : "",
                        region : "", //지역
                        statusId : "",
                        status : "", //상태
                    },
                    id : parameter.id,
                    infiniteAdd : false,    //  연속 생성
@@ -93,8 +108,6 @@
                    hostingUrl : "", // 호스팅 url
                    hostingMemo :"", // 호스팅 비고
                    autoCompletePage : {
                        user : {
                            page : 0,
@@ -119,6 +132,26 @@
                        hostingField : {
                            page : 0,
                            totalPage : 0
                        },
                        companyType : {
                            page : 0,
                            totalPage : 0
                        },
                        parentSector : {
                            page : 0,
                            totalPage : 0
                        },
                        childSector : {
                            page : 0,
                            totalPage : 0
                        },
                        region : {
                            page : 0,
                            totalPage : 0
                        },
                        status : {
                            page : 0,
                            totalPage : 0
                        }
                    },
                    summerNote : {
@@ -129,6 +162,14 @@
                    priorities : [],    //  우선순위 정보
                    severities : [],    //  중요도 정보
                    fileTableConfigs : [],   //  파일 업로드 정보 테이블
                    typeCategory : {
                    companyType : "COMPANYTYPE",
                        parentSector : "PARENTSECTOR",
                        childSector : "CHILDSECTOR",
                        region : "REGION",
                        status : "STATUS"
                    },
                };
                angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector}));
@@ -374,6 +415,31 @@
                    $scope.vm.autoCompletePage.hostingField.totalPage = result.data.page.totalPage;
                }
                // 업체 카테고리 autocomplete page 업데이트
                function getCompanyTypeListCallBack(result) {
                    $scope.vm.autoCompletePage.companyType.totalPage = result.data.page.totalPage;
                }
                // 업체 카테고리 autocomplete page 업데이트
                function getParentSectorListCallBack(result) {
                    $scope.vm.autoCompletePage.parentSector.totalPage = result.data.page.totalPage;
                }
                // 업체 카테고리 autocomplete page 업데이트
                function getChildSectorListCallBack(result) {
                    $scope.vm.autoCompletePage.childSector.totalPage = result.data.page.totalPage;
                }
                // 업체 카테고리 autocomplete page 업데이트
                function getRegionListCallBack(result) {
                    $scope.vm.autoCompletePage.region.totalPage = result.data.page.totalPage;
                }
                // 업체 카테고리 autocomplete page 업데이트
                function getStatusListCallBack(result) {
                    $scope.vm.autoCompletePage.status.totalPage = result.data.page.totalPage;
                }
                // 폼 체크
                function formCheck(formInvalid) {
                    if (formInvalid) {
@@ -394,6 +460,16 @@
                    $scope.vm.companyEmail = result[0].email;
                    $scope.vm.companyUrl = result[0].url;
                    $scope.vm.companyMemo = result[0].memo;
                    $scope.vm.form.companyTypeId = result[0].companyTypeId;
                    $scope.vm.form.parentSectorId = result[0].parentSectorId;
                    $scope.vm.form.childSectorId = result[0].childSectorId;
                    $scope.vm.form.regionId = result[0].regionId;
                    $scope.vm.form.statusId = result[0].statusId;
                    $scope.vm.form.companyType = result[0].companyTypeName;
                    $scope.vm.form.parentSector = result[0].parentSectorName;
                    $scope.vm.form.childSector = result[0].childSectorName;
                    $scope.vm.form.region = result[0].regionName;
                    $scope.vm.form.status = result[0].statusName;
                    $scope.vm.ispId = "";
                    $scope.vm.ispName = "";
@@ -473,6 +549,52 @@
                        companyEmail :$scope.vm.companyEmail,
                        companyUrl : $scope.vm.companyUrl,
                        companyMemo : $scope.vm.companyMemo,
                        companyTypeId : (function () {
                            var companyTypeId = -1;
                            if ($scope.vm.form.companyType !== "" && $scope.vm.form.companyTypeId !== "" && $scope.vm.form.companyTypeId !== -1) {
                                companyTypeId = $scope.vm.form.companyTypeId;
                            }else if ($scope.vm.form.companyTypes != null) {
                                companyTypeId = $scope.vm.form.companyTypes[0].id;
                            }
                            return companyTypeId;
                        })(),
                        parentSectorId : (function () {
                            var parentSectorId = -1;
                            if ($scope.vm.form.parentSector !== "" && $scope.vm.form.parentSectorId !== "" && $scope.vm.form.parentSectorId !== -1) {
                                parentSectorId = $scope.vm.form.parentSectorId;
                            }else if ($scope.vm.form.parentSectors != null) {
                                parentSectorId = $scope.vm.form.parentSectors[0].id;
                            }
                            return parentSectorId;
                        })(),
                        childSectorId : (function () {
                            var childSectorId = -1;
                            if ($scope.vm.form.childSector !== "" && $scope.vm.form.childSectorId !== "" && $scope.vm.form.childSectorId !== -1) {
                                childSectorId = $scope.vm.form.childSectorId;
                            }else if ($scope.vm.form.childSectors != null) {
                                childSectorId = $scope.vm.form.childSectors[0].id;
                            }
                            return childSectorId;
                        })(),
                        regionId : (function () {
                            var regionId = -1;
                            if ($scope.vm.form.region !== "" && $scope.vm.form.regionId !== "" && $scope.vm.form.regionId !== -1) {
                                regionId = $scope.vm.form.regionId;
                            }else if ($scope.vm.form.regions != null) {
                                regionId = $scope.vm.form.regions[0].id;
                            }
                            return regionId;
                        })(),
                        statusId : (function () {
                            var statusId = -1;
                            if ($scope.vm.form.status !== "" && $scope.vm.form.statusId !== "" && $scope.vm.form.statusId !== -1) {
                                statusId = $scope.vm.form.statusId;
                            }else if ($scope.vm.form.statuses != null) {
                                statusId = $scope.vm.form.statuses[0].id;
                            }
                            return statusId;
                        })(),
                        statusName : $scope.vm.form.status,
                        ispName : $scope.vm.ispName,
                        ispCode : $scope.vm.ispCode,
                        ispManager : $scope.vm.ispManager,
@@ -570,14 +692,18 @@
                                var companyField = $scope.vm.form.issueCompanyFields[0];
                                issueCompanyFields.push({
                                    id : companyField.id,
                                    companyId : $scope.vm.companyId,
                                    name : $scope.vm.companyName,
                                    manager : $scope.vm.companyManager,
                                    tel : $scope.vm.companyTel,
                                    email :$scope.vm.companyEmail,
                                    url :$scope.vm.companyUrl,
                                    memo : $scope.vm.companyMemo
                                    memo : $scope.vm.companyMemo,
                                    companyTypeId : companyField.companyTypeId,
                                    parentSectorId : companyField.parentSectorId,
                                    childSectorId : companyField.childSectorId,
                                    regionId : companyField.regionId,
                                    statusId : companyField.statusId
                                });
                            }
src/main/webapp/scripts/app/issue/issueAddRelation.controller.js
@@ -39,7 +39,12 @@
                    containsPartner : containsPartner,
                    getPartners : getPartners,
                    addRelationIssue : addRelationIssue,
                    getDepartments : getDepartments
                    getDepartments : getDepartments,
                    getCompanyTypeListCallBack : getCompanyTypeListCallBack,
                    getParentSectorListCallBack : getParentSectorListCallBack,
                    getChildSectorListCallBack : getChildSectorListCallBack,
                    getRegionListCallBack : getRegionListCallBack,
                    getStatusListCallBack : getStatusListCallBack,
                };
                $scope.vm = {
@@ -63,6 +68,23 @@
                        detectingDateRange : "", //  탐지일
                        issueCustomFields : [],  //  이슈에서 사용되는 사용자 정의 필드
                        removeFiles : [], // 삭제 파일
                        companyTypeId : "",
                        companyType : "", //기업구분
                        parentSectorId : "",
                        parentSector : "", //업종(대분류)
                        childSectorId : "",
                        childSector : "", //업종(중분류)
                        regionId : "",
                        region : "", //지역
                        statusId : "",
                        status : "", //상태
                    },
                    typeCategory : {
                        companyType : "COMPANYTYPE",
                        parentSector : "PARENTSECTOR",
                        childSector : "CHILDSECTOR",
                        region : "REGION",
                        status : "STATUS"
                    },
                    id : parameter.id,
                    infiniteAdd : false,    //  연속 생성
@@ -117,6 +139,26 @@
                            totalPage : 0
                        },
                        hostingField : {
                            page : 0,
                            totalPage : 0
                        },
                        companyType : {
                            page : 0,
                            totalPage : 0
                        },
                        parentSector : {
                            page : 0,
                            totalPage : 0
                        },
                        childSector : {
                            page : 0,
                            totalPage : 0
                        },
                        region : {
                            page : 0,
                            totalPage : 0
                        },
                        status : {
                            page : 0,
                            totalPage : 0
                        }
@@ -388,6 +430,31 @@
                    $scope.vm.autoCompletePage.hostingField.totalPage = result.data.page.totalPage;
                }
                // 기업구분 autocomplete page 업데이트
                function getCompanyTypeListCallBack(result) {
                    $scope.vm.autoCompletePage.companyType.totalPage = result.data.page.totalPage;
                }
                // 업종(대분류) autocomplete page 업데이트
                function getParentSectorListCallBack(result) {
                    $scope.vm.autoCompletePage.parentSector.totalPage = result.data.page.totalPage;
                }
                // 업종(중분류) 카테고리 autocomplete page 업데이트
                function getChildSectorListCallBack(result) {
                    $scope.vm.autoCompletePage.childSector.totalPage = result.data.page.totalPage;
                }
                // 지역 카테고리 autocomplete page 업데이트
                function getRegionListCallBack(result) {
                    $scope.vm.autoCompletePage.region.totalPage = result.data.page.totalPage;
                }
                // 상태 카테고리 autocomplete page 업데이트
                function getStatusListCallBack(result) {
                    $scope.vm.autoCompletePage.status.totalPage = result.data.page.totalPage;
                }
                // 폼 체크
                function formCheck(formInvalid) {
                    if (formInvalid) {
@@ -408,6 +475,16 @@
                    $scope.vm.companyEmail = result[0].email;
                    $scope.vm.companyUrl = result[0].url;
                    $scope.vm.companyMemo = result[0].memo;
                    $scope.vm.form.companyTypeId = result[0].companyTypeId;
                    $scope.vm.form.parentSectorId = result[0].parentSectorId;
                    $scope.vm.form.childSectorId = result[0].childSectorId;
                    $scope.vm.form.regionId = result[0].regionId;
                    $scope.vm.form.statusId = result[0].statusId;
                    $scope.vm.form.companyType = result[0].companyTypeName;
                    $scope.vm.form.parentSector = result[0].parentSectorName;
                    $scope.vm.form.childSector = result[0].childSectorName;
                    $scope.vm.form.region = result[0].regionName;
                    $scope.vm.form.status = result[0].statusName;
                    $scope.vm.ispId = "";
                    $scope.vm.ispName = "";
@@ -487,6 +564,44 @@
                        companyEmail :$scope.vm.companyEmail,
                        companyUrl : $scope.vm.companyUrl,
                        companyMemo : $scope.vm.companyMemo,
                        companyTypeId : (function () {
                            var companyTypeId = -1;
                            if ($scope.vm.form.companyTypes != null) {
                                companyTypeId = $scope.vm.form.companyTypes[0].id;
                            }
                            return companyTypeId;
                        })(),
                        parentSectorId : (function () {
                            var parentSectorId = -1;
                            if ($scope.vm.form.parentSectors != null) {
                                parentSectorId = $scope.vm.form.parentSectors[0].id;
                            }
                            return parentSectorId;
                        })(),
                        childSectorId : (function () {
                            var childSectorId = -1;
                            if ($scope.vm.form.childSectors != null) {
                                childSectorId = $scope.vm.form.childSectors[0].id;
                            }
                            return childSectorId;
                        })(),
                        regionId : (function () {
                            var regionId = -1;
                            if ($scope.vm.form.regions != null) {
                                regionId = $scope.vm.form.regions[0].id;
                            }
                            return regionId;
                        })(),
                        statusId : (function () {
                            var statusId = -1;
                            if ($scope.vm.form.statuses != null) {
                                statusId = $scope.vm.form.statuses[0].id;
                            } else if ($scope.vm.form.status !== ""){
                                statusId = 120; //직접입력 일 경우
                            }
                            return statusId;
                        })(),
                        statusName : $scope.vm.form.status,
                        ispName : $scope.vm.ispName,
                        ispCode : $scope.vm.ispCode,
                        ispManager : $scope.vm.ispManager,
@@ -584,14 +699,18 @@
                                var companyField = $scope.vm.form.issueCompanyFields[0];
                                issueCompanyFields.push({
                                    id : companyField.id,
                                    companyId : $scope.vm.companyId,
                                    name : $scope.vm.companyName,
                                    manager : $scope.vm.companyManager,
                                    tel : $scope.vm.companyTel,
                                    email :$scope.vm.companyEmail,
                                    url :$scope.vm.companyUrl,
                                    memo : $scope.vm.companyMemo
                                    memo : $scope.vm.companyMemo,
                                    companyTypeId : companyField.companyTypeId,
                                    parentSectorId : companyField.parentSectorId,
                                    childSectorId : companyField.childSectorId,
                                    regionId : companyField.regionId,
                                    statusId : companyField.statusId
                                });
                            }
src/main/webapp/scripts/app/issue/issueModify.controller.js
@@ -39,7 +39,12 @@
                    setIssueTypeTemplate : setIssueTypeTemplate,    //  이슈 유형 템플릿 적용하기
                    startExecute : startExecute, //  최초 실행
                    containsPartner : containsPartner,
                    getPartners : getPartners
                    getPartners : getPartners,
                    getCompanyTypeListCallBack : getCompanyTypeListCallBack,
                    getParentSectorListCallBack : getParentSectorListCallBack,
                    getChildSectorListCallBack : getChildSectorListCallBack,
                    getRegionListCallBack : getRegionListCallBack,
                    getStatusListCallBack : getStatusListCallBack,
                };
                $scope.vm = {
@@ -66,6 +71,23 @@
                        startCompleteDateRange : "", //  시작일 ~ 종료일
                        issueCustomFields : [],  //  이슈에서 사용되는 사용자 정의 필드
                        removeFiles : [],   //  삭제한 파일 정보
                        companyTypeId : "",
                        companyType : "", //기업구분
                        parentSectorId : "",
                        parentSector : "", //업종(대분류)
                        childSectorId : "",
                        childSector : "", //업종(중분류)
                        regionId : "",
                        region : "", //지역
                        statusId : "",
                        status : "", //상태
                    },
                    typeCategory : {
                        companyType : "COMPANYTYPE",
                        parentSector : "PARENTSECTOR",
                        childSector : "CHILDSECTOR",
                        region : "REGION",
                        status : "STATUS"
                    },
                    projectName : "",   //  프로젝트 명 검색
                    userName : "",  //  사용자 검색
@@ -115,6 +137,26 @@
                            totalPage : 0
                        },
                        hostingField : {
                            page : 0,
                            totalPage : 0
                        },
                        companyType : {
                            page : 0,
                            totalPage : 0
                        },
                        parentSector : {
                            page : 0,
                            totalPage : 0
                        },
                        childSector : {
                            page : 0,
                            totalPage : 0
                        },
                        region : {
                            page : 0,
                            totalPage : 0
                        },
                        status : {
                            page : 0,
                            totalPage : 0
                        }
@@ -356,6 +398,30 @@
                    $scope.vm.autoCompletePage.hostingField.totalPage = result.data.page.totalPage;
                }
                // 업체 카테고리 autocomplete page 업데이트
                function getCompanyTypeListCallBack(result) {
                    $scope.vm.autoCompletePage.companyType.totalPage = result.data.page.totalPage;
                }
                // 업체 카테고리 autocomplete page 업데이트
                function getParentSectorListCallBack(result) {
                    $scope.vm.autoCompletePage.parentSector.totalPage = result.data.page.totalPage;
                }
                // 업체 카테고리 autocomplete page 업데이트
                function getChildSectorListCallBack(result) {
                    $scope.vm.autoCompletePage.childSector.totalPage = result.data.page.totalPage;
                }
                // 업체 카테고리 autocomplete page 업데이트
                function getRegionListCallBack(result) {
                    $scope.vm.autoCompletePage.region.totalPage = result.data.page.totalPage;
                }
                // 업체 카테고리 autocomplete page 업데이트
                function getStatusListCallBack(result) {
                    $scope.vm.autoCompletePage.status.totalPage = result.data.page.totalPage;
                }
                function formCheck(formInvalid) {
                    if (formInvalid) {
@@ -381,6 +447,16 @@
                    $scope.vm.companyEmail = result[0].email;
                    $scope.vm.companyUrl = result[0].url;
                    $scope.vm.companyMemo = result[0].memo;
                    $scope.vm.form.companyTypeId = result[0].companyTypeId;
                    $scope.vm.form.parentSectorId = result[0].parentSectorId;
                    $scope.vm.form.childSectorId = result[0].childSectorId;
                    $scope.vm.form.regionId = result[0].regionId;
                    $scope.vm.form.statusId = result[0].statusId;
                    $scope.vm.form.companyType = result[0].companyTypeName;
                    $scope.vm.form.parentSector = result[0].parentSectorName;
                    $scope.vm.form.childSector = result[0].childSectorName;
                    $scope.vm.form.region = result[0].regionName;
                    $scope.vm.form.status = result[0].statusName;
                    $scope.vm.ispId = "";
                    $scope.vm.ispName = "";
@@ -459,6 +535,54 @@
                        companyEmail :$scope.vm.companyEmail,
                        companyUrl : $scope.vm.companyUrl,
                        companyMemo : $scope.vm.companyMemo,
                        companyTypeId : (function () {
                            var companyTypeId = -1;
                            if ($scope.vm.form.companyType !== "" && $scope.vm.form.companyTypeId !== "" && $scope.vm.form.companyTypeId !== -1) {
                                companyTypeId = $scope.vm.form.companyTypeId;
                            }else if ($scope.vm.form.companyTypes != null) {
                                companyTypeId = $scope.vm.form.companyTypes[0].id;
                            }
                            return companyTypeId;
                        })(),
                        parentSectorId : (function () {
                            var parentSectorId = -1;
                            if ($scope.vm.form.parentSector !== "" && $scope.vm.form.parentSectorId !== "" && $scope.vm.form.parentSectorId !== -1) {
                                parentSectorId = $scope.vm.form.parentSectorId;
                            }else if ($scope.vm.form.parentSectors != null) {
                                parentSectorId = $scope.vm.form.parentSectors[0].id;
                            }
                            return parentSectorId;
                        })(),
                        childSectorId : (function () {
                            var childSectorId = -1;
                            if ($scope.vm.form.childSector !== "" && $scope.vm.form.childSectorId !== "" && $scope.vm.form.childSectorId !== -1) {
                                childSectorId = $scope.vm.form.childSectorId;
                            }else if ($scope.vm.form.childSectors != null) {
                                childSectorId = $scope.vm.form.childSectors[0].id;
                            }
                            return childSectorId;
                        })(),
                        regionId : (function () {
                            var regionId = -1;
                            if ($scope.vm.form.region !== "" && $scope.vm.form.regionId !== "" && $scope.vm.form.regionId !== -1) {
                                regionId = $scope.vm.form.regionId;
                            }else if ($scope.vm.form.regions != null) {
                                regionId = $scope.vm.form.regions[0].id;
                            }
                            return regionId;
                        })(),
                        statusId : (function () {
                            var statusId = -1;
                            if ($scope.vm.form.status !== "" && $scope.vm.form.statusId !== "" && $scope.vm.form.statusId !== -1) {
                                statusId = $scope.vm.form.statusId;
                            }else if ($scope.vm.form.statuses != null) {
                                statusId = $scope.vm.form.statuses[0].id;
                            }
                            return statusId;
                        })(),
                        statusName : $scope.vm.form.status,
                        ispName : $scope.vm.ispName,
                        ispCode : $scope.vm.ispCode,
                        ispManager : $scope.vm.ispManager,
@@ -563,7 +687,12 @@
                                    tel : $scope.vm.companyTel,
                                    email :$scope.vm.companyEmail,
                                    url :$scope.vm.companyUrl,
                                    memo : $scope.vm.companyMemo
                                    memo : $scope.vm.companyMemo,
                                    companyTypeId : companyField.companyTypeId,
                                    parentSectorId : companyField.parentSectorId,
                                    childSectorId : companyField.childSectorId,
                                    regionId : companyField.regionId,
                                    statusId : companyField.statusId
                                });
                            }
@@ -878,6 +1007,16 @@
                                    $scope.vm.companyEmail = issueCompanyFieldValue.email;
                                    $scope.vm.companyUrl = issueCompanyFieldValue.url;
                                    $scope.vm.companyMemo = issueCompanyFieldValue.memo;
                                    $scope.vm.form.companyTypeId = issueCompanyFieldValue.companyTypeId;
                                    $scope.vm.form.companyType = issueCompanyFieldValue.companyTypeName;
                                    $scope.vm.form.parentSectorId = issueCompanyFieldValue.parentSectorId;
                                    $scope.vm.form.parentSector = issueCompanyFieldValue.parentSectorName;
                                    $scope.vm.form.childSectorId = issueCompanyFieldValue.childSectorId;
                                    $scope.vm.form.childSector = issueCompanyFieldValue.childSectorName;
                                    $scope.vm.form.regionId = issueCompanyFieldValue.regionId;
                                    $scope.vm.form.region = issueCompanyFieldValue.regionName;
                                    $scope.vm.form.statusId = issueCompanyFieldValue.statusId;
                                    $scope.vm.form.status = issueCompanyFieldValue.statusName;
                                }
                                if (result.data.data.issueIspVos != null && result.data.data.issueIspVos.length > 0) {
                                    $scope.vm.form.issueIspFields = result.data.data.issueIspVos;
src/main/webapp/views/companyField/companyFieldAdd.html
@@ -206,7 +206,7 @@
                                        input-disabled="false"
                                        translation-texts="{ empty : 'common.emptyParentSector' }"
                                        extra-settings="{ displayProp : 'useValue' , idProp : 'id', imageable : false, imagePathProp : '',
            type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single>
                                        type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single>
            </div>
            <div class="form-group">
                <label class="issue-label">
src/main/webapp/views/issue/issueAdd.html
@@ -462,13 +462,11 @@
                               type="text"
                               class="form-control"
                               kr-input
                               ng-pattern="/^\d{2,3}-\d{3,4}-\d{4}$/"
                               autocomplete="off"
                               ng-model="vm.companyTel"
                               maxlength="20">
                        <div ng-show="issueAddForm.companyTel.$error.pattern" class="help-block form-text text-danger"
                               ng-model="vm.companyTel">
                        <!--<div ng-show="issueAddForm.companyTel.$error.pattern" class="help-block form-text text-danger"
                             translate="companyField.invalidTelFormat">전화번호 형식이 맞지 않습니다. xxx-xxx-xxxx 형식으로 입력하세요.
                        </div>
                        </div>-->
                    </div>
                </div>
                <div class="col-lg-4">
@@ -476,16 +474,14 @@
                        <label for="companyFieldEmailAddForm" class="issue-label"><span translate="companyField.email">이메일</span></label>
                        <input id="companyFieldEmailAddForm"
                               name="companyEmail"
                               type="email"
                               type="text"
                               class="form-control"
                               autocomplete="off"
                               maxLength="50"
                               ng-model="vm.companyEmail"
                               kr-input
                               ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/">
                        <div ng-show="issueAddForm.companyEmail.$error.pattern" class="help-block form-text text-danger"
                               kr-input>
                        <!--<div ng-show="issueAddForm.companyEmail.$error.pattern" class="help-block form-text text-danger"
                             translate="users.invalidEmailFormat">이메일 형식이 맞지 않습니다.
                        </div>
                        </div>-->
                    </div>
                </div>
                <div class="col-lg-4">
@@ -518,6 +514,101 @@
                               ng-maxlength="200"
                               ng-model="vm.companyMemo"
                               maxlength="200">
                    </div>
                </div>
                <div class="col-lg-4">
                    <div class="form-group mgb5">
                        <label class="issue-label">
                            <span translate="companyField.companyType">기업구분</span>
                        </label>
                        <js-autocomplete-single data-input-name="companyType"
                                                selected-model="vm.form.companyTypes"
                                                ng-model="vm.form.companyType"
                                                custom-input="false"
                                                search="vm.form.companyType"
                                                source="fn.getCompanyTypeCategory(vm.typeCategory.companyType, vm.form.companyType, vm.form.companyTypes, vm.autoCompletePage.companyType.page, fn.getCompanyTypeListCallBack)"
                                                page="vm.autoCompletePage.companyType.page"
                                                total-page="vm.autoCompletePage.companyType.totalPage"
                                                input-disabled="false"
                                                translation-texts="{ empty : 'common.emptyCompanyType' }"
                                                extra-settings="{ displayProp : 'useValue' , idProp : 'id', imageable : false, imagePathProp : '',
                                                type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single>
                    </div>
                </div>
                <div class="col-lg-4">
                    <div class="form-group mgb5">
                        <label class="issue-label">
                            <span translate="companyField.parentSector">업종(대분류)</span>
                        </label>
                        <js-autocomplete-single data-input-name="parentSector"
                                                selected-model="vm.form.parentSectors"
                                                ng-model="vm.form.parentSector"
                                                custom-input="false"
                                                search="vm.form.parentSector"
                                                source="fn.getCompanyTypeCategory(vm.typeCategory.parentSector, vm.form.parentSector, vm.form.parentSectors, vm.autoCompletePage.parentSector.page, fn.getParentSectorListCallBack)"
                                                page="vm.autoCompletePage.parentSector.page"
                                                total-page="vm.autoCompletePage.parentSector.totalPage"
                                                input-disabled="false"
                                                translation-texts="{ empty : 'common.emptyParentSector' }"
                                                extra-settings="{ displayProp : 'useValue' , idProp : 'id', imageable : false, imagePathProp : '',
                                                type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single>
                    </div>
                </div>
                <div class="col-lg-4">
                    <div class="form-group mgb5">
                        <label class="issue-label">
                            <span translate="companyField.childSector">업종(중분류)</span>
                        </label>
                        <js-autocomplete-single data-input-name="childSector"
                                                selected-model="vm.form.childSectors"
                                                ng-model="vm.form.childSector"
                                                custom-input="false"
                                                search="vm.form.childSector"
                                                source="fn.getCompanyChildSector(vm.form.parentSectorId, vm.form.parentSectors[0].id, vm.typeCategory.childSector, vm.form.childSector, vm.form.childSectors, vm.autoCompletePage.childSector.page, fn.getChildSectorListCallBack)"
                                                page="vm.autoCompletePage.childSector.page"
                                                total-page="vm.autoCompletePage.childSector.totalPage"
                                                input-disabled="false"
                                                translation-texts="{ empty : 'common.emptyChildSector' }"
                                                extra-settings="{ displayProp : 'useValue' , idProp : 'id', imageable : false, imagePathProp : '',
                                                type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single>
                    </div>
                </div>
                <div class="col-lg-4">
                    <div class="form-group mgb5">
                        <label class="issue-label">
                            <span translate="companyField.region">지역</span>
                        </label>
                        <js-autocomplete-single data-input-name="region"
                                                selected-model="vm.form.regions"
                                                ng-model="vm.form.region"
                                                custom-input="false"
                                                search="vm.form.region"
                                                source="fn.getCompanyTypeCategory(vm.typeCategory.region, vm.form.region, vm.form.regions, vm.autoCompletePage.region.page, fn.getRegionListCallBack)"
                                                page="vm.autoCompletePage.region.page"
                                                total-page="vm.autoCompletePage.region.totalPage"
                                                input-disabled="false"
                                                translation-texts="{ empty : 'common.emptyRegion' }"
                                                extra-settings="{ displayProp : 'useValue' , idProp : 'id', imageable : false, imagePathProp : '',
                    type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single>
                    </div>
                </div>
                <div class="col-lg-4">
                    <div class="form-group mgb5">
                        <label class="issue-label">
                            <span translate="companyField.status">상태</span>
                        </label>
                        <js-autocomplete-single data-input-name="status"
                                                selected-model="vm.form.statuses"
                                                ng-model="vm.form.status"
                                                custom-input="false"
                                                search="vm.form.status"
                                                source="fn.getCompanyTypeCategory(vm.typeCategory.status, vm.form.status, vm.form.statuses, vm.autoCompletePage.status.page, fn.getStatusListCallBack)"
                                                page="vm.autoCompletePage.status.page"
                                                total-page="vm.autoCompletePage.status.totalPage"
                                                input-disabled="false"
                                                translation-texts="{ empty : 'common.emptyStatus' }"
                                                extra-settings="{ displayProp : 'useValue' , idProp : 'id', imageable : false, imagePathProp : '',
                    type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single>
                    </div>
                </div>
            </div>
@@ -594,13 +685,11 @@
                               type="text"
                               class="form-control"
                               kr-input
                               ng-pattern="/^\d{2,3}-\d{3,4}-\d{4}$/"
                               autocomplete="off"
                               ng-model="vm.ispTel"
                               maxlength="20">
                        <div ng-show="issueAddForm.ispTel.$error.pattern" class="help-block form-text text-danger"
                               ng-model="vm.ispTel">
                        <!--<div ng-show="issueAddForm.ispTel.$error.pattern" class="help-block form-text text-danger"
                             translate="companyField.invalidTelFormat">전화번호 형식이 맞지 않습니다. xxx-xxx-xxxx 형식으로 입력하세요.
                        </div>
                        </div>-->
                    </div>
                </div>
                <div class="col-lg-4">
@@ -608,16 +697,14 @@
                        <label for="ispFieldEmailAddForm" class="issue-label"><span translate="ispField.email">이메일</span></label>
                        <input id="ispFieldEmailAddForm"
                               name="ispEmail"
                               type="email"
                               type="text"
                               class="form-control"
                               autocomplete="off"
                               maxLength="50"
                               ng-model="vm.ispEmail"
                               kr-input
                               ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/">
                        <div ng-show="issueAddForm.ispEmail.$error.pattern" class="help-block form-text text-danger"
                               kr-input>
                        <!--<div ng-show="issueAddForm.ispEmail.$error.pattern" class="help-block form-text text-danger"
                             translate="users.invalidEmailFormat">이메일 형식이 맞지 않습니다.
                        </div>
                        </div>-->
                    </div>
                </div>
                <div class="col-lg-4">
@@ -727,13 +814,11 @@
                               type="text"
                               class="form-control"
                               kr-input
                               ng-pattern="/^\d{2,3}-\d{3,4}-\d{4}$/"
                               autocomplete="off"
                               ng-model="vm.hostingTel"
                               maxlength="20">
                        <div ng-show="issueAddForm.hostingTel.$error.pattern" class="help-block form-text text-danger"
                               ng-model="vm.hostingTel">
                        <!--<div ng-show="issueAddForm.hostingTel.$error.pattern" class="help-block form-text text-danger"
                             translate="companyField.invalidTelFormat">전화번호 형식이 맞지 않습니다. xxx-xxx-xxxx 형식으로 입력하세요.
                        </div>
                        </div>-->
                    </div>
                </div>
                <div class="col-lg-4">
@@ -741,16 +826,14 @@
                        <label for="hostingFieldEmailAdd" class="issue-label"><span translate="hostingField.email">이메일</span></label>
                        <input id="hostingFieldEmailAdd"
                               name="hostingEmail"
                               type="email"
                               type="text"
                               class="form-control"
                               autocomplete="off"
                               maxLength="50"
                               ng-model="vm.hostingEmail"
                               kr-input
                               ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/">
                        <div ng-show="issueAddForm.hostingEmail.$error.pattern" class="help-block form-text text-danger"
                               kr-input>
                        <!--<div ng-show="issueAddForm.hostingEmail.$error.pattern" class="help-block form-text text-danger"
                             translate="users.invalidEmailFormat">이메일 형식이 맞지 않습니다.
                        </div>
                        </div>-->
                    </div>
                </div>
                <div class="col-lg-4">
src/main/webapp/views/issue/issueAddDown.html
@@ -417,13 +417,12 @@
                               type="text"
                               class="form-control"
                               kr-input
                               ng-pattern="/^\d{2,3}-\d{3,4}-\d{4}$/"
                               autocomplete="off"
                               ng-model="vm.companyTel"
                               maxlength="20">
                        <div ng-show="issueAddDownForm.companyTel.$error.pattern" class="help-block form-text text-danger"
                               >
                        <!--<div ng-show="issueAddDownForm.companyTel.$error.pattern" class="help-block form-text text-danger"
                             translate="companyField.invalidTelFormat">전화번호 형식이 맞지 않습니다. xxx-xxx-xxxx 형식으로 입력하세요.
                        </div>
                        </div>-->
                    </div>
                </div>
                <div class="col-lg-4">
@@ -431,16 +430,15 @@
                        <label for="companyFieldEmailAddForm" class="issue-label"><span translate="companyField.email">이메일</span></label>
                        <input id="companyFieldEmailAddForm"
                               name="companyEmail"
                               type="email"
                               type="text"
                               class="form-control"
                               autocomplete="off"
                               maxLength="50"
                               ng-model="vm.companyEmail"
                               kr-input
                               ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/">
                        <div ng-show="issueAddDownForm.companyEmail.$error.pattern" class="help-block form-text text-danger"
                               >
                        <!--<div ng-show="issueAddDownForm.companyEmail.$error.pattern" class="help-block form-text text-danger"
                             translate="users.invalidEmailFormat">이메일 형식이 맞지 않습니다.
                        </div>
                        </div>-->
                    </div>
                </div>
                <div class="col-lg-4">
@@ -473,6 +471,101 @@
                               ng-maxlength="200"
                               ng-model="vm.companyMemo"
                               maxlength="200">
                    </div>
                </div>
                <div class="col-lg-4">
                    <div class="form-group mgb5">
                        <label class="issue-label">
                            <span translate="companyField.companyType">기업구분</span>
                        </label>
                        <js-autocomplete-single data-input-name="companyType"
                                                selected-model="vm.form.companyTypes"
                                                ng-model="vm.form.companyType"
                                                custom-input="false"
                                                search="vm.form.companyType"
                                                source="fn.getCompanyTypeCategory(vm.typeCategory.companyType, vm.form.companyType, vm.form.companyTypes, vm.autoCompletePage.companyType.page, fn.getCompanyTypeListCallBack)"
                                                page="vm.autoCompletePage.companyType.page"
                                                total-page="vm.autoCompletePage.companyType.totalPage"
                                                input-disabled="false"
                                                translation-texts="{ empty : 'common.emptyCompanyType' }"
                                                extra-settings="{ displayProp : 'useValue' , idProp : 'id', imageable : false, imagePathProp : '',
                                                type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single>
                    </div>
                </div>
                <div class="col-lg-4">
                    <div class="form-group mgb5">
                        <label class="issue-label">
                            <span translate="companyField.parentSector">업종(대분류)</span>
                        </label>
                        <js-autocomplete-single data-input-name="parentSector"
                                                selected-model="vm.form.parentSectors"
                                                ng-model="vm.form.parentSector"
                                                custom-input="false"
                                                search="vm.form.parentSector"
                                                source="fn.getCompanyTypeCategory(vm.typeCategory.parentSector, vm.form.parentSector, vm.form.parentSectors, vm.autoCompletePage.parentSector.page, fn.getParentSectorListCallBack)"
                                                page="vm.autoCompletePage.parentSector.page"
                                                total-page="vm.autoCompletePage.parentSector.totalPage"
                                                input-disabled="false"
                                                translation-texts="{ empty : 'common.emptyParentSector' }"
                                                extra-settings="{ displayProp : 'useValue' , idProp : 'id', imageable : false, imagePathProp : '',
                                                type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single>
                    </div>
                </div>
                <div class="col-lg-4">
                    <div class="form-group mgb5">
                        <label class="issue-label">
                            <span translate="companyField.childSector">업종(중분류)</span>
                        </label>
                        <js-autocomplete-single data-input-name="childSector"
                                                selected-model="vm.form.childSectors"
                                                ng-model="vm.form.childSector"
                                                custom-input="false"
                                                search="vm.form.childSector"
                                                source="fn.getCompanyChildSector(vm.form.parentSectorId, vm.form.parentSectors[0].id, vm.typeCategory.childSector, vm.form.childSector, vm.form.childSectors, vm.autoCompletePage.childSector.page, fn.getChildSectorListCallBack)"
                                                page="vm.autoCompletePage.childSector.page"
                                                total-page="vm.autoCompletePage.childSector.totalPage"
                                                input-disabled="false"
                                                translation-texts="{ empty : 'common.emptyChildSector' }"
                                                extra-settings="{ displayProp : 'useValue' , idProp : 'id', imageable : false, imagePathProp : '',
                                                type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single>
                    </div>
                </div>
                <div class="col-lg-4">
                    <div class="form-group mgb5">
                        <label class="issue-label">
                            <span translate="companyField.region">지역</span>
                        </label>
                        <js-autocomplete-single data-input-name="region"
                                                selected-model="vm.form.regions"
                                                ng-model="vm.form.region"
                                                custom-input="false"
                                                search="vm.form.region"
                                                source="fn.getCompanyTypeCategory(vm.typeCategory.region, vm.form.region, vm.form.regions, vm.autoCompletePage.region.page, fn.getRegionListCallBack)"
                                                page="vm.autoCompletePage.region.page"
                                                total-page="vm.autoCompletePage.region.totalPage"
                                                input-disabled="false"
                                                translation-texts="{ empty : 'common.emptyRegion' }"
                                                extra-settings="{ displayProp : 'useValue' , idProp : 'id', imageable : false, imagePathProp : '',
                    type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single>
                    </div>
                </div>
                <div class="col-lg-4">
                    <div class="form-group mgb5">
                        <label class="issue-label">
                            <span translate="companyField.status">상태</span>
                        </label>
                        <js-autocomplete-single data-input-name="status"
                                                selected-model="vm.form.statuses"
                                                ng-model="vm.form.status"
                                                custom-input="false"
                                                search="vm.form.status"
                                                source="fn.getCompanyTypeCategory(vm.typeCategory.status, vm.form.status, vm.form.statuses, vm.autoCompletePage.status.page, fn.getStatusListCallBack)"
                                                page="vm.autoCompletePage.status.page"
                                                total-page="vm.autoCompletePage.status.totalPage"
                                                input-disabled="false"
                                                translation-texts="{ empty : 'common.emptyStatus' }"
                                                extra-settings="{ displayProp : 'useValue' , idProp : 'id', imageable : false, imagePathProp : '',
                    type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single>
                    </div>
                </div>
            </div>
@@ -549,13 +642,12 @@
                               type="text"
                               class="form-control"
                               kr-input
                               ng-pattern="/^\d{2,3}-\d{3,4}-\d{4}$/"
                               autocomplete="off"
                               ng-model="vm.ispTel"
                               maxlength="20">
                        <div ng-show="issueAddDownForm.ispTel.$error.pattern" class="help-block form-text text-danger"
                             translate="companyField.invalidTelFormat">전화번호 형식이 맞지 않습니다. xxx-xxx-xxxx 형식으로 입력하세요.
                        </div>
                               >
<!--                        <div ng-show="issueAddDownForm.ispTel.$error.pattern" class="help-block form-text text-danger"-->
<!--                             translate="companyField.invalidTelFormat">전화번호 형식이 맞지 않습니다. xxx-xxx-xxxx 형식으로 입력하세요.-->
<!--                        </div>-->
                    </div>
                </div>
                <div class="col-lg-4">
@@ -563,16 +655,15 @@
                        <label for="ispFieldEmailAddForm" class="issue-label"><span translate="ispField.email">이메일</span></label>
                        <input id="ispFieldEmailAddForm"
                               name="ispEmail"
                               type="email"
                               type="text"
                               class="form-control"
                               autocomplete="off"
                               maxLength="50"
                               ng-model="vm.ispEmail"
                               kr-input
                               ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/">
                        <div ng-show="issueAddDownForm.ispEmail.$error.pattern" class="help-block form-text text-danger"
                               >
                        <!--<div ng-show="issueAddDownForm.ispEmail.$error.pattern" class="help-block form-text text-danger"
                             translate="users.invalidEmailFormat">이메일 형식이 맞지 않습니다.
                        </div>
                        </div>-->
                    </div>
                </div>
                <div class="col-lg-4">
@@ -681,13 +772,12 @@
                               type="text"
                               class="form-control"
                               kr-input
                               ng-pattern="/^\d{2,3}-\d{3,4}-\d{4}$/"
                               autocomplete="off"
                               ng-model="vm.hostingTel"
                               maxlength="20">
                        <div ng-show="issueAddDownForm.hostingTel.$error.pattern" class="help-block form-text text-danger"
                               >
                        <!--<div ng-show="issueAddDownForm.hostingTel.$error.pattern" class="help-block form-text text-danger"
                             translate="companyField.invalidTelFormat">전화번호 형식이 맞지 않습니다. xxx-xxx-xxxx 형식으로 입력하세요.
                        </div>
                        </div>-->
                    </div>
                </div>
                <div class="col-lg-4">
@@ -695,16 +785,15 @@
                        <label for="hostingFieldEmailAdd" class="issue-label"><span translate="hostingField.email">이메일</span></label>
                        <input id="hostingFieldEmailAdd"
                               name="hostingEmail"
                               type="email"
                               type="text"
                               class="form-control"
                               autocomplete="off"
                               maxLength="50"
                               ng-model="vm.hostingEmail"
                               kr-input
                               ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/">
                        <div ng-show="issueAddDownForm.hostingEmail.$error.pattern" class="help-block form-text text-danger"
                               >
                        <!--<div ng-show="issueAddDownForm.hostingEmail.$error.pattern" class="help-block form-text text-danger"
                             translate="users.invalidEmailFormat">이메일 형식이 맞지 않습니다.
                        </div>
                        </div>-->
                    </div>
                </div>
                <div class="col-lg-4">
src/main/webapp/views/issue/issueAddRelation.html
@@ -428,13 +428,11 @@
                               type="text"
                               class="form-control"
                               kr-input
                               ng-pattern="/^\d{2,3}-\d{3,4}-\d{4}$/"
                               autocomplete="off"
                               ng-model="vm.companyTel"
                               maxlength="20">
                        <div ng-show="issueAddRelationForm.companyTel.$error.pattern" class="help-block form-text text-danger"
                               ng-model="vm.companyTel">
                        <!--<div ng-show="issueAddRelationForm.companyTel.$error.pattern" class="help-block form-text text-danger"
                             translate="companyField.invalidTelFormat">전화번호 형식이 맞지 않습니다. xxx-xxx-xxxx 형식으로 입력하세요.
                        </div>
                        </div>-->
                    </div>
                </div>
                <div class="col-lg-4">
@@ -442,16 +440,15 @@
                        <label for="companyFieldEmailAddForm" class="issue-label"><span translate="companyField.email">이메일</span></label>
                        <input id="companyFieldEmailAddForm"
                               name="companyEmail"
                               type="email"
                               type="text"
                               class="form-control"
                               autocomplete="off"
                               maxLength="50"
                               ng-model="vm.companyEmail"
                               kr-input
                               ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/">
                        <div ng-show="issueAddRelationForm.companyEmail.$error.pattern" class="help-block form-text text-danger"
                        >
                        <!--<div ng-show="issueAddRelationForm.companyEmail.$error.pattern" class="help-block form-text text-danger"
                             translate="users.invalidEmailFormat">이메일 형식이 맞지 않습니다.
                        </div>
                        </div>-->
                    </div>
                </div>
                <div class="col-lg-4">
@@ -484,6 +481,101 @@
                               ng-maxlength="200"
                               ng-model="vm.companyMemo"
                               maxlength="200">
                    </div>
                </div>
                <div class="col-lg-4">
                    <div class="form-group mgb5">
                        <label class="issue-label">
                            <span translate="companyField.companyType">기업구분</span>
                        </label>
                        <js-autocomplete-single data-input-name="companyType"
                                                selected-model="vm.form.companyTypes"
                                                ng-model="vm.form.companyType"
                                                custom-input="false"
                                                search="vm.form.companyType"
                                                source="fn.getCompanyTypeCategory(vm.typeCategory.companyType, vm.form.companyType, vm.form.companyTypes, vm.autoCompletePage.companyType.page, fn.getCompanyTypeListCallBack)"
                                                page="vm.autoCompletePage.companyType.page"
                                                total-page="vm.autoCompletePage.companyType.totalPage"
                                                input-disabled="false"
                                                translation-texts="{ empty : 'common.emptyCompanyType' }"
                                                extra-settings="{ displayProp : 'useValue' , idProp : 'id', imageable : false, imagePathProp : '',
                                                type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single>
                    </div>
                </div>
                <div class="col-lg-4">
                    <div class="form-group mgb5">
                        <label class="issue-label">
                            <span translate="companyField.parentSector">업종(대분류)</span>
                        </label>
                        <js-autocomplete-single data-input-name="parentSector"
                                                selected-model="vm.form.parentSectors"
                                                ng-model="vm.form.parentSector"
                                                custom-input="false"
                                                search="vm.form.parentSector"
                                                source="fn.getCompanyTypeCategory(vm.typeCategory.parentSector, vm.form.parentSector, vm.form.parentSectors, vm.autoCompletePage.parentSector.page, fn.getParentSectorListCallBack)"
                                                page="vm.autoCompletePage.parentSector.page"
                                                total-page="vm.autoCompletePage.parentSector.totalPage"
                                                input-disabled="false"
                                                translation-texts="{ empty : 'common.emptyParentSector' }"
                                                extra-settings="{ displayProp : 'useValue' , idProp : 'id', imageable : false, imagePathProp : '',
                                                type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single>
                    </div>
                </div>
                <div class="col-lg-4">
                    <div class="form-group mgb5">
                        <label class="issue-label">
                            <span translate="companyField.childSector">업종(중분류)</span>
                        </label>
                        <js-autocomplete-single data-input-name="childSector"
                                                selected-model="vm.form.childSectors"
                                                ng-model="vm.form.childSector"
                                                custom-input="false"
                                                search="vm.form.childSector"
                                                source="fn.getCompanyChildSector(vm.form.parentSectorId, vm.form.parentSectors[0].id, vm.typeCategory.childSector, vm.form.childSector, vm.form.childSectors, vm.autoCompletePage.childSector.page, fn.getChildSectorListCallBack)"
                                                page="vm.autoCompletePage.childSector.page"
                                                total-page="vm.autoCompletePage.childSector.totalPage"
                                                input-disabled="false"
                                                translation-texts="{ empty : 'common.emptyChildSector' }"
                                                extra-settings="{ displayProp : 'useValue' , idProp : 'id', imageable : false, imagePathProp : '',
                                                type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single>
                    </div>
                </div>
                <div class="col-lg-4">
                    <div class="form-group mgb5">
                        <label class="issue-label">
                            <span translate="companyField.region">지역</span>
                        </label>
                        <js-autocomplete-single data-input-name="region"
                                                selected-model="vm.form.regions"
                                                ng-model="vm.form.region"
                                                custom-input="false"
                                                search="vm.form.region"
                                                source="fn.getCompanyTypeCategory(vm.typeCategory.region, vm.form.region, vm.form.regions, vm.autoCompletePage.region.page, fn.getRegionListCallBack)"
                                                page="vm.autoCompletePage.region.page"
                                                total-page="vm.autoCompletePage.region.totalPage"
                                                input-disabled="false"
                                                translation-texts="{ empty : 'common.emptyRegion' }"
                                                extra-settings="{ displayProp : 'useValue' , idProp : 'id', imageable : false, imagePathProp : '',
                    type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single>
                    </div>
                </div>
                <div class="col-lg-4">
                    <div class="form-group mgb5">
                        <label class="issue-label">
                            <span translate="companyField.status">상태</span>
                        </label>
                        <js-autocomplete-single data-input-name="status"
                                                selected-model="vm.form.statuses"
                                                ng-model="vm.form.status"
                                                custom-input="false"
                                                search="vm.form.status"
                                                source="fn.getCompanyTypeCategory(vm.typeCategory.status, vm.form.status, vm.form.statuses, vm.autoCompletePage.status.page, fn.getStatusListCallBack)"
                                                page="vm.autoCompletePage.status.page"
                                                total-page="vm.autoCompletePage.status.totalPage"
                                                input-disabled="false"
                                                translation-texts="{ empty : 'common.emptyStatus' }"
                                                extra-settings="{ displayProp : 'useValue' , idProp : 'id', imageable : false, imagePathProp : '',
                    type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single>
                    </div>
                </div>
            </div>
@@ -560,13 +652,12 @@
                               type="text"
                               class="form-control"
                               kr-input
                               ng-pattern="/^\d{2,3}-\d{3,4}-\d{4}$/"
                               autocomplete="off"
                               ng-model="vm.ispTel"
                               maxlength="20">
                        <div ng-show="issueAddRelationForm.ispTel.$error.pattern" class="help-block form-text text-danger"
                        >
                        <!--<div ng-show="issueAddRelationForm.ispTel.$error.pattern" class="help-block form-text text-danger"
                             translate="companyField.invalidTelFormat">전화번호 형식이 맞지 않습니다. xxx-xxx-xxxx 형식으로 입력하세요.
                        </div>
                        </div>-->
                    </div>
                </div>
                <div class="col-lg-4">
@@ -574,16 +665,15 @@
                        <label for="ispFieldEmailAddForm" class="issue-label"><span translate="ispField.email">이메일</span></label>
                        <input id="ispFieldEmailAddForm"
                               name="ispEmail"
                               type="email"
                               type="text"
                               class="form-control"
                               autocomplete="off"
                               maxLength="50"
                               ng-model="vm.ispEmail"
                               kr-input
                               ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/">
                        <div ng-show="issueAddRelationForm.ispEmail.$error.pattern" class="help-block form-text text-danger"
                               >
                        <!--<div ng-show="issueAddRelationForm.ispEmail.$error.pattern" class="help-block form-text text-danger"
                             translate="users.invalidEmailFormat">이메일 형식이 맞지 않습니다.
                        </div>
                        </div>-->
                    </div>
                </div>
                <div class="col-lg-4">
@@ -655,7 +745,7 @@
                </div>
                <div class="col-lg-4">
                    <div class="form-group mb10">
                        <label for="hostingCodeManagerAdd" class="issue-label"><span translate="hostingField.code">담당자</span></label>
                        <label for="hostingCodeManagerAdd" class="issue-label"><span translate="hostingField.code">코드</span></label>
                        <input id="hostingCodeManagerAdd"
                               name="hostingCode"
                               type="text"
@@ -692,13 +782,12 @@
                               type="text"
                               class="form-control"
                               kr-input
                               ng-pattern="/^\d{2,3}-\d{3,4}-\d{4}$/"
                               autocomplete="off"
                               ng-model="vm.hostingTel"
                               maxlength="20">
                        <div ng-show="issueAddRelationForm.hostingTel.$error.pattern" class="help-block form-text text-danger"
                               >
                        <!--<div ng-show="issueAddRelationForm.hostingTel.$error.pattern" class="help-block form-text text-danger"
                             translate="companyField.invalidTelFormat">전화번호 형식이 맞지 않습니다. xxx-xxx-xxxx 형식으로 입력하세요.
                        </div>
                        </div>-->
                    </div>
                </div>
                <div class="col-lg-4">
@@ -706,16 +795,15 @@
                        <label for="hostingFieldEmailAdd" class="issue-label"><span translate="hostingField.email">이메일</span></label>
                        <input id="hostingFieldEmailAdd"
                               name="hostingEmail"
                               type="email"
                               type="text"
                               class="form-control"
                               autocomplete="off"
                               maxLength="50"
                               ng-model="vm.hostingEmail"
                               kr-input
                               ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/">
                        <div ng-show="issueAddRelationForm.hostingEmail.$error.pattern" class="help-block form-text text-danger"
                        >
                        <!--<div ng-show="issueAddRelationForm.hostingEmail.$error.pattern" class="help-block form-text text-danger"
                             translate="users.invalidEmailFormat">이메일 형식이 맞지 않습니다.
                        </div>
                        </div>-->
                    </div>
                </div>
                <div class="col-lg-4">
src/main/webapp/views/issue/issueDetail.html
@@ -341,6 +341,51 @@
                            </div>
                        </div>
                    </div>
                    <div class="col-sm-2">
                        <div class="form-group">
                            <div class="">
                                <span translate="companyField.companyType">기업구분</span>:
                                <span>{{vm.viewer.issueCompanyVos[0].companyTypeName}}</span>
                            </div>
                        </div>
                    </div>
                    <div class="col-sm-2">
                        <div class="form-group">
                            <div class="">
                                <span translate="companyField.parentSector">업종(대분류)</span>:
                                <span>{{vm.viewer.issueCompanyVos[0].parentSectorName}}</span>
                            </div>
                        </div>
                    </div>
                    <div class="col-sm-2">
                        <div class="form-group">
                            <div class="">
                                <span translate="companyField.childSector">업종(중분류)</span>:
                                <span>{{vm.viewer.issueCompanyVos[0].childSectorName}}</span>
                            </div>
                        </div>
                    </div>
                    <div class="col-sm-2">
                        <div class="form-group">
                            <div class="">
                                <span translate="companyField.region">지역</span>:
                                <span>{{vm.viewer.issueCompanyVos[0].regionName}}</span>
                            </div>
                        </div>
                    </div>
                    <div class="col-sm-2">
                        <div class="form-group">
                            <div class="">
                                <span translate="companyField.status">상태</span>:
                                <span>{{vm.viewer.issueCompanyVos[0].statusName}}</span>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
            <div class="issue-detail-label">
src/main/webapp/views/issue/issueModify.html
@@ -361,9 +361,9 @@
<!--                                           ng-if="issueModifyForm.tel.$error.required"-->
<!--                                           translate="issue.pleaseEnterIssueTypeCustomFields">해당 사용자 정의 필드는 필수 입력 값 입니다.-->
<!--                                    </small>-->
                                    <div ng-if="issueModifyForm['item_' + $index].$error.pattern" class="help-block form-text text-danger"
                                    <!--<div ng-if="issueModifyForm['item_' + $index].$error.pattern" class="help-block form-text text-danger"
                                         translate="common.invalidTelFormat">전화번호 형식이 맞지 않습니다.
                                    </div>
                                    </div>-->
                                </div>
                                <!-- 단일 셀렉트 -->
@@ -460,13 +460,12 @@
                               type="text"
                               class="form-control"
                               kr-input
                               ng-pattern="/^\d{2,3}-\d{3,4}-\d{4}$/"
                               autocomplete="off"
                               ng-model="vm.companyTel"
                               maxlength="20">
                        <div ng-show="issueModifyForm.companyTel.$error.pattern" class="help-block form-text text-danger"
                               >
                        <!--<div ng-show="issueModifyForm.companyTel.$error.pattern" class="help-block form-text text-danger"
                             translate="companyField.invalidTelFormat">전화번호 형식이 맞지 않습니다. xxx-xxx-xxxx 형식으로 입력하세요.
                        </div>
                        </div>-->
                    </div>
                </div>
                <div class="col-lg-4">
@@ -474,16 +473,14 @@
                        <label for="companyFieldEmailAddForm" class="issue-label"><span translate="companyField.email">이메일</span></label>
                        <input id="companyFieldEmailAddForm"
                               name="companyEmail"
                               type="email"
                               type="text"
                               class="form-control"
                               autocomplete="off"
                               maxLength="50"
                               ng-model="vm.companyEmail"
                               kr-input
                               ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/">
                        <div ng-show="issueModifyForm.companyEmail.$error.pattern" class="help-block form-text text-danger"
                               kr-input>
                        <!--<div ng-show="issueModifyForm.companyEmail.$error.pattern" class="help-block form-text text-danger"
                             translate="users.invalidEmailFormat">이메일 형식이 맞지 않습니다.
                        </div>
                        </div>-->
                    </div>
                </div>
                <div class="col-lg-4">
@@ -516,6 +513,101 @@
                               ng-maxlength="200"
                               ng-model="vm.companyMemo"
                               maxlength="200">
                    </div>
                </div>
                <div class="col-lg-4">
                    <div class="form-group mgb5">
                        <label class="issue-label">
                            <span translate="companyField.companyType">기업구분</span>
                        </label>
                        <js-autocomplete-single data-input-name="companyType"
                                                selected-model="vm.form.companyTypes"
                                                ng-model="vm.form.companyType"
                                                custom-input="false"
                                                search="vm.form.companyType"
                                                source="fn.getCompanyTypeCategory(vm.typeCategory.companyType, vm.form.companyType, vm.form.companyTypes, vm.autoCompletePage.companyType.page, fn.getCompanyTypeListCallBack)"
                                                page="vm.autoCompletePage.companyType.page"
                                                total-page="vm.autoCompletePage.companyType.totalPage"
                                                input-disabled="false"
                                                translation-texts="{ empty : 'common.emptyCompanyType' }"
                                                extra-settings="{ displayProp : 'useValue' , idProp : 'id', imageable : false, imagePathProp : '',
                                                type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single>
                    </div>
                </div>
                <div class="col-lg-4">
                    <div class="form-group mgb5">
                        <label class="issue-label">
                            <span translate="companyField.parentSector">업종(대분류)</span>
                        </label>
                        <js-autocomplete-single data-input-name="parentSector"
                                                selected-model="vm.form.parentSectors"
                                                ng-model="vm.form.parentSector"
                                                custom-input="false"
                                                search="vm.form.parentSector"
                                                source="fn.getCompanyTypeCategory(vm.typeCategory.parentSector, vm.form.parentSector, vm.form.parentSectors, vm.autoCompletePage.parentSector.page, fn.getParentSectorListCallBack)"
                                                page="vm.autoCompletePage.parentSector.page"
                                                total-page="vm.autoCompletePage.parentSector.totalPage"
                                                input-disabled="false"
                                                translation-texts="{ empty : 'common.emptyParentSector' }"
                                                extra-settings="{ displayProp : 'useValue' , idProp : 'id', imageable : false, imagePathProp : '',
                                                type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single>
                    </div>
                </div>
                <div class="col-lg-4">
                    <div class="form-group mgb5">
                        <label class="issue-label">
                            <span translate="companyField.childSector">업종(중분류)</span>
                        </label>
                        <js-autocomplete-single data-input-name="childSector"
                                                selected-model="vm.form.childSectors"
                                                ng-model="vm.form.childSector"
                                                custom-input="false"
                                                search="vm.form.childSector"
                                                source="fn.getCompanyChildSector(vm.form.parentSectorId, vm.form.parentSectors[0].id, vm.typeCategory.childSector, vm.form.childSector, vm.form.childSectors, vm.autoCompletePage.childSector.page, fn.getChildSectorListCallBack)"
                                                page="vm.autoCompletePage.childSector.page"
                                                total-page="vm.autoCompletePage.childSector.totalPage"
                                                input-disabled="false"
                                                translation-texts="{ empty : 'common.emptyChildSector' }"
                                                extra-settings="{ displayProp : 'useValue' , idProp : 'id', imageable : false, imagePathProp : '',
                                                type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single>
                    </div>
                </div>
                <div class="col-lg-4">
                    <div class="form-group mgb5">
                        <label class="issue-label">
                            <span translate="companyField.region">지역</span>
                        </label>
                        <js-autocomplete-single data-input-name="region"
                                                selected-model="vm.form.regions"
                                                ng-model="vm.form.region"
                                                custom-input="false"
                                                search="vm.form.region"
                                                source="fn.getCompanyTypeCategory(vm.typeCategory.region, vm.form.region, vm.form.regions, vm.autoCompletePage.region.page, fn.getRegionListCallBack)"
                                                page="vm.autoCompletePage.region.page"
                                                total-page="vm.autoCompletePage.region.totalPage"
                                                input-disabled="false"
                                                translation-texts="{ empty : 'common.emptyRegion' }"
                                                extra-settings="{ displayProp : 'useValue' , idProp : 'id', imageable : false, imagePathProp : '',
                    type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single>
                    </div>
                </div>
                <div class="col-lg-4">
                    <div class="form-group mgb5">
                        <label class="issue-label">
                            <span translate="companyField.status">상태</span>
                        </label>
                        <js-autocomplete-single data-input-name="status"
                                                selected-model="vm.form.statuses"
                                                ng-model="vm.form.status"
                                                custom-input="false"
                                                search="vm.form.status"
                                                source="fn.getCompanyTypeCategory(vm.typeCategory.status, vm.form.status, vm.form.statuses, vm.autoCompletePage.status.page, fn.getStatusListCallBack)"
                                                page="vm.autoCompletePage.status.page"
                                                total-page="vm.autoCompletePage.status.totalPage"
                                                input-disabled="false"
                                                translation-texts="{ empty : 'common.emptyStatus' }"
                                                extra-settings="{ displayProp : 'useValue' , idProp : 'id', imageable : false, imagePathProp : '',
                    type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single>
                    </div>
                </div>
            </div>
@@ -592,13 +684,12 @@
                               type="text"
                               class="form-control"
                               kr-input
                               ng-pattern="/^\d{2,3}-\d{3,4}-\d{4}$/"
                               autocomplete="off"
                               ng-model="vm.ispTel"
                               maxlength="20">
                        <div ng-show="issueModifyForm.ispTel.$error.pattern" class="help-block form-text text-danger"
                               >
                        <!--<div ng-show="issueModifyForm.ispTel.$error.pattern" class="help-block form-text text-danger"
                             translate="companyField.invalidTelFormat">전화번호 형식이 맞지 않습니다. xxx-xxx-xxxx 형식으로 입력하세요.
                        </div>
                        </div>-->
                    </div>
                </div>
                <div class="col-lg-4">
@@ -606,16 +697,15 @@
                        <label for="ispFieldEmailAddForm" class="issue-label"><span translate="ispField.email">이메일</span></label>
                        <input id="ispFieldEmailAddForm"
                               name="ispEmail"
                               type="email"
                               type="text"
                               class="form-control"
                               autocomplete="off"
                               maxLength="50"
                               ng-model="vm.ispEmail"
                               kr-input
                               ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/">
                        <div ng-show="issueModifyForm.ispEmail.$error.pattern" class="help-block form-text text-danger"
                               >
                        <!--<div ng-show="issueModifyForm.ispEmail.$error.pattern" class="help-block form-text text-danger"
                             translate="users.invalidEmailFormat">이메일 형식이 맞지 않습니다.
                        </div>
                        </div>-->
                    </div>
                </div>
                <div class="col-lg-4">
@@ -688,7 +778,7 @@
                </div>
                <div class="col-lg-4">
                    <div class="form-group mb10">
                        <label for="hostingCodeManagerAdd" class="issue-label"><span translate="hostingField.code">담당자</span></label>
                        <label for="hostingCodeManagerAdd" class="issue-label"><span translate="hostingField.code">코드</span></label>
                        <input id="hostingCodeManagerAdd"
                               name="hostingCode"
                               type="text"
@@ -725,13 +815,12 @@
                               type="text"
                               class="form-control"
                               kr-input
                               ng-pattern="/^\d{2,3}-\d{3,4}-\d{4}$/"
                               autocomplete="off"
                               ng-model="vm.hostingTel"
                               maxlength="20">
                        <div ng-show="issueModifyForm.hostingTel.$error.pattern" class="help-block form-text text-danger"
                               >
                        <!--<div ng-show="issueModifyForm.hostingTel.$error.pattern" class="help-block form-text text-danger"
                             translate="companyField.invalidTelFormat">전화번호 형식이 맞지 않습니다. xxx-xxx-xxxx 형식으로 입력하세요.
                        </div>
                        </div>-->
                    </div>
                </div>
                <div class="col-lg-4">
@@ -739,16 +828,14 @@
                        <label for="hostingFieldEmailAdd" class="issue-label"><span translate="hostingField.email">이메일</span></label>
                        <input id="hostingFieldEmailAdd"
                               name="hostingEmail"
                               type="email"
                               type="text"
                               class="form-control"
                               autocomplete="off"
                               maxLength="50"
                               ng-model="vm.hostingEmail"
                               kr-input
                               ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/">
                        <div ng-show="issueModifyForm.hostingEmail.$error.pattern" class="help-block form-text text-danger"
                               kr-input>
                        <!--div ng-show="issueModifyForm.hostingEmail.$error.pattern" class="help-block form-text text-danger"
                             translate="users.invalidEmailFormat">이메일 형식이 맞지 않습니다.
                        </div>
                        </div>-->
                    </div>
                </div>
                <div class="col-lg-4">