1
0
Fork 0

fix: 생산계획 테이블 editable 수정

`실적에 해당하는 행은 수정 불가`
This commit is contained in:
sychoi 2024-04-30 15:18:24 +09:00
parent a4f95dd24a
commit 366cef22cd
1 changed files with 91 additions and 290 deletions

View File

@ -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);
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 = 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"] = "그룹";
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;
})
// console.log(temp);
let tempGRP = {};
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;
})
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);
const sumObjItem = {};
const sumObjQty = {};
const 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);
if(makingITEM !==undefined){
makingITEM.forEach(obj => {
Object.keys(obj).forEach(key => {
sumObjItem[key] = obj[key];
});
});
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 });
}
makingQTY.forEach(obj => {
Object.keys(obj).forEach(key => {
sumObjQty[key] = obj[key];
});
});
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)
makingPRD.forEach(obj => {
Object.keys(obj).forEach(key => {
sumObjPrd[key] = obj[key];
});
});
// console.log(Object.values(group));
return newArr;
arr.push(sumObjItem);
arr.push(sumObjQty);
arr.push(sumObjPrd);
}
}
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,
});