package com.jwipc.order.logic;

import com.jwipc.order.dto.AppointmentShowMainDTO;
import com.jwipc.order.dto.DevAppointmentParamDTO;
import com.jwipc.order.model.query.AppointmentRecordQuery;
import com.jwipc.order.model.query.AppointmentShowTimeQuery;
import com.jwipc.page.PageView;

import java.util.List;

/**
 * <p>
 *
 * </p>
 *
 * @author wt
 * @version 1.0
 * @since 2024/3/5
 */
public interface AppointmentRecordLogic {
    /**
     * 查询列表
     * @param query
     * @return
     */
    PageView getList(AppointmentRecordQuery query);

    /**
     * 送货单类型 预约送货保存
     *
     */
    void devOrderSave(DevAppointmentParamDTO paramDTO) throws Exception;

    /**
     * 保存
     * @param selectDay
     * @param appointmentId
     * @param deleiverys
     * @param urgencyFlag
     * @param factoryCode
     * @param dockerCode
     */
    void save(String selectDay, Long appointmentId, List<String> deleiverys, Integer urgencyFlag, String factoryCode, String dockerCode, Long id,String supplierName,String supplierCode);

    /**
     * 送货单类型 预约变更
     *
     * @param selectDay     变更的日期
     * @param appointmentId 变更选择的时间范围
     * @param ids           预约记录ids
     * @param dockerCode    码头编码
     * @param factoryCode   工厂编码
     * @return
     */
    void devOrderChange(String selectDay, String appointmentId, String ids, String dockerCode, String factoryCode) throws Exception;

    /**
     *取消预约
     * @param ids ids
     */
    void deleteBatchIds(List<String> ids);

    /**
     *预约看板数据
     * @param query
     * @return
     */
    AppointmentShowMainDTO appointmentShow(AppointmentShowTimeQuery query);

    /**
     *送货单类型预约记录的查看
     * @param query
     * @return
     */
    PageView deliveryDetailsRecord(AppointmentRecordQuery query);

    void pass(String id);
}
