From f8b809cea61d84cee409a616d3a4c06cb360471c Mon Sep 17 00:00:00 2001 From: starrysky <838252223@qq.com> Date: Fri, 16 Aug 2019 00:32:43 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=93=E5=BA=93=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bd/repository/WareHouseRepository.java | 3 +- .../wms/bd/rest/WareHouseController.java | 6 +-- .../bd/service/impl/WareHouseServiceImpl.java | 44 ++++++++++++++++++- 3 files changed, 47 insertions(+), 6 deletions(-) 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 13784e88..d8fcf21a 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 @@ -20,7 +20,7 @@ public interface WareHouseRepository extends JpaRepository, Jp * @param wareHouseCode * @return */ - @Query(value ="select * from bd_ware_house where (name = ?1 or ware_house_code = ?2) and status = 1", nativeQuery = true) + @Query(value ="select * from bd_ware_house where name = ?1 and ware_house_code = ?2 and status = 1", nativeQuery = true) List findByNameOrWareHouseCodeAndStatusTrue(String name, String wareHouseCode); @@ -30,6 +30,7 @@ public interface WareHouseRepository extends JpaRepository, Jp * @param wareHouseCode * @return */ + @Query(value ="select * from bd_ware_house where name = ?1 and ware_house_code = ?2 and status = 0", nativeQuery = true) WareHouse findByNameAndWareHouseCodeAndStatusFalse(String name, String wareHouseCode); /** diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/rest/WareHouseController.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/rest/WareHouseController.java index c335633e..5b2b50fb 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/rest/WareHouseController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/rest/WareHouseController.java @@ -32,7 +32,7 @@ public class WareHouseController { @Log("新增仓库") @PostMapping(value = "/wareHouse") - public ResponseEntity create(@Validated @RequestBody WareHouse resources){ + public ResponseEntity create(@RequestBody WareHouse resources){ if (resources.getId() != null) { throw new BadRequestException("A new "+ ENTITY_NAME +" cannot already have an ID"); } @@ -62,8 +62,8 @@ public class WareHouseController { } @Log("分页查询仓库") - @GetMapping(value = "/wareHouses") - public ResponseEntity getWareHouses(WareHouseQueryCriteria wareHouseQueryCriteria, Pageable pageable){ + @GetMapping(value = "/queryWareHousePage") + public ResponseEntity queryWareHousePage(WareHouseQueryCriteria wareHouseQueryCriteria, Pageable pageable){ return new ResponseEntity(wareHouseService.queryAll(wareHouseQueryCriteria,pageable),HttpStatus.OK); } 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 d1995e3c..93d1b55e 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 @@ -1,6 +1,7 @@ package me.zhengjie.modules.wms.bd.service.impl; import me.zhengjie.exception.BadRequestException; +import me.zhengjie.modules.wms.bd.domain.SupplierInfo; import me.zhengjie.modules.wms.bd.domain.WareHouse; import me.zhengjie.modules.wms.bd.repository.WareHouseRepository; import me.zhengjie.modules.wms.bd.service.WareHouseService; @@ -13,11 +14,17 @@ import me.zhengjie.utils.ValidationUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Predicate; +import javax.persistence.criteria.Root; +import java.util.ArrayList; import java.util.List; import java.util.Optional; @@ -51,6 +58,7 @@ public class WareHouseServiceImpl implements WareHouseService { return wareHouseMapper.toDto(wareHouseDelete); } + resources.setStatus(true); return wareHouseMapper.toDto(wareHouseRepository.save(resources)); } @@ -73,13 +81,45 @@ public class WareHouseServiceImpl implements WareHouseService { @Override public Object queryAll(WareHouseQueryCriteria wareHouseQueryCriteria, Pageable pageable) { - Page page = wareHouseRepository.findAll((root, query, cb) -> QueryHelp.getPredicate(root, wareHouseQueryCriteria, cb), pageable); + Specification specification = new Specification() { + @Override + public Predicate toPredicate(Root root, CriteriaQuery criteriaQuery, CriteriaBuilder criteriaBuilder) { + + List targetPredicateList = new ArrayList<>(); + + Predicate statusPredicate = criteriaBuilder.equal(root.get("status"), 1); + targetPredicateList.add(statusPredicate); + + if(CollectionUtils.isEmpty(targetPredicateList)){ + return null; + }else{ + return criteriaBuilder.and(targetPredicateList.toArray(new Predicate[targetPredicateList.size()])); + } + } + }; + Page page = wareHouseRepository.findAll(specification, pageable); return PageUtil.toPage(page.map(wareHouseMapper::toDto)); } @Override public Object queryAll(WareHouseQueryCriteria wareHouseQueryCriteria) { - List wareHouseList = wareHouseRepository.findAll((root, query, cb) -> QueryHelp.getPredicate(root, wareHouseQueryCriteria, cb)); + Specification specification = new Specification() { + @Override + public Predicate toPredicate(Root root, CriteriaQuery criteriaQuery, CriteriaBuilder criteriaBuilder) { + + List targetPredicateList = new ArrayList<>(); + + Predicate statusPredicate = criteriaBuilder.equal(root.get("status"), 1); + targetPredicateList.add(statusPredicate); + + if(CollectionUtils.isEmpty(targetPredicateList)){ + return null; + }else{ + return criteriaBuilder.and(targetPredicateList.toArray(new Predicate[targetPredicateList.size()])); + } + } + }; + List wareHouseList = wareHouseRepository.findAll(specification); return wareHouseList; }