package com.op.mes.service;

import java.util.Date;
import java.util.List;

import com.op.common.core.web.domain.AjaxResult;
import com.op.mes.domain.ProOrderWorkorder;
import com.op.mes.domain.ProWetMaterialPlan;

/**
 * 湿料计划管理Service接口
 *
 * @author Open Platform
 * @date 2023-07-24
 */
public interface IProWetMaterialPlanService {
    /**
     * 查询湿料计划管理
     *
     * @param id 湿料计划管理主键
     * @return 湿料计划管理
     */
    public ProWetMaterialPlan selectProWetMaterialPlanById(String id);

    /**
     * 查询湿料计划管理列表
     *
     * @param proWetMaterialPlan 湿料计划管理
     * @return 湿料计划管理集合
     */
    public List<ProWetMaterialPlan> selectProWetMaterialPlanList(ProWetMaterialPlan proWetMaterialPlan);

    /**
     * 新增湿料计划管理
     *
     * @param proWetMaterialPlan 湿料计划管理
     * @return 结果
     */
    public int insertProWetMaterialPlan(ProWetMaterialPlan proWetMaterialPlan);

    /**
     * 修改湿料计划管理
     *
     * @param proWetMaterialPlan 湿料计划管理
     * @return 结果
     */
    public int updateProWetMaterialPlan(ProWetMaterialPlan proWetMaterialPlan);

    /**
     * 批量删除湿料计划管理
     *
     * @param ids 需要删除的湿料计划管理主键集合
     * @return 结果
     */
    public int deleteProWetMaterialPlanByIds(String[] ids);

    /**
     * 删除湿料计划管理信息
     *
     * @param id 湿料计划管理主键
     * @return 结果
     */
    public int deleteProWetMaterialPlanById(String id);

    /**
     * 通过工单生产日期查询所有子工单
     *
     * @param productDate
     * @return
     */
    AjaxResult getWorkOrderByTime(Date productDate);

    /**
     * 查询料罐list
     *
     * @return
     */
    AjaxResult getBucketList();

    /**
     * 获取物料信息list
     *
     * @return
     */
    AjaxResult getProductList();

    /**
     * 通过计划日期获取当前已经分配的料罐、物料、班次信息list
     *
     * @param planTime
     * @return
     */
    AjaxResult getBMSList(Date planTime);

    /**
     * 提交湿料计划接口
     *
     * @param proOrderWorkorderList
     * @return
     */
    AjaxResult addWetPlan(List<ProOrderWorkorder> proOrderWorkorderList);
}
