From b67dbc6737b5a8751bbc6932724c34ae4b19c34e Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期二, 20 一月 2026 18:02:32 +0800
Subject: [PATCH] yys  优化影响的模块

---
 src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java |   16 ++++-
 src/main/java/com/ruoyi/production/controller/ProductOrderController.java     |   12 ++++
 src/main/java/com/ruoyi/sales/controller/SalesQuotationController.java        |   15 +++++
 src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java                    |    2 
 src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java        |    3 
 src/main/java/com/ruoyi/sales/service/impl/SalesQuotationServiceImpl.java     |   60 +++++++++++++------
 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/home/service/impl/HomeServiceImpl.java                |   16 ++---
 src/main/java/com/ruoyi/sales/pojo/SalesQuotationProduct.java                 |    9 ++
 src/main/resources/application-hsxny.yml                                      |    2 
 11 files changed, 106 insertions(+), 49 deletions(-)

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 f24a2d2..4f7f5f7 100644
--- a/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java
+++ b/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java
@@ -176,19 +176,8 @@
     }
 
     @Override
-    public List<Map<String, Object>> 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());
+    public List<Customer> customerList(Customer customer) {
+        return customerMapper.selectList( null);
     }
 
     /**
diff --git a/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java b/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java
index 5cc269c..46f1cd6 100644
--- a/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java
+++ b/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java
@@ -586,17 +586,15 @@
 
     }
 
-    @Autowired
-    private ReceiptPaymentServiceImpl receiptPaymentService;
-
     @Override
     public Long overdueReceivable() {
-        // 閫氳繃寮�绁ㄦ棩鏈熻秴杩�15澶╃殑鏈洖娆炬彁绀�
-        ReceiptPaymentDto receiptPaymentDto = new ReceiptPaymentDto();
-        receiptPaymentDto.setTimeOut(true);
-        receiptPaymentDto.setStatus(false);
-        IPage<ReceiptPaymentDto> receiptPaymentDtoIPage = receiptPaymentService.bindInvoiceNoRegPage(new Page<>(-1, -1), receiptPaymentDto);
-        return receiptPaymentDtoIPage.getTotal();
+        // 閫氳繃鐧昏鏃ユ湡瓒呰繃15澶╃殑鏈洖娆炬彁绀�
+        LambdaQueryWrapper<SalesLedgerProduct> lambdaWrapper = new LambdaQueryWrapper<>();
+        // 鏃堕棿鏉′欢锛歳egisterDate < 褰撳墠鏃堕棿 - 15澶�
+        lambdaWrapper.apply("register_date < DATE_SUB(NOW(), INTERVAL 15 DAY)");
+        // 鏈洖娆炬潯浠讹細pendingInvoiceTotal > 0
+        lambdaWrapper.gt(SalesLedgerProduct::getPendingInvoiceTotal, 0);
+        return salesLedgerProductMapper.selectCount(lambdaWrapper);
     }
 
 
diff --git a/src/main/java/com/ruoyi/production/controller/ProductOrderController.java b/src/main/java/com/ruoyi/production/controller/ProductOrderController.java
index 658b40a..8ea79cd 100644
--- a/src/main/java/com/ruoyi/production/controller/ProductOrderController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProductOrderController.java
@@ -10,6 +10,8 @@
 import com.ruoyi.production.pojo.ProcessRoute;
 import com.ruoyi.production.pojo.ProductOrder;
 import com.ruoyi.production.service.ProductOrderService;
+import com.ruoyi.sales.pojo.SalesLedgerProduct;
+import com.ruoyi.sales.service.impl.SalesLedgerProductServiceImpl;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -26,6 +28,16 @@
     @Autowired
     private ProductOrderService productOrderService;
 
+    @Autowired
+    private SalesLedgerProductServiceImpl salesLedgerProductService;
+
+    @PostMapping("/add")
+    @ApiOperation("娣诲姞鐢熶骇璁㈠崟")
+    public R add(@RequestBody SalesLedgerProduct salesLedgerProduct) {
+        salesLedgerProductService.addProductionData(salesLedgerProduct);
+        return R.ok(1);
+    }
+
 
     @ApiOperation("鍒嗛〉鏌ヨ")
     @GetMapping("page")
diff --git a/src/main/java/com/ruoyi/sales/controller/SalesQuotationController.java b/src/main/java/com/ruoyi/sales/controller/SalesQuotationController.java
index f9ea1df..7ea82b7 100644
--- a/src/main/java/com/ruoyi/sales/controller/SalesQuotationController.java
+++ b/src/main/java/com/ruoyi/sales/controller/SalesQuotationController.java
@@ -51,6 +51,21 @@
     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/pojo/SalesLedgerProduct.java b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
index 79cb32f..b6ed374 100644
--- a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
+++ b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
@@ -104,7 +104,7 @@
     private String invoiceType;
 
     /**
-     * 鍙拌处绫诲瀷 1.閿�鍞� 2锛岄噰璐�
+     * 鍙拌处绫诲瀷 1.閿�鍞� 2锛岄噰璐� 3: 鐢熶骇璁㈠崟
      */
     private Integer type;
 
