src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java
@@ -26,9 +26,11 @@
import com.ruoyi.quality.pojo.QualityUnqualified;
import com.ruoyi.quality.service.IQualityInspectService;
import com.ruoyi.quality.service.IQualityUnqualifiedService;
import com.ruoyi.stock.support.FinishedProductStockDimensionResolver;
import com.ruoyi.stock.service.StockUninventoryService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
@@ -49,6 +51,10 @@
    private ProductProcessRouteItemMapper productProcessRouteItemMapper;
    private ProductWorkOrderMapper productWorkOrderMapper;
    private StockUninventoryService stockUninventoryService;
    /**
     * 解析成品回流入库维度。
     */
    private FinishedProductStockDimensionResolver finishedProductStockDimensionResolver;
    @Override
    public IPage<QualityUnqualified> qualityUnqualifiedListPage(Page page, QualityUnqualified qualityUnqualified) {
@@ -130,20 +136,27 @@
                case "报废":
                    //调用不合格库存接口 入不合格库
                    // 2 是成品-需要审核 1 是半成品-不需要审核
                    if (qualityInspect.getInspectType().equals(2)) {
                        stockUtils.addUnStock(qualityInspect.getProductModelId(), unqualified.getQuantity(), StockInUnQualifiedRecordTypeEnum.DEFECTIVE_SCRAP.getCode(), unqualified.getId());
                    } else {
                        stockUtils.addUnStockNoReview(qualityInspect.getProductModelId(), unqualified.getQuantity(), StockInUnQualifiedRecordTypeEnum.DEFECTIVE_SCRAP.getCode(), unqualified.getId());
                    if (!"印铜".equals(qualityInspect.getProcess()) && !"印银".equals(qualityInspect.getProcess())) {
                        if (qualityInspect.getInspectType().equals(2)) {
                            stockUtils.addUnStock(qualityInspect.getProductModelId(), unqualified.getQuantity(), StockInUnQualifiedRecordTypeEnum.DEFECTIVE_SCRAP.getCode(), unqualified.getId());
                        } else {
                            stockUtils.addUnStockNoReview(qualityInspect.getProductModelId(), unqualified.getQuantity(), StockInUnQualifiedRecordTypeEnum.DEFECTIVE_SCRAP.getCode(), unqualified.getId());
                        }
                    }
                    break;
                case "让步放行":
                    //调用提交合格的接口
                    // 2 是成品-需要审核 1 是半成品-不需要审核
                    if (qualityInspect.getInspectType().equals(2)) {
                    if (qualityInspect.getInspectType().equals(1)) {
                        stockUtils.addStockNoReview(qualityInspect.getProductModelId(), unqualified.getQuantity(), StockInQualifiedRecordTypeEnum.DEFECTIVE_PASS.getCode(), unqualified.getId());
                    } else {
                        stockUtils.addStock(qualityInspect.getProductModelId(), unqualified.getQuantity(), StockInQualifiedRecordTypeEnum.DEFECTIVE_PASS.getCode(), unqualified.getId());
                        String processCategory = finishedProductStockDimensionResolver.resolveProcessCategory(qualityInspect.getProductMainId());
                        String voltage = finishedProductStockDimensionResolver.resolveVoltage(qualityInspect.getProductMainId());
                        stockUtils.addStock(qualityInspect.getProductModelId(), unqualified.getQuantity(), StockInQualifiedRecordTypeEnum.DEFECTIVE_PASS.getCode(), unqualified.getId(), processCategory, voltage);
                    }
                    break;
                case "隔离":
                    qualityUnqualified.setQuarantineLifted(false);
                    break;
                default:
                    break;
@@ -170,23 +183,43 @@
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean liftTheQuarantine(QualityUnqualified qualityUnqualified) {
        if (qualityUnqualified.getDealResult().equals("隔离")) {
        QualityUnqualified unqualified = qualityUnqualifiedMapper.selectById(qualityUnqualified.getId());
        if (unqualified.getQuarantineLifted()) {
            throw new RuntimeException("该不合格品已被取消隔离");
        }
        if (unqualified.getDealResult() == null) {
            throw new RuntimeException("该不合格品未被处理");
        }
        if (!unqualified.getDealResult().equals("隔离")) {
            throw new RuntimeException("该不合格品未被隔离");
        }
        Long modelId = qualityUnqualifiedMapper.getModelId(qualityUnqualified.getProductName(), qualityUnqualified.getModel());
        // 取消隔离 调用提交合格的接口
        QualityInspect qualityInspect = qualityInspectService.getById(qualityUnqualified.getInspectId());
        if (qualityInspect.getInspectType().equals(2)) {
            stockUtils.addStockNoReview(qualityInspect.getProductModelId(), qualityUnqualified.getQuantity(), StockInQualifiedRecordTypeEnum.DEFECTIVE_PASS.getCode(), qualityUnqualified.getId());
        QualityInspect qualityInspect = qualityInspectService.getById(unqualified.getInspectId());
        if (ObjectUtils.isNotNull(qualityInspect) && qualityInspect.getInspectType().equals(2)) {
            String processCategory = finishedProductStockDimensionResolver.resolveProcessCategory(qualityInspect.getProductMainId());
            String voltage = finishedProductStockDimensionResolver.resolveVoltage(qualityInspect.getProductMainId());
            stockUtils.addStock(modelId, unqualified.getQuantity(), StockInQualifiedRecordTypeEnum.LIFT_THE_QUARANTINE.getCode(), unqualified.getId(), processCategory, voltage);
        } else {
            stockUtils.addStock(qualityInspect.getProductModelId(), qualityUnqualified.getQuantity(), StockInQualifiedRecordTypeEnum.DEFECTIVE_PASS.getCode(), qualityUnqualified.getId());
            stockUtils.addStockNoReview(modelId, unqualified.getQuantity(), StockInQualifiedRecordTypeEnum.LIFT_THE_QUARANTINE.getCode(), unqualified.getId());
        }
        return true;
        unqualified.setQuarantineLifted(true);
        return qualityUnqualifiedMapper.updateById(unqualified) > 0;
    }
    @Override
    public QualityUnqualified getUnqualified(Integer id) {
        return qualityUnqualifiedMapper.getUnqualified(id);
    }
    @Override
    public List<QualityUnqualified> findUnqualifiedWithProductionOrder() {
        return qualityUnqualifiedMapper.selectUnqualifiedWithProductionOrder();
    }
}