云
2026-10-31 bf5f52656e128f578ed42c7979c31cf4b476ce46
yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/quotation/CrmSaleQuotationServiceImpl.java
@@ -285,6 +285,16 @@
        // 2. 获取报价明细
        List<CrmSaleQuotationProductDO> quotationProducts = saleQuotationProductMapper.selectListByQuotationId(id);
        // 合同明细使用整数数量,禁止截断小数或溢出后生成错误订单。
        for (CrmSaleQuotationProductDO product : quotationProducts) {
            try {
                if (product.getCount() == null || product.getCount().intValueExact() <= 0) {
                    throw exception(SALE_QUOTATION_CONVERT_INVALID_COUNT);
                }
            } catch (ArithmeticException ex) {
                throw exception(SALE_QUOTATION_CONVERT_INVALID_COUNT);
            }
        }
        // 3. 构建合同创建 VO
        CrmContractSaveReqVO contractVO = new CrmContractSaveReqVO();
        contractVO.setName(saleQuotation.getName() + "-合同");