package com.prolog.rdc.tms.service.basicConfigure;

import com.prolog.framework.core.pojo.Page;
import com.prolog.rdc.tms.model.dto.basicConfigure.BusinessFlowQueryDTO;
import com.prolog.rdc.tms.model.dto.basicConfigure.BusinessFlowViewDTO;
import com.prolog.rdc.tms.model.dto.basicConfigure.ShipbillFitBusinessFlowDTO;
import com.prolog.rdc.tms.model.vo.basicConfigure.BusinessFlowAddVO;
import com.prolog.rdc.tms.model.vo.basicConfigure.BusinessFlowQueryVO;
import com.prolog.rdc.tms.model.vo.basicConfigure.BusinessFlowShipbillVO;
import com.prolog.rdc.tms.model.vo.basicConfigure.BusinessFlowUpdateVO;

import java.util.List;

/**
 *
 *
 * 业务流程服务层
 *
 * @className :BusinessFlowService
 * @author :lhb
 * @creationTime :2022/06/16
 * @description :
 *
 * @modifier :
 * @modifyTime :
 * @reviseRemarks:
 *
 * @version :1.0.0
 *
 */
public interface BusinessFlowService {

    /**
     * 业务流程分页查询
     *
     * @param businessFlowQueryVO
     * @return
     */
    Page<BusinessFlowQueryDTO> queryBusinessFlow(BusinessFlowQueryVO businessFlowQueryVO);

    /**
     * 业务流程新增
     *
     * @param businessFlowAddVO
     * @return
     */
    void add(BusinessFlowAddVO businessFlowAddVO);

    /**
     * 业务流程修改
     *
     * @param businessFlowUpdateVO
     * @return
     */
    void update(BusinessFlowUpdateVO businessFlowUpdateVO);

    /**
     * 业务流程删除
     *
     * @param ids
     * @return
     */
    void delete(List<Long> ids);

    /**
     * 业务流程查看
     *
     * @param id
     * @return
     */
    BusinessFlowViewDTO view(Long id);

    /**
     * 运单适用业务流程查询
     *
     * @param businessFlowShipbillVO
     * @return
     */
    ShipbillFitBusinessFlowDTO shipbillMatchQuery(BusinessFlowShipbillVO businessFlowShipbillVO);
}
