|
|
@@ -13,6 +13,19 @@ class Service{
|
|
|
this.qufei = [];
|
|
|
this.qufeiEntry = null;
|
|
|
this.jiagongcai = [];
|
|
|
+ this.mapper={
|
|
|
+ '99090513' : ['汽车式起重机 50t', 2838.92],
|
|
|
+ '99090509' : ['汽车式起重机 25t', 1174.12],
|
|
|
+ '99090111': ['履带式起重机 提升质量50t', 1755.71],
|
|
|
+ '99090108': ['履带式起重机 提升质量25t', 904.68],
|
|
|
+ '99030306': ['静力压桩机 压力1200kN', 1508.23],
|
|
|
+ '99030124': ['轨道式柴油打桩机 冲击质量2.5t', 1143.91],
|
|
|
+ '99030106' : ['履带式柴油打桩机 冲击质量7t', 2545.82],
|
|
|
+ '10450518' : ['纯铝箔 140×140', 0.35],
|
|
|
+ '10450508' : ['纯银箔 93.3×93.3', 4.5],
|
|
|
+ '04050101' : ['道碴 40~80mm', 47],
|
|
|
+ '04034103' : ['石屑(米砂)', 40]
|
|
|
+ };
|
|
|
|
|
|
}
|
|
|
|
|
|
@@ -1446,20 +1459,63 @@ async generateQingdanTuijian(name, bh, bt, bm) {
|
|
|
de['dercj'] = copy(de['rcjdg']);
|
|
|
for(let j = 1; j < de['rcjdg'].length; j++) {
|
|
|
let origin = Number(de['rcjdg'][j][10]);
|
|
|
+ let bianhao_huan = '';
|
|
|
+ let name_huan = '';
|
|
|
+ let new_jia = 0;
|
|
|
for(let i = 0; i < de['fuzhu'].length; i++) {
|
|
|
- let selected = de['fuzhu'][i];
|
|
|
+ let selected = de['fuzhu'][i];//selected is 结构化的处理信息
|
|
|
let target = selected[0];
|
|
|
|
|
|
|
|
|
- if (match_target(de['rcjdg'][j][1], target)) {
|
|
|
- if (selected[2] == '系数') {
|
|
|
- origin = origin * Number(selected[3]);
|
|
|
+ if (match_target(de['rcjdg'][j][1], de['rcjdg'][j][2], target, selected[1])) {
|
|
|
+ if (selected[2] == '系数' || selected[2] == '商品砼系数' || selected[2] == '除此机械外') {
|
|
|
+ origin = origin * (Number(selected[3]) ** Number(selected[5]));
|
|
|
|
|
|
- } else if (selected[2] == '含量') {
|
|
|
+ } else if (selected[2] == '含量' || selected[2] == '商品砼含量') {
|
|
|
origin = Number(selected[3]);
|
|
|
- } else if (selected[2] == '调整') {
|
|
|
- origin = origin + Number(selected[3]);
|
|
|
- } else {
|
|
|
+ } else if (selected[2] == '调整' || selected[2] == '商品砼调整') {
|
|
|
+ origin = origin + Number(selected[3]) * Number(selected[5]);
|
|
|
+ } else if (selected[2] == '调比') {
|
|
|
+ origin = origin + Number(selected[3]) * Number(selected[5]) / Number(100);
|
|
|
+ } else if (selected[2] == '次方') {
|
|
|
+ origin = origin * (Number(selected[3]) ** Number(selected[5]));
|
|
|
+ } else if (selected[2] == '叠加备注') {
|
|
|
+
|
|
|
+ } else if (selected[2] == '换机械系数') {
|
|
|
+ bianhao_huan = selected[4];
|
|
|
+ name_huan = this.mapper[bianhao_huan][0];
|
|
|
+ new_jia = this.mapper[bianhao_huan][1];
|
|
|
+ origin = origin * (Number(selected[3]) ** Number(selected[5]));
|
|
|
+ } else if (selected[2] == '换材料系数') {
|
|
|
+ bianhao_huan = selected[4];
|
|
|
+ name_huan = this.mapper[bianhao_huan][0];
|
|
|
+ new_jia = this.mapper[bianhao_huan][1];
|
|
|
+ origin = origin * (Number(selected[3]) ** Number(selected[5]));
|
|
|
+ } else if (selected[2] == '使用泵送') {
|
|
|
+ if (de['rcjdg'][j][2].includes('C20')) {
|
|
|
+ bianhao_huan = '80212103';
|
|
|
+ name_huan = '(C20泵送商品砼)';
|
|
|
+ new_jia = 342;
|
|
|
+ }
|
|
|
+ if (de['rcjdg'][j][2].includes('C30')) {
|
|
|
+ bianhao_huan = '80212105';
|
|
|
+ name_huan = '(C30泵送商品砼)';
|
|
|
+ new_jia = 362;
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if (selected[2] == '使用非泵送') {
|
|
|
+ if (de['rcjdg'][j][2].includes('C20')) {
|
|
|
+ bianhao_huan = '80212115';
|
|
|
+ name_huan = '(C20非泵送商品砼)';
|
|
|
+ new_jia = 333;
|
|
|
+ }
|
|
|
+ if (de['rcjdg'][j][2].includes('C30')) {
|
|
|
+ bianhao_huan = '80212117';
|
|
|
+ name_huan = '(C30非泵送商品砼)';
|
|
|
+ new_jia = 353;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
throw new Error('无法处理的附注'.concat(selected[2]));
|
|
|
}
|
|
|
|
|
|
@@ -1469,12 +1525,28 @@ async generateQingdanTuijian(name, bh, bt, bm) {
|
|
|
}
|
|
|
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];//编号
|
|
|
+
|
|
|
+ if (bianhao_huan == '') {
|
|
|
+ de['dercj'][j][1] = data[k][1];//编号
|
|
|
+ } else {
|
|
|
+ de['dercj'][j][1] = bianhao_huan;//编号
|
|
|
+ }
|
|
|
+ if (bianhao_huan == '') {
|
|
|
+ de['dercj'][j][2] = data[k][2];//名称
|
|
|
+ } else {
|
|
|
+ de['dercj'][j][1] = name_huan;//编号
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
+ if (new_jia > 0) {
|
|
|
+ de['dercj'][j][5] = new_jia;//jiage
|
|
|
+ } else {
|
|
|
+ de['dercj'][j][5] = de['rcjdg'][j][5];//单价
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
- de['dercj'][j][5] = de['rcjdg'][j][5];//单价
|
|
|
de['dercj'][j][10] = origin;
|
|
|
de['dercj'][j][11] = Number(de['dercj'][j][5]) * origin;
|
|
|
}
|
|
|
@@ -1661,20 +1733,63 @@ async generateQingdanTuijian(name, bh, bt, bm) {
|
|
|
de['dercj'] = copy(de['rcjdg']);
|
|
|
for(let j = 1; j < de['rcjdg'].length; j++) {
|
|
|
let origin = Number(de['rcjdg'][j][10]);
|
|
|
+ let bianhao_huan = '';
|
|
|
+ let name_huan = '';
|
|
|
+ let new_jia = 0;
|
|
|
for(let i = 0; i < de['fuzhu'].length; i++) {
|
|
|
let selected = de['fuzhu'][i];//selected is 结构化的处理信息
|
|
|
let target = selected[0];
|
|
|
|
|
|
|
|
|
- if (match_target(de['rcjdg'][j][1], target)) {
|
|
|
- if (selected[2] == '系数') {
|
|
|
- origin = origin * Number(selected[3]);
|
|
|
+ if (match_target(de['rcjdg'][j][1], de['rcjdg'][j][2], target, selected[1])) {
|
|
|
+ if (selected[2] == '系数' || selected[2] == '商品砼系数' || selected[2] == '除此机械外') {
|
|
|
+ origin = origin * (Number(selected[3]) ** Number(selected[5]));
|
|
|
|
|
|
- } else if (selected[2] == '含量') {
|
|
|
+ } else if (selected[2] == '含量' || selected[2] == '商品砼含量') {
|
|
|
origin = Number(selected[3]);
|
|
|
- } else if (selected[2] == '调整') {
|
|
|
- origin = origin + Number(selected[3]);
|
|
|
- } else {
|
|
|
+ } else if (selected[2] == '调整' || selected[2] == '商品砼调整') {
|
|
|
+ origin = origin + Number(selected[3]) * Number(selected[5]);
|
|
|
+ } else if (selected[2] == '调比') {
|
|
|
+ origin = origin + Number(selected[3]) * Number(selected[5]) / Number(100);
|
|
|
+ } else if (selected[2] == '次方') {
|
|
|
+ origin = origin * (Number(selected[3]) ** Number(selected[5]));
|
|
|
+ } else if (selected[2] == '叠加备注') {
|
|
|
+
|
|
|
+ } else if (selected[2] == '换机械系数') {
|
|
|
+ bianhao_huan = selected[4];
|
|
|
+ name_huan = this.mapper[bianhao_huan][0];
|
|
|
+ new_jia = this.mapper[bianhao_huan][1];
|
|
|
+ origin = origin * (Number(selected[3]) ** Number(selected[5]));
|
|
|
+ } else if (selected[2] == '换材料系数') {
|
|
|
+ bianhao_huan = selected[4];
|
|
|
+ name_huan = this.mapper[bianhao_huan][0];
|
|
|
+ new_jia = this.mapper[bianhao_huan][1];
|
|
|
+ origin = origin * (Number(selected[3]) ** Number(selected[5]));
|
|
|
+ } else if (selected[2] == '使用泵送') {
|
|
|
+ if (de['rcjdg'][j][2].includes('C20')) {
|
|
|
+ bianhao_huan = '80212103';
|
|
|
+ name_huan = '(C20泵送商品砼)';
|
|
|
+ new_jia = 342;
|
|
|
+ }
|
|
|
+ if (de['rcjdg'][j][2].includes('C30')) {
|
|
|
+ bianhao_huan = '80212105';
|
|
|
+ name_huan = '(C30泵送商品砼)';
|
|
|
+ new_jia = 362;
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if (selected[2] == '使用非泵送') {
|
|
|
+ if (de['rcjdg'][j][2].includes('C20')) {
|
|
|
+ bianhao_huan = '80212115';
|
|
|
+ name_huan = '(C20非泵送商品砼)';
|
|
|
+ new_jia = 333;
|
|
|
+ }
|
|
|
+ if (de['rcjdg'][j][2].includes('C30')) {
|
|
|
+ bianhao_huan = '80212117';
|
|
|
+ name_huan = '(C30非泵送商品砼)';
|
|
|
+ new_jia = 353;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
throw new Error('无法处理的附注'.concat(selected[2]));
|
|
|
}
|
|
|
|
|
|
@@ -1684,12 +1799,28 @@ async generateQingdanTuijian(name, bh, bt, bm) {
|
|
|
}
|
|
|
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];//编号
|
|
|
+
|
|
|
+ if (bianhao_huan == '') {
|
|
|
+ de['dercj'][j][1] = data[k][1];//编号
|
|
|
+ } else {
|
|
|
+ de['dercj'][j][1] = bianhao_huan;//编号
|
|
|
+ }
|
|
|
+ if (bianhao_huan == '') {
|
|
|
+ de['dercj'][j][2] = data[k][2];//名称
|
|
|
+ } else {
|
|
|
+ de['dercj'][j][1] = name_huan;//编号
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
+ if (new_jia > 0) {
|
|
|
+ de['dercj'][j][5] = new_jia;//jiage
|
|
|
+ } else {
|
|
|
+ de['dercj'][j][5] = de['rcjdg'][j][5];//单价
|
|
|
+ }
|
|
|
|
|
|
- de['dercj'][j][5] = de['rcjdg'][j][5];//单价
|
|
|
+
|
|
|
de['dercj'][j][10] = origin;
|
|
|
de['dercj'][j][11] = Number(de['dercj'][j][5]) * origin;
|
|
|
}
|