6 天以前 f569e2257372a2f940aace9ad151fd758196eb9a
src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
@@ -9,10 +9,15 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.ruoyi.basic.enums.ApplicationTypeEnum;
import com.ruoyi.basic.enums.RecordTypeEnum;
import com.ruoyi.basic.utils.FileUtil;
import com.ruoyi.common.enums.StockInQualifiedRecordTypeEnum;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.HackLoopTableRenderPolicy;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.procurementrecord.service.ProcurementRecordService;
import com.ruoyi.procurementrecord.utils.StockUtils;
import com.ruoyi.quality.dto.QualityInspectDto;
@@ -39,6 +44,8 @@
import java.io.OutputStream;
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
@@ -52,6 +59,7 @@
    private final StockUtils stockUtils;
    private final StockInventoryService stockInventoryService;
    private final StockInRecordService stockInRecordService;
    private final FileUtil fileUtil;
    private QualityInspectMapper qualityInspectMapper;
    private IQualityInspectParamService qualityInspectParamService;
@@ -74,6 +82,8 @@
            qualityInspectParam.setInspectId(qualityInspect.getId());
        }
        qualityInspectParamService.saveBatch(qualityInspectDto.getQualityInspectParams());
        // 保存附件
        fileUtil.saveStorageAttachment(ApplicationTypeEnum.FILE, RecordTypeEnum.QUALITY_INSPECT, qualityInspect.getId(), qualityInspectDto.getStorageBlobDTOs());
        return 0;
    }
@@ -84,6 +94,8 @@
        QualityInspectDto qualityInspectDto = new QualityInspectDto();
        BeanUtils.copyProperties(qualityInspect, qualityInspectDto);
        qualityInspectDto.setQualityInspectParams(qualityInspectParams);
        // 查询附件
        qualityInspectDto.setStorageBlobVOs(fileUtil.getStorageBlobVOsByRecordTypeAndRecordId(RecordTypeEnum.QUALITY_INSPECT, qualityInspect.getId()));
        return qualityInspectDto;
    }
@@ -127,6 +139,10 @@
            stockInventoryDto.setRecordId(qualityInspect.getId());
            stockInventoryDto.setProductModelId(qualityInspect.getProductModelId());
            stockInventoryDto.setQualitity(qualityInspect.getQualifiedQuantity());
            if (qualityInspect.getCheckTime() != null) {
                LocalDate stockCreateDate = DateUtils.toLocalDate(qualityInspect.getCheckTime()).plusDays(1);
                stockInventoryDto.setCreateTime(LocalDateTime.of(stockCreateDate, java.time.LocalTime.MIDNIGHT));
            }
            stockInventoryDto.setBatchNo(resolveProductionBatchNo(
                    qualityInspect.getProductMainId(),
                    qualityInspect.getId(),
@@ -149,6 +165,33 @@
        qualityInspect.setInspectState(1);//已提交
        return qualityInspectMapper.updateById(qualityInspect);
    }
    @Override
    public R autoSubmit(Long id) {
        if (id == null) {
            return R.fail("检验单ID不能为空");
        }
        QualityInspect qualityInspect = qualityInspectMapper.selectById(id);
        if (qualityInspect == null) {
            return R.fail("检验单不存在");
        }
        if (Integer.valueOf(1).equals(qualityInspect.getInspectState())) {
            return R.ok("检验单已提交");
        }
        if (ObjectUtils.isNull(qualityInspect.getCheckResult())) {
            qualityInspect.setCheckResult("合格");
        }
        if (ObjectUtils.isNull(qualityInspect.getQualifiedQuantity())) {
            qualityInspect.setQualifiedQuantity(qualityInspect.getQuantity() == null ? BigDecimal.ZERO : qualityInspect.getQuantity());
        }
        if (ObjectUtils.isNull(qualityInspect.getUnqualifiedQuantity())) {
            qualityInspect.setUnqualifiedQuantity(BigDecimal.ZERO);
        }
        qualityInspectMapper.updateById(qualityInspect);
        int rows = submit(qualityInspect);
        return rows > 0 ? R.ok("检验单提交成功") : R.fail("检验单提交失败");
    }
    private String resolveProductionBatchNo(Long productionProductMainId,
@@ -251,7 +294,10 @@
        }
        QualityInspect qualityInspect = new QualityInspect();
        BeanUtils.copyProperties(qualityInspectDto, qualityInspect);
        return qualityInspectMapper.updateById(qualityInspect);
        int result = qualityInspectMapper.updateById(qualityInspect);
        // 保存附件
        fileUtil.saveStorageAttachment(ApplicationTypeEnum.FILE, RecordTypeEnum.QUALITY_INSPECT, qualityInspectDto.getId(), qualityInspectDto.getStorageBlobDTOs());
        return result;
    }
    @Override