using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.UI.WebControls;
namespace BLL
{
    public static class ProjectArchitectureReportItemService
    {
        /// 
        /// 建筑行业能源节约与生态环境保护汇总明细表
        /// 
        /// 建筑行业能源节约与生态环境保护汇总明细表Id
        /// 建筑行业能源节约与生态环境保护汇总明细表
        public static Model.Environmental_ProjectArchitectureReportItem GetArchitectureReportItemByArchitectureReportItemId(string ArchitectureReportItemId)
        {
            return Funs.DB.Environmental_ProjectArchitectureReportItem.FirstOrDefault(e => e.ArchitectureReportItemId == ArchitectureReportItemId);
        }
        /// 
        /// 建筑行业能源节约与生态环境保护汇总明细表
        /// 
        /// 建筑行业能源节约与生态环境保护汇总明细表Id
        /// 建筑行业能源节约与生态环境保护汇总明细表
        public static Model.Environmental_ProjectArchitectureReportItem GetArchitectureReportItemByArchitectureReportIdAndTypeId(string ArchitectureReportId)
        {
            return Funs.DB.Environmental_ProjectArchitectureReportItem.FirstOrDefault(e => e.ArchitectureReportId == ArchitectureReportId);
        }
        /// 
        /// 根据主表Id判断是否存在明细记录
        /// 
        /// 企业安全数据统计月报表Id
        /// 是否存在明细记录
        public static bool IsExitItems(string ArchitectureReportId)
        {
            return (from x in Funs.DB.Environmental_ProjectArchitectureReportItem where x.ArchitectureReportId == ArchitectureReportId select x).Count() > 0;
        }
        /// 
        /// 根据主表Id获取明细记录集合
        /// 
        /// 建筑行业能源节约与生态环境保护汇总明细表Id
        /// 明细记录集合
        public static List GetItems(string ArchitectureReportId)
        {
            return (from x in Funs.DB.Environmental_ProjectArchitectureReportItem
                    where x.ArchitectureReportId == ArchitectureReportId
                    orderby x.SortIndex
                    select x).ToList();
        }
        /// 
        /// 根据主表Id获取明细记录集合
        /// 
        /// 建筑行业能源节约与生态环境保护汇总明细表Id
        /// 明细记录集合
        public static List GetYearSumItems(string projectId, int? year, int? Month)
        {
            return (from x in Funs.DB.Environmental_ProjectArchitectureReportItem
                    join y in Funs.DB.Environmental_ProjectArchitectureReport
                    on x.ArchitectureReportId equals y.ArchitectureReportId
                    where y.ProjectId == projectId && y.Year == year && y.Month == Month
                    orderby x.SortIndex
                    select x).Distinct().ToList();
        }
        /// 
        /// 根据主表Id获取年度明细记录集合
        /// 
        /// 建筑行业能源节约与生态环境保护汇总明细表Id
        /// 年度明细记录集合
        public static List GetLastYearItems(int year)
        {
            return (from x in Funs.DB.Environmental_ProjectArchitectureReportItem
                    join y in Funs.DB.Environmental_ProjectArchitectureReport
                    on x.ArchitectureReportId equals y.ArchitectureReportId
                    where y.Year == year
                    select x).Distinct().ToList();
        }
        /// 
        /// 根据主表Id获取明细记录集合(不包含本月合计行)
        /// 
        /// 建筑行业能源节约与生态环境保护汇总明细表Id
        /// 明细记录集合
        public static List GetShowItems(string ArchitectureReportId)
        {
            var q = (from x in Funs.DB.Environmental_ProjectArchitectureReportItem
                     where x.ArchitectureReportId == ArchitectureReportId
                     orderby x.SortIndex
                     select x).ToList();
            List newItems = new List();
            var indexNames = GetIndexNames();
            var units = GetUnits();
            foreach (var item in q)
            {
                Model.ArchitectureReportItem newItem = new Model.ArchitectureReportItem();
                newItem.ArchitectureReportItemId = item.ArchitectureReportItemId;
                newItem.IndexName = indexNames.First(x => x.Value == item.SortIndex).Text;
                newItem.Unit = units.First(x => x.Value == item.SortIndex).Text;
                newItem.SortIndex = item.SortIndex;
                newItem.BaseNumber = item.BaseNumber;
                newItem.LastYearValue = item.LastYearValue;
                newItem.ThisYearValue = item.ThisYearValue;
                newItem.Rate = item.Rate;
                newItems.Add(newItem);
            }
            return newItems;
        }
        /// 
        /// 增加建筑行业能源节约与生态环境保护汇总明细表
        /// 
        /// 建筑行业能源节约与生态环境保护汇总明细表实体
        public static void AddArchitectureReportItem(Model.Environmental_ProjectArchitectureReportItem ArchitectureReportItem)
        {
            Model.Environmental_ProjectArchitectureReportItem newArchitectureReportItem = new Model.Environmental_ProjectArchitectureReportItem
            {
                ArchitectureReportItemId = ArchitectureReportItem.ArchitectureReportItemId,
                ArchitectureReportId = ArchitectureReportItem.ArchitectureReportId,
                BaseNumber = ArchitectureReportItem.BaseNumber,
                SortIndex = ArchitectureReportItem.SortIndex,
                LastYearValue = ArchitectureReportItem.LastYearValue,
                ThisYearValue = ArchitectureReportItem.ThisYearValue,
                Rate = ArchitectureReportItem.Rate,
            };
            Funs.DB.Environmental_ProjectArchitectureReportItem.InsertOnSubmit(newArchitectureReportItem);
            Funs.DB.SubmitChanges();
        }
        /// 
        /// 修改建筑行业能源节约与生态环境保护汇总明细表
        /// 
        /// 建筑行业能源节约与生态环境保护汇总明细表实体
        public static void UpdateArchitectureReportItem(Model.Environmental_ProjectArchitectureReportItem ArchitectureReportItem)
        {
            Model.Environmental_ProjectArchitectureReportItem newArchitectureReportItem = Funs.DB.Environmental_ProjectArchitectureReportItem.FirstOrDefault(e => e.ArchitectureReportItemId == ArchitectureReportItem.ArchitectureReportItemId);
            newArchitectureReportItem.SortIndex = ArchitectureReportItem.SortIndex;
            newArchitectureReportItem.BaseNumber = ArchitectureReportItem.BaseNumber;
            newArchitectureReportItem.LastYearValue = ArchitectureReportItem.LastYearValue;
            newArchitectureReportItem.ThisYearValue = ArchitectureReportItem.ThisYearValue;
            newArchitectureReportItem.Rate = ArchitectureReportItem.Rate;
            Funs.DB.SubmitChanges();
        }
        /// 
        /// 根据Id删除所有数据
        /// 
        /// 
        public static void DeleteArchitectureReportItemByArchitectureReportId(string ArchitectureReportId)
        {
            var q = from x in Funs.DB.Environmental_ProjectArchitectureReportItem where x.ArchitectureReportId == ArchitectureReportId select x;
            if (q != null)
            {
                Funs.DB.Environmental_ProjectArchitectureReportItem.DeleteAllOnSubmit(q);
                Funs.DB.SubmitChanges();
            }
        }
        /// 
        /// 获取指标名称集合
        /// 
        /// 
        public static ListItem[] GetIndexNames()
        {
            ListItem[] list = new ListItem[61];
            list[0] = new ListItem("1.能源消费量", "01");
            list[1] = new ListItem("A其中:原煤(标准量)", "02");
            list[2] = new ListItem("B原煤(实物量)", "03");
            list[3] = new ListItem("C其中:发电用煤", "04");
            list[4] = new ListItem("B焦炭", "05");
            list[5] = new ListItem("B电力", "06");
            list[6] = new ListItem("B原油", "07");
            list[7] = new ListItem("B汽油", "08");
            list[8] = new ListItem("B煤油", "09");
            list[9] = new ListItem("B柴油", "10");
            list[10] = new ListItem("B燃料油", "11");
            list[11] = new ListItem("B天然气", "12");
            list[12] = new ListItem("B热力", "13");
            list[13] = new ListItem("B其他能源", "14");
            list[14] = new ListItem("2.万元营业收入综合能耗(现价)", "15");
            list[15] = new ListItem("A其中:营业收入(现价)", "16");
            list[16] = new ListItem("E万元营业收入综合能耗(可比价)", "17");
            list[17] = new ListItem("A其中:营业收入(可比价)", "18");
            list[18] = new ListItem("3.万元增加值综合能耗(现价)", "19");
            list[19] = new ListItem("A其中:增加值(现价)", "20");
            list[20] = new ListItem("E万元增加值综合能耗(可比价)", "21");
            list[21] = new ListItem("A其中:增加值(可比价)", "22");
            list[22] = new ListItem("4.万元营业收入用新水量(可比价)", "23");
            list[23] = new ListItem("A其中:用新水量", "24");
            list[24] = new ListItem("5.节能量", "25");
            list[25] = new ListItem("6.二氧化硫排放量", "26");
            list[26] = new ListItem("7.氮氧化物排放量", "27");
            list[27] = new ListItem("8.化学需氧量排放量", "28");
            list[28] = new ListItem("A其中:排入外环境", "29");
            list[29] = new ListItem("B排入市政管网或生活污水处理厂", "30");
            list[30] = new ListItem("9.氨氮排放量", "31");
            list[31] = new ListItem("A其中:排入外环境", "32");
            list[32] = new ListItem("B排入市政管网或生活污水处理厂", "33");
            list[33] = new ListItem("10.烟(粉)尘排放量", "34");
            list[34] = new ListItem("11.挥发性有机物排放量", "35");
            list[35] = new ListItem("12.废水排放量", "36");
            list[36] = new ListItem("13.万元收入二氧化碳排放(可比价)", "37");
            list[37] = new ListItem("A其中:二氧化碳排放量", "38");
            list[38] = new ListItem("14.一般固体废物综合利用率", "39");
            list[39] = new ListItem("A其中:一般固体废物综合利用量", "40");
            list[40] = new ListItem("B其中:综合利用往年贮存量", "41");
            list[41] = new ListItem("F一般固体废物产生量", "42");
            list[42] = new ListItem("15.危险废物处置率", "43");
            list[43] = new ListItem("A其中:危险废物处置量", "44");
            list[44] = new ListItem("B其中:处置往年贮存量", "45");
            list[45] = new ListItem("F危险废物产生量", "46");
            list[46] = new ListItem("16.土壤污染治理率", "47");
            list[47] = new ListItem("A其中:土壤污染治理面积", "48");
            list[48] = new ListItem("B土壤污染需要治理面积", "49");
            list[49] = new ListItem("17.矿山(或生态)修复治理率", "50");
            list[50] = new ListItem("A其中:矿山(或生态)修复治理面积", "51");
            list[51] = new ListItem("B矿山(或生态)需要修复治理面积", "52");
            list[52] = new ListItem("18.废气治理设施数", "53");
            list[53] = new ListItem("19.废气治理设施处理能力", "54");
            list[54] = new ListItem("20.废水治理设施数", "55");
            list[55] = new ListItem("21.废水治理设施处理能力", "56");
            list[56] = new ListItem("22.生态环境污染源", "57");
            list[57] = new ListItem("23.生态环境风险点", "58");
            list[58] = new ListItem("24.节能环保投入占收入比重", "59");
            list[59] = new ListItem("A其中:节能投入", "60");
            list[60] = new ListItem("B环保投入", "61");
            return list;
        }
        /// 
        /// 获取计量单位集合
        /// 
        /// 
        public static ListItem[] GetUnits()
        {
            ListItem[] list = new ListItem[61];
            list[0] = new ListItem("万吨标准煤", "01");
            list[1] = new ListItem("万吨标准煤", "02");
            list[2] = new ListItem("万吨", "03");
            list[3] = new ListItem("万吨", "04");
            list[4] = new ListItem("吨", "05");
            list[5] = new ListItem("万千瓦时", "06");
            list[6] = new ListItem("吨", "07");
            list[7] = new ListItem("吨", "08");
            list[8] = new ListItem("吨", "09");
            list[9] = new ListItem("吨", "10");
            list[10] = new ListItem("吨", "11");
            list[11] = new ListItem("万立方米", "12");
            list[12] = new ListItem("百万千焦", "13");
            list[13] = new ListItem("吨标准煤", "14");
            list[14] = new ListItem("吨标准煤/万元", "15");
            list[15] = new ListItem("万元", "16");
            list[16] = new ListItem("吨标准煤/万元", "17");
            list[17] = new ListItem("万元", "18");
            list[18] = new ListItem("吨标准煤/万元", "19");
            list[19] = new ListItem("万元", "20");
            list[20] = new ListItem("吨标准煤/万元", "21");
            list[21] = new ListItem("万元", "22");
            list[22] = new ListItem("吨/万元", "23");
            list[23] = new ListItem("万吨", "24");
            list[24] = new ListItem("吨标准煤", "25");
            list[25] = new ListItem("吨", "26");
            list[26] = new ListItem("吨", "27");
            list[27] = new ListItem("吨", "28");
            list[28] = new ListItem("吨", "29");
            list[29] = new ListItem("吨", "30");
            list[30] = new ListItem("吨", "31");
            list[31] = new ListItem("吨", "32");
            list[32] = new ListItem("吨", "33");
            list[33] = new ListItem("吨", "34");
            list[34] = new ListItem("吨", "35");
            list[35] = new ListItem("万吨", "36");
            list[36] = new ListItem("吨二氧化碳当量/万元", "37");
            list[37] = new ListItem("万吨二氧化碳当量", "38");
            list[38] = new ListItem("%", "39");
            list[39] = new ListItem("万吨", "40");
            list[40] = new ListItem("万吨", "41");
            list[41] = new ListItem("万吨", "42");
            list[42] = new ListItem("%", "43");
            list[43] = new ListItem("万吨", "44");
            list[44] = new ListItem("万吨", "45");
            list[45] = new ListItem("万吨", "46");
            list[46] = new ListItem("%", "47");
            list[47] = new ListItem("公顷", "48");
            list[48] = new ListItem("公顷", "49");
            list[49] = new ListItem("%", "50");
            list[50] = new ListItem("公顷", "51");
            list[51] = new ListItem("公顷", "52");
            list[52] = new ListItem("套", "53");
            list[53] = new ListItem("万立方米/年", "54");
            list[54] = new ListItem("套", "55");
            list[55] = new ListItem("万吨/年", "56");
            list[56] = new ListItem("个", "57");
            list[57] = new ListItem("个", "58");
            list[58] = new ListItem("%", "59");
            list[59] = new ListItem("万元", "60");
            list[60] = new ListItem("万元", "61");
            return list;
        }
    }
}