From 0a0d79a53a796c10dec5ff1be259d69cd5d14f24 Mon Sep 17 00:00:00 2001 From: starrysky <838252223@qq.com> Date: Wed, 14 Aug 2019 16:17:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=AE=A1=E9=87=8F=E5=8D=95?= =?UTF-8?q?=E4=BD=8D=20=E5=A6=82=E6=9E=9C=E5=9C=A8=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E4=B8=AD=E6=9C=89=EF=BC=8C=E6=A0=B9=E6=8D=AE?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E5=87=BA=E6=9D=A5=E7=9A=84=E5=8D=95=E4=BD=8D?= =?UTF-8?q?=E5=8E=BB=E4=BF=AE=E6=94=B9=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/MeasureUnitServiceImpl.java | 33 +++++++++++++++++-- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/impl/MeasureUnitServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/impl/MeasureUnitServiceImpl.java index bfb394f6..94682f91 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/impl/MeasureUnitServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/impl/MeasureUnitServiceImpl.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.CustomerInfo; import me.zhengjie.modules.wms.bd.domain.MeasureUnit; import me.zhengjie.modules.wms.bd.repository.MeasureUnitRepository; import me.zhengjie.modules.wms.bd.service.MeasureUnitService; @@ -12,12 +13,20 @@ 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 org.springframework.util.StringUtils; +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Predicate; +import javax.persistence.criteria.Root; import javax.validation.constraints.NotBlank; +import java.util.ArrayList; +import java.util.List; import java.util.Optional; /** @@ -49,8 +58,8 @@ public class MeasureUnitServiceImpl implements MeasureUnitService { MeasureUnit byNameAndStatusFalse = measureUnitRepository.findByNameAndStatusFalse(resources.getName()); if(null != byNameAndStatusFalse){ resources.setStatus(true); - measureUnitRepository.updateStatusToTrue(resources.getId()); - Optional measureUnitOptional = measureUnitRepository.findById(resources.getId()); + measureUnitRepository.updateStatusToTrue(byNameAndStatusFalse.getId()); + Optional measureUnitOptional = measureUnitRepository.findById(byNameAndStatusFalse.getId()); MeasureUnit measureUnit = measureUnitOptional.get(); return measureUnitMapper.toDto(measureUnit); }else{ @@ -103,7 +112,25 @@ public class MeasureUnitServiceImpl implements MeasureUnitService { @Override public Object queryAll(MeasureUnitDTO measureUnit, Pageable pageable) { - Page page = measureUnitRepository.findAll((root, query, cb) -> QueryHelp.getPredicate(root, measureUnit, 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 = measureUnitRepository.findAll(specification, pageable); return PageUtil.toPage(page.map(measureUnitMapper::toDto)); }