From f10137accc0f7e69e6c4344558b96aff1650cb71 Mon Sep 17 00:00:00 2001 From: liuxy Date: Fri, 26 Sep 2025 13:44:37 +0800 Subject: [PATCH] =?UTF-8?q?rev=EF=BC=9A=E9=94=80=E5=94=AE=E5=8D=95?= =?UTF-8?q?=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- wms/nladmin-system/nlsso-server/pom.xml | 6 +- .../java/org/nl/common/utils/FileUtil.java | 49 +++++++------ .../impl/PdaEmpVehicleServiceImpl.java | 4 ++ .../controller/SalesOrderController.java | 9 +++ .../service/IStIvtSalesorderService.java | 11 +++ .../impl/StIvtSalesorderServiceImpl.java | 69 +++++++++++++++++-- .../src/views/wms/st/saleorder/index.vue | 23 +++++++ 7 files changed, 142 insertions(+), 29 deletions(-) diff --git a/wms/nladmin-system/nlsso-server/pom.xml b/wms/nladmin-system/nlsso-server/pom.xml index 8ad737a..3e46026 100644 --- a/wms/nladmin-system/nlsso-server/pom.xml +++ b/wms/nladmin-system/nlsso-server/pom.xml @@ -236,17 +236,17 @@ org.apache.poi poi-ooxml-schemas - 3.17 + 4.0.0 org.apache.poi poi - 3.17 + 4.0.0 org.apache.poi poi-ooxml - 3.17 + 4.0.0 xerces diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/FileUtil.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/FileUtil.java index a03479e..8c662be 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/FileUtil.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/FileUtil.java @@ -17,6 +17,7 @@ package org.nl.common.utils; import cn.hutool.core.io.IoUtil; import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.poi.excel.BigExcelWriter; import cn.hutool.poi.excel.ExcelUtil; import org.apache.poi.util.IOUtils; @@ -205,26 +206,34 @@ public class FileUtil extends cn.hutool.core.io.FileUtil { * 导出excel */ public static void downloadExcel(List> list, HttpServletResponse response) throws IOException { - String tempPath = SYS_TEM_DIR + IdUtil.fastSimpleUUID() + ".xlsx"; - File file = new File(tempPath); - BigExcelWriter writer = ExcelUtil.getBigWriter(file); - // 一次性写出内容,使用默认样式,强制输出标题 - writer.write(list, true); - SXSSFSheet sheet = (SXSSFSheet)writer.getSheet(); - //上面需要强转SXSSFSheet 不然没有trackAllColumnsForAutoSizing方法 - sheet.trackAllColumnsForAutoSizing(); - //列宽自适应 - writer.autoSizeColumnAll(); - //response为HttpServletResponse对象 - response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8"); - //test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码 - response.setHeader("Content-Disposition", "attachment;filename=file.xlsx"); - ServletOutputStream out = response.getOutputStream(); - // 终止后删除临时文件 - file.deleteOnExit(); - writer.flush(out, true); - //此处记得关闭输出Servlet流 - IoUtil.close(out); + ServletOutputStream out = null; + BigExcelWriter writer; + try { + String tempPath = SYS_TEM_DIR + IdUtil.fastSimpleUUID() + ".xlsx"; + File file = new File(tempPath); + writer = ExcelUtil.getBigWriter(file); + // 一次性写出内容,使用默认样式,强制输出标题 + writer.write(list, true); + SXSSFSheet sheet = (SXSSFSheet) writer.getSheet(); + //上面需要强转SXSSFSheet 不然没有trackAllColumnsForAutoSizing方法 + sheet.trackAllColumnsForAutoSizing(); + //列宽自适应 + writer.autoSizeColumnAll(); + //response为HttpServletResponse对象 + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8"); + //test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码 + response.setHeader("Content-Disposition", "attachment;filename=file.xlsx"); + out = response.getOutputStream(); + // 终止后删除临时文件 + file.deleteOnExit(); + writer.flush(out, true); + } finally { + //此处记得关闭输出Servlet流 + if (ObjectUtil.isNotEmpty(out)) { + IoUtil.close(out); + } + } + } public static String getFileType(String type) { diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/impl/PdaEmpVehicleServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/impl/PdaEmpVehicleServiceImpl.java index 7acdf3b..7869421 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/impl/PdaEmpVehicleServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/ios_manage/service/impl/PdaEmpVehicleServiceImpl.java @@ -132,6 +132,8 @@ public class PdaEmpVehicleServiceImpl implements PdaEmpVehicleService { List structattrList = iStructattrService.list(new LambdaQueryWrapper<>(Structattr.class) .eq(Structattr::getSect_code, IOSConstant.SECT_CODE) .eq(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定")) + .eq(Structattr::getIs_delete, IOSConstant.IS_DELETE_NO) + .eq(Structattr::getIs_used, IOSConstant.IS_DELETE_YES) .and(wrapper -> wrapper.isNull(Structattr::getStoragevehicle_code).or().eq(Structattr::getStoragevehicle_code, "")) .eq(vehicleDao.getStoragevehicle_type().equals(IOSEnum.VEHICLE_TYPE.code("金属托盘")), Structattr::getStoragevehicle_type, IOSEnum.VEHICLE_TYPE_PUT.code("金属托盘")) @@ -170,6 +172,8 @@ public class PdaEmpVehicleServiceImpl implements PdaEmpVehicleService { .eq(Structattr::getSect_code, IOSConstant.SECT_CODE) .eq(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定")) .eq(Structattr::getIs_emptyvehicle, IOSConstant.IS_DELETE_YES) + .eq(Structattr::getIs_delete, IOSConstant.IS_DELETE_NO) + .eq(Structattr::getIs_used, IOSConstant.IS_DELETE_YES) .and(wrapper -> wrapper.isNotNull(Structattr::getStoragevehicle_code).or().ne(Structattr::getStoragevehicle_code, "")) .eq(storagevehicle_type.equals(IOSEnum.VEHICLE_TYPE.code("金属托盘")), Structattr::getStoragevehicle_type, IOSEnum.VEHICLE_TYPE_PUT.code("金属托盘")) diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/controller/SalesOrderController.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/controller/SalesOrderController.java index 1cbeaa9..79a93ea 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/controller/SalesOrderController.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/controller/SalesOrderController.java @@ -14,6 +14,8 @@ import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.util.Map; import java.util.Set; @@ -75,4 +77,11 @@ public class SalesOrderController { return new ResponseEntity<>(HttpStatus.OK); } + + @Log("导出数据") + @GetMapping(value = "/download") + public void download(@RequestParam Map map, HttpServletResponse response) throws IOException { + iStIvtSalesorderService.download(map, response); + } + } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IStIvtSalesorderService.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IStIvtSalesorderService.java index 497c393..40305d9 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IStIvtSalesorderService.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IStIvtSalesorderService.java @@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import org.nl.common.domain.query.PageQuery; import org.nl.wms.warehouse_management.service.dao.StIvtSalesorder; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.util.Map; import java.util.Set; @@ -59,4 +61,13 @@ public interface IStIvtSalesorderService extends IService { * @param dao 实体类 */ void createOutIos(StIvtSalesorder dao); + + /** + * 导出数据 + * + * @param map 待导出的数据 + * @param response / + * @throws IOException / + */ + void download(Map map, HttpServletResponse response) throws IOException; } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/StIvtSalesorderServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/StIvtSalesorderServiceImpl.java index 186edf6..2a245be 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/StIvtSalesorderServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/StIvtSalesorderServiceImpl.java @@ -10,8 +10,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.nl.common.domain.query.PageQuery; -import org.nl.common.exception.BadRequestException; import org.nl.common.utils.CodeUtil; +import org.nl.common.utils.FileUtil; import org.nl.common.utils.IdUtil; import org.nl.common.utils.SecurityUtils; import org.nl.wms.basedata_manage.service.IMdCsSupplierbaseService; @@ -20,18 +20,18 @@ import org.nl.wms.basedata_manage.service.IMdPbMeasureunitService; import org.nl.wms.basedata_manage.service.dao.MdCsSupplierbase; import org.nl.wms.basedata_manage.service.dao.MdMeMaterialbase; import org.nl.wms.basedata_manage.service.dao.MdPbMeasureunit; -import org.nl.wms.basedata_manage.service.dao.Sectattr; import org.nl.wms.warehouse_management.enums.IOSConstant; import org.nl.wms.warehouse_management.enums.IOSEnum; import org.nl.wms.warehouse_management.service.IOutBillService; import org.nl.wms.warehouse_management.service.IStIvtSalesorderService; -import org.nl.wms.warehouse_management.service.dao.GroupPlate; import org.nl.wms.warehouse_management.service.dao.StIvtSalesorder; import org.nl.wms.warehouse_management.service.dao.mapper.StIvtSalesorderMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.util.*; /** @@ -71,11 +71,11 @@ public class StIvtSalesorderServiceImpl extends ServiceImpl qw.like(StIvtSalesorder::getMaterial_name, material_code)); } if (ObjectUtil.isNotEmpty(supp_code)) { - lambda.like( StIvtSalesorder::getSupp_code, supp_code) + lambda.like(StIvtSalesorder::getSupp_code, supp_code) .or(qw -> qw.like(StIvtSalesorder::getSupp_name, supp_code)); } lambda.ge(ObjectUtil.isNotEmpty(begin_time), StIvtSalesorder::getCreate_time, begin_time); @@ -163,7 +163,7 @@ public class StIvtSalesorderServiceImpl extends ServiceImpl lambda = new QueryWrapper().lambda(); + lambda.eq(ObjectUtil.isNotEmpty(sale_status), StIvtSalesorder::getSale_status, sale_status); + lambda.like(ObjectUtil.isNotEmpty(sale_code), StIvtSalesorder::getSale_code, sale_code); + + if (ObjectUtil.isNotEmpty(material_code)) { + lambda.like(StIvtSalesorder::getMaterial_code, material_code) + .or(qw -> qw.like(StIvtSalesorder::getMaterial_name, material_code)); + } + if (ObjectUtil.isNotEmpty(supp_code)) { + lambda.like(StIvtSalesorder::getSupp_code, supp_code) + .or(qw -> qw.like(StIvtSalesorder::getSupp_name, supp_code)); + } + lambda.ge(ObjectUtil.isNotEmpty(begin_time), StIvtSalesorder::getCreate_time, begin_time); + lambda.lt(ObjectUtil.isNotEmpty(end_time), StIvtSalesorder::getCreate_time, end_time); + List daoList = this.list(lambda); + + List> list = new ArrayList<>(); + for (StIvtSalesorder dao : daoList) { + + Map mp = new LinkedHashMap<>(); + mp.put("销售单编码", dao.getSale_code()); + mp.put("物料编码", dao.getMaterial_code()); + mp.put("物料名称", dao.getMaterial_name()); + mp.put("客户编码", dao.getSupp_code()); + mp.put("客户名称", dao.getSupp_name()); + mp.put("销售数量", dao.getSale_qty()); + mp.put("单位", dao.getQty_unit_id()); + if (dao.getSale_status().equals(IOSEnum.SALE_STATUS.code("生成"))) { + mp.put("状态", "生成"); + } else if (dao.getSale_status().equals(IOSEnum.SALE_STATUS.code("审核"))) { + mp.put("状态", "审核"); + } else if (dao.getSale_status().equals(IOSEnum.SALE_STATUS.code("下发"))) { + mp.put("状态", "下发"); + } else if (dao.getSale_status().equals(IOSEnum.SALE_STATUS.code("完成"))) { + mp.put("状态", "完成"); + } + mp.put("创建人", dao.getCreate_name()); + mp.put("创建时间", dao.getCreate_time()); + mp.put("审核人", dao.getCheck_name()); + mp.put("审核时间", dao.getCheck_time()); + mp.put("完成人", dao.getConfirm_name()); + mp.put("完成时间", dao.getConfirm_time()); + list.add(mp); + } + FileUtil.downloadExcel(list, response); + } + } diff --git a/wms/nladmin-ui/src/views/wms/st/saleorder/index.vue b/wms/nladmin-ui/src/views/wms/st/saleorder/index.vue index 2c406ac..9e0e8fe 100644 --- a/wms/nladmin-ui/src/views/wms/st/saleorder/index.vue +++ b/wms/nladmin-ui/src/views/wms/st/saleorder/index.vue @@ -92,6 +92,17 @@ > 创建出库单 + + 导出Excel + { + downloadFile(result, '销售单', 'xlsx') + this.showDtlLoading = false + }).catch(() => { + this.showDtlLoading = false + }) } } }