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

import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesOuterPackageDetail;
import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesPackageExt;
import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesPrinterCfg;
import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesProduceSnExt;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.SxPrintTemplateModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.bu.QualityAssureIndiaModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.bu3.InnerPackageModel;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import io.swagger.annotations.ApiOperation;

import java.util.List;
import java.util.Map;

public interface ISxPatchPrintService {

    /**
     * 查询打印机集合
     * @param organizeCode 组织代码
     * @return 打印机集合
     */
    @ApiOperation(value = "查询打印机集合", notes = "查询打印机集合")
    List<MesPrinterCfg> queryPrinterCfgList(String organizeCode);

    /**
     * 按条件分页查询产品条码补打印信息
     * @param produceSnExt 查询条件
     * @param pager 分页条件
     * @return 产品条码补打印信息集合
     */
    @ApiOperation(value = "按条件分页查询产品条码补打印信息", notes = "按条件分页查询产品条码补打印信息")
    ListPager queryPatchProdSnByPager(MesProduceSnExt produceSnExt, Pager pager);

    /**
     * 产品条码补打
     * @param model 打印模板信息
     * @return 打印模板及数据
     */
    @ApiOperation(value = "产品条码补打", notes = "产品条码补打")
    List<Map<String, Object>> doPatchPrintProdSn(SxPrintTemplateModel model);

    /**
     * 质保书补打
     * @param model 打印模板信息
     * @return 打印模板及数据
     */
    @ApiOperation(value = "质保书补打", notes = "质保书补打")
    List<Map<String, Object>> doPatchPrintQualityAssure(SxPrintTemplateModel model);

    /**
     * 大本体条码补打
     * @param model 打印模板信息
     * @return 打印模板及数据
     */
    @ApiOperation(value = "大本体条码补打", notes = "大本体条码补打")
    List<Map<String, Object>> doPatchPrintBigProcess(SxPrintTemplateModel model);

    /**
     * 按条件分页查询包装条码补打印信息
     * @param pack 查询条件
     * @param pager 分页条件
     * @return 包装条码补打印信息集合
     */
    @ApiOperation(value = "按条件分页查询包装条码补打印信息", notes = "按条件分页查询包装条码补打印信息")
    ListPager queryPatchPackSnByPager(MesPackageExt pack, Pager pager);

    /**
     * 包装条码补打
     * @param model 打印模板信息
     * @return 打印模板及数据
     */
    @ApiOperation(value = "包装条码补打", notes = "包装条码补打")
    List<Map<String, Object>> doPatchPrintPackSn(SxPrintTemplateModel model);

    /**
     * 印尼质保书补打
     * @param model
     * @return
     */
    List doPatchPrintQualityAssureIndia(QualityAssureIndiaModel model);

    /**
     * 包装条码补打
     * @param model 打印模板信息
     * @return 打印模板及数据
     */
    @ApiOperation(value = "大包装条码补打", notes = "大包装条码补打")
    List<Map<String, Object>> doPatchPrintBigPackSn(SxPrintTemplateModel model);

    @ApiOperation(value = "按条件分页查询包装条码补打印信息", notes = "按条件分页查询包装条码补打印信息")
    ListPager queryPatchBigPackSnByPager(MesOuterPackageDetail outerPackageDetail, Pager pager);

    @ApiOperation(value = "根据大包装条码分页查询小包装条码信息", notes = "根据大包装条码分页查询小包装条码信息")
    List<InnerPackageModel> queryPatchPackSnByOuterPackNo(MesOuterPackageDetail outerPackageDetail);
}
