From 47806d9e390ee00e1d29ad1da8c1aa908882a758 Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期二, 11 八月 2026 14:43:59 +0800
Subject: [PATCH] 用河南鹤壁代码覆盖山西长治
---
src/main/java/com/ruoyi/sales/service/impl/SalesQuotationServiceImpl.java | 109 +++++++++++++++++++++++-------------------------------
1 files changed, 46 insertions(+), 63 deletions(-)
diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesQuotationServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesQuotationServiceImpl.java
index cb7b485..e847384 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesQuotationServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesQuotationServiceImpl.java
@@ -7,17 +7,14 @@
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.approve.bean.dto.ApprovalInstanceDto;
-import com.ruoyi.approve.bean.vo.ApproveGetAndUpdateVo;
-import com.ruoyi.approve.mapper.ApprovalTemplateMapper;
-import com.ruoyi.approve.pojo.ApprovalInstance;
-import com.ruoyi.approve.pojo.ApprovalTemplate;
import com.ruoyi.approve.pojo.ApproveProcess;
-import com.ruoyi.approve.service.ApprovalInstanceService;
import com.ruoyi.approve.service.impl.ApproveProcessServiceImpl;
+import com.ruoyi.approve.bean.vo.ApproveGetAndUpdateVo;
+import com.ruoyi.approve.bean.vo.ApproveProcessVO;
import com.ruoyi.basic.mapper.CustomerMapper;
import com.ruoyi.basic.pojo.Customer;
import com.ruoyi.common.enums.IsDeleteEnum;
+import com.ruoyi.common.utils.AmountUtils;
import com.ruoyi.common.utils.OrderUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.bean.BeanUtils;
@@ -33,8 +30,9 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import java.time.LocalDateTime;
-import java.util.*;
+import java.time.LocalDate;
+import java.util.Collections;
+import java.util.List;
import java.util.stream.Collectors;
@Service
@@ -47,8 +45,6 @@
private final ApproveProcessServiceImpl approveProcessService;
private final CustomerMapper customerMapper;
- private final ApprovalTemplateMapper approvalTemplateMapper;
- private final ApprovalInstanceService approvalInstanceService;
@Override
public IPage<SalesQuotationDto> listPage(Page page, SalesQuotationDto salesQuotationDto) {
@@ -56,31 +52,34 @@
if(CollectionUtils.isEmpty(salesQuotationDtoIPage.getRecords())){
return salesQuotationDtoIPage;
}
-
- // 鎵归噺鏌ヨ浜у搧锛岄伩鍏� N+1 闂
- List<Long> quotationIds = salesQuotationDtoIPage.getRecords().stream()
- .map(SalesQuotationDto::getId)
- .filter(Objects::nonNull)
- .collect(Collectors.toList());
-
- if (!quotationIds.isEmpty()) {
- List<SalesQuotationProduct> allProducts = salesQuotationProductMapper.selectList(
- new LambdaQueryWrapper<SalesQuotationProduct>()
- .in(SalesQuotationProduct::getSalesQuotationId, quotationIds)
- );
-
- Map<Long, List<SalesQuotationProduct>> productMap = allProducts.stream()
- .collect(Collectors.groupingBy(SalesQuotationProduct::getSalesQuotationId));
-
- salesQuotationDtoIPage.getRecords().forEach(record ->
- record.setProducts(productMap.getOrDefault(record.getId(), new ArrayList<>()))
- );
- }
+ salesQuotationDtoIPage.getRecords().forEach(record -> {
+ record.setTotalAmount(AmountUtils.scaleAmount(record.getTotalAmount()));
+ List<SalesQuotationProduct> products = salesQuotationProductMapper.selectBySalesQuotationId(record.getId());
+ if (!CollectionUtils.isEmpty(products)) {
+ products.forEach(product -> {
+ product.setUnitPrice(AmountUtils.scaleAmount(product.getUnitPrice()));
+ product.setAmount(AmountUtils.scaleAmount(product.getAmount()));
+ });
+ }
+ record.setProducts(products);
+ });
return salesQuotationDtoIPage;
+ }
+
+ private void normalizeAmounts(SalesQuotationDto salesQuotationDto) {
+ salesQuotationDto.setTotalAmount(AmountUtils.scaleAmount(salesQuotationDto.getTotalAmount()));
+ if (CollectionUtils.isEmpty(salesQuotationDto.getProducts())) {
+ return;
+ }
+ salesQuotationDto.getProducts().forEach(product -> {
+ product.setUnitPrice(AmountUtils.scaleAmount(product.getUnitPrice()));
+ product.setAmount(AmountUtils.scaleAmount(product.getAmount()));
+ });
}
@Override
public boolean add(SalesQuotationDto salesQuotationDto) {
+ normalizeAmounts(salesQuotationDto);
LoginUser loginUser = SecurityUtils.getLoginUser();
SalesQuotation salesQuotation = new SalesQuotation();
BeanUtils.copyProperties(salesQuotationDto, salesQuotation);
@@ -104,26 +103,25 @@
}).collect(Collectors.toList());
salesQuotationProductService.saveBatch(products);
// 鎶ヤ环瀹℃壒
- ApprovalInstanceDto approvalInstance = new ApprovalInstanceDto();
- approvalInstance.setTemplateId(approvalTemplateMapper.selectOne(new LambdaQueryWrapper<ApprovalTemplate>().eq(ApprovalTemplate::getBusinessType,6L).orderByDesc(ApprovalTemplate::getId).last("LIMIT 1")).getId());
- approvalInstance.setTemplateName(approvalTemplateMapper.selectOne(new LambdaQueryWrapper<ApprovalTemplate>().eq(ApprovalTemplate::getBusinessType,6L).orderByDesc(ApprovalTemplate::getId).last("LIMIT 1")).getTemplateName());
- approvalInstance.setBusinessId(salesQuotation.getId());
- approvalInstance.setBusinessType(6L);
- approvalInstance.setCurrentLevel(1);
- approvalInstance.setTitle(quotationNo+"瀹℃壒");
- approvalInstance.setApplicantId(loginUser.getUserId());
- approvalInstance.setApplicantName(loginUser.getNickName());
- approvalInstance.setApplyTime(LocalDateTime.now());
+ ApproveProcessVO approveProcessVO = new ApproveProcessVO();
+ approveProcessVO.setApproveType(6);
+ approveProcessVO.setApproveDeptId(loginUser.getCurrentDeptId());
+ approveProcessVO.setApproveReason(quotationNo);
+ approveProcessVO.setApproveUserIds(salesQuotationDto.getApproveUserIds());
+ approveProcessVO.setApproveUser(loginUser.getUserId());
+ approveProcessVO.setApproveTime(LocalDate.now().toString());
+ approveProcessVO.setPrice(salesQuotationDto.getTotalAmount());
try {
- approvalInstanceService.add(approvalInstance);
- } catch (Exception e) {
- log.error("SalesQuotationServiceImpl approve error for quotationNo: {}", e);
- throw new RuntimeException("瀹℃壒澶辫触: " + e.getMessage(), e);
+ approveProcessService.addApprove(approveProcessVO);
+ }catch (Exception e){
+ log.error("SalesQuotationServiceImpl error:{}", e);
+ throw new RuntimeException("瀹℃壒澶辫触");
}
return true;
}
@Override
public boolean edit(SalesQuotationDto salesQuotationDto) {
+ normalizeAmounts(salesQuotationDto);
SalesQuotation salesQuotation = new SalesQuotation();
BeanUtils.copyProperties(salesQuotationDto, salesQuotation);
ApproveGetAndUpdateVo vo = new ApproveGetAndUpdateVo();
@@ -147,25 +145,10 @@
salesQuotationProductService.saveBatch(products);
// 淇敼鎶ヤ环瀹℃壒
- // 鍏堢粨鏉熶箣鍓嶆湭缁撴潫鐨勬姤浠峰鎵�
- approvalInstanceService.lambdaUpdate().set(ApprovalInstance::getStatus,"REJECTED").eq(ApprovalInstance::getBusinessId,salesQuotation.getId()).eq(ApprovalInstance::getBusinessType,6L).update();
-
- ApprovalInstanceDto approvalInstance = new ApprovalInstanceDto();
- approvalInstance.setTemplateId(approvalTemplateMapper.selectOne(new LambdaQueryWrapper<ApprovalTemplate>().eq(ApprovalTemplate::getBusinessType,6L).orderByDesc(ApprovalTemplate::getId).last("LIMIT 1")).getId());
- approvalInstance.setTemplateName(approvalTemplateMapper.selectOne(new LambdaQueryWrapper<ApprovalTemplate>().eq(ApprovalTemplate::getBusinessType,6L).orderByDesc(ApprovalTemplate::getId).last("LIMIT 1")).getTemplateName());
- approvalInstance.setBusinessId(salesQuotation.getId());
- approvalInstance.setBusinessType(6L);
- approvalInstance.setCurrentLevel(1);
- approvalInstance.setTitle(salesQuotation.getQuotationNo()+"瀹℃壒");
- approvalInstance.setApplicantId(SecurityUtils.getUserId());
- approvalInstance.setApplicantName(SecurityUtils.getLoginUser().getNickName());
- approvalInstance.setApplyTime(LocalDateTime.now());
- try {
- approvalInstanceService.add(approvalInstance);
- } catch (Exception e) {
- log.error("SalesQuotationServiceImpl approve error for quotationNo: {}", e);
- throw new RuntimeException("瀹℃壒澶辫触: " + e.getMessage(), e);
- }
+ vo.setApproveUserIds(salesQuotationDto.getApproveUserIds());
+ vo.setApproveType(6);
+ vo.setApproveReason(salesQuotationDto.getQuotationNo());
+ approveProcessService.updateApproveUser(vo);
return true;
}
@Override
--
Gitblit v1.9.3