From 3e5e22f5358156ff7430ee117546123ffe042611 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期日, 20 九月 2026 20:23:52 +0800
Subject: [PATCH] feat(stock): 实现出品出库绑定销售台账功能

---
 src/main/java/com/ruoyi/stock/service/StockOutRecordService.java |   52 +++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 51 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/ruoyi/stock/service/StockOutRecordService.java b/src/main/java/com/ruoyi/stock/service/StockOutRecordService.java
index f18d50c..7f762d9 100644
--- a/src/main/java/com/ruoyi/stock/service/StockOutRecordService.java
+++ b/src/main/java/com/ruoyi/stock/service/StockOutRecordService.java
@@ -3,10 +3,14 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.sales.dto.SalesLedgerDto;
+import com.ruoyi.sales.pojo.SalesLedger;
+import com.ruoyi.stock.dto.OilOutAvailableDto;
 import com.ruoyi.stock.dto.StockOutRecordDto;
 import com.ruoyi.stock.pojo.StockOutRecord;
 
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -26,5 +30,51 @@
 
     int batchDelete(List<Long> ids);
 
+    int batchDeletePending(List<Long> ids);
+
     void exportStockOutRecord(HttpServletResponse response, StockOutRecordDto stockOutRecordDto);
+
+    int batchApprove(List<Long> ids, Integer approvalStatus);
+
+    int batchReAudit(List<Long> ids);
+
+    /**
+     * 褰曞叆銆屾湰娆¢�佸畬璐у悗鍓╀綑娌归噺銆嶃��
+     * 鍙洿鏂� residual_oil锛屼笉鍔ㄥ叾浠栧垪锛涜蛋 {@link #update} 浼氭妸鏈紶鐨勫瓧娈靛叏閮ㄧ疆绌猴紝鏁呭崟鐙紑涓�涓帴鍙�
+     *
+     * @param id          鍑哄簱璁板綍id
+     * @param residualOil 鍓╀綑娌归噺(鍚�)锛屼笉鑳戒负绌恒�佷笉鑳藉皬浜�0銆佷笉鑳藉ぇ浜庡嚭搴撴暟閲�
+     */
+    int updateResidualOil(Long id, BigDecimal residualOil);
+
+    /**
+     * 娌瑰搧鍑哄簱鍙敤閲忥細涓嬫鍙戣揣 = 涓婃鍓╀綑娌归噺 + 褰撳墠搴撳瓨閲�
+     *
+     * @param query 闇�甯� vehicleId銆乸roductModelId锛宐atchNo 鍙��
+     * @return 涓婃鍓╀綑娌归噺 / 褰撳墠搴撳瓨 / 鍙敤閲�
+     */
+    OilOutAvailableDto getOilOutAvailableQty(StockOutRecordDto query);
+
+    /**
+     * 鎸夋潵婧愭槑缁唅d鎵归噺鏌ヨ鍑哄簱璁板綍锛屼笉鍙楁暟鎹潈闄愮害鏉熴��
+     * 渚涗笟鍔″崟鎹仛銆屽嚭搴撴槸鍚﹀凡瀹℃壒銆嶈繖绫昏嚜韬姸鎬佹満鏍¢獙锛屾崲璐﹀彿鎵ц涔熷繀椤荤湅鍒板悓涓�鎵硅褰�
+     *
+     * @param recordIds  鏉ユ簮鏄庣粏id锛屼负绌鸿繑鍥炵┖闆嗗悎
+     * @param recordType 鍑哄簱绫诲瀷锛岃 StockInQualifiedRecordTypeEnum
+     */
+    List<StockOutRecord> listByRecordIds(List<Long> recordIds, String recordType);
+
+    /**
+     * 閲婃斁鏉ユ簮鏄庣粏鍏宠仈鐨勫嚭搴撹褰曪細瀹℃壒閫氳繃杩囩殑鎸夋壒娆″綊杩樺簱瀛橀噺锛岀劧鍚庡垹闄よ褰曘��
+     * 寰呭鎵�/椹冲洖鐨勮褰曟病鎵h繃搴撳瓨锛屽垹鎺夊嵆閲婃斁鍗犵敤
+     *
+     * @return 鍒犻櫎鐨勮褰曟暟
+     */
+    int releaseByRecordIds(List<Long> recordIds, String recordType);
+
+    /**
+     * 娌瑰搧鍑哄簱鍙粦瀹氱殑閿�鍞彴璐︿笅鎷夛紝鏀寔鎸夊悎鍚屽彿/瀹㈡埛鍚�/椤圭洰鍚嶆ā绯婄瓫閫夛紝涓嶅垎 ledgerType锛堜唬鍌ㄥ彴璐︿篃鑳界粦锛夈��
+     * 涓嶅彈鏁版嵁鏉冮檺绾︽潫锛岀悊鐢辫 {@code StockOutRecordMapper#bindableSalesLedgerPage}
+     */
+    IPage<SalesLedger> listBindableSalesLedger(Page page, SalesLedgerDto salesLedgerDto);
 }

--
Gitblit v1.9.3