package com.ruoyi.orderManagement.service;

import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.orderManagement.domain.Ftmsorderbillsplans;

import java.util.List;

/**
 * 订单调度Service接口
 *
 * @author ruoyi
 * @date 2021-02-22
 */
public interface IftmsorderbillsplansService {
    /**
     * 查询订单调度
     *
     * @param id 订单调度ID
     * @return 订单调度
     */
    public AjaxResult selectftmsorderbillsplansById(Long id);

    /**
     * 查询订单调度列表
     *
     * @param ftmsorderbillsplans 订单调度
     * @return 订单调度集合
     */
    public List<Ftmsorderbillsplans> selectftmsorderbillsplansList(Ftmsorderbillsplans ftmsorderbillsplans);

    /**
     * 新增订单调度
     *
     * @param ftmsorderbillsplans 订单调度
     * @return 结果
     */
    public int insertftmsorderbillsplans(Ftmsorderbillsplans ftmsorderbillsplans);

    /**
     * 修改订单调度
     *
     * @param ftmsorderbillsplans 订单调度
     * @return 结果
     */
    public int updateftmsorderbillsplans(Ftmsorderbillsplans ftmsorderbillsplans);

    /**
     * 批量删除订单调度
     *
     * @param ids 需要删除的订单调度ID
     * @return 结果
     */
    public int deleteftmsorderbillsplansByIds(Long[] ids);

    /**
     * 删除订单调度信息
     *
     * @param id 订单调度ID
     * @return 结果
     */
    public int deleteftmsorderbillsplansById(Long id);

    /**
     *  新增订单调度
     * @param tmsorder  主表id
     * @param scntrs    计划货量
     * @param attachs   附件
     * @param plans     调度安排
     * @param loginUser 登录用户
     * @return  结果
     */
    AjaxResult insertftmsorderbills(String tmsorder, String scntrs, String attachs, String plans, LoginUser loginUser);

    /**
     *  新增订单调度
     * @param tmsorder  主表id
     * @param scntrs    计划货量
     * @param attachs   附件
     * @param plans     调度安排
     * @param loginUser 登录用户
     * @return  结果
     */
    AjaxResult saveFtmsorderbills(String tmsorder, String scntrs, String attachs, String plans, LoginUser loginUser);

    /**
     *  单条订单调度提交
     * @param tmsorder  计划表数据
     * @param plans     调度表数据
     * @param loginUser 操作人
     * @return  结果
     */
    AjaxResult schedulingSave(String tmsorder, String plans, LoginUser loginUser);

    /**
     *  单条订单调度撤销
     *
     * @param plans     调度表数据
     * @param type      状态信息
     * @param loginUser 操作人
     * @return  结果
     */
    AjaxResult schedulingRevoke(Ftmsorderbillsplans plans, String type, LoginUser loginUser);
}
