From f8dc8889897431d908c658fb415186d39b963eb6 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期三, 14 一月 2026 18:05:44 +0800
Subject: [PATCH] yys 销售报价,供应商,客户

---
 src/main/java/com/ruoyi/sales/service/impl/SalesQuotationServiceImpl.java |   49 ++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 44 insertions(+), 5 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..db9e181 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesQuotationServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesQuotationServiceImpl.java
@@ -6,7 +6,16 @@
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
+import com.ruoyi.approve.pojo.ApproveProcess;
+import com.ruoyi.approve.service.IApproveProcessService;
+import com.ruoyi.approve.service.impl.ApproveProcessServiceImpl;
+import com.ruoyi.approve.vo.ApproveGetAndUpdateVo;
+import com.ruoyi.approve.vo.ApproveProcessVO;
+import com.ruoyi.common.utils.OrderUtils;
+import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.bean.BeanUtils;
+import com.ruoyi.common.utils.uuid.UUID;
+import com.ruoyi.framework.security.LoginUser;
 import com.ruoyi.sales.dto.SalesQuotationDto;
 import com.ruoyi.sales.mapper.SalesQuotationMapper;
 import com.ruoyi.sales.mapper.SalesQuotationProductMapper;
@@ -19,6 +28,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.time.LocalDate;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -31,6 +41,9 @@
     private SalesQuotationProductMapper salesQuotationProductMapper;
     @Autowired
     private SalesQuotationProductService salesQuotationProductService;
+
+    @Autowired
+    private ApproveProcessServiceImpl approveProcessService;
     @Override
     public IPage<SalesQuotationDto> listPage(Page page, SalesQuotationDto salesQuotationDto) {
         IPage<SalesQuotationDto> salesQuotationDtoIPage = salesQuotationMapper.listPage(page, salesQuotationDto);
@@ -46,29 +59,49 @@
 
     @Override
     public boolean add(SalesQuotationDto salesQuotationDto) {
+        LoginUser loginUser = SecurityUtils.getLoginUser();
         SalesQuotation salesQuotation = new SalesQuotation();
         BeanUtils.copyProperties(salesQuotationDto, salesQuotation);
-        String quotationNo = salesQuotation.getQuotationNo();
+        String quotationNo = OrderUtils.countTodayByCreateTime(salesQuotationMapper, "QT");
+        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.getTenantId());
+        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,7 +115,13 @@
             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

--
Gitblit v1.9.3