package com.ym.mec.biz.service;


import java.math.BigDecimal;
import java.util.List;

import com.ym.mec.biz.dal.dto.PageInfoOrder;
import com.ym.mec.biz.dal.dto.StudentPaymentRouteOrderDto;
import com.ym.mec.biz.dal.entity.StudentPaymentRouteOrder;
import com.ym.mec.biz.dal.enums.AuditStatusEnum;
import com.ym.mec.biz.dal.page.StudentPaymentOrderQueryInfo;
import com.ym.mec.common.entity.HttpResponseResult;
import com.ym.mec.common.page.PageInfo;
import com.ym.mec.common.page.QueryInfo;
import com.ym.mec.common.service.BaseService;
import org.springframework.web.multipart.MultipartFile;


public interface StudentPaymentRouteOrderService extends BaseService<Long, StudentPaymentRouteOrder> {
	
	/**
	 * 查询审核列表
	 * @param queryInfo
	 * @return
	 */
	PageInfo<StudentPaymentRouteOrder> queryAuditList(QueryInfo queryInfo);

	PageInfoOrder<StudentPaymentRouteOrderDto> OrderQueryPage(StudentPaymentOrderQueryInfo queryInfo);

	/**
	 * 添加外部订单
	 * @param studentPaymentRouteOrder
	 * @return
	 */
	StudentPaymentRouteOrder addOutOrder(StudentPaymentRouteOrder studentPaymentRouteOrder);
	
	/**
	 * 更新外部订单
	 * @param studentPaymentRouteOrder
	 * @return
	 */
	StudentPaymentRouteOrder updateOutOrder(StudentPaymentRouteOrder studentPaymentRouteOrder);
	
	/**
	 * 审核外部订单
	 * @param studentPaymentRouteOrderId
	 * @param auditStatus
	 * @param memo
	 * @param operatorId
	 * @return
	 */
	boolean auditOutOrder(Long studentPaymentRouteOrderId,AuditStatusEnum auditStatus,String memo,Integer operatorId);

	/**
	 * 添加分润订单
	 * @param orderNo
	 * @param routeOrganId
	 * @param routeAmount
	 * @return
	 */
	StudentPaymentRouteOrder addRouteOrder(String orderNo,Integer routeOrganId, BigDecimal routeAmount);

	/**
	 * 删除外部添加的订单
	 * @param orderId
	 * @return
	 */
	Boolean deleteRouteOrder(Long orderId);

	/**
	 * 财务管理订单导入
	 * @author zouxuan
	 * @param file
	 * @return
	 */
	HttpResponseResult<List<StudentPaymentRouteOrder>> importRouteOrder(MultipartFile file) throws Exception;
}