From 8d350f76d9b8ca447f8eef680745cea2b3ec61d8 Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期四, 25 六月 2026 09:09:17 +0800
Subject: [PATCH] fix: 报价、审核、采购台账、供应商往来、销售台账、客户往来小数点保留6位小数
---
src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java | 36 ++++++++++++++++++++++++++----------
1 files changed, 26 insertions(+), 10 deletions(-)
diff --git a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
index 2568511..fa7726d 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
@@ -20,6 +20,7 @@
import com.ruoyi.basic.utils.FileUtil;
import com.ruoyi.common.enums.FileNameType;
import com.ruoyi.common.exception.base.BaseException;
+import com.ruoyi.common.utils.AmountUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
@@ -61,7 +62,6 @@
import java.io.InputStream;
import java.math.BigDecimal;
-import java.math.RoundingMode;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
@@ -122,6 +122,7 @@
PurchaseLedger purchaseLedger = new PurchaseLedger();
// DTO杞珽ntity
BeanUtils.copyProperties(purchaseLedgerDto, purchaseLedger);
+ AmountUtils.normalizeContractAmount(purchaseLedger);
SalesLedger salesLedger = salesLedgerMapper.selectById(purchaseLedgerDto.getSalesLedgerId());
//褰曞叆浜�
SysUser sysUser = userMapper.selectUserById(purchaseLedgerDto.getRecorderId());
@@ -235,6 +236,7 @@
// 璁剧疆瀛楁
for (SalesLedgerProduct product : products) {
+ AmountUtils.normalizeSalesLedgerProduct(product);
product.setSalesLedgerId(salesLedgerId);
Long productId = product.getProductId();
@@ -276,10 +278,10 @@
}
// 璁$畻鎬诲惈绋庨噾棰�
- BigDecimal totalTaxInclusiveAmount = products.stream()
+ BigDecimal totalTaxInclusiveAmount = AmountUtils.scaleAmount(products.stream()
.map(SalesLedgerProduct::getTaxInclusiveTotalPrice)
.filter(Objects::nonNull)
- .reduce(BigDecimal.ZERO, BigDecimal::add);
+ .reduce(BigDecimal.ZERO, BigDecimal::add));
// 鏇存柊涓昏〃鐨勬�婚噾棰濆瓧娈�
if (salesLedgerId != null) {
@@ -377,7 +379,9 @@
// 4. 杞崲 DTO
PurchaseLedgerDto resultDto = new PurchaseLedgerDto();
BeanUtils.copyProperties(purchaseLedger, resultDto);
+ AmountUtils.normalizeContractAmount(resultDto);
if (!products.isEmpty()) {
+ AmountUtils.normalizeSalesLedgerProducts(products);
resultDto.setHasChildren(true);
resultDto.setProductData(products);
resultDto.setStorageBlobVOS(fileUtil.getStorageBlobVOsByApplicationAndRecordTypeAndRecordId(ApplicationTypeEnum.FILE, RecordTypeEnum.PURCHASE_LEDGER, purchaseLedger.getId()));
@@ -420,6 +424,7 @@
queryWrapper.eq(SalesLedgerProduct::getSalesLedgerId, purchaseLedger.getId())
.eq(SalesLedgerProduct::getType, 2);
List<SalesLedgerProduct> productList = salesLedgerProductMapper.selectList(queryWrapper);
+ AmountUtils.normalizeSalesLedgerProducts(productList);
resultDto.setProductData(productList);
return resultDto;
}
@@ -451,12 +456,14 @@
@Override
public IPage<PurchaseLedgerDto> selectPurchaseLedgerListPage(IPage ipage, PurchaseLedgerDto purchaseLedger) {
- IPage<PurchaseLedgerDto> purchaseLedgerDtoIPage = purchaseLedgerMapper.selectPurchaseLedgerListPage(ipage, purchaseLedger);
- purchaseLedgerDtoIPage.getRecords().forEach(purchaseLedgerDto -> {
- List<CommonFile> commonFiles = commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>().eq(CommonFile::getCommonId, purchaseLedgerDto.getId()).eq(CommonFile::getType, FileNameType.PURCHASE.getValue()));
- purchaseLedgerDto.setSalesLedgerFiles(commonFiles);
- });
- return purchaseLedgerDtoIPage;
+ IPage<PurchaseLedgerDto> page = purchaseLedgerMapper.selectPurchaseLedgerListPage(ipage, purchaseLedger);
+ if (!CollectionUtils.isEmpty(page.getRecords())) {
+ page.getRecords().forEach(record -> {
+ AmountUtils.normalizeContractAmount(record);
+ AmountUtils.normalizeSalesLedgerProducts(record.getProductData());
+ });
+ }
+ return page;
}
@Override
@@ -561,8 +568,14 @@
BeanUtils.copyProperties(salesLedgerProductImportDto, salesLedgerProduct);
salesLedgerProduct.setSalesLedgerId(salesLedger.getId());
salesLedgerProduct.setType(2);
+ AmountUtils.normalizeSalesLedgerProduct(salesLedgerProduct);
// 璁$畻涓嶅惈绋庢�讳环
- salesLedgerProduct.setTaxExclusiveTotalPrice(salesLedgerProduct.getTaxInclusiveTotalPrice().divide(new BigDecimal(1).add(salesLedgerProduct.getTaxRate().divide(new BigDecimal(100))), 2, RoundingMode.HALF_UP));
+ salesLedgerProduct.setTaxExclusiveTotalPrice(
+ AmountUtils.calcTaxExclusiveTotalPrice(
+ salesLedgerProduct.getTaxInclusiveTotalPrice(),
+ salesLedgerProduct.getTaxRate()
+ )
+ );
list.stream()
.filter(map -> map.get("productName").equals(salesLedgerProduct.getProductCategory()) && map.get("model").equals(salesLedgerProduct.getSpecificationModel()))
.findFirst()
@@ -610,7 +623,9 @@
// 4. 杞崲 DTO
PurchaseLedgerDto resultDto = new PurchaseLedgerDto();
BeanUtils.copyProperties(purchaseLedger, resultDto);
+ AmountUtils.normalizeContractAmount(resultDto);
if (!products.isEmpty()) {
+ AmountUtils.normalizeSalesLedgerProducts(products);
resultDto.setHasChildren(true);
resultDto.setProductData(products);
}
@@ -628,6 +643,7 @@
approveProcessVO.setApproveUserIds(purchaseLedger.getApproveUserIds());
approveProcessVO.setApproveUser(loginUser.getUserId());
approveProcessVO.setApproveTime(LocalDate.now().toString());
+ approveProcessVO.setPrice(AmountUtils.scaleAmount(purchaseLedger.getContractAmount()));
approveProcessService.addApprove(approveProcessVO);
}
--
Gitblit v1.9.3