From 9fa762cf783e2dc3f67b793e34d266dd4d3ec322 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期五, 10 四月 2026 15:58:27 +0800
Subject: [PATCH] feat:1.销售添加是否生产 2.生产订单添加备注

---
 src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java                     |    4 ++
 src/main/java/com/ruoyi/production/controller/ProductOrderController.java |    4 +-
 src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java    |   55 ++++++++++++++-------------
 src/main/java/com/ruoyi/sales/pojo/SalesLedger.java                       |   14 +++++--
 src/main/java/com/ruoyi/production/pojo/ProductOrder.java                 |    6 ++
 5 files changed, 50 insertions(+), 33 deletions(-)

diff --git a/src/main/java/com/ruoyi/production/controller/ProductOrderController.java b/src/main/java/com/ruoyi/production/controller/ProductOrderController.java
index 14baf04..baebd18 100644
--- a/src/main/java/com/ruoyi/production/controller/ProductOrderController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProductOrderController.java
@@ -16,7 +16,7 @@
 import javax.servlet.http.HttpServletResponse;
 import java.util.List;
 
-@RequestMapping("productOrder")
+@RequestMapping("/productOrder")
 @RestController
 @Api(tags = "鐢熶骇璁㈠崟")
 public class ProductOrderController {
@@ -26,7 +26,7 @@
 
 
     @ApiOperation("鍒嗛〉鏌ヨ")
-    @GetMapping("page")
+    @GetMapping("/page")
     public R page(ProductOrderDto productOrder, Page page) {
         return R.ok(productOrderService.pageProductOrder(page, productOrder));
     }
diff --git a/src/main/java/com/ruoyi/production/pojo/ProductOrder.java b/src/main/java/com/ruoyi/production/pojo/ProductOrder.java
index 8963f24..dca1657 100644
--- a/src/main/java/com/ruoyi/production/pojo/ProductOrder.java
+++ b/src/main/java/com/ruoyi/production/pojo/ProductOrder.java
@@ -113,6 +113,10 @@
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime endTime;
 
-
+    /**
+     * 澶囨敞
+     */
+    @ApiModelProperty(value = "澶囨敞")
+    private String remark;
 
 }
diff --git a/src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java b/src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java
index 78169a0..14377bc 100644
--- a/src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java
+++ b/src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java
@@ -13,6 +13,7 @@
 
 @Data
 public class SalesLedgerDto {
+
     private Long id;
     private String salesContractNo;
     private String customerContractNo;
@@ -57,4 +58,7 @@
 
     @ApiModelProperty(value = "浜よ揣鏃ユ湡")
     private LocalDate deliveryDate;
+
+    @ApiModelProperty(value = "鏄惁鐢熶骇")
+    private boolean produce;
 }
diff --git a/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java b/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java
index 1e6cb99..e782991 100644
--- a/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java
+++ b/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java
@@ -1,15 +1,15 @@
 package com.ruoyi.sales.pojo;
 
-import java.math.BigDecimal;
-import java.time.LocalDate;
-import java.util.Date;
-
 import com.baomidou.mybatisplus.annotation.*;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.framework.aspectj.lang.annotation.Excel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.Date;
 
 /**
  * 閿�鍞彴璐﹀璞� sales_ledger
@@ -159,5 +159,11 @@
      */
     @TableField(exist = false)
     private String contactPhone;
+
+    /**
+     * 鏄惁鐢熶骇
+     */
+    @ApiModelProperty(value = "鏄惁鐢熶骇")
+    private boolean isProduce;
 }
 
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 2e0b507..1e29d05 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -35,7 +35,6 @@
 import com.ruoyi.sales.mapper.*;
 import com.ruoyi.sales.pojo.*;
 import com.ruoyi.sales.service.ISalesLedgerService;
