From 2f80b7085c4eabce06d3491306b75eecc275275f Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期四, 30 四月 2026 17:31:57 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_New_pro' into dev_New_pro
---
src/main/java/com/ruoyi/sales/service/impl/SalesQuotationServiceImpl.java | 82 +++++++++++++++++++++++++++++++++-------
1 files changed, 67 insertions(+), 15 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 104a712..a58bcfc 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesQuotationServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesQuotationServiceImpl.java
@@ -4,9 +4,19 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+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.pojo.ApproveProcess;
+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.dto.CustomerPrivatePoolDto;
+import com.ruoyi.basic.mapper.CustomerPrivatePoolMapper;
+import com.ruoyi.common.utils.OrderUtils;
+import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.bean.BeanUtils;
+import com.ruoyi.framework.security.LoginUser;
import com.ruoyi.sales.dto.SalesQuotationDto;
import com.ruoyi.sales.mapper.SalesQuotationMapper;
import com.ruoyi.sales.mapper.SalesQuotationProductMapper;
@@ -14,23 +24,26 @@
import com.ruoyi.sales.pojo.SalesQuotationProduct;
import com.ruoyi.sales.service.SalesQuotationProductService;
import com.ruoyi.sales.service.SalesQuotationService;
-import org.springframework.beans.factory.annotation.Autowired;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.time.LocalDate;
+import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
@Service
@Transactional(rollbackFor = Exception.class)
+@RequiredArgsConstructor
public class SalesQuotationServiceImpl extends ServiceImpl<SalesQuotationMapper, SalesQuotation> implements SalesQuotationService {
- @Autowired
- private SalesQuotationMapper salesQuotationMapper;
- @Autowired
- private SalesQuotationProductMapper salesQuotationProductMapper;
- @Autowired
- private SalesQuotationProductService salesQuotationProductService;
+ private final SalesQuotationProductMapper salesQuotationProductMapper;
+ private final SalesQuotationMapper salesQuotationMapper;
+ private final SalesQuotationProductService salesQuotationProductService;
+
+ private final ApproveProcessServiceImpl approveProcessService;
+ private final CustomerPrivatePoolMapper customerPrivatePoolMapper;
+
@Override
public IPage<SalesQuotationDto> listPage(Page page, SalesQuotationDto salesQuotationDto) {
IPage<SalesQuotationDto> salesQuotationDtoIPage = salesQuotationMapper.listPage(page, salesQuotationDto);
@@ -46,29 +59,53 @@
@Override
public boolean add(SalesQuotationDto salesQuotationDto) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
SalesQuotation salesQuotation = new SalesQuotation();
- BeanUtils.copyProperties(salesQuotationDto, salesQuotation);
- String quotationNo = salesQuotation.getQuotationNo();
+ CustomerPrivatePoolDto customerPrivatePoolDto = customerPrivatePoolMapper.selectInfo(Long.valueOf(salesQuotationDto.getCustomer()));
+ if (ObjectUtils.isNotEmpty(customerPrivatePoolDto)) {
+ BeanUtils.copyProperties(salesQuotationDto, salesQuotation);
+ salesQuotation.setCustomer(customerPrivatePoolDto.getCustomerName());
+ }
+ String quotationNo = OrderUtils.countTodayByCreateTime(salesQuotationMapper, "QT","quotation_no");
+ salesQuotation.setQuotationNo(quotationNo);
+ salesQuotation.setStatus("寰呭鎵�");
salesQuotationMapper.insert(salesQuotation);
-// if(salesQuotationMapper.insert(salesQuotation)!=1){
-// return false;
-// }
if(CollectionUtils.isEmpty(salesQuotationDto.getProducts())){
return true;
}
List<SalesQuotationProduct> products = salesQuotationDto.getProducts().stream().map(product -> {
SalesQuotationProduct salesQuotationProduct = new SalesQuotationProduct();
BeanUtils.copyProperties(product, salesQuotationProduct);
- salesQuotationProduct.setSalesQuotationId(salesQuotationMapper.selectOne(new LambdaQueryWrapper<SalesQuotation>().eq(SalesQuotation::getQuotationNo, quotationNo)).getId());
+ salesQuotationProduct.setSalesQuotationId(salesQuotation.getId());
return salesQuotationProduct;
}).collect(Collectors.toList());
salesQuotationProductService.saveBatch(products);
+ // 鎶ヤ环瀹℃壒
+ 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 {
+ approveProcessService.addApprove(approveProcessVO);
+ }catch (Exception e){
+ log.error("SalesQuotationServiceImpl error:{}", e);
+ throw new RuntimeException("瀹℃壒澶辫触");
+ }
return true;
}
@Override
public boolean edit(SalesQuotationDto salesQuotationDto) {
SalesQuotation salesQuotation = new SalesQuotation();
BeanUtils.copyProperties(salesQuotationDto, salesQuotation);
+ ApproveGetAndUpdateVo vo = new ApproveGetAndUpdateVo();
+ if("鎷掔粷".equals(salesQuotationDto.getStatus())){
+ vo.setApproveStatus(0);
+ salesQuotation.setStatus("寰呭鎵�");
+ }
if(salesQuotationMapper.updateById(salesQuotation)!=1){
return false;
}
@@ -82,13 +119,28 @@
salesQuotationProduct.setSalesQuotationId(salesQuotation.getId());
return salesQuotationProduct;
}).collect(Collectors.toList());
+
salesQuotationProductService.saveBatch(products);
+ // 淇敼鎶ヤ环瀹℃壒
+ vo.setApproveUserIds(salesQuotationDto.getApproveUserIds());
+ vo.setApproveType(6);
+ vo.setApproveReason(salesQuotationDto.getQuotationNo());
+ approveProcessService.updateApproveUser(vo);
return true;
}
@Override
public boolean delete(Long id) {
+ SalesQuotation salesQuotation = salesQuotationMapper.selectById(id);
+ if(salesQuotation==null) return false;
salesQuotationMapper.deleteById(id);
salesQuotationProductMapper.delete(new LambdaQueryWrapper<SalesQuotationProduct>().eq(SalesQuotationProduct::getSalesQuotationId, id));
+ // 鍒犻櫎鎶ヤ环瀹℃壒
+ ApproveProcess one = approveProcessService.getOne(new LambdaQueryWrapper<ApproveProcess>()
+ .eq(ApproveProcess::getApproveType, 6)
+ .eq(ApproveProcess::getApproveReason, salesQuotation.getQuotationNo()));
+ if(one != null){
+ approveProcessService.delByIds(Collections.singletonList(one.getId()));
+ }
return true;
}
--
Gitblit v1.9.3