From 7b8b2456bb15aa733b8599fce2ada5d9549ba881 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期四, 11 六月 2026 13:21:20 +0800
Subject: [PATCH] 销售台账,工艺路线配置设置是否完成;导出工艺路线

---
 src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java |   69 +++++++++++++++++++++++++++++++++-
 1 files changed, 67 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java b/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
index f74c85c..8b374f5 100644
--- a/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
+++ b/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
@@ -23,9 +23,11 @@
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
+import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.FileNotFoundException;
 import java.io.IOException;
@@ -171,6 +173,20 @@
     }
 
     /**
+     * 瀵煎嚭鍞悗鍙拌处宸ヨ壓璺嚎
+     */
+    @Log(title = "閿�鍞彴璐﹀伐鑹鸿矾绾�", businessType = BusinessType.EXPORT)
+    @PostMapping("/exportProcessRoute")
+    @ApiOperation("瀵煎嚭鍞悗鍙拌处宸ヨ壓璺嚎")
+    public void exportProcessRoute(HttpServletResponse response,
+                                   HttpServletRequest request,
+                                   @RequestParam(value = "completedTimeStart", required = false) String completedTimeStart,
+                                   @RequestParam(value = "completedTimeEnd", required = false) String completedTimeEnd) {
+        List<Long> salesLedgerIds = parseSalesLedgerIds(request);
+        salesLedgerService.exportProcessRoute(response, salesLedgerIds, completedTimeStart, completedTimeEnd);
+    }
+
+    /**
      * 瀵煎嚭寮�绁ㄧ櫥璁板垪琛�
      */
     @Log(title = "瀵煎嚭寮�绁ㄧ櫥璁板垪琛�", businessType = BusinessType.EXPORT)
@@ -198,8 +214,8 @@
      */
     @PostMapping("/saleProcessBind")
     @ApiOperation("閿�鍞鍗曠粦瀹氬伐鑹鸿矾绾�")
-    public AjaxResult saleProcessBind(@RequestBody SalesLedgerProcessRoute salesLedgerProcessRoute) {
-        salesLedgerService.saleProcessBind(salesLedgerProcessRoute);
+    public AjaxResult saleProcessBind(@RequestBody SalesLedgerProcessRouteDto salesLedgerProcessRouteDto) {
+        salesLedgerService.saleProcessBind(salesLedgerProcessRouteDto);
         return AjaxResult.success();
     }
 
@@ -443,4 +459,53 @@
         excelUtil.importTemplateExcel(response, "鏈嚭搴撳鍏ユā鏉夸笅杞�");
     }
 
+    private List<Long> parseSalesLedgerIds(HttpServletRequest request) {
+        if (request == null) {
+            return Collections.emptyList();
+        }
+
+        List<Long> ids = new ArrayList<>();
+        Map<String, String[]> parameterMap = request.getParameterMap();
+        if (parameterMap == null || parameterMap.isEmpty()) {
+            return ids;
+        }
+
+        String directValue = request.getParameter("salesLedgerIds");
+        if (StringUtils.hasText(directValue)) {
+            for (String value : directValue.split(",")) {
+                addParsedLong(ids, value);
+            }
+        }
+
+        for (Map.Entry<String, String[]> entry : parameterMap.entrySet()) {
+            String key = entry.getKey();
+            if (!StringUtils.hasText(key)) {
+                continue;
+            }
+            if (!"salesLedgerIds".equals(key) && !key.startsWith("salesLedgerIds[")) {
+                continue;
+            }
+            String[] values = entry.getValue();
+            if (values == null) {
+                continue;
+            }
+            for (String value : values) {
+                addParsedLong(ids, value);
+            }
+        }
+
+        return ids.stream().filter(Objects::nonNull).distinct().collect(Collectors.toList());
+    }
+
+    private void addParsedLong(List<Long> target, String value) {
+        if (target == null || !StringUtils.hasText(value)) {
+            return;
+        }
+        try {
+            target.add(Long.valueOf(value.trim()));
+        } catch (Exception ignored) {
+            // ignore invalid id values
+        }
+    }
+
 }

--
Gitblit v1.9.3