From 459236652c80301e6258fbd0ec9bf334d0d0f313 Mon Sep 17 00:00:00 2001 From: liuxiaoxu <1793812695@qq.com> Date: Fri, 23 Aug 2024 10:43:48 +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=E9=94=80=E5=94=AE=E5=87=BA=E8=B4=A7?= =?UTF-8?q?=E9=80=9A=E7=9F=A5=E5=8D=95=E5=AF=BC=E5=87=BA=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E5=AE=9E=E4=BD=93=E7=B1=BB=20=E4=BF=AE=E6=94=B9=20=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E9=94=80=E5=94=AE=E5=87=BA=E8=B4=A7=E5=8D=95=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E6=95=B0=E6=8D=AE=E7=9A=84=E5=AE=9E=E4=BD=93=E7=B1=BB?= =?UTF-8?q?=E5=90=8D=E5=AD=97=EF=BC=88=E5=9B=A0=E4=B8=BA=E9=9C=80=E8=A6=81?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E5=A4=9A=E4=B8=AA=E5=AE=9E=E4=BD=93=E7=B1=BB?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E6=A8=A1=E6=9D=BF=EF=BC=89=20=E9=94=80?= =?UTF-8?q?=E5=94=AE=E5=87=BA=E8=B4=A7=E9=80=9A=E7=9F=A5=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=20=E5=AF=BC=E5=87=BA=E5=87=BA=E8=B4=A7=E9=80=9A=E7=9F=A5?= =?UTF-8?q?=E5=8D=95=E6=A8=A1=E6=9D=BF=E5=90=8E=E7=AB=AF=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=20=E9=94=80=E5=94=AE=E5=87=BA=E8=B4=A7=E9=80=9A=E7=9F=A5?= =?UTF-8?q?=E5=89=8D=E7=AB=AF=E5=88=97=E8=A1=A8=E6=96=B0=E5=A2=9E=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E9=94=80=E5=94=AE=E5=87=BA=E8=B4=A7=E9=80=9A=E7=9F=A5?= =?UTF-8?q?=E5=8D=95=E6=8C=89=E9=92=AE=E5=92=8Cjs=E6=96=B9=E6=B3=95=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=94=80=E5=94=AE=E8=AE=A2=E5=8D=95=E5=89=8D?= =?UTF-8?q?=E7=AB=AF=E5=88=97=E8=A1=A8=EF=BC=9A=E5=8E=BB=E6=8E=89=E7=BC=96?= =?UTF-8?q?=E8=BE=91=E6=8C=89=E9=92=AE=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SysSalesShippingInformController.java | 14 ++ .../dto/ExportShippingInformOrderDto.java | 17 +++ ...rmDto.java => ExportShippingOrderDto.java} | 2 +- .../ISysSalesShippingInformService.java | 5 + .../SysSalesShippingInformServiceImpl.java | 128 +++++++++++++----- .../attachments/出货通知单.xlsx | Bin 0 -> 17779 bytes .../system/salesOrder/salesOrder.html | 8 +- .../salesShippingInform.html | 26 ++++ 8 files changed, 163 insertions(+), 37 deletions(-) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingInformOrderDto.java rename ruoyi-admin/src/main/java/com/ruoyi/system/dto/{ExportSalesShippingInformDto.java => ExportShippingOrderDto.java} (89%) create mode 100644 ruoyi-admin/src/main/resources/attachments/出货通知单.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 ee5210a9..70f31264 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 @@ -111,6 +111,20 @@ public class SysSalesShippingInformController extends BaseController } + + /** + * 导出出货单通知单模板 + * */ + @RequiresPermissions("system:salesShippingInform:exportShippingInformOrder") + @Log(title = "采购订单", businessType = BusinessType.EXPORT) + @GetMapping("/exportShippingInformOrder/{outOrderCode}") + public void exportShippingInformOrder(@PathVariable("outOrderCode") String outOrderCode,HttpServletResponse response) { + + sysSalesShippingInformService.exportShippingInformOrder(outOrderCode, response); + } + + + /** * 新增销售出货通知 */ diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingInformOrderDto.java b/ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingInformOrderDto.java new file mode 100644 index 00000000..7339dcf1 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingInformOrderDto.java @@ -0,0 +1,17 @@ +package com.ruoyi.system.dto; + +import lombok.Data; + +/** +* 销售出货通知单导出模板 +* */ +@Data +public class ExportShippingInformOrderDto { + + + private String materialName; + + private String deviceModelCode; + + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportSalesShippingInformDto.java b/ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingOrderDto.java similarity index 89% rename from ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportSalesShippingInformDto.java rename to ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingOrderDto.java index 3ec3af12..2ecd299e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportSalesShippingInformDto.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingOrderDto.java @@ -6,7 +6,7 @@ import lombok.Data; * 导出销售出货单模板数据 * */ @Data -public class ExportSalesShippingInformDto { +public class ExportShippingOrderDto { private Integer index; 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 382b66e7..798067c7 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 @@ -120,4 +120,9 @@ public interface ISysSalesShippingInformService * 导出出货单2模板 * */ void exportShippingOrderTwo(String outOrderCode, HttpServletResponse response); + + /** + * 导出出货通知单模板 + * */ + void exportShippingInformOrder(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 57602f22..302bdbb2 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 @@ -10,9 +10,10 @@ import java.util.concurrent.atomic.AtomicInteger; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.util.MapUtils; -import com.alibaba.excel.write.builder.ExcelWriterBuilder; import com.alibaba.excel.write.metadata.WriteSheet; import com.alibaba.excel.write.metadata.fill.FillConfig; +import com.ruoyi.aftersales.domain.AfterSalesShippingDevice; +import com.ruoyi.aftersales.mapper.AfterSalesShippingDeviceMapper; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.exception.BusinessException; import com.ruoyi.common.utils.DateUtils; @@ -20,22 +21,18 @@ import com.ruoyi.common.utils.ShiroUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.file.FileDownloadUtils; import com.ruoyi.system.domain.*; -import com.ruoyi.system.dto.ExportSalesShippingInformDto; -import com.ruoyi.system.mapper.SysSalesOrderChildMapper; -import com.ruoyi.system.mapper.SysSalesOrderMapper; -import com.ruoyi.system.mapper.SysSalesShippingInformDetailMapper; +import com.ruoyi.system.dto.ExportShippingInformOrderDto; +import com.ruoyi.system.dto.ExportShippingOrderDto; +import com.ruoyi.system.mapper.*; import com.ruoyi.warehouse.domain.WarehouseOutOrder; import com.ruoyi.warehouse.mapper.WarehouseOutOrderMapper; -import com.ruoyi.warehouse.mapper.WarehouseStorageOrderMapper; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.ruoyi.system.mapper.SysSalesShippingInformMapper; import com.ruoyi.system.service.ISysSalesShippingInformService; import com.ruoyi.common.core.text.Convert; import org.springframework.transaction.annotation.Transactional; -import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; /** @@ -65,6 +62,13 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor @Autowired private SysSalesOrderChildMapper salesOrderChildMapper; + + @Autowired + private SysMakeOrderMapper sysMakeOrderMapper; + + @Autowired + private AfterSalesShippingDeviceMapper salesShippingDeviceMapper; + /** * 查询销售出货通知 * @@ -401,19 +405,19 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor AtomicInteger index = new AtomicInteger(1); //处理物料数据 - List exportSalesShippingInformDtos = new ArrayList<>(); + List exportShippingOrderDtos = new ArrayList<>(); for (SysSalesShippingInformDetail salesShippingInformDetail : salesShippingInformDetails) { - ExportSalesShippingInformDto exportSalesShippingInformDto = new ExportSalesShippingInformDto(); - exportSalesShippingInformDto.setIndex(index.getAndIncrement()); - exportSalesShippingInformDto.setMaterialName(salesShippingInformDetail.getMaterialName()); - exportSalesShippingInformDto.setMaterialNo(salesShippingInformDetail.getMaterialNo()); - exportSalesShippingInformDto.setMaterialDescribe(salesShippingInformDetail.getMaterialDescribe()); - exportSalesShippingInformDto.setMaterialUnit(salesShippingInformDetail.getMaterialUnit()); - exportSalesShippingInformDto.setMakeNum(salesShippingInformDetail.getMakeNum()); - exportSalesShippingInformDto.setSalesOrderNumber(salesShippingInform.getSalesOrderNumber()); - exportSalesShippingInformDto.setRemark(salesShippingInform.getRemark()); - exportSalesShippingInformDtos.add(exportSalesShippingInformDto); + ExportShippingOrderDto exportShippingOrderDto = new ExportShippingOrderDto(); + exportShippingOrderDto.setIndex(index.getAndIncrement()); + exportShippingOrderDto.setMaterialName(salesShippingInformDetail.getMaterialName()); + exportShippingOrderDto.setMaterialNo(salesShippingInformDetail.getMaterialNo()); + exportShippingOrderDto.setMaterialDescribe(salesShippingInformDetail.getMaterialDescribe()); + exportShippingOrderDto.setMaterialUnit(salesShippingInformDetail.getMaterialUnit()); + exportShippingOrderDto.setMakeNum(salesShippingInformDetail.getMakeNum()); + exportShippingOrderDto.setSalesOrderNumber(salesShippingInform.getSalesOrderNumber()); + exportShippingOrderDto.setRemark(salesShippingInform.getRemark()); + exportShippingOrderDtos.add(exportShippingOrderDto); } @@ -435,7 +439,7 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor // 写入数据 workBook.fill(map, sheet); - workBook.fill(exportSalesShippingInformDtos, fillConfig, sheet); + workBook.fill(exportShippingOrderDtos, fillConfig, sheet); workBook.finish(); } catch (IOException e) { @@ -470,19 +474,19 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor AtomicInteger index = new AtomicInteger(1); //处理物料数据 - List exportSalesShippingInformDtos = new ArrayList<>(); + List exportShippingOrderDtos = new ArrayList<>(); for (SysSalesShippingInformDetail salesShippingInformDetail : salesShippingInformDetails) { - ExportSalesShippingInformDto exportSalesShippingInformDto = new ExportSalesShippingInformDto(); - exportSalesShippingInformDto.setIndex(index.getAndIncrement()); - exportSalesShippingInformDto.setMaterialName(salesShippingInformDetail.getMaterialName()); - exportSalesShippingInformDto.setMaterialNo(salesShippingInformDetail.getMaterialNo()); - exportSalesShippingInformDto.setMaterialDescribe(salesShippingInformDetail.getMaterialDescribe()); - exportSalesShippingInformDto.setMaterialUnit(salesShippingInformDetail.getMaterialUnit()); - exportSalesShippingInformDto.setMakeNum(salesShippingInformDetail.getMakeNum()); - exportSalesShippingInformDto.setSalesOrderNumber(salesShippingInform.getSalesOrderNumber()); - exportSalesShippingInformDto.setRemark(salesShippingInform.getRemark()); - exportSalesShippingInformDtos.add(exportSalesShippingInformDto); + ExportShippingOrderDto exportShippingOrderDto = new ExportShippingOrderDto(); + exportShippingOrderDto.setIndex(index.getAndIncrement()); + exportShippingOrderDto.setMaterialName(salesShippingInformDetail.getMaterialName()); + exportShippingOrderDto.setMaterialNo(salesShippingInformDetail.getMaterialNo()); + exportShippingOrderDto.setMaterialDescribe(salesShippingInformDetail.getMaterialDescribe()); + exportShippingOrderDto.setMaterialUnit(salesShippingInformDetail.getMaterialUnit()); + exportShippingOrderDto.setMakeNum(salesShippingInformDetail.getMakeNum()); + exportShippingOrderDto.setSalesOrderNumber(salesShippingInform.getSalesOrderNumber()); + exportShippingOrderDto.setRemark(salesShippingInform.getRemark()); + exportShippingOrderDtos.add(exportShippingOrderDto); } @@ -504,11 +508,71 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor // 写入数据 workBook.fill(map, sheet); - workBook.fill(exportSalesShippingInformDtos, fillConfig, sheet); + workBook.fill(exportShippingOrderDtos, fillConfig, sheet); + workBook.finish(); + + } catch (IOException e) { + throw new RuntimeException("文件处理失败",e); + } + } + + + /** + * 导出出货通知单模板 + * */ + @Override + public void exportShippingInformOrder(String outOrderCode, HttpServletResponse response) { + + String fileName = "出货通知单.xlsx"; + FileDownloadUtils fileDownloadUtils = new FileDownloadUtils(); + try { + String fileRelativePath = fileDownloadUtils.getFileRelativePath(fileName); + + SysSalesShippingInform sysSalesShippingInform = sysSalesShippingInformMapper.selectSysSalesShippingInformByCode(outOrderCode); + String salesOrderCode = sysSalesShippingInform.getSalesOrderCode(); + SysMakeOrder sysMakeOrder = sysMakeOrderMapper.selectMakeOrderBySaleNo(salesOrderCode); + + + String realFileName = sysSalesShippingInform.getSalesOrderCode() +"-"+ fileName.substring(0, fileName.lastIndexOf("."))+ ".xlsx"; + // 设置响应头,指定文件名和文件类型 + response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(realFileName, "UTF-8")); + response.setContentType("application/octet-stream"); + + List salesShippingDeviceList = salesShippingDeviceMapper.selectShippingDeviceBySalesOrderCode(salesOrderCode); + + ArrayList shippingInformOrderDtos = new ArrayList<>(); + for (AfterSalesShippingDevice afterSalesShippingDevice : salesShippingDeviceList) { + ExportShippingInformOrderDto shippingInformOrderDto = new ExportShippingInformOrderDto(); + shippingInformOrderDto.setDeviceModelCode(afterSalesShippingDevice.getDeviceModelCode()); + shippingInformOrderDto.setMaterialName(afterSalesShippingDevice.getMaterialName()); + shippingInformOrderDtos.add(shippingInformOrderDto); + } + + + HashMap map = new HashMap<>(); + + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + String shippingDate = dateFormat.format(new Date()); + map.put("makeNo",sysMakeOrder.getMakeNo()); + map.put("salesOrderNumber",sysSalesShippingInform.getSalesOrderNumber()); + map.put("customerContactAddress",sysSalesShippingInform.getCustomerContactAddress()); + map.put("shippingDate",shippingDate); + map.put("customerName",sysSalesShippingInform.getCustomerName()); + map.put("businessMembers",sysSalesShippingInform.getBusinessMembers()); + + 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(shippingInformOrderDtos, fillConfig, sheet); workBook.finish(); } catch (IOException e) { throw new RuntimeException("文件处理失败",e); } + } } diff --git a/ruoyi-admin/src/main/resources/attachments/出货通知单.xlsx b/ruoyi-admin/src/main/resources/attachments/出货通知单.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..5fa20c7e978ef1fca73ce774f115f16def9436a8 GIT binary patch literal 17779 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 literal 0 HcmV?d00001 diff --git a/ruoyi-admin/src/main/resources/templates/system/salesOrder/salesOrder.html b/ruoyi-admin/src/main/resources/templates/system/salesOrder/salesOrder.html index c776ae82..1efec8c4 100644 --- a/ruoyi-admin/src/main/resources/templates/system/salesOrder/salesOrder.html +++ b/ruoyi-admin/src/main/resources/templates/system/salesOrder/salesOrder.html @@ -350,12 +350,12 @@ if(row.auditStatus=="1" && row.useStatus=="1" && !row.cancelInstanceId) { // 作废 actions.push(' 作废'); - // 编辑 - actions.push(' 编辑 '); + // 已作废 - }else{ - actions.push(' 编辑 '); } + // }else{ + // actions.push(' 编辑 '); + // } // 有流程实例id if(row.useStatus=="2" && !row.restoreInstanceId){ // 恢复 diff --git a/ruoyi-admin/src/main/resources/templates/system/salesShippingInform/salesShippingInform.html b/ruoyi-admin/src/main/resources/templates/system/salesShippingInform/salesShippingInform.html index 4b669e1a..0c7e5e77 100644 --- a/ruoyi-admin/src/main/resources/templates/system/salesShippingInform/salesShippingInform.html +++ b/ruoyi-admin/src/main/resources/templates/system/salesShippingInform/salesShippingInform.html @@ -56,6 +56,10 @@ 导出销售出货单2 + + 导出销售出货通知单 + +
@@ -356,6 +360,28 @@ } + + //导出通知单 + function exportShippingInformOrder() { + // 获取选中的行 + const selectedRows = $("#bootstrap-table").bootstrapTable('getSelections'); + + if (selectedRows.length !== 1) { + showWarning("请先选择一条销售出货通知单"); + return; + } + + const row = selectedRows[0]; + + // 使用 $.modal.confirm 显示确认对话框 + $.modal.confirm("确定导出这条数据的出货通知单吗?", function() { + // 如果用户点击确定,继续导出 + var outOrderCode = row.outOrderCode; + window.location.href = prefix + "/exportShippingInformOrder/" + outOrderCode; + $('#bootstrap-table').bootstrapTable('refresh'); // 刷新表格 + }); + } + \ No newline at end of file