From 9ee3437be1a4a587b4c3ed291ce35503a3e821de Mon Sep 17 00:00:00 2001 From: liuxiaoxu <1793812695@qq.com> Date: Wed, 28 Aug 2024 19:55:37 +0800 Subject: [PATCH] =?UTF-8?q?[feat]=20=E9=94=80=E5=94=AE=E7=AE=A1=E7=90=86?= =?UTF-8?q?=20=E5=AF=BC=E5=87=BA=E9=94=80=E5=94=AE=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E7=B1=BB=E4=B8=AD=E6=96=B0=E5=A2=9E=E5=AD=90?= =?UTF-8?q?=E8=A1=A8=E6=A8=A1=E6=9D=BF=E7=B1=BB=E9=9B=86=E5=90=88=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=20=E5=AF=BC=E5=87=BA=E9=94=80=E5=94=AE?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E6=A8=A1=E6=9D=BF=E6=95=B0=E6=8D=AE=E5=90=8E?= =?UTF-8?q?=E7=AB=AF=E6=8E=A5=E5=8F=A3=EF=BC=8Cpost=E8=AF=B7=E6=B1=82?= =?UTF-8?q?=E6=94=B9=E6=88=90get=E8=AF=B7=E6=B1=82=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E9=94=80=E5=94=AE=E8=AE=A2=E5=8D=95=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E6=95=B0=E6=8D=AE=E5=90=8E=E7=AB=AF=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=85=B7=E4=BD=93=E5=AE=9E=E7=8E=B0=E7=B1=BB=EF=BC=9A=E9=94=80?= =?UTF-8?q?=E5=94=AE=E8=AE=A2=E5=8D=95=E5=AD=90=E8=A1=A8=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=92=8C=E4=B8=BB=E8=A1=A8=E6=95=B0=E6=8D=AE=E6=9D=A5=E8=87=AA?= =?UTF-8?q?=E5=89=8D=E7=AB=AF=E4=BC=A0=E5=85=A5=E7=9A=84=E9=94=80=E5=94=AE?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E5=8F=B7=EF=BC=9B=E5=A1=AB=E5=85=85=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E9=94=80=E5=94=AE=E8=AE=A2=E5=8D=95=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E7=9A=84=E6=95=B0=E6=8D=AE:=E5=88=97=E8=A1=A8=E4=B8=ADindex?= =?UTF-8?q?=E4=B8=BA=E8=87=AA=E5=A2=9E=E7=B4=A2=E5=BC=95=EF=BC=8C=E6=A0=B9?= =?UTF-8?q?=E6=8D=AE=E8=87=AA=E5=A2=9E=E7=9A=84=E5=AD=90=E8=A1=A8=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E8=87=AA=E5=A2=9E=20=E6=96=B0=E5=A2=9E=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E9=94=80=E5=94=AE=E8=AE=A2=E5=8D=95=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?excel=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SysSalesOrderController.java | 38 ++++- .../system/domain/Vo/ExportSalesOrderVo.java | 5 + .../system/service/ISysSalesOrderService.java | 10 ++ .../impl/SysSalesOrderServiceImpl.java | 149 +++++++++++++++++- .../static/attachments/销售订单.xlsx | Bin 0 -> 11752 bytes .../system/salesOrder/exportSalesOrder.html | 34 +++- .../system/salesOrder/salesOrder.html | 46 +++++- 7 files changed, 265 insertions(+), 17 deletions(-) create mode 100644 ruoyi-admin/src/main/resources/static/attachments/销售订单.xlsx diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysSalesOrderController.java b/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysSalesOrderController.java index 58a7b50a..dbaa3235 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysSalesOrderController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysSalesOrderController.java @@ -203,20 +203,42 @@ public class SysSalesOrderController extends BaseController return AjaxResult.success(); } +// /** +// * 加载填写导出销售订单模板数据页面 +// */ +// @GetMapping("/exportSalesOrder/{salesOrderId}") +// public String exportSalesOrder(@PathVariable("salesOrderId") Long salesOrderId, ModelMap mmap) +// { +// ExportSalesOrderVo exportSalesOrderVo = sysSalesOrderService.selectExportSalesOrderById(salesOrderId); +// mmap.put("exportSalesOrderVo", exportSalesOrderVo); +// return prefix + "/exportSalesOrder"; +// } + + +// /** +// * 导出销售订单模板数据 +// */ +// @RequiresPermissions("system:salesOrder:exportSalesOrder") +// @Log(title = "销售订单", businessType = BusinessType.EXPORT) +// @PostMapping("/exportSalesOrder") +// @ResponseBody +// public void exportSalesOrder(@RequestBody ExportSalesOrderVo exportSalesOrderVo, HttpServletResponse response) { +// sysSalesOrderService.exportSalesOrder(exportSalesOrderVo, response); +// } + + /** - * 加载填写导出销售订单模板数据页面 + * 导出销售订单模板数据 */ - @GetMapping("/exportSalesOrder/{salesOrderId}") - public String exportSalesOrder(@PathVariable("salesOrderId") Long salesOrderId, ModelMap mmap) - { - ExportSalesOrderVo exportSalesOrderVo = sysSalesOrderService.selectExportSalesOrderById(salesOrderId); - mmap.put("exportSalesOrderVo", exportSalesOrderVo); - return prefix + "/exportSalesOrder"; + @RequiresPermissions("system:salesOrder:exportSalesOrder") + @Log(title = "销售订单", businessType = BusinessType.EXPORT) + @GetMapping("/exportSalesOrder/{salesOrderCode}") + public void exportSalesOrder(@PathVariable("salesOrderCode") String salesOrderCode, HttpServletResponse response) { + sysSalesOrderService.exportSalesOrderByCode(salesOrderCode, response); } - /** * 展示导出销售订单列表子表数据 */ diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/domain/Vo/ExportSalesOrderVo.java b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/Vo/ExportSalesOrderVo.java index 87e57646..8c61348d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/domain/Vo/ExportSalesOrderVo.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/Vo/ExportSalesOrderVo.java @@ -4,6 +4,7 @@ import lombok.Data; import java.math.BigDecimal; import java.util.Date; +import java.util.List; /** * 导出销售订单模板类 @@ -50,4 +51,8 @@ public class ExportSalesOrderVo { //备注 private String remark; + + + //导出销售订单子表模板类 + private List exportSalesOrderChildVoList; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysSalesOrderService.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysSalesOrderService.java index 08129197..d47badce 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysSalesOrderService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysSalesOrderService.java @@ -8,6 +8,7 @@ import com.ruoyi.system.domain.Vo.ExportSalesOrderVo; import org.activiti.engine.runtime.ProcessInstance; import org.springframework.transaction.annotation.Transactional; +import javax.servlet.http.HttpServletResponse; import java.util.List; /** @@ -105,4 +106,13 @@ public interface ISysSalesOrderService * */ List showExportSalesOrderChildListByICode(String salesOrderCode); + /** + * 导出销售订单模板数据 + */ + void exportSalesOrder(ExportSalesOrderVo exportSalesOrderVo, HttpServletResponse response); + + /** + * 导出销售订单数据 + */ + void exportSalesOrderByCode(String salesOrderCode, HttpServletResponse response); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesOrderServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesOrderServiceImpl.java index 52ee9e47..24515ebc 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesOrderServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesOrderServiceImpl.java @@ -1,5 +1,9 @@ package com.ruoyi.system.service.impl; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.metadata.WriteSheet; +import com.alibaba.excel.write.metadata.fill.FillConfig; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import com.ruoyi.common.core.domain.entity.SysUser; @@ -12,6 +16,7 @@ import com.ruoyi.common.service.ICommonService; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.ShiroUtils; import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.file.FileDownloadUtils; import com.ruoyi.process.general.service.IProcessService; import com.ruoyi.process.todoitem.mapper.BizTodoItemMapper; import com.ruoyi.system.domain.*; @@ -33,8 +38,12 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.math.BigDecimal; +import java.net.URLEncoder; import java.util.*; +import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; /** @@ -92,8 +101,7 @@ public class SysSalesOrderServiceImpl implements ISysSalesOrderService private ISysUserService sysUserService; private final static String RMB = "1"; //RMB - - private final static String USD = "2"; //美元 + /** * 查询销售订单 @@ -558,4 +566,141 @@ public class SysSalesOrderServiceImpl implements ISysSalesOrderService vo.setMaterialTaxMoney(tax); } } + + + /** + * 导出销售订单模板数据 + */ + @Override + public void exportSalesOrder(ExportSalesOrderVo exportSalesOrderVo, HttpServletResponse response) { + String salesOrderCode = exportSalesOrderVo.getSalesOrderCode(); + Long salesOrderId = exportSalesOrderVo.getSalesOrderId(); + + String fileName = "销售订单.xlsx"; + try { + FileDownloadUtils fileDownloadUtils = new FileDownloadUtils(); + String fileRelativePath = fileDownloadUtils.getFileRelativePath(fileName); + + + String realFileName = salesOrderCode +"-" +fileRelativePath.substring(0,fileName.lastIndexOf(".")) + ".xlsx"; + + + // 设置响应头,指定文件名和文件类型 + response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(realFileName, "UTF-8")); + response.setContentType("application/octet-stream"); + + + + SysSalesOrderVo sysSalesOrderVo = sysSalesOrderMapper.selectSysSalesOrderById(salesOrderId); + if (sysSalesOrderVo == null){ + throw new RuntimeException("销售订单为空"); + } + + HashMap map = new HashMap<>(); + + map.put("salesOrderType", exportSalesOrderVo.getSalesOrderType()); + map.put("enterpriseCode", exportSalesOrderVo.getEnterpriseCode()); + map.put("salesOrderNumber", exportSalesOrderVo.getSalesOrderNumber()); + map.put("paymentTerms", exportSalesOrderVo.getPaymentTerms()); + map.put("tradeClause", exportSalesOrderVo.getTradeClause()); + map.put("invoice", sysSalesOrderVo.getInvoice()); + map.put("commonCurrency", sysSalesOrderVo.getCommonCurrency()); + map.put("taxMoneySum", exportSalesOrderVo.getTaxMoneySum()); + map.put("noTaxMoneySum", exportSalesOrderVo.getNoTaxMoneySum()); + map.put("warrantyDate", exportSalesOrderVo.getWarrantyDate()); + map.put("remark", exportSalesOrderVo.getRemark()); + + List exportSalesOrderChildVoList = exportSalesOrderVo.getExportSalesOrderChildVoList(); + + 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(exportSalesOrderChildVoList, fillConfig, sheet); + workBook.finish(); + + + + }catch (IOException | RuntimeException e){ + throw new RuntimeException("文件处理失败",e); + } + + } + + @Override + public void exportSalesOrderByCode(String salesOrderCode, HttpServletResponse response) { + + String fileName = "销售订单.xlsx"; + try { + FileDownloadUtils fileDownloadUtils = new FileDownloadUtils(); + String fileRelativePath = fileDownloadUtils.getFileRelativePath(fileName); + + + String realFileName = salesOrderCode +"-" +fileName.substring(0,fileName.lastIndexOf(".")) + ".xlsx"; + + + // 设置响应头,指定文件名和文件类型 + response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(realFileName, "UTF-8")); + response.setContentType("application/octet-stream"); + + + + SysSalesOrderVo sysSalesOrderVo = sysSalesOrderMapper.selectSysSalesOrderBySalesOrderCode(salesOrderCode); + if (sysSalesOrderVo == null){ + throw new RuntimeException("销售订单为空"); + } + + ExportSalesOrderVo exportSalesOrderVo = selectExportSalesOrderById(sysSalesOrderVo.getSalesOrderId()); + + List exportSalesOrderChildVoList = showExportSalesOrderChildListByICode(salesOrderCode); + + AtomicInteger index = new AtomicInteger(1); + exportSalesOrderChildVoList.forEach(exportSalesOrderChildVo -> { + exportSalesOrderChildVo.setIndex(index.getAndIncrement()); + }); + + String invoice = sysSalesOrderVo.getInvoice(); + + if ("1".equals(invoice)){ + invoice = "是"; + }else { + invoice = "否"; + } + String commonCurrency = sysSalesOrderVo.getCommonCurrency(); + if (RMB.equals(commonCurrency)){ + commonCurrency = "人民币"; + }else { + commonCurrency = "美元"; + } + + + + HashMap map = new HashMap<>(); + + map.put("salesOrderType", exportSalesOrderVo.getSalesOrderType()); + map.put("enterpriseCode", exportSalesOrderVo.getEnterpriseCode()); + map.put("salesOrderNumber", exportSalesOrderVo.getSalesOrderNumber()); + map.put("paymentTerms", exportSalesOrderVo.getPaymentTerms()); + map.put("tradeClause", exportSalesOrderVo.getTradeClause()); + map.put("invoice",invoice ); + map.put("commonCurrency", commonCurrency); + map.put("taxMoneySum", exportSalesOrderVo.getTaxMoneySum()); + map.put("noTaxMoneySum", exportSalesOrderVo.getNoTaxMoneySum()); + map.put("warrantyDate", exportSalesOrderVo.getWarrantyDate()); + map.put("remark", exportSalesOrderVo.getRemark()); + + 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(exportSalesOrderChildVoList, fillConfig, sheet); + workBook.finish(); + + + + }catch (IOException | RuntimeException e){ + throw new RuntimeException("文件处理失败",e); + } + + } } diff --git a/ruoyi-admin/src/main/resources/static/attachments/销售订单.xlsx b/ruoyi-admin/src/main/resources/static/attachments/销售订单.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..22da9a8105e4ab1ed4e6e193e7dd68b9a6873473 GIT binary patch literal 11752 zcmaJ{Wk8&}(gun<6pFjMyB7DdxEFVKE$&cYkwS5I_u>x4U5Z=LA}wwowCA3la?f}3 z6K)Ap_K#>0_re|wQ?`mb48q*>5f(be3$nOZ*zT7N4B+fD{V_lS1t)=h45@$|U z$XH7wy(b*1gX4Jf3*{xIF-L~x$)*+g!>GW@n@!Kjsgl5unI^wCh`lMkEUh)x%E!rD zS38L;q=!=49#9Y~V5f}>E3x4_FGQ+*Xhk_`FF#Ta1qfCLiEX?FYAa9^;K-Uq(ySGK z#^yZRZUq(B=f)?1nL}7hD?*0S4 zvO3aNBP^4WLC|FjV?j)*DpwsY$kWi2K;e$c#05JuoX)j4d-}bCr^%qSz$_?LQPk|$ zi~7FNd<-gJ+RC+^Dc;DrysW!0wsWMm;I>33{n~^Af~zu}V~&6ih45+`(S~u#J{!nZ zvT$pw-KQTknzy%&*I<9rOPzyKru0a!!y~;Y|D@Nz#@^_OUoRj)x{DDla0TK)xZfkW z=8IuM-HUiWE=)CmC)~gi_Dmj8sPo-L-jWIr8iB)6;|kwbprca>%@2s)&tgWLuvB6h zt|U1NCYQBpP|^`422vG8fao<&(tS8l*6m{~0P)JYhkgb(s8 zIPQU`!`cSs+qaVkp~koE=YslDM-m9{VYV@MeSPsmFC)-AMfTn(B7k(jD9QWVCy3~Y zysJT!v3kJ8F(a7KsjP{52kUZ zQ~Y=*)C_XkadE~m&<6Ua2?ByCW2qlafbwX9mw%YR$-&Xa>d6SXF|yKKf=`3|L2v%X zSYX017MPP5<>xA2aZXJ%U*l`YabR5}dV6GDsLbm+zHy8=%F7a4qSFV88^GQIq{_kf z73>$QZCT7cHmepx0q>ouDup5wg^lWLS9bP_=QU-6vGUOK5tfMUY^j|@HJCi;QNtPS znIKD@FtE}tbWwBCUI|fP`%anD6A_KfQC(>+GKqnh<~HbmM^mLdJTPL((KoPbJV0>^ z{b~H%3U=jl2IZg+c!;u{FJ&fI*j*wCDoUrlO36m@9-iOs)DU6x*^Ww^N3+YEv$ZAv zg>V!4LMD`dEu0*`yZR`iCih6z#g8Ur|$Dk}yo*kl{X)e-D+wJ6}sIGyX>y1o+Aw@}XB)!?G zo>b`AqEhWU`rZ0+7gY$d5f*JGqZ-Ox0Oz&c-S;=M!Jo^{zs;b6j9Ei`0a~}%sK$nF zXpS>pbkqoS6|≈n$tJDX7;$?TE=v>^kz>m7B)wXq7_ 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 literal 0 HcmV?d00001 diff --git a/ruoyi-admin/src/main/resources/templates/system/salesOrder/exportSalesOrder.html b/ruoyi-admin/src/main/resources/templates/system/salesOrder/exportSalesOrder.html index 01619893..409331a1 100644 --- a/ruoyi-admin/src/main/resources/templates/system/salesOrder/exportSalesOrder.html +++ b/ruoyi-admin/src/main/resources/templates/system/salesOrder/exportSalesOrder.html @@ -152,18 +152,44 @@ }); const combinedData = Object.assign({}, salesOrderData, { - sysSalesOrderChildList: materialDataList, + exportSalesOrderChildVoList: materialDataList, }); - // 合并表单数据和表格数据 - console.log(combinedData) // 使用 JSON.stringify() 序列化数据 const jsonData = JSON.stringify(combinedData); // 发送 AJAX 请求到后端接口 - $.operate.saveJson(prefix + "/salesDeliverGoods", jsonData); + $.operate.saveJson(prefix + "/exportSalesOrder", jsonData); + + // saveExportSalesOrder(prefix + "/exportSalesOrder", jsonData) } + // function saveExportSalesOrder(url, data) { + // // 发送 AJAX 请求 + // $.ajax({ + // type: "POST", + // url: url, + // data: data, // 直接发送序列化的表单数据 + // //contentType: "application/json;charset=UTF-8", // 设置请求内容类型为 JSON + // dataType: "json", // 设置返回数据类型为 JSON + // success: function(response) { + // // 处理服务器返回的成功响应 + // if (response.code === 200) { // 假设 200 表示成功 + // alert("导出成功!"); + // // 可以在这里刷新页面或者做其他操作 + // } else { + // alert("导出失败:" + response.message); + // } + // }, + // error: function(xhr, status, error) { + // // 处理请求失败的情况 + // console.error("请求失败:", error); + // alert("请求失败,请稍后再试!"); + // } + // }); + // } + + $(function() { var options = { modalName: "选择物料", 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 61a1059a..31509c2f 100644 --- a/ruoyi-admin/src/main/resources/templates/system/salesOrder/salesOrder.html +++ b/ruoyi-admin/src/main/resources/templates/system/salesOrder/salesOrder.html @@ -416,9 +416,15 @@ }else { // 检查是否已审核 if (row.auditStatus === AUDIT_STATUS_APPROVED) { - var salesOrderId = row.salesOrderId; - var url = prefix + "/exportSalesOrder/" + salesOrderId; - $.modal.open("导出",url); + // 使用 $.modal.confirm 显示确认对话框 + $.modal.confirm("确定导出这条数据的出货单吗?", function() { + // 如果用户点击确定,继续导出 + var salesOrderCode = row.salesOrderCode; + window.location.href = prefix + "/exportSalesOrder/" + salesOrderCode; + $('#bootstrap-table').bootstrapTable('refresh'); // 刷新表格 + }); + + } else { showWarning("请先审核"); } @@ -432,6 +438,40 @@ } + /*旧导出销售订单模板*/ + // function exportSalesOrder(){ + // + // const selectRows = $("#bootstrap-table").bootstrapTable('getSelections'); + // // 定义状态码常量 + // const AUDIT_STATUS_APPROVED = "1";//审核通过 + // const DELETE_FLAG = "2"; //作废 + // + // if (selectRows.length === 1){ + // const row = selectRows[0]; + // // 检查是否已作废 + // if (row.useStatus === DELETE_FLAG) { + // showWarning("该订单已作废"); + // + // }else { + // // 检查是否已审核 + // if (row.auditStatus === AUDIT_STATUS_APPROVED) { + // var salesOrderId = row.salesOrderId; + // var url = prefix + "/exportSalesOrder/" + salesOrderId; + // $.modal.open("导出",url); + // } else { + // showWarning("请先审核"); + // } + // } + // + // }else { + // $.modal.alertWarning("请选择一条数据"); + // return; + // } + // + // } + + + /*下载*/ function downloadFile(filepath) { window.location.href =prefix + "/downloadFile?filepath="+ filepath;