From d2f503f72b5485bfee54ea296c7d0a9a243cea02 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期三, 14 一月 2026 17:51:19 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_ztns' into dev_ztns

---
 inspect-server/src/main/java/com/ruoyi/inspect/controller/DataAnalysisController.java |   51 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 50 insertions(+), 1 deletions(-)

diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/controller/DataAnalysisController.java b/inspect-server/src/main/java/com/ruoyi/inspect/controller/DataAnalysisController.java
index 933df44..c6efafd 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/controller/DataAnalysisController.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/controller/DataAnalysisController.java
@@ -2,7 +2,9 @@
 
 import com.ruoyi.basic.dto.IfsInventoryQuantitySupplierDto;
 import com.ruoyi.common.core.domain.Result;
+import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.inspect.dto.DataAnalysisDto;
+import com.ruoyi.inspect.dto.MaterialPropTableDTO;
 import com.ruoyi.inspect.service.DataAnalysisService;
 import com.ruoyi.inspect.vo.DeviationAnalyzeVo;
 import io.swagger.annotations.Api;
@@ -10,6 +12,9 @@
 import lombok.AllArgsConstructor;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletResponse;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.List;
 
 /**
@@ -51,7 +56,7 @@
     /**
      * 鏌ヨ鐗╂枡灞炴�у悎鏍肩巼琛ㄦ牸
      *
-     * @param dataAnalysisDto
+     * @param dataAnalysisDto 鏌ヨ鍙傛暟
      * @return
      */
     @ApiOperation(value = "鏌ヨ鐗╂枡灞炴�у悎鏍肩巼琛ㄦ牸")
@@ -60,6 +65,50 @@
         return Result.success(dataAnalysisService.getMaterialPropTable(dataAnalysisDto));
     }
 
+    @PostMapping("/exportSupplierExcel")
+    public void exportSupplierExcel(HttpServletResponse response, @RequestBody List<MaterialPropTableDTO> materialProps) {
+
+        if (materialProps == null || materialProps.isEmpty()) {
+            return;
+        }
+
+        int index = 1;
+        for (MaterialPropTableDTO dto : materialProps) {
+            dto.setIndex(String.valueOf(index++));
+        }
+
+        int totalBatchSum = 0;
+        int unqualifiedBatchSum = 0;
+
+        for (MaterialPropTableDTO dto : materialProps) {
+            if (dto.getTotalBatch() != null) {
+                totalBatchSum += dto.getTotalBatch();
+            }
+            if (dto.getUnqualifiedBatch() != null) {
+                unqualifiedBatchSum += dto.getUnqualifiedBatch();
+            }
+        }
+
+        BigDecimal passRateSum = BigDecimal.ZERO;
+        if (totalBatchSum > 0) {
+            passRateSum = BigDecimal
+                    .valueOf(totalBatchSum - unqualifiedBatchSum)
+                    .multiply(BigDecimal.valueOf(100))
+                    .divide(BigDecimal.valueOf(totalBatchSum), 2, RoundingMode.HALF_UP);
+        }
+
+        MaterialPropTableDTO totalRow = new MaterialPropTableDTO();
+        totalRow.setIndex("鍚堣");
+        totalRow.setSupplierName("");
+        totalRow.setTotalBatch(totalBatchSum);
+        totalRow.setUnqualifiedBatch(unqualifiedBatchSum);
+        totalRow.setPassRate(passRateSum);
+        materialProps.add(totalRow);
+
+        ExcelUtil<MaterialPropTableDTO> excelUtil = new ExcelUtil<>(MaterialPropTableDTO.class);
+        excelUtil.exportExcel(response, materialProps, "鍚堟牸鐜囩粺璁�");
+    }
+
     /**
      * 鏌ヨ鍘熸潗鏂欓」
      *

--
Gitblit v1.9.3