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

import cn.estsh.i3plus.ext.mes.pojo.bean.MesOnSiteOrderDetail;
import cn.estsh.i3plus.ext.mes.pojo.bean.MesProcedureProject;
import cn.estsh.i3plus.ext.mes.pojo.bean.MesProjectSort;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import io.swagger.annotations.ApiOperation;

/**
 * @Author: wangjie
 * @CreateDate: 2021/01/19 15:06 下午
 * @Description:
 **/
public interface IProjectExtService {

    /**
     * 添加MES_项目分类信息
     *
     * @param mesProjectSort 项目分类信息
     * @return 插入后的mesProjectSort对象
     */
    @ApiOperation(value = "添加MES_项目分类信息", notes = "传入MES_项目分类信息对象")
    MesProjectSort insertMesProjectSort(MesProjectSort mesProjectSort);

    /**
     * 更新MES_项目分类信息
     *
     * @param mesProjectSort  项目分类信息
     * @param userName 操作人
     */
    @ApiOperation(value = "更新MES_项目分类信息", notes = "更新MES_项目分类信息")
    void updateMesProjectSort(MesProjectSort mesProjectSort, String userName);

    /**
     * 按条件分页查询MES_项目分类信息
     *
     * @param mesProjectSort 项目分类信息
     * @param pager   分页条件
     * @return 分页数据
     */
    @ApiOperation(value = "按条件分页查询MES_项目分类信息", notes = "按条件分页查询MES_项目分类信息")
    ListPager<MesProjectSort> queryMesProjectSortByPager(MesProjectSort mesProjectSort, Pager pager);

    /**
     * 批量禁用/启用详情
     *
     * @param ids      id数组
     * @param status   更新状态
     * @param userName 操作人
     * @return 操作行数
     */
    @ApiOperation(value = "批量禁用/启用详情")
    int updateMesProjectSortStatus(String[] ids, int status, String userName);

    /**
     * 添加MES_过程项目信息
     *
     * @param mesProcedureProject 过程项目信息
     * @return 插入后的mesProcedureProject对象
     */
    @ApiOperation(value = "添加MES_过程项目信息", notes = "传入MES_过程项目信息对象")
    MesProcedureProject insertMesProcedureProject(MesProcedureProject mesProcedureProject);

    /**
     * 更新MES_过程项目信息
     *
     * @param mesProcedureProject  过程项目信息
     * @param userName 操作人
     */
    @ApiOperation(value = "更新MES_过程项目信息", notes = "更新MES_过程项目信息")
    void updateMesProcedureProject(MesProcedureProject mesProcedureProject, String userName);

    /**
     * 按条件分页查询MES_过程项目信息
     *
     * @param mesProcedureProject 过程项目信息
     * @param pager   分页条件
     * @return 分页数据
     */
    @ApiOperation(value = "按条件分页查询MES_过程项目信息", notes = "按条件分页查询MES_过程项目信息")
    ListPager<MesProcedureProject> queryMesProcedureProjectByPager(MesProcedureProject mesProcedureProject, Pager pager);

    /**
     * 批量禁用/启用详情
     *
     * @param ids      id数组
     * @param status   更新状态
     * @param userName 操作人
     * @return 操作行数
     */
    @ApiOperation(value = "批量禁用/启用详情")
    int updateMesProcedureProjectStatus(String[] ids, int status, String userName);

    /**
     * 巡检单明细数据查询报表
     *
     * @param mesOnSiteOrderDetail 巡检单明细数据
     * @param pager   分页条件
     * @return 分页数据
     */
    @ApiOperation(value = "巡检单明细数据查询报表", notes = "巡检单明细数据查询报表")
    ListPager<MesOnSiteOrderDetail> queryMesOnSiteOrderDetailReportByPager(MesOnSiteOrderDetail mesOnSiteOrderDetail, Pager pager);

    /**
     * 更新巡检单明细数据
     *
     * @param mesOnSiteOrderDetail  过程项目信息
     * @param userName 操作人
     */
    @ApiOperation(value = "更新巡检单明细数据", notes = "更新巡检单明细数据")
    void updateMesOnSiteOrderDetail(MesOnSiteOrderDetail mesOnSiteOrderDetail, String userName);
}
