package com.steering.pss.plnsaleord.ordAmCal;

/**
 * 加工、热处理、镦拔扩工序计划量计算
 * @author xiaohai
 * @date 2015-11-18
 */
public class PlnProcCal {
    /**
     * 加工投料量计算
     * @param planWt 计划量 （t）
     * @param planNum 计划支数
     * @param addNum 加投支数
     * @param aimlenZg 目标轧管转移长度（m）
     * @param wJ 米单重（t/m）
     * @param addlenDbk 拔扩加长（mm）
     * @param addlenZgRule 轧管加长原则(mm)
     * @return （t）
     */
    public static double ordJgxInventory(double planWt, int planNum,
            int addNum, double aimlenZg, double wJ, double addlenDbk,
            double addlenZgRule) {
        double ordInvenWt = 0;
        double addWt = 0;
        double addZgRuleWt = 0;// 轧管加长原则吨数
        addZgRuleWt = planNum * wJ * addlenZgRule / 1000;
        addWt = addNum * wJ * (aimlenZg - addlenDbk / 1000);
        ordInvenWt = planWt + addZgRuleWt;//addWt +
        return ordInvenWt;
    }

    /**
     * 热处理投料量计算
     * @param planWt 计划量 （t）
     * @param planNum 计划支数
     * @param addNum 加投支数
     * @param aimlenZg 目标轧管转移长度（m）
     * @param wJ 米单重（t/m）
     * @param addlenDbk 拔扩加长（mm）
     * @param addlenInspect 探伤盲区切长（mm）
     * @param buring 烧损（%）
     * @return （t）
     */
    public static double ordRclInventory(double planWt, int planNum,
            int addNum, double aimlenZg, double wJ, double addlenDbk,
            double addlenInspect, double buring) {
        double ordInvenWt = 0;
        double buringWt = 0;
        double addWt = 0;
        double cutWt = 0;// 切损吨数
        cutWt = planNum * wJ * addlenInspect / 1000;
        addWt = addNum * wJ * (aimlenZg - (addlenDbk + addlenInspect) / 1000);
        buringWt = planWt * buring / 100;
        ordInvenWt =(planWt+cutWt)/(1-buring/100);// planWt + buringWt + cutWt;//addWt + 
        return ordInvenWt;
    }

    /**
     * 镦拔扩投料量计算
     * @param planWt 计划量 （t）
     * @param planNum 计划支数
     * @param addNum 加投支数
     * @param cutlenDbk 镦拔扩切头尾量（mm）
     * @param aimlenZg 目标轧管转移长度（m）
     * @param wJ 米单重（t/m）
     * @param buring 烧损（%）
     * @return （t）
     */
    public static double ordDbkInventory(double planWt, int planNum,
            int addNum, double cutlenDbk, double aimlenZg, double wJ,
            double buring) {
        double ordInvenWt = 0;
        double addWt = 0;
        double buringWt = 0;
        double cutWt = 0;// 切损吨数
        cutWt = planNum * wJ * cutlenDbk / 1000;
        addWt = addNum * wJ * aimlenZg;
        buringWt = (planWt+cutWt)/(1-buring/100) * buring / 100;
        ordInvenWt = (planWt+cutWt)/(1-buring/100);//planWt +  buringWt + cutWt;//addWt +
        return ordInvenWt;
    }

}