From b94831f6bc2ecafb7159b09d4622226410a1c31a Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期一, 19 一月 2026 18:03:14 +0800
Subject: [PATCH] yys 1.客户模块修改 2.销售报价修改 3.回款登记修改

---
 src/main/java/com/ruoyi/sales/controller/ReceiptPaymentController.java    |    8 ++
 src/main/java/com/ruoyi/sales/mapper/SalesQuotationMapper.java            |    2 
 src/main/java/com/ruoyi/basic/pojo/Customer.java                          |   20 ++++--
 src/main/java/com/ruoyi/sales/controller/SalesQuotationController.java    |   25 +++++--
 src/main/java/com/ruoyi/sales/service/impl/SalesQuotationServiceImpl.java |   44 ++++++++++++--
 src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java |    2 
 src/main/java/com/ruoyi/sales/service/SalesQuotationService.java          |    5 +
 src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java       |   15 +----
 src/main/java/com/ruoyi/sales/pojo/SalesQuotationProduct.java             |   10 +++
 9 files changed, 93 insertions(+), 38 deletions(-)

diff --git a/src/main/java/com/ruoyi/basic/pojo/Customer.java b/src/main/java/com/ruoyi/basic/pojo/Customer.java
index d68b918..66bb884 100644
--- a/src/main/java/com/ruoyi/basic/pojo/Customer.java
+++ b/src/main/java/com/ruoyi/basic/pojo/Customer.java
@@ -35,7 +35,7 @@
     /**
      * 绾崇◣浜鸿瘑鍒彿
      */
-    @Excel(name = "绾崇◣浜鸿瘑鍒彿")
+//    @Excel(name = "绾崇◣浜鸿瘑鍒彿")
     private String taxpayerIdentificationNumber;
 
     /**
@@ -47,19 +47,19 @@
     /**
      * 鍏徃鐢佃瘽
      */
-    @Excel(name = "鍏徃鐢佃瘽")
+//    @Excel(name = "鍏徃鐢佃瘽")
     private String companyPhone;
 
     /**
      * 鑱旂郴浜�
      */
-    @Excel(name = "鑱旂郴浜�")
+//    @Excel(name = "鑱旂郴浜�")
     private String contactPerson;
 
     /**
      * 鑱旂郴鐢佃瘽
      */
-    @Excel(name = "鑱旂郴鐢佃瘽")
+//    @Excel(name = "鑱旂郴鐢佃瘽")
     private String contactPhone;
 
     /**
@@ -85,14 +85,20 @@
     private String addressPhone;
 
     @ApiModelProperty(value = "閾惰鍩烘湰鎴�")
-    @Excel(name = "閾惰鍩烘湰鎴�")
+//    @Excel(name = "閾惰鍩烘湰鎴�")
     private String basicBankAccount;
 
     @ApiModelProperty(value = "閾惰璐﹀彿")
-    @Excel(name = "閾惰璐﹀彿")
+//    @Excel(name = "閾惰璐﹀彿")
     private String bankAccount;
 
     @ApiModelProperty(value = "寮�鎴疯鍙�")
-    @Excel(name = "寮�鎴疯鍙�")
+//    @Excel(name = "寮�鎴疯鍙�")
     private String bankCode;
+
+
+    @Excel(name = "瀹㈡埛绫诲瀷")
+    private String type;
+
+
 }
diff --git a/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java b/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java
index 899e21f..53eabdd 100644
--- a/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java
+++ b/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java
@@ -172,19 +172,10 @@
     }
 
     @Override
-    public List<Map<String, Object>> customerList(Customer customer) {
+    public List<Customer> customerList(Customer customer) {
         LambdaQueryWrapper<Customer> queryWrapper = Wrappers.lambdaQuery();
-        queryWrapper.select(Customer::getId, Customer::getCustomerName, Customer::getTaxpayerIdentificationNumber);
-
-        // 鑾峰彇鍘熷鏌ヨ缁撴灉
-        List<Map<String, Object>> result = customerMapper.selectMaps(queryWrapper);
-
-        // 灏嗕笅鍒掔嚎鍛藉悕杞崲涓洪┘宄板懡鍚�
-        return result.stream().map(map -> map.entrySet().stream()
-                .collect(Collectors.toMap(
-                        entry -> underlineToCamel(entry.getKey()),
-                        Map.Entry::getValue))
-        ).collect(Collectors.toList());
+        queryWrapper.select(Customer::getId, Customer::getCustomerName, Customer::getTaxpayerIdentificationNumber,Customer::getType);
+        return customerMapper.selectList(queryWrapper);
     }
 
     /**
diff --git a/src/main/java/com/ruoyi/sales/controller/ReceiptPaymentController.java b/src/main/java/com/ruoyi/sales/controller/ReceiptPaymentController.java
index 0801107..7da3ebb 100644
--- a/src/main/java/com/ruoyi/sales/controller/ReceiptPaymentController.java
+++ b/src/main/java/com/ruoyi/sales/controller/ReceiptPaymentController.java
@@ -1,6 +1,7 @@
 package com.ruoyi.sales.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.utils.bean.BeanUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
@@ -40,8 +41,11 @@
      * @return
      */
     @PostMapping("/saveOrUpdate")
