diff --git a/public/template20260226001test010.xlsx b/public/template20260226001test010.xlsx index eb34e3d..4f6ca05 100644 Binary files a/public/template20260226001test010.xlsx and b/public/template20260226001test010.xlsx differ diff --git a/public/标准文件转代码Data.xlsx b/public/标准文件转代码Data.xlsx index bc46a46..0a8dd64 100644 Binary files a/public/标准文件转代码Data.xlsx and b/public/标准文件转代码Data.xlsx differ diff --git a/src/sql.ts b/src/sql.ts index bd20c06..9389aeb 100644 --- a/src/sql.ts +++ b/src/sql.ts @@ -737,6 +737,9 @@ async function generateTemplate(data) { let ml_sheet = workbook.getWorksheet('目录'); let yz01_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; @@ -913,15 +916,15 @@ async function generateTemplate(data) { fee: addNumbers(a.fee, toFiniteNumber(b?.fee)) }; }, { person_num: 0, work_day: 0, fee: 0 }); - sheet_4.getRow(3).getCell(4).value = sumObj.person_num; - sheet_4.getRow(3).getCell(5).value = sumObj.work_day; - sheet_4.getRow(3).getCell(6).value = sumObj.fee; - sheet_4_1.getRow(4).getCell(4).value = '/'; - sheet_4_1.getRow(4).getCell(5).value = '/'; - sheet_4_1.getRow(4).getCell(6).value = '/'; - sheet_4_1.getRow(4).getCell(7).value = sumObj.person_num; - sheet_4_1.getRow(4).getCell(8).value = sumObj.work_day; - sheet_4_1.getRow(4).getCell(9).value = sumObj.fee + sheet_4.getRow(3).getCell(4).value = numberFormatter(sumObj.person_num, 0); + sheet_4.getRow(3).getCell(5).value = numberFormatter(sumObj.work_day, 2); + sheet_4.getRow(3).getCell(6).value = numberFormatter(sumObj.fee, 2); + sheet_4_1.getRow(3).getCell(4).value = '/'; + sheet_4_1.getRow(3).getCell(5).value = '/'; + sheet_4_1.getRow(3).getCell(6).value = '/'; + sheet_4_1.getRow(3).getCell(7).value = numberFormatter(sumObj.person_num, 0); + sheet_4_1.getRow(3).getCell(8).value = numberFormatter(sumObj.work_day, 2); + sheet_4_1.getRow(3).getCell(9).value = numberFormatter(sumObj.fee, 2); } if (ci.method5) { 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.getRow(3).getCell(4).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(3).value = serviceX.name; if (sobj.method1) { - targetRow.getCell(4).value = sobj.method1.fee; + targetRow.getCell(4).value = numberFormatter(sobj.method1.fee, 2); m1Sum += sobj.method1.fee; } if (sobj.method2) { - targetRow.getCell(5).value = sobj.method2.fee; + targetRow.getCell(5).value = numberFormatter(sobj.method2.fee, 2); m2Sum += sobj.method2.fee; } if (sobj.method3) { - targetRow.getCell(6).value = sobj.method3.fee; + targetRow.getCell(6).value = numberFormatter(sobj.method3.fee, 2); m3Sum += sobj.method3.fee; } if (sobj.method4) { - targetRow.getCell(7).value = sobj.method4.fee; + targetRow.getCell(7).value = numberFormatter(sobj.method4.fee, 2); m4Sum += sobj.method4.fee; } - targetRow.getCell(8).value = sobj.fee; + targetRow.getCell(8).value = numberFormatter(sobj.fee, 2); serviceSum += sobj.fee; }); 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) => { targetRow.getCell(1).value = num_2++; targetRow.getCell(2).value = serviceX.code; @@ -1014,85 +1007,221 @@ async function generateTemplate(data) { targetRow.getCell(6).value = '/'; targetRow.getCell(7).value = '/'; if (sobj.method1) { - targetRow.getCell(8).value = sobj.method1.basicFee; - targetRow.getCell(9).value = sobj.method1.fee; + targetRow.getCell(8).value = numberFormatter(sobj.method1.basicFee, 2); + targetRow.getCell(9).value = numberFormatter(sobj.method1.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; 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(6).value = sobj.method1.basicFee_basic; + targetRow.getCell(6).value = numberFormatter(sobj.method1.basicFee_basic, 2); targetRow.getCell(7).value = '/'; - targetRow.getCell(8).value = sobj.method1.basicFee_optional; - targetRow.getCell(9).value = sobj.method1.basicFee; + targetRow.getCell(8).value = numberFormatter(sobj.method1.basicFee_optional, 2); + targetRow.getCell(9).value = numberFormatter(sobj.method1.basicFee, 2); }); } if (sobj.method2) { - targetRow.getCell(10).value = sobj.method2.basicFee; - targetRow.getCell(11).value = sobj.method2.fee; + targetRow.getCell(10).value = numberFormatter(sobj.method2.basicFee, 2); + targetRow.getCell(11).value = numberFormatter(sobj.method2.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; 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(6).value = sobj.method2.basicFee_basic; + targetRow.getCell(6).value = numberFormatter(sobj.method2.basicFee_basic, 2); targetRow.getCell(7).value = '/'; - targetRow.getCell(8).value = sobj.method2.basicFee_optional; - targetRow.getCell(9).value = sobj.method2.basicFee; + targetRow.getCell(8).value = numberFormatter(sobj.method2.basicFee_optional, 2); + targetRow.getCell(9).value = numberFormatter(sobj.method2.basicFee, 2); }); } }); - 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 + '-' + (mindex + 1); - targetRow.getCell(3).value = majorX.name; - if (m.mth1) { - targetRow.getCell(4).value = m.mth1.serviceCoe; - targetRow.getCell(5).value = m.mth1.majorCoe; - targetRow.getCell(6).value = m.mth1.processCoe; - targetRow.getCell(7).value = m.mth1.proportion; - targetRow.getCell(8).value = m.mth1.basicFee; - targetRow.getCell(9).value = m.mth1.fee; - targetRow.getCell(10).value = 0; - targetRow.getCell(11).value = 0; - 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 + '-' + (mindex + 1); + 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; - targetRow.getCell(4).value = m.mth1.cost; - targetRow.getCell(5).value = m.mth1.basicFormula; - targetRow.getCell(6).value = m.mth1.basicFee_basic; - targetRow.getCell(7).value = m.mth1.optionalFormula; - targetRow.getCell(8).value = m.mth1.basicFee_optional; - targetRow.getCell(9).value = m.mth1.basicFee; + 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 { - targetRow.getCell(4).value = m.mth2.serviceCoe; - targetRow.getCell(5).value = m.mth2.majorCoe; - targetRow.getCell(6).value = m.mth2.processCoe; - targetRow.getCell(7).value = m.mth2.proportion; - targetRow.getCell(8).value = 0; - targetRow.getCell(9).value = 0; - targetRow.getCell(10).value = m.mth2.basicFee; - targetRow.getCell(11).value = m.mth2.fee; - 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 + '-' + (mindex + 1); - targetRow.getCell(3).value = majorX.name; - targetRow.getCell(4).value = m.mth2.area; - targetRow.getCell(5).value = m.mth2.basicFormula; - targetRow.getCell(6).value = m.mth2.basicFee_basic; - targetRow.getCell(7).value = m.mth2.optionalFormula; - targetRow.getCell(8).value = m.mth2.basicFee_optional; - targetRow.getCell(9).value = m.mth2.basicFee; - }); - } + }); + } + } 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) => { + 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 + '-' + (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 + '-' + (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 + '-' + (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); + }); + } + }); + }); + } } if (sobj.method3) { cusInsertRowFunc(3 + num_3, [sheet_3.getRow(3)], sheet_3, (targetRow) => { @@ -1102,9 +1231,9 @@ async function generateTemplate(data) { targetRow.getCell(4).value = '/'; targetRow.getCell(5).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(9).value = sobj.method3.fee; + targetRow.getCell(9).value = numberFormatter(sobj.method3.fee, 2); }); sobj.method3.det.forEach((tobj, tindex) => { const taskX = taskList[tobj.task]; @@ -1113,11 +1242,11 @@ async function generateTemplate(data) { targetRow.getCell(2).value = taskX.code; targetRow.getCell(3).value = taskX.name + (taskX.desc ? `(${taskX.desc})` : ''); targetRow.getCell(4).value = taskX.basicParam; - targetRow.getCell(5).value = tobj.price; - targetRow.getCell(6).value = tobj.amount; - targetRow.getCell(7).value = tobj.basicFee; - targetRow.getCell(8).value = tobj.serviceCoe; - targetRow.getCell(9).value = tobj.fee; + targetRow.getCell(5).value = numberFormatter(tobj.price, 2); + targetRow.getCell(6).value = numberFormatter(tobj.amount, 2); + targetRow.getCell(7).value = numberFormatter(tobj.basicFee, 2); + targetRow.getCell(8).value = numberFormatter(tobj.serviceCoe, 3); + targetRow.getCell(9).value = numberFormatter(tobj.fee, 2); }); }); } @@ -1126,33 +1255,33 @@ async function generateTemplate(data) { targetRow.getCell(1).value = num_4++; targetRow.getCell(2).value = serviceX.code; targetRow.getCell(3).value = serviceX.name; - targetRow.getCell(4).value = sobj.method4.person_num; - targetRow.getCell(5).value = sobj.method4.work_day; - targetRow.getCell(6).value = sobj.method4.fee; + targetRow.getCell(4).value = numberFormatter(sobj.method4.person_num, 0); + targetRow.getCell(5).value = numberFormatter(sobj.method4.work_day, 2); + 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(2).value = serviceX.code; targetRow.getCell(3).value = serviceX.name; targetRow.getCell(4).value = '/'; targetRow.getCell(5).value = '/'; targetRow.getCell(6).value = '/'; - targetRow.getCell(7).value = sobj.method4.person_num; - targetRow.getCell(8).value = sobj.method4.work_day; - targetRow.getCell(9).value = sobj.method4.fee; + targetRow.getCell(7).value = numberFormatter(sobj.method4.person_num, 0); + targetRow.getCell(8).value = numberFormatter(sobj.method4.work_day, 2); + targetRow.getCell(9).value = numberFormatter(sobj.method4.fee, 2); }); sobj.method4.det.forEach((eobj, eindex) => { 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(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 = eobj.price; - targetRow.getCell(7).value = eobj.person_num; - targetRow.getCell(8).value = eobj.work_day; - targetRow.getCell(9).value = eobj.fee; + 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; }); }); @@ -1179,7 +1308,7 @@ async function generateTemplate(data) { targetRow.getCell(5).value = ''; targetRow.getCell(6).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) => { endRows++; @@ -1192,17 +1321,196 @@ async function generateTemplate(data) { if (addobj.m4) tmpArr.push(`按工时法计得${addobj.m4.fee}元`); if (addobj.m5) tmpArr.push(`按数量单价计得${addobj.m5.fee}元`); 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.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.getRow(2 + ci.services.length + endRows + 2).height = 100; 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++) { 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) { @@ -1222,9 +1530,9 @@ async function generateTemplate(data) { targetRow.getCell(i * 7 + 1).value = sindex + 1; targetRow.getCell(i * 7 + 2).value = serviceX.code; targetRow.getCell(i * 7 + 3).value = serviceX.name; - targetRow.getCell(i * 7 + 4).value = s.contracts[i * 4]; - targetRow.getCell(i * 7 + 5).value = s.contracts[i * 4 + 1]; - targetRow.getCell(i * 7 + 6).value = s.contracts[i * 4 + 2]; + targetRow.getCell(i * 7 + 4).value = numberFormatter(s.contracts[i * 4], 2); + targetRow.getCell(i * 7 + 5).value = numberFormatter(s.contracts[i * 4 + 1], 2); + targetRow.getCell(i * 7 + 6).value = numberFormatter(s.contracts[i * 4 + 2], 2); siSum = addNumbers( siSum, toFiniteNumber(s.contracts[i * 4]), @@ -1234,7 +1542,7 @@ async function generateTemplate(data) { if (i == yz01Num - 1 && yz01Mod == 0) { targetRow.getCell(i * 7 + 7).value = numberFormatter(siSum, 2); } 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])); } } @@ -1245,12 +1553,12 @@ async function generateTemplate(data) { if (yz01Mod == 1) { targetRow.getCell(yz01Num * 7 + 4).value = numberFormatter(siSum, 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])); targetRow.getCell(yz01Num * 7 + 5).value = numberFormatter(siSum, 2); } else { - targetRow.getCell(yz01Num * 7 + 4).value = s.contracts[yz01Num * 4]; - targetRow.getCell(yz01Num * 7 + 5).value = s.contracts[yz01Num * 4 + 1]; + targetRow.getCell(yz01Num * 7 + 4).value = numberFormatter(s.contracts[yz01Num * 4], 2); + targetRow.getCell(yz01Num * 7 + 5).value = numberFormatter(s.contracts[yz01Num * 4 + 1], 2); siSum = addNumbers( siSum, 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 + 2).value = allAddtional[firstNum].code; targetRow.getCell(i * 7 + 3).value = allAddtional[firstNum].name; - targetRow.getCell(i * 7 + 4).value = allAddtional[i * 4]?.fee; - targetRow.getCell(i * 7 + 5).value = allAddtional[i * 4 + 1]?.fee; - targetRow.getCell(i * 7 + 6).value = allAddtional[i * 4 + 2]?.fee; + targetRow.getCell(i * 7 + 4).value = numberFormatter(allAddtional[i * 4]?.fee, 2); + targetRow.getCell(i * 7 + 5).value = numberFormatter(allAddtional[i * 4 + 1]?.fee, 2); + targetRow.getCell(i * 7 + 6).value = numberFormatter(allAddtional[i * 4 + 2]?.fee, 2); siSum = addNumbers( siSum, toFiniteNumber(allAddtional[i * 4]?.fee), @@ -1283,7 +1591,7 @@ async function generateTemplate(data) { if (i == yz01Num - 1 && yz01Mod == 0) { targetRow.getCell(i * 7 + 7).value = numberFormatter(siSum, 2); } 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)); } } @@ -1294,12 +1602,12 @@ async function generateTemplate(data) { if (yz01Mod == 1) { targetRow.getCell(yz01Num * 7 + 4).value = numberFormatter(siSum, 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)); targetRow.getCell(yz01Num * 7 + 5).value = numberFormatter(siSum, 2); } else { - targetRow.getCell(yz01Num * 7 + 4).value = allAddtional[yz01Num * 4]?.fee; - targetRow.getCell(yz01Num * 7 + 5).value = allAddtional[yz01Num * 4 + 1]?.fee; + targetRow.getCell(yz01Num * 7 + 4).value = numberFormatter(allAddtional[yz01Num * 4]?.fee, 2); + targetRow.getCell(yz01Num * 7 + 5).value = numberFormatter(allAddtional[yz01Num * 4 + 1]?.fee, 2); siSum = addNumbers( siSum, 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 + 2).value = allReserve[firstNum].code; targetRow.getCell(i * 7 + 3).value = allReserve[firstNum].name; - targetRow.getCell(i * 7 + 4).value = allReserve[i * 4]?.fee; - targetRow.getCell(i * 7 + 5).value = allReserve[i * 4 + 1]?.fee; - targetRow.getCell(i * 7 + 6).value = allReserve[i * 4 + 2]?.fee; + targetRow.getCell(i * 7 + 4).value = numberFormatter(allReserve[i * 4]?.fee, 2); + targetRow.getCell(i * 7 + 5).value = numberFormatter(allReserve[i * 4 + 1]?.fee, 2); + targetRow.getCell(i * 7 + 6).value = numberFormatter(allReserve[i * 4 + 2]?.fee, 2); siSum = addNumbers( siSum, toFiniteNumber(allReserve[i * 4]?.fee), @@ -1331,7 +1639,7 @@ async function generateTemplate(data) { if (i == yz01Num - 1 && yz01Mod == 0) { targetRow.getCell(i * 7 + 7).value = numberFormatter(siSum, 2); } 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)); } } @@ -1342,12 +1650,12 @@ async function generateTemplate(data) { if (yz01Mod == 1) { targetRow.getCell(yz01Num * 7 + 4).value = numberFormatter(siSum, 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)); targetRow.getCell(yz01Num * 7 + 5).value = numberFormatter(siSum, 2); } else { - targetRow.getCell(yz01Num * 7 + 4).value = allReserve[yz01Num * 4]?.fee; - targetRow.getCell(yz01Num * 7 + 5).value = allReserve[yz01Num * 4 + 1]?.fee; + targetRow.getCell(yz01Num * 7 + 4).value = numberFormatter(allReserve[yz01Num * 4]?.fee, 2); + targetRow.getCell(yz01Num * 7 + 5).value = numberFormatter(allReserve[yz01Num * 4 + 1]?.fee, 2); siSum = addNumbers( siSum, toFiniteNumber(allReserve[yz01Num * 4]?.fee), @@ -1361,13 +1669,13 @@ async function generateTemplate(data) { const yz01SumRow = yz01_sheet.getRow(allServices.length + endRows + 3); for (let i = 0; i < yz01Num; i++) { 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 + 5).value = data.contracts[i * 4 + 1]?.fee; - yz01SumRow.getCell(i * 7 + 6).value = data.contracts[i * 4 + 2]?.fee; + yz01SumRow.getCell(i * 7 + 4).value = numberFormatter(data.contracts[i * 4]?.fee, 2); + yz01SumRow.getCell(i * 7 + 5).value = numberFormatter(data.contracts[i * 4 + 1]?.fee, 2); + yz01SumRow.getCell(i * 7 + 6).value = numberFormatter(data.contracts[i * 4 + 2]?.fee, 2); if (i == yz01Num - 1 && yz01Mod == 0) { yz01SumRow.getCell(i * 7 + 7).value = numberFormatter(data.fee, 2); } 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) { @@ -1375,11 +1683,11 @@ async function generateTemplate(data) { if (yz01Mod == 1) { yz01SumRow.getCell(yz01Num * 7 + 4).value = numberFormatter(data.fee, 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); } else { - yz01SumRow.getCell(yz01Num * 7 + 4).value = data.contracts[yz01Num * 4]?.fee; - yz01SumRow.getCell(yz01Num * 7 + 5).value = data.contracts[yz01Num * 4 + 1]?.fee; + yz01SumRow.getCell(yz01Num * 7 + 4).value = numberFormatter(data.contracts[yz01Num * 4]?.fee, 2); + yz01SumRow.getCell(yz01Num * 7 + 5).value = numberFormatter(data.contracts[yz01Num * 4 + 1]?.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-1表'); workbook.removeWorksheet('预i-5表'); - workbook.getWorksheet('辅01表').orderNo = ml_number + 2 + 11; - workbook.getWorksheet('辅02表').orderNo = ml_number + 3 + 11; - workbook.getWorksheet('辅03表').orderNo = ml_number + 4 + 11; + f01_sheet.orderNo = ml_number + 2 + 11; + f02_sheet.orderNo = ml_number + 3 + 11; + f03_sheet.orderNo = ml_number + 4 + 11; workbook._worksheets.forEach(sheet => { if (sheet) {