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

import cn.estsh.i3plus.ext.mes.pojo.bean.MesProcessTorqueManage;
import cn.estsh.i3plus.ext.mes.pojo.bean.MesProcessTorqueManageTaskDetail;
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;

/**
 * @Description:MES_工序扭矩管理接口
 * @Reference:
 * @Author: jessica.chen
 * @CreateDate: 2019\11\13 13:56
 * @Modify:
 **/
public interface ITorqueManageService {

    /**
     * 添加MES_工序扭矩管理
     *
     * @param mesProcessTorqueManage 工序扭矩管理
     * @return 插入后的mesProcessTorqueManage对象
     */
    @ApiOperation(value = "添加MES_工序扭矩管理信息", notes = "传入MES_工序扭矩管理对象")
    MesProcessTorqueManage insertMesProcessTorqueManage(MesProcessTorqueManage mesProcessTorqueManage);

    /**
     * 更新MES_工序扭矩管理
     *
     * @param mesProcessTorqueManage  工序扭矩管理
     * @param userName 操作人
     */
    @ApiOperation(value = "更新MES_工序扭矩管理", notes = "更新MES_工序扭矩管理")
    void updateMesProcessTorqueManage(MesProcessTorqueManage mesProcessTorqueManage, String userName);

    /**
     * 按条件分页查询MES_工序扭矩管理信息
     *
     * @param mesProcessTorqueManage 工序扭矩管理
     * @param pager   分页条件
     * @return 分页数据
     */
    @ApiOperation(value = "按条件分页查询MES_工序扭矩管理信息", notes = "按条件分页查询MES_工序扭矩管理信息")
    ListPager<MesProcessTorqueManage> queryMesProcessTorqueManageByPager(MesProcessTorqueManage mesProcessTorqueManage, Pager pager);

    /**
     * 软删扭矩管理信息
     *
     * @param ids      id数组
     * @param userName 操作人
     */
    @ApiOperation("软删扭矩管理信息")
    void deleteWeaklyMesProcessTorqueManageByIds(String[] ids, String userName);

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

    /**
     * Q管理查询报表
     *
     * @param mesTorqueManageTaskDetail 工序扭矩管理
     * @param pager   分页条件
     * @return 分页数据
     */
    @ApiOperation(value = "按条件分页查询MES_工序扭矩管理信息", notes = "按条件分页查询MES_工序扭矩管理信息")
    ListPager<MesProcessTorqueManageTaskDetail> queryTorqueManageTaskDetailReportByPager(MesProcessTorqueManageTaskDetail mesTorqueManageTaskDetail, Pager pager);

    /**
     * 更新MES_Q管理作业明细
     *
     * @param mesTorqueManageTaskDetailList  Q管理作业明细
     * @param userName 操作人
     */
    @ApiOperation(value = "更新MES_Q管理作业明细", notes = "更新MES_Q管理作业明细")
    void doConfirmTorqueManageList(List<MesProcessTorqueManageTaskDetail> mesTorqueManageTaskDetailList, String userName);
}
