- 트리구조 데이터 없을때 데이터 없음 표시
- 이슈 추가 시 담당부서가 워크플로우 '생성' 상태의 담당부서가 선택되는 기능
| | |
| | | List<Map<String, Object>> findByDepartmentIds(UserCondition condition); |
| | | |
| | | List<Map<String, Object>> findProjectDepartment(DepartmentCondition departmentCondition); |
| | | |
| | | List<Map<String, Object>> findByIssueStatusId(DepartmentCondition condition); |
| | | } |
| | |
| | | import kr.wisestone.owl.domain.Workflow; |
| | | import kr.wisestone.owl.vo.IssueVo; |
| | | import kr.wisestone.owl.web.condition.ApiMonitorCondition; |
| | | import kr.wisestone.owl.web.condition.DepartmentCondition; |
| | | import kr.wisestone.owl.web.condition.IssueCondition; |
| | | import kr.wisestone.owl.web.condition.ProjectCondition; |
| | | import kr.wisestone.owl.web.form.EmailTemplateForm; |
| | |
| | | |
| | | void findPartner(Map<String, Object> resJsonData, Map<String, Object> params); |
| | | |
| | | void findReadyDepartments(Map<String, Object> resJsonData, DepartmentCondition make, Pageable pageable); |
| | | |
| | | void findApiIssue(ApiMonitorCondition apiMonitorCondition, Map<String, Object> resJsonData); |
| | | |
| | | void setCountDownIssues(List<IssueVo> issueVos); |
| | |
| | | resJsonData.put(Constants.RES_KEY_CONTENTS, usePartnerVos); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void findReadyDepartments(Map<String, Object> resJsonData, DepartmentCondition condition, Pageable pageable) { |
| | | Integer issueStatusId = 1; |
| | | condition.setIssueStatusId(issueStatusId); |
| | | |
| | | IssueType issueType = this.issueTypeService.getIssueType(condition.getIssueTypeId()); |
| | | if (issueType != null) { |
| | | condition.setWorkflowId(issueType.getWorkflow().getId()); |
| | | } |
| | | condition.setPage(pageable.getPageNumber() * pageable.getPageSize()); |
| | | condition.setPageSize(pageable.getPageSize()); |
| | | |
| | | List<Map<String, Object>> departmentVos = this.departmentMapper.findByIssueStatusId(condition); |
| | | resJsonData.put(Constants.RES_KEY_CONTENTS, departmentVos); |
| | | } |
| | | } |
| | |
| | | private List<Long> departmentIds = Lists.newArrayList(); |
| | | |
| | | private Long issueTypeId; |
| | | private Integer issueStatusId; |
| | | private Long workflowId; |
| | | |
| | | private Integer Page; |
| | | private Integer PageSize; |
| | |
| | | |
| | | if (MapUtil.getStrings(departmentConditions, "excludeIds") != null) { |
| | | condition.setExcludeIds(MapUtil.getLongs(departmentConditions, "excludeIds")); |
| | | } |
| | | |
| | | if (MapUtil.getLong(departmentConditions, "issueTypeId") != null) { |
| | | condition.setIssueTypeId(MapUtil.getLong(departmentConditions, "issueTypeId")); |
| | | } |
| | | |
| | | return condition; |
| | |
| | | public void setIssueTypeId(Long issueTypeId) { |
| | | this.issueTypeId = issueTypeId; |
| | | } |
| | | |
| | | public Integer getIssueStatusId() { |
| | | return issueStatusId; |
| | | } |
| | | |
| | | public void setIssueStatusId(Integer issueStatusId) { |
| | | this.issueStatusId = issueStatusId; |
| | | } |
| | | |
| | | public Long getWorkflowId() { |
| | | return workflowId; |
| | | } |
| | | |
| | | public void setWorkflowId(Long workflowId) { |
| | | this.workflowId = workflowId; |
| | | } |
| | | } |
| | |
| | | import kr.wisestone.owl.service.IssueService; |
| | | import kr.wisestone.owl.util.ConvertUtil; |
| | | import kr.wisestone.owl.web.condition.ApiMonitorCondition; |
| | | import kr.wisestone.owl.web.condition.DepartmentCondition; |
| | | import kr.wisestone.owl.web.condition.IssueCondition; |
| | | import kr.wisestone.owl.web.form.EmailTemplateForm; |
| | | import kr.wisestone.owl.web.form.IssueForm; |
| | |
| | | return this.setSuccessMessage(resJsonData); |
| | | } |
| | | |
| | | // 파트너 목록 조회 |
| | | @RequestMapping(value = "/issue/findReadyDepartments", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) |
| | | public |
| | | @ResponseBody |
| | | Map<String, Object> findReadyDepartments(@RequestBody Map<String, Map<String, Object>> params) { |
| | | Map<String, Object> resJsonData = new HashMap<>(); |
| | | Pageable pageable = this.pageUtil.convertPageable(this.getPageVo(params)); |
| | | |
| | | this.issueService.findReadyDepartments(resJsonData, DepartmentCondition.make(params.get(Constants.REQ_KEY_CONTENT)), pageable); |
| | | |
| | | return this.setSuccessMessage(resJsonData); |
| | | } |
| | | |
| | | // 이슈 상세 조회 |
| | | @RequestMapping(value = "/issue/detail", produces = MediaType.APPLICATION_JSON_VALUE) |
| | | public |
| | |
| | | FROM |
| | | department d |
| | | WHERE 1=1 |
| | | <if test="departmentName != '' and departmentName != null"> |
| | | <if test="departmentName != null and departmentName != ''"> |
| | | AND d.department_name like CONCAT('%',#{departmentName},'%') |
| | | </if> |
| | | <if test="id != '' and id != null"> |
| | | <if test="id != null and id != ''"> |
| | | AND d.id like CONCAT('%',#{id},'%') |
| | | </if> |
| | | <choose> |
| | |
| | | where p.id = #{projectId}; |
| | | </select> |
| | | |
| | | <select id="findByIssueStatusId" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.DepartmentCondition"> |
| | | SELECT |
| | | d.id as id, |
| | | d.department_name as departmentName |
| | | FROM |
| | | department d |
| | | INNER JOIN workflow_department wd ON wd.department_id = d.id |
| | | WHERE 1=1 |
| | | <if test="issueStatusId != null and issueStatusId != ''"> |
| | | AND wd.issue_status_id = #{issueStatusId} |
| | | </if> |
| | | <if test="workflowId != null and workflowId != ''"> |
| | | AND wd.workflow_Id = #{workflowId} |
| | | </if> |
| | | <choose> |
| | | <when test="excludeIds != null and excludeIds.size != 0"> |
| | | AND d.id NOT IN |
| | | <foreach collection="excludeIds" item="item" index="index" separator="," open="(" close=")"> |
| | | #{item} |
| | | </foreach> |
| | | </when> |
| | | </choose> |
| | | <if test="pageSize != '' and pageSize != null"> |
| | | limit #{pageSize} offset #{page}; |
| | | </if> |
| | | </select> |
| | | |
| | | |
| | | </mapper> |
| | |
| | | <div> |
| | | <table class="table table-striped table-layout-fixed" ng-class="{ 'width768' : !detailView }" bindonce> |
| | | <tr ng-if="fn.getResponseData().length == 0"> |
| | | <td colspan="{{tableConfigs.length}}"> |
| | | <span translate="common.noData">데이터가 없습니다.</span> |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | <ul class="ml-1 pl-1 tree"> |
| | | <li ng-repeat="row in fn.getResponseData()"> |
| | | <ul class=""> |
| | |
| | | setIssueTypeTemplate : setIssueTypeTemplate, // 이슈 유형 템플릿 적용하기 |
| | | startExecute : startExecute, // 컨트롤 로딩시 처음으로 시작되는 함수 |
| | | containsPartner : containsPartner, |
| | | getPartners : getPartners |
| | | getPartners : getPartners, |
| | | getDepartments : getDepartments, |
| | | }; |
| | | |
| | | $scope.vm = { |
| | |
| | | attachedFiles : [], // 섬머노트로 파일 업로드를 할 경우 서버에서 pk를 따고 issue id와 연동 작업이 필요하다. |
| | | startCompleteDateRange : "", // 시작일 ~ 종료일 |
| | | detectingDateRange : "", // 탐지일 |
| | | issueCustomFields : [] // 이슈에서 사용되는 사용자 정의 필드 |
| | | issueCustomFields : [], // 이슈에서 사용되는 사용자 정의 필드 |
| | | issueStatusId: "" |
| | | }, |
| | | infiniteAdd : false, // 연속 생성 |
| | | projectName : "", // 프로젝트 명 검색 |
| | |
| | | $scope.vm.partnerVos = result.data.data; |
| | | } |
| | | }); |
| | | } |
| | | |
| | | function getDepartments() { |
| | | if($scope.vm.form.issueTypeId === ""){ |
| | | $scope.vm.form.issueTypeId = $rootScope.issueTypeMenu.id |
| | | } |
| | | var content = { |
| | | issueTypeId : $scope.vm.form.issueTypeId, |
| | | }; |
| | | Issue.findReadyDepartments($resourceProvider.getContent( |
| | | content, |
| | | $resourceProvider.getPageContent(0, 1))).then(function (result) { |
| | | if (result.data.message.status === "success") { |
| | | angular.forEach(result.data.data, function (department) { |
| | | department.byName = department.departmentName; |
| | | $scope.vm.form.departments.push(department); |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | } |
| | | |
| | |
| | | getIssueTypes : $scope.fn.getIssueTypes(), |
| | | getPriorities : $scope.fn.getPriorities(), |
| | | getSeverities : $scope.fn.getSeverities(), |
| | | getPartners : $scope.fn.getPartners() |
| | | getPartners : $scope.fn.getPartners(), |
| | | getDepartments : $scope.fn.getDepartments() |
| | | }; |
| | | $q.all(promises).then(function (results) { |
| | | // 현재 프로젝트 설정 |
| | |
| | | return response; |
| | | }); |
| | | }, |
| | | findReadyDepartments : function (conditions) { |
| | | return $http.post("issue/findReadyDepartments", conditions).then(function (response) { |
| | | $log.debug("워크플로우의 생성 상태의 담당부서 목록 데이터 : ", response); |
| | | return response; |
| | | }); |
| | | }, |
| | | add : function (conditions) { |
| | | conditions.url = "issue/add"; |
| | | return $upload.upload(conditions).progress(function (evt) { |