package com.bcxin.ins.service.order;


import com.bcxin.ins.entity.policy_core.InsShipDeclare;
import com.bcxin.ins.vo.DwzPage;
import com.bcxin.ins.vo.OrderFormVo;
import com.bcxin.ins.vo.ShipDeclareMultipleVo;
import com.bcxin.ins.vo.ShipDeclareStepTwoSearchVo;
import com.bcxin.mybatisplus.service.IService;

import java.util.List;


public interface ShipDeclareAPIService extends IService<InsShipDeclare> {
	
	/** 根据ID获取ShipDeclare(不取相关订单)
	 * 	没取到返回null
	 *  */
	public InsShipDeclare getShipDeclareById(Long id);
	
	/** 根据订单的ID获取ShipDeclare(不取相关订单)
	 * 	没取到返回null
	 *  */
	public List<InsShipDeclare> getShipDeclareByInsOrderFormId(Long ins_order_form_id, DwzPage page);
	
//	/** 计算出运的viewType，当前时间和出运时间比较
//	 * 	0： 当前时间小于出运时间
//	 * 	1： 当前时间大于出运时间
//	 * */
//	public void calculateShipDeclareViewType();
	
	/**
	 * 获取出运第二步下方已有出运列表
	 * @author liumd
	 * @date 2017年1月16日
	 */
	public List<ShipDeclareMultipleVo> getShipDeclareVoByInsOrderFormId(Long ins_order_form_id, DwzPage page);
	
	/**
	 * 获取出运第二步下方已有出运列表(供搜索使用)
	 * @author liumd
	 * @date 2017年1月16日
	 */
	public List<ShipDeclareMultipleVo> getShipDeclareVoByInsOrderFormIdAndVo(Long ins_order_form_id, ShipDeclareStepTwoSearchVo searchVo, DwzPage page);
	
	/**
	 * 获取所有出运信息
	 * @author liumd
	 * @date 2017年1月19日
	 */
//	public List<ShipDeclareHtIndexVo> getAllShipDeclare();
	
	/**
	 * 获取出运首页可以用于出运的OrderFormVo；
	 * @return
	 */
	public List<OrderFormVo> getCanShipDeclareList(Long userId, DwzPage page);
	
	/**
	 * 根据订单ID获取OrderFormVo；
	 * @return
	 */
	public OrderFormVo getOrderFormVoByOrderFormId(Long orderFormId);
	
	
	/**
	 * 根据订单ID获取该订单下所有被保险人列表；
	 * @return
	 */
	public List<String> getInsureNameList(Long orderFormId);
	
}
