Index: arms/html/analysisResource/content-container.html =================================================================== diff -u -r9417989facba42fb2010b87030b6d99f3ddf609e -r52224a2be2a827e5005f29e3bacb3856a09d7441 --- arms/html/analysisResource/content-container.html (.../content-container.html) (revision 9417989facba42fb2010b87030b6d99f3ddf609e) +++ arms/html/analysisResource/content-container.html (.../content-container.html) (revision 52224a2be2a827e5005f29e3bacb3856a09d7441) @@ -363,9 +363,15 @@ - 네번째 박스 - + 담당자별 요구사항 및 연결이슈 항목별 상세 +
{ $("#"+targetId).html(""); }); - sub_targets.forEach((targetId) => { $("#"+targetId).html(""); }); + chartInstance.forEach((chart) => chart.dispose()); + chartInstance =[]; + resourceSet.clear(); } + function getDetailCharts(pdservice_id, pdServiceVersionLinks, mailAddressList) { - let facDic = [ + let mailList = []; + let mailStr =""; + let searchMap = [ { "field" : "priority.priority_name.keyword", "reqId" : "req-priority-bar", "subId" :"subtask-priority-bar"}, { "field" : "status.status_name.keyword", "reqId" : "req-status-bar", "subId" :"subtask-status-bar"}, { "field" : "issuetype.issuetype_name.keyword", "reqId" : "req-issuetype-bar", "subId" :"subtask-issuetype-bar"}, { "field" : "resolution.resolution_name.keyword", "reqId" : "req-resolution-bar", "subId" :"subtask-resolution-bar"} ]; + resourceSet.add(mailAddressList); - facDic.forEach( + resourceSet.forEach((e)=>{mailList.push(e)}); + if(mailList.length == 1) { + mailStr = mailList[0]; + } else { + for (let cnt = 0; cnt < mailList.length; cnt++) { + if(cnt !== mailList.length-1) { + mailStr += mailList +","; + } else { + mailStr += mailList; + } + + } + } + searchMap.forEach( (target, index) => { - drawChartsPerPersion(pdservice_id,pdServiceVersionLinks,mailAddressList, target["field"], target["reqId"], target["subId"]); + drawChartsPerPerson(pdservice_id,pdServiceVersionLinks,mailStr, target["field"], target["reqId"], target["subId"]); } ) } -function drawChartsPerPersion(pdservice_id, pdServiceVersionLinks, mailAddressList, targetField, targetReqId, targetSubtaskId) { + +function drawChartsPerPerson(pdservice_id, pdServiceVersionLinks, mailAddressList, targetField, targetReqId, targetSubtaskId) { let _url = "/auth-user/api/arms/analysis/resource/normal-versionAndMail-filter/"+pdservice_id; - console.log('isReq,'+targetField); $.ajax({ url: _url, type: "GET", @@ -601,74 +590,108 @@ progress: true, statusCode: { 200: function (data) { - console.log("=== === === getReqAndIssueDetailPerPersion 시작=== === ===") - console.log(data); - let set1 = new Set(); - let set2 = new Set(); + let set_req = new Set(); + let set_subtask = new Set(); + //y축 좌표 let yAxisDataArr_req =[]; let yAxisDataArr_subtask = []; - + //담당자 데이터 - 담당자별 name,type,data -> map 이 들어있는 배열 let seriesArr_req = []; let seriesArr_subtask = []; - let dic_1 = { - name: "", - type: "bar", - data: [] - }; + + let totalMap_req = []; //담당자별 이슈항목의 필드(k)-개수(v) map 이 들어있는 배열 + let totalMap_subtask = []; + let searchDepth1 = data["검색결과"]["group_by_assignee.assignee_emailAddress.keyword"]; if (searchDepth1.length !== 0) { for (let i = 0; i { - set1.add(target["필드명"]); - seriesDic_req["data"].push(target["개수"]); + let searchDepth2 = searchDepth1_sub[j]["하위검색결과"]["group_by_"+targetField]; + searchDepth2.forEach((target, index) => { + set_req.add(target["필드명"]); + map_req.set(target["필드명"],target["개수"]); }); } } + if (searchDepth1_sub[j]["필드명"] === "false") { //연결이슈 let subTaskCnt = searchDepth1_sub[j]["개수"]; // 연결이슈 개수 if (subTaskCnt !== 0) { let priorityArr = searchDepth1_sub[j]["하위검색결과"]["group_by_"+targetField]; priorityArr.forEach((target, index) => { - set2.add(target["필드명"]); - seriesDic_subtask["data"].push(target["개수"]); + set_subtask.add(target["필드명"]); + map_subtask.set(target["필드명"],target["개수"]); }); } } } } - seriesArr_req.push(seriesDic_req); - seriesArr_subtask.push(seriesDic_subtask); - } + seriesArr_req.push(seriesMap_req); + seriesArr_subtask.push(seriesMap_subtask); + totalMap_req.push(map_req); + totalMap_subtask.push(map_subtask); + }//per Person } - //setToList - set1.forEach((e)=>{yAxisDataArr_req.push(e)}); - set2.forEach((e)=>{yAxisDataArr_subtask.push(e)}); + //setToList - 담당자별 이슈항목 필드의 중복제거 배열 + set_req.forEach((e)=>{yAxisDataArr_req.push(e)}); + set_subtask.forEach((e)=>{yAxisDataArr_subtask.push(e)}); + + //totalMap_req; + //seriesArr_req; // 담당자별 name,type,data -> map 이 들어있는 배열 + + // 차트에 넣을 담당자별 data 를 넣어주기 위해 사용. + for (var idx1 = 0; idx1 < totalMap_req.length; idx1++) { + let refinedDataFromYAxis_req = new Array(yAxisDataArr_req.length); // yAxis의 수로 배열만듦. + let refinedDataFromYAxis_subtask = new Array(yAxisDataArr_subtask.length); // yAxis의 수로 배열만듦. + + let personMap_req = totalMap_req[idx1]; + let personMap_subtask = totalMap_subtask[idx1]; + + for(let idx2 = 0; idx2