-import com.ruoyi.stock.dto.StockInventoryDto;
 import com.ruoyi.stock.mapper.StockInventoryMapper;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -606,7 +605,7 @@
             // 4. 澶勭悊瀛愯〃鏁版嵁
             List<SalesLedgerProduct> productList = salesLedgerDto.getProductData();
             if (productList != null && !productList.isEmpty()) {
-                handleSalesLedgerProducts(salesLedger.getId(), productList, salesLedgerDto.getType());
+                handleSalesLedgerProducts(salesLedger.getId(), productList, salesLedgerDto.getType(), salesLedgerDto.isProduce());
                 updateMainContractAmount(
                         salesLedger.getId(),
                         productList,
@@ -704,7 +703,7 @@
     }
 
 
-    private void handleSalesLedgerProducts(Long salesLedgerId, List<SalesLedgerProduct> products, Integer type) {
+    private void handleSalesLedgerProducts(Long salesLedgerId, List<SalesLedgerProduct> products, Integer type, boolean isProduce) {
         // 鎸塈D鍒嗙粍锛屽尯鍒嗘柊澧炲拰鏇存柊鐨勮褰�
         Map<Boolean, List<SalesLedgerProduct>> partitionedProducts = products.stream()
                 .peek(p -> p.setSalesLedgerId(salesLedgerId))
@@ -713,26 +712,26 @@
         List<SalesLedgerProduct> updateList = partitionedProducts.get(true);
         List<SalesLedgerProduct> insertList = partitionedProducts.get(false);
 
-        List<StockInventoryDto> stockInventoryDtos = stockInventoryMapper.selectProductList();
+//        List<StockInventoryDto> stockInventoryDtos = stockInventoryMapper.selectProductList();
 
         // 鎵ц鏇存柊鎿嶄綔
         if (!updateList.isEmpty()) {
             for (SalesLedgerProduct product : updateList) {
-                // 鏌ヨ搴撳瓨鏁伴噺
-                SalesLedgerProduct oldProduct = salesLedgerProductMapper.selectById(product.getId());
-                BigDecimal quantityChange = product.getQuantity().subtract(oldProduct.getQuantity());
-
-                // 濡傛灉鏁伴噺澧炲姞浜嗭紝妫�鏌ュ簱瀛�
-                if (quantityChange.compareTo(BigDecimal.ZERO) > 0) {
-                    for (StockInventoryDto stockInventoryDto : stockInventoryDtos) {
-                        if (stockInventoryDto.getProductId().equals(product.getId())) {
-                            if (quantityChange.compareTo(stockInventoryDto.getQualitity()) > 0) {
-                                throw new RuntimeException("搴撳瓨涓嶈冻");
-                            }
-                            break;
-                        }
-                    }
-                }
+//                // 鏌ヨ搴撳瓨鏁伴噺
+//                SalesLedgerProduct oldProduct = salesLedgerProductMapper.selectById(product.getId());
+//                BigDecimal quantityChange = product.getQuantity().subtract(oldProduct.getQuantity());
+//
+//                // 濡傛灉鏁伴噺澧炲姞浜嗭紝妫�鏌ュ簱瀛�
+//                if (quantityChange.compareTo(BigDecimal.ZERO) > 0) {
+//                    for (StockInventoryDto stockInventoryDto : stockInventoryDtos) {
+//                        if (stockInventoryDto.getProductId().equals(product.getId())) {
+//                            if (quantityChange.compareTo(stockInventoryDto.getQualitity()) > 0) {
+//                                throw new RuntimeException("搴撳瓨涓嶈冻");
+//                            }
+//                            break;
+//                        }
+//                    }
+//                }
                 product.setType(type);
                 salesLedgerProductMapper.updateById(product);
             }
@@ -740,18 +739,22 @@
         // 鎵ц鎻掑叆鎿嶄綔
         if (!insertList.isEmpty()) {
             for (SalesLedgerProduct salesLedgerProduct : insertList) {
-                for (StockInventoryDto stockInventoryDto : stockInventoryDtos) {
-                    if (stockInventoryDto.getProductId().equals(salesLedgerProduct.getId())) {
-                        if (salesLedgerProduct.getQuantity().compareTo(stockInventoryDto.getQualitity()) > 0) {
-                            throw new RuntimeException("搴撳瓨涓嶈冻");
-                        }
-                    }
-                }
+//                for (StockInventoryDto stockInventoryDto : stockInventoryDtos) {
+//                    if (stockInventoryDto.getProductId().equals(salesLedgerProduct.getId())) {
+//                        if (salesLedgerProduct.getQuantity().compareTo(stockInventoryDto.getQualitity()) > 0) {
+//                            throw new RuntimeException("搴撳瓨涓嶈冻");
+//                        }
+//                    }
+//                }
                 salesLedgerProduct.setType(type);
                 salesLedgerProduct.setNoInvoiceNum(salesLedgerProduct.getQuantity());
                 salesLedgerProduct.setNoInvoiceAmount(salesLedgerProduct.getTaxInclusiveTotalPrice());
                 salesLedgerProduct.setPendingInvoiceTotal(salesLedgerProduct.getTaxInclusiveTotalPrice());
                 salesLedgerProductMapper.insert(salesLedgerProduct);
+                // 娣诲姞鐢熶骇鏁版嵁
+                if (isProduce) {
+                    salesLedgerProductServiceImpl.addProductionData(salesLedgerProduct);
+                }
             }
         }
     }

--
Gitblit v1.9.3