package com.yunfeiyun.agmp.fms.service;

import com.yunfeiyun.agmp.fms.domain.WmsChangeapply;
import com.yunfeiyun.agmp.fms.domain.reqvo.WmsChangeApplyAuditReqVo;
import com.yunfeiyun.agmp.fms.domain.reqvo.WmsChangeApplyGoodsListReqVo;
import com.yunfeiyun.agmp.fms.domain.reqvo.WmsChangeApplyListReqVo;
import com.yunfeiyun.agmp.fms.domain.reqvo.WmsChangeApplyReqVo;
import com.yunfeiyun.agmp.fms.domain.resvo.FmsMessageResVo;
import com.yunfeiyun.agmp.fms.domain.resvo.WmsChangeApplyDetailsResVo;
import com.yunfeiyun.agmp.fms.domain.resvo.WmsChangeApplyGoodsListResVo;
import com.yunfeiyun.agmp.fms.domain.resvo.WmsChangeApplyListResVo;

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


/**
 * 变动申请Service接口
 * 
 * @author 杨晓辉
 * @date 2023-05-25
 */
public interface IWmsChangeapplyService
{
    /**
     * 查询变动申请
     * 
     * @param changeapplyId 变动申请主键
     * @return 变动申请
     */
    public WmsChangeapply selectWmsChangeapplyByChangeapplyId(String changeapplyId);

    /**
     * 查询变动申请列表
     * 
     * @param wmsChangeapply 变动申请
     * @return 变动申请集合
     */
    public List<WmsChangeapply> selectWmsChangeapplyList(WmsChangeapply wmsChangeapply);

    /**
     * 查询领用/退还申请列表
     * @param wmsChangeApplyGoodsListReqVo 变动申请请求参数
     * @return 变动申请集合
     * */
    public List<WmsChangeApplyGoodsListResVo> selectWmsChangeApplyGoodsListResVoList(WmsChangeApplyGoodsListReqVo wmsChangeApplyGoodsListReqVo);

    /**
     * 查询农资出入库记录
     * @param wmsChangeApplyListReqVo 出入库记录请求参数
     * @return 出入库记录集合
     * */
    public List<WmsChangeApplyListResVo> selectWmsChangeApplyListResVoList(WmsChangeApplyListReqVo wmsChangeApplyListReqVo);

    public WmsChangeApplyDetailsResVo selectWmsChangeapplyDetail(String changeapplyId);

    /**
     * 新增变动申请
     * 
     * @param wmsChangeapply 变动申请
     * @return 结果
     */
    public int insertWmsChangeapply(WmsChangeapply wmsChangeapply);

    /**
     * 修改变动申请
     * 
     * @param wmsChangeapply 变动申请
     * @return 结果
     */
    public int updateWmsChangeapply(WmsChangeapply wmsChangeapply);

    /**
     * 批量删除变动申请
     * 
     * @param changeapplyIds 需要删除的变动申请主键集合
     * @return 结果
     */
    public int deleteWmsChangeapplyByChangeapplyIds(String[] changeapplyIds);

    /**
     * 删除变动申请信息
     * 
     * @param changeapplyId 变动申请主键
     * @return 结果
     */
    public int deleteWmsChangeapplyByChangeapplyId(String changeapplyId);
    /**
     * 审核变动申请
     * @param wmsChangeApplyAuditReqVo 变动申请审核状态
     * @return 审核结果
     * */
    public  int audit(WmsChangeApplyAuditReqVo wmsChangeApplyAuditReqVo);

    public void appendChangeMessage(Map<String, FmsMessageResVo> fmsMessageResVoMap );

    public int apply(WmsChangeApplyReqVo wmsChangeApplyReqVo);
}
