Index: arms/js/analysisCost.js =================================================================== diff -u -r99e4ce9983ecbaf635751da844bc4e381559367c -rfdf7a744e5f0bcc1348227702ba8c23d636d000b --- arms/js/analysisCost.js (.../analysisCost.js) (revision 99e4ce9983ecbaf635751da844bc4e381559367c) +++ arms/js/analysisCost.js (.../analysisCost.js) (revision fdf7a744e5f0bcc1348227702ba8c23d636d000b) @@ -436,6 +436,12 @@ function 버전별_요구사항별_인력정보가져오기(pdServiceLink, pdServiceVersionLinks) { + + $(".spinner").html( + '로딩 ' + + "요구사항별 인력정보를 조회 중 입니다..." + ); + const url = new UrlBuilder() .setBaseUrl('/auth-user/api/arms/analysis/cost/version-req-assignees') // .setBaseUrl('/auth-user/api/arms/analysis/cost/all-assignees') @@ -452,6 +458,7 @@ contentType: "application/json;charset=UTF-8", dataType: "json", progress: true, + async: false, statusCode: { 200: function(apiResponse) { console.log(" [ analysisCost :: 버전별_요구사항별_인력정보가져오기 ] :: response data -> "); @@ -655,7 +662,8 @@ } function 비용분석계산버튼() { - $("#cost-analysis-calculation").on('click', function() { + $("#cost-analysis-calculation").on('click', async function() { + //spinnerSettingWithText("", "비용분석 계산 중 입니다..."); if (!selectedPdServiceId || !selectedVersionId) { jError("제품(서비스), 버전을 선택해주세요."); @@ -702,15 +710,19 @@ .setBaseUrl("/auth-user/api/arms/reqState/complete-keyword") .build(); - Promise.all([ - $.ajax({ url: url, type: "GET", dataType: "json" }), - $.ajax({ url: url2, type: "GET", dataType: "json" }), - $.ajax({ url: completeKeywordUrl, type: "GET", dataType: "json" }) - ]).then(function([data1, data2, data3]) { + try { + $(".spinner").html( + " 비용분석계산 API 실행 중입니다..." + ); + const data1 = await $.ajax({ url: url, type: "GET", dataType: "json" }); console.log("[ analysisCost :: 비용분석계산 API 1 ] :: data1 => "); console.log(data1); + + const data2 = await $.ajax({ url: url2, type: "GET", dataType: "json" }); console.log("[ analysisCost :: 비용분석계산 API 2 ] :: data2 => "); console.log(data2); + + const data3 = await $.ajax({ url: completeKeywordUrl, type: "GET", dataType: "json" }); console.log("[ analysisCost :: 비용분석계산 완료 요구사항 키워드 ] :: data3 => "); console.log(data3); @@ -723,68 +735,55 @@ console.log(버전_요구사항_담당자); console.log(전체담당자목록); - ///////////////////////////////////////////////////////////////////// ////////////////////////// 비용 분석 계산 ///////////////////////////// ///////////////////////////////////////////////////////////////////// - Object.values(요구사항전체목록).forEach((요구사항) => { + for (const 요구사항 of Object.values(요구사항전체목록)) { // 요구사항 전체목록을 반복문 돌기 및 요구사항별 단가 초기화 요구사항.요구사항금액 = 0; // 해당 요구사항이 멀티 버전일 수 있으니 버전목록을 가져옴 let 요구사항이포함된버전목록 = JSON.parse(요구사항.c_req_pdservice_versionset_link); // 요구사항의 버전목록을 반복문 돌기 - 요구사항이포함된버전목록.forEach((버전) => { + for (const 버전 of 요구사항이포함된버전목록) { // 해당 버전에 요구사항 키 목록을 가져옴 let 버전_요구사항_키목록 = 요구사항별_키목록[버전]; // 버전의 요구사항 목록 유무 확인 - if (버전_요구사항_키목록 == null) { - } else { + if (버전_요구사항_키목록 != null) { // 있을 시 계산, 버전과 요구사항 c_id로 해당 요구사항이 가진 키목록 데이터 가져오기 let 요구사항_키목록 = 버전_요구사항_키목록[요구사항.c_id]; // 요구사항 키 목록 유무 확인 - if (요구사항_키목록 == null) { - // console.log("버전 -> " + 버전 + "\n요구사항 -> " +요구사항.c_id); - } else { + if (요구사항_키목록 != null) { // 있을 시 키목록을 반목문 돌기 - 요구사항_키목록.forEach((요구사항키) => { - + for (const 요구사항키 of 요구사항_키목록) { // 키 별 담당자목록 조회를 위한 버전_요구사항_담당자 중 버전 유무 확인 let 요구사항_담당자목록 = 버전_요구사항_담당자[버전]; - if (요구사항_담당자목록 == null) { - - } else { + if (요구사항_담당자목록 != null) { // 있으면 버전_요구사항_담당자 중 담당자목록 유무 확인 let 담당자목록 = 요구사항_담당자목록[요구사항키.c_issue_key]; - if (담당자목록 == null) { - // console.log("요구사항 키 -> " + 요구사항키.c_issue_key + "n\요구사항_담당자목록 -> " +요구사항.c_id); - } else { - // console.log("요구사항 키 -> " + 요구사항키.c_issue_key + "\n담당자 -> " + JSON.stringify(담당자목록)); - + if (담당자목록 != null) { // 있으면 담당자목록을 반목문 돌기 - Object.entries(담당자목록).forEach(([key, value]) => { - + for (const [key, value] of Object.entries(담당자목록)) { // 요구사항의 비용 계산을 위한 날짜 카운팅 ****** 수정필요(정책) ****** // 요구사항 단가 계산 및 인력 성과 계산 등 최종비용분석계산(key, 요구사항, 버전, 요구사항키, data3); - }); + } } } - }); + } } } - }); - }); + } + } data2.requirement = 요구사항전체목록; $("#req-cost-analysis-chart").height("500px"); 요구사항비용분석차트(data2); - $("#manpower-analysis-chart").height("500px"); 인력별_연봉대비_성과차트(전체담당자목록); @@ -797,12 +796,10 @@ $("#version-stack-container").height("500px"); 버전소모비용스택차트(); - - - }).catch(function(error) { + } catch (error) { console.log('Error:', error); jError("비용 분석 계산 중 에러가 발생했습니다."); - }); + } }); } @@ -1611,6 +1608,9 @@ if (!isValid) { jError("연봉 데이터는 숫자만 입력해야하며, 값이 존재해야 합니다."); } else { + $(".spinner").html( + " 연봉 데이터 업데이트 중입니다..." + ); $.ajax({ url: "/auth-user/api/arms/salaries", type: "PUT",