diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/storageLocation/StorageLocationApplicationService.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/storageLocation/StorageLocationApplicationService.java index 566c37e41..7bd6df9fa 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/storageLocation/StorageLocationApplicationService.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/storageLocation/StorageLocationApplicationService.java @@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSON; import com.mhd.basic.domain.storageLocation.repository.po.StorageLocationPO; import com.mhd.basic.domain.storageLocation.repository.todo.StorageLocationDO; import com.mhd.basic.domain.storageLocation.service.StorageLocationDomainService; +import com.mhd.basic.interfaces.dto.storageLocation.StorageLocationDTO; import com.mhd.basic.domain.storageSection.repository.todo.StorageSectionDO; import com.mhd.basic.infrastructure.feign.vo.SysDictDataVo; import com.mhd.common.core.domain.po.UserPo; @@ -207,6 +208,39 @@ public class StorageLocationApplicationService { return storageLocationDomainService.getInfo(storageLocationId); } + /** + * 复制库位-获取原库位数据供前端回显 + * 前端拿到数据后跳转到新增库位页面,用户修改编码后通过edit接口提交新增 + */ + public StorageLocationPO copyStorageLocation(StorageLocationDTO storageLocationDTO) { + if (storageLocationDTO.getStorageLocationId() == null) { + throw new ServiceException("原库位id不能为空"); + } + // 获取原库位信息 + StorageLocationPO originalStorageLocation = storageLocationDomainService.getInfo(storageLocationDTO.getStorageLocationId()); + if (null == originalStorageLocation) { + throw new ServiceException("原库位信息未找到"); + } + // 清空唯一性字段:库位id不清空会导致提交后走修改分支覆盖原库位; + // 库位编码同组织同仓库唯一,须由用户重新填写;条码为物理唯一标识,一并清空 + originalStorageLocation.setStorageLocationId(null); + originalStorageLocation.setStorageLocationCode(null); + originalStorageLocation.setLocationBarCode(null); + // 状态重置为初始值:新库位无库存(空)、启用、未作废 + originalStorageLocation.setStatus(1); + originalStorageLocation.setOpeningUp(1); + originalStorageLocation.setNullify(1); + // 清空审计字段,提交新增时由Assembler按当前登录人重新生成 + originalStorageLocation.setCreateBy(null); + originalStorageLocation.setCreateByName(null); + originalStorageLocation.setCreateTime(null); + originalStorageLocation.setUpdateBy(null); + originalStorageLocation.setUpdateByName(null); + originalStorageLocation.setUpdateTime(null); + // 其余业务字段(仓库/库区/库位组、分类/种类/混放策略、限制、长宽高、坐标、备注)保留回显 + return originalStorageLocation; + } + public int getStorageLocationCount(StorageLocationDO storageLocationDO) { return storageLocationDomainService.getStorageLocationCount(storageLocationDO); diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facadeApi/storageLocation/StorageLocationApi.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facadeApi/storageLocation/StorageLocationApi.java index 6f071de45..2c211ae5d 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facadeApi/storageLocation/StorageLocationApi.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facadeApi/storageLocation/StorageLocationApi.java @@ -19,6 +19,7 @@ import com.mhd.basic.domain.storageLocation.repository.todo.StorageLocationDO; import com.mhd.basic.domain.storageLocation.repository.po.StorageLocationPO; import com.mhd.basic.application.service.storageLocation.StorageLocationApplicationService; import com.mhd.basic.interfaces.assember.storageLocation.StorageLocationAssembler; +import com.mhd.common.core.exception.ServiceException; import javax.annotation.Resource; import com.mhd.common.core.web.controller.BaseController; import com.mhd.common.core.web.domain.AjaxResult; @@ -127,6 +128,24 @@ public class StorageLocationApi extends BaseController{ { return AjaxResult.success(storageLocationApplicationService.getInfo(storageLocationId)); } + + /** + * 复制库位-获取原库位数据用于回显 + */ + @ApiOperation("复制库位-获取原库位数据用于回显") + @PostMapping("/copyStorageLocation") + public AjaxResult copyStorageLocation(@RequestBody StorageLocationDTO storageLocationDTO) + { + if(storageLocationDTO.getStorageLocationId() == null){ + throw new ServiceException("原库位id不能为空"); + } + try { + StorageLocationPO result = storageLocationApplicationService.copyStorageLocation(storageLocationDTO); + return AjaxResult.success(result); + }catch (Exception e){ + return AjaxResult.error("复制库位失败:"+e.getMessage()); + } + } @ApiOperation("获取库位总数") @PostMapping(value = "/getStorageLocationCount") public AjaxResult getStorageLocationCount(@RequestBody StorageLocationDTO storageLocationDTO)