diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/repository/WareHouseRepository.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/repository/WareHouseRepository.java index 093e32e2..4b627712 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/repository/WareHouseRepository.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/repository/WareHouseRepository.java @@ -3,6 +3,8 @@ package me.zhengjie.modules.wms.bd.repository; import me.zhengjie.modules.wms.bd.domain.WareHouse; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; import java.util.List; @@ -12,5 +14,33 @@ import java.util.List; */ public interface WareHouseRepository extends JpaRepository, JpaSpecificationExecutor { - List findByNameOrWareHouseCode(String name, String wareHouseCode); + /** + * 查询指定名字或者仓库编码且状态为存在的仓库 + * @param name + * @param wareHouseCode + * @return + */ + @Query(value ="select * from bd_ware_house where (name = ?1 or ware_house_code = ?2) and status = 1", nativeQuery = true) + List findByNameOrWareHouseCodeAndStatusTrue(String name, String wareHouseCode); + + + /** + * 查询指定名字和仓库编码且已经删除了的仓库 + * @param name + * @param wareHouseCode + * @return + */ + WareHouse findByNameAndWareHouseCodeAndStatusFalse(String name, String wareHouseCode); + + /** + * 删除仓库 + * @param id + */ + @Modifying + @Query(value = "update bd_ware_house set status = 0 where id = ?1",nativeQuery = true) + void deleteWareHouse(long id); + + @Modifying + @Query(value = "update bd_ware_house set status = 1 where id = ?1",nativeQuery = true) + void updateStatusTrue(long id); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/WareHouseService.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/WareHouseService.java index a664c507..68755a32 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/WareHouseService.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/WareHouseService.java @@ -4,6 +4,7 @@ import me.zhengjie.modules.wms.bd.domain.WareHouse; import me.zhengjie.modules.wms.bd.service.dto.WareHouseDTO; import org.springframework.data.domain.Pageable; + /** * @author 黄星星 * @date 2019-07-27 @@ -14,7 +15,8 @@ public interface WareHouseService { WareHouseDTO findById(long id); - void delete(Long id); + void delete(long id); Object queryAll(WareHouseDTO wareHouse, Pageable pageable); + } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/impl/WareHouseServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/impl/WareHouseServiceImpl.java index 5c7e2099..bca2ed08 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/impl/WareHouseServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/impl/WareHouseServiceImpl.java @@ -38,10 +38,18 @@ public class WareHouseServiceImpl implements WareHouseService { @Transactional(rollbackFor = Exception.class) public WareHouseDTO create(WareHouse resources) { //验证仓库编码或者仓库名字是否存在 - List wareHouseList = wareHouseRepository.findByNameOrWareHouseCode(resources.getName(), resources.getWareHouseCode()); + List wareHouseList = wareHouseRepository.findByNameOrWareHouseCodeAndStatusTrue(resources.getName(), resources.getWareHouseCode()); if(!CollectionUtils.isEmpty(wareHouseList)) { throw new BadRequestException("仓库编码或编号已经存在"); } + + WareHouse wareHouseDelete = wareHouseRepository.findByNameAndWareHouseCodeAndStatusFalse(resources.getName(), resources.getWareHouseCode()); + if(null != wareHouseDelete){ + wareHouseDelete.setStatus(true); + wareHouseRepository.updateStatusTrue(wareHouseDelete.getId()); + return wareHouseMapper.toDto(wareHouseDelete); + + } return wareHouseMapper.toDto(wareHouseRepository.save(resources)); } @@ -55,8 +63,11 @@ public class WareHouseServiceImpl implements WareHouseService { @Override @Transactional(rollbackFor = Exception.class) - public void delete(Long id) { - wareHouseRepository.deleteById(id); + public void delete(long id) { + Optional wareHouseOptional = wareHouseRepository.findById(id); + WareHouse wareHouse = wareHouseOptional.get(); + wareHouse.setStatus(false); + wareHouseRepository.deleteWareHouse(id); } @Override