质量检验单

pull/451/head
starrysky 2020-01-04 13:14:38 +08:00
parent 3a57a8f157
commit ca950f0ab2
4 changed files with 106 additions and 12 deletions

View File

@ -32,7 +32,7 @@ public interface OutSourceProcessSheetProductService {
* @return * @return
*/ */
//@Cacheable(keyGenerator = "keyGenerator") //@Cacheable(keyGenerator = "keyGenerator")
public Object queryAll(OutSourceProcessSheetProductQueryCriteria criteria); Object queryAll(OutSourceProcessSheetProductQueryCriteria criteria);
/** /**
* findById * findById

View File

@ -1,16 +1,17 @@
package me.zhengjie.modules.wms.qualityCheckSheet.rest; package me.zhengjie.modules.wms.qualityCheckSheet.rest;
import me.zhengjie.aop.log.Log; 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.CreateQualityCheckSheetRequest;
import me.zhengjie.modules.wms.qualityCheckSheet.request.UpdateQualityCheckSheetRequest; 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.QualityCheckSheetService;
import me.zhengjie.modules.wms.qualityCheckSheet.service.dto.QualityCheckSheetProductQueryCriteria;
import me.zhengjie.modules.wms.qualityCheckSheet.service.dto.QualityCheckSheetQueryCriteria; import me.zhengjie.modules.wms.qualityCheckSheet.service.dto.QualityCheckSheetQueryCriteria;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.*; import io.swagger.annotations.*;
@ -30,11 +31,14 @@ public class QualityCheckSheetController {
@Autowired @Autowired
private QualityCheckSheetService qualityCheckSheetService; private QualityCheckSheetService qualityCheckSheetService;
@Autowired
private QualityCheckSheetProductService qualityCheckSheetProductService;
@Log("分页查询质量管理检验单") @Log("分页查询质量管理检验单")
@ApiOperation(value = "查询QualityCheckSheet") @ApiOperation(value = "分页查询质量检验单")
@GetMapping(value = "/qualityCheckSheet") @GetMapping(value = "/queryQualityCheckSheetPage")
// @PreAuthorize("hasAnyRole('ADMIN','QUALITYCHECKSHEET_ALL','QUALITYCHECKSHEET_SELECT')") // @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); return new ResponseEntity(qualityCheckSheetService.queryAll(criteria,pageable),HttpStatus.OK);
} }
@ -73,4 +77,19 @@ public class QualityCheckSheetController {
String supplierCode = "QCS"+ LocalDateTime.now().format(fmt); String supplierCode = "QCS"+ LocalDateTime.now().format(fmt);
return new ResponseEntity(supplierCode,HttpStatus.OK); 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);
}
} }

View File

@ -20,8 +20,12 @@ public class QualityCheckSheetDTO implements Serializable {
private Timestamp createTime; private Timestamp createTime;
private String createTimeStr;
private Timestamp updateTime; private Timestamp updateTime;
private String updateTimeStr;
private Boolean status; private Boolean status;
// 制单人 // 制单人

View File

@ -1,9 +1,13 @@
package me.zhengjie.modules.wms.qualityCheckSheet.service.impl; package me.zhengjie.modules.wms.qualityCheckSheet.service.impl;
import me.zhengjie.exception.BadRequestException; 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.OutSourceProcessSheet;
import me.zhengjie.modules.wms.outSourceProductSheet.domain.OutSourceProcessSheetProduct; import me.zhengjie.modules.wms.outSourceProductSheet.domain.OutSourceProcessSheetProduct;
import me.zhengjie.modules.wms.outSourceProductSheet.request.OutSourceProcessSheetProductRequest; 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.OutSourceProcessSheetDTO;
import me.zhengjie.modules.wms.outSourceProductSheet.service.dto.OutSourceProcessSheetProductDTO; import me.zhengjie.modules.wms.outSourceProductSheet.service.dto.OutSourceProcessSheetProductDTO;
import me.zhengjie.modules.wms.qualityCheckSheet.domain.QualityCheckSheet; 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 me.zhengjie.modules.wms.qualityCheckSheet.service.mapper.QualityCheckSheetMapper;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -40,6 +47,11 @@ import me.zhengjie.utils.QueryHelp;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils; 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 * @author huangxingxing
* @date 2019-11-12 * @date 2019-11-12
@ -62,20 +74,79 @@ public class QualityCheckSheetServiceImpl implements QualityCheckSheetService {
@Override @Override
public Object queryAll(QualityCheckSheetQueryCriteria criteria, Pageable pageable){ public Object queryAll(QualityCheckSheetQueryCriteria criteria, Pageable pageable){
Page<QualityCheckSheet> page = qualityCheckSheetRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable); Specification<QualityCheckSheet> specification = new Specification<QualityCheckSheet>() {
return PageUtil.toPage(page.map(qualityCheckSheetMapper::toDto)); @Override
public Predicate toPredicate(Root<QualityCheckSheet> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) {
List<Predicate> 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<QualityCheckSheet> page = qualityCheckSheetRepository.findAll(specification,pageable);
Page<QualityCheckSheetDTO> qualityCheckSheetDTOPage = page.map(qualityCheckSheetMapper::toDto);
if(null != qualityCheckSheetDTOPage){
List<QualityCheckSheetDTO> 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<QualityCheckSheetProduct> outSourceProcessSheetProductList = qualityCheckSheetProductRepository.queryByQualityCheckSheetIdAndStatusTrue(qualityCheckSheetDTO.getId());
if(!CollectionUtils.isEmpty(outSourceProcessSheetProductList)){
List<QualityCheckSheetProductDTO> qualityCheckSheetProductDTOList = qualityCheckSheetProductMapper.toDto(outSourceProcessSheetProductList);
qualityCheckSheetDTO.setQualityCheckSheetProductList(qualityCheckSheetProductDTOList);
}
}
}
}
Map map = PageUtil.toPage(qualityCheckSheetDTOPage);
return map;
} }
@Override @Override
public Object queryAll(QualityCheckSheetQueryCriteria criteria){ public Object queryAll(QualityCheckSheetQueryCriteria criteria){
return qualityCheckSheetMapper.toDto(qualityCheckSheetRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder))); Specification<QualityCheckSheetQueryCriteria> specification = new Specification<QualityCheckSheetQueryCriteria>() {
@Override
public Predicate toPredicate(Root<QualityCheckSheetQueryCriteria> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) {
List<Predicate> 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 @Override
public QualityCheckSheetDTO findById(Long id) { public QualityCheckSheetDTO findById(Long id) {
Optional<QualityCheckSheet> qualityCheckSheet = qualityCheckSheetRepository.findById(id); Optional<QualityCheckSheet> invoiceOptional = qualityCheckSheetRepository.findById(id);
ValidationUtil.isNull(qualityCheckSheet,"QualityCheckSheet","id",id); QualityCheckSheet qualityCheckSheet = invoiceOptional.get();
return qualityCheckSheetMapper.toDto(qualityCheckSheet.get()); QualityCheckSheetDTO qualityCheckSheetDTO = qualityCheckSheetMapper.toDto(qualityCheckSheet);
List<QualityCheckSheetProduct> qualityCheckSheetProductList = qualityCheckSheetProductRepository.queryByQualityCheckSheetIdAndStatusTrue(id);
if(!CollectionUtils.isEmpty(qualityCheckSheetProductList)){
List<QualityCheckSheetProductDTO> qualityCheckSheetProductDTOList = qualityCheckSheetProductMapper.toDto(qualityCheckSheetProductList);
qualityCheckSheetDTO.setQualityCheckSheetProductList(qualityCheckSheetProductDTOList);
}
return qualityCheckSheetDTO;
} }
@Override @Override