package com.rongwei.bscommon.sys.service;

import com.rongwei.bsentity.domain.ApsBlankOrderDo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.rongwei.bsentity.domain.ApsProductionTechnicalRequirementDo;
import com.rongwei.bsentity.vo.*;
import com.rongwei.rwcommon.base.R;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 生产订单_坯料计划 服务类
 * </p>
 *
 * @author fpy
 * @since 2024-03-01
 */
public interface ApsBlankOrderService extends IService<ApsBlankOrderDo> {

    void test();

    void orderApsCancel(List<String> apsProductionOrderIds) throws Exception;

    R orderLock(OrderLockVo orderLockVo) throws Exception;

    void apsReScheduling() throws Exception;

    void apsScheduling(ApsPlanVo apsPlanVo) throws Exception;

    void blankOrderAps(List<ApsBlankOrderVo> apsBlankOrders);

    ProductionScheduleVo apsPlanModelSet(List<ApsBlankOrderVo> apsBlankOrders);

    void blankApsCancel(List<String> apsBlankIds);

    R publish(List<String> blankIds);

    R publishCancel(List<String> blankIds);

    R insertOrder(Map<String, Object> params) throws Exception;

    R checkAndSaveOrUpdateBlank(CheckAndSaveOrUpdateBlankReq req);
    R checkBlankOrder(CheckAndSaveOrUpdateBlankReq req, int i);

    R removeBlankOrder(ApsBlankOrderDo req);
    void removeBlankOrderAndChild(ApsBlankOrderDo req);

    void apsAfter(ProductionScheduleRetVo productionScheduleRetVo,List<ApsBlankOrderVo> apsBlankOrders);

    R checkAndUpdateBlankAndOutput(ApsProductionTechnicalRequirementDo req);
    void updateBlankSplicingColumn(String blankId);

    R checkSchedule(List<String> blankIdList);

}
