diff --git a/home_dir/www/ksvc/prod/reg_plan/reg_plan.js b/home_dir/www/ksvc/prod/reg_plan/reg_plan.js index 3a80826..4090e62 100644 --- a/home_dir/www/ksvc/prod/reg_plan/reg_plan.js +++ b/home_dir/www/ksvc/prod/reg_plan/reg_plan.js @@ -15,296 +15,98 @@ class Tb_main_class { this.removeBtn = this.container.querySelector(".remove-btn"); } + + + + + + manageData(data) { - // let tempGRP = new Object(); - // let tempQTY = new Object(); - let tempArr = new Array(); + // console.log(data); - // for(let key in result){ - // - // for (let i = 0; i <= result[key].length-1; i++) { - // let temp = result[key][i]; - // let tempGRP = {}; - // tempGRP['WRK_TEAM'] = temp.WRK_TEAM // 설비팀 - // tempGRP['PLAN_FACLT_CD'] = temp.PLAN_FACLT_CD // 설비 코드 - // tempGRP['PLAN_SEQ'] = temp.PLAN_SEQ // group id로 쓸 변수 - // let date = temp.PLAN_DT.date.slice(0, 10); - // console.log(tempGRP['PLAN_SEQ']); - // - // if (temp?.AM_PLAN_QTY !== null) { - // tempGRP[`AM_PLAN_QTY_${date}`] = temp.ITEM_GRP - // } - // if (temp?.PM_PLAN_QTY !== null) { - // tempGRP[`PM_PLAN_QTY_${date}`] = temp.ITEM_GRP - // } - // if (temp?.NI_PLAN_QTY !== null) { - // tempGRP[`NI_PLAN_QTY_${date}`] = temp.ITEM_GRP - // } - // tempGRP['SEPER_ID'] = 'GRP'; - // tempGRP['SEPER'] = '그룹'; - // tempArr.push(tempGRP); - // - // } - // - // - // } + let arr = new Array(); - // const newObj2 = {}; - // for (let i = 0; i < data.data.length; i++) { - // let temp = data.data[i] - // // console.log(temp); - // let tempGRP = {}; - // let num = 0; - // let date = temp.PLAN_DT.date.slice(0, 10); - // tempGRP['WRK_TEAM'] = temp.WRK_TEAM - // tempGRP['PLAN_FACLT_CD'] = temp.PLAN_FACLT_CD - // tempGRP['PLAN_SEQ'] = temp.PLAN_SEQ - // tempGRP['DATE'] = date - // // if (temp?.AM_PLAN_QTY !== null) { - // // tempQTY[`AM_PLAN_QTY_${date}`] = temp.AM_PLAN_QTY - // // } - // // if (temp?.PM_PLAN_QTY !== null) { - // // tempQTY[`PM_PLAN_QTY_${date}`] = temp.PM_PLAN_QTY - // // } - // // if (temp?.NI_PLAN_QTY !== null) { - // // tempQTY[`NI_PLAN_QTY_${date}`] = temp.NI_PLAN_QTY - // // } - // if (temp?.AM_PLAN_QTY !== null) { - // tempGRP[`AM_PLAN_QTY`] = temp.AM_PLAN_QTY - // } - // if (temp?.PM_PLAN_QTY !== null) { - // tempGRP[`PM_PLAN_QTY`] = temp.PM_PLAN_QTY - // } - // // if (temp?.NI_PLAN_QTY !== null) { - // tempGRP[`NI_PLAN_QTY`] = temp.NI_PLAN_QTY - // // } - // tempGRP['SEPER_ID'] = 'PLAN'; - // tempGRP['SEPER'] = '계획'; - // console.log(tempGRP); - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // tempArr2.push(tempGRP); - // } + const result = Object.groupBy(data.data, ({ SEQ_NO }) => SEQ_NO) - // console.log(mergeObj(tempArr[0], tempArr[1], tempArr[2])); - for (let i = 0; i < data.data.length; i++) { - let temp = data.data[i]; - // console.log(temp); - let tempQTY = {}; - let date = temp.PLAN_DT.date.slice(0, 10); - tempQTY["WRK_TEAM"] = temp.WRK_TEAM; - tempQTY["PLAN_FACLT_CD"] = temp.PLAN_FACLT_CD; - tempQTY["PLAN_SEQ"] = temp.PLAN_SEQ; - tempQTY["DATE"] = date; - // if (temp?.AM_PLAN_QTY !== null) { - // tempQTY[`AM_PLAN_QTY_${date}`] = temp.AM_PLAN_QTY - // } - // if (temp?.PM_PLAN_QTY !== null) { - // tempQTY[`PM_PLAN_QTY_${date}`] = temp.PM_PLAN_QTY - // } - // if (temp?.NI_PLAN_QTY !== null) { - // tempQTY[`NI_PLAN_QTY_${date}`] = temp.NI_PLAN_QTY - // } - if (temp?.AM_PLAN_QTY !== null) { - tempQTY[`AM_PLAN_QTY`] = temp.ITEM_GRP; - } - if (temp?.PM_PLAN_QTY !== null) { - tempQTY[`PM_PLAN_QTY`] = temp.ITEM_GRP; - } - if (temp?.NI_PLAN_QTY !== null) { - tempQTY[`NI_PLAN_QTY`] = temp.ITEM_GRP; - } - tempQTY["SEPER_ID"] = "GRP"; - tempQTY["SEPER"] = "그룹"; - // console.log(temp); - let tempGRP = {}; - tempGRP["WRK_TEAM"] = temp.WRK_TEAM; - tempGRP["PLAN_FACLT_CD"] = temp.PLAN_FACLT_CD; - tempGRP["PLAN_SEQ"] = temp.PLAN_SEQ; - tempGRP["DATE"] = date; - // if (temp?.AM_PLAN_QTY !== null) { - // tempQTY[`AM_PLAN_QTY_${date}`] = temp.AM_PLAN_QTY - // } - // if (temp?.PM_PLAN_QTY !== null) { - // tempQTY[`PM_PLAN_QTY_${date}`] = temp.PM_PLAN_QTY - // } - // if (temp?.NI_PLAN_QTY !== null) { - // tempQTY[`NI_PLAN_QTY_${date}`] = temp.NI_PLAN_QTY - // } - if (temp?.AM_PLAN_QTY !== null) { - tempGRP[`AM_PLAN_QTY`] = temp.AM_PLAN_QTY; - } - if (temp?.PM_PLAN_QTY !== null) { - tempGRP[`PM_PLAN_QTY`] = temp.PM_PLAN_QTY; - } - if (temp?.NI_PLAN_QTY !== null) { - tempGRP[`NI_PLAN_QTY`] = temp.NI_PLAN_QTY; - } - tempGRP["SEPER_ID"] = "PLAN"; - tempGRP["SEPER"] = "계획"; - // console.log(tempGRP); + for(let i=0; i<=Object.values(result).length; i++){ + // console.log(Object.values(result)[]); + let makingITEM = Object.values(result)[i]?.map(function(rst){ + let tempITEM ={}; + let date = rst.PLAN_DT.date.slice(0, 10); + let arr = new Array(); + tempITEM['SEQ_NO'] = rst.SEQ_NO + tempITEM['PLAN_FACLT_CD'] = rst.PLAN_FACLT_CD + tempITEM['WRK_TEAM'] = rst.WRK_TEAM + tempITEM['SEPER'] = "그룹" + tempITEM[`AM_PLAN_QTY_${date}`] = rst.AMITEM + tempITEM[`PM_PLAN_QTY_${date}`] = rst.PMITEM + tempITEM[`NI_PLAN_QTY_${date}`] = rst.NIITEM + return tempITEM; + }) + + let makingQTY = Object.values(result)[i]?.map(function(rst){ + let tempQTY ={}; + let date = rst.PLAN_DT.date.slice(0, 10); + let arr = new Array(); + tempQTY['SEQ_NO'] = rst.SEQ_NO + tempQTY['SEPER'] = "계획" + tempQTY['PLAN_FACLT_CD'] = rst.PLAN_FACLT_CD + tempQTY['WRK_TEAM'] = rst.WRK_TEAM + tempQTY[`AM_PLAN_QTY_${date}`] = rst.AMQTY + tempQTY[`PM_PLAN_QTY_${date}`] = rst.PMQTY + tempQTY[`NI_PLAN_QTY_${date}`] = rst.NIQTY + return tempQTY; + }) + + let makingPRD = Object.values(result)[i]?.map(function(rst){ + let tempPRD ={}; + let date = rst.PLAN_DT.date.slice(0, 10); + let arr = new Array(); + tempPRD['SEQ_NO'] = rst.SEQ_NO + tempPRD['SEPER'] = "실적" + tempPRD['PLAN_FACLT_CD'] = rst.PLAN_FACLT_CD + tempPRD['WRK_TEAM'] = rst.WRK_TEAM + tempPRD[`AM_PLAN_QTY_${date}`] = rst.AMPRD + tempPRD[`PM_PLAN_QTY_${date}`] = rst.PMPRD + tempPRD[`NI_PLAN_QTY_${date}`] = rst.NIPRD + return tempPRD; + }) + + const sumObjItem = {}; + const sumObjQty = {}; + const sumObjPrd = {}; + + + if(makingITEM !==undefined){ + makingITEM.forEach(obj => { + Object.keys(obj).forEach(key => { + sumObjItem[key] = obj[key]; + }); + }); + + makingQTY.forEach(obj => { + Object.keys(obj).forEach(key => { + sumObjQty[key] = obj[key]; + }); + }); + + makingPRD.forEach(obj => { + Object.keys(obj).forEach(key => { + sumObjPrd[key] = obj[key]; + }); + }); + + + arr.push(sumObjItem); + arr.push(sumObjQty); + arr.push(sumObjPrd); + } - tempArr.push(tempQTY); - tempArr.push(tempGRP); } - // console.log(tempArr); - let makingData = Object.groupBy(tempArr, ({ SEPER_ID }) => SEPER_ID); - const objects = [ - { id: 1, value: 10 }, - { id: 2, value: 20 }, - { id: 1, value: 30 }, - { id: 3, value: 40 }, - ]; - - const mergedObjects3 = []; - - makingData["PLAN"].map((obj) => { - const existingObjIndex = mergedObjects3.findIndex( - (item) => item.PLAN_SEQ === obj.PLAN_SEQ - ); - if (existingObjIndex !== -1) { - if (obj.AM_PLAN_QTY !== undefined) { - mergedObjects3[existingObjIndex].AM_PLAN_QTY = obj.AM_PLAN_QTY; - } - if (obj.PM_PLAN_QTY !== undefined) { - mergedObjects3[existingObjIndex].PM_PLAN_QTY = obj.PM_PLAN_QTY; - } - if (obj.NI_PLAN_QTY !== undefined) { - mergedObjects3[existingObjIndex].NI_PLAN_QTY = obj.NI_PLAN_QTY; - } - - // mergedObjects3[existingObjIndex].AM_PLAN_QTY += obj.AM_PLAN_QTY; - // mergedObjects3[existingObjIndex].PM_PLAN_QTY += obj.PM_PLAN_QTY; - // mergedObjects3[existingObjIndex].NI_PLAN_QTY += obj.NI_PLAN_QTY; - } else { - mergedObjects3.push({ ...obj }); - } - console.log(obj); - }); - - console.log(mergedObjects3); - - const mergedObjects4 = []; - makingData["GRP"].map((obj) => { - const existingObjIndex = mergedObjects4.findIndex( - (item) => item.PLAN_SEQ === obj.PLAN_SEQ - ); - if (existingObjIndex !== -1) { - // let temp_PM = 'PM_PLAN_QTY_'+obj.DATE - // let temp_NI = 'NI_PLAN_QTY_'+obj.DATE - // let temp_AM = 'AM_PLAN_QTY_'+obj.DATE - - if (obj.AM_PLAN_QTY !== undefined) { - mergedObjects4[existingObjIndex].AM_PLAN_QTY = obj.AM_PLAN_QTY; - } - if (obj.PM_PLAN_QTY !== undefined) { - mergedObjects4[existingObjIndex].PM_PLAN_QTY = obj.PM_PLAN_QTY; - } - if (obj.NI_PLAN_QTY !== undefined) { - mergedObjects4[existingObjIndex].NI_PLAN_QTY = obj.NI_PLAN_QTY; - } - - // mergedObjects3[existingObjIndex].AM_PLAN_QTY += obj.AM_PLAN_QTY; - // mergedObjects3[existingObjIndex].PM_PLAN_QTY += obj.PM_PLAN_QTY; - // mergedObjects3[existingObjIndex].NI_PLAN_QTY += obj.NI_PLAN_QTY; - } else { - mergedObjects4.push({ ...obj }); - } - }); - console.log(mergedObjects4); - - // const mergedObjects2 = makingData['GRP'].reduce((acc, obj) => { - // const existingObj = acc.find(item => item.PLAN_SEQ === obj.PLAN_SEQ); - // let temp_PM = 'PM_PLAN_QTY_'+obj.DATE - // let temp_NI = 'NI_PLAN_QTY_'+obj.DATE - // let temp_AM = 'AM_PLAN_QTY_'+obj.DATE - // - // - // - // - // if (existingObj!== undefined) { - // - // if(existingObj[temp_AM]!== undefined){ - // existingObj[temp_AM] = obj.AM_PLAN_QTY; - // } - // if(obj.PM_PLAN_QTY !== undefined){ - // existingObj[temp_PM]= obj.PM_PLAN_QTY; - // - // } - // if(obj.NI_PLAN_QTY !== undefined){ - // existingObj[temp_NI]= obj.NI_PLAN_QTY; - // } - // - // } else { - // acc.push({ ...obj }); - // } - // return acc; - // }, []); - // - // // console.log(mergedObjects2); - // - // const mergedObjects = makingData['PLAN'].reduce((acc, obj) => { - // const existingObj = acc.find(item => item.PLAN_SEQ === obj.PLAN_SEQ); - // let temp_AM = 'AM_PLAN_QTY_'+obj.DATE - // let temp_PM = 'PM_PLAN_QTY_'+obj.DATE - // let temp_NI = 'NI_PLAN_QTY_'+obj.DATE - // // existingObj[temp_AM] = 1; - // if(existingObj !== undefined ){ - // // console.log(existingObj); - // if(obj.AM_PLAN_QTY !== undefined){ - // - // // console.log(obj.AM_PLAN_QTY); - // } - // - // } - // - // // console.log(existingObj[temp_AM]); - // if (existingObj !== undefined ) { - // - // if(obj.AM_PLAN_QTY !== undefined){ - // // console.log('asdf'); - // existingObj[temp_AM]= obj.AM_PLAN_QTY; - // - // } - // if(obj.PM_PLAN_QTY !== undefined){ - // existingObj[temp_PM]= obj.PM_PLAN_QTY; - // - // } - // if(obj.NI_PLAN_QTY !== undefined){ - // existingObj[temp_NI]= obj.NI_PLAN_QTY; - // } - // - // } else { - // acc.push({ ...obj }); - // } - // return acc; - // }, []); - // - // // doubleArr.push(mergedObjects, mergedObjects2); - // - let newArr = mergedObjects4.concat(mergedObjects3); - // let group = Object.groupBy(newArr,({PLAN_SEQ}) => PLAN_SEQ) - - // console.log(Object.values(group)); - - return newArr; + return arr; } /* @@ -318,7 +120,7 @@ class Tb_main_class { let data = new Object(); for (let i = 0; i < arr.length; i++) { let temp = [arr[i]]; - console.log(); + if (document.getElementById(arr[i]).type == "checkbox") { data[temp] = document.getElementById(temp).checked ? "Y" : "N"; } else { @@ -332,8 +134,7 @@ class Tb_main_class { data: data, success: (data) => { - console.log(data.code); - console.table(data.data); + if (data.code) { //DB에서 받아온 데이터 가공하는 manageData 함수 참조 this.tbList.setData(this.manageData(data)); @@ -487,7 +288,7 @@ class Tb_main_class { * @function _STATUS_ 값이 있는 데이터만 추려서 없으면 생성, 있으면 수정하기 */ putData() { - console.log(this.tbList.getData()); + // 기본키 중복 확인 및 방지 // _STATUS_ 있는 데이터만 들고와서 PUT하기 } @@ -510,7 +311,7 @@ class Tb_main_class { let month = ("0" + (date.getMonth() + 1)).slice(-2); // Adding leading zero let day = ("0" + date.getDate()).slice(-2); // Adding leading zero let formattedDate = `${month}월 ${day}일`; - console.log(formattedDate); + columns.push({ title: formattedDate, columns: [ @@ -521,7 +322,7 @@ class Tb_main_class { editor: "input", width: 50, editable: (cell) => { - return cell.getRow().getPosition() / 3 !== 1; + return cell.getRow().getPosition() % 3 !== 0; }, }, { @@ -531,7 +332,7 @@ class Tb_main_class { editor: "input", width: 50, editable: (cell) => { - return cell.getRow().getPosition() / 3 !== 1; + return cell.getRow().getPosition() % 3 !== 0; }, }, { @@ -541,7 +342,7 @@ class Tb_main_class { width: 50, editor: "input", editable: (cell) => { - return cell.getRow().getPosition() / 3 !== 1; + return cell.getRow().getPosition() % 3 !== 0; }, }, ], @@ -583,7 +384,7 @@ class Tb_main_class { // { groupId: this.lastGroupId, SEPER: "실적" }, // ], //기본 데이터 columns: fields, //컬럼 설정 - groupBy: "PLAN_SEQ", + groupBy: "SEQ_NO", columnDefaults: commonFieldData, groupStartOpen: true, });