diff --git a/src/main/java/com/ruoyi/sales/pojo/SalesQuotationProduct.java b/src/main/java/com/ruoyi/sales/pojo/SalesQuotationProduct.java
index 709dacf..eba5dbc 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,14 @@
     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..8e40fcb 100644
--- a/src/main/java/com/ruoyi/sales/service/SalesQuotationService.java
+++ b/src/main/java/com/ruoyi/sales/service/SalesQuotationService.java
@@ -6,6 +6,8 @@
 import com.ruoyi.sales.pojo.SalesQuotation;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 
+import java.math.BigDecimal;
+
 public interface SalesQuotationService extends IService<SalesQuotation> {
     IPage listPage(Page page, SalesQuotationDto salesQuotationDto);
 
@@ -14,4 +16,7 @@
     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/SalesLedgerProductServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
index 270f256..32bccc4 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
@@ -7,6 +7,8 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.OrderUtils;
+import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.production.mapper.*;
 import com.ruoyi.production.pojo.*;
@@ -32,6 +34,7 @@
 import java.lang.reflect.Field;
 import java.math.BigDecimal;
 import java.time.LocalDate;
+import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.function.Function;
@@ -260,11 +263,18 @@
     /**
      * 鏂板鐢熶骇鏁版嵁
      */
+    @Transactional(rollbackFor = Exception.class)
     public void addProductionData(SalesLedgerProduct salesLedgerProduct) {
+        // 鍥犱负鐢熶骇闇�姹傛敼鍔紝闇�瑕侀澶栫粰sales_ledger_product鏂板鏁版嵁锛宼ype锛�3
+        salesLedgerProduct.setType(3);
+        salesLedgerProduct.setRegister(SecurityUtils.getLoginUser().getNickName());
+        salesLedgerProduct.setRegisterDate(LocalDateTime.now());
+
+        salesLedgerProductMapper.insert(salesLedgerProduct);
         ProductOrder productOrder = new ProductOrder();
         productOrder.setSalesLedgerId(salesLedgerProduct.getSalesLedgerId());
         productOrder.setProductModelId(salesLedgerProduct.getId());
-        productOrder.setNpsNo("SC" + String.format("%08d", salesLedgerProduct.getId()));
+        productOrder.setNpsNo(OrderUtils.countTodayByCreateTime(productOrderMapper, "SC"));
         productOrder.setQuantity(salesLedgerProduct.getQuantity());//闇�姹傛暟閲�
         productOrder.setCompleteQuantity(BigDecimal.ZERO);//瀹屾垚鏁伴噺
         productOrderMapper.insert(productOrder);
@@ -422,9 +432,9 @@
         salesLedgerProductDtoIPage.getRecords().forEach(item -> {
             // 鍒ゆ柇鐘舵��
             if(item.getTaxInclusiveTotalPrice().compareTo(item.getInvoiceTotal()) == 0){
-                item.setStatusName("宸插畬鎴愪粯娆�");
+                item.setStatusName("宸插畬鎴愬洖娆�");
             }else{
-                item.setStatusName("鏈畬鎴愪粯娆�");
+                item.setStatusName("鏈畬鎴愬洖娆�");
             }
         });
         return salesLedgerProductDtoIPage;
diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
index e297168..83c3587 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -695,13 +695,14 @@
         // 鎵ц鎻掑叆鎿嶄綔
         if (!insertList.isEmpty()) {
             for (SalesLedgerProduct salesLedgerProduct : insertList) {
+                salesLedgerProduct.setRegisterDate(LocalDateTime.now());
                 salesLedgerProduct.setType(type);
                 salesLedgerProduct.setNoInvoiceNum(salesLedgerProduct.getQuantity());
                 salesLedgerProduct.setNoInvoiceAmount(salesLedgerProduct.getTaxInclusiveTotalPrice());
                 salesLedgerProduct.setPendingInvoiceTotal(salesLedgerProduct.getTaxInclusiveTotalPrice());
                 salesLedgerProductMapper.insert(salesLedgerProduct);
                 // 娣诲姞鐢熶骇鏁版嵁
-                salesLedgerProductServiceImpl.addProductionData(salesLedgerProduct);
+//                salesLedgerProductServiceImpl.addProductionData(salesLedgerProduct);
             }
         }
     }
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 db9e181..902003b 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesQuotationServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesQuotationServiceImpl.java
@@ -13,6 +13,7 @@
 import com.ruoyi.approve.vo.ApproveProcessVO;
 import com.ruoyi.common.utils.OrderUtils;
 import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.bean.BeanUtils;
 import com.ruoyi.common.utils.uuid.UUID;
 import com.ruoyi.framework.security.LoginUser;
@@ -28,6 +29,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -59,7 +61,7 @@
 
     @Override
     public boolean add(SalesQuotationDto salesQuotationDto) {
-        LoginUser loginUser = SecurityUtils.getLoginUser();
+//        LoginUser loginUser = SecurityUtils.getLoginUser();
         SalesQuotation salesQuotation = new SalesQuotation();
         BeanUtils.copyProperties(salesQuotationDto, salesQuotation);
         String quotationNo = OrderUtils.countTodayByCreateTime(salesQuotationMapper, "QT");
@@ -77,20 +79,20 @@
         }).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("瀹℃壒澶辫触");
