OWL ITS + 탐지시스템(인터넷 진흥원)
wyu
2021-11-17 f3a8cd42ca61550b98d7af093ebaaee1185e35f2
이슈 수정 진행[프론트]
5개 파일 변경됨
125 ■■■■ 파일 변경됨
src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java 6 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/vo/IssueVo.java 36 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/issue/issueAdd.controller.js 16 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/scripts/app/issue/issueModify.controller.js 65 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/views/issue/issueModify.html 2 ●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -792,6 +792,9 @@
                    issueVo.setIssueStatusVo(ConvertUtil.copyProperties(issue.getIssueStatus(), IssueStatusVo.class));
                    issueVo.setPriorityVo(ConvertUtil.copyProperties(issue.getPriority(), PriorityVo.class));
                    issueVo.setSeverityVo(ConvertUtil.copyProperties(issue.getSeverity(), SeverityVo.class));
                    issueVo.setCompanyFieldVo(ConvertUtil.copyProperties(issue.getCompanyField(), CompanyFieldVo.class));
                    issueVo.setIspFieldVo(ConvertUtil.copyProperties(issue.getIspFieldId(), IspFieldVo.class));
                    issueVo.setHostingFieldVo(ConvertUtil.copyProperties(issue.getHostingFieldId(), HostingFieldVo.class));
                    this.setRegister(issue, issueVo);   //  등록자 정보 셋팅
                    //this.setIssueUser(issue, issueVo);  //  담당자 정보 셋팅
@@ -833,6 +836,9 @@
        issueVo.setIssueStatusVo(issueStatusVo);
        issueVo.setPriorityVo(ConvertUtil.copyProperties(issue.getPriority(), PriorityVo.class));
        issueVo.setSeverityVo(ConvertUtil.copyProperties(issue.getSeverity(), SeverityVo.class));
        issueVo.setCompanyFieldVo(ConvertUtil.copyProperties(issue.getCompanyField(), CompanyFieldVo.class));
        issueVo.setIspFieldVo(ConvertUtil.copyProperties(issue.getIspFieldId(), IspFieldVo.class));
        issueVo.setHostingFieldVo(ConvertUtil.copyProperties(issue.getHostingFieldId(), HostingFieldVo.class));
        this.setRegister(issue, issueVo);   //  등록자 정보 셋팅
        //this.setIssueUser(issue, issueVo);  //  담당자 정보 셋팅
        this.setIssueDepartment(issue, issueVo);  //  담당부서 정보 셋팅
src/main/java/kr/wisestone/owl/vo/IssueVo.java
@@ -35,6 +35,9 @@
    private PriorityVo priorityVo;  //  이슈 상세에서 사용
    private SeverityVo severityVo;  //  이슈 상세에서 사용
    private UserVo registerVo;  //  이슈 상세에서 사용
    private CompanyFieldVo companyFieldVo; //  이슈 상세에서 사용
    private IspFieldVo ispFieldVo; //  이슈 상세에서 사용
    private HostingFieldVo hostingFieldVo; //  이슈 상세에서 사용
    private Boolean modifyPermissionCheck = Boolean.FALSE;
    private List<UserVo> userVos = Lists.newArrayList();
    private List<DepartmentVo> departmentVos = Lists.newArrayList(); //담당부서 추가
@@ -49,6 +52,7 @@
    private Long attachedFileCount;
    private Long issueCommentCount;
    private String modifyByName;    //  변경자 정보 - 이슈 변경 정보 상세 확인에서 사용
    private String byName;    //  변경자 정보 - 이슈 변경 정보 상세 확인에서 사용
    private WorkflowStatusVo workflowStatusVo;
    private Long parentIssueId;     // 상위 일감
@@ -334,6 +338,30 @@
        this.registerVo = registerVo;
    }
    public CompanyFieldVo getCompanyFieldVo() {
        return companyFieldVo;
    }
    public void setCompanyFieldVo(CompanyFieldVo companyFieldVo) {
        this.companyFieldVo = companyFieldVo;
    }
    public IspFieldVo getIspFieldVo() {
        return ispFieldVo;
    }
    public void setIspFieldVo(IspFieldVo ispFieldVo) {
        this.ispFieldVo = ispFieldVo;
    }
    public HostingFieldVo getHostingFieldVo() {
        return hostingFieldVo;
    }
    public void setHostingFieldVo(HostingFieldVo hostingFieldVo) {
        this.hostingFieldVo = hostingFieldVo;
    }
    public List<IssueHistoryVo> getIssueHistoryVos() {
        return issueHistoryVos;
    }
@@ -350,6 +378,14 @@
        this.modifyByName = modifyByName;
    }
    public String getByName() {
        return byName;
    }
    public void setByName(String byName) {
        this.byName = byName;
    }
    public void setWorkflowStatusVo(WorkflowStatusVo workflowStatusVo) {
        this.workflowStatusVo = workflowStatusVo;
    }
