4 小时以前 b22ebe8fad1691b35adcf321fe2e136795b3f81d
src/main/java/com/ruoyi/approve/service/impl/ApproveBusinessStatusService.java
@@ -87,7 +87,9 @@
                            salesLedgerProduct.getQuantity(),
                            StockInQualifiedRecordTypeEnum.PURCHASE_STOCK_IN.getCode(),
                            purchaseLedger.getId(),
                            purchaseLedger.getPurchaseContractNumber() + "-" + salesLedgerProduct.getId());
                            purchaseLedger.getPurchaseContractNumber() + "-" + salesLedgerProduct.getId(),
                            null,
                            salesLedgerProduct.getStorageLocation());
                }
            }
        } else if (status.equals(3)) {
@@ -156,10 +158,30 @@
        qualityInspect.setProductModelId(saleProduct.getProductModelId());
        qualityInspect.setUnit(saleProduct.getUnit());
        qualityInspect.setQuantity(saleProduct.getQuantity());
        qualityInspect.setWarehouse(saleProduct.getStorageLocation());
        qualityInspectMapper.insert(qualityInspect);
        List<QualityTestStandard> qualityTestStandard = qualityTestStandardMapper.getQualityTestStandardByProductId(saleProduct.getProductId(), 0, null);
        if (qualityTestStandard.size() > 0) {
            qualityInspect.setTestStandardId(qualityTestStandard.get(0).getId());
            QualityTestStandard std = qualityTestStandard.get(0);
            qualityInspect.setTestStandardId(std.getId());
            // 根据 inspectRule 设置抽检比例和抽检数量默认值
            if (std.getInspectRule() == null || std.getInspectRule() == 0) {
                // 全检
                qualityInspect.setInspectRule(0);
                qualityInspect.setSampleRatio(java.math.BigDecimal.valueOf(100));
                qualityInspect.setSampleQuantity(saleProduct.getQuantity() != null ? saleProduct.getQuantity() : java.math.BigDecimal.ZERO);
            } else {
                // 抽检
                qualityInspect.setInspectRule(1);
                java.math.BigDecimal ratio = std.getSampleRatio() != null ? std.getSampleRatio() : java.math.BigDecimal.ZERO;
                qualityInspect.setSampleRatio(ratio);
                if (saleProduct.getQuantity() != null && ratio.compareTo(java.math.BigDecimal.ZERO) > 0) {
                    qualityInspect.setSampleQuantity(saleProduct.getQuantity().multiply(ratio)
                            .divide(java.math.BigDecimal.valueOf(100), 0, java.math.RoundingMode.CEILING));
                } else {
                    qualityInspect.setSampleQuantity(java.math.BigDecimal.ZERO);
                }
            }
            qualityInspectMapper.updateById(qualityInspect);
            qualityTestStandardParamMapper.selectList(Wrappers.<QualityTestStandardParam>lambdaQuery()
                            .eq(QualityTestStandardParam::getTestStandardId, qualityTestStandard.get(0).getId()))