package cn.estsh.i3plus.ext.mes.pcn.api.base;


import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesProduceSnPrintModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesReworkTaskModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesReworkTaskRequestModel;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.mes.bean.MesProductionAssembly;
import cn.estsh.i3plus.pojo.mes.bean.rework.MesReworkTask;
import cn.estsh.i3plus.pojo.mes.model.MesProductionAssemblyModel;
import io.swagger.annotations.ApiOperation;

import java.util.List;

/**
 * @Description: 查询返工单
 * @Author: zxw
 * @Date: 2024/5/25 18:16
 * @Modify:
 */
public interface IMesReworkTaskService {


    @ApiOperation(value = "查询返工单")
    ListPager<MesReworkTask> queryReworkTask(MesReworkTask mesReworkTask, Pager pager);

    @ApiOperation(value = "查询返工单")
    MesReworkTaskModel queryReworkTaskModel(MesReworkTaskRequestModel requestModel);

    void reworkRecord(long detailId,String userName,String organizeCode);

    List<MesProductionAssembly>  assemblyQuery(MesReworkTaskRequestModel requestModel);

    @ApiOperation(value = "装配件树查询")
    List<MesProductionAssemblyModel>  queryAssemblyTree(MesReworkTaskRequestModel requestModel);

    boolean validateSn(MesReworkTaskRequestModel requestModel);

    void doAssemblySnRepeat(MesReworkTaskRequestModel requestModel);

    void doReworkSuccess(MesReworkTaskRequestModel requestModel);

    @ApiOperation(value = "排序拆解")
    void doSortOrderDismantle(MesReworkTaskRequestModel requestModel);

    MesProduceSnPrintModel doPrint(MesReworkTaskRequestModel requestModel);

    @ApiOperation(value = "扫描条码替换装配件")
    void doAssemblySnRepeatByScan(MesReworkTaskRequestModel requestModel);

}
