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 97fda329..f53c8626 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 @@ -10,9 +10,6 @@ import me.zhengjie.modules.system.domain.Message; import me.zhengjie.modules.system.domain.User; import me.zhengjie.modules.system.repository.MessageRepository; import me.zhengjie.modules.system.repository.UserRepository; -import me.zhengjie.modules.system.service.UserService; -import me.zhengjie.modules.system.service.dto.UserDTO; -import me.zhengjie.modules.system.service.dto.UserQueryCriteria; import me.zhengjie.modules.wms.bd.domain.CustomerInfo; import me.zhengjie.modules.wms.bd.domain.ProductInfo; import me.zhengjie.modules.wms.bd.repository.CustomerInfoRepository; @@ -21,9 +18,6 @@ import me.zhengjie.modules.wms.customerOrder.domain.CustomerOrder; import me.zhengjie.modules.wms.customerOrder.domain.CustomerOrderProduct; import me.zhengjie.modules.wms.customerOrder.repository.CustomerOrderProductRepository; import me.zhengjie.modules.wms.customerOrder.repository.CustomerOrderRepository; -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; import me.zhengjie.modules.wms.invoice.domain.InvoiceProduct; import me.zhengjie.modules.wms.invoice.repository.InvoiceProductRepository; @@ -32,6 +26,8 @@ import me.zhengjie.modules.wms.invoice.request.UpdateInvoiceRequest; import me.zhengjie.modules.wms.invoice.service.dto.InvoiceDetailDTO; import me.zhengjie.modules.wms.invoice.service.dto.InvoiceProductDTO; import me.zhengjie.modules.wms.invoice.service.mapper.InvoiceProductMapper; +import me.zhengjie.modules.wms.sr.productCount.domain.ProductCount; +import me.zhengjie.modules.wms.sr.productCount.repository.ProductCountRepository; import me.zhengjie.utils.*; import me.zhengjie.modules.wms.invoice.repository.InvoiceRepository; import me.zhengjie.modules.wms.invoice.service.InvoiceService; @@ -101,6 +97,9 @@ public class InvoiceServiceImpl implements InvoiceService { @Autowired private UserRepository userRepository; + @Autowired + private ProductCountRepository productCountRepository; + @Override public Object queryAll(InvoiceQueryCriteria criteria, Pageable pageable){ Specification specification = new Specification() { @@ -302,6 +301,18 @@ public class InvoiceServiceImpl implements InvoiceService { invoiceProduct.setCustomerOrderCode(customerOrderCode); invoiceProduct.setProductId(productInfo.getId()); invoiceProductRepository.save(invoiceProduct); + + //TODO 发货之后,扣除统计数据 + ProductCount productCount = productCountRepository.findByProductCode(productCode); + if(null != productCount){ + Long dphNumber = productCount.getDphNumber(); + // 剩余数量 + long syNumber = dphNumber - invoiceProduct.getActualInvoiceNumber(); + if(syNumber<0){ + syNumber = 0; + } + productCountRepository.updateDphNumber(dphNumber, productCode); + } } List invoiceProductList = invoiceProductRepository.findByInvoiceIdAndStatusTrue(invoice.getId()); @@ -321,8 +332,6 @@ public class InvoiceServiceImpl implements InvoiceService { * 比较是否完成 */ - - /** * 新增消息通知 */ diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/outSourceProductSheet/service/impl/OutSourceInspectionCertificateServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/outSourceProductSheet/service/impl/OutSourceInspectionCertificateServiceImpl.java index 8d7419d6..8e6eb58b 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/outSourceProductSheet/service/impl/OutSourceInspectionCertificateServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/outSourceProductSheet/service/impl/OutSourceInspectionCertificateServiceImpl.java @@ -24,6 +24,8 @@ import me.zhengjie.modules.wms.outSourceProductSheet.repository.OutSourceProcess import me.zhengjie.modules.wms.outSourceProductSheet.request.*; import me.zhengjie.modules.wms.outSourceProductSheet.service.dto.*; import me.zhengjie.modules.wms.outSourceProductSheet.service.mapper.OutSourceInspectionCertificateProductMapper; +import me.zhengjie.modules.wms.sr.productCount.domain.ProductCount; +import me.zhengjie.modules.wms.sr.productCount.repository.ProductCountRepository; import me.zhengjie.utils.*; import me.zhengjie.modules.wms.outSourceProductSheet.repository.OutSourceInspectionCertificateRepository; import me.zhengjie.modules.wms.outSourceProductSheet.service.OutSourceInspectionCertificateService; @@ -83,6 +85,9 @@ public class OutSourceInspectionCertificateServiceImpl implements OutSourceInspe @Autowired private OutSourceProcessSheetRepository outSourceProcessSheetRepository; + @Autowired + private ProductCountRepository productCountRepository; + @Override public Object queryAll(OutSourceInspectionCertificateQueryCriteria criteria, Pageable pageable){ Specification specification = new Specification() { @@ -183,6 +188,20 @@ public class OutSourceInspectionCertificateServiceImpl implements OutSourceInspe outSourceInspectionCertificateProduct.setOutSourceInspectionCertificateCode(outSourceInspectionCertificateCode); outSourceInspectionCertificateProduct.setOutSourceInspectionCertificateId(outSourceInspectionCertificate.getId()); outSourceInspectionCertificateProductRepository.save(outSourceInspectionCertificateProduct); + + String productCode = outSourceInspectionCertificateProduct.getProductCode(); + + //TODO 发货之后,扣除统计数据 + ProductCount productCount = productCountRepository.findByProductCode(productCode); + if(null != productCount){ + Long dphNumber = productCount.getDphNumber(); + // 剩余数量 + long syNumber = dphNumber - outSourceInspectionCertificateProduct.getQualifiedNumber(); + if(syNumber<0){ + syNumber = 0; + } + productCountRepository.updateDphNumber(dphNumber, productCode); + } } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/sr/productCount/domain/ProductCount.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/sr/productCount/domain/ProductCount.java index ff9467f5..ab72933b 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/sr/productCount/domain/ProductCount.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/sr/productCount/domain/ProductCount.java @@ -29,6 +29,9 @@ public class ProductCount implements Serializable { @Column(name = "product_name") private String productName; + @Column(name = "product_code") + private String productCode; + @Column(name = "total_number") private Long totalNumber; diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/sr/productCount/repository/ProductCountRepository.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/sr/productCount/repository/ProductCountRepository.java index d7ed9c99..8d148ff5 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/sr/productCount/repository/ProductCountRepository.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/sr/productCount/repository/ProductCountRepository.java @@ -3,6 +3,8 @@ package me.zhengjie.modules.wms.sr.productCount.repository; import me.zhengjie.modules.wms.sr.productCount.domain.ProductCount; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; /** * @author jie @@ -11,4 +13,10 @@ import org.springframework.data.jpa.repository.JpaSpecificationExecutor; public interface ProductCountRepository extends JpaRepository, JpaSpecificationExecutor { ProductCount findByProductId(Long productId); + + ProductCount findByProductCode(String productCode); + + @Modifying + @Query(value = "update sr_product_count set dph_number = 1 where product_code = ?2", nativeQuery = true) + void updateDphNumber(long dphNumber, String productCode); } \ No newline at end of file diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/sr/productCount/service/dto/ProductCountDTO.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/sr/productCount/service/dto/ProductCountDTO.java index 9c0e7566..366eff9c 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/sr/productCount/service/dto/ProductCountDTO.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/sr/productCount/service/dto/ProductCountDTO.java @@ -24,6 +24,8 @@ public class ProductCountDTO implements Serializable { private String productName; + private String productCode; + private Long totalNumber; private Timestamp gmtCreate;