package com.steering.pss.sale.order.bomGeneration.daoImp;

import java.sql.Connection;
import java.sql.SQLException;

import com.steering.pss.sale.order.bomGeneration.model.BaseMaterialEntity;
import com.steering.pss.sale.order.bomGeneration.model.DesignBomAEntity;
import com.steering.pss.sale.order.bomGeneration.model.DesignBomBEntity;
import com.steering.pss.sale.order.bomGeneration.model.DesignBomCEntity;
import com.steering.pss.sale.order.bomGeneration.model.DesignBomDEntity;
import com.steering.pss.sale.order.bomGeneration.model.DesignBomEEntity;
import com.steering.pss.sale.order.bomGeneration.model.DesignBomEntity;
import com.steering.pss.sale.order.bomGeneration.model.DesignBomFEntity;
import com.steering.pss.sale.order.bomGeneration.model.DesignBomGEntity;
import com.steering.pss.sale.order.bomGeneration.model.DesignBomIEntity;
import com.steering.pss.sale.order.bomGeneration.model.DesignBomKEntity;
import com.steering.pss.sale.order.bomGeneration.model.SlmOrdDesignBomHEntity;

/**
 * BOM保存数据接口
 * 
 * @author Administrator
 * 
 */
public interface BomSaveDaoImp {
	/**
	 * 保存BOM-电炉
	 * 
	 * @param con
	 * @param bomAentity
	 * @throws SQLException
	 */
	void saveBomA(Connection con, DesignBomAEntity bomAEntity)
			throws SQLException;

	/**
	 * 保存BOM-铸造
	 * 
	 * @param con
	 * @param bomBEntity
	 * @throws SQLException
	 */
	void saveBomB(Connection con, DesignBomBEntity bomBEntity)
			throws SQLException;

	/**
	 * 保存BOM-锻造
	 * 
	 * @param con
	 * @param bomCEntity
	 * @throws SQLException
	 */
	void saveBomC(Connection con, DesignBomCEntity bomCEntity)
			throws SQLException;

	/**
	 * BOM-轧管
	 * 
	 * @param con
	 * @param bomDEntity
	 * @throws SQLException
	 */
	void saveBomD(Connection con, DesignBomDEntity bomDEntity)
			throws SQLException;

	/**
	 * BOM-镦拨扩
	 * 
	 * @param con
	 * @param bomDEntity
	 * @throws SQLException
	 */
	void saveBomE(Connection con, DesignBomEEntity bomEEntity)
			throws SQLException;

	/**
	 * BOM-热处理
	 * 
	 * @param con
	 * @param bomDEntity
	 * @throws SQLException
	 */
	void saveBomF(Connection con, DesignBomFEntity bomFEntity)
			throws SQLException;

	/**
	 * 保存基础物料-接箍
	 * 
	 * @param con
	 *            连接字符串
	 * @param bomGEntity
	 *            接箍加工
	 * @throws SQLException
	 */
	void saveBaseMaterialJ(Connection con, DesignBomGEntity bomGEntity)
			throws SQLException;

	/**
	 * BOM-加工
	 * 
	 * @param con
	 * @param bomDEntity
	 * @throws SQLException
	 */
	void saveBomI(Connection con, DesignBomIEntity bomIEntity)
			throws SQLException;

	/**
	 * 保存合同行与物料对应关系
	 * 
	 * @param con
	 *            连接字符串
	 * @param designKey
	 *            质量主键
	 * @param bom
	 *            BOM主键
	 * @throws SQLException
	 */
	void saveLineBom(Connection con, String designKey, String bom)
			throws SQLException;

	/**
	 * 保存质量主键、产品物料BOM、接箍物料BOM关系
	 * 
	 * @param con
	 * @param designKey
	 *            质量主键
	 * @param bom
	 *            产品物料BOM
	 * @param bomJG
	 *            接箍物料
	 * @throws SQLException
	 */
	void saveLineBomJG(Connection con, String designKey, String bom,
			String bomJG) throws SQLException;

	/**
	 * 保存BOM
	 * 
	 * @param con
	 *            连接字符串
	 * @param bom
	 *            BOM类
	 * @throws SQLException
	 */
	void saveBom(Connection con, DesignBomEntity bom) throws SQLException;

	/**
	 * 修改BOM清单
	 * 
	 * @param con
	 *            连接字符串
	 * @param bom
	 *            BOM类
	 * @throws SQLException
	 */
	void updateBom(Connection con, DesignBomEntity bom) throws SQLException;

	/**
	 * 保存基础物料-电炉
	 * 
	 * @param con
	 *            连接字符串
	 * @param bomAEntity
	 *            电炉
	 * @throws SQLException
	 */
	void saveBaseMaterialA(Connection con, DesignBomAEntity bomAEntity)
			throws SQLException;

