| | |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | |
| | | QualityTestStandard firstStandard = qualityTestStandardList.get(0); |
| | | qualityInspect.setTestStandardId(firstStandard.getId()); |
| | | // 根据 inspectRule 设置默认抽检比例和抽检数量 |
| | | applyInspectRuleDefaults(qualityInspect, firstStandard, saleProduct.getQuantity()); |
| | | qualityInspectMapper.updateById(qualityInspect); |
| | | |
| | | List<QualityTestStandardParam> standardParams = qualityTestStandardParamMapper.selectList( |
| | |
| | | qualityInspectParamMapper.insert(param); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 根据 inspectRule 设置抽检比例和抽检数量默认值 |
| | | * - inspectRule=0 (全检): sampleRatio=100, sampleQuantity=全部数量 |
| | | * - inspectRule=1 (抽检): sampleRatio 取标准配置值, sampleQuantity=数量×比例/100 |
| | | */ |
| | | private void applyInspectRuleDefaults(QualityInspect inspect, QualityTestStandard standard, BigDecimal quantity) { |
| | | Integer rule = standard.getInspectRule(); |
| | | inspect.setInspectRule(rule); |
| | | |
| | | if (rule == null || rule == 0) { |
| | | // 全检 |
| | | inspect.setSampleRatio(BigDecimal.valueOf(100)); |
| | | inspect.setSampleQuantity(quantity != null ? quantity : BigDecimal.ZERO); |
| | | } else { |
| | | // 抽检 |
| | | BigDecimal ratio = standard.getSampleRatio(); |
| | | if (ratio == null) { |
| | | ratio = BigDecimal.ZERO; |
| | | } |
| | | inspect.setSampleRatio(ratio); |
| | | if (quantity != null && ratio.compareTo(BigDecimal.ZERO) > 0) { |
| | | BigDecimal sampleQty = quantity.multiply(ratio) |
| | | .divide(BigDecimal.valueOf(100), 4, BigDecimal.ROUND_HALF_UP) |
| | | .setScale(0, BigDecimal.ROUND_HALF_UP); |
| | | inspect.setSampleQuantity(sampleQty); |
| | | } else { |
| | | inspect.setSampleQuantity(BigDecimal.ZERO); |
| | | } |
| | | } |
| | | } |
| | | } |