From 1b2c3f6807a8cba0e5df476023f81c11990e3c4d Mon Sep 17 00:00:00 2001 From: liuxiaoxu <1793812695@qq.com> Date: Tue, 27 Aug 2024 15:29:12 +0800 Subject: [PATCH] =?UTF-8?q?[feat]=20=E9=94=80=E5=94=AE=E7=AE=A1=E7=90=86?= =?UTF-8?q?=20=E6=96=B0=E5=A2=9E=20=E5=AF=BC=E5=87=BA=E5=87=BA=E8=B4=A7?= =?UTF-8?q?=E5=8F=91=E7=A5=A82=E6=A8=A1=E6=9D=BF=E5=90=8E=E7=AB=AF?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=92=8C=E5=85=B7=E4=BD=93=E5=AE=9E=E7=8E=B0?= =?UTF-8?q?=E7=B1=BB=EF=BC=9A=E5=90=AB=E7=A8=8E=E5=8D=95=E4=BB=B7=E5=92=8C?= =?UTF-8?q?=E4=B8=8D=E5=90=AB=E7=A8=8E=E5=8D=95=E4=BB=B7=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=A1=AB=E5=85=85=E5=80=BC=E4=B9=8B=E5=89=8D=E8=A6=81=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E9=9D=9E=E7=A9=BA=E6=A0=A1=E9=AA=8C=20=E9=94=80?= =?UTF-8?q?=E5=94=AE=E5=87=BA=E8=B4=A7=E5=8F=91=E7=A5=A8=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E9=94=80=E5=94=AE=E5=87=BA=E8=B4=A7=E5=8F=91?= =?UTF-8?q?=E7=A5=A81=E5=89=8D=E7=AB=AF=E6=8C=89=E9=92=AE=E5=92=8Cjs?= =?UTF-8?q?=E6=96=B9=E6=B3=95=EF=BC=8C=E5=AF=BC=E5=87=BA=E5=89=8D=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E9=80=89=E6=8B=A9=E7=9A=84=E6=95=B0=E6=8D=AE=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=20=E9=99=84=E4=BB=B6=E7=9B=AE=E5=BD=95=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E9=94=80=E5=94=AE=E5=87=BA=E8=B4=A7=E5=8F=91=E7=A5=A8?= =?UTF-8?q?2excel=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SysSalesShippingInformController.java | 11 +++ .../ISysSalesShippingInformService.java | 5 ++ .../SysSalesShippingInformServiceImpl.java | 82 ++++++++++++++++++ .../system/SysSalesOrderChildMapper.xml | 2 +- .../attachments/销售出货发票1.xlsx | Bin 89406 -> 89413 bytes .../attachments/销售出货发票2.xlsx | Bin 0 -> 29190 bytes 6 files changed, 99 insertions(+), 1 deletion(-) create mode 100644 ruoyi-admin/src/main/resources/static/attachments/销售出货发票2.xlsx diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysSalesShippingInformController.java b/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysSalesShippingInformController.java index e8a90202..944b0c33 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysSalesShippingInformController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysSalesShippingInformController.java @@ -151,6 +151,17 @@ public class SysSalesShippingInformController extends BaseController } + /** + * 导出出货发票2模板 + * */ + @RequiresPermissions("system:salesShippingInform:exportShippingInvoiceTwo") + @Log(title = "销售出货单", businessType = BusinessType.EXPORT) + @GetMapping("/exportShippingInvoiceTwo/{outOrderCode}") + public void exportShippingInvoiceTwo(@PathVariable("outOrderCode") String outOrderCode,HttpServletResponse response) { + + sysSalesShippingInformService.exportShippingInvoiceTwo(outOrderCode, response); + } + /** * 导出出货单通知单模板 diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysSalesShippingInformService.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysSalesShippingInformService.java index ae03a86c..75e213db 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysSalesShippingInformService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysSalesShippingInformService.java @@ -143,4 +143,9 @@ public interface ISysSalesShippingInformService * 导出出货发票1模板 * */ void exportShippingInvoiceOne(String outOrderCode, HttpServletResponse response); + + /** + * 导出出货发票2模板 + * */ + void exportShippingInvoiceTwo(String outOrderCode, HttpServletResponse response); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesShippingInformServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesShippingInformServiceImpl.java index 27028be2..ba3741de 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesShippingInformServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesShippingInformServiceImpl.java @@ -749,6 +749,88 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor } } + + /** + * 导出出货单发票2模板 + * */ + @Override + public void exportShippingInvoiceTwo(String outOrderCode, HttpServletResponse response) { + String fileName = "销售出货发票2.xlsx"; + FileDownloadUtils fileDownloadUtils = new FileDownloadUtils(); + try { + String fileRelativePath = fileDownloadUtils.getFileRelativePath(fileName); + if (StringUtils.isEmpty(outOrderCode)){ + log.warn("出货单号为空,请检查:{}", outOrderCode); + throw new RuntimeException("出货单号为空,请检查"); + } + + String realFileName = outOrderCode + "-" + fileName.substring(0, fileName.lastIndexOf(".")) + ".xlsx"; + + //设置响应头,指定文件和文件类型 + response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(realFileName, "UTF-8")); + response.setContentType("application/octet-stream"); + + + SysSalesShippingInform sysSalesShippingInform = sysSalesShippingInformMapper.selectSysSalesShippingInformByCode(outOrderCode); + String salesOrderCode = sysSalesShippingInform.getSalesOrderCode(); + SysMakeOrder sysMakeOrder = sysMakeOrderMapper.selectMakeOrderBySaleNo(salesOrderCode); + + List sysSalesOrderChildren = salesOrderChildMapper.selectOrderChildListBySalesOrderCode(salesOrderCode); + + String makeNo = sysMakeOrder.getMakeNo(); + if (!StringUtils.isEmpty(makeNo)){ + List afterSalesShippingDevices = salesShippingDeviceMapper.selectShippingDeviceByMakeNo(makeNo); + } + + Map map = new HashMap<>(); + map.put("customerContact",sysSalesShippingInform.getCustomerContact()); + map.put("customerContactAddress",sysSalesShippingInform.getCustomerContactAddress()); + map.put("customerContactBillto",sysSalesShippingInform.getCustomerContactBillto()); + map.put("contactAddressBillto",sysSalesShippingInform.getContactAddressBillto()); + + + ArrayList exportShippingInvoiceDtos = new ArrayList<>(); + + AtomicInteger index = new AtomicInteger(1); + + for (SysSalesOrderChild sysSalesOrderChild : sysSalesOrderChildren) { + ExportShippingInvoiceDto exportShippingInvoiceDto = new ExportShippingInvoiceDto(); + exportShippingInvoiceDto.setIndex(index.getAndIncrement()); + exportShippingInvoiceDto.setMaterialName(sysSalesOrderChild.getMaterialName()); + exportShippingInvoiceDto.setMaterialNum(1); + + if (sysSalesOrderChild.getMaterialUsd() != null) { + exportShippingInvoiceDto.setMaterialUsd(new BigDecimal(sysSalesOrderChild.getMaterialUsd())); + } else { + // 如果 materialUsd 为 null,可以设置为默认值或者保持不变 + exportShippingInvoiceDto.setMaterialUsd(BigDecimal.ZERO); // 示例: 设置为0 + } + + if (sysSalesOrderChild.getMaterialUsdSum() != null) { + exportShippingInvoiceDto.setMaterialUsdSum(new BigDecimal(sysSalesOrderChild.getMaterialUsdSum())); + } else { + // 如果 materialUsdSum 为 null,可以设置为默认值或者保持不变 + exportShippingInvoiceDto.setMaterialUsdSum(BigDecimal.ZERO); // 示例: 设置为0 + } + exportShippingInvoiceDto.setMakeNo(makeNo); + // to do 缺少物料型号 + exportShippingInvoiceDtos.add(exportShippingInvoiceDto); + } + + + ExcelWriter workBook = EasyExcel.write(response.getOutputStream()).withTemplate(fileRelativePath).build(); + WriteSheet sheet = EasyExcel.writerSheet().build(); + FillConfig fillConfig = FillConfig.builder().forceNewRow(true).build(); + workBook.fill(map, sheet); + workBook.fill(exportShippingInvoiceDtos, fillConfig, sheet); + workBook.finish(); + + + } catch (IOException e) { + throw new RuntimeException("文件处理失败",e); + } + } + /** * 导出出货通知单模板 * */ diff --git a/ruoyi-admin/src/main/resources/mapper/system/SysSalesOrderChildMapper.xml b/ruoyi-admin/src/main/resources/mapper/system/SysSalesOrderChildMapper.xml index 9882c470..c6a1c319 100644 --- a/ruoyi-admin/src/main/resources/mapper/system/SysSalesOrderChildMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/system/SysSalesOrderChildMapper.xml @@ -106,7 +106,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"