-    public AjaxResult receiptPaymentSaveOrUpdate (@RequestBody ReceiptPayment receiptPayment) {
-        receiptPaymentService.receiptPaymentSaveOrUpdate(receiptPayment);
+    public AjaxResult receiptPaymentSaveOrUpdate (@RequestBody List<ReceiptPayment> receiptPayment) {
+        if(CollectionUtils.isEmpty(receiptPayment)) return AjaxResult.success("鍥炴鏁版嵁涓嶅彲涓虹┖");
+        for (ReceiptPayment payment : receiptPayment) {
+            receiptPaymentService.receiptPaymentSaveOrUpdate(payment);
+        }
         return AjaxResult.success();
     }
 
diff --git a/src/main/java/com/ruoyi/sales/controller/SalesQuotationController.java b/src/main/java/com/ruoyi/sales/controller/SalesQuotationController.java
index 3a579d6..6b44726 100644
--- a/src/main/java/com/ruoyi/sales/controller/SalesQuotationController.java
+++ b/src/main/java/com/ruoyi/sales/controller/SalesQuotationController.java
@@ -1,23 +1,16 @@
 package com.ruoyi.sales.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.ruoyi.aftersalesservice.dto.AfterSalesServiceDto;
-import com.ruoyi.aftersalesservice.pojo.AfterSalesService;
+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 io.swagger.annotations.ApiOperation;
-import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
-import java.util.ArrayList;
-import java.util.List;
 
 @RestController
 @RequestMapping("/sales/quotation")
@@ -47,6 +40,22 @@
     public AjaxResult update(@RequestBody SalesQuotationDto salesQuotationDto) {
         return AjaxResult.success(salesQuotationService.edit(salesQuotationDto));
     }
+
+    /**
+     * 璇︽儏
+     * @param type   瀹㈡埛绫诲瀷
+     * @param productName 浜у搧鍚嶇О
+     * @param specification  瑙勬牸
+     * @return
+     */
+    @ApiOperation("璇︽儏")
+    @GetMapping("/detail")
+    public AjaxResult detail(@RequestParam("type") String type,
+                             @RequestParam("productName")String productName,
+                             @RequestParam("specification")String specification) {
+        return AjaxResult.success(salesQuotationService.detail(type, productName, specification));
+    }
+
     @DeleteMapping("/delete")
     public AjaxResult delete(@RequestBody Long id) {
         return AjaxResult.success(salesQuotationService.delete(id));
diff --git a/src/main/java/com/ruoyi/sales/mapper/SalesQuotationMapper.java b/src/main/java/com/ruoyi/sales/mapper/SalesQuotationMapper.java
index 86f9c1a..ea90485 100644
--- a/src/main/java/com/ruoyi/sales/mapper/SalesQuotationMapper.java
+++ b/src/main/java/com/ruoyi/sales/mapper/SalesQuotationMapper.java
@@ -2,9 +2,9 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.sales.dto.SalesQuotationDto;
 import com.ruoyi.sales.pojo.SalesQuotation;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.Mapper;
 import org.springframework.data.repository.query.Param;
 
diff --git a/src/main/java/com/ruoyi/sales/pojo/SalesQuotationProduct.java b/src/main/java/com/ruoyi/sales/pojo/SalesQuotationProduct.java
index 709dacf..93b34f7 100644
--- a/src/main/java/com/ruoyi/sales/pojo/SalesQuotationProduct.java
+++ b/src/main/java/com/ruoyi/sales/pojo/SalesQuotationProduct.java
@@ -4,6 +4,7 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 
 @Data
@@ -21,8 +22,15 @@
     private String specification;
     @ApiModelProperty(value = "鍗曚綅")
     private String unit;
+    @ApiModelProperty(value = "涓�鎵瑰晢鍗曚环")
+    private BigDecimal unitPrice;
+
+    @ApiModelProperty(value = "缁堢鍟嗗崟浠�")
+    private BigDecimal unitPriceTwo;
+
     @ApiModelProperty(value = "鍗曚环")
-    private Double unitPrice;
+    private BigDecimal unitPriceThree;
+
     @ApiModelProperty(value = "鏁伴噺")
     private Integer quantity;
     @ApiModelProperty(value = "閲戦")
diff --git a/src/main/java/com/ruoyi/sales/service/SalesQuotationService.java b/src/main/java/com/ruoyi/sales/service/SalesQuotationService.java
index 7f29a7f..949797d 100644
--- a/src/main/java/com/ruoyi/sales/service/SalesQuotationService.java
+++ b/src/main/java/com/ruoyi/sales/service/SalesQuotationService.java
@@ -6,6 +6,9 @@
 import com.ruoyi.sales.pojo.SalesQuotation;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 
+import java.math.BigDecimal;
+import java.util.List;
+
 public interface SalesQuotationService extends IService<SalesQuotation> {
     IPage listPage(Page page, SalesQuotationDto salesQuotationDto);
 
@@ -14,4 +17,6 @@
     boolean delete(Long id);
 
     boolean edit(SalesQuotationDto salesQuotationDto);
+
+    BigDecimal detail(String type, String productName, String specification);
 }
diff --git a/src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java
index ae93c3b..f81e947 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java
@@ -162,7 +162,9 @@
     public IPage<ReceiptPaymentDto> bindInvoiceNoRegPage(Page page, ReceiptPaymentDto receiptPaymentDto) {
         IPage<ReceiptPaymentDto> receiptPaymentDtoIPage = receiptPaymentMapper.bindInvoiceNoRegPage(page, receiptPaymentDto);
         if (receiptPaymentDto.getStatus()) {
+            long count = receiptPaymentDtoIPage.getRecords().stream().filter(receiptPaymentDto1 -> new BigDecimal("0.00").equals(receiptPaymentDto1.getNoReceiptAmount())).count();
             receiptPaymentDtoIPage.getRecords().removeIf(receiptPaymentDto1 -> new BigDecimal("0.00").equals(receiptPaymentDto1.getNoReceiptAmount()));
+            receiptPaymentDtoIPage.setTotal(receiptPaymentDtoIPage.getTotal() - count);
         }
         receiptPaymentDtoIPage.getRecords().forEach(item -> {
             // 姣旇緝鍥炴閲戦 == 寰呭洖娆鹃噾棰�
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..058513a 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,15 @@
 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.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-
+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.framework.security.LoginUser;
 import com.ruoyi.sales.dto.SalesQuotationDto;
 import com.ruoyi.sales.mapper.SalesQuotationMapper;
 import com.ruoyi.sales.mapper.SalesQuotationProductMapper;
@@ -15,10 +21,12 @@
 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 org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -48,18 +56,17 @@
     public boolean add(SalesQuotationDto salesQuotationDto) {
         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);
@@ -69,6 +76,11 @@
     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;
         }
@@ -85,6 +97,24 @@
         salesQuotationProductService.saveBatch(products);
         return true;
     }
+
+    @Override
+    public BigDecimal detail(String type, String productName, String specification) {
+        SalesQuotationProduct salesQuotationProduct = salesQuotationProductMapper.selectOne(new LambdaQueryWrapper<SalesQuotationProduct>()
+                .eq(SalesQuotationProduct::getProduct, productName)
+                .eq(SalesQuotationProduct::getSpecification, specification)
+                .last("limit 1"));
+        if(salesQuotationProduct==null) return null;
+        switch (type){
+            case "涓�鎵瑰晢":
+                return salesQuotationProduct.getUnitPrice();
+            case "缁堢鍟�":
+                return salesQuotationProduct.getUnitPriceTwo();
+            default:
+                return salesQuotationProduct.getUnitPriceThree();
+        }
+    }
+
     @Override
     public boolean delete(Long id) {
         salesQuotationMapper.deleteById(id);

--
Gitblit v1.9.3