From 1d2465f8fc1c63ab8d1b01cd379f17c2b94be78f Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期一, 25 五月 2026 13:09:10 +0800
Subject: [PATCH] fix(sales): 修复报价审批流程中的状态更新和查询逻辑
---
src/main/java/com/ruoyi/sales/controller/SalesQuotationController.java | 5 ++
src/main/java/com/ruoyi/sales/service/impl/SalesQuotationServiceImpl.java | 39 ++++++++++++++-----
src/main/resources/mapper/sales/SalesQuotationMapper.xml | 2
src/main/resources/mapper/approve/ApproveProcessMapper.xml | 24 +++++++-----
4 files changed, 48 insertions(+), 22 deletions(-)
diff --git a/src/main/java/com/ruoyi/sales/controller/SalesQuotationController.java b/src/main/java/com/ruoyi/sales/controller/SalesQuotationController.java
index dcb4443..c7a5ec0 100644
--- a/src/main/java/com/ruoyi/sales/controller/SalesQuotationController.java
+++ b/src/main/java/com/ruoyi/sales/controller/SalesQuotationController.java
@@ -1,13 +1,15 @@
package com.ruoyi.sales.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.sales.dto.SalesQuotationDto;
import com.ruoyi.sales.service.SalesQuotationService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@@ -45,6 +47,7 @@
return AjaxResult.success(salesQuotationService.add(salesQuotationDto));
}
@PostMapping("/update")
+ @Log(title = "鎶ヤ环鏇存柊", businessType = BusinessType.UPDATE)
public AjaxResult update(@RequestBody SalesQuotationDto salesQuotationDto) {
return AjaxResult.success(salesQuotationService.edit(salesQuotationDto));
}
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 c8f0b15..10f4df8 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesQuotationServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesQuotationServiceImpl.java
@@ -8,7 +8,6 @@
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.vo.ApproveGetAndUpdateVo;
import com.ruoyi.approve.vo.ApproveProcessVO;
import com.ruoyi.basic.mapper.CustomerMapper;
import com.ruoyi.basic.mapper.ProductModelMapper;
@@ -113,11 +112,22 @@
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 ("鎷掔粷".equals(salesQuotationDto.getStatus())) {
+// vo.setApproveStatus(0);
+// salesQuotation.setStatus("寰呭鎵�");
+// }
+ //缂栬緫灏嗗鎵规敼涓哄緟瀹℃壒
+ salesQuotation.setStatus("寰呭鎵�");
+ //灏嗕箣鍓嶆湭瀹℃壒鐨勭粨鏉�
+ LambdaQueryWrapper<ApproveProcess> approveProcessLambdaQueryWrapper = new LambdaQueryWrapper<>();
+ approveProcessLambdaQueryWrapper.eq(ApproveProcess::getApproveType, 6)
+ .eq(ApproveProcess::getApproveReason, salesQuotationDto.getQuotationNo());
+ List<ApproveProcess> approveProcesss = approveProcessService.list(approveProcessLambdaQueryWrapper);
+ approveProcesss.forEach(approveProcess -> {
+ approveProcess.setApproveStatus(4);
+ });
+ approveProcessService.updateBatchById(approveProcesss);
+
if (salesQuotationMapper.updateById(salesQuotation) != 1) {
return false;
}
@@ -134,10 +144,19 @@
salesQuotationProductService.saveBatch(products);
// 淇敼鎶ヤ环瀹℃壒
- vo.setApproveUserIds(salesQuotationDto.getApproveUserIds());
- vo.setApproveType(6);
- vo.setApproveReason(salesQuotationDto.getQuotationNo());
- approveProcessService.updateApproveUser(vo);
+ ApproveProcessVO approveProcessVO = new ApproveProcessVO();
+ approveProcessVO.setApproveType(6);
+ approveProcessVO.setApproveDeptId(SecurityUtils.getLoginUser().getCurrentDeptId());
+ approveProcessVO.setApproveReason(salesQuotation.getQuotationNo());
+ approveProcessVO.setApproveUserIds(salesQuotationDto.getApproveUserIds());
+ approveProcessVO.setApproveUser(SecurityUtils.getUserId());
+ approveProcessVO.setApproveTime(LocalDate.now().toString());
+ approveProcessVO.setPrice(salesQuotationDto.getTotalAmount());
+ try {
+ approveProcessService.addApprove(approveProcessVO);
+ }catch (Exception e){
+ log.error("SalesQuotationServiceImpl error:{}", e);
+ }
return true;
}
diff --git a/src/main/resources/mapper/approve/ApproveProcessMapper.xml b/src/main/resources/mapper/approve/ApproveProcessMapper.xml
index 33b29a9..42414a1 100644
--- a/src/main/resources/mapper/approve/ApproveProcessMapper.xml
+++ b/src/main/resources/mapper/approve/ApproveProcessMapper.xml
@@ -28,15 +28,19 @@
approve_delete,tenant_id,approve_type,approve_remark
</sql>
<select id="listPage" resultType="com.ruoyi.approve.pojo.ApproveProcess">
- select * from approve_process where approve_delete = 0
- <if test="req.approveId != null and req.approveId != ''">
- and approve_id like concat('%',#{req.approveId},'%')
- </if>
- <if test="req.approveStatus != null or req.approveStatus == 0">
- and approve_status = #{req.approveStatus}
- </if>
- <if test="req.approveType != null ">
- and approve_type = #{req.approveType}
- </if>
+ select * from approve_process
+ <where>
+ approve_delete = 0
+ <if test="req.approveId != null and req.approveId != ''">
+ and approve_id like concat('%',#{req.approveId},'%')
+ </if>
+ <if test="req.approveStatus != null or req.approveStatus == 0">
+ and approve_status = #{req.approveStatus}
+ </if>
+ <if test="req.approveType != null ">
+ and approve_type = #{req.approveType}
+ </if>
+ </where>
+ order by approve_process.create_time desc
</select>
</mapper>
diff --git a/src/main/resources/mapper/sales/SalesQuotationMapper.xml b/src/main/resources/mapper/sales/SalesQuotationMapper.xml
index 1e358ca..d502262 100644
--- a/src/main/resources/mapper/sales/SalesQuotationMapper.xml
+++ b/src/main/resources/mapper/sales/SalesQuotationMapper.xml
@@ -7,7 +7,7 @@
SELECT t1.*,
t2.approve_user_ids
FROM sales_quotation t1
- LEFT JOIN approve_process t2 ON t1.quotation_no = t2.approve_reason and t2.approve_type = 6
+ LEFT JOIN approve_process t2 ON t1.quotation_no = t2.approve_reason and t2.approve_type = 6 and t2.approve_status = 0
WHERE 1=1
<if test="salesQuotationDto.quotationNo != null and salesQuotationDto.quotationNo != '' ">
AND t1.quotation_no LIKE CONCAT('%',#{salesQuotationDto.quotationNo},'%')
--
Gitblit v1.9.3