	/**
	 * 保存基础物料-铸造
	 * 
	 * @param con
	 *            连接字符串
	 * @param bomAEntity
	 *            电炉
	 * @throws SQLException
	 */
	void saveBaseMaterialB(Connection con, DesignBomBEntity bomBEntity)
			throws SQLException;

	/**
	 * 保存基础物料-锻造
	 * 
	 * @param con
	 *            连接字符串
	 * @param bomAEntity
	 *            电炉
	 * @throws SQLException
	 */
	void saveBaseMaterialC(Connection con, DesignBomCEntity bomCEntity)
			throws SQLException;

	/**
	 * 保存基础物料-轧管
	 * 
	 * @param con
	 *            连接字符串
	 * @param bomAEntity
	 *            电炉
	 * @throws SQLException
	 */
	void saveBaseMaterialD(Connection con, DesignBomDEntity bomDEntity)
			throws SQLException;

	/**
	 * 保存基础物料-墩拔扩
	 * 
	 * @param con
	 *            连接字符串
	 * @param bomAEntity
	 *            电炉
	 * @throws SQLException
	 */
	void saveBaseMaterialE(Connection con, DesignBomEEntity bomEEntity)
			throws SQLException;

	/**
	 * 保存基础物料-热处理
	 * 
	 * @param con
	 *            连接字符串
	 * @param bomAEntity
	 *            电炉
	 * @throws SQLException
	 */
	void saveBaseMaterialF(Connection con, DesignBomFEntity bomFEntity)
			throws SQLException;

	/**
	 * 保存基础物料
	 * 
	 * @param con
	 *            连接字符串
	 * @param baseMaterial
	 *            基础物料
	 * @throws SQLException
	 */
	void saveBaseMaterial(Connection con, BaseMaterialEntity baseMaterial)
			throws SQLException;

	/**
	 * 保存 基础数据-投入物料集合-加工
	 * 
	 * @param con连接字符串
	 * @param inMaterialSet
	 *            投入物料集合码(产出物料编码+3位流水号)
	 * @param inMaterialNo
	 *            投入物料编码(配料方案)
	 * @param inMaterialDesc
	 *            投入物料描述(配料方案)
	 * @throws SQLException
	 */
	void saveBaseMaterialIn(Connection con, String inMaterialSet,
			String inMaterialNo, String inMaterialDesc) throws SQLException;

	/**
	 * 保存 基础数据-投入物料集合-加工
	 * 
	 * @param con连接字符串
	 * @param inMaterialSet
	 *            投入物料集合码(产出物料编码+3位流水号)
	 * @param inMaterialNo
	 *            产出物料编码(配料方案)
	 * @param inMaterialDesc
	 *            产出物料描述(配料方案)
	 * @throws SQLException
	 */
	void saveBaseMaterialI(Connection con, String inMaterialSet,
			String outMaterialNo, String outMaterialDesc) throws SQLException;

	// ------------------------基础数据-投入产出-产线能力------------

	/**
	 * 保存 基础数据-电炉投入产出-产线能力
	 * 
	 * @param con
	 *            连接字符串
	 * @param inMaterialNo
	 *            投入物料编码
	 * @param outInMaterialNo
	 *            产出物料编码
	 * @param plineCode
	 *            适用产线编码
	 * @param plineName
	 *            适用产线描述
	 * @throws SQLException
	 */
	void saveBaseMaterialAPl(Connection con, String inMaterialNo,
			String outInMaterialNo, String plineCode, String plineName)
			throws SQLException;

	/**
	 * 保存 基础数据-铸造投入产出-产线能力
	 * 
	 * @param con
	 *            连接字符串
	 * @param inMaterialNo
	 *            投入物料编码
	 * @param outInMaterialNo
	 *            产出物料编码
	 * @param plineCode
	 *            适用产线编码
	 * @param plineName
	 *            适用产线描述
	 * @throws SQLException
	 */
	void saveBaseMaterialBPl(Connection con, String inMaterialNo,
			String outInMaterialNo, String plineCode, String plineName)
			throws SQLException;

	/**
	 * 保存 基础数据-锻造投入产出-产线能力
	 * 
	 * @param con
	 *            连接字符串
	 * @param inMaterialNo
	 *            投入物料编码
	 * @param outInMaterialNo
	 *            产出物料编码
	 * @param plineCode
	 *            适用产线编码
	 * @param plineName
	 *            适用产线描述
	 * @throws SQLException
	 */
	void saveBaseMaterialCPl(Connection con, String inMaterialNo,
			String outInMaterialNo, String plineCode, String plineName)
			throws SQLException;

