From 398fca926575eddb56c30fdef787862ad0f06461 Mon Sep 17 00:00:00 2001 From: ForeverSmiYng Date: Thu, 12 Mar 2026 10:46:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=8A=A5=E8=A1=A8=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/template20260226001test010.xlsx | Bin 30739 -> 32181 bytes src/sql.ts | 270 ++++++++----------------- 2 files changed, 87 insertions(+), 183 deletions(-) diff --git a/public/template20260226001test010.xlsx b/public/template20260226001test010.xlsx index 4f6ca050344585ff96bd796ad6393eeaa94e0722..e986e96accf4fafb715eba898da7092f77e01018 100644 GIT binary patch delta 26966 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 Ph57*x1=Zp5=ga>e#j31u delta 25572 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�nvU8<{jsfk|6 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 diff --git a/src/sql.ts b/src/sql.ts index 339e59d..9d24351 100644 --- a/src/sql.ts +++ b/src/sql.ts @@ -2,6 +2,7 @@ import { addNumbers, roundTo, toDecimal } from '@/lib/decimal' import { formatThousands } from '@/lib/numberFormat' import ExcelJS from "ExcelJS"; +import { number } from 'motion-v/es'; // 统一数字千分位格式化,默认保留 2 位小数。 const numberFormatter = (value: unknown, fractionDigits = 2) => formatThousands(value, fractionDigits) @@ -151,8 +152,7 @@ export const expertList = { 7: { code: 'C9-3-2', name: '一级造价工程师且具备高级工程师资格', maxPrice: 2000, minPrice: 1800, defPrice: 1900, manageCoe: 2.05 }, }; -export const additionalWorkList -=['人员驻场服务及其他附加工作','咨询服务协调工作'] +export const additionalWorkList = ['人员驻场服务及其他附加工作', '咨询服务协调工作']; let costScaleCal = [ { code: 'C1-1', staLine: 0, endLine: 100, basic: { staPrice: 0, rate: 0.01 }, optional: { staPrice: 0, rate: 0.002 } }, @@ -552,182 +552,7 @@ export async function exportFile(fileName: string, data: any): Promise { // 按模板生成最终工作簿:填充封面、目录、各分表及汇总数据。 async function generateTemplate(data) { // const downTextTmp = { richText: [{ font: { charset: 134, color: { theme: 1 }, italic: true, name: '宋体', size: 10 }, text: '常规' }, { font: { charset: 134, color: { theme: 1 }, italic: true, name: 'Calibri', size: 10, vertAlign: 'subscript' }, text: '下标' }] }; - - data.contracts[0].addtional = {// 附加工作费 - code: { richText: [{ font: { charset: 134, color: { theme: 1 }, italic: true, name: '宋体', size: 10 }, text: 'C' }, { font: { charset: 134, color: { theme: 1 }, italic: true, name: 'Calibri', size: 10, vertAlign: 'subscript' }, text: 'C' }] }, - name: '附加工作', - fee: 10000, - det: [ - { - id: 0, - code: { richText: [{ font: { charset: 134, color: { theme: 1 }, italic: true, name: '宋体', size: 10 }, text: 'C' }, { font: { charset: 134, color: { theme: 1 }, italic: true, name: 'Calibri', size: 10, vertAlign: 'subscript' }, text: 'F' }] }, - name: '人员驻场服务及其他附加工作', - fee: 10000, - m4: { - person_num: 10, - work_day: 3, - fee: 10000, - det: [ - { - expert: 0, - price: 100000, - person_num: 10, - work_day: 3, - fee: 100000, - remark: '',// 用户输入的说明 - }, - { - expert: 1, - price: 100000, - person_num: 10, - work_day: 3, - fee: 100000, - remark: '',// 用户输入的说明 - }, - ], - }, - m5: {//数量单价 - fee: 10000, - det: [ - { - name: '×××项', - unit: '项', - amount: 10, - price: 100000, - fee: 100000, - remark: '',// 用户输入的说明 - }, - { - name: '×××项', - unit: '项', - amount: 10, - price: 100000, - fee: 100000, - remark: '',// 用户输入的说明 - }, - ], - }, - }, - { - id: 1, - code: { richText: [{ font: { charset: 134, color: { theme: 1 }, italic: true, name: '宋体', size: 10 }, text: 'C' }, { font: { charset: 134, color: { theme: 1 }, italic: true, name: 'Calibri', size: 10, vertAlign: 'subscript' }, text: 'X' }] }, - name: '咨询服务协调工作', - fee: 10000, - m0: { //费率计取 - - coe: 0.03,//费率 - fee: 10000, - }, - m4: { //工时法 - person_num: 10, - work_day: 3, - fee: 10000, - det: [ - { - expert: 0, - price: 100000, - person_num: 10, - work_day: 3, - fee: 100000, - remark: '',// 用户输入的说明 - }, - { - expert: 1, - price: 100000, - person_num: 10, - work_day: 3, - fee: 100000, - remark: '',// 用户输入的说明 - }, - ], - }, - m5: { - fee: 10000, - det: [ - { - name: '×××项', - unit: '项', - amount: 10, - price: 100000, - fee: 100000, - remark: '',// 用户输入的说明 - }, - { - name: '×××项', - unit: '项', - amount: 10, - price: 100000, - fee: 100000, - remark: '',// 用户输入的说明 - }, - ], - }, - }, - ] - }; - data.contracts[0].reserve = {// 预备费 - code: { richText: [{ font: { charset: 134, color: { theme: 1 }, italic: true, name: '宋体', size: 10 }, text: 'Y' }, { font: { charset: 134, color: { theme: 1 }, italic: true, name: 'Calibri', size: 10, vertAlign: 'subscript' }, text: 'B' }] }, - name: '预备费', - fee: 10000, - m0: { - coe: 0.03, - fee: 10000, - }, - m4: { - person_num: 10, - work_day: 3, - fee: 10000, - det: [ - { - expert: 0, - price: 100000, - person_num: 10, - work_day: 3, - fee: 100000, - remark: '',// 用户输入的说明 - }, - { - expert: 1, - price: 100000, - person_num: 10, - work_day: 3, - fee: 100000, - remark: '',// 用户输入的说明 - }, - ], - }, - m5: { - fee: 10000, - det: [ - { - name: '×××项', - unit: '项', - amount: 10, - price: 100000, - fee: 100000, - remark: '',// 用户输入的说明 - }, - { - name: '×××项', - unit: '项', - amount: 10, - price: 100000, - fee: 100000, - remark: '',// 用户输入的说明 - }, - ], - } - }; - data.contracts[1].addtional = null; - data.contracts[1].reserve = null; - data.contracts[2].addtional = null; - data.contracts[2].reserve = null; - data.contracts[3].addtional = null; - data.contracts[3].reserve = null; - data.contracts[4].addtional = null; - data.contracts[4].reserve = null; - // data.contracts[5].addtional = null; - // data.contracts[5].reserve = null; + console.log(data) try { // 获取模板 let templateExcel = 'template20260226001test010'; @@ -1780,7 +1605,7 @@ async function generateTemplate(data) { } } let num_f01 = 1; - Object.keys(allMajors).sort((a, b) => majorList[a].order - majorList[b].order).forEach(majorid => { + Object.keys(allMajors).sort((a, b) => (a < 0 ? a : majorList[a].order) - (b < 0 ? b : majorList[b].order)).forEach(majorid => { let scaleX = allMajors[majorid]; let code; let name; @@ -1843,7 +1668,7 @@ async function generateTemplate(data) { }); f01_sheet.spliceRows(3, 1); // f01_sheet.getRow(2).height = 27; - f01_sheet.orderNo = ml_number + 2 + 11; + f01_sheet.orderNo = ml_number + 2 + 12; } else { workbook.removeWorksheet('辅01表'); } @@ -1864,14 +1689,14 @@ async function generateTemplate(data) { }); }); f02_sheet.spliceRows(2, 1); - f02_sheet.orderNo = ml_number + 3 + 11; + f02_sheet.orderNo = ml_number + 3 + 12; } else { workbook.removeWorksheet('辅02表'); } if (data.majorCoes?.length) { let f03_sheet = workbook.getWorksheet('辅03表'); let num_f03 = 1; - data.majorCoes.sort((a, b) => majorList[a.majorid].order - majorList[b.majorid].order).forEach(mcoei => { + data.majorCoes.sort((a, b) => (a < 0 ? a : majorList[a.majorid].order) - (b < 0 ? b : majorList[b.majorid].order)).forEach(mcoei => { let majorCoeX = majorList[mcoei.majorid]; cusInsertRowFunc(2 + num_f03, [f03_sheet.getRow(2)], f03_sheet, (targetRow) => { targetRow.getCell(1).value = num_f03++; @@ -1883,7 +1708,7 @@ async function generateTemplate(data) { }); }); f03_sheet.spliceRows(2, 1); - f03_sheet.orderNo = ml_number + 4 + 11; + f03_sheet.orderNo = ml_number + 4 + 12; } else { workbook.removeWorksheet('辅03表'); } @@ -1898,6 +1723,85 @@ async function generateTemplate(data) { window.workbook = workbook; + // 更新编制说明 + const canvas = document.createElement("canvas"); + const ctx = canvas.getContext("2d"); + // ctx.font = "12pt 宋体"; + // const maxTitleWidth = 336; + // const maxTextWidth = 720; + const pageMaxHei = 733; + // 20.25 25.5 33.75 + const titleHeiDet = { fir: 11.25, els: 22.5 }; + const textHeiDet = { fir: 6.75, els: 13.5 }; + + const descSheet = workbook.getWorksheet('编制说明'); + descSheet.getRow(1).getCell(1).value = data.name; + let descRowNum = 5; + if (data.scale?.length) { + let engCosts = data.scale.filter(f => f.major > 6 && majorList[f.major].hasCost); + if (engCosts.length) { + descRowNum++; + let copyRowNum = descRowNum; + engCosts.forEach((sci, scindex) => { + descRowNum++; + cusInsertRowFunc(descRowNum, [descSheet.getRow(copyRowNum)], descSheet, (targetRow) => { + targetRow.getCell(1).value = ` ${scindex + 1}.${majorList[sci.major].name}${Number(sci.cost).toLocaleString()}万元${scindex == engCosts.length - 1 ? '。' : ';'}`; + }); + }); + descSheet.spliceRows(copyRowNum, 1); + } else { + descSheet.spliceRows(descRowNum, 2); + descSheet.getRow(descRowNum).getCell(1).value = ' (二)本项目征地拆迁费包括:'; + descSheet.getRow(descRowNum + 2).getCell(1).value = ' (三)其他费用包括:'; + } + let zcScales = data.scale.filter(f => [1, 2, 3].includes(f.major)); + if (zcScales.length) { + descRowNum++; + let copyRowNum = descRowNum; + zcScales.forEach((sci, scindex) => { + descRowNum++; + cusInsertRowFunc(descRowNum, [descSheet.getRow(copyRowNum)], descSheet, (targetRow) => { + switch (sci.major) { + case 1: + let desc1 = []; + if (sci.area) desc1.push(`征地总面积约${Number(sci.area).toLocaleString()}亩`); + if (sci.cost) desc1.push(`征地补偿费用${Number(sci.cost).toLocaleString()}万元`); + targetRow.getCell(1).value = ` ${scindex + 1}.征地情况:${desc1.join(',')}。`; + break; + case 2: + let desc2 = []; + if (sci.area) desc2.push(`拆迁总面积约${Number(sci.area).toLocaleString()}亩`); + if (sci.cost) desc2.push(`拆迁补偿费用${Number(sci.cost).toLocaleString()}万元`); + targetRow.getCell(1).value = ` ${scindex + 1}.拆迁补偿情况:${desc2.join(',')}。`; + break; + case 3: + targetRow.getCell(1).value = ` ${scindex + 1}.迁改工程情况:费用${Number(sci.cost).toLocaleString()}万元。`; + break; + } + }); + }); + descSheet.spliceRows(copyRowNum, 1); + } else { + descSheet.spliceRows(descRowNum, 2); + descSheet.getRow(descRowNum).getCell(1).value = engCosts.length ? ' (三)其他费用包括:' : ' (二)其他费用包括:'; + } + let otherCosts = data.scale.filter(f => [4, 5, 6].includes(f.major)); + if (otherCosts.length) { + let desc = []; + otherCosts.forEach(sci => { + desc.push(`${majorList[sci.major].name}${Number(sci.cost).toLocaleString()}万元`); + }); + descSheet.getRow(descRowNum).getCell(1).value = descSheet.getRow(descRowNum).getCell(1).value + `${desc.join(',')}。`; + descRowNum++; + } else { + descSheet.spliceRows(descRowNum, 1); + } + } else { + descSheet.spliceRows(descRowNum, 5); + descRowNum++; + } + console.log(descRowNum); + return workbook; } catch (error) { console.log(error)