refactor(delivery): 优化发货清单导出功能

- 移除手动序号生成逻辑
- 使用服务层方法替代流式处理转换
- 简化数据获取流程
- 提高代码可读性
- 减少内存占用
- 提升性能表现
This commit is contained in:
曹鹏飞 2026-03-09 11:35:46 +08:00
parent a2e6a012a9
commit 14fada8fe5
3 changed files with 11 additions and 11 deletions

View File

@ -202,17 +202,17 @@ public class DeliveryController extends BaseController {
public void exportItemToExcel(HttpServletResponse response, @RequestParam Long id) throws IOException { public void exportItemToExcel(HttpServletResponse response, @RequestParam Long id) throws IOException {
WmsShipmentDelivery delivery = deliveryService.getById(id); WmsShipmentDelivery delivery = deliveryService.getById(id);
VUtil.trueThrowBusinessError(Objects.isNull(delivery)).throwMessage("清单不存在"); VUtil.trueThrowBusinessError(Objects.isNull(delivery)).throwMessage("清单不存在");
AtomicInteger index = new AtomicInteger(1); // AtomicInteger index = new AtomicInteger(1);
List<ShipmentMaterialCodeItemVO> list = deliveryItemService.lambdaQuery() // List<ShipmentMaterialCodeItemVO> list = deliveryItemService.lambdaQuery()
.eq(WmsShipmentDeliveryItem::getDeliveryId, id) // .eq(WmsShipmentDeliveryItem::getDeliveryId, id)
.orderByAsc(WmsShipmentDeliveryItem::getId) // .orderByAsc(WmsShipmentDeliveryItem::getId)
.list() // .list()
.stream().map(item -> { // .stream().map(item -> {
ShipmentMaterialCodeItemVO vo = Convert.convert(ShipmentMaterialCodeItemVO.class, item); // ShipmentMaterialCodeItemVO vo = Convert.convert(ShipmentMaterialCodeItemVO.class, item);
vo.setIndex(index.getAndIncrement()); // vo.setIndex(index.getAndIncrement());
return vo; // return vo;
}).toList(); // }).toList();
// List<ShipmentMaterialCodeItemVO> list = deliveryItemService.getItemsVO(id); List<ShipmentMaterialCodeItemVO> list = deliveryItemService.getItemsVO(id);
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode("发货清单-" + delivery.getNo() + ".xlsx", StandardCharsets.UTF_8)); response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode("发货清单-" + delivery.getNo() + ".xlsx", StandardCharsets.UTF_8));
new Workbook() new Workbook()