-        }
+//        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
@@ -117,13 +119,31 @@
         }).collect(Collectors.toList());
 
         salesQuotationProductService.saveBatch(products);
-        // 淇敼鎶ヤ环瀹℃壒
-        vo.setApproveUserIds(salesQuotationDto.getApproveUserIds());
-        vo.setApproveType(6);
-        vo.setApproveReason(salesQuotationDto.getQuotationNo());
-        approveProcessService.updateApproveUser(vo);
+//        // 淇敼鎶ヤ环瀹℃壒
+//        vo.setApproveUserIds(salesQuotationDto.getApproveUserIds());
+//        vo.setApproveType(6);
+//        vo.setApproveReason(salesQuotationDto.getQuotationNo());
+//        approveProcessService.updateApproveUser(vo);
         return true;
     }
+
+    @Override
+    public BigDecimal detail(String type, String productName, String specification) {
+        if(StringUtils.isEmpty(type)) return null;
+        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);
diff --git a/src/main/resources/application-hsxny.yml b/src/main/resources/application-hsxny.yml
index 4c0a3f3..cdac434 100644
--- a/src/main/resources/application-hsxny.yml
+++ b/src/main/resources/application-hsxny.yml
@@ -62,7 +62,7 @@
     druid:
       # 涓诲簱鏁版嵁婧�
       master:
-        url: jdbc:mysql://172.17.0.1:3306/product-inventory-management-hsxny?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+        url: jdbc:mysql://172.17.0.1:3306/product-inventory-management-hsxnynew?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
         username: root
         password: xd@123456..
       # 浠庡簱鏁版嵁婧�

--
Gitblit v1.9.3