From 4a3c292d14b3e7ebcee6ae9961086f8e0b9b2b15 Mon Sep 17 00:00:00 2001 From: chenhao <852066789@qq.com> Date: Tue, 20 May 2025 17:46:37 +0800 Subject: [PATCH] =?UTF-8?q?feat(sip):=20=E6=B7=BB=E5=8A=A0=E5=90=88?= =?UTF-8?q?=E5=90=8C=E6=B8=85=E5=8D=95=E6=A8=A1=E6=9D=BF=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 application.yml 中添加 excelTemplate 配置项,用于指定 Excel 模板路径- 修改 OrderInfoController,增加 listExport 方法用于下载合同清单模板- 更新 RuoYiConfig 类,添加 getExcelTemplate 和 setExcelTemplate 方法 - 优化 DeliveryListServiceImpl 中的年份解析逻辑,增加空值判断 --- .../src/main/resources/application.yml | 2 +- .../com/ruoyi/common/config/RuoYiConfig.java | 9 ++++++ .../sip/controller/OrderInfoController.java | 32 ++++++++++++++++--- .../service/impl/DeliveryListServiceImpl.java | 2 +- 4 files changed, 38 insertions(+), 7 deletions(-) diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index 068b98ba..6527226e 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -12,7 +12,7 @@ ruoyi: profile: D:\ruoyi\uploadPath # 获取ip地址开关 addressEnabled: false - + excelTemplate: D:\ruoyi\excelTemplate # 开发环境配置 server: # 服务器的HTTP端口,默认为80 diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/config/RuoYiConfig.java b/ruoyi-common/src/main/java/com/ruoyi/common/config/RuoYiConfig.java index cee48bca..efb5db10 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/config/RuoYiConfig.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/config/RuoYiConfig.java @@ -26,6 +26,7 @@ public class RuoYiConfig /** 上传路径 */ private static String profile; + private static String excelTemplate; /** 获取地址开关 */ private static boolean addressEnabled; @@ -121,4 +122,12 @@ public class RuoYiConfig { return getProfile() + "/upload"; } + + public static String getExcelTemplate() { + return excelTemplate; + } + + public void setExcelTemplate(String excelTemplate) { + RuoYiConfig.excelTemplate = excelTemplate; + } } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/OrderInfoController.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/OrderInfoController.java index e5cbf6f0..786b0c8d 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/OrderInfoController.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/OrderInfoController.java @@ -1,17 +1,23 @@ package com.ruoyi.sip.controller; +import java.io.File; import java.util.List; import java.util.Objects; import java.util.Set; import java.util.stream.Collectors; import cn.hutool.core.collection.CollUtil; +import com.ruoyi.common.config.RuoYiConfig; +import com.ruoyi.common.constant.Constants; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.file.FileUtils; import com.ruoyi.sip.domain.*; import com.ruoyi.sip.service.IProductInfoService; +import lombok.extern.slf4j.Slf4j; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.*; @@ -24,6 +30,9 @@ import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.core.page.TableDataInfo; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + /** * 合同档案Controller * @@ -32,6 +41,7 @@ import org.springframework.web.multipart.MultipartFile; */ @Controller @RequestMapping("/manage/order") +@Slf4j public class OrderInfoController extends BaseController { private String prefix = "manage/order"; @@ -169,11 +179,23 @@ public class OrderInfoController extends BaseController @RequiresPermissions("sip:list:export") @Log(title = "发货清单", businessType = BusinessType.EXPORT) @PostMapping("/list/export") - @ResponseBody - public AjaxResult listExport(OrderList orderList) { - List list = orderInfoService.listExport(orderList); - ExcelUtil util = new ExcelUtil(OrderList.class); - return util.exportExcel(list, "合同清单数据"); + public void listExport(HttpServletRequest request, HttpServletResponse response) { + try + { + + // 本地资源路径 + String localPath = RuoYiConfig.getExcelTemplate(); + // 下载名称 + String fileName = "合同清单明细.xlsx"; + String downloadPath = localPath+ File.separator+ fileName; + response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); + FileUtils.setAttachmentResponseHeader(response, fileName); + FileUtils.writeBytes(downloadPath, response.getOutputStream()); + } + catch (Exception e) + { + log.error("下载文件失败", e); + } } @PostMapping("/list/importData") @ResponseBody diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/DeliveryListServiceImpl.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/DeliveryListServiceImpl.java index 559930d8..4abb2ced 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/DeliveryListServiceImpl.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/DeliveryListServiceImpl.java @@ -235,7 +235,7 @@ public class DeliveryListServiceImpl implements IDeliveryListService { } private static Date updateStartTimeAndAddList(DeliveryInfoVo deliveryInfoVo, ProductInfo productInfo, Date startTime, List serviceInfoList) { - int year = Integer.parseInt(productInfo.getValue()); + int year = productInfo.getValue() == null ? 0 : Integer.parseInt(productInfo.getValue()); DeliveryInfoVo.ServiceInfo serviceInfo = deliveryInfoVo.new ServiceInfo(); serviceInfo.setServiceLevel(productInfo.getValue()); serviceInfo.setServiceDescribe(productInfo.getDescription());