Xiaopeng Zhang 5 сар өмнө
parent
commit
897728df5f
1 өөрчлөгдсөн 141 нэмэгдсэн , 30 устгасан
  1. 141 30
      src/Service.js

+ 141 - 30
src/Service.js

@@ -1047,9 +1047,9 @@ async generateQingdanTuijian(name, bh, bt, bm) {
             qd['利润'] += Number(qd['_children'][i]['数量']) * Number(qd['_children'][i]['利润']);   
         }
         //处理安装费用
-        console.log(qd["_children"].length);
+        //console.log(qd["_children"].length);
         for(let i = 0; i < qd["_children"].length; i++) {
-            console.log(i);
+            //console.log(i);
             if (qd["_children"][i]['azfytag'].length > 0){
                 let tag = qd["_children"][i]['azfytag'];
                 if (tag[0] == '人工费') {
@@ -1576,17 +1576,31 @@ async generateQingdanTuijian(name, bh, bt, bm) {
         let de = qd["_children"].filter(x=>x['key'] == row)[0];
         if (de.hasOwnProperty("rcjdg")) {//新数据
             for (let i = 1; i < de['rcjdg'].length; i++) {
-                de['rcjdg'][i][5] = data[i][5];//更新单价,底稿的单价不是很需要同步(在人才机汇总修改价格)
-                /****ToDo 更新其他字段 */
-                if (de['rcjdg'][i][2] == data[i][2]) {//更新名称
+                for (let j = 1; j < data.length; j++) {
+                    if (de['rcjdg'][i][16] == data[j][16]) {
+                        de['rcjdg'][i][5] = data[j][5];//更新单价,底稿的单价不是很需要同步(在人才机汇总修改价格)
+                        /****ToDo 更新其他字段 */
+                        if (data[j][2].includes('(湿拌砂浆)')) {
+                            let index = data[j][2].indexOf("(湿拌砂浆)");
+                            data[j][2] = data[j][2].substring(0, index);
+                        }
+                        if (data[j][2].includes('(干拌(混)砂浆)')) {
+                            let index = data[j][2].indexOf("(干拌(混)砂浆)");
+                            data[j][2] = data[j][2].substring(0, index);
+                        }
+                        if (de['rcjdg'][i][2] == data[j][2]) {//更新名称
                     
-                } else {
-                    huan = true;
+                        } else {
+                            
+                             huan = true;
+                        }
+                    }
                 }
+                
             }
            
             if (de['fuzhuEnable'] && de.hasOwnProperty('fuzhu')) {//没强行改过含量
-                
+                de['dercj'] = copy(de['rcjdg']);
                 for(let j = 1; j < de['rcjdg'].length; j++) {
                     let origin = Number(de['rcjdg'][j][10]);
                     for(let i = 0; i < de['fuzhu'].length; i++) {
@@ -1610,19 +1624,29 @@ async generateQingdanTuijian(name, bh, bt, bm) {
                         
 
                     }
-                    de['dercj'][j][2] = data[j][2];//名称
-                    de['dercj'][j][1] = data[j][1];//编号
+                    for (let k = 0; k < data.length; k++) {
+                        if (data[k][16] == de['dercj'][j][16]) {
+                            de['dercj'][j][2] = data[k][2];//名称
+                            de['dercj'][j][1] = data[k][1];//编号
+                        }
+                    }
+
                     de['dercj'][j][5] = de['rcjdg'][j][5];//单价
                     de['dercj'][j][10] =  origin;
                     de['dercj'][j][11] = Number(de['dercj'][j][5]) * origin;
                 }
 
             } else if (de['fuzhuEnable'] && !de.hasOwnProperty('fuzhu')) {
+                de['dercj'] = copy(de['rcjdg']);
                 for(let j = 1; j < de['rcjdg'].length; j++) {
                     let origin = Number(de['rcjdg'][j][10]);
                     
-                    de['dercj'][j][2] = data[j][2];//名称
-                    de['dercj'][j][1] = data[j][1];//编号
+                    for (let k = 0; k < data.length; k++) {
+                        if (data[k][16] == de['dercj'][j][16]) {
+                            de['dercj'][j][2] = data[k][2];//名称
+                            de['dercj'][j][1] = data[k][1];//编号
+                        }
+                    }
 
                     de['dercj'][j][5] = de['rcjdg'][j][5];
                     de['dercj'][j][10] =  origin;
@@ -1632,7 +1656,18 @@ async generateQingdanTuijian(name, bh, bt, bm) {
 
             else {
                 //强行改含量
-                de['dercj'] = copy(data);
+                de['dercj'] = copy(de['rcjdg']);
+                for(let j = 1; j < de['rcjdg'].length; j++) {
+                    for (let k = 0; k < data.length; k++) {
+                        if (data[k][16] == de['dercj'][j][16]) {
+                            de['dercj'][j][2] = data[k][2];//名称
+                            de['dercj'][j][1] = data[k][1];//编号
+                            de['dercj'][j][10] =  data[k][10];
+                            de['dercj'][j][11] = Number(de['dercj'][j][5]) * de['dercj'][j][10];
+
+                        }
+                    }
+                }
             }
         
 
@@ -1672,6 +1707,26 @@ async generateQingdanTuijian(name, bh, bt, bm) {
                         data[i][2] = data[i][2].concat('(湿拌砂浆)')
                     }
                 }
+                let flip = [];
+                for(let i = 1; i < data.length; i++) {
+                    
+                    if (data[i][17]=='true') {
+                        for (let j = 0; j < data[i][19].length; j++) {
+                            flip.push(data[i][19][j]);
+                        }
+                        data[i][17] = 'false';
+                    }
+                   
+                }
+                for(let i = 1; i < data.length; i++) {
+                    
+                    if (flip.includes(data[i][16])) {
+                        data[i][17] = 'true';
+                    }
+                   
+                }
+
+
 
             } else if (yuban.includes('2')) {
                 let origin = 0;
@@ -1689,9 +1744,26 @@ async generateQingdanTuijian(name, bh, bt, bm) {
                     data[i][10] = origin * 1.75;
                   }
                 }
-                data.push(['', 'S00001', '水', '', 't', '4.70', '', '', '2', 'false', (origin * 0.29).toString(), '', '','','','']);
-                data.push(['', 'JD0001', '其他机械费(电)', '', '度', '0.65', '', '', '3', 'false', (origin * 2.15).toString(), '', '','','','']);
-
+                data.push(['', 'S00001', '水', '', 't', '4.70', '', '', '2', 'false', (origin * 0.29).toString(), '', '','','','','', 'false', [], []]);
+                data.push(['', 'JD0001', '其他机械费(电)', '', '度', '0.65', '', '', '3', 'false', (origin * 2.15).toString(), '', '','','','', '', 'false', [], []]);
+                let flip = [];
+                for(let i = 1; i < data.length; i++) {
+                    
+                    if (data[i][17]=='true') {
+                        for (let j = 0; j < data[i][19].length; j++) {
+                            flip.push(data[i][19][j]);
+                        }
+                        data[i][17] = 'false';
+                    }
+                   
+                }
+                for(let i = 1; i < data.length; i++) {
+                    
+                    if (flip.includes(data[i][16])) {
+                        data[i][17] = 'true';
+                    }
+                   
+                }
 
 
 
@@ -1709,17 +1781,34 @@ async generateQingdanTuijian(name, bh, bt, bm) {
                     data[i][10] = origin * 1.75;
                   }
                 }
-                data.push(['', 'S00001', '水', '', 't', '4.70', '', '', '2', 'false', (origin * 0.29).toString(), '', '','','','']);
-                
+                data.push(['', 'S00001', '水', '', 't', '4.70', '', '', '2', 'false', (origin * 0.29).toString(), '', '','','','','', 'false', [], []]);
+                let flip = [];
+                for(let i = 1; i < data.length; i++) {
+                    
+                    if (data[i][17]=='true') {
+                        for (let j = 0; j < data[i][19].length; j++) {
+                            flip.push(data[i][19][j]);
+                        }
+                        data[i][17] = 'false';
+                    }
+                   
+                }
+                for(let i = 1; i < data.length; i++) {
+                    
+                    if (flip.includes(data[i][16])) {
+                        data[i][17] = 'true';
+                    }
+                   
+                }
 
             }
             de['dercj'] = copy(data);
         }
 
 
-        de['dercj'] = de['dercj'].filter(x=>x[1].includes('10000F'))//补充
+        de['dercj'] = de['dercj'].filter(x=>!x[1].includes('10000F'))//补充
         for(let i = 0; i < rcjbc.length; i++) {
-            de['dercj'].push(['', rcjbc[i]['人材机编码'], rcjbc[i]['名称'], rcjbc[i]['规格型号'], rcjbc[i]['单位'], rcjbc[i]['单价'], rcjbc[i]['产地'], rcjbc[i]['供应厂商'], rcjbc[i]['人材机类别'], rcjbc[i]['甲供标志'], rcjbc[i]['含量'], '', rcjbc[i]['暂估价标志'],rcjbc[i]['主要材料标志'],rcjbc[i]['主材标志'],rcjbc[i]['设备标志']]);
+            de['dercj'].push(['', rcjbc[i]['人材机编码'], rcjbc[i]['名称'], rcjbc[i]['规格型号'], rcjbc[i]['单位'], rcjbc[i]['单价'], rcjbc[i]['产地'], rcjbc[i]['供应厂商'], rcjbc[i]['人材机类别'], rcjbc[i]['甲供标志'], rcjbc[i]['含量'], '', rcjbc[i]['暂估价标志'],rcjbc[i]['主要材料标志'],rcjbc[i]['主材标志'],rcjbc[i]['设备标志'], '', 'false', [], []]);
         }
         data = copy(de['dercj']);
 
@@ -1727,6 +1816,9 @@ async generateQingdanTuijian(name, bh, bt, bm) {
         for(let i = 1; i < data.length; i++) {
             data[i][11] = Number(data[i][10]) * Number(data[i][5]);
         }
+        if (data[0].length > 17)
+        data = data.filter(x=>x[17]!='true').map(x=>[x[0], x[1], x[2], x[3], x[4], x[5], x[6], x[7], x[8], x[9], x[10], x[11], x[12], x[13], x[14], x[15], x[16]]);
+             
         let sum = 0;
         let rgf_sum = 0;
         let jxf_sum = 0;
@@ -2266,11 +2358,11 @@ async generateQingdanTuijian(name, bh, bt, bm) {
                 }
                 let qd = this.cache.filter(x=>x['key'] == row)[0];
                 let dercj = [["ID", "人材机编码", "名称", "规格型号", "单位", "单价", "产地", 
-                "供应厂商", "人材机类别", "甲供标志", "含量", "合价", "暂估价标志", "主要材料标志", "主材标志", "设备标志" ]];
+                "供应厂商", "人材机类别", "甲供标志", "含量", "合价", "暂估价标志", "主要材料标志", "主材标志", "设备标志", 'key', 'hidden', 'parent', 'children' ]];
                 for(let i = 0; i < res['rgde'].length; i++) {
                     dercj.push(['', res['rgde'][i]['CLBH'], res['rgde'][i]['CLMC'], '', res['rgde'][i]['JLDW'], 
                     res['rgde'][i]['YSJG'], '', '', '1', '', res['rgde'][i]['gr'], res['rgde'][i]['gf'],
-                    '', '', '', '' ]);
+                    '', '', '', '', uuidv4(), 'false', [],[] ]);
                 }
                 for(let i = 0; i < res['clde'].length; i++) {
                     let hit = false;
@@ -2285,23 +2377,42 @@ async generateQingdanTuijian(name, bh, bt, bm) {
                     if (hit) {
                         dercj.push(['', res['clde'][i]['CLBH'], res['clde'][i]['CLMC'], '', res['clde'][i]['JLDW'], 
                     jg, '', '', '2', 'true', res['clde'][i]['SL'], res['clde'][i]['HJ'],
-                    '', '', '', '' ]);
+                    '', '', '', '', uuidv4(), 'false', [], [] ]);
                     } else {
-                        dercj.push(['', res['clde'][i]['CLBH'], res['clde'][i]['CLMC'], '', res['clde'][i]['JLDW'], 
+                        if (res['clde'][i].hasOwnProperty('children') && res['clde'][i]['CLMC'].includes('砂浆')) {
+                            let parent = uuidv4();
+                            let children = [];
+                            let child_data = res['clde'][i]['children'];
+                            for(let j = 0; j < child_data.length; j++) {
+                                let id = uuidv4();
+                                children.push(id);
+                                dercj.push(['', child_data[j]['CLBH'], child_data[j]['CLMC'], '', child_data[j]['JLDW'], 
+                    child_data[j]['YSJG'], '', '', '2', 'false', child_data[j]['SL'], child_data[j]['HJ'],
+                    '', '', '', '', id, 'false', [parent], [] ]);
+                            }
+                            dercj.push(['', res['clde'][i]['CLBH'].toString(), res['clde'][i]['CLMC'], '', res['clde'][i]['JLDW'], 
+                    res['clde'][i]['YSJG'], '', '', '2', 'false', res['clde'][i]['SL'], res['clde'][i]['HJ'],
+                    '', '', '', '', parent, 'true', [], children ]);
+
+                        } else {
+                            dercj.push(['', res['clde'][i]['CLBH'].toString(), res['clde'][i]['CLMC'], '', res['clde'][i]['JLDW'], 
                     res['clde'][i]['YSJG'], '', '', '2', 'false', res['clde'][i]['SL'], res['clde'][i]['HJ'],
-                    '', '', '', '' ]);
+                    '', '', '', '', uuidv4(), 'false', [], [] ]);
+                        }
+                        
                     }
                     
                 }
                 for(let i = 0; i < res['jxde'].length; i++) {
                     dercj.push(['', res['jxde'][i]['jxbh'], res['jxde'][i]['jxmc'], '', res['jxde'][i]['DW'], 
                     res['jxde'][i]['tbdj'], '', '', '3', '', res['jxde'][i]['sl'], res['jxde'][i]['hj'],
-                    '', '', '', '' ]);
+                    '', '', '', '', uuidv4(), 'false', [], [] ]);
                 }
                 let newKey = uuidv4();
                 if (!qd.hasOwnProperty('_children')) {
                     qd["_children"] = [];
                 }
