package com.bcxin.ins.service.order;


import com.bcxin.ins.entity.policy_core.InsInsuranceSlip;
import com.bcxin.ins.entity.product_core.ProPrimary;
import com.bcxin.ins.vo.*;

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

/**
 * <b> 该业务类已迁至policyService业务类（当前已弃用，保留以作借鉴） </b>
 * @author ZXF
 * @create 2018/03/14 0014 11:03
 * @version
 * @注意事项 </b>
 */
public interface InsuranceOperationAPIService {
	
	public InsInsuranceSlip initOrderCorrelation(Long poductID, Long user_id, String recommendCode,String trade_serial_number);
	
	public void setMicroExportByMicroExportVo(MicroExportVo vo);
	
	public MicroExportVo getMicroExportVoByOrderID(Long orderID);
	
	public void setCommonExportByCommonExportVo_1(CommonExportVo_1 vo);
	
	public void setCommonExportByCommonExportVo_2(CommonExportVo_2 vo);
	
	public void setCommonExportByCommonExportVo_3(CommonExportVo_3 vo);
	
	public CommonExportVo_1 getCommonExportVo_1ByOrderID(Long orderID);
	
	public CommonExportVo_2 getCommonExportVo_2ByOrderID(Long orderID);
	
	public CommonExportVo_3 getCommonExportVo_3ByOrderID(Long orderID);
	
	public List<OrderFormVo> selectInsOrderFormByUserIDAndStatusSetUpOrderFormVo(Long user_id, String status, String productType, String keyword, String starDate, String endDate, DwzPage page);
	
	public OrderStatusCountVo selectOrderStatusCountVoByUserID(Long user_id, String pType, String keyword, String starDate, String endDate);
	
	public List<ProductVo> selectProductVoList(ProPrimary insProduct);
	
	public ProductVo accordingToInsProductIDToGetInsProductInProductVo(Long insProductID);
	
	public OrderFormVo accordingToOrderIDToGetOrderFormVo(Long order_id);

	public AdviceNoteVo accordingToOrderIDToGetAdviceNoteVo(Long order_id);

	public String updateOrderFormStatus(OrderFormVo vo);

	public void orderSyncZC(String oid);
	
	public String uploadPayMentFileToTranction(String path_url, String order_id, String path_sign, String payAmount, String paymentMethod);

	public String accordingToOrderIDGainPathSign(String order_id);
	
	public void accordingToInsTopBuyersListGainInsRiskDuty(Long order_id);
	
	public void accordingToOrderIDCreatePolicySerialNumber(Long order_id);

	public UnderwriteVo accordingToOrderIDGainInsUnderwrite(Long order_id);

	public boolean deleteRoleInPolicyByOid(Long role_id);

	public OrderFormVo findPolicyByExternalAndRoleName(String externalRefernce, String roleName);


	/****************************BUILD*******************************/


	public void setSpecialBidBySpecialBidVo(SpecialBidVo vo);

	public SpecialBidVo getSpecialBidVoByOrderID(Long orderID);

	public void setSpecialPerformanceBySpecialPerformanceVo_1(SpecialPerformanceVo_1 vo);

	public void setSpecialPerformanceBySpecialPerformanceVo_2(SpecialPerformanceVo_2 vo);

	public void setSpecialPerformanceBySpecialPerformanceVo_3(SpecialPerformanceVo_3 vo);

	public SpecialPerformanceVo_1 getSpecialPerformanceVo_1ByOrderID(Long orderID);

	public SpecialPerformanceVo_2 getSpecialPerformanceVo_2ByOrderID(Long orderID);

	public SpecialPerformanceVo_3 getSpecialPerformanceVo_3ByOrderID(Long orderID);


	/****************************LAWSUIT*******************************/


	public void setSpecialLitigationBySpecialLitigationVo_1(SpecialLitigationVo_1 vo);

	public void setSpecialLitigationBySpecialLitigationVo_2(SpecialLitigationVo_2 vo);

	public void setSpecialLitigationBySpecialLitigationVo_3(SpecialLitigationVo_3 vo);

	public SpecialLitigationVo_1 getSpecialLitigationVo_1ByOrderID(Long orderID);

	public SpecialLitigationVo_2 getSpecialLitigationVo_2ByOrderID(Long orderID);

	public SpecialLitigationVo_3 getSpecialLitigationVo_3ByOrderID(Long orderID);

	public boolean deleteLnAccusedByOid(Long lna_id);

	/****************************GMR*******************************/


	public void setGMRPolicyByGMRPolicyVo(GMRPolicyVo vo);

	public GMRPolicyVo getGMRPolicyVoByOrderID(Long orderID);

	/****************************AFR*******************************/


	public void setSpecialPublicDutyBySpecialPublicDutyVo(SpecialPublicDutyVo vo);

	public SpecialPublicDutyVo getSpecialPublicDutyVoByOrderID(Long orderID);

	/****************************ZZX*******************************/


	public void setLOTEPolicyByLOTEPolicyVo(LOTEPolicyVo vo);

	public LOTEPolicyVo getLOTEPolicyVoByOrderID(Long orderID);

	public BigDecimal setInsuredAmountByProductId(Long pId);

	/****************************GYX*******************************/


	public void setGYXPolicyByGYXPolicyVo(GYXPolicyVo vo);

	public GYXPolicyVo getGYXPolicyVoByOrderID(Long orderID);
}
