package com.steering.pss.plnsaleord.order.baseMethod;

import java.math.BigDecimal;

public class CoreOrdBase {
	public static double PI = 3.1415926;

	/**
	 * 坯料属性
	 * 
	 * @param outPlMaterialNo
	 *            管坯产出物料编码
	 * @return
	 */
	public static String stuffProperty(String outPlMaterialNo) {
		String stuffpro = "";
		if (!outPlMaterialNo.equals("") && outPlMaterialNo.length() > 2) {
			if (outPlMaterialNo.substring(0, 2).equals("PA")) {
				stuffpro = "连铸坯";
			} else if (outPlMaterialNo.substring(0, 2).equals("PB")) {
				stuffpro = "锻坯";
			} else if (outPlMaterialNo.substring(0, 2).equals("PC")) {
				stuffpro = "轧坯";
			}
		}
		return stuffpro;
	}

	/**
	 * 生产分类
	 * 
	 * @param endCode
	 *            末工序代码
	 * @param prdcls
	 *            销售分类
	 * @param gprocessC
	 *            加工二级工序
	 * @param fprocessC
	 *            热处理二级工序
	 * @return
	 */
	public static String produceSort(String endCode, String prdcls,
			String gprocessC, String fprocessC) {
		String produceSort = "";
		if (endCode.compareTo("D") < 0) {
			produceSort = "商品坯";
		} else if (prdcls.equals("405004") || prdcls.equals("接箍短节")) {
			produceSort = "接箍短节";
		} else if (gprocessC.equals("B020")) {
			produceSort = "加工油套管";
		} else if (endCode.equals("D")) {
			produceSort = "热轧成品";
		} else if (endCode.equals("F") && fprocessC.equals("B024")) {
			produceSort = "热轧成品";
		} else {
			produceSort = "加工光管";
		}
		return produceSort;
	}

	/**
	 * 长度转换(米)
	 * 
	 * @param lenUnit
	 * @param len
	 * @return
	 */
	public static double lenConversion(String lenUnit, double len) {
		if (lenUnit.trim().equals("英尺")) {
			double converate = 0.3048; // 换算率
			BigDecimal bg = new BigDecimal(len * converate);
			return bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
		} else {
			return len;
		}
	}

	/**
	 * 管米单重计算(t/m)
	 * 
	 * @param outdiameter
	 *            外径(mm)
	 * @param aimwallthick
	 *            壁厚(mm)
	 * @return
	 */
	public static double WeightOfMi(double outdiameter, double aimwallthick) {
		double weightOfmi = 0.02466 * aimwallthick
				* (outdiameter - aimwallthick) / 1000;
		return weightOfmi;
	}

	/**
	 * 管坯米单重（t/m）
	 * 
	 * @param outdiameter
	 *            管坯断面(mm)
	 * @return
	 */
	public static double GpweightOfmi(double outdiameter) {
		return (7.8 * PI / 4 * outdiameter * outdiameter) / 1000 / 1000;
	}

	/**
	 * 镦拔扩默认切头尾（镦粗加长）
	 * 
	 * @param plineCode
	 * @return
	 */
	public static double addDbkDefault(String plineCode) {
		double addlen = 0;
		if (plineCode.trim().equals("C013")) {
			// 冷轧
			addlen = 30;
		} else if (plineCode.trim().equals("C014")) {
			// 冷拔
			addlen = 530;
		} else if (plineCode.trim().equals("C018")) {
			// 旋扩
			addlen = 600;
		} else if (plineCode.trim().equals("C070")) {
			// 热扩
			addlen = 400;
		} else if (plineCode.trim().equals("C021")
				|| plineCode.trim().equals("C067")) {
			// 镦粗
			addlen = 180;
		}
		return addlen;
	}

	/**
	 * 管属性
	 * 
	 * @param materialno
	 *            成品物料码
	 * @return
	 */
	public static String pipeProperty(String materialno) {
		String property = "";
		if (materialno != "" && materialno.length() > 2) {
			String materNo = materialno.substring(0, 2);
			if (materNo.equals("AW")) {
				property = "热轧无缝成品管";
			} else if (materNo.equals("AR")) {
				property = "热扩无缝成品管";
			} else if (materNo.equals("AL")) {
				property = "冷拔无缝成品管";
			} else if (materNo.equals("AH")) {
				property = "焊缝成品管";
			} else if (materNo.equals("AE")) {
				property = "接箍/短接/附件";
			} else if (materNo.equals("AP")) {
				property = "商品坯";
			}
		}
		return property;
	}

	/**
	 * 获取轧管去向
	 * 
	 * @param dOutMaterialNo
	 *            轧制产出物料编码
	 * @return
	 */
	public static String getPlnOrdZgAbc(String dOutMaterialNo) {
		String zgAbc = "";// 轧管去向
		if (!dOutMaterialNo.equals("")) {
			if (dOutMaterialNo.contains("AW")) {
				zgAbc = "A";
			} else if (dOutMaterialNo.contains("WX")) {
				if (dOutMaterialNo.toUpperCase().contains("GZ")) {
					zgAbc = "C";
				} else {
					zgAbc = "B";
				}
			}
		}
		return zgAbc;
	}

	/**
	 * 通过制程全程码以及描述获取轧管去向
	 * 
	 * @param wholeBacklog
	 *            制程全程途径码
	 * @param wholeBacklogDesc
	 *            全程途径描述
	 * @return
	 */
	public static String getAbc(String wholeBacklog, String wholeBacklogDesc) {
		if (!wholeBacklog.contains("D")) {
			return "";
		}
		// 如果制程 轧管结束，返回A
		if (wholeBacklog.endsWith("D")) {
			return "A";
		} else {
			// 如果制程二级工序包含仅探伤,并且不包含镦拔扩，加工，返回B
			if (wholeBacklogDesc.contains("仅探伤") && !wholeBacklog.contains("E")
					&& !wholeBacklog.contains("G")) {
				return "B";
			}
			// 如果制程包含镦拔扩，返回C
			if (wholeBacklog.contains("E")) {
				return "C";
			}
			// 如果制程包含热处理但二级工序不包含仅探伤,则返回 C
			if (wholeBacklog.contains("F") && !wholeBacklogDesc.contains("仅探伤")) {
				return "C";
			}
			return "B";
		}
	}

}