|
|
@@ -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,
|