+                let newdercj = copy(dercj).filter(x=>x[17]!='true').map(x=>[x[0], x[1], x[2], x[3], x[4], x[5], x[6], x[7], x[8], x[9], x[10], x[11], x[12], x[13], x[14], x[15], x[16]]);
                 qd["_children"].push({
                     '操作': '',
                     '序号': null,
@@ -2324,8 +2435,8 @@ async generateQingdanTuijian(name, bh, bt, bm) {
                     '暂估价': null,
                     '综合人工工日': null,
                     '备注': null,
-                    "dercj": dercj,
-                    'rcjdg': copy(dercj),
+                    "dercj": newdercj,
+                    'rcjdg': (dercj),
                     'key' :   newKey,
                     "fuzhuEnable": true,
                     'yuban': [],
@@ -2380,8 +2491,8 @@ async generateQingdanTuijian(name, bh, bt, bm) {
                 '综合人工工日': null,
                 '备注': null,
                 "dercj": [["ID", "人材机编码", "名称", "规格型号", "单位", "单价", "产地", 
-                "供应厂商", "人材机类别", "甲供标志", "含量", "合价", "暂估价标志", "主要材料标志", "主材标志", "设备标志" ],
-                   ['', bh, mingcheng, '', danwei, '', '', '', '2', '', '1', '', '',  '', '', '' ]
+                "供应厂商", "人材机类别", "甲供标志", "含量", "合价", "暂估价标志", "主要材料标志", "主材标志", "设备标志", 'key' ],
+                   ['', bh, mingcheng, '', danwei, '', '', '', '2', '', '1', '', '',  '', '', '', '' ]
                       ],
                 'key' :   uuidv4(),
                 "fuzhuEnable": false,