diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/customerOrder/service/impl/CustomerOrderServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/customerOrder/service/impl/CustomerOrderServiceImpl.java index 3d6aaef3..d6999fb1 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/customerOrder/service/impl/CustomerOrderServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/customerOrder/service/impl/CustomerOrderServiceImpl.java @@ -153,13 +153,17 @@ public class CustomerOrderServiceImpl implements CustomerOrderService { throw new BadRequestException("产品" + repeatProductCodeStr + "请合并为一条记录"); } + Long totalMoney = 0L; //插入客户订单对应的产品信息 List customerOrderProductRequestList = createCustomerOrderRequest.getCustomerOrderProductList(); + + if(CollectionUtils.isEmpty(customerOrderProductRequestList)){ throw new BadRequestException("订单产品不能为空!"); } + CustomerOrder customerOrder = new CustomerOrder(); BeanUtils.copyProperties(createCustomerOrderRequest, customerOrder); customerOrder.setStatus(true); diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/request/UpdateInvoiceRequest.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/request/UpdateInvoiceRequest.java index 397fbfec..c2c0ea80 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/request/UpdateInvoiceRequest.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/request/UpdateInvoiceRequest.java @@ -6,8 +6,14 @@ import lombok.Data; import me.zhengjie.modules.wms.invoice.domain.Invoice; import me.zhengjie.modules.wms.invoice.domain.InvoiceProduct; import me.zhengjie.modules.wms.invoice.service.dto.InvoiceProductDTO; +import org.hibernate.annotations.CreationTimestamp; +import javax.persistence.Column; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; import java.io.Serializable; +import java.sql.Timestamp; import java.util.List; /** @@ -16,9 +22,12 @@ import java.util.List; */ @Data public class UpdateInvoiceRequest implements Serializable { - // 主键 private Long id; + private Timestamp createTime; + + private Timestamp updateTime; + // 客户订单编号 private String customerOrderCode; @@ -37,15 +46,22 @@ public class UpdateInvoiceRequest implements Serializable { // 物流公司 private String logisticsCompany; + // 物流单号 + private String logisticsCode; + // 销售发货单号 private String saleInvoiceCode; + // 状态 + private Boolean status; + // 备注 private String remark; - // 客户ID private Long customerId; + private String customerName; + private List invoiceProductList; public void copy(Invoice source){ diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/service/dto/InvoiceProductDTO.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/service/dto/InvoiceProductDTO.java index 4f39d195..efb02928 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/service/dto/InvoiceProductDTO.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/service/dto/InvoiceProductDTO.java @@ -44,6 +44,8 @@ public class InvoiceProductDTO implements Serializable { // 瘦瘦金额 private Long salePrice; + private Long unitPrice; + // 备注 private String remark; } \ No newline at end of file diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/service/impl/InvoiceServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/service/impl/InvoiceServiceImpl.java index c8ef059e..2086af39 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/service/impl/InvoiceServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/service/impl/InvoiceServiceImpl.java @@ -7,6 +7,7 @@ import me.zhengjie.modules.wms.bd.repository.CustomerInfoRepository; import me.zhengjie.modules.wms.bd.repository.ProductInfoRepository; import me.zhengjie.modules.wms.customerOrder.domain.CustomerOrder; import me.zhengjie.modules.wms.customerOrder.domain.CustomerOrderProduct; +import me.zhengjie.modules.wms.customerOrder.request.CustomerOrderProductRequest; import me.zhengjie.modules.wms.customerOrder.service.dto.CustomerOrderDTO; import me.zhengjie.modules.wms.customerOrder.service.dto.CustomerOrderProductDTO; import me.zhengjie.modules.wms.invoice.domain.Invoice; @@ -32,10 +33,7 @@ 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; -import java.util.Optional; +import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; @@ -203,6 +201,39 @@ public class InvoiceServiceImpl implements InvoiceService { throw new BadRequestException("发货单产品信息不能为空!"); } + // 校验 + for(InvoiceProduct invoiceProduct : invoiceProductRequestList){ + String productCode = invoiceProduct.getProductCode(); + if(StringUtils.isEmpty(productCode)){ + throw new BadRequestException("产品编号不能为空!"); + } + String productName = invoiceProduct.getProductName(); + if(StringUtils.isEmpty(productName)){ + throw new BadRequestException("产品编号" + productCode+"对应的产品名称不能为空!"); + } + String specifications = invoiceProduct.getSpecifications(); + if(StringUtils.isEmpty(specifications)){ + throw new BadRequestException("产品编号" + productCode+"对应的产品规格不能为空!"); + } + Long unitPrice = invoiceProduct.getUnitPrice(); + if(null == unitPrice){ + throw new BadRequestException("产品编号" + productCode+"对应的产品单价不能为空!"); + } + Long customerOrderNumber = invoiceProduct.getCustomerOrderNumber(); + if(null == customerOrderNumber){ + throw new BadRequestException("产品编号" + productCode+"对应的订单数量不能为空!"); + } + Long actualInvoiceNumber = invoiceProduct.getActualInvoiceNumber(); + if(null == actualInvoiceNumber){ + throw new BadRequestException("产品编号" + productCode+"对应的实发数量不能为空!"); + } + Long salePrice = invoiceProduct.getSalePrice(); + if(null == salePrice){ + throw new BadRequestException("产品编号" + productCode+"对应的销售金额不能为空!"); + } + + } + BeanUtils.copyProperties(createInvoiceRequest, invoice); invoice.setStatus(true); invoiceRepository.save(invoice); @@ -249,9 +280,18 @@ public class InvoiceServiceImpl implements InvoiceService { throw new BadRequestException("产品" + repeatProductCodeStr + "请合并为一条记录"); } + Optional invoiceOptional = invoiceRepository.findById(updateInvoiceRequest.getId()); + ValidationUtil.isNull(invoiceOptional,"SInvoice","id",updateInvoiceRequest.getId()); + Invoice invoiceOrigin = invoiceOptional.get(); + + Invoice invoice = new Invoice(); BeanUtils.copyProperties(updateInvoiceRequest, invoice); // 修改发货单概要信息 + invoice.setCreateTime(invoiceOrigin.getCreateTime()); + Timestamp updateTime = new Timestamp(System.currentTimeMillis()); + invoice.setUpdateTime(updateTime); + invoice.setStatus(true); invoiceRepository.save(invoice); // 修改产品信息之前,查询该订单中原来的产品信息,key为产品code