Compare commits

..

5 Commits

Author SHA1 Message Date
kuang.yife 7bc7523ad5 退款单返回商品图片url+remark字段 2024-09-26 10:14:52 +08:00
kuang.yife d333f11d34 返回图片 2024-09-23 14:57:41 +08:00
kuang.yife 5983990437 增加remark返回 2024-09-23 10:24:41 +08:00
kuang.yife 566dcee471 返回url 2024-09-20 10:44:09 +08:00
kuang.yife 6e0d89039c fix 2024-09-19 18:20:15 +08:00
10 changed files with 83 additions and 4 deletions

View File

@ -45,6 +45,8 @@ public class ShipmentsDataBO {
private String productModel;
private String imageUrl;
private String productColor;
private Integer stock;

View File

@ -56,6 +56,8 @@ public class ProductStockKeepUnitVO {
private String extendInfo;
private String imageUrl;
@JsonSerialize(using = BigDecimalSerializerBO.class)
private BigDecimal retailPrice;

View File

@ -10,6 +10,7 @@ import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
@Data
@Builder
@ -44,6 +45,8 @@ public class ProductVO {
private BigDecimal productStock;
private List<String> productImgList;
@JsonSerialize(using = BigDecimalSerializerBO.class)
private BigDecimal purchasePrice;

View File

@ -51,6 +51,8 @@ public class ReceiptDetailVO {
private Integer productNumber;
private String imageUrl;
private Integer stock;
@JsonSerialize(using = BigDecimalSerializerBO.class)

View File

@ -42,6 +42,8 @@ public class RetailRefundVO {
private String productInfo;
private String remark;
private String operator;
private Integer productNumber;

View File

@ -41,6 +41,8 @@ public class RetailShipmentsVO {
private String productInfo;
private String remark;
private String operator;
private Integer productNumber;

View File

@ -49,6 +49,7 @@ import java.math.RoundingMode;
import java.time.LocalDateTime;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
@Service
@Slf4j
@ -327,6 +328,14 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
ProductVO productVO = new ProductVO();
BeanUtils.copyProperties(item, productVO);
// 填充图片信息
var productImgList = productImageService.lambdaQuery()
.select(ProductImage::getImageUrl)
.eq(ProductImage::getDeleteFlag, CommonConstants.NOT_DELETED)
.eq(ProductImage::getProductId, item.getId())
.list();
productVO.setProductImgList(productImgList.stream().map(ProductImage::getImageUrl).collect(Collectors.toList()));
var productCategoryName = productCategoryService.lambdaQuery()
.eq(ProductCategory::getId, item.getProductCategoryId())
.eq(ProductCategory::getDeleteFlag, CommonConstants.NOT_DELETED)

View File

@ -16,8 +16,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wansenai.dto.product.QueryProductStockKeepUnitDTO;
import com.wansenai.entities.product.ProductImage;
import com.wansenai.entities.product.ProductStock;
import com.wansenai.mappers.product.ProductStockMapper;
import com.wansenai.service.product.ProductImageService;
import com.wansenai.service.product.ProductStockService;
import com.wansenai.service.user.ISysUserService;
import com.wansenai.service.warehouse.WarehouseService;
@ -28,6 +30,7 @@ import com.wansenai.vo.product.ProductStockVO;
import com.wansenai.vo.report.ProductStockSkuVO;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
@ -43,17 +46,32 @@ public class ProductStockServiceImpl extends ServiceImpl<ProductStockMapper, Pro
private final ISysUserService userService;
public ProductStockServiceImpl(WarehouseService warehouseService, ProductStockMapper productStockMapper, RedisUtil redisUtil, ISysUserService userService) {
private final ProductImageService productImageService;
public ProductStockServiceImpl(WarehouseService warehouseService, ProductStockMapper productStockMapper, RedisUtil redisUtil, ISysUserService userService,
ProductImageService productImageService) {
this.warehouseService = warehouseService;
this.productStockMapper = productStockMapper;
this.redisUtil = redisUtil;
this.userService = userService;
this.productImageService = productImageService;
}
@Override
public IPage<ProductStockKeepUnitVO> getProductExtendPriceInfo(QueryProductStockKeepUnitDTO priceDTO) {
var page = new Page<QueryProductStockKeepUnitDTO>(priceDTO.getPage(), priceDTO.getPageSize());
return productStockMapper.getProductSkuList(page, priceDTO);
IPage<ProductStockKeepUnitVO> iPage = productStockMapper.getProductSkuList(page, priceDTO);
iPage.getRecords().forEach(model->{
if(model.getProductId() != null){
List<ProductImage> imgList = productImageService.lambdaQuery().select(ProductImage::getImageUrl)
.eq(ProductImage::getProductId, model.getProductId())
.list();
if(!CollectionUtils.isEmpty(imgList)){
model.setImageUrl(imgList.get(0).getImageUrl());
}
}
});
return iPage;
}
@Override

View File

@ -28,6 +28,7 @@ import com.wansenai.dto.receipt.retail.RetailRefundDTO;
import com.wansenai.dto.receipt.retail.RetailShipmentsDTO;
import com.wansenai.dto.system.SystemMessageDTO;
import com.wansenai.entities.financial.FinancialAccount;
import com.wansenai.entities.product.ProductImage;
import com.wansenai.entities.product.ProductStock;
import com.wansenai.entities.product.ProductStockKeepUnit;
import com.wansenai.entities.receipt.ReceiptRetailMain;
@ -40,6 +41,7 @@ import com.wansenai.mappers.receipt.ReceiptRetailMainMapper;
import com.wansenai.mappers.system.SysFileMapper;
import com.wansenai.service.common.CommonService;
import com.wansenai.service.financial.IFinancialAccountService;
import com.wansenai.service.product.ProductImageService;
import com.wansenai.service.product.ProductService;
import com.wansenai.service.receipt.ReceiptRetailService;
import com.wansenai.service.receipt.ReceiptRetailSubService;
@ -62,6 +64,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.io.IOException;
@ -97,7 +100,13 @@ public class ReceiptRetailServiceImpl extends ServiceImpl<ReceiptRetailMainMappe
private final RedisUtil redisUtil;
public ReceiptRetailServiceImpl(ReceiptRetailMainMapper receiptRetailMainMapper, ReceiptRetailSubService receiptRetailSubService, IFinancialAccountService accountService, ISysUserService userService, SysFileMapper fileMapper, ProductStockMapper productStockMapper, ProductStockKeepUnitMapper productStockKeepUnitMapper, ProductService productService, CommonService commonService, ISysMsgService messageService, RedisUtil redisUtil) {
private final ProductImageService productImageService;
public ReceiptRetailServiceImpl(ReceiptRetailMainMapper receiptRetailMainMapper, ReceiptRetailSubService receiptRetailSubService,
IFinancialAccountService accountService, ISysUserService userService, SysFileMapper fileMapper,
ProductStockMapper productStockMapper, ProductStockKeepUnitMapper productStockKeepUnitMapper,
ProductService productService, CommonService commonService, ISysMsgService messageService, RedisUtil redisUtil,
ProductImageService productImageService) {
this.receiptRetailMainMapper = receiptRetailMainMapper;
this.receiptRetailSubService = receiptRetailSubService;
this.accountService = accountService;
@ -109,6 +118,7 @@ public class ReceiptRetailServiceImpl extends ServiceImpl<ReceiptRetailMainMappe
this.commonService = commonService;
this.messageService = messageService;
this.redisUtil = redisUtil;
this.productImageService = productImageService;
}
private String getAccountName(Long accountId) {
@ -216,6 +226,8 @@ public class ReceiptRetailServiceImpl extends ServiceImpl<ReceiptRetailMainMappe
.warehouseId(item.getWarehouseId())
.build();
var data = productStockMapper.getProductSkuByBarCode(item.getProductBarcode(), item.getWarehouseId());
var img = productImageService.lambdaQuery().select(ProductImage::getImageUrl)
.eq(ProductImage::getProductId, item.getProductId()).list();
if (data != null) {
shipmentBo.setWarehouseId(data.getWarehouseId());
shipmentBo.setProductName(data.getProductName());
@ -228,6 +240,10 @@ public class ReceiptRetailServiceImpl extends ServiceImpl<ReceiptRetailMainMappe
if (data.getWarehouseId() != null) {
shipmentBo.setWarehouseName(commonService.getWarehouseName(data.getWarehouseId()));
}
if(!CollectionUtils.isEmpty(img)){
shipmentBo.setImageUrl(img.get(0).getImageUrl());
}
}
return shipmentBo;
}
@ -298,6 +314,7 @@ public class ReceiptRetailServiceImpl extends ServiceImpl<ReceiptRetailMainMappe
.receiptNumber(item.getReceiptNumber())
.receiptDate(item.getReceiptDate())
.productInfo(item.getRemark())
.remark(item.getRemark())
.operator(crateBy)
.productNumber(productNumber)
.totalPrice(item.getTotalAmount())
@ -808,6 +825,7 @@ public class ReceiptRetailServiceImpl extends ServiceImpl<ReceiptRetailMainMappe
.receiptNumber(item.getReceiptNumber())
.receiptDate(item.getReceiptDate())
.productInfo(item.getRemark())
.remark(item.getRemark())
.operator(crateBy)
.productNumber(productNumber)
.totalPrice(item.getTotalAmount())

View File

@ -25,6 +25,7 @@ import com.wansenai.entities.financial.FinancialAccount;
import com.wansenai.entities.financial.FinancialMain;
import com.wansenai.entities.financial.FinancialSub;
import com.wansenai.entities.product.Product;
import com.wansenai.entities.product.ProductImage;
import com.wansenai.entities.receipt.*;
import com.wansenai.entities.user.SysUser;
import com.wansenai.mappers.financial.FinancialMainMapper;
@ -35,6 +36,7 @@ import com.wansenai.service.basic.MemberService;
import com.wansenai.service.basic.SupplierService;
import com.wansenai.service.common.CommonService;
import com.wansenai.service.financial.IFinancialAccountService;
import com.wansenai.service.product.ProductImageService;
import com.wansenai.service.product.ProductService;
import com.wansenai.service.receipt.*;
import com.wansenai.service.user.ISysUserService;
@ -49,6 +51,7 @@ import com.wansenai.vo.receipt.ReceiptVO;
import com.wansenai.vo.receipt.retail.StatisticalDataVO;
import com.wansenai.vo.report.*;
import jakarta.servlet.http.HttpServletResponse;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
@ -89,6 +92,8 @@ public class ReceiptServiceImpl implements ReceiptService {
private final ProductService productService;
private final ProductImageService productImageService;
private final ProductStockMapper productStockMapper;
private final IFinancialAccountService accountService;
@ -99,7 +104,13 @@ public class ReceiptServiceImpl implements ReceiptService {
private final FinancialSubMapper financialSubMapper;
public ReceiptServiceImpl(ReceiptRetailService receiptRetailService, ReceiptRetailSubService receiptRetailSubService, ReceiptSaleService receiptSaleService, ReceiptSaleSubService receiptSaleSubService, ReceiptPurchaseService receiptPurchaseService, ReceiptPurchaseSubService receiptPurchaseSubService, MemberService memberService, CustomerService customerService, SupplierService supplierService, ISysUserService userService, ProductService productService, ProductStockMapper productStockMapper, IFinancialAccountService accountService, CommonService commonService, FinancialMainMapper financialMainMapper, FinancialSubMapper financialSubMapper) {
public ReceiptServiceImpl(ReceiptRetailService receiptRetailService, ReceiptRetailSubService receiptRetailSubService,
ReceiptSaleService receiptSaleService, ReceiptSaleSubService receiptSaleSubService,
ReceiptPurchaseService receiptPurchaseService, ReceiptPurchaseSubService receiptPurchaseSubService,
MemberService memberService, CustomerService customerService, SupplierService supplierService,
ISysUserService userService, ProductService productService, ProductStockMapper productStockMapper,
IFinancialAccountService accountService, CommonService commonService, FinancialMainMapper financialMainMapper,
FinancialSubMapper financialSubMapper,ProductImageService productImageService) {
this.receiptRetailService = receiptRetailService;
this.receiptRetailSubService = receiptRetailSubService;
this.receiptSaleService = receiptSaleService;
@ -116,6 +127,7 @@ public class ReceiptServiceImpl implements ReceiptService {
this.commonService = commonService;
this.financialMainMapper = financialMainMapper;
this.financialSubMapper = financialSubMapper;
this.productImageService = productImageService;
}
@Override
@ -594,6 +606,14 @@ public class ReceiptServiceImpl implements ReceiptService {
receiptDetailVO.setProductStandard(productVO.getProductStandard());
receiptDetailVO.setProductModel(productVO.getProductModel());
receiptDetailVO.setUnit(productVO.getProductUnit());
// 查图片
List<ProductImage> imageUrlList = productImageService.lambdaQuery()
.eq(ProductImage::getProductId, productVO.getProductId())
.list();
if(CollectionUtils.isNotEmpty(imageUrlList)){
receiptDetailVO.setImageUrl(imageUrlList.get(0).getImageUrl());
}
}
// 查询库存
var stock = productStockMapper.getProductSkuByBarCode(item.getProductBarcode(), item.getWarehouseId());
@ -601,6 +621,7 @@ public class ReceiptServiceImpl implements ReceiptService {
receiptDetailVO.setStock(stock.getStock());
}
receiptDetailVos.add(receiptDetailVO);
});