From 03403ba333c3c0b7e6b0ae6895a5481edbfb5d08 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期四, 02 七月 2026 14:40:39 +0800
Subject: [PATCH] 采购台账,可用数量为实际入库数量。存在采购质检部分合格入库情况。只有可用数量大于0进行采购退货操作

---
 src/main/java/com/ruoyi/sales/controller/SalesLedgerProductController.java |   88 ++++++++++++++++++++-----------------------
 1 files changed, 41 insertions(+), 47 deletions(-)

diff --git a/src/main/java/com/ruoyi/sales/controller/SalesLedgerProductController.java b/src/main/java/com/ruoyi/sales/controller/SalesLedgerProductController.java
index 28ece31..cc31974 100644
--- a/src/main/java/com/ruoyi/sales/controller/SalesLedgerProductController.java
+++ b/src/main/java/com/ruoyi/sales/controller/SalesLedgerProductController.java
@@ -1,76 +1,64 @@
 package com.ruoyi.sales.controller;
 
-import javax.servlet.http.HttpServletResponse;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import cn.hutool.core.collection.CollUtil;
 import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.ruoyi.procurementrecord.dto.ProcurementPageDto;
-import com.ruoyi.procurementrecord.dto.ProcurementPageDtoCopy;
-import com.ruoyi.procurementrecord.service.ProcurementRecordService;
-import com.ruoyi.procurementrecord.utils.StockUtils;
-import com.ruoyi.sales.pojo.SalesLedgerProduct;
-import com.ruoyi.sales.service.ISalesLedgerProductService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
 import com.ruoyi.framework.aspectj.lang.annotation.Log;
 import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
 import com.ruoyi.framework.web.controller.BaseController;
 import com.ruoyi.framework.web.domain.AjaxResult;
-import com.ruoyi.framework.web.page.TableDataInfo;
+import com.ruoyi.framework.web.domain.R;
+import com.ruoyi.sales.pojo.SalesLedgerProduct;
+import com.ruoyi.sales.service.ISalesLedgerProductService;
+import jakarta.servlet.http.HttpServletResponse;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
 
-import java.math.BigDecimal;
 import java.util.List;
 
 /**
  * 浜у搧淇℃伅Controller
- * 
+ *
  * @author ruoyi
  * @date 2025-05-08
  */
 @RestController
+@RequiredArgsConstructor
 @RequestMapping("/sales/product")
 public class SalesLedgerProductController extends BaseController
 {
-    @Autowired
-    private ISalesLedgerProductService salesLedgerProductService;
-    @Autowired
-    private ProcurementRecordService procurementRecordService;
-    @Autowired
-    private StockUtils stockUtils;
+    private final ISalesLedgerProductService salesLedgerProductService;
+
+
     /**
      * 鏌ヨ浜у搧淇℃伅鍒楄〃
      */
     @GetMapping("/list")
-    public AjaxResult list(SalesLedgerProduct salesLedgerProduct)
-    {
+    public AjaxResult list(SalesLedgerProduct salesLedgerProduct) {
         List<SalesLedgerProduct> list = salesLedgerProductService.selectSalesLedgerProductList(salesLedgerProduct);
-        list.forEach(item -> {
-                if (item.getFutureTickets().compareTo(BigDecimal.ZERO) == 0) {
-                    item.setFutureTickets(item.getQuantity());
+        if (CollUtil.isNotEmpty(list)) {
+            list.forEach(item -> {
+                if (item.getApproveStatus() != 2) {
+                    if (item.getHasSufficientStock() == 0) {
+                        item.setApproveStatus(0);
+                    } else {
+                        item.setApproveStatus(1);
+                    }
                 }
-            if (item.getFutureTicketsAmount().compareTo(BigDecimal.ZERO) == 0) {
-                item.setFutureTicketsAmount(item.getTaxInclusiveTotalPrice());
-            }
-//            ProcurementPageDto procurementDto = new ProcurementPageDto();
-//            procurementDto.setSalesLedgerProductId(item.getId());
-//            procurementDto.setProductCategory(item.getProductCategory());
-//            IPage<ProcurementPageDtoCopy> result = procurementRecordService.listPageCopyByProduction(new Page<>(1,-1), procurementDto);
-            BigDecimal stockQuantity = stockUtils.getStockQuantity(item.getProductModelId()).get("stockQuantity");
-            if(stockQuantity != null) {
-//                ProcurementPageDtoCopy procurementDtoCopy = result.getRecords().get(0);
-                if (item.getQuantity().compareTo(stockQuantity) <= 0 && item.getApproveStatus() == 0) {
-                    item.setApproveStatus(1);
-                    salesLedgerProductService.addOrUpdateSalesLedgerProduct(item);
+                java.math.BigDecimal returnQuantity = item.getReturnQuantity() == null
+                        ? java.math.BigDecimal.ZERO
+                        : item.getReturnQuantity();
+                item.setReturnQuantity(returnQuantity);
+                java.math.BigDecimal availableQuality = item.getQuantity() == null
+                        ? java.math.BigDecimal.ZERO
+                        : item.getQuantity();
+                if (item.getType() != null && item.getType() == 2) {
+                    availableQuality = item.getApprovedStockInNum() == null
+                            ? java.math.BigDecimal.ZERO
+                            : item.getApprovedStockInNum();
                 }
-            }
-        });
+                item.setAvailableQuality(availableQuality.subtract(returnQuantity));
+            });
+        }
         return AjaxResult.success(list);
     }
 
@@ -117,4 +105,10 @@
         }
         return toAjax(salesLedgerProductService.deleteSalesLedgerProductByIds(ids));
     }
+
+    //鏍规嵁浜у搧id鑾峰彇bom鍒ゆ柇搴撳瓨鏄惁鍏呰冻
+    @GetMapping("/judgmentInventory")
+    public R judgmentInventory(SalesLedgerProduct salesLedgerProduct) {
+        return  salesLedgerProductService.judgmentInventory(salesLedgerProduct);
+    }
 }

--
Gitblit v1.9.3