From 7409ea825b1c615c1afadf42ad7817271be42ed6 Mon Sep 17 00:00:00 2001 From: Harry Yang Date: Thu, 5 Jan 2023 18:23:58 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=87=E8=B4=AD=E5=90=88=E5=90=8C=20?= =?UTF-8?q?=E5=90=88=E5=90=8C=E9=87=91=E9=A2=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/backend/ProcessController.java | 13 +++++++++++++ .../model/process/ProjectProcessDetail.java | 2 ++ .../admin/business/process-detail.ftl | 11 +++++++---- .../templates/admin/business/process-edit.ftl | 14 ++++++++++++-- .../templates/admin/business/process-new.ftl | 18 +++++++++++++++--- 5 files changed, 49 insertions(+), 9 deletions(-) diff --git a/src/main/java/cn/palmte/work/controller/backend/ProcessController.java b/src/main/java/cn/palmte/work/controller/backend/ProcessController.java index 4de99ad..f27474d 100644 --- a/src/main/java/cn/palmte/work/controller/backend/ProcessController.java +++ b/src/main/java/cn/palmte/work/controller/backend/ProcessController.java @@ -382,11 +382,24 @@ public class ProcessController { if (process.getProcessType() == ProcessType.sale_contract) { contract = processService.findSaleContract(id); incomeDetails = projectBudgetService.getBudgetIncomeDetail(project); + detail.setContractAmount(project.getContractAmount()); } else if (process.getProcessType() == ProcessType.procurement_contract) { contract = processService.findProcurementContract(id); supplierMaterials = processService.getSupplierMaterials(id); procurementDetails = processService.getProcurementDetails(project.getId(), id); + BigDecimal contractAmount = BigDecimal.ZERO; + for (ProcurementDetail procurementDetail : procurementDetails) { + if (!CollectionUtils.isEmpty(procurementDetail.getPurchaseDetails())) { + for (BudgetPurchaseDetail purchaseDetail : procurementDetail.getPurchaseDetails()) { + BigDecimal totalTaxInclude = purchaseDetail.getTotalTaxInclude(); + if (totalTaxInclude != null) { + contractAmount = contractAmount.add(totalTaxInclude); + } + } + } + } + detail.setContractAmount(contractAmount); } detail.setIsPrepaid(isPrepaid(repaidAmount)); diff --git a/src/main/java/cn/palmte/work/model/process/ProjectProcessDetail.java b/src/main/java/cn/palmte/work/model/process/ProjectProcessDetail.java index 37ed4e3..56b9ba9 100644 --- a/src/main/java/cn/palmte/work/model/process/ProjectProcessDetail.java +++ b/src/main/java/cn/palmte/work/model/process/ProjectProcessDetail.java @@ -41,6 +41,8 @@ public class ProjectProcessDetail { public List supplierMaterials; public List procurementDetails; + public BigDecimal contractAmount; + public void setCooperationType(CooperationType cooperationType) { this.cooperationType = cooperationType; this.cooperationTypeDesc = Optional.ofNullable(cooperationType) diff --git a/src/main/resources/templates/admin/business/process-detail.ftl b/src/main/resources/templates/admin/business/process-detail.ftl index ba49cc8..9ec2748 100644 --- a/src/main/resources/templates/admin/business/process-detail.ftl +++ b/src/main/resources/templates/admin/business/process-detail.ftl @@ -82,7 +82,7 @@ {{process.contractName|ellipsis}} - {{project.contractAmount}}元 + {{contractAmount|numberFormat}}元 @@ -119,7 +119,7 @@ {{process.taxRate}}% ${isPrepaid} - ${repaidAmount}元 + {{repaidAmount|numberFormat}}元 {{budgetGrossMargin}}% @@ -403,7 +403,7 @@ .then(parseJSON) .then(data => { const { - budgetGrossMargin, + budgetGrossMargin, contractAmount, attachments, processId, isPrepaid, repaidAmount, incomeDetails, process, projectType, cooperationType, contract, supplierMaterials, procurementDetails, project @@ -448,6 +448,7 @@ this.process = process this.project = project this.isPrepaid = isPrepaid + this.contractAmount = contractAmount this.repaidAmount = repaidAmount this.contract = contract this.processId = processId @@ -597,7 +598,9 @@ } return value }, - + numberFormat(value) { + return numberFixed(value) + } } }) diff --git a/src/main/resources/templates/admin/business/process-edit.ftl b/src/main/resources/templates/admin/business/process-edit.ftl index b3c7028..289d820 100644 --- a/src/main/resources/templates/admin/business/process-edit.ftl +++ b/src/main/resources/templates/admin/business/process-edit.ftl @@ -141,7 +141,7 @@ - {{project.contractAmount}}元 + {{contractAmount|numberFormat}}元 @@ -738,6 +738,7 @@ .then(parseJSON) .then(data => { const { + contractAmount, incomeDetails, process, supplierMaterials, project, contract, procurementDetails, attachments, ...form } = data @@ -765,10 +766,16 @@ const applyDeptId = process?.applyDeptId?.split(',').map(id => parseInt(id)) this.initForm({ ...form, ...process, ...contract, applyDeptId }) this.projectSelected = true + this.contractAmount = contractAmount this.processType = process.processType let indexCounter = 1; this.incomeDetails = incomeDetails && incomeDetails.map(detail => ({ - ...detail, type: computeType(detail.type), index: indexCounter++ // 用于记录序号,展示或者定位 + ...detail, type: computeType(detail.type), index: indexCounter++,// 用于记录序号,展示或者定位 + price: numberFixed(detail.price), + totalTax: numberFixed(detail.totalTax), + payAmount: numberFixed(detail.payAmount), + totalTaxExclude: numberFixed(detail.totalTaxExclude), + totalTaxInclude: numberFixed(detail.totalTaxInclude), })) this.project = project @@ -1289,6 +1296,9 @@ return value.slice(0, limit) + '...' } return value + }, + numberFormat(value) { + return numberFixed(value) } } }) diff --git a/src/main/resources/templates/admin/business/process-new.ftl b/src/main/resources/templates/admin/business/process-new.ftl index cb673c6..ed6be40 100644 --- a/src/main/resources/templates/admin/business/process-new.ftl +++ b/src/main/resources/templates/admin/business/process-new.ftl @@ -120,7 +120,7 @@ - + @@ -508,7 +508,7 @@ - + @@ -970,6 +970,11 @@ let indexCounter = 1; this.incomeDetails = incomeDetails && incomeDetails.map(detail => ({ ...detail, type: computeType(detail.type), + price: numberFixed(detail.price), + totalTax: numberFixed(detail.totalTax), + payAmount: numberFixed(detail.payAmount), + totalTaxExclude: numberFixed(detail.totalTaxExclude), + totalTaxInclude: numberFixed(detail.totalTaxInclude), expirationDate: null, // 质保期需要全部重新填写 index: indexCounter++ // 用于记录序号,展示或者定位 })) @@ -977,7 +982,11 @@ let rowKey = 0 this.procurementDetails = procurementDetails && procurementDetails.map(detail => ({ ...detail, feeType: computeFeeType(detail.type), - totalTaxInclude_: detail.totalTaxInclude, totalTaxInclude: undefined, // 存在相同字段转换一下 + price: numberFixed(detail.price), + payAmount: numberFixed(detail.payAmount), + totalTaxExclude: numberFixed(detail.totalTaxExclude), + totalTaxInclude_: numberFixed(detail.totalTaxInclude), + totalTaxInclude: undefined, // 存在相同字段转换一下 rowKey: rowKey++, children: [] })) @@ -1467,6 +1476,9 @@ return value.slice(0, limit) + '...' } return value + }, + numberFormat(value) { + return numberFixed(value) } } })