更新成果报表导出功能

This commit is contained in:
ForeverSmiYng 2026-03-09 14:35:47 +08:00
parent 8a15587d30
commit d1dda7f9fa
3 changed files with 444 additions and 136 deletions

View File

@ -737,6 +737,9 @@ async function generateTemplate(data) {
let ml_sheet = workbook.getWorksheet('目录'); let ml_sheet = workbook.getWorksheet('目录');
let yz01_sheet = workbook.getWorksheet('预总01表'); let yz01_sheet = workbook.getWorksheet('预总01表');
let f01_sheet = workbook.getWorksheet('辅01表'); let f01_sheet = workbook.getWorksheet('辅01表');
let f02_sheet = workbook.getWorksheet('辅02表');
let f03_sheet = workbook.getWorksheet('辅03表');
yz01_sheet.headerFooter.oddHeader = yz01_sheet.headerFooter.oddHeader.replace(/×××/g, data.name);
// 更新封面 // 更新封面
fm_sheet.getRow(2).getCell(1).value = data.name; fm_sheet.getRow(2).getCell(1).value = data.name;
@ -913,15 +916,15 @@ async function generateTemplate(data) {
fee: addNumbers(a.fee, toFiniteNumber(b?.fee)) fee: addNumbers(a.fee, toFiniteNumber(b?.fee))
}; };
}, { person_num: 0, work_day: 0, fee: 0 }); }, { person_num: 0, work_day: 0, fee: 0 });
sheet_4.getRow(3).getCell(4).value = sumObj.person_num; sheet_4.getRow(3).getCell(4).value = numberFormatter(sumObj.person_num, 0);
sheet_4.getRow(3).getCell(5).value = sumObj.work_day; sheet_4.getRow(3).getCell(5).value = numberFormatter(sumObj.work_day, 2);
sheet_4.getRow(3).getCell(6).value = sumObj.fee; sheet_4.getRow(3).getCell(6).value = numberFormatter(sumObj.fee, 2);
sheet_4_1.getRow(4).getCell(4).value = '/'; sheet_4_1.getRow(3).getCell(4).value = '/';
sheet_4_1.getRow(4).getCell(5).value = '/'; sheet_4_1.getRow(3).getCell(5).value = '/';
sheet_4_1.getRow(4).getCell(6).value = '/'; sheet_4_1.getRow(3).getCell(6).value = '/';
sheet_4_1.getRow(4).getCell(7).value = sumObj.person_num; sheet_4_1.getRow(3).getCell(7).value = numberFormatter(sumObj.person_num, 0);
sheet_4_1.getRow(4).getCell(8).value = sumObj.work_day; sheet_4_1.getRow(3).getCell(8).value = numberFormatter(sumObj.work_day, 2);
sheet_4_1.getRow(4).getCell(9).value = sumObj.fee sheet_4_1.getRow(3).getCell(9).value = numberFormatter(sumObj.fee, 2);
} }
if (ci.method5) { if (ci.method5) {
ml_sourceRows.push(ml_sheet.getRow(13)); ml_sourceRows.push(ml_sheet.getRow(13));
@ -929,7 +932,7 @@ async function generateTemplate(data) {
sheet_5.headerFooter.oddHeader = sheet_5.headerFooter.oddHeader.replace(/×××/g, ci.name).replace(/预 i-5 表/g, `${index + 1}-5 表`).replace(/第i合同/g, ci.name); sheet_5.headerFooter.oddHeader = sheet_5.headerFooter.oddHeader.replace(/×××/g, ci.name).replace(/预 i-5 表/g, `${index + 1}-5 表`).replace(/第i合同/g, ci.name);
sheet_5.getRow(3).getCell(4).value = '/'; sheet_5.getRow(3).getCell(4).value = '/';
sheet_5.getRow(3).getCell(5).value = '/'; sheet_5.getRow(3).getCell(5).value = '/';
sheet_5.getRow(3).getCell(6).value = (ci.method5.addtional?.reduce((a, b) => a + b.m5.fee, 0) || 0) + (ci.method5.reserve?.fee || 0); sheet_5.getRow(3).getCell(6).value = numberFormatter((ci.method5.addtional?.reduce((a, b) => a + b.m5.fee, 0) || 0) + (ci.method5.reserve?.fee || 0), 2);
} }
// 更新目录的第三部分 // 更新目录的第三部分
@ -976,35 +979,25 @@ async function generateTemplate(data) {
targetRow.getCell(2).value = serviceX.code; targetRow.getCell(2).value = serviceX.code;
targetRow.getCell(3).value = serviceX.name; targetRow.getCell(3).value = serviceX.name;
if (sobj.method1) { if (sobj.method1) {
targetRow.getCell(4).value = sobj.method1.fee; targetRow.getCell(4).value = numberFormatter(sobj.method1.fee, 2);
m1Sum += sobj.method1.fee; m1Sum += sobj.method1.fee;
} }
if (sobj.method2) { if (sobj.method2) {
targetRow.getCell(5).value = sobj.method2.fee; targetRow.getCell(5).value = numberFormatter(sobj.method2.fee, 2);
m2Sum += sobj.method2.fee; m2Sum += sobj.method2.fee;
} }
if (sobj.method3) { if (sobj.method3) {
targetRow.getCell(6).value = sobj.method3.fee; targetRow.getCell(6).value = numberFormatter(sobj.method3.fee, 2);
m3Sum += sobj.method3.fee; m3Sum += sobj.method3.fee;
} }
if (sobj.method4) { if (sobj.method4) {
targetRow.getCell(7).value = sobj.method4.fee; targetRow.getCell(7).value = numberFormatter(sobj.method4.fee, 2);
m4Sum += sobj.method4.fee; m4Sum += sobj.method4.fee;
} }
targetRow.getCell(8).value = sobj.fee; targetRow.getCell(8).value = numberFormatter(sobj.fee, 2);
serviceSum += sobj.fee; serviceSum += sobj.fee;
}); });
if (sobj.method1 || sobj.method2) { if (sobj.method1 || sobj.method2) {
let det1 = sobj.method1 ? sobj.method1.det.map(m => m.major) : [];
let det2 = sobj.method2 ? sobj.method2.det.map(m => m.major) : [];
let allDet = [...(new Set([...det1, ...det2]))].sort((a, b) => a - b).map(m => {
return {
major: m,
mth1: det1.includes(m) ? sobj.method1.det[det1.indexOf(m)] : null,
mth2: det2.includes(m) ? sobj.method2.det[det2.indexOf(m)] : null,
};
});
cusInsertRowFunc(4 + num_2, [sheet_2.getRow(4)], sheet_2, (targetRow) => { cusInsertRowFunc(4 + num_2, [sheet_2.getRow(4)], sheet_2, (targetRow) => {
targetRow.getCell(1).value = num_2++; targetRow.getCell(1).value = num_2++;
targetRow.getCell(2).value = serviceX.code; targetRow.getCell(2).value = serviceX.code;
@ -1014,36 +1007,171 @@ async function generateTemplate(data) {
targetRow.getCell(6).value = '/'; targetRow.getCell(6).value = '/';
targetRow.getCell(7).value = '/'; targetRow.getCell(7).value = '/';
if (sobj.method1) { if (sobj.method1) {
targetRow.getCell(8).value = sobj.method1.basicFee; targetRow.getCell(8).value = numberFormatter(sobj.method1.basicFee, 2);
targetRow.getCell(9).value = sobj.method1.fee; targetRow.getCell(9).value = numberFormatter(sobj.method1.fee, 2);
cusInsertRowFunc(4 + num_2_1, [sheet_2_1.getRow(4)], sheet_2_1, (targetRow) => { cusInsertRowFunc(4 + num_2_1, [sheet_2_1.getRow(4)], sheet_2_1, (targetRow) => {
targetRow.getCell(1).value = num_2_1++; targetRow.getCell(1).value = num_2_1++;
targetRow.getCell(2).value = serviceX.code; targetRow.getCell(2).value = serviceX.code;
targetRow.getCell(3).value = serviceX.name; targetRow.getCell(3).value = serviceX.name;
targetRow.getCell(4).value = sobj.method1.cost; targetRow.getCell(4).value = numberFormatter(sobj.method1.cost, 2);
targetRow.getCell(5).value = '/'; targetRow.getCell(5).value = '/';
targetRow.getCell(6).value = sobj.method1.basicFee_basic; targetRow.getCell(6).value = numberFormatter(sobj.method1.basicFee_basic, 2);
targetRow.getCell(7).value = '/'; targetRow.getCell(7).value = '/';
targetRow.getCell(8).value = sobj.method1.basicFee_optional; targetRow.getCell(8).value = numberFormatter(sobj.method1.basicFee_optional, 2);
targetRow.getCell(9).value = sobj.method1.basicFee; targetRow.getCell(9).value = numberFormatter(sobj.method1.basicFee, 2);
}); });
} }
if (sobj.method2) { if (sobj.method2) {
targetRow.getCell(10).value = sobj.method2.basicFee; targetRow.getCell(10).value = numberFormatter(sobj.method2.basicFee, 2);
targetRow.getCell(11).value = sobj.method2.fee; targetRow.getCell(11).value = numberFormatter(sobj.method2.fee, 2);
cusInsertRowFunc(4 + num_2_2, [sheet_2_2.getRow(4)], sheet_2_2, (targetRow) => { cusInsertRowFunc(4 + num_2_2, [sheet_2_2.getRow(4)], sheet_2_2, (targetRow) => {
targetRow.getCell(1).value = num_2_2++; targetRow.getCell(1).value = num_2_2++;
targetRow.getCell(2).value = serviceX.code; targetRow.getCell(2).value = serviceX.code;
targetRow.getCell(3).value = serviceX.name; targetRow.getCell(3).value = serviceX.name;
targetRow.getCell(4).value = sobj.method2.area; targetRow.getCell(4).value = numberFormatter(sobj.method2.area, 3);
targetRow.getCell(5).value = '/'; targetRow.getCell(5).value = '/';
targetRow.getCell(6).value = sobj.method2.basicFee_basic; targetRow.getCell(6).value = numberFormatter(sobj.method2.basicFee_basic, 2);
targetRow.getCell(7).value = '/'; targetRow.getCell(7).value = '/';
targetRow.getCell(8).value = sobj.method2.basicFee_optional; targetRow.getCell(8).value = numberFormatter(sobj.method2.basicFee_optional, 2);
targetRow.getCell(9).value = sobj.method2.basicFee; targetRow.getCell(9).value = numberFormatter(sobj.method2.basicFee, 2);
}); });
} }
}); });
if (serviceX.mutiple) {
const maxProNum = Math.max(sobj.method1 ? sobj.method1.proAmount : 0, sobj.method2 ? sobj.method2.proAmount : 0);
for (let pi = 1; pi <= maxProNum; pi++) {
const m1PI = sobj.method1 ? sobj.method1.det.filter(m => m.proNum == pi) : [];
const m2PI = sobj.method2 ? sobj.method2.det.filter(m => m.proNum == pi) : [];
let m1PISum = m1PI.reduce((a, b) => {
return {
cost: addNumbers(a.cost, toFiniteNumber(b.cost)),
basicFee_basic: addNumbers(a.basicFee_basic, toFiniteNumber(b.basicFee_basic)),
basicFee_optional: addNumbers(a.basicFee_optional, toFiniteNumber(b.basicFee_optional)),
basicFee: addNumbers(a.basicFee, toFiniteNumber(b.basicFee)),
fee: addNumbers(a.fee, toFiniteNumber(b.fee)),
}
}, { cost: 0, basicFee_basic: 0, basicFee_optional: 0, basicFee: 0, fee: 0 });
let m2PISum = m2PI.reduce((a, b) => {
return {
area: addNumbers(a.area, toFiniteNumber(b.area)),
basicFee_basic: addNumbers(a.basicFee_basic, toFiniteNumber(b.basicFee_basic)),
basicFee_optional: addNumbers(a.basicFee_optional, toFiniteNumber(b.basicFee_optional)),
basicFee: addNumbers(a.basicFee, toFiniteNumber(b.basicFee)),
fee: addNumbers(a.fee, toFiniteNumber(b.fee)),
}
}, { area: 0, basicFee_basic: 0, basicFee_optional: 0, basicFee: 0, fee: 0 });
cusInsertRowFunc(4 + num_2, [sheet_2.getRow(4)], sheet_2, (targetRow) => {
targetRow.getCell(1).value = num_2++;
targetRow.getCell(2).value = serviceX.code + '-' + pi;
targetRow.getCell(3).value = '项目' + pi;
targetRow.getCell(4).value = '/';
targetRow.getCell(5).value = '/';
targetRow.getCell(6).value = '/';
targetRow.getCell(7).value = '/';
if (m1PI.length) {
targetRow.getCell(8).value = numberFormatter(m1PISum.basicFee, 2);
targetRow.getCell(9).value = numberFormatter(m1PISum.fee, 2);
cusInsertRowFunc(4 + num_2_1, [sheet_2_1.getRow(4)], sheet_2_1, (targetRow) => {
targetRow.getCell(1).value = num_2_1++;
targetRow.getCell(2).value = serviceX.code + '-' + pi;
targetRow.getCell(3).value = '项目' + pi;
targetRow.getCell(4).value = numberFormatter(m1PISum.cost, 2);
targetRow.getCell(5).value = '/';
targetRow.getCell(6).value = numberFormatter(m1PISum.basicFee_basic, 2);
targetRow.getCell(7).value = '/';
targetRow.getCell(8).value = numberFormatter(m1PISum.basicFee_optional, 2);
targetRow.getCell(9).value = numberFormatter(m1PISum.basicFee, 2);
});
}
if (m2PI.length) {
targetRow.getCell(10).value = numberFormatter(m2PISum.basicFee, 2);
targetRow.getCell(11).value = numberFormatter(m2PISum.fee, 2);
cusInsertRowFunc(4 + num_2_2, [sheet_2_2.getRow(4)], sheet_2_2, (targetRow) => {
targetRow.getCell(1).value = num_2_2++;
targetRow.getCell(2).value = serviceX.code + '-' + pi;
targetRow.getCell(3).value = '项目' + pi;
targetRow.getCell(4).value = numberFormatter(m2PISum.area, 3);
targetRow.getCell(5).value = '/';
targetRow.getCell(6).value = numberFormatter(m2PISum.basicFee_basic, 2);
targetRow.getCell(7).value = '/';
targetRow.getCell(8).value = numberFormatter(m2PISum.basicFee_optional, 2);
targetRow.getCell(9).value = numberFormatter(m2PISum.basicFee, 2);
});
}
});
let det1 = m1PI.map(m => m.major);
let det2 = m2PI.map(m => m.major);
let allDet = [...(new Set([...det1, ...det2]))].sort((a, b) => a - b).map(m => {
let d1index = det1.indexOf(m);
let d2index = det2.indexOf(m);
return {
major: m,
mth1: d1index < 0 ? null : m1PI[d1index],
mth2: d2index < 0 ? null : m2PI[d2index],
};
});
allDet.forEach((m, mindex) => {
let majorX = majorList[m.major];
cusInsertRowFunc(4 + num_2, [sheet_2.getRow(4)], sheet_2, (targetRow) => {
targetRow.getCell(1).value = num_2++;
targetRow.getCell(2).value = serviceX.code + '-' + pi + '-' + (mindex + 1);
targetRow.getCell(3).value = majorX.name;
if (m.mth1) {
targetRow.getCell(4).value = numberFormatter(m.mth1.serviceCoe, 3);
targetRow.getCell(5).value = numberFormatter(m.mth1.majorCoe, 3);
targetRow.getCell(6).value = numberFormatter(m.mth1.processCoe, 3);
targetRow.getCell(7).value = numberFormatter(m.mth1.proportion, 2);
targetRow.getCell(8).value = numberFormatter(m.mth1.basicFee, 2);
targetRow.getCell(9).value = numberFormatter(m.mth1.fee, 2);
targetRow.getCell(10).value = '';
targetRow.getCell(11).value = '';
cusInsertRowFunc(4 + num_2_1, [sheet_2_1.getRow(4)], sheet_2_1, (targetRow) => {
targetRow.getCell(1).value = num_2_1++;
targetRow.getCell(2).value = serviceX.code + '-' + pi + '-' + (mindex + 1);
targetRow.getCell(3).value = majorX.name;
targetRow.getCell(4).value = numberFormatter(m.mth1.cost, 2);
targetRow.getCell(5).value = m.mth1.basicFormula;
targetRow.getCell(6).value = numberFormatter(m.mth1.basicFee_basic, 2);
targetRow.getCell(7).value = m.mth1.optionalFormula;
targetRow.getCell(8).value = numberFormatter(m.mth1.basicFee_optional, 2);
targetRow.getCell(9).value = numberFormatter(m.mth1.basicFee, 2);
});
} else {
targetRow.getCell(4).value = numberFormatter(m.mth2.serviceCoe, 3);
targetRow.getCell(5).value = numberFormatter(m.mth2.majorCoe, 3);
targetRow.getCell(6).value = numberFormatter(m.mth2.processCoe, 3);
targetRow.getCell(7).value = numberFormatter(m.mth2.proportion, 2);
targetRow.getCell(8).value = '';
targetRow.getCell(9).value = '';
targetRow.getCell(10).value = numberFormatter(m.mth2.basicFee, 2);
targetRow.getCell(11).value = numberFormatter(m.mth2.fee, 2);
cusInsertRowFunc(4 + num_2_2, [sheet_2_2.getRow(4)], sheet_2_2, (targetRow) => {
targetRow.getCell(1).value = num_2_2++;
targetRow.getCell(2).value = serviceX.code + '-' + pi + '-' + (mindex + 1);
targetRow.getCell(3).value = majorX.name;
targetRow.getCell(4).value = numberFormatter(m.mth2.area, 3);
targetRow.getCell(5).value = m.mth2.basicFormula;
targetRow.getCell(6).value = numberFormatter(m.mth2.basicFee_basic, 2);
targetRow.getCell(7).value = m.mth2.optionalFormula;
targetRow.getCell(8).value = numberFormatter(m.mth2.basicFee_optional, 2);
targetRow.getCell(9).value = numberFormatter(m.mth2.basicFee, 2);
});
}
});
});
}
} else {
let det1 = sobj.method1 ? sobj.method1.det.map(m => m.major) : [];
let det2 = sobj.method2 ? sobj.method2.det.map(m => m.major) : [];
let allDet = [...(new Set([...det1, ...det2]))].sort((a, b) => a - b).map(m => {
let d1index = det1.indexOf(m);
let d2index = det2.indexOf(m);
return {
major: m,
mth1: d1index < 0 ? null : sobj.method1.det[d1index],
mth2: d2index < 0 ? null : sobj.method2.det[d2index],
};
});
allDet.forEach((m, mindex) => { allDet.forEach((m, mindex) => {
let majorX = majorList[m.major]; let majorX = majorList[m.major];
cusInsertRowFunc(4 + num_2, [sheet_2.getRow(4)], sheet_2, (targetRow) => { cusInsertRowFunc(4 + num_2, [sheet_2.getRow(4)], sheet_2, (targetRow) => {
@ -1051,49 +1179,50 @@ async function generateTemplate(data) {
targetRow.getCell(2).value = serviceX.code + '-' + (mindex + 1); targetRow.getCell(2).value = serviceX.code + '-' + (mindex + 1);
targetRow.getCell(3).value = majorX.name; targetRow.getCell(3).value = majorX.name;
if (m.mth1) { if (m.mth1) {
targetRow.getCell(4).value = m.mth1.serviceCoe; targetRow.getCell(4).value = numberFormatter(m.mth1.serviceCoe, 3);
targetRow.getCell(5).value = m.mth1.majorCoe; targetRow.getCell(5).value = numberFormatter(m.mth1.majorCoe, 3);
targetRow.getCell(6).value = m.mth1.processCoe; targetRow.getCell(6).value = numberFormatter(m.mth1.processCoe, 3);
targetRow.getCell(7).value = m.mth1.proportion; targetRow.getCell(7).value = numberFormatter(m.mth1.proportion, 2);
targetRow.getCell(8).value = m.mth1.basicFee; targetRow.getCell(8).value = numberFormatter(m.mth1.basicFee, 2);
targetRow.getCell(9).value = m.mth1.fee; targetRow.getCell(9).value = numberFormatter(m.mth1.fee, 2);
targetRow.getCell(10).value = 0; targetRow.getCell(10).value = '';
targetRow.getCell(11).value = 0; targetRow.getCell(11).value = '';
cusInsertRowFunc(4 + num_2_1, [sheet_2_1.getRow(4)], sheet_2_1, (targetRow) => { cusInsertRowFunc(4 + num_2_1, [sheet_2_1.getRow(4)], sheet_2_1, (targetRow) => {
targetRow.getCell(1).value = num_2_1++; targetRow.getCell(1).value = num_2_1++;
targetRow.getCell(2).value = serviceX.code + '-' + (mindex + 1); targetRow.getCell(2).value = serviceX.code + '-' + (mindex + 1);
targetRow.getCell(3).value = majorX.name; targetRow.getCell(3).value = majorX.name;
targetRow.getCell(4).value = m.mth1.cost; targetRow.getCell(4).value = numberFormatter(m.mth1.cost, 2);
targetRow.getCell(5).value = m.mth1.basicFormula; targetRow.getCell(5).value = m.mth1.basicFormula;
targetRow.getCell(6).value = m.mth1.basicFee_basic; targetRow.getCell(6).value = numberFormatter(m.mth1.basicFee_basic, 2);
targetRow.getCell(7).value = m.mth1.optionalFormula; targetRow.getCell(7).value = m.mth1.optionalFormula;
targetRow.getCell(8).value = m.mth1.basicFee_optional; targetRow.getCell(8).value = numberFormatter(m.mth1.basicFee_optional, 2);
targetRow.getCell(9).value = m.mth1.basicFee; targetRow.getCell(9).value = numberFormatter(m.mth1.basicFee, 2);
}); });
} else { } else {
targetRow.getCell(4).value = m.mth2.serviceCoe; targetRow.getCell(4).value = numberFormatter(m.mth2.serviceCoe, 3);
targetRow.getCell(5).value = m.mth2.majorCoe; targetRow.getCell(5).value = numberFormatter(m.mth2.majorCoe, 3);
targetRow.getCell(6).value = m.mth2.processCoe; targetRow.getCell(6).value = numberFormatter(m.mth2.processCoe, 3);
targetRow.getCell(7).value = m.mth2.proportion; targetRow.getCell(7).value = numberFormatter(m.mth2.proportion, 2);
targetRow.getCell(8).value = 0; targetRow.getCell(8).value = '';
targetRow.getCell(9).value = 0; targetRow.getCell(9).value = '';
targetRow.getCell(10).value = m.mth2.basicFee; targetRow.getCell(10).value = numberFormatter(m.mth2.basicFee, 2);
targetRow.getCell(11).value = m.mth2.fee; targetRow.getCell(11).value = numberFormatter(m.mth2.fee, 2);
cusInsertRowFunc(4 + num_2_2, [sheet_2_2.getRow(4)], sheet_2_2, (targetRow) => { cusInsertRowFunc(4 + num_2_2, [sheet_2_2.getRow(4)], sheet_2_2, (targetRow) => {
targetRow.getCell(1).value = num_2_2++; targetRow.getCell(1).value = num_2_2++;
targetRow.getCell(2).value = serviceX.code + '-' + (mindex + 1); targetRow.getCell(2).value = serviceX.code + '-' + (mindex + 1);
targetRow.getCell(3).value = majorX.name; targetRow.getCell(3).value = majorX.name;
targetRow.getCell(4).value = m.mth2.area; targetRow.getCell(4).value = numberFormatter(m.mth2.area, 3);
targetRow.getCell(5).value = m.mth2.basicFormula; targetRow.getCell(5).value = m.mth2.basicFormula;
targetRow.getCell(6).value = m.mth2.basicFee_basic; targetRow.getCell(6).value = numberFormatter(m.mth2.basicFee_basic, 2);
targetRow.getCell(7).value = m.mth2.optionalFormula; targetRow.getCell(7).value = m.mth2.optionalFormula;
targetRow.getCell(8).value = m.mth2.basicFee_optional; targetRow.getCell(8).value = numberFormatter(m.mth2.basicFee_optional, 2);
targetRow.getCell(9).value = m.mth2.basicFee; targetRow.getCell(9).value = numberFormatter(m.mth2.basicFee, 2);
}); });
} }
}); });
}); });
} }
}
if (sobj.method3) { if (sobj.method3) {
cusInsertRowFunc(3 + num_3, [sheet_3.getRow(3)], sheet_3, (targetRow) => { cusInsertRowFunc(3 + num_3, [sheet_3.getRow(3)], sheet_3, (targetRow) => {
targetRow.getCell(1).value = num_3++; targetRow.getCell(1).value = num_3++;
@ -1102,9 +1231,9 @@ async function generateTemplate(data) {
targetRow.getCell(4).value = '/'; targetRow.getCell(4).value = '/';
targetRow.getCell(5).value = '/'; targetRow.getCell(5).value = '/';
targetRow.getCell(6).value = '/'; targetRow.getCell(6).value = '/';
targetRow.getCell(7).value = sobj.method3.basicFee; targetRow.getCell(7).value = numberFormatter(sobj.method3.basicFee, 2);
targetRow.getCell(8).value = '/'; targetRow.getCell(8).value = '/';
targetRow.getCell(9).value = sobj.method3.fee; targetRow.getCell(9).value = numberFormatter(sobj.method3.fee, 2);
}); });
sobj.method3.det.forEach((tobj, tindex) => { sobj.method3.det.forEach((tobj, tindex) => {
const taskX = taskList[tobj.task]; const taskX = taskList[tobj.task];
@ -1113,11 +1242,11 @@ async function generateTemplate(data) {
targetRow.getCell(2).value = taskX.code; targetRow.getCell(2).value = taskX.code;
targetRow.getCell(3).value = taskX.name + (taskX.desc ? `(${taskX.desc})` : ''); targetRow.getCell(3).value = taskX.name + (taskX.desc ? `(${taskX.desc})` : '');
targetRow.getCell(4).value = taskX.basicParam; targetRow.getCell(4).value = taskX.basicParam;
targetRow.getCell(5).value = tobj.price; targetRow.getCell(5).value = numberFormatter(tobj.price, 2);
targetRow.getCell(6).value = tobj.amount; targetRow.getCell(6).value = numberFormatter(tobj.amount, 2);
targetRow.getCell(7).value = tobj.basicFee; targetRow.getCell(7).value = numberFormatter(tobj.basicFee, 2);
targetRow.getCell(8).value = tobj.serviceCoe; targetRow.getCell(8).value = numberFormatter(tobj.serviceCoe, 3);
targetRow.getCell(9).value = tobj.fee; targetRow.getCell(9).value = numberFormatter(tobj.fee, 2);
}); });
}); });
} }
@ -1126,33 +1255,33 @@ async function generateTemplate(data) {
targetRow.getCell(1).value = num_4++; targetRow.getCell(1).value = num_4++;
targetRow.getCell(2).value = serviceX.code; targetRow.getCell(2).value = serviceX.code;
targetRow.getCell(3).value = serviceX.name; targetRow.getCell(3).value = serviceX.name;
targetRow.getCell(4).value = sobj.method4.person_num; targetRow.getCell(4).value = numberFormatter(sobj.method4.person_num, 0);
targetRow.getCell(5).value = sobj.method4.work_day; targetRow.getCell(5).value = numberFormatter(sobj.method4.work_day, 2);
targetRow.getCell(6).value = sobj.method4.fee; targetRow.getCell(6).value = numberFormatter(sobj.method4.fee, 2);
}); });
cusInsertRowFunc(5 + num_4_1, [sheet_4_1.getRow(5)], sheet_4_1, (targetRow) => { cusInsertRowFunc(4 + num_4_1, [sheet_4_1.getRow(4)], sheet_4_1, (targetRow) => {
targetRow.getCell(1).value = num_4_1++; targetRow.getCell(1).value = num_4_1++;
targetRow.getCell(2).value = serviceX.code; targetRow.getCell(2).value = serviceX.code;
targetRow.getCell(3).value = serviceX.name; targetRow.getCell(3).value = serviceX.name;
targetRow.getCell(4).value = '/'; targetRow.getCell(4).value = '/';
targetRow.getCell(5).value = '/'; targetRow.getCell(5).value = '/';
targetRow.getCell(6).value = '/'; targetRow.getCell(6).value = '/';
targetRow.getCell(7).value = sobj.method4.person_num; targetRow.getCell(7).value = numberFormatter(sobj.method4.person_num, 0);
targetRow.getCell(8).value = sobj.method4.work_day; targetRow.getCell(8).value = numberFormatter(sobj.method4.work_day, 2);
targetRow.getCell(9).value = sobj.method4.fee; targetRow.getCell(9).value = numberFormatter(sobj.method4.fee, 2);
}); });
sobj.method4.det.forEach((eobj, eindex) => { sobj.method4.det.forEach((eobj, eindex) => {
const expertX = expertList[eobj.expert]; const expertX = expertList[eobj.expert];
cusInsertRowFunc(5 + num_4_1, [sheet_4_1.getRow(5)], sheet_4_1, (targetRow) => { cusInsertRowFunc(4 + num_4_1, [sheet_4_1.getRow(4)], sheet_4_1, (targetRow) => {
targetRow.getCell(1).value = num_4_1++; targetRow.getCell(1).value = num_4_1++;
targetRow.getCell(2).value = expertX.code; targetRow.getCell(2).value = expertX.code;
targetRow.getCell(3).value = expertX.name; targetRow.getCell(3).value = expertX.name;
targetRow.getCell(4).value = `${expertX.minPrice}${expertX.maxPrice}`; targetRow.getCell(4).value = `${expertX.minPrice}${expertX.maxPrice}`;
targetRow.getCell(5).value = `${roundTo(toDecimal(toFiniteNumber(expertX.minPrice)).mul(toFiniteNumber(expertX.manageCoe)), 0)}${roundTo(toDecimal(toFiniteNumber(expertX.maxPrice)).mul(toFiniteNumber(expertX.manageCoe)), 0)}`; targetRow.getCell(5).value = `${roundTo(toDecimal(toFiniteNumber(expertX.minPrice)).mul(toFiniteNumber(expertX.manageCoe)), 0)}${roundTo(toDecimal(toFiniteNumber(expertX.maxPrice)).mul(toFiniteNumber(expertX.manageCoe)), 0)}`;
targetRow.getCell(6).value = eobj.price; targetRow.getCell(6).value = numberFormatter(eobj.price, 2);
targetRow.getCell(7).value = eobj.person_num; targetRow.getCell(7).value = numberFormatter(eobj.person_num, 0);
targetRow.getCell(8).value = eobj.work_day; targetRow.getCell(8).value = numberFormatter(eobj.work_day, 2);
targetRow.getCell(9).value = eobj.fee; targetRow.getCell(9).value = numberFormatter(eobj.fee, 2);
targetRow.getCell(10).value = eobj.remark; targetRow.getCell(10).value = eobj.remark;
}); });
}); });
@ -1179,7 +1308,7 @@ async function generateTemplate(data) {
targetRow.getCell(5).value = ''; targetRow.getCell(5).value = '';
targetRow.getCell(6).value = ''; targetRow.getCell(6).value = '';
targetRow.getCell(7).value = ''; targetRow.getCell(7).value = '';
targetRow.getCell(8).value = ci.addtional.fee; targetRow.getCell(8).value = numberFormatter(ci.addtional.fee, 2);
}); });
ci.addtional.det.forEach((addobj, addindex) => { ci.addtional.det.forEach((addobj, addindex) => {
endRows++; endRows++;
@ -1192,17 +1321,196 @@ async function generateTemplate(data) {
if (addobj.m4) tmpArr.push(`按工时法计得${addobj.m4.fee}`); if (addobj.m4) tmpArr.push(`按工时法计得${addobj.m4.fee}`);
if (addobj.m5) tmpArr.push(`按数量单价计得${addobj.m5.fee}`); if (addobj.m5) tmpArr.push(`按数量单价计得${addobj.m5.fee}`);
targetRow.getCell(4).value = tmpArr.join(';'); targetRow.getCell(4).value = tmpArr.join(';');
targetRow.getCell(8).value = addobj.fee; targetRow.getCell(8).value = numberFormatter(addobj.fee, 2);
if (addobj.m4) {
cusInsertRowFunc(4 + num_4, [sheet_4.getRow(4)], sheet_4, (targetRow) => {
targetRow.getCell(1).value = num_4++;
targetRow.getCell(2).value = addobj.ref;
targetRow.getCell(3).value = addobj.name;
targetRow.getCell(4).value = numberFormatter(addobj.m4.person_num, 0);
targetRow.getCell(5).value = numberFormatter(addobj.m4.work_day, 2);
targetRow.getCell(6).value = numberFormatter(addobj.m4.fee, 2);
});
cusInsertRowFunc(4 + num_4_1, [sheet_4_1.getRow(4)], sheet_4_1, (targetRow) => {
targetRow.getCell(1).value = num_4_1++;
targetRow.getCell(2).value = addobj.ref;
targetRow.getCell(3).value = addobj.name;
targetRow.getCell(4).value = '/';
targetRow.getCell(5).value = '/';
targetRow.getCell(6).value = '/';
targetRow.getCell(7).value = numberFormatter(addobj.m4.person_num, 0);
targetRow.getCell(8).value = numberFormatter(addobj.m4.work_day, 2);
targetRow.getCell(9).value = numberFormatter(addobj.m4.fee, 2);
});
addobj.m4.det.forEach((eobj, eindex) => {
const expertX = expertList[eobj.expert];
cusInsertRowFunc(4 + num_4_1, [sheet_4_1.getRow(4)], sheet_4_1, (targetRow) => {
targetRow.getCell(1).value = num_4_1++;
targetRow.getCell(2).value = expertX.code;
targetRow.getCell(3).value = expertX.name;
targetRow.getCell(4).value = `${expertX.minPrice}${expertX.maxPrice}`;
targetRow.getCell(5).value = `${roundTo(toDecimal(toFiniteNumber(expertX.minPrice)).mul(toFiniteNumber(expertX.manageCoe)), 0)}${roundTo(toDecimal(toFiniteNumber(expertX.maxPrice)).mul(toFiniteNumber(expertX.manageCoe)), 0)}`;
targetRow.getCell(6).value = numberFormatter(eobj.price, 2);
targetRow.getCell(7).value = numberFormatter(eobj.person_num, 0);
targetRow.getCell(8).value = numberFormatter(eobj.work_day, 2);
targetRow.getCell(9).value = numberFormatter(eobj.fee, 2);
targetRow.getCell(10).value = eobj.remark;
}); });
}); });
} }
if (addobj.m5) {
cusInsertRowFunc(4 + num_5, [sheet_5.getRow(4)], sheet_5, (targetRow) => {
num_5++;
targetRow.getCell(1).value = addobj.ref;
targetRow.getCell(2).value = addobj.name;
targetRow.getCell(3).value = '/';
targetRow.getCell(4).value = '/';
targetRow.getCell(5).value = '/';
targetRow.getCell(6).value = numberFormatter(addobj.m5.fee, 2);
});
const tmpJSS = JSON.stringify(addobj.ref);
addobj.m5.det.forEach((eobj, eindex) => {
let ref = JSON.parse(tmpJSS);
ref.richText.push({ font: { charset: 134, color: { theme: 1 }, italic: true, name: '宋体', size: 10 }, text: '-' + (eindex + 1) });
cusInsertRowFunc(4 + num_5, [sheet_5.getRow(4)], sheet_5, (targetRow) => {
num_5++;
targetRow.getCell(1).value = ref;
targetRow.getCell(2).value = eobj.name;
targetRow.getCell(3).value = eobj.unit;
targetRow.getCell(4).value = numberFormatter(eobj.amount, 3);
targetRow.getCell(5).value = numberFormatter(eobj.price, 2);
targetRow.getCell(6).value = numberFormatter(eobj.fee, 2);
targetRow.getCell(7).value = eobj.remark;
});
});
}
});
});
}
if (ci.reserve) {
endRows++;
cusInsertRowFunc(ci.services.length + 3 + endRows, [sheet_1.getRow(3)], sheet_1, (targetRow) => {
targetRow.getCell(1).value = ci.services.length + endRows;
targetRow.getCell(2).value = ci.reserve.ref;
targetRow.getCell(3).value = ci.reserve.name;
let tmpArr = [];
if (ci.reserve.m0) tmpArr.push(`按上述小计及附加工作费之和的${ci.reserve.m0.coe}计得${ci.reserve.m0.fee}`);
if (ci.reserve.m4) tmpArr.push(`按工时法计得${ci.reserve.m4.fee}`);
if (ci.reserve.m5) tmpArr.push(`按数量单价计得${ci.reserve.m5.fee}`);
targetRow.getCell(4).value = tmpArr.join(';');
targetRow.getCell(8).value = numberFormatter(ci.reserve.fee, 2);
});
if (ci.reserve.m4) {
cusInsertRowFunc(4 + num_4, [sheet_4.getRow(4)], sheet_4, (targetRow) => {
targetRow.getCell(1).value = num_4++;
targetRow.getCell(2).value = ci.reserve.ref;
targetRow.getCell(3).value = ci.reserve.name;
targetRow.getCell(4).value = numberFormatter(ci.reserve.m4.person_num, 0);
targetRow.getCell(5).value = numberFormatter(ci.reserve.m4.work_day, 2);
targetRow.getCell(6).value = numberFormatter(ci.reserve.m4.fee, 2);
});
cusInsertRowFunc(4 + num_4_1, [sheet_4_1.getRow(4)], sheet_4_1, (targetRow) => {
targetRow.getCell(1).value = num_4_1++;
targetRow.getCell(2).value = ci.reserve.ref;
targetRow.getCell(3).value = ci.reserve.name;
targetRow.getCell(4).value = '/';
targetRow.getCell(5).value = '/';
targetRow.getCell(6).value = '/';
targetRow.getCell(7).value = numberFormatter(ci.reserve.m4.person_num, 0);
targetRow.getCell(8).value = numberFormatter(ci.reserve.m4.work_day, 2);
targetRow.getCell(9).value = numberFormatter(ci.reserve.m4.fee, 2);
});
ci.reserve.m4.det.forEach((eobj, eindex) => {
const expertX = expertList[eobj.expert];
cusInsertRowFunc(4 + num_4_1, [sheet_4_1.getRow(4)], sheet_4_1, (targetRow) => {
targetRow.getCell(1).value = num_4_1++;
targetRow.getCell(2).value = expertX.code;
targetRow.getCell(3).value = expertX.name;
targetRow.getCell(4).value = `${expertX.minPrice}${expertX.maxPrice}`;
targetRow.getCell(5).value = `${roundTo(toDecimal(toFiniteNumber(expertX.minPrice)).mul(toFiniteNumber(expertX.manageCoe)), 0)}${roundTo(toDecimal(toFiniteNumber(expertX.maxPrice)).mul(toFiniteNumber(expertX.manageCoe)), 0)}`;
targetRow.getCell(6).value = numberFormatter(eobj.price, 2);
targetRow.getCell(7).value = numberFormatter(eobj.person_num, 0);
targetRow.getCell(8).value = numberFormatter(eobj.work_day, 2);
targetRow.getCell(9).value = numberFormatter(eobj.fee, 2);
targetRow.getCell(10).value = eobj.remark;
});
});
}
if (ci.reserve.m5) {
cusInsertRowFunc(4 + num_5, [sheet_5.getRow(4)], sheet_5, (targetRow) => {
num_5++;
targetRow.getCell(1).value = ci.reserve.ref;
targetRow.getCell(2).value = ci.reserve.name;
targetRow.getCell(3).value = '/';
targetRow.getCell(4).value = '/';
targetRow.getCell(5).value = '/';
targetRow.getCell(6).value = numberFormatter(ci.reserve.m5.fee, 2);
});
const tmpJSS = JSON.stringify(ci.reserve.ref);
ci.reserve.m5.det.forEach((eobj, eindex) => {
let ref = JSON.parse(tmpJSS);
ref.richText.push({ font: { charset: 134, color: { theme: 1 }, italic: true, name: '宋体', size: 10 }, text: '-' + (eindex + 1) });
cusInsertRowFunc(4 + num_5, [sheet_5.getRow(4)], sheet_5, (targetRow) => {
num_5++;
targetRow.getCell(1).value = ref;
targetRow.getCell(2).value = eobj.name;
targetRow.getCell(3).value = eobj.unit;
targetRow.getCell(4).value = numberFormatter(eobj.amount, 3);
targetRow.getCell(5).value = numberFormatter(eobj.price, 2);
targetRow.getCell(6).value = numberFormatter(eobj.fee, 2);
targetRow.getCell(7).value = eobj.remark;
});
});
}
}
sheet_1.spliceRows(3, 1); sheet_1.spliceRows(3, 1);
sheet_1.getRow(ci.services.length + endRows + 3).getCell(1).value = ci.services.length + endRows + 1; sheet_1.getRow(ci.services.length + endRows + 3).getCell(1).value = ci.services.length + endRows + 1;
sheet_1.getRow(ci.services.length + endRows + 3).getCell(8).value = ci.fee; sheet_1.getRow(ci.services.length + endRows + 3).getCell(8).value = numberFormatter(ci.fee, 2);
sheet_1.mergeCells(2 + ci.services.length + endRows + 2, 2, 2 + ci.services.length + endRows + 2, 8); sheet_1.mergeCells(2 + ci.services.length + endRows + 2, 2, 2 + ci.services.length + endRows + 2, 8);
sheet_1.getRow(2 + ci.services.length + endRows + 2).height = 100; sheet_1.getRow(2 + ci.services.length + endRows + 2).height = 100;
sheet_1.getRow(2 + ci.services.length + endRows + 2).getCell(2).border.right = { style: 'thin' }; sheet_1.getRow(2 + ci.services.length + endRows + 2).getCell(2).border.right = { style: 'thin' };
if (sheet_2) {
sheet_2.spliceRows(4, 1);
sheet_2.mergeCells(3 + num_2, 2, 3 + num_2, 11);
sheet_2.getRow(3 + num_2).height = 100;
sheet_2.getRow(3 + num_2).getCell(2).border.right = { style: 'thin' };
if (sheet_2_1) {
sheet_2_1.spliceRows(4, 1);
sheet_2_1.mergeCells(3 + num_2_1, 2, 3 + num_2_1, 9);
sheet_2_1.getRow(3 + num_2_1).height = 100;
sheet_2_1.getRow(3 + num_2_1).getCell(2).border.right = { style: 'thin' };
}
if (sheet_2_2) {
sheet_2_2.spliceRows(4, 1);
sheet_2_2.mergeCells(3 + num_2_2, 2, 3 + num_2_2, 9);
sheet_2_2.getRow(3 + num_2_2).height = 100;
sheet_2_2.getRow(3 + num_2_2).getCell(2).border.right = { style: 'thin' };
}
}
if (sheet_3) {
sheet_3.spliceRows(3, 1);
sheet_3.mergeCells(2 + num_3, 2, 2 + num_3, 9);
sheet_3.getRow(2 + num_3).height = 100;
sheet_3.getRow(2 + num_3).getCell(2).border.right = { style: 'thin' };
}
if (sheet_4) {
sheet_4.spliceRows(4, 1);
sheet_4.getRow(2).height = 20.25;
sheet_4_1.spliceRows(4, 1);
sheet_4_1.mergeCells(3 + num_4_1, 2, 3 + num_4_1, 10);
sheet_4_1.getRow(3 + num_4_1).height = 100;
sheet_4_1.getRow(3 + num_4_1).getCell(2).border.right = { style: 'thin' };
}
if (sheet_5) {
sheet_5.spliceRows(4, 1);
sheet_5.getRow(2).height = 20.25;
}
for (let i = 1; i <= endRows; i++) { for (let i = 1; i <= endRows; i++) {
sheet_1.mergeCells(ci.services.length + 3 + i, 4, ci.services.length + 3 + i, 7); sheet_1.mergeCells(ci.services.length + 3 + i, 4, ci.services.length + 3 + i, 7);
if (sheet_1.getRow(ci.services.length + 3 + i).getCell(4).style.alignment) { if (sheet_1.getRow(ci.services.length + 3 + i).getCell(4).style.alignment) {
@ -1222,9 +1530,9 @@ async function generateTemplate(data) {
targetRow.getCell(i * 7 + 1).value = sindex + 1; targetRow.getCell(i * 7 + 1).value = sindex + 1;
targetRow.getCell(i * 7 + 2).value = serviceX.code; targetRow.getCell(i * 7 + 2).value = serviceX.code;
targetRow.getCell(i * 7 + 3).value = serviceX.name; targetRow.getCell(i * 7 + 3).value = serviceX.name;
targetRow.getCell(i * 7 + 4).value = s.contracts[i * 4]; targetRow.getCell(i * 7 + 4).value = numberFormatter(s.contracts[i * 4], 2);
targetRow.getCell(i * 7 + 5).value = s.contracts[i * 4 + 1]; targetRow.getCell(i * 7 + 5).value = numberFormatter(s.contracts[i * 4 + 1], 2);
targetRow.getCell(i * 7 + 6).value = s.contracts[i * 4 + 2]; targetRow.getCell(i * 7 + 6).value = numberFormatter(s.contracts[i * 4 + 2], 2);
siSum = addNumbers( siSum = addNumbers(
siSum, siSum,
toFiniteNumber(s.contracts[i * 4]), toFiniteNumber(s.contracts[i * 4]),
@ -1234,7 +1542,7 @@ async function generateTemplate(data) {
if (i == yz01Num - 1 && yz01Mod == 0) { if (i == yz01Num - 1 && yz01Mod == 0) {
targetRow.getCell(i * 7 + 7).value = numberFormatter(siSum, 2); targetRow.getCell(i * 7 + 7).value = numberFormatter(siSum, 2);
} else { } else {
targetRow.getCell(i * 7 + 7).value = s.contracts[i * 4 + 3]; targetRow.getCell(i * 7 + 7).value = numberFormatter(s.contracts[i * 4 + 3], 2);
siSum = addNumbers(siSum, toFiniteNumber(s.contracts[i * 4 + 3])); siSum = addNumbers(siSum, toFiniteNumber(s.contracts[i * 4 + 3]));
} }
} }
@ -1245,12 +1553,12 @@ async function generateTemplate(data) {
if (yz01Mod == 1) { if (yz01Mod == 1) {
targetRow.getCell(yz01Num * 7 + 4).value = numberFormatter(siSum, 2); targetRow.getCell(yz01Num * 7 + 4).value = numberFormatter(siSum, 2);
} else if (yz01Mod == 2) { } else if (yz01Mod == 2) {
targetRow.getCell(yz01Num * 7 + 4).value = s.contracts[yz01Num * 4]; targetRow.getCell(yz01Num * 7 + 4).value = numberFormatter(s.contracts[yz01Num * 4], 2);
siSum = addNumbers(siSum, toFiniteNumber(s.contracts[yz01Num * 4])); siSum = addNumbers(siSum, toFiniteNumber(s.contracts[yz01Num * 4]));
targetRow.getCell(yz01Num * 7 + 5).value = numberFormatter(siSum, 2); targetRow.getCell(yz01Num * 7 + 5).value = numberFormatter(siSum, 2);
} else { } else {
targetRow.getCell(yz01Num * 7 + 4).value = s.contracts[yz01Num * 4]; targetRow.getCell(yz01Num * 7 + 4).value = numberFormatter(s.contracts[yz01Num * 4], 2);
targetRow.getCell(yz01Num * 7 + 5).value = s.contracts[yz01Num * 4 + 1]; targetRow.getCell(yz01Num * 7 + 5).value = numberFormatter(s.contracts[yz01Num * 4 + 1], 2);
siSum = addNumbers( siSum = addNumbers(
siSum, siSum,
toFiniteNumber(s.contracts[yz01Num * 4]), toFiniteNumber(s.contracts[yz01Num * 4]),
@ -1271,9 +1579,9 @@ async function generateTemplate(data) {
targetRow.getCell(i * 7 + 1).value = allServices.length + 1; targetRow.getCell(i * 7 + 1).value = allServices.length + 1;
targetRow.getCell(i * 7 + 2).value = allAddtional[firstNum].code; targetRow.getCell(i * 7 + 2).value = allAddtional[firstNum].code;
targetRow.getCell(i * 7 + 3).value = allAddtional[firstNum].name; targetRow.getCell(i * 7 + 3).value = allAddtional[firstNum].name;
targetRow.getCell(i * 7 + 4).value = allAddtional[i * 4]?.fee; targetRow.getCell(i * 7 + 4).value = numberFormatter(allAddtional[i * 4]?.fee, 2);
targetRow.getCell(i * 7 + 5).value = allAddtional[i * 4 + 1]?.fee; targetRow.getCell(i * 7 + 5).value = numberFormatter(allAddtional[i * 4 + 1]?.fee, 2);
targetRow.getCell(i * 7 + 6).value = allAddtional[i * 4 + 2]?.fee; targetRow.getCell(i * 7 + 6).value = numberFormatter(allAddtional[i * 4 + 2]?.fee, 2);
siSum = addNumbers( siSum = addNumbers(
siSum, siSum,
toFiniteNumber(allAddtional[i * 4]?.fee), toFiniteNumber(allAddtional[i * 4]?.fee),
@ -1283,7 +1591,7 @@ async function generateTemplate(data) {
if (i == yz01Num - 1 && yz01Mod == 0) { if (i == yz01Num - 1 && yz01Mod == 0) {
targetRow.getCell(i * 7 + 7).value = numberFormatter(siSum, 2); targetRow.getCell(i * 7 + 7).value = numberFormatter(siSum, 2);
} else { } else {
targetRow.getCell(i * 7 + 7).value = allAddtional[i * 4 + 3]?.fee; targetRow.getCell(i * 7 + 7).value = numberFormatter(allAddtional[i * 4 + 3]?.fee, 2);
siSum = addNumbers(siSum, toFiniteNumber(allAddtional[i * 4 + 3]?.fee)); siSum = addNumbers(siSum, toFiniteNumber(allAddtional[i * 4 + 3]?.fee));
} }
} }
@ -1294,12 +1602,12 @@ async function generateTemplate(data) {
if (yz01Mod == 1) { if (yz01Mod == 1) {
targetRow.getCell(yz01Num * 7 + 4).value = numberFormatter(siSum, 2); targetRow.getCell(yz01Num * 7 + 4).value = numberFormatter(siSum, 2);
} else if (yz01Mod == 2) { } else if (yz01Mod == 2) {
targetRow.getCell(yz01Num * 7 + 4).value = allAddtional[yz01Num * 4]?.fee; targetRow.getCell(yz01Num * 7 + 4).value = numberFormatter(allAddtional[yz01Num * 4]?.fee, 2);
siSum = addNumbers(siSum, toFiniteNumber(allAddtional[yz01Num * 4]?.fee)); siSum = addNumbers(siSum, toFiniteNumber(allAddtional[yz01Num * 4]?.fee));
targetRow.getCell(yz01Num * 7 + 5).value = numberFormatter(siSum, 2); targetRow.getCell(yz01Num * 7 + 5).value = numberFormatter(siSum, 2);
} else { } else {
targetRow.getCell(yz01Num * 7 + 4).value = allAddtional[yz01Num * 4]?.fee; targetRow.getCell(yz01Num * 7 + 4).value = numberFormatter(allAddtional[yz01Num * 4]?.fee, 2);
targetRow.getCell(yz01Num * 7 + 5).value = allAddtional[yz01Num * 4 + 1]?.fee; targetRow.getCell(yz01Num * 7 + 5).value = numberFormatter(allAddtional[yz01Num * 4 + 1]?.fee, 2);
siSum = addNumbers( siSum = addNumbers(
siSum, siSum,
toFiniteNumber(allAddtional[yz01Num * 4]?.fee), toFiniteNumber(allAddtional[yz01Num * 4]?.fee),
@ -1319,9 +1627,9 @@ async function generateTemplate(data) {
targetRow.getCell(i * 7 + 1).value = allServices.length + endRows; targetRow.getCell(i * 7 + 1).value = allServices.length + endRows;
targetRow.getCell(i * 7 + 2).value = allReserve[firstNum].code; targetRow.getCell(i * 7 + 2).value = allReserve[firstNum].code;
targetRow.getCell(i * 7 + 3).value = allReserve[firstNum].name; targetRow.getCell(i * 7 + 3).value = allReserve[firstNum].name;
targetRow.getCell(i * 7 + 4).value = allReserve[i * 4]?.fee; targetRow.getCell(i * 7 + 4).value = numberFormatter(allReserve[i * 4]?.fee, 2);
targetRow.getCell(i * 7 + 5).value = allReserve[i * 4 + 1]?.fee; targetRow.getCell(i * 7 + 5).value = numberFormatter(allReserve[i * 4 + 1]?.fee, 2);
targetRow.getCell(i * 7 + 6).value = allReserve[i * 4 + 2]?.fee; targetRow.getCell(i * 7 + 6).value = numberFormatter(allReserve[i * 4 + 2]?.fee, 2);
siSum = addNumbers( siSum = addNumbers(
siSum, siSum,
toFiniteNumber(allReserve[i * 4]?.fee), toFiniteNumber(allReserve[i * 4]?.fee),
@ -1331,7 +1639,7 @@ async function generateTemplate(data) {
if (i == yz01Num - 1 && yz01Mod == 0) { if (i == yz01Num - 1 && yz01Mod == 0) {
targetRow.getCell(i * 7 + 7).value = numberFormatter(siSum, 2); targetRow.getCell(i * 7 + 7).value = numberFormatter(siSum, 2);
} else { } else {
targetRow.getCell(i * 7 + 7).value = allReserve[i * 4 + 3]?.fee; targetRow.getCell(i * 7 + 7).value = numberFormatter(allReserve[i * 4 + 3]?.fee, 2);
siSum = addNumbers(siSum, toFiniteNumber(allReserve[i * 4 + 3]?.fee)); siSum = addNumbers(siSum, toFiniteNumber(allReserve[i * 4 + 3]?.fee));
} }
} }
@ -1342,12 +1650,12 @@ async function generateTemplate(data) {
if (yz01Mod == 1) { if (yz01Mod == 1) {
targetRow.getCell(yz01Num * 7 + 4).value = numberFormatter(siSum, 2); targetRow.getCell(yz01Num * 7 + 4).value = numberFormatter(siSum, 2);
} else if (yz01Mod == 2) { } else if (yz01Mod == 2) {
targetRow.getCell(yz01Num * 7 + 4).value = allReserve[yz01Num * 4]?.fee; targetRow.getCell(yz01Num * 7 + 4).value = numberFormatter(allReserve[yz01Num * 4]?.fee, 2);
siSum = addNumbers(siSum, toFiniteNumber(allReserve[yz01Num * 4]?.fee)); siSum = addNumbers(siSum, toFiniteNumber(allReserve[yz01Num * 4]?.fee));
targetRow.getCell(yz01Num * 7 + 5).value = numberFormatter(siSum, 2); targetRow.getCell(yz01Num * 7 + 5).value = numberFormatter(siSum, 2);
} else { } else {
targetRow.getCell(yz01Num * 7 + 4).value = allReserve[yz01Num * 4]?.fee; targetRow.getCell(yz01Num * 7 + 4).value = numberFormatter(allReserve[yz01Num * 4]?.fee, 2);
targetRow.getCell(yz01Num * 7 + 5).value = allReserve[yz01Num * 4 + 1]?.fee; targetRow.getCell(yz01Num * 7 + 5).value = numberFormatter(allReserve[yz01Num * 4 + 1]?.fee, 2);
siSum = addNumbers( siSum = addNumbers(
siSum, siSum,
toFiniteNumber(allReserve[yz01Num * 4]?.fee), toFiniteNumber(allReserve[yz01Num * 4]?.fee),
@ -1361,13 +1669,13 @@ async function generateTemplate(data) {
const yz01SumRow = yz01_sheet.getRow(allServices.length + endRows + 3); const yz01SumRow = yz01_sheet.getRow(allServices.length + endRows + 3);
for (let i = 0; i < yz01Num; i++) { for (let i = 0; i < yz01Num; i++) {
yz01SumRow.getCell(i * 7 + 1).value = allServices.length + endRows + 1; yz01SumRow.getCell(i * 7 + 1).value = allServices.length + endRows + 1;
yz01SumRow.getCell(i * 7 + 4).value = data.contracts[i * 4]?.fee; yz01SumRow.getCell(i * 7 + 4).value = numberFormatter(data.contracts[i * 4]?.fee, 2);
yz01SumRow.getCell(i * 7 + 5).value = data.contracts[i * 4 + 1]?.fee; yz01SumRow.getCell(i * 7 + 5).value = numberFormatter(data.contracts[i * 4 + 1]?.fee, 2);
yz01SumRow.getCell(i * 7 + 6).value = data.contracts[i * 4 + 2]?.fee; yz01SumRow.getCell(i * 7 + 6).value = numberFormatter(data.contracts[i * 4 + 2]?.fee, 2);
if (i == yz01Num - 1 && yz01Mod == 0) { if (i == yz01Num - 1 && yz01Mod == 0) {
yz01SumRow.getCell(i * 7 + 7).value = numberFormatter(data.fee, 2); yz01SumRow.getCell(i * 7 + 7).value = numberFormatter(data.fee, 2);
} else { } else {
yz01SumRow.getCell(i * 7 + 7).value = data.contracts[i * 4 + 3]?.fee; yz01SumRow.getCell(i * 7 + 7).value = numberFormatter(data.contracts[i * 4 + 3]?.fee, 2);
} }
} }
if (yz01Mod) { if (yz01Mod) {
@ -1375,11 +1683,11 @@ async function generateTemplate(data) {
if (yz01Mod == 1) { if (yz01Mod == 1) {
yz01SumRow.getCell(yz01Num * 7 + 4).value = numberFormatter(data.fee, 2); yz01SumRow.getCell(yz01Num * 7 + 4).value = numberFormatter(data.fee, 2);
} else if (yz01Mod == 2) { } else if (yz01Mod == 2) {
yz01SumRow.getCell(yz01Num * 7 + 4).value = data.contracts[yz01Num * 4]?.fee; yz01SumRow.getCell(yz01Num * 7 + 4).value = numberFormatter(data.contracts[yz01Num * 4]?.fee, 2);
yz01SumRow.getCell(yz01Num * 7 + 5).value = numberFormatter(data.fee, 2); yz01SumRow.getCell(yz01Num * 7 + 5).value = numberFormatter(data.fee, 2);
} else { } else {
yz01SumRow.getCell(yz01Num * 7 + 4).value = data.contracts[yz01Num * 4]?.fee; yz01SumRow.getCell(yz01Num * 7 + 4).value = numberFormatter(data.contracts[yz01Num * 4]?.fee, 2);
yz01SumRow.getCell(yz01Num * 7 + 5).value = data.contracts[yz01Num * 4 + 1]?.fee; yz01SumRow.getCell(yz01Num * 7 + 5).value = numberFormatter(data.contracts[yz01Num * 4 + 1]?.fee, 2);
yz01SumRow.getCell(yz01Num * 7 + 6).value = numberFormatter(data.fee, 2); yz01SumRow.getCell(yz01Num * 7 + 6).value = numberFormatter(data.fee, 2);
} }
} }
@ -1438,9 +1746,9 @@ async function generateTemplate(data) {
workbook.removeWorksheet('预i-4表'); workbook.removeWorksheet('预i-4表');
workbook.removeWorksheet('预i-4-1表'); workbook.removeWorksheet('预i-4-1表');
workbook.removeWorksheet('预i-5表'); workbook.removeWorksheet('预i-5表');
workbook.getWorksheet('辅01表').orderNo = ml_number + 2 + 11; f01_sheet.orderNo = ml_number + 2 + 11;
workbook.getWorksheet('辅02表').orderNo = ml_number + 3 + 11; f02_sheet.orderNo = ml_number + 3 + 11;
workbook.getWorksheet('辅03表').orderNo = ml_number + 4 + 11; f03_sheet.orderNo = ml_number + 4 + 11;
workbook._worksheets.forEach(sheet => { workbook._worksheets.forEach(sheet => {
if (sheet) { if (sheet) {