2026-06-08 29ccd9919082e0157f57989ae83b303f314bad6b
src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
@@ -25,6 +25,7 @@
import com.ruoyi.quality.pojo.QualityInspect;
import com.ruoyi.quality.pojo.QualityInspectParam;
import com.ruoyi.quality.pojo.QualityUnqualified;
import com.ruoyi.quality.utils.QualityInspectTemplateExportHelper;
import com.ruoyi.stock.pojo.StockInRecord;
import com.ruoyi.stock.service.StockInRecordService;
import com.ruoyi.quality.service.IQualityInspectParamService;
@@ -71,6 +72,8 @@
    private SalesLedgerProductMapper salesLedgerProductMapper;
    private ProcurementRecordService procurementRecordService;
    private final QualityInspectTemplateExportHelper qualityInspectTemplateExportHelper;
    @Override
    public int add(QualityInspectDto qualityInspectDto) {
@@ -134,7 +137,15 @@
            }
            stockInventoryDto.setRecordId(qualityInspect.getId());
            stockInventoryDto.setProductModelId(qualityInspect.getProductModelId());
            stockInventoryDto.setQualitity(qualityInspect.getQualifiedQuantity());
            // 入库数量 = 合格数量 * 入库比例 / 100,入库比例默认100%
            BigDecimal stockInRatio = qualityInspect.getStockInRatio();
            if (stockInRatio == null || stockInRatio.compareTo(BigDecimal.ZERO) <= 0) {
                stockInRatio = new BigDecimal("100.00");
            }
            BigDecimal actualStockInQuantity = qualityInspect.getQualifiedQuantity()
                    .multiply(stockInRatio)
                    .divide(new BigDecimal("100"), 2, BigDecimal.ROUND_HALF_UP);
            stockInventoryDto.setQualitity(actualStockInQuantity);
            if (qualityInspect.getCheckTime() != null) {
                LocalDate stockCreateDate = DateUtils.toLocalDate(qualityInspect.getCheckTime()).plusDays(1);
                stockInventoryDto.setCreateTime(LocalDateTime.of(stockCreateDate, java.time.LocalTime.MIDNIGHT));
@@ -291,7 +302,15 @@
            }
            stockInventoryDto.setRecordId(qualityInspect.getId());
            stockInventoryDto.setProductModelId(qualityInspect.getProductModelId());
            stockInventoryDto.setQualitity(qualified);
            // 入库数量 = 合格数量 * 入库比例 / 100,入库比例默认100%
            BigDecimal stockInRatio = qualityInspect.getStockInRatio();
            if (stockInRatio == null || stockInRatio.compareTo(BigDecimal.ZERO) <= 0) {
                stockInRatio = new BigDecimal("100.00");
            }
            BigDecimal actualStockInQuantity = qualified
                    .multiply(stockInRatio)
                    .divide(new BigDecimal("100"), 2, BigDecimal.ROUND_HALF_UP);
            stockInventoryDto.setQualitity(actualStockInQuantity);
            if (qualityInspect.getCheckTime() != null) {
                LocalDate stockCreateDate = DateUtils.toLocalDate(qualityInspect.getCheckTime()).plusDays(1);
                stockInventoryDto.setCreateTime(LocalDateTime.of(stockCreateDate, java.time.LocalTime.MIDNIGHT));
@@ -444,5 +463,24 @@
    }
    @Override
    public void exportWeiLong(HttpServletResponse response, Long id) {
        qualityInspectTemplateExportHelper.exportWeiLong(response, id);
    }
    @Override
    public void exportBaiShi(HttpServletResponse response, Long id) {
        qualityInspectTemplateExportHelper.exportBaiShi(response, id);
    }
    @Override
    public void exportDaLi(HttpServletResponse response, Long id) {
        qualityInspectTemplateExportHelper.exportDaLi(response, id);
    }
    @Override
    public String analyzeTemplate(String templatePath) {
        return qualityInspectTemplateExportHelper.analyzeTemplate(templatePath);
    }
}