From bd8a73a4e15d737e6ea206b21a27a25d6018e9a3 Mon Sep 17 00:00:00 2001 From: zxy Date: Tue, 31 Mar 2026 18:20:00 +0800 Subject: [PATCH] =?UTF-8?q?fix(wms):=20=E8=A7=A3=E5=86=B3=E4=BB=93?= =?UTF-8?q?=E5=82=A8=E7=AE=A1=E7=90=86=E4=B8=AD=E6=95=B0=E6=8D=AE=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E5=92=8C=E5=AF=BC=E5=87=BA=E7=8A=B6=E6=80=81=E5=A4=84?= =?UTF-8?q?=E7=90=86=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/heli/enums/ErrorCodeConstants.java | 2 +- .../wmsstorage/WmsStorageController.java | 23 +++++++---- .../dataobject/storagelog/StorageLogDO.java | 11 ++++-- .../mysql/wmsstorage/WmsStorageMapper.java | 4 ++ .../WmsStorageDetailMapper.java | 3 ++ .../service/wmsstorage/WmsStorageService.java | 8 +++- .../wmsstorage/WmsStorageServiceImpl.java | 37 ++++++++++++------ .../src/config/axios/service.ts | 2 +- .../src/views/heli/wmsstorage/index.vue | 38 +++++++++++++------ 9 files changed, 91 insertions(+), 37 deletions(-) diff --git a/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/ErrorCodeConstants.java b/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/ErrorCodeConstants.java index 5ffb8627..7d878c2d 100644 --- a/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/ErrorCodeConstants.java +++ b/mes-module-heli/mes-module-heli-api/src/main/java/com/chanko/yunxi/mes/module/heli/enums/ErrorCodeConstants.java @@ -184,7 +184,7 @@ public interface ErrorCodeConstants { ErrorCode WMS_STORAGE_NOT_EXISTS = new ErrorCode(1_015_001, "当前数据不存在"); ErrorCode WMS_STORAGE_IS_EXPORT = new ErrorCode(1_015_002, "当前数据已导出,请刷新界面。"); - ErrorCode WMS_STORAGE_NOT_DELETE = new ErrorCode(1_015_003, "存在已导出的数据,请刷新界面。!"); + ErrorCode WMS_STORAGE_DELETE = new ErrorCode(1_015_003, "存在已删除的数据,请刷新界面。!"); } 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 605b93e2..ef7e4bbb 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 @@ -105,13 +105,18 @@ public class WmsStorageController { @Transactional(rollbackFor = Exception.class) public CommonResult> exportCheck(@RequestParam("ids") String ids) { // 处理数据,更新导出状态 - Tuple2> objects = wmsStorageService.processWsmStorage(false, ids); + Tuple2> objects = wmsStorageService.processWsmStorage(false, ids); List list = objects.getT2(); - if (!objects.getT1()) { + if (objects.getT1() == 1) { // list 统计ID,用,分割 String idList = list.stream().map(WmsStorageDO::getId).map(String::valueOf).collect(Collectors.joining(",")); return CommonResult.error(10010, idList); } + if (objects.getT1() == 2) { + // list 统计ID,用,分割 + String idList = list.stream().map(WmsStorageDO::getId).map(String::valueOf).collect(Collectors.joining(",")); + return CommonResult.error(10011, idList); + } return CommonResult.success(null); } @@ -125,14 +130,18 @@ public class WmsStorageController { @RequestParam("ids") String ids, HttpServletResponse response) throws IOException { // 处理数据,更新导出状态 - Tuple2> objects = wmsStorageService.processWsmStorage(true, ids); + Tuple2> objects = wmsStorageService.processWsmStorage(true, ids); List list = objects.getT2(); - if (!objects.getT1()) { + if (objects.getT1() == 1) { // list 统计单据编号,用,分割 String stockNoList = list.stream().map(WmsStorageDO::getStockNo).collect(Collectors.joining(",")); - throw new ServiceException(1010, "单据编号{" + stockNoList + "}存在已导出的数据,请刷新界面。"); + throw new ServiceException(10010, "单据编号{" + stockNoList + "}存在已删除的数据,请刷新界面。"); + } + if (objects.getT1() == 2) { + // list 统计单据编号,用,分割 + String stockNoList = list.stream().map(WmsStorageDO::getStockNo).collect(Collectors.joining(",")); + throw new ServiceException(10011, "单据编号{" + stockNoList + "}存在已导出的数据,请刷新界面。"); } - // 判断入库还是出库 boolean isInbound = stockType == 1; String typeName = isInbound ? "入库" : "出库"; @@ -236,7 +245,7 @@ public class WmsStorageController { public void exportWmsStorageExcel(@RequestParam("stockType") Integer stockType, @RequestParam("ids") String ids, HttpServletResponse response) throws IOException { - Tuple2> objects = wmsStorageService.processWsmStorage(true, ids); + Tuple2> objects = wmsStorageService.processWsmStorage(true, ids); List list = objects.getT2(); // 导出 Excel - 两个sheet diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/storagelog/StorageLogDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/storagelog/StorageLogDO.java index bf31b95b..21c5f400 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/storagelog/StorageLogDO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/storagelog/StorageLogDO.java @@ -1,9 +1,6 @@ package com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelog; -import com.baomidou.mybatisplus.annotation.KeySequence; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.*; import com.chanko.yunxi.mes.framework.mybatis.core.dataobject.BaseDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.material.MaterialDO; import lombok.*; @@ -97,8 +94,14 @@ public class StorageLogDO extends BaseDO { @TableField(exist = false) private List materialDOList; + // 允许设置为null + @TableField(updateStrategy = FieldStrategy.IGNORED) private Long xzdStockId; + + @TableField(updateStrategy = FieldStrategy.IGNORED) private String xzdStockNo; + + @TableField(updateStrategy = FieldStrategy.IGNORED) private String incoiceCode; } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/wmsstorage/WmsStorageMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/wmsstorage/WmsStorageMapper.java index 3319e2a5..12d8b7c2 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/wmsstorage/WmsStorageMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/wmsstorage/WmsStorageMapper.java @@ -5,6 +5,7 @@ import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX; import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.chanko.yunxi.mes.module.heli.controller.admin.wmsstorage.vo.WmsStoragePageReqVO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.wmsstorage.WmsStorageDO; +import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper; /** @@ -23,4 +24,7 @@ public interface WmsStorageMapper extends BaseMapperX { .eqIfPresent(WmsStorageDO::getStockType, reqVO.getStockType()) .orderByDesc(WmsStorageDO::getId)); } + + @Delete("DELETE FROM xzd_wms_storage WHERE id = #{id}") + int deleteByIdPhysical(Long id); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/wmsstoragedetail/WmsStorageDetailMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/wmsstoragedetail/WmsStorageDetailMapper.java index 9c60b91d..12439a9a 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/wmsstoragedetail/WmsStorageDetailMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/wmsstoragedetail/WmsStorageDetailMapper.java @@ -5,6 +5,7 @@ import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX; import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.chanko.yunxi.mes.module.heli.controller.admin.wmsstoragedetail.vo.WmsStorageDetailPageReqVO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.wmsstoragedetail.WmsStorageDetailDO; +import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper; /** @@ -28,4 +29,6 @@ public interface WmsStorageDetailMapper extends BaseMapperX .orderByDesc(WmsStorageDetailDO::getId)); } + @Delete("DELETE FROM xzd_wms_storage_detail WHERE xzd_wms_id = #{xzdWmsId}") + int deleteByXzdWmsIdPhysical(Long xzdWmsId); } 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 f4c5e408..a67cb9d9 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,6 +54,12 @@ public interface WmsStorageService { */ PageResult getWmsStoragePage(WmsStoragePageReqVO pageReqVO); - Tuple2> processWsmStorage(Boolean isExport, String ids); + /** + * 处理新中大入/出库主 + * @param isExport 是否导出 + * @param ids 新中大入/出库主编号 + * @return 处理结果 + */ + 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 10306e22..957ac827 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 @@ -26,8 +26,7 @@ import java.util.List; import java.util.stream.Collectors; import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception; -import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.WMS_STORAGE_IS_EXPORT; -import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.WMS_STORAGE_NOT_EXISTS; +import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*; /** * 新中大入/出库主 Service 实现类 @@ -72,9 +71,11 @@ public class WmsStorageServiceImpl implements WmsStorageService { if (wmsStorage.getStatus() == 2) { throw exception(WMS_STORAGE_IS_EXPORT); } - // 删除 - wmsStorageMapper.deleteById(id); - wmsStorageDetailMapper.delete(WmsStorageDetailDO::getXzdWmsId, id); + // 物理删除 + wmsStorageMapper.deleteByIdPhysical(id); + wmsStorageDetailMapper.deleteByXzdWmsIdPhysical(id); +// wmsStorageMapper.deleteById(id); +// wmsStorageDetailMapper.delete(WmsStorageDetailDO::getXzdWmsId, id); // storageLogService StorageLogDO storageLogDO = storageLogMapper.selectOne(StorageLogDO::getXzdStockId, wmsStorage.getId()); @@ -113,20 +114,34 @@ public class WmsStorageServiceImpl implements WmsStorageService { @Transactional @Override - public Tuple2> processWsmStorage(Boolean isExport, String ids) { + public Tuple2> processWsmStorage(Boolean isExport, String ids) { // 分割并转换为 Long 类型 List idList = Arrays.stream(ids.split(",")).map(Long::valueOf).collect(Collectors.toList()); + // YYDS hhhhh if (!idList.isEmpty()) { - // 根据ID查询出所有数据,批量更新导出人,导出状态 - List wmsStorageDOS = wmsStorageMapper.selectList(WmsStorageDO::getId, idList); List errWmsStorageDOS = new ArrayList<>(); + List wmsStorageDOS = new ArrayList<>(); + // 根据ID查询出所有数据,批量更新导出人,导出状态 + for (Long l : idList) { + WmsStorageDO wmsStorageDO = wmsStorageMapper.selectById(l); + if (wmsStorageDO == null) { + WmsStorageDO wmsStorageDO1 = new WmsStorageDO(); + wmsStorageDO1.setId(l); + errWmsStorageDOS.add(wmsStorageDO1); + } + wmsStorageDOS.add(wmsStorageDO); + } + if (!errWmsStorageDOS.isEmpty()) { + return Tuples.of(1, errWmsStorageDOS); + } for (WmsStorageDO wmsStorageDO : wmsStorageDOS) { if (wmsStorageDO.getStatus() == 2) { errWmsStorageDOS.add(wmsStorageDO); } } if (!errWmsStorageDOS.isEmpty()) { - return Tuples.of(false, errWmsStorageDOS); + // 已经导出的ID + return Tuples.of(2, errWmsStorageDOS); } if (isExport) { for (WmsStorageDO wmsStorageDO : wmsStorageDOS) { @@ -140,8 +155,8 @@ public class WmsStorageServiceImpl implements WmsStorageService { wmsStorageDO.setDetailList(wmsStorageDetailDOS); } } - return Tuples.of(true, wmsStorageDOS); + return Tuples.of(0, wmsStorageDOS); } - return Tuples.of(false, Collections.emptyList()); + return Tuples.of(0, Collections.emptyList()); } } 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 37017514..e01109ce 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,7 +168,7 @@ service.interceptors.response.use( } else if (code === 500) { ElMessage.error(t('sys.api.errMsg500')) return Promise.reject(new Error(msg)) - } else if (code === 10010) { + } else if (code === 10010 || code === 10011) { // 导出校验失败,不显示错误提示,直接返回完整数据 return Promise.reject(data) } else if (code === 901) { 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 71d1a0cc..cd98e198 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 @@ -73,6 +73,7 @@ :data="list" class="hl-table" ref="multipleTableRef" + height="510" @selection-change="handleSelectionChange" :row-class-name="tableRowClassName" > @@ -89,7 +90,7 @@ {{ getHeliStockTypeLabel(scope.row.stockType) }} - +