src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
@@ -10,6 +10,7 @@
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.ruoyi.common.enums.StockInQualifiedRecordTypeEnum;
import com.ruoyi.common.enums.StockInUnQualifiedRecordTypeEnum;
import com.ruoyi.common.utils.HackLoopTableRenderPolicy;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.procurementrecord.service.ProcurementRecordService;
@@ -33,7 +34,7 @@
import com.ruoyi.quality.service.IQualityInspectParamService;
import com.ruoyi.quality.service.IQualityInspectService;
import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
import com.ruoyi.stock.pojo.StockUninventory;
import com.ruoyi.stock.support.FinishedProductStockDimensionResolver;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -78,6 +79,9 @@
    private ProductOrderMapper productOrderMapper;
    @Autowired
    private ISysNoticeService sysNoticeService;
    // 解析成品入库维度。
    @Autowired
    private FinishedProductStockDimensionResolver finishedProductStockDimensionResolver;
    @Override
    public int add(QualityInspectDto qualityInspectDto) {
@@ -156,16 +160,30 @@
            qualityUnqualified.setInspectId(qualityInspect.getId());
            qualityUnqualifiedMapper.insert(qualityUnqualified);
        } else {
            //合格入库
            // 合格入库
            Integer inspectType = qualityInspect.getInspectType();
            //生产成品添加审核流程,半成品不审核
            if (inspectType != null && inspectType.equals(2)) {
                stockUtils.addStock(qualityInspect.getProductModelId(), qualityInspect.getQuantity(),
                        StockInQualifiedRecordTypeEnum.QUALITYINSPECT_STOCK_IN.getCode(), qualityInspect.getId());
            boolean isFinishedProduct = inspectType != null && inspectType.equals(2); // 成品需要审核
            // 根据是否成品选择入库方式
            String processCategory = null;
            String voltage = null;
            if (isFinishedProduct && qualityInspect.getProductMainId() != null) {
                processCategory = finishedProductStockDimensionResolver.resolveProcessCategory(qualityInspect.getProductMainId());
                voltage = finishedProductStockDimensionResolver.resolveVoltage(qualityInspect.getProductMainId());
            }
            if (isFinishedProduct) {
                stockUtils.addStock(qualityInspect.getProductModelId(), productQty,
                        StockInQualifiedRecordTypeEnum.QUALITYINSPECT_STOCK_IN.getCode(), qualityInspect.getId(),
                        processCategory, voltage);
            } else {
                stockUtils.addStockNoReview(qualityInspect.getProductModelId(), qualityInspect.getQuantity(),
                stockUtils.addStockNoReview(qualityInspect.getProductModelId(), productQty,
                        StockInQualifiedRecordTypeEnum.QUALITYINSPECT_STOCK_IN.getCode(), qualityInspect.getId());
            }
            // 不良数量>0的入不合格库存
            if (qualityInspect.getDefectiveQuantity().compareTo(BigDecimal.ZERO) > 0) {
                stockUtils.addUnStockNoReview(qualityInspect.getProductModelId(), qualityInspect.getDefectiveQuantity(),
                        StockInUnQualifiedRecordTypeEnum.QUALITYINSPECT_UNSTOCK_IN.getCode(), qualityInspect.getId());
            }
        }
        qualityInspect.setInspectState(1);//已提交
        return qualityInspectMapper.updateById(qualityInspect);