8 天以前 69e0f44e279f7763fa9c9a4d105f154db39ee1d8
src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java
@@ -19,6 +19,7 @@
import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
import com.ruoyi.sales.mapper.ShippingInfoMapper;
import com.ruoyi.sales.mapper.ShippingProductDetailMapper;
import com.ruoyi.sales.pojo.SalesLedgerProduct;
import com.ruoyi.sales.pojo.ShippingInfo;
import com.ruoyi.sales.pojo.ShippingProductDetail;
import com.ruoyi.sales.service.ShippingInfoService;
@@ -27,6 +28,7 @@
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.List;
/**
@@ -127,6 +129,10 @@
    @Override
    public boolean add(ShippingInfoDto req) {
        if (CollectionUtils.isEmpty(req.getBatchNoDetailList())) {
            throw new RuntimeException("发货明细不能为空");
        }
//        normalizeShippingQuantity(req.getBatchNoDetailList(), req.getSalesLedgerProductId());
        this.save(req);
        req.getBatchNoDetailList().forEach(item -> item.setShippingInfoId(req.getId()));
        shippingProductDetailMapper.insert(req.getBatchNoDetailList());
@@ -153,4 +159,31 @@
        shippingApproveDto.setShippingProductDetailDtoList(dateilByShippingNo);
        return shippingApproveDto;
    }
    /**
     * 正常化发货数量
     * @param shippingProductDetails
     * @param salesLedgerProductId
     */
    private void normalizeShippingQuantity(List<ShippingProductDetail> shippingProductDetails, Long salesLedgerProductId) {
        if (CollectionUtils.isEmpty(shippingProductDetails)) {
            return;
        }
        BigDecimal singleQuantity = BigDecimal.ONE;
        if (salesLedgerProductId != null) {
            SalesLedgerProduct salesLedgerProduct = salesLedgerProductMapper.selectById(salesLedgerProductId);
            if (salesLedgerProduct != null && salesLedgerProduct.getSingleQuantity() != null
                    && salesLedgerProduct.getSingleQuantity().compareTo(BigDecimal.ZERO) > 0) {
                singleQuantity = salesLedgerProduct.getSingleQuantity();
            }
        }
        if (singleQuantity.compareTo(BigDecimal.ONE) == 0) {
            return;
        }
        for (ShippingProductDetail shippingProductDetail : shippingProductDetails) {
            if (shippingProductDetail.getQuantity() != null) {
                shippingProductDetail.setQuantity(shippingProductDetail.getQuantity().multiply(singleQuantity));
            }
        }
    }
}