From 4da34a9f82571007296dfecab9d06cd8da42d9d8 Mon Sep 17 00:00:00 2001
From: buhuazhen <hua100783@gmail.com>
Date: 星期六, 09 五月 2026 10:59:03 +0800
Subject: [PATCH] feat(production): 添加生产订单导出功能

---
 src/main/java/com/ruoyi/production/controller/ProductionOrderController.java |   18 ++++++++++++++++++
 src/main/java/com/ruoyi/production/pojo/ProductionOrder.java                 |    8 ++++++++
 src/main/java/com/ruoyi/production/bean/vo/ProductionOrderVo.java            |    5 +++++
 3 files changed, 31 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/production/bean/vo/ProductionOrderVo.java b/src/main/java/com/ruoyi/production/bean/vo/ProductionOrderVo.java
index 1bb26a4..01ef33a 100644
--- a/src/main/java/com/ruoyi/production/bean/vo/ProductionOrderVo.java
+++ b/src/main/java/com/ruoyi/production/bean/vo/ProductionOrderVo.java
@@ -1,6 +1,7 @@
 package com.ruoyi.production.bean.vo;
 
 import com.ruoyi.basic.dto.StorageBlobVO;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
 import com.ruoyi.production.pojo.ProductionOrder;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
@@ -20,12 +21,15 @@
     private String customerName;
 
     @Schema(description = "浜у搧鍚嶇О")
+    @Excel(name = "浜у搧鍚嶇О",sort = 2)
     private String productName;
 
     @Schema(description = "瑙勬牸鍨嬪彿")
+    @Excel(name = "瑙勬牸",sort = 3)
     private String model;
 
     @Schema(description = "宸ヨ壓璺嚎缂栫爜")
+    @Excel(name = "宸ヨ壓璺嚎缂栧彿",sort = 4)
     private String processRouteCode;
 
     @Schema(description = "浜у搧鍥剧墖")
@@ -35,6 +39,7 @@
     private String bomNo;
 
     @Schema(description = "瀹屾垚杩涘害")
+    @Excel(name = "瀹屾垚杩涘害",sort = 7)
     private BigDecimal completionStatus;
 
     @Schema(description = "鏄惁宸查��鏂�")
diff --git a/src/main/java/com/ruoyi/production/controller/ProductionOrderController.java b/src/main/java/com/ruoyi/production/controller/ProductionOrderController.java
index b5f7b97..0a68875 100644
--- a/src/main/java/com/ruoyi/production/controller/ProductionOrderController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProductionOrderController.java
@@ -1,7 +1,11 @@
 package com.ruoyi.production.controller;
 
+import cn.hutool.core.collection.CollUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
 import com.ruoyi.framework.web.domain.R;
 import com.ruoyi.production.bean.dto.ProductionOrderDto;
 import com.ruoyi.production.bean.vo.ProductionOrderPickVo;
@@ -10,13 +14,17 @@
 import com.ruoyi.production.bean.vo.ProductionOrderWorkOrderDetailVo;
 import com.ruoyi.production.pojo.ProductionOrder;
 import com.ruoyi.production.service.ProductionOrderService;
+import com.ruoyi.sales.dto.SalesLedgerDto;
+import com.ruoyi.sales.vo.SalesLedgerVo;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.Content;
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.servlet.http.HttpServletResponse;
 import lombok.RequiredArgsConstructor;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.ArrayList;
 import java.util.List;
 
 @RestController
@@ -95,4 +103,14 @@
     public R updateOrder(@RequestBody ProductionOrderDto productionOrderDto) {
         return R.ok(productionOrderService.updateOrder(productionOrderDto));
     }
+
+
+    @Log(title = "鐢熶骇璁㈠崟瀵煎嚭", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, ProductionOrderDto dto) {
+        IPage<ProductionOrderVo> productionOrderVoIPage = productionOrderService.pageProductionOrder(new Page<>(-1, -1), dto);
+        List<ProductionOrderVo> records = productionOrderVoIPage.getRecords();
+        ExcelUtil<ProductionOrderVo> util = new ExcelUtil<>(ProductionOrderVo.class);
+        util.exportExcel(response, records, "鐢熶骇璁㈠崟鏁版嵁");
+    }
 }
diff --git a/src/main/java/com/ruoyi/production/pojo/ProductionOrder.java b/src/main/java/com/ruoyi/production/pojo/ProductionOrder.java
index 1f882b1..e52ee9d 100644
--- a/src/main/java/com/ruoyi/production/pojo/ProductionOrder.java
+++ b/src/main/java/com/ruoyi/production/pojo/ProductionOrder.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.annotation.*;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -36,6 +37,7 @@
     private Long productModelId;
 
     @Schema(description = "鐢熶骇璁㈠崟鍙�")
+    @Excel(name = "鐢熶骇璁㈠崟",sort = 0)
     private String npsNo;
 
     @Schema(description = "褰曞叆鏃堕棿")
@@ -50,15 +52,19 @@
     private Long technologyRoutingId;
 
     @Schema(description = "闇�姹傛暟閲忋�傛墜鍔ㄦ柊澧炴椂蹇呭~涓斿繀椤诲ぇ浜� 0锛涘鏋滀紶浜� productionPlanIds锛屽垯鍙敱绯荤粺鑷姩甯﹀嚭銆�")
+    @Excel(name = "闇�姹傛暟閲�",sort = 5)
     private BigDecimal quantity;
 
     @Schema(description = "瀹屾垚鏁伴噺")
+    @Excel(name = "瀹屾垚鏁伴噺",sort = 6)
     private BigDecimal completeQuantity;
 
     @Schema(description = "寮�濮嬫棩鏈�")
+    @Excel(name = "寮�濮嬫棩鏈�",sort = 8,dateFormat = "yyyy-MM-dd")
     private LocalDateTime startTime;
 
     @Schema(description = "缁撴潫鏃ユ湡")
+    @Excel(name = "缁撴潫鏃ユ湡",sort = 9,dateFormat = "yyyy-MM-dd")
     private LocalDateTime endTime;
 
     @Schema(description = "鍒涘缓浜篒D")
@@ -72,9 +78,11 @@
     @Schema(description = "璁″垝瀹屾垚鏃堕棿")
     @JsonFormat(pattern = "yyyy-MM-dd")
     @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "璁″垝瀹屾垚鏃堕棿",sort = 10,dateFormat = "yyyy-MM-dd")
     private LocalDate planCompleteTime;
 
     @Schema(description = "鐘舵�侊紙1.寰呭紑濮� 2.杩涜涓� 3.宸插畬鎴� 4.宸插彇娑� 5.宸茬粨鏉燂級")
+    @Excel(name = "鐘舵��",sort = 1,readConverterExp = "1=寰呭紑濮�,2=杩涜涓�,3=宸插畬鎴�,4=宸插彇娑�,5=宸茬粨鏉�")
     private Integer status;
 
     @Schema(description = "鏄惁缁撴潫锛�")

--
Gitblit v1.9.3