1
0
Fork 0
HANYANG_MES/show_dir/www/ksvc/order/condition/c.js

135 lines
4.1 KiB
JavaScript

/*
const mcTime2 = function( _this ){
let sdm = {}; //SPEC DIAMETER
let ptime = {}; //공정별 시간
Tb_funcs_Spec.tblList.getData().forEach(v => {
sdm['S.'+v['SPEC_ITEM']] = v['DIAMETER']||0;
});
_this.calc_rst = JSON.parse(JSON.stringify(_this.calc));
mcLoop(_this.calc_rst, 'CALC_FEED', sdm);
mcLoop(_this.calc_rst, 'CALC_TIME', sdm);
Object.keys(Tb_funcs_Route.calc_rst).forEach( k => {
ptime[Tb_funcs_Route.calc_rst[k].OP_CD] = (ptime[Tb_funcs_Route.calc_rst[k].OP_CD]||0) + Number(Tb_funcs_Route.calc_rst[k].CALC_TIME) * (Number(Tb_funcs_Route.calc_rst[k].PROC_CNT)||1) + Number(Tb_funcs_Route.calc_rst[k].EXTRA_TM);
} );
console.log(ptime);
//Object.keys(ptime).forEach( v => {
let udata = Tb_funcs_Route.tblList.getData();
udata.forEach( r => {
//r['STD_TACT_TM'] = ptime[r['OP_CD']]?(Math.round(ptime[r['OP_CD']]*1000)/1000):'';
r['STD_TACT_TM'] = ptime[r['OP_CD']]?Math.round(ptime[r['OP_CD']]):'';
} );
Tb_funcs_Route.tblList.replaceData(udata);
//} );
//console.log(_this.tblList.getData());
//return false;
}
const mcLoop = function(calc, fld, sdmrow) {
let loop_en = calc.length;
let max_loop = 10;
while( loop_en > 0 && max_loop > 0 ){
loop_en = calc.length;
calc.forEach(v => {
let calf = (v[fld]||0).toString();
[...calf.matchAll(/{(.*?)}/g)].forEach( fv => {
if( typeof(sdmrow[fv[1]]) !== "undefined" ){
v[fld] = v[fld].replaceAll(fv[0],sdmrow[fv[1]]||0);
}else{
switch( fv[1] ){
case "MO":
v[fld] = v[fld].replaceAll(fv[0],v['EXTRA_OD']||0);
break;
case "MI":
v[fld] = v[fld].replaceAll(fv[0],v['EXTRA_ID']||0);
break;
case "MT":
v[fld] = v[fld].replaceAll(fv[0],v['EXTRA_TH']||0);
break;
}
}
switch( v['OP_GRP'] ){
case "FIN": //정삭 기준
if( sdmrow['S.OD'] ){
let feed = getFeed('TURN', v['SHAPE_TYPE'], sdmrow['S.OD'], 'F');
v[fld] = v[fld].replaceAll("{FEED}",feed||1);
v.FEED = feed;
}
break;
case "AAS": //투공 기준
if( sdmrow['S.IT'] ){
let feed = getFeed('HOLE', v['SHAPE_TYPE'], sdmrow['S.IT'], '');
v[fld] = v[fld].replaceAll("{FEED}",feed||1);
v.FEED = feed;
}
break;
default : //기타 황삭 기준
if( sdmrow['S.OD'] ){
let feed = getFeed('TURN', v['SHAPE_TYPE'], sdmrow['S.OD'], '');
v[fld] = v[fld].replaceAll("{FEED}",feed||1);
v.VC = v[fld];
v.FEED = feed;
}
}
});
if( [...calf.matchAll(/{(.*?)}/g)].length === 0 ){
if( fld === "CALC_TIME" ){
if( !v['evtdone'] ){
v[fld] = eval(v[fld])// * Number(v['PROC_CNT']||1) + Number(v['EXTRA_TM']||0);
v['evtdone'] = true;
sdmrow['T.'+v.PART_CD] = v[fld];
}
}else{
if( !v['evddone'] ){
v[fld] = eval(v[fld]);
v['evddone'] = true;
sdmrow['P.'+v.PART_CD] = v[fld];
}
}
loop_en--;
}else{
//console.log(calf.matchAll(/{(.*?)}/g));
}
});
//console.log(sdmrow);
max_loop--;
//console.log(max_loop);
}
}
const getFeed = function(cond, shape, val, mode){
let fdata = varsProcCond[cond][shape].filter( bf => Number(val) >= Number(bf.START_SIZE) && Number(val) <= Number(bf.END_SIZE) );
if( fdata.length ){
fdata = fdata[0];
switch( cond ){
case "HOLE":
if( mode ){
return [fdata.HOLE_TURN_ST,HOLE_TURN_ED];
}else{
return fdata.HOLE_FEED;
}
case "RATE":
//추후에
return false;
case "SHARE":
//추후에
return false;
case "TURN":
if( mode == "F" ){
return fdata.FINISH_FEED;
}else{
return fdata.ROUGH_FEED;
}
case "WTAMT":
//후추에
return false;
}
}else{
return false;
}
}
*/