6 天以前 1e123568c2f561013f5636e45dc0db30b17a3517
src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
@@ -94,6 +94,13 @@
    @Override
    public int submit(QualityInspect inspect) {
        QualityInspect qualityInspect = qualityInspectMapper.selectById(inspect.getId());
        if (qualityInspect == null) {
            throw new ServiceException("检验单不存在");
        }
        //幂等:已提交的检验单不允许重复提交,防止重复生成入库/不合格记录
        if (Integer.valueOf(1).equals(qualityInspect.getInspectState())) {
            throw new ServiceException("检验单已提交,请勿重复提交");
        }
        //提交前必须判断是否合格
        if (ObjectUtils.isNull(qualityInspect.getCheckResult())) {
@@ -116,6 +123,13 @@
        // 如果不合格数量为空,设为0
        if (qualityInspect.getUnqualifiedQuantity() == null) {
            qualityInspect.setUnqualifiedQuantity(BigDecimal.ZERO);
        }
        //数量一致性:合格+不合格 不得超过检验数量
        if (qualityInspect.getQuantity() != null
                && qualityInspect.getQualifiedQuantity().add(qualityInspect.getUnqualifiedQuantity())
                        .compareTo(qualityInspect.getQuantity()) > 0) {
            throw new ServiceException("合格数量与不合格数量之和不能大于检验数量");
        }
        // 合格直接入库
@@ -276,6 +290,14 @@
    @Override
    public int updateQualityInspect(QualityInspectDto qualityInspectDto) {
        QualityInspect exist = qualityInspectMapper.selectById(qualityInspectDto.getId());
        if (exist == null) {
            throw new ServiceException("检验单不存在");
        }
        //已提交的检验单已联动入库/不合格记录,禁止再修改
        if (Integer.valueOf(1).equals(exist.getInspectState())) {
            throw new ServiceException("检验单已提交,不允许修改");
        }
        if (ObjectUtils.isNotNull(qualityInspectDto.getQualityInspectParams())) {
            qualityInspectParamService.remove(Wrappers.<QualityInspectParam>lambdaQuery().eq(QualityInspectParam::getInspectId, qualityInspectDto.getId()));
            for (QualityInspectParam qualityInspectParam : qualityInspectDto.getQualityInspectParams()) {