From 178cc058e1e18f3f23714a5a416d31860ced54a9 Mon Sep 17 00:00:00 2001 From: zxy Date: Tue, 31 Mar 2026 16:20:40 +0800 Subject: [PATCH] =?UTF-8?q?feat(wmsstorage):=20=E6=96=B0=E5=A2=9E=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E6=A0=A1=E9=AA=8C=E5=8A=9F=E8=83=BD=E5=B9=B6=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E5=AF=BC=E5=87=BA=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wmsstorage/WmsStorageController.java | 23 +++++- .../service/wmsstorage/WmsStorageService.java | 3 +- .../wmsstorage/WmsStorageServiceImpl.java | 23 +++--- .../src/api/heli/wmsstorage/index.ts | 8 +- .../src/config/axios/service.ts | 3 + .../src/views/heli/wmsstorage/index.vue | 76 ++++++++++++++++--- 6 files changed, 107 insertions(+), 29 deletions(-) diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/wmsstorage/WmsStorageController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/wmsstorage/WmsStorageController.java index 7546b137..605b93e2 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/wmsstorage/WmsStorageController.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/wmsstorage/WmsStorageController.java @@ -99,6 +99,23 @@ public class WmsStorageController { return success(BeanUtils.toBean(pageResult, WmsStorageRespVO.class)); } + @GetMapping("/exportCheck") + @Operation(summary = "导出新中大入/出库主 Excel(使用模板)") + @PreAuthorize("@ss.hasPermission('heli:wms-storage:export')") + @Transactional(rollbackFor = Exception.class) + public CommonResult> exportCheck(@RequestParam("ids") String ids) { + // 处理数据,更新导出状态 + Tuple2> objects = wmsStorageService.processWsmStorage(false, ids); + List list = objects.getT2(); + if (!objects.getT1()) { + // list 统计ID,用,分割 + String idList = list.stream().map(WmsStorageDO::getId).map(String::valueOf).collect(Collectors.joining(",")); + return CommonResult.error(10010, idList); + } + return CommonResult.success(null); + + } + @GetMapping("/export") @Operation(summary = "导出新中大入/出库主 Excel(使用模板)") @PreAuthorize("@ss.hasPermission('heli:wms-storage:export')") @@ -108,7 +125,7 @@ public class WmsStorageController { @RequestParam("ids") String ids, HttpServletResponse response) throws IOException { // 处理数据,更新导出状态 - Tuple2> objects = wmsStorageService.processWsmStorage(ids); + Tuple2> objects = wmsStorageService.processWsmStorage(true, ids); List list = objects.getT2(); if (!objects.getT1()) { // list 统计单据编号,用,分割 @@ -219,7 +236,7 @@ public class WmsStorageController { public void exportWmsStorageExcel(@RequestParam("stockType") Integer stockType, @RequestParam("ids") String ids, HttpServletResponse response) throws IOException { - Tuple2> objects = wmsStorageService.processWsmStorage(ids); + Tuple2> objects = wmsStorageService.processWsmStorage(true, ids); List list = objects.getT2(); // 导出 Excel - 两个sheet @@ -232,7 +249,7 @@ public class WmsStorageController { boolean isInbound = stockType == 1; String typeName = isInbound ? "入库" : "出库"; String fileName = URLEncoder.encode("新中大" + typeName + "单导出").replaceAll("\\+", "%20"); - response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xls"); // 创建ExcelWriter com.alibaba.excel.ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()) diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/wmsstorage/WmsStorageService.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/wmsstorage/WmsStorageService.java index 3e142c1a..f4c5e408 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/wmsstorage/WmsStorageService.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/wmsstorage/WmsStorageService.java @@ -54,7 +54,6 @@ public interface WmsStorageService { */ PageResult getWmsStoragePage(WmsStoragePageReqVO pageReqVO); - // 返回两个结果 - Tuple2> processWsmStorage(String ids); + Tuple2> processWsmStorage(Boolean isExport, String ids); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/wmsstorage/WmsStorageServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/wmsstorage/WmsStorageServiceImpl.java index fa673b9b..10306e22 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/wmsstorage/WmsStorageServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/wmsstorage/WmsStorageServiceImpl.java @@ -113,7 +113,7 @@ public class WmsStorageServiceImpl implements WmsStorageService { @Transactional @Override - public Tuple2> processWsmStorage(String ids) { + public Tuple2> processWsmStorage(Boolean isExport, String ids) { // 分割并转换为 Long 类型 List idList = Arrays.stream(ids.split(",")).map(Long::valueOf).collect(Collectors.toList()); if (!idList.isEmpty()) { @@ -128,16 +128,17 @@ public class WmsStorageServiceImpl implements WmsStorageService { if (!errWmsStorageDOS.isEmpty()) { return Tuples.of(false, errWmsStorageDOS); } - // 如果状态为已导出,则remove - for (WmsStorageDO wmsStorageDO : wmsStorageDOS) { - // 获取当前用户信息 - Long loginUserId = SecurityFrameworkUtils.getLoginUserId(); - wmsStorageDO.setExportEmp(loginUserId); - wmsStorageDO.setExprotTime(LocalDateTime.now()); - wmsStorageDO.setStatus(2); - wmsStorageMapper.updateById(wmsStorageDO); - List wmsStorageDetailDOS = wmsStorageDetailMapper.selectList(WmsStorageDetailDO::getXzdWmsId, wmsStorageDO.getId()); - wmsStorageDO.setDetailList(wmsStorageDetailDOS); + if (isExport) { + for (WmsStorageDO wmsStorageDO : wmsStorageDOS) { + // 获取当前用户信息 + Long loginUserId = SecurityFrameworkUtils.getLoginUserId(); + wmsStorageDO.setExportEmp(loginUserId); + wmsStorageDO.setExprotTime(LocalDateTime.now()); + wmsStorageDO.setStatus(2); + wmsStorageMapper.updateById(wmsStorageDO); + List wmsStorageDetailDOS = wmsStorageDetailMapper.selectList(WmsStorageDetailDO::getXzdWmsId, wmsStorageDO.getId()); + wmsStorageDO.setDetailList(wmsStorageDetailDOS); + } } return Tuples.of(true, wmsStorageDOS); } diff --git a/mes-ui/mes-ui-admin-vue3/src/api/heli/wmsstorage/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/heli/wmsstorage/index.ts index e09e44e6..3ca641c7 100644 --- a/mes-ui/mes-ui-admin-vue3/src/api/heli/wmsstorage/index.ts +++ b/mes-ui/mes-ui-admin-vue3/src/api/heli/wmsstorage/index.ts @@ -60,6 +60,13 @@ export const deleteWmsStorage = async (id: number) => { } // 导出新中大入/出库主 Excel +export const exportCheck = async (ids: String) => { + return await request.get({ + url: `/heli/wms-storage/exportCheck`, + params: { ids } + }, { showErrorMessage: false }) +} + export const exportWmsStorage = async (stockType: Number, ids: String) => { return await request.download({ url: `/heli/wms-storage/export`, @@ -67,7 +74,6 @@ export const exportWmsStorage = async (stockType: Number, ids: String) => { }) } - /** * 入库库存业务类型 */ diff --git a/mes-ui/mes-ui-admin-vue3/src/config/axios/service.ts b/mes-ui/mes-ui-admin-vue3/src/config/axios/service.ts index 6413e945..37017514 100644 --- a/mes-ui/mes-ui-admin-vue3/src/config/axios/service.ts +++ b/mes-ui/mes-ui-admin-vue3/src/config/axios/service.ts @@ -168,6 +168,9 @@ service.interceptors.response.use( } else if (code === 500) { ElMessage.error(t('sys.api.errMsg500')) return Promise.reject(new Error(msg)) + } else if (code === 10010) { + // 导出校验失败,不显示错误提示,直接返回完整数据 + return Promise.reject(data) } else if (code === 901) { ElMessage.error({ offset: 300, diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/wmsstorage/index.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/wmsstorage/index.vue index 9959572a..71d1a0cc 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/wmsstorage/index.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/wmsstorage/index.vue @@ -45,15 +45,22 @@ - 搜索 - 重置 + + + 搜索 + + + + 重置 + - 单据导出 + + 单据导出 @@ -62,9 +69,13 @@ + @selection-change="handleSelectionChange" + :row-class-name="tableRowClassName" + > - +