Index: arms/js/analysisCost.js =================================================================== diff -u -rbbe7996f51005b3c97da43b6cac2d40445aa66ad -rdea7e16de99c47fa1dd03fd772c5a8f833d20ed0 --- arms/js/analysisCost.js (.../analysisCost.js) (revision bbe7996f51005b3c97da43b6cac2d40445aa66ad) +++ arms/js/analysisCost.js (.../analysisCost.js) (revision dea7e16de99c47fa1dd03fd772c5a8f833d20ed0) @@ -57,10 +57,7 @@ "../reference/jquery-plugins/d3-5.16.0/d3.min.js", // 생성한 차트 import "js/analysis/topmenu/basicRadar.js", - "js/analysis/topmenu/topMenu.js", - - //CirclePacking with d3 Chart - "js/analysis/resource/chart/circularPackingChart.js" + "js/analysis/topmenu/topMenu.js" ], [ "../reference/jquery-plugins/dataTables-1.10.16/media/css/jquery.dataTables_lightblue4.css", @@ -185,9 +182,6 @@ // 요구사항 및 연결이슈 통계 getReqAndLinkedIssueData(selectedPdServiceId, selectedVersionId); - // Circular Packing with D3 차트 - getReqStatusAndAssignees(selectedPdServiceId, selectedVersionId); - 담당자목록_조회(); //요구사항 현황 데이터 테이블 로드 // console.log(" ============ makeVersionMultiSelectBox ============= "); @@ -227,8 +221,6 @@ selectedVersionId = pdServiceVersionIds.join(","); // 요구사항 및 연결이슈 통계 getReqAndLinkedIssueData(selectedPdServiceId, selectedVersionId); - // Circular Packing with D3 차트 - getReqStatusAndAssignees(selectedPdServiceId, selectedVersionId); // 투자 대비 소모 비용 차트 compareCostsChart(selectedPdServiceId, selectedVersionId); @@ -793,79 +785,6 @@ return year + "-" + month + "-" + day; } -///////////////////////////////////////////////////////// -// Circular Packing Chart -///////////////////////////////////////////////////////// -function getReqStatusAndAssignees(pdServiceLink, pdServiceVersionLinks) { - - const url = new UrlBuilder() - .setBaseUrl("/auth-user/api/arms/analysis/scope/req-status-and-reqInvolved-unique-assignees") - .addQueryParam("요구_사항.isReqType","REQUIREMENT") - .addQueryParam("요구_사항.pdServiceLink", selectedPdServiceId) - .addQueryParam("요구_사항.pdServiceVersionLinks", selectedVersionId) - .addQueryParam('요구_사항.메인그룹필드', "pdServiceVersion") - .addQueryParam('요구_사항.컨텐츠보기여부', false) - .addQueryParam('요구_사항.크기', 10000) - .addQueryParam('요구_사항.하위그룹필드들', "key,assignee.assignee_emailAddress.keyword") - .addQueryParam('요구_사항.하위크기', 10000) - .addQueryParam("하위_이슈_사항.isReqType","ISSUE") - .addQueryParam("하위_이슈_사항.pdServiceLink", selectedPdServiceId) - .addQueryParam("하위_이슈_사항.pdServiceVersionLinks", selectedVersionId) - .addQueryParam('하위_이슈_사항.메인그룹필드', "parentReqKey") - .addQueryParam('하위_이슈_사항.컨텐츠보기여부', false) - .addQueryParam('하위_이슈_사항.크기', 10000) - .addQueryParam('하위_이슈_사항.하위그룹필드들', "assignee.assignee_emailAddress.keyword") - .addQueryParam('하위_이슈_사항.하위크기', 10000) - .build(); - - $.ajax({ - url: url, - type: "GET", - contentType: "application/json;charset=UTF-8", - dataType: "json", - progress: true, - statusCode: { - 200: function (result) { - console.log("[ analysisScope :: getReqStatusAndAssignees ] :: result"); - console.log(result); - let pdServiceName; - pdServiceListData.forEach(elements => { - if (elements["pdServiceId"] === +pdServiceLink) { - pdServiceName = elements["pdServiceName"]; - } - }); - let dataObject = {}; - let issueStatusSet = new Set(); - let issueStatusList = []; - if (result.length > 0) { - for (let i = 0; i < result.length; i++) { - // 버전이름 가져오기 - let versionName =""; - for (let j = 0; j < versionListData.length; j++) { - if(result[i]["제품_서비스_버전"] === versionListData[j]["c_id"]){ - versionName = versionListData[j]["c_title"].replaceAll(".","_"); - break; - } - } - let verSubObject = {}; - result[i]["요구사항들"].forEach((element) => { - // 작업자수가 0이 아닌 요구 사항만 (담당자 배정된 요구사항만) - if (element["작업자수"] !== 0) { - verSubObject[element["요구_사항_번호"]] = - {"$count" : element["작업자수"], "$status" : element["요구_사항_상태"]}; - issueStatusSet.add(element["요구_사항_상태"]); - } - }); - dataObject[versionName] = verSubObject; - } - } - issueStatusSet.forEach(e=>issueStatusList.push(e)); - drawCircularPacking("circularPacking",pdServiceName,dataObject, issueStatusList); - } - } - }); -} - function chord(data) { const $container = document.getElementById("circular_sankey"); const $chart = makeChart(data); Index: arms/js/analysisScope.js =================================================================== diff -u -r06e382be7ea02603ec324deb2e4da4518b5743c9 -rdea7e16de99c47fa1dd03fd772c5a8f833d20ed0 --- arms/js/analysisScope.js (.../analysisScope.js) (revision 06e382be7ea02603ec324deb2e4da4518b5743c9) +++ arms/js/analysisScope.js (.../analysisScope.js) (revision dea7e16de99c47fa1dd03fd772c5a8f833d20ed0) @@ -182,6 +182,8 @@ // 요구사항 및 연결이슈 통계 getReqAndLinkedIssueData(selectedPdServiceId, selectedVersionId); + // Circular Packing with D3 차트 + getReqStatusAndAssignees(selectedPdServiceId, versionTag); // 네트워크 차트 statisticsMonitor($("#selected_pdService").val(), selectedVersionId); @@ -227,11 +229,12 @@ console.log("[ analysisScope :: bind_VersionData_By_PdService ] :: versionTag"); 수치_초기화(); + console.log(pdServiceVersionIds); selectedVersionId = pdServiceVersionIds.join(","); // 요구사항 및 연결이슈 통계 getReqAndLinkedIssueData(selectedPdServiceId, selectedVersionId); // Circular Packing with D3 차트 - getReqStatusAndAssignees(selectedPdServiceId, selectedVersionId); + getReqStatusAndAssignees(selectedPdServiceId, pdServiceVersionIds); // 네트워크 차트 statisticsMonitor($("#selected_pdService").val(), selectedVersionId); getRelationJiraIssueByPdServiceAndVersions($("#selected_pdService").val(), selectedVersionId); @@ -1126,31 +1129,34 @@ ///////////////////////////////////////////////////////// function getReqStatusAndAssignees(pdServiceLink, pdServiceVersionLinks) { - const url = new UrlBuilder() - .setBaseUrl("/auth-user/api/arms/analysis/scope/req-status-and-reqInvolved-unique-assignees") - .addQueryParam("요구_사항.isReqType","REQUIREMENT") - .addQueryParam("요구_사항.pdServiceLink", selectedPdServiceId) - .addQueryParam("요구_사항.pdServiceVersionLinks", selectedVersionId) - .addQueryParam('요구_사항.메인그룹필드', "pdServiceVersion") - .addQueryParam('요구_사항.컨텐츠보기여부', false) - .addQueryParam('요구_사항.크기', 10000) - .addQueryParam('요구_사항.하위그룹필드들', "key,assignee.assignee_emailAddress.keyword") - .addQueryParam('요구_사항.하위크기', 10000) - .addQueryParam("하위_이슈_사항.isReqType","ISSUE") - .addQueryParam("하위_이슈_사항.pdServiceLink", selectedPdServiceId) - .addQueryParam("하위_이슈_사항.pdServiceVersionLinks", selectedVersionId) - .addQueryParam('하위_이슈_사항.메인그룹필드', "parentReqKey") - .addQueryParam('하위_이슈_사항.컨텐츠보기여부', false) - .addQueryParam('하위_이슈_사항.크기', 10000) - .addQueryParam('하위_이슈_사항.하위그룹필드들', "assignee.assignee_emailAddress.keyword") - .addQueryParam('하위_이슈_사항.하위크기', 10000) - .build(); - + let paramData = { + "요구_사항" : { + 'isReqType': 'REQUIREMENT', + 'pdServiceLink' : selectedPdServiceId, + 'pdServiceVersionLinks' : pdServiceVersionLinks,//[16,17,18] + '메인그룹필드' : 'pdServiceVersion', + '컨텐츠보기여부' : false, + '크기' : 10000, + '하위그룹필드들' : ['key','assignee.assignee_emailAddress.keyword'], + '하위크기' : 10000 + }, + "하위_이슈_사항" : { + 'isReqType': 'ISSUE', + 'pdServiceLink': selectedPdServiceId, + 'pdServiceVersionLinks': pdServiceVersionLinks, + '메인그룹필드': 'parentReqKey', + '컨텐츠보기여부': false, + '크기': 10000, + '하위그룹필드들': ['assignee.assignee_emailAddress.keyword'],//'[assignee.assignee_emailAddress.keyword]', + '하위크기': 10000 + } + } $.ajax({ - url: url, - type: "GET", + url: "/auth-user/api/arms/analysis/scope/req-status-and-reqInvolved-unique-assignees", + type: "POST", contentType: "application/json;charset=UTF-8", dataType: "json", + data: JSON.stringify(paramData), progress: true, statusCode: { 200: function (result) {