package com.steering.pss.sale.order.qualityDesign.server.imp;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;

import com.steering.pss.sale.order.model.DesignMscPlGxPrlEntity;
import com.steering.pss.sale.order.model.DesignMscPlGzEntity;
import com.steering.pss.sale.order.model.DesignMscPlStiEntity;
import com.steering.pss.sale.order.model.DesignMscBiltCEntity;
import com.steering.pss.sale.order.model.DesignMscBiltEntity;
import com.steering.pss.sale.order.model.DesignMscGzGgEntity;
import com.steering.pss.sale.order.qualityDesign.ReturnsModel.ReProLineEntity;
import com.steering.pss.sale.order.qualityDesign.ReturnsModel.ReSpecEntity;

/**
 * 镦拔扩接口
 * 
 * @author Administrator
 * 
 */
public interface RollUpsetImp {

	/**
	 * 生产轧管规格(不含镦拔扩)
	 * 
	 * @param designKey
	 * @param dimater
	 * @param height
	 * @param mscPline
	 * @param specCode
	 * @param specName
	 * @return
	 */
	DesignMscGzGgEntity getrolledspecA(String designKey, String dimater,
			String height, String mscPline, String specCode, String specName);

	/**
	 * 适用产线（热处理）
	 * 
	 * @param con
	 *            连接字符串
	 * @param designKey
	 *            质量主键
	 * @param msc
	 *            冶金规范码
	 * @param mscPline
	 *            全程产线号
	 * @param height
	 *            外径
	 * @param dimater
	 *            壁厚
	 * @return List<DesignMscPlGxPrlEntity>
	 * @throws SQLException
	 */
	ReProLineEntity getHeatProline(Connection con, String designKey,
			String msc, String mscPline, String height, String dimater)
			throws SQLException;

	/**
	 * 适用产线(加工、接箍加工工序)
	 * 
	 * @param con
	 *            连接字符串
	 * @param processCode
	 *            工序
	 * @param designKey
	 *            质量主键
	 * @param msc
	 *            冶金规范码
	 * @param mscPline
	 *            全程产线号
	 * @param height
	 *            外径
	 * @param dimater
	 *            壁厚
	 * @param modelCode
	 *            扣型
	 * @param modelDesc
	 *            扣型描述
	 * @param processCode
	 *            工序
	 * @param specStyle
	 *            产品类型
	 * @return List<DesignMscPlGxPrlEntity>
	 * @throws SQLException
	 */
	ReProLineEntity getJGProLine(Connection con, String designKey, String msc,
			String mscPline, String height, String dimater, String modelCode,
			String modelDesc, String processCode, String specStyle)
			throws SQLException;

	/**
	 * 适用产线(镦拔扩、轧管)
	 * 
	 * @param con
	 *            连接字符串
	 * @param msc
	 *            合同行冶金规范码
	 * @param dimater
	 *            外径
	 * @param height
	 *            壁厚
	 * @param designKey
	 *            主鍵
	 * @param mscPline
	 *            全程产线号
	 * @param processCode
	 *            工序
	 * @return List<DesignMscPlGxPrlEntity>
	 * @throws SQLException
	 */
	public ReProLineEntity getRollProLine(Connection con, String msc,
			String dimater, String height, String designKey, String mscPline,
			String processCode) throws SQLException;

	/**
	 * 适用产线（铸造、锻造）
	 * 
	 * @param con
	 *            连接字符串
	 * @param msc
	 *            冶金规范码
	 * @param specCode
	 *            规格代码（断面、坯料规格）
	 * @param specCode
	 *            规格描述（断面、坯料规格）
	 * @param designKey
	 *            主键
	 * @param mscPline
	 *            全程途径码
	 * @param processCode
	 *            工序
	 * @return List<DesignMscPlGxPrlEntity>
	 * @throws SQLException
	 */
	ReProLineEntity getSectionProLine(Connection con, String msc,
			String specCode, String specName, String designKey,
			String mscPline, String processCode) throws SQLException;

	/**
	 * 适用产线（电炉等）
	 * 
	 * @param con
	 *            连接字符串
	 * @param processCode
	 *            工序代码
	 * @param designEntity
	 *            质量设计类
	 * @param mscPline
	 *            全程产线号
	 * @return List<DesignMscPlGxPrlEntity>
	 * @throws SQLException
	 */
	public List<DesignMscPlGxPrlEntity> getProLine(Connection con,
			String processCode, String designKey, String msc, String mscPline)
			throws SQLException;

	/**
	 * 轧管规格
	 * 
	 * @param con
	 *            连接字符串
	 * @param designKey
	 *            质量主键
	 * @param msc
	 *            合同行冶金规范码
	 * @param dimater
	 *            成品外径
	 * @param height
	 *            成品壁厚
	 * @param wholeBacklog
	 *            全程途径码
	 * @param mscPline
	 *            全程产线号
	 * @param grade
	 *            钢种类
	 * @return List<OrdDesignMscGzGgEntity>
	 * @throws SQLException
	 */
	ReSpecEntity getrolledspec(Connection con, String designKey, String msc,
			String dimater, String height, String wholeBacklog,
			String mscPline, DesignMscPlGzEntity grade, String specCode,
			String specName) throws SQLException;

	/**
	 * 断面
	 * 
	 * @param con
	 *            连接字符串
	 * @param dimater
	 *            轧管外径
	 * @param height
	 *            轧管壁厚
	 * @param mscPline
	 *            全程产线号
	 * @param designKey
	 *            质量主键
	 * @param designKey
	 *            轧管代码
	 * @return List<OrdDesignMscBiltEntity>
	 * @throws SQLException
	 */
	List<DesignMscBiltEntity> getSection(Connection con, String dimater,
			String height, String mscPline, String designKey, String specCode)
			throws SQLException;

	/**
	 * 坯料规格
	 * 
	 * @param con
	 *            连接字符串
	 * @param specCode
	 *            轧管代码
	 * @param specName
	 *            断面代码
	 * @param mscPline
	 *            全程产线号
	 * @param msc
	 *            冶金规格码
	 * @param designKey
	 *            质量主键
	 * @return List<OrdDesignMscBiltCEntity>
	 * @throws SQLException
	 */
	public List<DesignMscBiltCEntity> getBlankSpec(Connection con,
			String specCodeA, String specCode, String mscPline, String msc,
			String designKey, String flag) throws SQLException;

	/**
	 * 如果不经过锻造，就经过连铸（将断面规格转化成连铸的坯料规格）
	 * 
	 * @param sections
	 *            断面规格
	 * @return List<OrdDesignMscBiltCEntity>
	 */
	List<DesignMscBiltCEntity> changeSectionToBlank(
			List<DesignMscBiltEntity> sections);

	/**
	 * 查询制程向下所有工序点
	 * 
	 * @param con
	 *            连接字符串
	 * @param msc
	 *            合同行冶金规范码
	 * @param designKey
	 *            质量主键
	 * @param mscPline
	 *            全程产线号
	 * @param wholeBacklog
	 *            全程途径码
	 * @param WholeBacklogDesc
	 *            全程途径描述
	 * @return 制程工序点实体类
	 * @throws SQLException
	 */
	public List<DesignMscPlStiEntity> getOperationPoints(Connection con,
			String msc, String designKey, String mscPline, String wholeBacklog,
			String WholeBacklogDesc) throws SQLException;
}
