采购单

pull/451/head
starrysky 2019-10-06 15:07:44 +08:00
parent 74ddeb451e
commit df952efdba
21 changed files with 255 additions and 22 deletions

View File

@ -51,6 +51,18 @@ public class OutSourceInspectionCertificateProduct implements Serializable {
@Column(name = "remark")
private String remark;
// 产品个数
@Column(name = "product_number")
private Integer productNumber;
// 合格数量
@Column(name = "qualified_number")
private Integer qualifiedNumber;
// 报废数量
@Column(name = "scrap_number")
private Integer scrapNumber;
public void copy(OutSourceInspectionCertificateProduct source){
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
}

View File

@ -16,21 +16,22 @@ import java.sql.Timestamp;
public class OutSourceInspectionCertificateProductRequest implements Serializable {
// 所属委外验收单
@Column(name = "out_source_inspection_certificate_id")
private Long outSourceInspectionCertificateId;
@Column(name = "product_code")
private String productCode;
@Column(name = "product_id")
private Long productId;
@Column(name = "product_name")
private String productName;
@Column(name = "remark")
private String remark;
// 合格数量
private Integer qualifiedNumber;
// 报废数量
private Integer scrapNumber;
public void copy(OutSourceInspectionCertificateProductRequest source){
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
}

View File

@ -15,6 +15,9 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.*;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
/**
* @author jie
* @date 2019-10-01
@ -27,14 +30,23 @@ public class OutSourceInspectionCertificateController {
@Autowired
private OutSourceInspectionCertificateService outSourceInspectionCertificateService;
@Log("查询委外验收单")
@ApiOperation(value = "查询委外验收单")
@GetMapping(value = "/outSourceInspectionCertificate")
@Log("分页查询委外验收单")
@ApiOperation(value = "分页查询委外验收单")
@GetMapping(value = "/queryOutSourceInspectionCertificatePageList")
@PreAuthorize("hasAnyRole('ADMIN','SOUTSOURCEINSPECTIONCERTIFICATE_ALL','SOUTSOURCEINSPECTIONCERTIFICATE_SELECT')")
public ResponseEntity getOutSourceInspectionCertificates(OutSourceInspectionCertificateQueryCriteria criteria, Pageable pageable){
public ResponseEntity queryOutSourceInspectionCertificatePageList(OutSourceInspectionCertificateQueryCriteria criteria, Pageable pageable){
return new ResponseEntity(outSourceInspectionCertificateService.queryAll(criteria,pageable),HttpStatus.OK);
}
@Log("查询委外验收单列表")
@ApiOperation(value = "查询委外验收单列表")
@GetMapping(value = "/queryOutSourceInspectionCertificateList")
@PreAuthorize("hasAnyRole('ADMIN','SOUTSOURCEINSPECTIONCERTIFICATE_ALL','SOUTSOURCEINSPECTIONCERTIFICATE_SELECT')")
public ResponseEntity queryOutSourceInspectionCertificateList(OutSourceInspectionCertificateQueryCriteria criteria, Pageable pageable){
return new ResponseEntity(outSourceInspectionCertificateService.queryAll(criteria,pageable),HttpStatus.OK);
}
@Log("新增委外验收单")
@ApiOperation(value = "新增委外验收单")
@PostMapping(value = "/outSourceInspectionCertificate")
@ -62,9 +74,19 @@ public class OutSourceInspectionCertificateController {
}
@Log("查看委外验收单详情")
@ApiOperation(value = "查看委外验收单详情")
@GetMapping(value = "/outSourceInspectionCertificate/{id}")
public ResponseEntity getOutSourceInspectionCertificate(@PathVariable Long id){
return new ResponseEntity(outSourceInspectionCertificateService.findById(id), HttpStatus.OK);
}
@Log("初始化委外验收单编号")
@ApiOperation(value = "初始化委外验收单编号")
@GetMapping(value = "/initOutSourceInspectionCertificateCode")
public ResponseEntity initOutSourceInspectionCertificateCode(){
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS");//设置日期格式
String supplierCode = "OIC"+ LocalDateTime.now().format(fmt);
return new ResponseEntity(supplierCode,HttpStatus.OK);
}
}

View File

@ -72,6 +72,7 @@ public class OutSourceProcessSheetController {
@Log("初始化委外加工单编号")
@ApiOperation(value = "初始化委外加工单编号")
@GetMapping(value = "/initOutSourceProcessSheetCode")
public ResponseEntity initOutSourceProcessSheetCode(){
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS");//设置日期格式
@ -80,13 +81,15 @@ public class OutSourceProcessSheetController {
}
@Log("查看委外加工单")
@ApiOperation(value = "查看委外加工单")
@GetMapping(value = "/outSourceProcessSheet/{id}")
public ResponseEntity getOutSourceProcessSheet(@PathVariable Long id){
return new ResponseEntity(outSourceProcessSheetService.findById(id), HttpStatus.OK);
}
@Log("查看委外加工单产品信息")
@GetMapping(value = "/outSourceProcessSheet/outSourceProcessSheetProduct")
@ApiOperation(value = "查看委外加工单产品信息")
@GetMapping(value = "/queryOutSourceProcessSheetProductList")
public ResponseEntity queryOutSourceProcessSheetProductList(OutSourceProcessSheetProductQueryCriteria criteria){
return new ResponseEntity(outSourceProcessSheetProductService.queryAll(criteria), HttpStatus.OK);
}

View File

@ -1,6 +1,8 @@
package me.zhengjie.modules.wms.outSourceProductSheet.service.dto;
import lombok.Data;
import javax.persistence.Column;
import java.sql.Timestamp;
import java.io.Serializable;
@ -32,4 +34,14 @@ public class OutSourceInspectionCertificateProductDTO implements Serializable {
private String productName;
private String remark;
// 产品个数
private Integer productNumber;
// 合格数量
private Integer qualifiedNumber;
// 报废数量
private Integer scrapNumber;
}

View File

@ -11,5 +11,5 @@ import me.zhengjie.annotation.Query;
@Data
public class OutSourceProcessSheetProductQueryCriteria {
private Long outSOurceProcessSheetId;
private Long outSourceProcessSheetId;
}

View File

@ -76,10 +76,10 @@ public class OutSourceProcessSheetProductServiceImpl implements OutSourceProcess
Predicate statusPredicate = criteriaBuilder.equal(root.get("status"), 1);
targetPredicateList.add(statusPredicate);
Long outSOurceProcessSheetId = criteria.getOutSOurceProcessSheetId();
if(null != outSOurceProcessSheetId){
Predicate outSOurceProcessSheetIdPredicate = criteriaBuilder.equal(root.get("outSOurceProcessSheetId"), 1);
targetPredicateList.add(outSOurceProcessSheetIdPredicate);
Long outSourceProcessSheetId = criteria.getOutSourceProcessSheetId();
if(null != outSourceProcessSheetId){
Predicate outSourceProcessSheetIdPredicate = criteriaBuilder.equal(root.get("outSourceProcessSheetId"), 1);
targetPredicateList.add(outSourceProcessSheetIdPredicate);
}

View File

@ -98,6 +98,13 @@ public class OutSourceProcessSheetServiceImpl implements OutSourceProcessSheetSe
for(OutSourceProcessSheetDTO outSourceProcessSheetDTO : outSourceProcessSheetDTOList){
Timestamp createTime = outSourceProcessSheetDTO.getCreateTime();
outSourceProcessSheetDTO.setCreateTimeStr(new SimpleDateFormat("yyyy-MM-dd").format(createTime));
// 查询对应的委外加工单的产品信息
List<OutSourceProcessSheetProduct> outSourceProcessSheetProductList = outSourceProcessSheetProductRepository.queryByOutSourceProcessSheetIdAndStatusTrue(outSourceProcessSheetDTO.getId());
if(!CollectionUtils.isEmpty(outSourceProcessSheetProductList)){
List<OutSourceProcessSheetProductDTO> outSourceProcessSheetProductDTOList = outSourceProcessSheetProductMapper.toDto(outSourceProcessSheetProductList);
outSourceProcessSheetDTO.setOutSourceProcessSheetProductList(outSourceProcessSheetProductDTOList);
}
}
}
}
@ -197,7 +204,9 @@ public class OutSourceProcessSheetServiceImpl implements OutSourceProcessSheetSe
@Override
@Transactional(rollbackFor = Exception.class)
public void update(UpdateOutSourceProcessSheetRequest updateOutSourceProcessSheetRequest) {
OutSourceProcessSheet outSourceProcessSheet = new OutSourceProcessSheet();
Long outSourceProcessSheetId = updateOutSourceProcessSheetRequest.getId();
Optional<OutSourceProcessSheet> outSourceProcessSheetOptional = outSourceProcessSheetRepository.findById(outSourceProcessSheetId);
OutSourceProcessSheet outSourceProcessSheet = outSourceProcessSheetOptional.get();
BeanUtils.copyProperties(updateOutSourceProcessSheetRequest, outSourceProcessSheet);
outSourceProcessSheet.setStatus(true);

View File

@ -6,6 +6,7 @@ import cn.hutool.core.bean.copier.CopyOptions;
import javax.persistence.*;
import java.sql.Timestamp;
import java.io.Serializable;
import java.util.Date;
/**
* @author jie
@ -54,6 +55,14 @@ public class ConsumablesPurchaseOrder implements Serializable {
@Column(name = "consumables_purchase_order_code")
private String consumablesPurchaseOrderCode;
// 审核时间
@Column(name = "audit_time")
private Date auditTime;
// 审核意见
@Column(name = "audit_opinion")
private String auditOpinion;
public void copy(ConsumablesPurchaseOrder source){
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
}

View File

@ -3,9 +3,12 @@ package me.zhengjie.modules.wms.purchase.domain;
import lombok.Data;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import org.hibernate.annotations.CreationTimestamp;
import javax.persistence.*;
import java.sql.Timestamp;
import java.io.Serializable;
import java.util.Date;
/**
* @author jie
@ -22,9 +25,11 @@ public class ProductPurchaseOrder implements Serializable {
private Long id;
@Column(name = "create_time")
@CreationTimestamp
private Timestamp createTime;
@Column(name = "update_time")
@CreationTimestamp
private Timestamp updateTime;
// 采购人主键
@ -54,6 +59,14 @@ public class ProductPurchaseOrder implements Serializable {
@Column(name = "product_purchase_order_code")
private String productPurchaseOrderCode;
// 审核时间
@Column(name = "audit_time")
private Date auditTime;
// 审核意见
@Column(name = "audit_opinion")
private String auditOpinion;
public void copy(ProductPurchaseOrder source){
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
}

View File

@ -0,0 +1,26 @@
package me.zhengjie.modules.wms.purchase.request;
import lombok.Data;
/**
*
* @author
* @date 2019-10-06
*/
@Data
public class AuditConsumablesPurchaseOrderRequest {
// 主键
private Long id;
// 审核意见
private String auditOpinion;
// 审核人主键
private Long auditUserId;
// 审核人姓名
private String auditUserName;
}

View File

@ -0,0 +1,26 @@
package me.zhengjie.modules.wms.purchase.request;
import lombok.Data;
/**
*
* @author
* @date 2019-10-06
*/
@Data
public class AuditProductPurchaseOrderRequest {
// 主键
private Long id;
// 审核意见
private String auditOpinion;
// 审核人主键
private Long auditUserId;
// 审核人姓名
private String auditUserName;
}

View File

@ -20,15 +20,10 @@ public class CreateProductPurchaseOrderRequest implements Serializable {
// 采购人姓名
private String purchaseUserName;
// 审核人主键
private Long auditUserId;
// 审核人姓名
private String auditUserName;
// 产品采购单单据编号
private String productPurchaseOrderCode;
// 产品采购单商品信息
private List<ProductPurchaseOrderProductRequest> productPurchaseOrderProductList;
public void copy(CreateProductPurchaseOrderRequest source){

View File

@ -2,6 +2,8 @@ package me.zhengjie.modules.wms.purchase.rest;
import me.zhengjie.aop.log.Log;
import me.zhengjie.modules.wms.purchase.domain.ConsumablesPurchaseOrder;
import me.zhengjie.modules.wms.purchase.request.AuditConsumablesPurchaseOrderRequest;
import me.zhengjie.modules.wms.purchase.request.AuditProductPurchaseOrderRequest;
import me.zhengjie.modules.wms.purchase.service.ConsumablesPurchaseOrderService;
import me.zhengjie.modules.wms.purchase.service.dto.ConsumablesPurchaseOrderQueryCriteria;
import org.springframework.beans.factory.annotation.Autowired;
@ -71,6 +73,15 @@ public class ConsumablesPurchaseOrderController {
return new ResponseEntity(HttpStatus.OK);
}
@Log("审核耗材采购单")
@ApiOperation(value = "审核耗材采购单")
@PostMapping(value = "/auditConsumablesPurchaseOrder")
@PreAuthorize("hasAnyRole('ADMIN','PRODUCTPURCHASEORDER_ALL','PRODUCTPURCHASEORDER_DELETE')")
public ResponseEntity auditConsumablesPurchaseOrder(@Validated @RequestBody AuditConsumablesPurchaseOrderRequest auditConsumablesPurchaseOrderRequest){
consumablesPurchaseOrderService.auditConsumablesPurchaseOrder(auditConsumablesPurchaseOrderRequest);
return new ResponseEntity(HttpStatus.OK);
}
@Log("初始化耗材采购单编号")
@GetMapping(value = "/initConsumablesPurchaseOrderCode")
public ResponseEntity initConsumablesPurchaseOrderCode(){

View File

@ -2,6 +2,7 @@ package me.zhengjie.modules.wms.purchase.rest;
import me.zhengjie.aop.log.Log;
import me.zhengjie.modules.wms.purchase.domain.ProductPurchaseOrder;
import me.zhengjie.modules.wms.purchase.request.AuditProductPurchaseOrderRequest;
import me.zhengjie.modules.wms.purchase.request.CreateProductPurchaseOrderRequest;
import me.zhengjie.modules.wms.purchase.service.ProductPurchaseOrderService;
import me.zhengjie.modules.wms.purchase.service.dto.ProductPurchaseOrderQueryCriteria;
@ -64,6 +65,16 @@ public class ProductPurchaseOrderController {
return new ResponseEntity(HttpStatus.OK);
}
@Log("审核产品采购单")
@ApiOperation(value = "审核产品采购单")
@PostMapping(value = "/auditProductPurchaseOrder")
@PreAuthorize("hasAnyRole('ADMIN','PRODUCTPURCHASEORDER_ALL','PRODUCTPURCHASEORDER_DELETE')")
public ResponseEntity auditProductPurchaseOrder(@Validated @RequestBody AuditProductPurchaseOrderRequest auditProductPurchaseOrderRequest){
productPurchaseOrderService.auditProductPurchaseOrder(auditProductPurchaseOrderRequest);
return new ResponseEntity(HttpStatus.OK);
}
@Log("初始化产品采购单编号")
@GetMapping(value = "/initProductPurchaseOrderCode")
public ResponseEntity initProductPurchaseOrderCode(){

View File

@ -1,6 +1,7 @@
package me.zhengjie.modules.wms.purchase.service;
import me.zhengjie.modules.wms.purchase.domain.ConsumablesPurchaseOrder;
import me.zhengjie.modules.wms.purchase.request.AuditConsumablesPurchaseOrderRequest;
import me.zhengjie.modules.wms.purchase.service.dto.ConsumablesPurchaseOrderDTO;
import me.zhengjie.modules.wms.purchase.service.dto.ConsumablesPurchaseOrderQueryCriteria;
//import org.springframework.cache.annotation.CacheConfig;
@ -61,4 +62,7 @@ public interface ConsumablesPurchaseOrderService {
*/
//@CacheEvict(allEntries = true)
void delete(Long id);
void auditConsumablesPurchaseOrder(AuditConsumablesPurchaseOrderRequest auditConsumablesPurchaseOrderRequest);
}

View File

@ -1,6 +1,7 @@
package me.zhengjie.modules.wms.purchase.service;
import me.zhengjie.modules.wms.purchase.domain.ProductPurchaseOrder;
import me.zhengjie.modules.wms.purchase.request.AuditProductPurchaseOrderRequest;
import me.zhengjie.modules.wms.purchase.request.CreateProductPurchaseOrderRequest;
import me.zhengjie.modules.wms.purchase.service.dto.ProductPurchaseOrderDTO;
import me.zhengjie.modules.wms.purchase.service.dto.ProductPurchaseOrderQueryCriteria;
@ -62,4 +63,10 @@ public interface ProductPurchaseOrderService {
*/
//@CacheEvict(allEntries = true)
void delete(Long id);
/**
*
* @param auditProductPurchaseOrderRequest
*/
void auditProductPurchaseOrder(AuditProductPurchaseOrderRequest auditProductPurchaseOrderRequest);
}

View File

@ -3,6 +3,8 @@ package me.zhengjie.modules.wms.purchase.service.dto;
import lombok.Data;
import java.sql.Timestamp;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
@ -37,4 +39,10 @@ public class ConsumablesPurchaseOrderDTO implements Serializable {
// 耗材采购单单据编号
private String consumablesPurchaseOrderCode;
private String auditOpinion;
private Date auditTime;
private List<ConsumablesPurchaseOrderProductDTO> consumablesPurchaseOrderProductList;
}

View File

@ -3,6 +3,7 @@ package me.zhengjie.modules.wms.purchase.service.dto;
import lombok.Data;
import java.sql.Timestamp;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
@ -38,6 +39,10 @@ public class ProductPurchaseOrderDTO implements Serializable {
private String productPurchaseOrderCode;
private String auditOpinion;
private Date auditTime;
//产品采购单产品信息
private List<ProductPurchaseOrderProductDTO> productPurchaseOrderProductList;
}

View File

@ -2,6 +2,8 @@ package me.zhengjie.modules.wms.purchase.service.impl;
import me.zhengjie.modules.wms.purchase.domain.ConsumablesPurchaseOrder;
import me.zhengjie.modules.wms.purchase.domain.ProductPurchaseOrder;
import me.zhengjie.modules.wms.purchase.request.AuditConsumablesPurchaseOrderRequest;
import me.zhengjie.modules.wms.purchase.request.AuditProductPurchaseOrderRequest;
import me.zhengjie.utils.ValidationUtil;
import me.zhengjie.modules.wms.purchase.repository.ConsumablesPurchaseOrderRepository;
import me.zhengjie.modules.wms.purchase.service.ConsumablesPurchaseOrderService;
@ -14,7 +16,9 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.security.Timestamp;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Optional;
import org.springframework.data.domain.Page;
@ -113,6 +117,33 @@ public class ConsumablesPurchaseOrderServiceImpl implements ConsumablesPurchaseO
consumablesPurchaseOrderRepository.save(consumablesPurchaseOrder);
}
/**
*
* @param auditConsumablesPurchaseOrderRequest
*/
@Override
@Transactional(rollbackFor = Exception.class)
public void auditConsumablesPurchaseOrder(AuditConsumablesPurchaseOrderRequest auditConsumablesPurchaseOrderRequest) {
Long id = auditConsumablesPurchaseOrderRequest.getId();
Long auditUserId = auditConsumablesPurchaseOrderRequest.getAuditUserId();
String auditUserName = auditConsumablesPurchaseOrderRequest.getAuditUserName();
String auditOpinion = auditConsumablesPurchaseOrderRequest.getAuditOpinion();
Optional<ConsumablesPurchaseOrder> optionalProductPurchaseOrder = consumablesPurchaseOrderRepository.findById(id);
ValidationUtil.isNull( optionalProductPurchaseOrder,"ProductPurchaseOrder","id",id);
ConsumablesPurchaseOrder consumablesPurchaseOrder = optionalProductPurchaseOrder.get();
consumablesPurchaseOrder.setAuditUserId(auditUserId);
consumablesPurchaseOrder.setAuditUserName(auditUserName);
consumablesPurchaseOrder.setAuditOpinion(auditOpinion);
Date date = new Date();
consumablesPurchaseOrder.setAuditTime(date);
consumablesPurchaseOrderRepository.save(consumablesPurchaseOrder);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(Long id) {

View File

@ -10,6 +10,7 @@ import me.zhengjie.modules.wms.outSourceProductSheet.service.dto.OutSourceProces
import me.zhengjie.modules.wms.purchase.domain.ProductPurchaseOrder;
import me.zhengjie.modules.wms.purchase.domain.ProductPurchaseOrderProduct;
import me.zhengjie.modules.wms.purchase.repository.ProductPurchaseOrderProductRepository;
import me.zhengjie.modules.wms.purchase.request.AuditProductPurchaseOrderRequest;
import me.zhengjie.modules.wms.purchase.request.CreateProductPurchaseOrderRequest;
import me.zhengjie.modules.wms.purchase.request.ProductPurchaseOrderProductRequest;
import me.zhengjie.modules.wms.purchase.service.dto.ProductPurchaseOrderProductDTO;
@ -28,6 +29,7 @@ import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Optional;
import org.springframework.data.domain.Page;
@ -180,4 +182,30 @@ public class ProductPurchaseOrderServiceImpl implements ProductPurchaseOrderServ
public void delete(Long id) {
productPurchaseOrderRepository.deleteById(id);
}
/**
*
* @param auditProductPurchaseOrderRequest
*/
@Override
@Transactional(rollbackFor = Exception.class)
public void auditProductPurchaseOrder(AuditProductPurchaseOrderRequest auditProductPurchaseOrderRequest) {
Long id = auditProductPurchaseOrderRequest.getId();
Long auditUserId = auditProductPurchaseOrderRequest.getAuditUserId();
String auditUserName = auditProductPurchaseOrderRequest.getAuditUserName();
String auditOpinion = auditProductPurchaseOrderRequest.getAuditOpinion();
Optional<ProductPurchaseOrder> optionalProductPurchaseOrder = productPurchaseOrderRepository.findById(id);
ValidationUtil.isNull( optionalProductPurchaseOrder,"ProductPurchaseOrder","id",id);
ProductPurchaseOrder productPurchaseOrder = optionalProductPurchaseOrder.get();
productPurchaseOrder.setAuditUserId(auditUserId);
productPurchaseOrder.setAuditUserName(auditUserName);
productPurchaseOrder.setAuditOpinion(auditOpinion);
Date auditDate = new Date();
productPurchaseOrder.setAuditTime(auditDate);
productPurchaseOrderRepository.save(productPurchaseOrder);
}
}