From ca950f0ab2efec20eade74ea38ba5301243d9b47 Mon Sep 17 00:00:00 2001 From: starrysky <838252223@qq.com> Date: Sat, 4 Jan 2020 13:14:38 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B4=A8=E9=87=8F=E6=A3=80=E9=AA=8C=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OutSourceProcessSheetProductService.java | 2 +- .../rest/QualityCheckSheetController.java | 29 +++++-- .../service/dto/QualityCheckSheetDTO.java | 4 + .../impl/QualityCheckSheetServiceImpl.java | 83 +++++++++++++++++-- 4 files changed, 106 insertions(+), 12 deletions(-) diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/outSourceProductSheet/service/OutSourceProcessSheetProductService.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/outSourceProductSheet/service/OutSourceProcessSheetProductService.java index 49dc2625..d7897f4d 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/outSourceProductSheet/service/OutSourceProcessSheetProductService.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/outSourceProductSheet/service/OutSourceProcessSheetProductService.java @@ -32,7 +32,7 @@ public interface OutSourceProcessSheetProductService { * @return */ //@Cacheable(keyGenerator = "keyGenerator") - public Object queryAll(OutSourceProcessSheetProductQueryCriteria criteria); + Object queryAll(OutSourceProcessSheetProductQueryCriteria criteria); /** * findById diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/rest/QualityCheckSheetController.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/rest/QualityCheckSheetController.java index e6983356..96598353 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/rest/QualityCheckSheetController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/rest/QualityCheckSheetController.java @@ -1,16 +1,17 @@ package me.zhengjie.modules.wms.qualityCheckSheet.rest; import me.zhengjie.aop.log.Log; -import me.zhengjie.modules.wms.qualityCheckSheet.domain.QualityCheckSheet; +import me.zhengjie.modules.wms.outSourceProductSheet.service.dto.OutSourceProcessSheetProductQueryCriteria; import me.zhengjie.modules.wms.qualityCheckSheet.request.CreateQualityCheckSheetRequest; import me.zhengjie.modules.wms.qualityCheckSheet.request.UpdateQualityCheckSheetRequest; +import me.zhengjie.modules.wms.qualityCheckSheet.service.QualityCheckSheetProductService; import me.zhengjie.modules.wms.qualityCheckSheet.service.QualityCheckSheetService; +import me.zhengjie.modules.wms.qualityCheckSheet.service.dto.QualityCheckSheetProductQueryCriteria; import me.zhengjie.modules.wms.qualityCheckSheet.service.dto.QualityCheckSheetQueryCriteria; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import io.swagger.annotations.*; @@ -30,11 +31,14 @@ public class QualityCheckSheetController { @Autowired private QualityCheckSheetService qualityCheckSheetService; + @Autowired + private QualityCheckSheetProductService qualityCheckSheetProductService; + @Log("分页查询质量管理检验单") - @ApiOperation(value = "查询QualityCheckSheet") - @GetMapping(value = "/qualityCheckSheet") + @ApiOperation(value = "分页查询质量检验单") + @GetMapping(value = "/queryQualityCheckSheetPage") // @PreAuthorize("hasAnyRole('ADMIN','QUALITYCHECKSHEET_ALL','QUALITYCHECKSHEET_SELECT')") - public ResponseEntity getQualityCheckSheets(QualityCheckSheetQueryCriteria criteria, Pageable pageable){ + public ResponseEntity queryQualityCheckSheetPage(QualityCheckSheetQueryCriteria criteria, Pageable pageable){ return new ResponseEntity(qualityCheckSheetService.queryAll(criteria,pageable),HttpStatus.OK); } @@ -73,4 +77,19 @@ public class QualityCheckSheetController { String supplierCode = "QCS"+ LocalDateTime.now().format(fmt); return new ResponseEntity(supplierCode,HttpStatus.OK); } + + + @Log("查看质量检验单") + @ApiOperation(value = "查看委外加工单") + @GetMapping(value = "/qualityCheckSheet/{id}") + public ResponseEntity getQualityCheckSheet(@PathVariable Long id){ + return new ResponseEntity(qualityCheckSheetService.findById(id), HttpStatus.OK); + } + + @Log("查看委外加工单产品信息") + @ApiOperation(value = "查看委外加工单产品信息") + @GetMapping(value = "/qualityCheckSheetProductList") + public ResponseEntity queryQualityCheckSheetProductList(QualityCheckSheetProductQueryCriteria criteria){ + return new ResponseEntity(qualityCheckSheetProductService.queryAll(criteria), HttpStatus.OK); + } } \ No newline at end of file diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/service/dto/QualityCheckSheetDTO.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/service/dto/QualityCheckSheetDTO.java index ca465bdc..fafb3c6a 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/service/dto/QualityCheckSheetDTO.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/service/dto/QualityCheckSheetDTO.java @@ -20,8 +20,12 @@ public class QualityCheckSheetDTO implements Serializable { private Timestamp createTime; + private String createTimeStr; + private Timestamp updateTime; + private String updateTimeStr; + private Boolean status; // 制单人 diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/service/impl/QualityCheckSheetServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/service/impl/QualityCheckSheetServiceImpl.java index a305b8f0..fd320a4d 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/service/impl/QualityCheckSheetServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/service/impl/QualityCheckSheetServiceImpl.java @@ -1,9 +1,13 @@ package me.zhengjie.modules.wms.qualityCheckSheet.service.impl; import me.zhengjie.exception.BadRequestException; +import me.zhengjie.modules.wms.outSourceProductSheet.domain.OutSourceInspectionCertificate; +import me.zhengjie.modules.wms.outSourceProductSheet.domain.OutSourceInspectionCertificateProduct; import me.zhengjie.modules.wms.outSourceProductSheet.domain.OutSourceProcessSheet; import me.zhengjie.modules.wms.outSourceProductSheet.domain.OutSourceProcessSheetProduct; import me.zhengjie.modules.wms.outSourceProductSheet.request.OutSourceProcessSheetProductRequest; +import me.zhengjie.modules.wms.outSourceProductSheet.service.dto.OutSourceInspectionCertificateDTO; +import me.zhengjie.modules.wms.outSourceProductSheet.service.dto.OutSourceInspectionCertificateProductDTO; import me.zhengjie.modules.wms.outSourceProductSheet.service.dto.OutSourceProcessSheetDTO; import me.zhengjie.modules.wms.outSourceProductSheet.service.dto.OutSourceProcessSheetProductDTO; import me.zhengjie.modules.wms.qualityCheckSheet.domain.QualityCheckSheet; @@ -22,10 +26,13 @@ import me.zhengjie.modules.wms.qualityCheckSheet.service.dto.QualityCheckSheetQu import me.zhengjie.modules.wms.qualityCheckSheet.service.mapper.QualityCheckSheetMapper; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +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 java.sql.Timestamp; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -40,6 +47,11 @@ import me.zhengjie.utils.QueryHelp; 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; + /** * @author huangxingxing * @date 2019-11-12 @@ -62,20 +74,79 @@ public class QualityCheckSheetServiceImpl implements QualityCheckSheetService { @Override public Object queryAll(QualityCheckSheetQueryCriteria criteria, Pageable pageable){ - Page page = qualityCheckSheetRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable); - return PageUtil.toPage(page.map(qualityCheckSheetMapper::toDto)); + 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 = qualityCheckSheetRepository.findAll(specification,pageable); + + Page qualityCheckSheetDTOPage = page.map(qualityCheckSheetMapper::toDto); + if(null != qualityCheckSheetDTOPage){ + List qualityCheckSheetDTOList = qualityCheckSheetDTOPage.getContent(); + if(!CollectionUtils.isEmpty(qualityCheckSheetDTOList)){ + for(QualityCheckSheetDTO qualityCheckSheetDTO : qualityCheckSheetDTOList){ + Timestamp createTime = qualityCheckSheetDTO.getCreateTime(); + qualityCheckSheetDTO.setCreateTimeStr(new SimpleDateFormat("yyyy-MM-dd").format(createTime)); + + // 查询对应的委外加工单的产品信息 + List outSourceProcessSheetProductList = qualityCheckSheetProductRepository.queryByQualityCheckSheetIdAndStatusTrue(qualityCheckSheetDTO.getId()); + if(!CollectionUtils.isEmpty(outSourceProcessSheetProductList)){ + List qualityCheckSheetProductDTOList = qualityCheckSheetProductMapper.toDto(outSourceProcessSheetProductList); + qualityCheckSheetDTO.setQualityCheckSheetProductList(qualityCheckSheetProductDTOList); + } + } + } + } + Map map = PageUtil.toPage(qualityCheckSheetDTOPage); + return map; } @Override public Object queryAll(QualityCheckSheetQueryCriteria criteria){ - return qualityCheckSheetMapper.toDto(qualityCheckSheetRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder))); + 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()])); + } + } + }; + return qualityCheckSheetMapper.toDto(qualityCheckSheetRepository.findAll(specification)); } @Override public QualityCheckSheetDTO findById(Long id) { - Optional qualityCheckSheet = qualityCheckSheetRepository.findById(id); - ValidationUtil.isNull(qualityCheckSheet,"QualityCheckSheet","id",id); - return qualityCheckSheetMapper.toDto(qualityCheckSheet.get()); + Optional invoiceOptional = qualityCheckSheetRepository.findById(id); + QualityCheckSheet qualityCheckSheet = invoiceOptional.get(); + QualityCheckSheetDTO qualityCheckSheetDTO = qualityCheckSheetMapper.toDto(qualityCheckSheet); + + + List qualityCheckSheetProductList = qualityCheckSheetProductRepository.queryByQualityCheckSheetIdAndStatusTrue(id); + if(!CollectionUtils.isEmpty(qualityCheckSheetProductList)){ + List qualityCheckSheetProductDTOList = qualityCheckSheetProductMapper.toDto(qualityCheckSheetProductList); + qualityCheckSheetDTO.setQualityCheckSheetProductList(qualityCheckSheetProductDTOList); + } + return qualityCheckSheetDTO; } @Override