From 61f1de60e6f58dd8e19f01c56f2e56e40885d65b Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期二, 23 六月 2026 17:39:58 +0800
Subject: [PATCH] 点击发货-》发货审核-》出厂质检-》出库审核-》出库通过

---
 src/main/java/com/ruoyi/approve/service/impl/ApprovalInstanceServiceImpl.java |   42 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 42 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/approve/service/impl/ApprovalInstanceServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/ApprovalInstanceServiceImpl.java
index c7a80df..317ecfb 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/ApprovalInstanceServiceImpl.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/ApprovalInstanceServiceImpl.java
@@ -40,12 +40,15 @@
 import com.ruoyi.purchase.mapper.PurchaseLedgerMapper;
 import com.ruoyi.purchase.pojo.PurchaseLedger;
 import com.ruoyi.quality.utils.QualityInspectHelper;
+import com.ruoyi.sales.mapper.SalesLedgerMapper;
 import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
 import com.ruoyi.sales.mapper.SalesQuotationMapper;
 import com.ruoyi.sales.mapper.ShippingInfoMapper;
+import com.ruoyi.sales.mapper.ShippingProductDetailMapper;
 import com.ruoyi.sales.pojo.SalesLedgerProduct;
 import com.ruoyi.sales.pojo.SalesQuotation;
 import com.ruoyi.sales.pojo.ShippingInfo;
+import com.ruoyi.sales.pojo.ShippingProductDetail;
 import com.ruoyi.staff.mapper.HolidayApplicationMapper;
 import com.ruoyi.staff.pojo.HolidayApplication;
 import lombok.RequiredArgsConstructor;
@@ -94,6 +97,8 @@
     private final EnterpriseNewsMapper enterpriseNewsMapper;
     private final EnterpriseNewsScopeDeptMapper enterpriseNewsScopeDeptMapper;
     private final ApprovalTemplateNodeApproverMapper approvalTemplateNodeApproverMapper;
+    private final ShippingProductDetailMapper shippingProductDetailMapper;
+    private final SalesLedgerMapper salesLedgerMapper;
 
     @Override
     public R listPage(Page<ApprovalInstanceVo> page, ApprovalInstanceDto approvalInstanceDto) {
@@ -703,6 +708,9 @@
             shippingInfo.setStatus(ShippingStatusEnum.APPROVED.getCode());
             shippingInfo.setShippingDate(new Date());
             stockUtils.shipmentStatus(StockOutQualifiedRecordTypeEnum.SALE_SHIP_STOCK_OUT.getCode(), shippingInfo.getId());
+
+            // 鍙戣揣瀹℃壒閫氳繃鍚庯紝鑷姩鐢熸垚鍑哄巶妫�楠屽崟
+            createFactoryInspectForShipping(shippingInfo);
         } else if ("REJECTED".equals(status)) {
             stockUtils.deleteStockOutRecord(shippingInfo.getId(), StockOutQualifiedRecordTypeEnum.SALE_SHIP_STOCK_OUT.getCode());
             shippingInfo.setStatus(ShippingStatusEnum.REJECTED.getCode());
@@ -712,6 +720,40 @@
         shippingInfoMapper.updateById(shippingInfo);
     }
 
+    /**
+     * 鍙戣揣瀹℃壒閫氳繃鍚庯紝鑷姩鐢熸垚鍑哄巶妫�楠屽崟
+     */
+    private void createFactoryInspectForShipping(ShippingInfo shippingInfo) {
+        // 鏌ヨ鍙戣揣浜у搧鏄庣粏
+        List<ShippingProductDetail> detailList = shippingProductDetailMapper.selectList(
+                new LambdaQueryWrapper<ShippingProductDetail>()
+                        .eq(ShippingProductDetail::getShippingInfoId, shippingInfo.getId())
+        );
+
+        if (detailList == null || detailList.isEmpty()) {
+            return;
+        }
+
+        // 鑾峰彇瀹㈡埛鍚嶇О
+        String customerName = null;
+        if (shippingInfo.getSalesLedgerId() != null) {
+            com.ruoyi.sales.pojo.SalesLedger salesLedger = salesLedgerMapper.selectById(shippingInfo.getSalesLedgerId());
+            if (salesLedger != null) {
+                customerName = salesLedger.getCustomerName();
+            }
+        }
+
+        // 涓烘瘡涓彂璐т骇鍝佸垱寤哄嚭鍘傛楠屽崟
+        for (ShippingProductDetail detail : detailList) {
+            qualityInspectHelper.addFactoryInspect(
+                    shippingInfo,
+                    detail,
+                    customerName,
+                    shippingInfo.getSalesLedgerId()
+            );
+        }
+    }
+
     private List<ApprovalTask> createNodeAndTasks(ApprovalInstance instance, ApprovalTemplateNode templateNode) {
         List<ApprovalTemplateNodeApprover> approvers = approvalTemplateNodeApproverMapper.selectList(
                 new LambdaQueryWrapper<ApprovalTemplateNodeApprover>()

--
Gitblit v1.9.3