	/**
	 * 保存 基础数据-轧管投入产出-产线能力
	 * 
	 * @param con
	 *            连接字符串
	 * @param inMaterialNo
	 *            投入物料编码
	 * @param outInMaterialNo
	 *            产出物料编码
	 * @param plineCode
	 *            适用产线编码
	 * @param plineName
	 *            适用产线描述
	 * @throws SQLException
	 */
	void saveBaseMaterialDPl(Connection con, String inMaterialNo,
			String outInMaterialNo, String plineCode, String plineName)
			throws SQLException;

	/**
	 * 保存 基础数据-墩拔扩投入产出-产线能力
	 * 
	 * @param con
	 *            连接字符串
	 * @param inMaterialNo
	 *            投入物料编码
	 * @param outInMaterialNo
	 *            产出物料编码
	 * @param plineCode
	 *            适用产线编码
	 * @param plineName
	 *            适用产线描述
	 * @throws SQLException
	 */
	void saveBaseMaterialEPl(Connection con, String inMaterialNo,
			String outInMaterialNo, String plineCode, String plineName)
			throws SQLException;

	/**
	 * 保存 基础数据-热处理投入产出-产线能力
	 * 
	 * @param con
	 *            连接字符串
	 * @param inMaterialNo
	 *            投入物料编码
	 * @param outInMaterialNo
	 *            产出物料编码
	 * @param plineCode
	 *            适用产线编码
	 * @param plineName
	 *            适用产线描述
	 * @throws SQLException
	 */
	void saveBaseMaterialFPl(Connection con, String inMaterialNo,
			String outInMaterialNo, String plineCode, String plineName)
			throws SQLException;

	/**
	 * 保存 基础数据-接箍投入产出-产线能力
	 * 
	 * @param con
	 *            连接字符串
	 * @param inMaterialNo
	 *            投入物料编码
	 * @param outInMaterialNo
	 *            产出物料编码
	 * @param plineCode
	 *            适用产线编码
	 * @param plineName
	 *            适用产线描述
	 * @throws SQLException
	 */
	void saveBaseMaterialJPl(Connection con, String inMaterialNo,
			String outInMaterialNo, String plineCode, String plineName)
			throws SQLException;

	/**
	 * 保存 基础数据-加工投入产出-产线能力
	 * 
	 * @param con
	 *            连接字符串
	 * @param inMaterialNo
	 *            投入物料编码
	 * @param outInMaterialNo
	 *            产出物料编码
	 * @param plineCode
	 *            适用产线编码
	 * @param plineName
	 *            适用产线描述
	 * @throws SQLException
	 */
	void saveBaseMaterialIPl(Connection con, String outInMaterialNo,
			String plineCode, String plineName) throws SQLException;

	/**
	 * BOM-加工
	 * 
	 * @param con
	 * @param bomDEntity
	 * @throws SQLException
	 */
	public void saveBomK(Connection con, DesignBomKEntity bomFEntity)
			throws SQLException;

	/**
	 * 保存基础物料-加工
	 * 
	 * @param con
	 *            连接字符串
	 * @param bomAEntity
	 *            电炉
	 * @throws SQLException
	 */
	public void saveBaseMaterialK(Connection con, DesignBomKEntity bomFEntity)
			throws SQLException;

	/**
	 * 保存 基础数据-热处理投入产出-产线能力
	 * 
	 * @param con
	 *            连接字符串
	 * @param inMaterialNo
	 *            投入物料编码
	 * @param outInMaterialNo
	 *            产出物料编码
	 * @param plineCode
	 *            适用产线编码
	 * @param plineName
	 *            适用产线描述
	 * @throws SQLException
	 */
	public void saveBaseMaterialKPl(Connection con, String inMaterialNo,
			String outInMaterialNo, String plineCode, String plineName,
			String inMaterialDesc, String outMaterialDesc) throws SQLException;

	/**
	 * 保存基础物料-接箍加工
	 * 
	 * @param con
	 *            连接字符串
	 * @param bomGEntity
	 *            接箍加工
	 * @throws SQLException
	 */
	public void saveBaseMaterialH(Connection con,
			SlmOrdDesignBomHEntity bomHEntity) throws SQLException;

	/**
	 * 保存 基础数据-接箍加工-产线能力
	 * 
	 * @param con
	 *            连接字符串
	 * @param inMaterialNo
	 *            投入物料编码
	 * @param outInMaterialNo
	 *            产出物料编码
	 * @param plineCode
	 *            适用产线编码
	 * @param plineName
	 *            适用产线描述
	 * @throws SQLException
	 */
	public void saveBaseMaterialHPl(Connection con, String inMaterialNo,
			String outInMaterialNo, String plineCode, String plineName,
			String inMaterialDesc, String outMaterialDesc) throws SQLException;

	/**
	 * BOM-接箍加工
	 * 
	 * @param con
	 * @param bomDEntity
	 * @throws SQLException
	 */
	public void saveBomH(Connection con, SlmOrdDesignBomHEntity bomHEntity)
			throws SQLException;
}
