From eb21c66029e80600a0fe96d9e33d1fcbac85fecc Mon Sep 17 00:00:00 2001 From: weitingdong <2480899115@qq.com> Date: Mon, 8 Jul 2024 14:42:33 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E6=89=B9=E9=87=8F=E9=A9=B3=E5=9B=9E=20?= =?UTF-8?q?=E5=AE=A1=E6=A0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/EquipmentLedgerController.java | 36 ++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/energy/modules/leger/controller/EquipmentLedgerController.java b/src/main/java/org/energy/modules/leger/controller/EquipmentLedgerController.java index 197f3f7..364dae5 100644 --- a/src/main/java/org/energy/modules/leger/controller/EquipmentLedgerController.java +++ b/src/main/java/org/energy/modules/leger/controller/EquipmentLedgerController.java @@ -34,6 +34,9 @@ import org.energy.modules.leger.vo.EquipmentLedgerVO; import org.energy.modules.leger.service.IEquipmentLedgerService; import com.dayu.daf.core.boot.ctrl.DafController; +import java.util.ArrayList; +import java.util.List; + /** * 设备台账编码一览 控制器 * @@ -66,7 +69,6 @@ public class EquipmentLedgerController extends DafController { @ApiOperationSupport(order = 2) @ApiOperation(value = "分页", notes = "传入equipmentLedger") public R> list(EquipmentLedger equipmentLedger, Query query) { - query.setAscs("eq_ledger_code"); IPage pages = equipmentLedgerService.page(Condition.getPage(query), Condition.getQueryWrapper(equipmentLedger)); return R.data(pages); } @@ -123,5 +125,37 @@ public class EquipmentLedgerController extends DafController { return R.status(equipmentLedgerService.deleteLogic(Func.toLongList(ids))); } + /** + * 审核 设备台账编码一览 + */ + @PostMapping("/auditing") + @ApiOperationSupport(order = 8) + @ApiOperation(value = "更新", notes = "传入ids") + public R auditing(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { + return this.approve(2,ids); + } + /** + * 驳回 设备台账编码一览 + */ + @PostMapping("/reject") + @ApiOperationSupport(order = 9) + @ApiOperation(value = "更新", notes = "传入ids") + public R reject(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { + return this.approve(3,ids); + } + + /** + * 驳回OR审核 设备台账编码一览 + */ + public R approve(Integer status, String ids) { + List list = new ArrayList<>(); + for (String id : ids.split(",")) { + EquipmentLedger equipmentLedger = new EquipmentLedger(); + equipmentLedger.setId(Integer.parseInt(id)); + equipmentLedger.setCheckStatus(status); + list.add(equipmentLedger); + } + return R.status(equipmentLedgerService.updateBatchById(list)); + } } From 18154c69d44e908c2ccddff0356de2703d7ec10f Mon Sep 17 00:00:00 2001 From: weitingdong <2480899115@qq.com> Date: Mon, 8 Jul 2024 15:45:01 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E6=89=B9=E9=87=8F=E9=A9=B3=E5=9B=9E=20?= =?UTF-8?q?=E5=AE=A1=E6=A0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../leger/controller/EquipmentLedgerController.java | 11 +++++++++++ .../leger/controller/InventoryDocumentController.java | 10 ++++++++++ .../leger/controller/TechParametersController.java | 9 +++++++++ .../modules/leger/mapper/InventoryDocumentMapper.java | 7 +++++++ .../modules/leger/mapper/InventoryDocumentMapper.xml | 4 ++++ .../modules/leger/mapper/TechParametersMapper.java | 8 ++++++++ .../modules/leger/mapper/TechParametersMapper.xml | 4 ++++ .../leger/service/IInventoryDocumentService.java | 8 ++++++++ .../modules/leger/service/ITechParametersService.java | 8 ++++++++ .../service/impl/InventoryDocumentServiceImpl.java | 4 ++++ .../leger/service/impl/TechParametersServiceImpl.java | 4 ++++ 11 files changed, 77 insertions(+) diff --git a/src/main/java/org/energy/modules/leger/controller/EquipmentLedgerController.java b/src/main/java/org/energy/modules/leger/controller/EquipmentLedgerController.java index 364dae5..d61de26 100644 --- a/src/main/java/org/energy/modules/leger/controller/EquipmentLedgerController.java +++ b/src/main/java/org/energy/modules/leger/controller/EquipmentLedgerController.java @@ -26,6 +26,8 @@ import com.dayu.daf.core.mp.support.Condition; import com.dayu.daf.core.mp.support.Query; import com.dayu.daf.core.tool.api.R; import com.dayu.daf.core.tool.utils.Func; +import org.energy.modules.leger.service.IInventoryDocumentService; +import org.energy.modules.leger.service.ITechParametersService; import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.RequestParam; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -50,6 +52,8 @@ import java.util.List; public class EquipmentLedgerController extends DafController { private IEquipmentLedgerService equipmentLedgerService; + private IInventoryDocumentService inventoryDocumentService; + private ITechParametersService techParametersService; /** * 详情 @@ -122,6 +126,13 @@ public class EquipmentLedgerController extends DafController { @ApiOperationSupport(order = 7) @ApiOperation(value = "逻辑删除", notes = "传入ids") public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { + for (String id : ids.split(",")) { + EquipmentLedger equipmentLedger = new EquipmentLedger(); + equipmentLedger.setId(Integer.parseInt(id)); + EquipmentLedger detail = equipmentLedgerService.getOne(Condition.getQueryWrapper(equipmentLedger)); + inventoryDocumentService.delInventoryDocument(detail.getEqLedgerCode()); + techParametersService.delTechParameters(detail.getEqLedgerCode()); + } return R.status(equipmentLedgerService.deleteLogic(Func.toLongList(ids))); } diff --git a/src/main/java/org/energy/modules/leger/controller/InventoryDocumentController.java b/src/main/java/org/energy/modules/leger/controller/InventoryDocumentController.java index ce5f9a9..54a3802 100644 --- a/src/main/java/org/energy/modules/leger/controller/InventoryDocumentController.java +++ b/src/main/java/org/energy/modules/leger/controller/InventoryDocumentController.java @@ -135,4 +135,14 @@ public class InventoryDocumentController extends DafController { List list = inventoryDocumentService.list(Condition.getQueryWrapper(inventoryDocument)); return R.data(list); } + + /** + * 删除 技术参数一览 + */ + @GetMapping("/del") + @ApiOperationSupport(order = 9) + @ApiOperation(value = "逻辑删除", notes = "传入eqLedgerId") + public R del(@ApiParam(value = "主键集合", required = true) @RequestParam String eqLedgerId) { + return R.status(inventoryDocumentService.delInventoryDocument(eqLedgerId)); + } } diff --git a/src/main/java/org/energy/modules/leger/controller/TechParametersController.java b/src/main/java/org/energy/modules/leger/controller/TechParametersController.java index 2bdfbe1..84ced6d 100644 --- a/src/main/java/org/energy/modules/leger/controller/TechParametersController.java +++ b/src/main/java/org/energy/modules/leger/controller/TechParametersController.java @@ -136,4 +136,13 @@ public class TechParametersController extends DafController { return R.data(list); } + /** + * 删除 技术参数一览 + */ + @GetMapping("/del") + @ApiOperationSupport(order = 9) + @ApiOperation(value = "逻辑删除", notes = "传入eqLedgerId") + public R del(@ApiParam(value = "主键集合", required = true) @RequestParam String eqLedgerId) { + return R.status(techParametersService.delTechParameters(eqLedgerId)); + } } diff --git a/src/main/java/org/energy/modules/leger/mapper/InventoryDocumentMapper.java b/src/main/java/org/energy/modules/leger/mapper/InventoryDocumentMapper.java index b7026a6..495da6e 100644 --- a/src/main/java/org/energy/modules/leger/mapper/InventoryDocumentMapper.java +++ b/src/main/java/org/energy/modules/leger/mapper/InventoryDocumentMapper.java @@ -23,4 +23,11 @@ public interface InventoryDocumentMapper extends BaseMapper { */ List selectInventoryDocumentPage(IPage page, InventoryDocumentVO inventoryDocument); + /** + * 自定义分页 + * + * @param eqLedgerId + * @return + */ + boolean delInventoryDocument(String eqLedgerId); } diff --git a/src/main/java/org/energy/modules/leger/mapper/InventoryDocumentMapper.xml b/src/main/java/org/energy/modules/leger/mapper/InventoryDocumentMapper.xml index ce946f0..e1608ca 100644 --- a/src/main/java/org/energy/modules/leger/mapper/InventoryDocumentMapper.xml +++ b/src/main/java/org/energy/modules/leger/mapper/InventoryDocumentMapper.xml @@ -28,4 +28,8 @@ select * from l_inventory_document where is_deleted = 0 + + update l_inventory_document set is_deleted = 1 where eqLedgerId = #{_parameter} + + diff --git a/src/main/java/org/energy/modules/leger/mapper/TechParametersMapper.java b/src/main/java/org/energy/modules/leger/mapper/TechParametersMapper.java index 7f61771..6f2e880 100644 --- a/src/main/java/org/energy/modules/leger/mapper/TechParametersMapper.java +++ b/src/main/java/org/energy/modules/leger/mapper/TechParametersMapper.java @@ -23,4 +23,12 @@ public interface TechParametersMapper extends BaseMapper { */ List selectTechParametersPage(IPage page, TechParametersVO techParameters); + /** + * 自定义分页 + * + * @param eqLedgerId + * @return + */ + boolean delTechParameters(String eqLedgerId); + } diff --git a/src/main/java/org/energy/modules/leger/mapper/TechParametersMapper.xml b/src/main/java/org/energy/modules/leger/mapper/TechParametersMapper.xml index 98c7150..bbd1824 100644 --- a/src/main/java/org/energy/modules/leger/mapper/TechParametersMapper.xml +++ b/src/main/java/org/energy/modules/leger/mapper/TechParametersMapper.xml @@ -22,4 +22,8 @@ select * from l_tech_parameters where is_deleted = 0 + + update l_tech_parameters set is_deleted = 1 where eqLedgerId = #{_parameter} + + diff --git a/src/main/java/org/energy/modules/leger/service/IInventoryDocumentService.java b/src/main/java/org/energy/modules/leger/service/IInventoryDocumentService.java index 84e1eb7..f18e90b 100644 --- a/src/main/java/org/energy/modules/leger/service/IInventoryDocumentService.java +++ b/src/main/java/org/energy/modules/leger/service/IInventoryDocumentService.java @@ -22,4 +22,12 @@ public interface IInventoryDocumentService extends BaseService selectInventoryDocumentPage(IPage page, InventoryDocumentVO inventoryDocument); + /** + * 自定义分页 + * + * @param eqLedgerId + * @return + */ + boolean delInventoryDocument(String eqLedgerId); + } diff --git a/src/main/java/org/energy/modules/leger/service/ITechParametersService.java b/src/main/java/org/energy/modules/leger/service/ITechParametersService.java index 5c40826..60b1852 100644 --- a/src/main/java/org/energy/modules/leger/service/ITechParametersService.java +++ b/src/main/java/org/energy/modules/leger/service/ITechParametersService.java @@ -22,4 +22,12 @@ public interface ITechParametersService extends BaseService { */ IPage selectTechParametersPage(IPage page, TechParametersVO techParameters); + /** + * 自定义分页 + * + * @param eqLedgerId + * @return + */ + boolean delTechParameters(String eqLedgerId); + } diff --git a/src/main/java/org/energy/modules/leger/service/impl/InventoryDocumentServiceImpl.java b/src/main/java/org/energy/modules/leger/service/impl/InventoryDocumentServiceImpl.java index 6c830f0..3d62918 100644 --- a/src/main/java/org/energy/modules/leger/service/impl/InventoryDocumentServiceImpl.java +++ b/src/main/java/org/energy/modules/leger/service/impl/InventoryDocumentServiceImpl.java @@ -22,4 +22,8 @@ public class InventoryDocumentServiceImpl extends BaseServiceImpl Date: Mon, 8 Jul 2024 16:02:30 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=A4=84=E7=90=86?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../leger/controller/EquipmentLedgerController.java | 7 ++----- .../leger/controller/InventoryDocumentController.java | 2 +- .../modules/leger/controller/TechParametersController.java | 2 +- .../modules/leger/mapper/InventoryDocumentMapper.java | 2 +- .../modules/leger/mapper/InventoryDocumentMapper.xml | 2 +- .../energy/modules/leger/mapper/TechParametersMapper.java | 2 +- .../energy/modules/leger/mapper/TechParametersMapper.xml | 2 +- .../modules/leger/service/IInventoryDocumentService.java | 2 +- .../modules/leger/service/ITechParametersService.java | 2 +- .../leger/service/impl/InventoryDocumentServiceImpl.java | 2 +- .../leger/service/impl/TechParametersServiceImpl.java | 2 +- 11 files changed, 12 insertions(+), 15 deletions(-) diff --git a/src/main/java/org/energy/modules/leger/controller/EquipmentLedgerController.java b/src/main/java/org/energy/modules/leger/controller/EquipmentLedgerController.java index d61de26..db72d87 100644 --- a/src/main/java/org/energy/modules/leger/controller/EquipmentLedgerController.java +++ b/src/main/java/org/energy/modules/leger/controller/EquipmentLedgerController.java @@ -127,11 +127,8 @@ public class EquipmentLedgerController extends DafController { @ApiOperation(value = "逻辑删除", notes = "传入ids") public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { for (String id : ids.split(",")) { - EquipmentLedger equipmentLedger = new EquipmentLedger(); - equipmentLedger.setId(Integer.parseInt(id)); - EquipmentLedger detail = equipmentLedgerService.getOne(Condition.getQueryWrapper(equipmentLedger)); - inventoryDocumentService.delInventoryDocument(detail.getEqLedgerCode()); - techParametersService.delTechParameters(detail.getEqLedgerCode()); + inventoryDocumentService.delInventoryDocument(Integer.parseInt(id)); + techParametersService.delTechParameters(Integer.parseInt(id)); } return R.status(equipmentLedgerService.deleteLogic(Func.toLongList(ids))); } diff --git a/src/main/java/org/energy/modules/leger/controller/InventoryDocumentController.java b/src/main/java/org/energy/modules/leger/controller/InventoryDocumentController.java index 54a3802..f44ebe0 100644 --- a/src/main/java/org/energy/modules/leger/controller/InventoryDocumentController.java +++ b/src/main/java/org/energy/modules/leger/controller/InventoryDocumentController.java @@ -142,7 +142,7 @@ public class InventoryDocumentController extends DafController { @GetMapping("/del") @ApiOperationSupport(order = 9) @ApiOperation(value = "逻辑删除", notes = "传入eqLedgerId") - public R del(@ApiParam(value = "主键集合", required = true) @RequestParam String eqLedgerId) { + public R del(@ApiParam(value = "主键集合", required = true) @RequestParam Integer eqLedgerId) { return R.status(inventoryDocumentService.delInventoryDocument(eqLedgerId)); } } diff --git a/src/main/java/org/energy/modules/leger/controller/TechParametersController.java b/src/main/java/org/energy/modules/leger/controller/TechParametersController.java index 84ced6d..6e9fba3 100644 --- a/src/main/java/org/energy/modules/leger/controller/TechParametersController.java +++ b/src/main/java/org/energy/modules/leger/controller/TechParametersController.java @@ -142,7 +142,7 @@ public class TechParametersController extends DafController { @GetMapping("/del") @ApiOperationSupport(order = 9) @ApiOperation(value = "逻辑删除", notes = "传入eqLedgerId") - public R del(@ApiParam(value = "主键集合", required = true) @RequestParam String eqLedgerId) { + public R del(@ApiParam(value = "主键集合", required = true) @RequestParam Integer eqLedgerId) { return R.status(techParametersService.delTechParameters(eqLedgerId)); } } diff --git a/src/main/java/org/energy/modules/leger/mapper/InventoryDocumentMapper.java b/src/main/java/org/energy/modules/leger/mapper/InventoryDocumentMapper.java index 495da6e..19c5e5b 100644 --- a/src/main/java/org/energy/modules/leger/mapper/InventoryDocumentMapper.java +++ b/src/main/java/org/energy/modules/leger/mapper/InventoryDocumentMapper.java @@ -29,5 +29,5 @@ public interface InventoryDocumentMapper extends BaseMapper { * @param eqLedgerId * @return */ - boolean delInventoryDocument(String eqLedgerId); + boolean delInventoryDocument(Integer eqLedgerId); } diff --git a/src/main/java/org/energy/modules/leger/mapper/InventoryDocumentMapper.xml b/src/main/java/org/energy/modules/leger/mapper/InventoryDocumentMapper.xml index e1608ca..8afc78a 100644 --- a/src/main/java/org/energy/modules/leger/mapper/InventoryDocumentMapper.xml +++ b/src/main/java/org/energy/modules/leger/mapper/InventoryDocumentMapper.xml @@ -29,7 +29,7 @@ - update l_inventory_document set is_deleted = 1 where eqLedgerId = #{_parameter} + update l_inventory_document set is_deleted = 1 where eq_ledger_id = #{_parameter} diff --git a/src/main/java/org/energy/modules/leger/mapper/TechParametersMapper.java b/src/main/java/org/energy/modules/leger/mapper/TechParametersMapper.java index 6f2e880..a792c80 100644 --- a/src/main/java/org/energy/modules/leger/mapper/TechParametersMapper.java +++ b/src/main/java/org/energy/modules/leger/mapper/TechParametersMapper.java @@ -29,6 +29,6 @@ public interface TechParametersMapper extends BaseMapper { * @param eqLedgerId * @return */ - boolean delTechParameters(String eqLedgerId); + boolean delTechParameters(Integer eqLedgerId); } diff --git a/src/main/java/org/energy/modules/leger/mapper/TechParametersMapper.xml b/src/main/java/org/energy/modules/leger/mapper/TechParametersMapper.xml index bbd1824..e3daed2 100644 --- a/src/main/java/org/energy/modules/leger/mapper/TechParametersMapper.xml +++ b/src/main/java/org/energy/modules/leger/mapper/TechParametersMapper.xml @@ -23,7 +23,7 @@ - update l_tech_parameters set is_deleted = 1 where eqLedgerId = #{_parameter} + update l_tech_parameters set is_deleted = 1 where eq_ledger_id = #{_parameter} diff --git a/src/main/java/org/energy/modules/leger/service/IInventoryDocumentService.java b/src/main/java/org/energy/modules/leger/service/IInventoryDocumentService.java index f18e90b..08478cd 100644 --- a/src/main/java/org/energy/modules/leger/service/IInventoryDocumentService.java +++ b/src/main/java/org/energy/modules/leger/service/IInventoryDocumentService.java @@ -28,6 +28,6 @@ public interface IInventoryDocumentService extends BaseService { * @param eqLedgerId * @return */ - boolean delTechParameters(String eqLedgerId); + boolean delTechParameters(Integer eqLedgerId); } diff --git a/src/main/java/org/energy/modules/leger/service/impl/InventoryDocumentServiceImpl.java b/src/main/java/org/energy/modules/leger/service/impl/InventoryDocumentServiceImpl.java index 3d62918..8328d51 100644 --- a/src/main/java/org/energy/modules/leger/service/impl/InventoryDocumentServiceImpl.java +++ b/src/main/java/org/energy/modules/leger/service/impl/InventoryDocumentServiceImpl.java @@ -23,7 +23,7 @@ public class InventoryDocumentServiceImpl extends BaseServiceImpl Date: Mon, 8 Jul 2024 16:44:52 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E6=96=87=E4=BB=B6=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E5=A4=84=E7=90=86=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/controller/FileController.java | 11 +++++ .../modules/system/service/IFileService.java | 3 ++ .../system/service/impl/FileServiceImpl.java | 49 +++++++++++++++++++ 3 files changed, 63 insertions(+) diff --git a/src/main/java/org/energy/modules/system/controller/FileController.java b/src/main/java/org/energy/modules/system/controller/FileController.java index 040b880..066b3d5 100644 --- a/src/main/java/org/energy/modules/system/controller/FileController.java +++ b/src/main/java/org/energy/modules/system/controller/FileController.java @@ -23,6 +23,7 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import springfox.documentation.annotations.ApiIgnore; +import javax.servlet.http.HttpServletResponse; import java.io.File; import java.util.Date; import java.util.HashMap; @@ -84,6 +85,16 @@ public class FileController { return R.data(JSON.toJSONString(resultMap)); } + /** + * 附件上载 + */ + @ApiOperation("附件下载") + @GetMapping(value = "/download") + @ResponseBody + public void download(@RequestParam("fileName") String fileName, HttpServletResponse response) { + fileService.downloadFile(fileName, response); + } + } diff --git a/src/main/java/org/energy/modules/system/service/IFileService.java b/src/main/java/org/energy/modules/system/service/IFileService.java index 49d70f7..2c4ed82 100644 --- a/src/main/java/org/energy/modules/system/service/IFileService.java +++ b/src/main/java/org/energy/modules/system/service/IFileService.java @@ -5,6 +5,7 @@ import org.energy.modules.system.vo.FileVO; import com.dayu.daf.core.mp.base.BaseService; import com.baomidou.mybatisplus.core.metadata.IPage; +import javax.servlet.http.HttpServletResponse; import java.util.Map; /** @@ -26,4 +27,6 @@ public interface IFileService extends BaseService { Map saveFileInfo(String fileType, String filePath, String fileName, String fileSuffix, String oldFileName); + void downloadFile(String fileName, HttpServletResponse response); + } diff --git a/src/main/java/org/energy/modules/system/service/impl/FileServiceImpl.java b/src/main/java/org/energy/modules/system/service/impl/FileServiceImpl.java index d86d821..040ecff 100644 --- a/src/main/java/org/energy/modules/system/service/impl/FileServiceImpl.java +++ b/src/main/java/org/energy/modules/system/service/impl/FileServiceImpl.java @@ -1,5 +1,7 @@ package org.energy.modules.system.service.impl; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.dayu.daf.core.log.exception.ServiceException; import org.energy.modules.system.entity.File; import org.energy.modules.system.vo.FileVO; import org.energy.modules.system.mapper.FileMapper; @@ -8,6 +10,9 @@ import com.dayu.daf.core.mp.base.BaseServiceImpl; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.metadata.IPage; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.io.FileInputStream; import java.util.HashMap; import java.util.Map; @@ -42,4 +47,48 @@ public class FileServiceImpl extends BaseServiceImpl implement return null; } + @Override + public void downloadFile(String fileName, HttpServletResponse response) { + File info = super.getOne(Wrappers.lambdaQuery().eq(File::getFileName, fileName), false); + + if (info == null) { + throw new ServiceException("下载文件出错"); + } + + String path = "." + info.getFilePath() + info.getFileName() + info.getFileSuffix(); + String osName = System.getProperties().getProperty("os.name"); + + if (osName.contains("Windows")) { + path = "C:/" + path; + } + + java.io.File file = new java.io.File(path); + if (!file.exists()) { + throw new ServiceException("下载文件出错"); + } + + try { + String realName = info.getFileOldName(); + // 3. 设置想办法让浏览器能够支持(Content-Disposition)下载我们需要的东西,中文文件名URLEncoder.encode编码,否则有可能乱码 + response.setHeader("Content-Disposition", "attachment; filename=\"" + new String(realName.getBytes(), "ISO8859-1") + "\""); + response.setCharacterEncoding("UTF-8"); + // 4. 获取下载文件的输入流 + FileInputStream in = new FileInputStream(path); + // 5. 创建缓冲区 + int len = 0; + byte[] buffer = new byte[1024]; + // 6. 获取OutputStream对象 + ServletOutputStream out = response.getOutputStream(); + // 7. 将FileOutputStream流写入到buffer缓冲区,使用OutputStream将缓冲区中的数据输出到客户端! + while ((len = in.read(buffer)) > 0) { + out.write(buffer, 0, len); + } + in.close(); + out.close(); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ServiceException("下载文件出错"); + } + + } }