private Model_CommonParameters _CommonParameters;                         //公共参数
 public Assembly_ParametersAndProperties_V1()
 {
     _CementProperties              = new Model_CementProperties();             //水泥属性
     _ClinkerProperties             = new Model_ClinkerProperties();            //熟料属性
     _CoalProperties                = new Model_CoalProperties();               //煤粉属性
     _CogenerationProperties        = new Model_CogenerationProperties();       //余热发电属性
     _RecuperationProperties        = new Model_RecuperationProperties();       //余热利用属性
     _ClinkerProcessPowerProperties = new List <Model_MartieralsProperties>(1); //熟料工序用电属性
     _ClinkerProcessCoalProperties  = new List <Model_MartieralsProperties>(1); //熟料工序用煤属性
     _CementProcessPowerProperties  = new List <Model_MartieralsProperties>(1); //水泥磨工序用电属性
     _CementProcessCoalProperties   = new List <Model_MartieralsProperties>(0); //水泥磨工序用煤属性
     _CommonParameters              = new Model_CommonParameters();             //公共参数
 }
        /// <summary>
        /// 计算熟料综合煤耗
        /// </summary>
        /// <param name="myClinkerProperties">熟料属性</param>
        /// <param name="myCoalProperties">煤粉属性</param>
        /// <param name="myClinkerProcessMartieralsProperties">各耗煤工序物料属性</param>
        /// <returns>熟料综合煤耗</returns>
        public Model_CaculateValue GetClinkerCoalConsumption(Model_ClinkerProperties myClinkerProperties, Model_CoalProperties myCoalProperties, List <Model_MartieralsProperties> myClinkerProcessMartieralsProperties, Model_CommonParameters myCommonParameters)
        {
            Model_CaculateValue            m_Model_CaculateValue      = new Model_CaculateValue();
            List <Model_BaseCLCParameters> m_ClinkerBaseCLCParameters = new List <Model_BaseCLCParameters>(1);

            if (myClinkerProcessMartieralsProperties != null)
            {
                for (int i = 0; i < myClinkerProcessMartieralsProperties.Count; i++)
                {
                    //求工序干基煤耗
                    Model_BaseCLCParameters m_Model_BaseCLCParameters = new Model_BaseCLCParameters();
                    m_Model_BaseCLCParameters.ProcessName    = myClinkerProcessMartieralsProperties[i].ProcessName;    //获取工序名称
                    m_Model_BaseCLCParameters.MarterialsName = myClinkerProcessMartieralsProperties[i].MarterialsName; //获取物料名称
                    if (myClinkerProcessMartieralsProperties[i].MarterialsOutput != 0 && myClinkerProcessMartieralsProperties[i].MarterialsWaterContent < 1 && myClinkerProcessMartieralsProperties[i].MarterialsWaterContent >= 0)
                    {
                        m_Model_BaseCLCParameters.ProcessCoalConsumption = (myClinkerProcessMartieralsProperties[i].CoalQuantity * (1 - myCoalProperties.CoalWaterContent)) / (myClinkerProcessMartieralsProperties[i].MarterialsOutput * (1 - myClinkerProcessMartieralsProperties[i].MarterialsWaterContent));
                    }
                    else
                    {
                        m_Model_BaseCLCParameters.ProcessCoalConsumption = 0;
                    }
                    m_Model_BaseCLCParameters.ProcessMaterialsUsedQuantity = myClinkerProcessMartieralsProperties[i].MarterialsInput * (1 - myClinkerProcessMartieralsProperties[i].MarterialsWaterContent);
                    m_Model_BaseCLCParameters.CoalWaterContent             = myClinkerProcessMartieralsProperties[i].MarterialsWaterContent;
                    m_Model_BaseCLCParameters.CoalLowCalorificValue        = myCoalProperties.CoalLowCalorificValue;
                    m_ClinkerBaseCLCParameters.Add(m_Model_BaseCLCParameters);
                }
                m_Model_CaculateValue = m_Base_CoalConsumption.GetCoalConsumption(m_ClinkerBaseCLCParameters, myClinkerProperties.MarterialsOutput, myCommonParameters.StandardCalorificValue, "熟料");
            }
            m_Model_CaculateValue.CaculateName = "熟料综合煤耗";
            return(m_Model_CaculateValue);
        }
        /// <summary>
        /// 计算可比熟料综合煤耗
        /// </summary>
        /// <param name="myClinkerProperties">熟料属性</param>
        /// <param name="myCoalProperties">煤粉属性</param>
        /// <param name="myClinkerProcessMartieralsProperties">各耗煤工序物料属性</param>
        /// <param name="myCommonParameters">公共参数</param>
        /// <param name="myCogenerationProperties">余热发电属性</param>
        /// <param name="myRecuperationProperties">余热利用属性</param>
        /// <returns>可比熟料综合煤耗</returns>
        public Model_CaculateValue GetClinkerCoalConsumptionComparable(Model_ClinkerProperties myClinkerProperties, Model_CoalProperties myCoalProperties, List <Model_MartieralsProperties> myClinkerProcessMartieralsProperties,
                                                                       Model_CommonParameters myCommonParameters, Model_CogenerationProperties myCogenerationProperties, Model_RecuperationProperties myRecuperationProperties)
        {
            Model_CaculateValue            m_Model_CaculateValueComparable = new Model_CaculateValue();
            List <Model_BaseCLCParameters> m_ClinkerCLCParameters          = new List <Model_BaseCLCParameters>();
            List <Model_BaseCLCParameters> m_DeductionCLCParameters        = new List <Model_BaseCLCParameters>(); //应扣项
            //计算熟料煤耗
            Model_BaseCLCParameters m_Model_BaseCLCParameters = new Model_BaseCLCParameters();

            m_Model_BaseCLCParameters.ProcessName                  = "熟料综合煤耗"; //获取工序名称
            m_Model_BaseCLCParameters.MarterialsName               = "熟料";     //获取物料名称
            m_Model_BaseCLCParameters.ProcessCoalConsumption       = GetClinkerCoalConsumption(myClinkerProperties, myCoalProperties, myClinkerProcessMartieralsProperties, myCommonParameters).CaculateValue / 1000;
            m_Model_BaseCLCParameters.ProcessMaterialsUsedQuantity = myClinkerProperties.MarterialsOutput;
            m_Model_BaseCLCParameters.CoalWaterContent             = myCoalProperties.CoalWaterContent;
            m_Model_BaseCLCParameters.CoalLowCalorificValue        = myCoalProperties.CoalLowCalorificValue;
            m_ClinkerCLCParameters.Add(m_Model_BaseCLCParameters);
            //计算余热发电折算煤耗
            Model_BaseCLCParameters m_Model_BaseCLCParameters_Cogeneration = new Model_BaseCLCParameters();

            m_Model_BaseCLCParameters_Cogeneration.ProcessName                  = "余热发电折算煤耗"; //获取工序名称
            m_Model_BaseCLCParameters_Cogeneration.MarterialsName               = "熟料";       //获取物料名称
            m_Model_BaseCLCParameters_Cogeneration.ProcessCoalConsumption       = m_Base_CoalConsumption.GetCogenerationCoalConsumption(myCogenerationProperties.GrossGeneration, myCogenerationProperties.OwnDemand, myClinkerProperties.MarterialsOutput, myCommonParameters).CaculateValue / 1000;
            m_Model_BaseCLCParameters_Cogeneration.ProcessMaterialsUsedQuantity = myClinkerProperties.MarterialsOutput;
            m_Model_BaseCLCParameters_Cogeneration.CoalWaterContent             = 0;
            m_Model_BaseCLCParameters_Cogeneration.CoalLowCalorificValue        = myCoalProperties.CoalLowCalorificValue;
            m_DeductionCLCParameters.Add(m_Model_BaseCLCParameters_Cogeneration);
            //计算余热利用折算煤耗
            Model_BaseCLCParameters m_Model_BaseCLCParameters_Recuperation = new Model_BaseCLCParameters();

            m_Model_BaseCLCParameters_Cogeneration.ProcessName                  = "计算余热利用折算煤耗"; //获取工序名称
            m_Model_BaseCLCParameters_Cogeneration.MarterialsName               = "熟料";         //获取物料名称
            m_Model_BaseCLCParameters_Recuperation.ProcessCoalConsumption       = m_Base_CoalConsumption.GetRecuperationCoalConsumption(myRecuperationProperties.ImportHeat, myRecuperationProperties.ExportHeat, myRecuperationProperties.LossHeat, myClinkerProperties.MarterialsOutput, myCommonParameters).CaculateValue / 1000;
            m_Model_BaseCLCParameters_Recuperation.ProcessMaterialsUsedQuantity = myClinkerProperties.MarterialsOutput;
            m_Model_BaseCLCParameters_Recuperation.CoalWaterContent             = 0;
            m_Model_BaseCLCParameters_Recuperation.CoalLowCalorificValue        = myCoalProperties.CoalLowCalorificValue;
            m_DeductionCLCParameters.Add(m_Model_BaseCLCParameters_Recuperation);

            m_Model_CaculateValueComparable = m_Base_CoalConsumption.GetClinkerCoalConsumptionComparable(m_ClinkerCLCParameters, m_DeductionCLCParameters, myCommonParameters, myClinkerProperties);
            m_Model_CaculateValueComparable.CaculateName = "可比熟料综合煤耗";
            return(m_Model_CaculateValueComparable);
        }