private decimal?[] GetHeatElecData(string CustId, int YY)
        {
            var db = new EnergyNetEntities();
            ObjectParameter HeatEnergyUse_FuelOil = new ObjectParameter("HeatEnergyUse_FuelOil", typeof(decimal));
            ObjectParameter HeatEnergyUse_LPG = new ObjectParameter("HeatEnergyUse_LPG", typeof(decimal));
            ObjectParameter HeatEnergyUse_NG = new ObjectParameter("HeatEnergyUse_NG", typeof(decimal));
            ObjectParameter HeatEnergyUse_Gas = new ObjectParameter("HeatEnergyUse_Gas", typeof(decimal));

            ObjectParameter HeatEnergyUse_DieselOil = new ObjectParameter("HeatEnergyUse_DieselOil", typeof(decimal));
            ObjectParameter HeatTotalFee = new ObjectParameter("HeatTotalFee", typeof(decimal));
            ObjectParameter ElecEnergyUse_ReqularContract = new ObjectParameter("ElecEnergyUse_ReqularContract", typeof(decimal));
            ObjectParameter ElecEnergyUse_HPD = new ObjectParameter("ElecEnergyUse_HPD", typeof(decimal));

            ObjectParameter ElecEnergyUse_TotalElec = new ObjectParameter("ElecEnergyUse_TotalElec", typeof(decimal));
            ObjectParameter ElecEnergyUse_PowerFactor = new ObjectParameter("ElecEnergyUse_PowerFactor", typeof(decimal));
            ObjectParameter ElecEnergyUse_TotalElecCost = new ObjectParameter("ElecEnergyUse_TotalElecCost", typeof(decimal));
            ObjectParameter UniteElec = new ObjectParameter("UniteElec", typeof(int));
            var items = db.p_UnitAreaConsumesEnergy_Get(CustId, YY, HeatEnergyUse_FuelOil, HeatEnergyUse_LPG, HeatEnergyUse_NG, HeatEnergyUse_Gas, HeatEnergyUse_DieselOil, HeatTotalFee, ElecEnergyUse_ReqularContract, ElecEnergyUse_HPD, ElecEnergyUse_TotalElec, ElecEnergyUse_PowerFactor, ElecEnergyUse_TotalElecCost, UniteElec).ToList();

            //Log.Write(new string[] { "HeatEnergyUse_FuelOil", HeatEnergyUse_FuelOil.Value == DBNull.Value });
            //Log.WriteToFile();

            var v1 = HeatEnergyUse_FuelOil.Value == DBNull.Value ? 0 : (decimal)HeatEnergyUse_FuelOil.Value;
            var v2 = HeatEnergyUse_LPG.Value == DBNull.Value ? 0 : (decimal)HeatEnergyUse_LPG.Value;
            var v3 = HeatEnergyUse_NG.Value == DBNull.Value ? 0 : (decimal)HeatEnergyUse_NG.Value;
            var v4 = HeatEnergyUse_Gas.Value == DBNull.Value ? 0 : (decimal)HeatEnergyUse_Gas.Value;
            var v5 = HeatEnergyUse_DieselOil.Value == DBNull.Value ? 0 : (decimal)HeatEnergyUse_DieselOil.Value;

            var Heat_TotalValue = v1 + v2 + v3 + v4 + v5;

            var Str_ElecEnergyUse_TotalElec = ElecEnergyUse_TotalElec.Value == DBNull.Value ? 0 : (decimal)ElecEnergyUse_TotalElec.Value;
            var Str_ElecEnergyUse_TotalHeat = Str_ElecEnergyUse_TotalElec * 2236 / 1000;

            var Str_HeatElec_OValue = Heat_TotalValue + Str_ElecEnergyUse_TotalHeat;
            var Str_FloorSquareMeasure = items == null ? 0 : items.Select(x => x.FloorSquareMeasure).Sum();

            var Str_AreaEnergy = Str_FloorSquareMeasure == 0 ? 0 : Str_HeatElec_OValue / Str_FloorSquareMeasure;
            var Str_AreaElecEnergy = Str_FloorSquareMeasure == 0 ? 0 : Str_ElecEnergyUse_TotalElec / Str_FloorSquareMeasure;
            var Str_AreaElec = Str_FloorSquareMeasure == 0 || ElecEnergyUse_HPD.Value == DBNull.Value ? 0 : (decimal)ElecEnergyUse_HPD.Value * 1000 / Str_FloorSquareMeasure;

            return new decimal?[] { Str_AreaEnergy, Str_AreaElecEnergy, Str_AreaElec };
        }