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

import cn.estsh.i3plus.ext.mes.pojo.bean.MesAssistOutAndEnter;
import cn.estsh.i3plus.ext.mes.pojo.model.MesAssistOutAndEnterDateSumModel;
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;

/**
 * @Author: yinxiao
 * @CreateDate: 2023/02/06 13点26分
 * @Description:
 **/
public interface IMesEpAssistOutAndEnterService {

    /**
     * 按条件分页查询援入援出明细记录内容信息
     *
     * @param assistOutAndEnter 查询条件
     * @param pager             分页条件
     * @return 援入援出明细记录内容分页数据
     */
    @ApiOperation(value = "按条件分页查询援入援出明细记录内容信息", notes = "按条件分页查询援入援出明细记录内容信息")
    ListPager<MesAssistOutAndEnter> queryAssistOutAndEnterPager(MesAssistOutAndEnter assistOutAndEnter, Pager pager);

    /**
     * 新增援入援出明细记录内容信息
     *
     * @param assistOutAndEnter 援入援出明细记录内容信息
     * @return 援入援出明细记录内容数据
     */
    @ApiOperation(value = "新增援入援出明细记录内容信息", notes = "新增援入援出明细记录内容信息")
    void insertAssistOutAndEnter(MesAssistOutAndEnter assistOutAndEnter);

    /**
     * 更新援入援出明细记录内容信息
     *
     * @param assistOutAndEnter 援入援出明细记录内容信息
     * @return 援入援出明细记录内容数据
     */
    @ApiOperation(value = "更新援入援出明细记录内容信息", notes = "更新援入援出明细记录内容信息")
    MesAssistOutAndEnter updateAssistOutAndEnter(MesAssistOutAndEnter assistOutAndEnter);

    /**
     * 根据id启用或禁用援入援出明细记录内容信息
     *
     * @param id           援入援出明细记录内容信息ID
     * @param status       状态
     * @param organizeCode 组织代码
     * @param userName     操作人
     * @return 结果
     */
    @ApiOperation(value = "根据id启用或禁用援入援出明细记录内容信息", notes = "根据id启用或禁用援入援出明细记录内容信息")
    int updateAssistOutAndEnterValidById(Long id, Integer status, String organizeCode, String userName);

    /**
     * 根据id删除援入援出明细记录内容信息
     *
     * @param id           援入援出明细记录内容信息ID
     * @param organizeCode 组织代码
     * @param userName     操作人
     * @return 结果
     */
    @ApiOperation(value = "根据id删除援入援出明细记录内容信息", notes = "根据id删除援入援出明细记录内容信息")
    int deleteAssistOutAndEnterId(Long id, String organizeCode, String userName);


    /**
     * 按条件分页查询援入援出统计记录内容信息
     *
     * @param andEnterDateSumModel 查询条件
     * @return 援入援出明细统计内容分页数据
     */
    @ApiOperation(value = "按条件分页查询援入援出明细统计内容信息", notes = "按条件分页查询援入援出统计记录内容信息")
    List<MesAssistOutAndEnterDateSumModel> queryAssistOutAndEnterDateSum(MesAssistOutAndEnterDateSumModel andEnterDateSumModel);

}
