package cn.estsh.i3plus.ext.mes.pcn.api.busi;

import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesWorkCenterExt;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.WeighManageInfoDetailModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.WeighManageInfoModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.WeighManageWorkOrderModel;
import io.swagger.annotations.ApiOperation;

import java.util.List;

/**
 * @Author: wangjie
 * @CreateDate: 2021/01/19 15:06 下午
 * @Description:
 **/
public interface ISxWeighManageService {

    /**
     * 查询生产线下拉框数据
     * @param organizeCode 组织代码
     * @return 生产线数据
     */
    @ApiOperation(value = "查询生产线下拉框数据", notes = "查询生产线下拉框数据")
    List<MesWorkCenterExt> queryCenterList(String organizeCode);

    /**
     * 查询启动工单列表数据,计划开始时间倒序
     * @param model    查询条件
     * @return 工单列表数据
     */
    @ApiOperation(value = "查询启动工单列表数据,计划开始时间倒序", notes = "查询启动工单列表数据,计划开始时间倒序")
    List<WeighManageWorkOrderModel> queryWorkOrderList(WeighManageWorkOrderModel model);

    /**
     * 查询工单管理称重单据列表数据,创建时间倒序
     * @param organizeCode  组织代码
     * @param workOrderNo   生产工单号
     * @return 称重单据列表
     */
    @ApiOperation(value = "查询工单管理称重单据列表数据,创建时间倒序", notes = "查询工单管理称重单据列表数据,创建时间倒序")
    List<WeighManageWorkOrderModel> queryWeighManageOrderList(String organizeCode, String workOrderNo);

    /**
     * 查询称重单据信息
     * @param id   称重单据ID
     * @return 称重单据信息
     */
    @ApiOperation(value = "查询称重单据信息", notes = "查询称重单据信息")
    WeighManageInfoModel queryWeighManageOrderInfo(Long id);

    /**
     * 查询称重单据信息明细,创建时间倒序
     * @param organizeCode 组织代码
     * @param orderJobNo   称重单据号
     * @param weighManageInfo 称重单据信息
     * @return 称重单据信息明细
     */
    @ApiOperation(value = "查询称重单据信息明细,创建时间倒序", notes = "查询称重单据信息明细,创建时间倒序")
    List<WeighManageInfoDetailModel> queryWeighManageOrderInfoDetail(String organizeCode, String orderJobNo, WeighManageInfoModel weighManageInfo);

    /**
     * 创建称重单据信息
     * @param model 单据信息
     */
    @ApiOperation(value = "创建称重单据信息", notes = "创建称重单据信息")
    void insertWeighManageOrder(WeighManageWorkOrderModel model);

    /**
     * 创建称重单据信息明细
     * @param model 单据明细信息
     */
    @ApiOperation(value = "创建称重单据信息明细", notes = "创建称重单据信息明细")
    void insertWeighManageOrderDetail(WeighManageInfoDetailModel model);

    /**
     * 确认纸箱
     * @param model  单据信息
     */
    @ApiOperation(value = "确认纸箱", notes = "确认纸箱")
    void updateWeighManageOrderCarton(WeighManageInfoModel model);
}