src/main/webapp/scripts/app/issue/issueAdd.controller.js
@@ -372,6 +372,22 @@
                    var content = {
                        title : $rootScope.preventXss($scope.vm.form.title),    //  제목
                        description : $rootScope.preventXss($scope.vm.form.description),   //  내용
                        //
                        companyManager : $rootScope.preventXss($scope.vm.companyManager),   //  내용
                        companyTel : $rootScope.preventXss($scope.vm.companyTel),   //  내용
                        companyEmail : $rootScope.preventXss($scope.vm.companyEmail),   //  내용
                        companyMemo : $rootScope.preventXss($scope.vm.companyMemo),   //  내용
                        ispCode : $rootScope.preventXss($scope.vm.ispCode),   //  내용
                        ispManager : $rootScope.preventXss($scope.vm.ispManager),   //  내용
                        ispTel : $rootScope.preventXss($scope.vm.ispTel),   //  내용
                        ispEmail : $rootScope.preventXss($scope.vm.ispEmail),   //  내용
                        ispMemo : $rootScope.preventXss($scope.vm.ispMemo),   //  내용
                        hostingCode : $rootScope.preventXss($scope.vm.hostingCode ),   //  내용
                        hostingManager : $rootScope.preventXss($scope.vm.hostingManager),   //  내용
                        hostingTel : $rootScope.preventXss($scope.vm.hostingTel),   //  내용
                        hostingEmail : $rootScope.preventXss($scope.vm.hostingEmail),   //  내용
                        hostingMemo : $rootScope.preventXss($scope.vm.hostingMemo),   //  내용
                        //
                        projectId : (function () {   //  프로젝트 아이디
                            var projectId = "";
src/main/webapp/scripts/app/issue/issueModify.controller.js
@@ -33,7 +33,7 @@
                    setFormByIssueTypeCustomFields : setFormByIssueTypeCustomFields,    //  이슈 유형에 연결된 사용자 정의 필드 정보를 입력 폼에서 사용할 수 있게 가공한다.
                    setUseValueByIssueTypeCustomFields : setUseValueByIssueTypeCustomFields,    //  이슈에서 사용자가 선택한 사용자 정의 필드 값을 입력 폼에 셋팅한다.
                    detail : detail,    //  이슈 정보 조회
                    removeManager : removeManager,  //  담당자 삭제
                    // removeManager : removeManager,  //  담당자 삭제
                    removeDepartment : removeDepartment,  //  담당부서 삭제
                    removeUploadFile : removeUploadFile,    //  특정 파일을 삭제
                    setIssueTypeTemplate : setIssueTypeTemplate,    //  이슈 유형 템플릿 적용하기
@@ -56,8 +56,8 @@
                        priorityId : "",    //  우선순위 아이디
                        severityId : "",    //  중요도 아이디
                        issueStatusId : "", //  이슈 상태 아이디
                        users : [],     //  담당자
                        departments : [], // 딤당부서
                        // users : [],     //  담당자
                        departments : [], // 담당부서
                        files : [], //  업로드 파일
                        attachedFiles : [], //  섬머노트로 파일 업로드를 할 경우 서버에서 pk를 따고 issue id와 연동 작업이 필요하다.
                        startCompleteDateRange : "", //  시작일 ~ 종료일
@@ -85,10 +85,10 @@
                    hostingEmail : "", // 호스팅 이메일
                    hostingMemo : "", // 호스팅 비고
                    autoCompletePage : {
                        user : {
                            page : 0,
                            totalPage : 0
                        },
                        // user : {
                        //     page : 0,
                        //     totalPage : 0
                        // },
                        project : {
                            page : 0,
                            totalPage : 0
@@ -122,11 +122,11 @@
                angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector}));
                //  프로젝트가 변경되면 담당자 초기화
                //  프로젝트가 변경되면 담당부서 초기화
                $scope.$watch("vm.form.projects", function (newValue, oldValue) {
                    if (angular.isDefined(newValue)) {
                        if (newValue.length < 1) {
                            $scope.vm.form.users = [];
                            $scope.vm.form.departments = [];
                            $scope.vm.form.issueCustomFields = [];
                        }
                        else {
@@ -158,9 +158,9 @@
                }
                //  담당자 삭제
                function removeManager(index) {
                    $scope.vm.form.users.splice(index, 1);
                }
                // function removeManager(index) {
                //     $scope.vm.form.users.splice(index, 1);
                // }
                // 담당부서 삭제
                function removeDepartment(index) {
@@ -386,10 +386,6 @@
                            return projectId;
                        })(),
                        issueTypeId : $scope.vm.form.issueTypeId,   //  이슈 유형 아이디
                        priorityId : $scope.vm.form.priorityId,    //  우선순위 아이디
                        severityId : $scope.vm.form.severityId,    //  중요도 아이디
                        issueStatusId : $scope.vm.form.issueStatusId,   //  이슈 상태 아이디
                        companyId : (function () {   //  프로젝트 아이디
                            var companyId = "";
@@ -418,6 +414,10 @@
                            return hostingId;
                        })(),
                        issueTypeId : $scope.vm.form.issueTypeId,   //  이슈 유형 아이디
                        priorityId : $scope.vm.form.priorityId,    //  우선순위 아이디
                        severityId : $scope.vm.form.severityId,    //  중요도 아이디
                        issueStatusId : $scope.vm.form.issueStatusId,   //  이슈 상태 아이디
                        userIds : (function () {
                            var userIds = [];
@@ -428,7 +428,6 @@
                            return userIds;
                        })(),
                        removeFiles : $scope.vm.form.removeFiles,
                        departmentIds : (function () {
                            var departmentIds = [];
@@ -438,6 +437,7 @@
                            return departmentIds;
                        })(),
                        removeFiles : $scope.vm.form.removeFiles,
                        attachedFileIds : (function () {
                            var attachedFileIds = [];
@@ -668,16 +668,41 @@
                            if (angular.isDefined(result.data.data)) {
                                $scope.vm.form.title = result.data.data.title;
                                $scope.vm.form.description = result.data.data.description;
                                $scope.vm.form.projects.push(result.data.data.projectVo);
                                $scope.vm.form.departments.push(result.data.data.departmentVo);
                                $scope.vm.projectName = result.data.data.projectVo.name;
                                $scope.vm.departmentName = result.data.data.departmentVo.departmentName;
                                $scope.vm.form.issueTypeId = String(result.data.data.issueTypeVo.id);
                                $scope.vm.form.priorityId = String(result.data.data.priorityVo.id);
                                $scope.vm.form.severityId = String(result.data.data.severityVo.id);
                                $scope.vm.form.issueStatusId = String(result.data.data.issueStatusVo.id);
                                $scope.vm.form.users = result.data.data.userVos;
                                /*$scope.vm.form.users = result.data.data.userVos;*/
                                $scope.vm.form.departments = result.data.data.departmentVos;
                                $scope.vm.form.files = result.data.data.attachedFileVos;
                                //
                                $scope.vm.form.companyFields.push(result.data.data.companyFieldVo);
                                $scope.vm.companyName = result.data.data.companyFieldVo.name;
                                $scope.vm.companyManager = result.data.data.companyFieldVo.manager;
                                $scope.vm.companyTel = result.data.data.companyFieldVo.tel;
                                $scope.vm.companyEmail = result.data.data.companyFieldVo.email;
                                $scope.vm.companyMemo = result.data.data.companyFieldVo.memo;
                                $scope.vm.form.ispFields.push(result.data.data.ispFieldVo);
                                $scope.vm.ispName = result.data.data.ispFieldVo.name;
                                $scope.vm.ispCode = result.data.data.ispFieldVo.code;
                                $scope.vm.ispManager = result.data.data.ispFieldVo.manager;
                                $scope.vm.ispTel = result.data.data.ispFieldVo.tel;
                                $scope.vm.ispEmail = result.data.data.ispFieldVo.email;
                                $scope.vm.ispMemo = result.data.data.ispFieldVo.memo;
                                $scope.vm.form.hostingFields.push(result.data.data.hostingFieldVo);
                                $scope.vm.hostingName = result.data.data.hostingFieldVo.name;
                                $scope.vm.hostingCode = result.data.data.hostingFieldVo.code;
                                $scope.vm.hostingManager = result.data.data.hostingFieldVo.manager;
                                $scope.vm.hostingTel = result.data.data.hostingFieldVo.tel;
                                $scope.vm.hostingEmail = result.data.data.hostingFieldVo.email;
                                $scope.vm.hostingMemo = result.data.data.hostingFieldVo.memo;
                                if ($rootScope.isDefined(result.data.data.startDate)) {
                                    $scope.vm.form.startCompleteDateRange = result.data.data.startDate + " ~ " + result.data.data.completeDate;
src/main/webapp/views/issue/issueModify.html
@@ -123,7 +123,7 @@
                <div class="col-lg-4">
                    <div class="form-group mb10">
                        <label class="issue-label"> <span translate="common.assigneeTeam">담당부서</span> </label>
                        <js-autocomplete-multi data-input-name="department"
                        <js-autocomplete-multi data-input-name="departments"
                                               selected-model="vm.form.departments"
                                               search="vm.departmentName"
                                               source="fn.getIssueDepartmentList(vm.departmentName, vm.form.departments)"