/// <summary> /// 获取企业(或排口)的名字和编号 /// </summary> /// <param name="type"></param> /// <param name="id"></param> /// <returns></returns> public static dynamic GetCompanyOrPK(string type, string id) { if ("P" == type) { SqlModel sqlmodel = SqlModel.Select(T_BASE_COMPANY_PK.CODE, T_BASE_COMPANY_PK.NAME).From(DB.T_BASE_COMPANY_PK).Where(T_BASE_COMPANY_PK.ID == id); var list = sqlmodel.ExecToDynamicList(); if (list.Count > 0) { return(new { Code = StringHelper.DynamicToString(list[0]["CODE"]), Name = StringHelper.DynamicToString(list[0]["NAME"]), }); } } else { SqlModel sqlmodel = SqlModel.Select(T_BASE_COMPANY.ID, T_BASE_COMPANY.NAME).From(DB.T_BASE_COMPANY).Where(T_BASE_COMPANY.ID == id); var list = sqlmodel.ExecToDynamicList(); if (list.Count > 0) { return(new { Code = StringHelper.DynamicToString(list[0]["ID"]), Name = StringHelper.DynamicToString(list[0]["NAME"]), }); } } return(new { Code = "", Name = "" }); }
/// <summary> /// 污染物超标 /// </summary> /// <param name="data"></param> /// <returns></returns> private DataTable GetExcessivePollutSource(RequestData data, DataTable dataTable) { FieldModel where = null; if (data.Get("CompanyID") != "-1") { where &= T_MID_ALERT.COMPANYID == data.Get("CompanyID"); } else { where &= T_MID_ALERT.PKID == data.Get("PKID"); } where &= T_MID_ALERT.TYPE == 0; SqlModel model = SqlModel.SelectAll("A".Field("TITLE").As("CODE_TEXT"), "B".Field("TITLE").As("CODE_TEXT2"), "C".Field("NAME").As("PK_NAME")).From(DB.T_MID_ALERT) .LeftJoin(DB.BASDIC.As("A")).On(T_MID_ALERT.ITEMCODE == "A".Field("CODE")) .LeftJoin(DB.BASDIC.As("B")).On(T_MID_ALERT.SUBITEMCODE == "B".Field("CODE")) .LeftJoin(DB.T_BASE_COMPANY_PK.As("C")).On(T_MID_ALERT.PKID == "C".Field("ID")) .Where(where); List <dynamic> query = model.ExecToDynamicList(); // List<T_MID_ALERTModel> lis = SerializerHelper.Deserialize<List<T_MID_ALERTModel>>(SerializerHelper.Serialize(query)); DataRow dr = null; query.ForEach(d => { dr = dataTable.NewRow(); dr["PK_NAME"] = d["PK_NAME"]; dr["STAIN_TEXT"] = d["CODE_TEXT"] + "(" + d["CODE_TEXT2"] + ")"; dr["VALUE"] = d["VALUE"] == System.DBNull.Value ? 0: d["VALUE"]; dr["LIMIT"] = d["LIMIT"]; dr["STATE"] = d["STATE"] == 0 ? "未处理" : "处理"; dr["STARTTIME"] = d["STARTTIME"]; dr["ENDTIME"] = d["ENDTIME"]; dataTable.Rows.Add(dr); }); return(dataTable); }
/// <summary> /// 获取区域的企业 /// </summary> /// <param name="areaCode"></param> /// <returns></returns> private static List <dynamic> GetCompanyInfo(string areaCode) { SqlModel sql = SqlModel.SelectAll() .From(DB.T_BASE_COMPANY) .Where(T_BASE_COMPANY.AREA.In(StringHelper.SqlInCondition(areaCode))); return(sql.ExecToDynamicList()); }
/// <summary> /// 获取区域信息 /// </summary> /// <param name="areaCode"></param> /// <returns></returns> private static List <dynamic> GetAreaInfo(string areaCode) { SqlModel sql = SqlModel.Select( T_SYS_AREA.AREA_CODE , T_SYS_AREA.AREA_TEXT ) .From(DB.T_SYS_AREA).Where(T_SYS_AREA.AREA_CODE.In(StringHelper.SqlInCondition(areaCode))); return(sql.ExecToDynamicList()); }
/// <summary> /// 获取行业信息 /// </summary> /// <param name="areaCode"></param> /// <returns></returns> private static List <dynamic> GetAreaInfo(string industryCode) { SqlModel sql = SqlModel.Select( BASDIC.CODE , BASDIC.TITLE ) .From(DB.BASDIC).Where(BASDIC.CODE.In(StringHelper.SqlInCondition(industryCode))); return(sql.ExecToDynamicList()); }
/// <summary> /// 获取需要巡查的企业 /// </summary> /// <returns></returns> private dynamic GetXunCha(int peakId) { FieldModel where = null; where &= T_THEPEAK_ENT_SUB_LIST.THEPEAKID == peakId; where &= T_THEPEAK_ENT_SUB_LIST.IS_PATROL == 1; SqlModel sql = SqlModel.SelectAll( T_SYS_AREA.AREA_TEXT.As("AREA_TEXT") , "d1".Field("TITLE").As("INDUSTRY_TYPE_TEXT") // , "d2".Field("TITLE").As("POLLUTION_TYPE_TEXT") // , "d3".Field(T_BAS_AIR_MONITOR.MONITOR_ITEM_NAME).As("POLLUTION_ITEM_TEXT") // , "d4".Field("TITLE").As("COMPANY_STATE_TEXT") , T_THEPEAK_ENT_SUB_LIST.ID.As("ENTSUBID") , T_THEPEAK_LEVEL_LIST_INFO.ID.As("LEVEL_ID") , T_THEPEAK_ENT_SUB_LIST.ENT_PEAK_TYPE , T_THEPEAK_ENT_SUB_LIST.THEPEAKID , T_THEPEAK_ENT_SUB_LIST.IS_SELECT , T_THEPEAK_MAIN_LIST_INFO.PEAK_THEME , T_THEPEAK_MAIN_LIST_INFO.START_TIME , T_THEPEAK_MAIN_LIST_INFO.END_TIME , T_THEPEAK_MAIN_LIST_INFO.PEAK_DESC , T_BASE_COMPANY.AREA , T_BASE_COMPANY.ID.As("COMPANY_ID") , "d6".Field("TITLE").As("PEAK_LEVEL_TEXT") //, "d7".Field(BASUSER.TRUENAME).As("TOWN_SUPERVISOR_TEXT") // , "d8".Field(BASUSER.TRUENAME).As("INDUSTRY_SUPERVISOR_TEXT") , "d9".Field(BASUSER.TRUENAME).As("SUPERVISOR_TEXT") ) .From(DB.T_BASE_COMPANY) .LeftJoin(DB.T_SYS_AREA).On(T_BASE_COMPANY.AREA == T_SYS_AREA.AREA_CODE) .LeftJoin(DB.BASDIC.As("d1")).On(T_BASE_COMPANY.BASTYPE == "d1".Field("CODE") & "d1".Field("TYPECODE") == ConstStrings.IndustryType) // .LeftJoin(DB.BASDIC.As("d2")).On(T_BASE_COMPANY.typ.POLLUTION_TYPE == "d2".Field("CODE") & "d2".Field("TYPECODE") == ConstStrings.PollutionType) //.LeftJoin(DB.T_BAS_AIR_MONITOR.As("d3")).On(T_BASE_COMPANY.POLLUTION_ITEM == "d3".Field(T_BAS_AIR_MONITOR.MONITOR_ITEM_CODE)) //.LeftJoin(DB.BASDIC.As("d4")).On(T_BASE_COMPANY.COMPANY_STATE == "d4".Field("CODE") & "d4".Field("TYPECODE") == ConstStrings.Company_State) //.LeftJoin(DB.BASDIC.As("d5")).On(T_BASE_COMPANY.FUEL_TYPE == "d5".Field("CODE") & "d5".Field("TYPECODE") == ConstStrings.FuelType) .LeftJoin(DB.T_THEPEAK_LEVEL_CONFIG).On(T_THEPEAK_LEVEL_CONFIG.COMPANY_ID == T_BASE_COMPANY.ID) .LeftJoin(DB.T_THEPEAK_LEVEL_LIST_INFO).On(T_THEPEAK_LEVEL_LIST_INFO.ID == T_THEPEAK_LEVEL_CONFIG.PEAK_LEVE_ID) .LeftJoin(DB.T_THEPEAK_ENT_SUB_LIST).On(T_THEPEAK_ENT_SUB_LIST.COMPANY_ID == T_BASE_COMPANY.ID & T_THEPEAK_LEVEL_LIST_INFO.ID == T_THEPEAK_ENT_SUB_LIST.LEVEL_ID)//& T_THEPEAK_ENT_SUB_LIST.GUID == entGuid .LeftJoin(DB.T_THEPEAK_MAIN_LIST_INFO).On(T_THEPEAK_MAIN_LIST_INFO.ID == T_THEPEAK_ENT_SUB_LIST.THEPEAKID) .LeftJoin(DB.BASDIC.As("d6")).On(T_THEPEAK_LEVEL_LIST_INFO.PEAK_LEVEL == "d6".Field("CODE") & "d6".Field("TYPECODE") == ConstStrings.LevelType & T_THEPEAK_LEVEL_LIST_INFO.ID == T_THEPEAK_ENT_SUB_LIST.LEVEL_ID) // .LeftJoin(DB.BASUSER.As("d7")).On(T_BASE_COMPANY.SUPERVISOR == "d7".Field(BASUSER.USERNAME)) // .LeftJoin(DB.BASUSER.As("d8")).On(T_BASE_COMPANY.INDUSTRY_SUPERVISOR == "d8".Field(BASUSER.USERNAME)) .LeftJoin(DB.BASUSER.As("d9")).On(T_BASE_COMPANY.SUPERVISOR == "d9".Field(BASUSER.USERNAME)) .Where(where); return(sql.ExecToDynamicList()); }
/// <summary> /// 数采仪掉线 /// </summary> /// <param name="data"></param> /// <returns></returns> private DataTable GetMNDownLineSource(RequestData data, DataTable dataTable) { FieldModel where = null; if (data.Get("CompanyID") != "-1") { where &= T_MID_ALERT.COMPANYID == data.Get("CompanyID"); } else { where &= T_MID_ALERT.PKID == data.Get("PKID"); } where &= T_MID_ALERT.TYPE == 3; SqlModel model = SqlModel.SelectAll("A".Field("TITLE").As("CODE_TEXT"), "B".Field("TITLE").As("CODE_TEXT2"), "C".Field("NAME").As("PK_NAME"), "D".Field("MN").As("TX_NAME")).From(DB.T_MID_ALERT) .LeftJoin(DB.BASDIC.As("A")).On(T_MID_ALERT.ITEMCODE == "A".Field("CODE")) .LeftJoin(DB.BASDIC.As("B")).On(T_MID_ALERT.SUBITEMCODE == "B".Field("CODE")) .LeftJoin(DB.T_BASE_COMPANY_PK.As("C")).On(T_MID_ALERT.PKID == "C".Field("ID") | T_MID_ALERT.COMPANYID == "C".Field("COMPANYID")) .LeftJoin(DB.T_BASE_COMPANY_PK_TX.As("D")).On(T_MID_ALERT.PKID == "D".Field("PKID") | T_MID_ALERT.COMPANYID == "D".Field("COMPANYID")) .Where(where); List <dynamic> query = model.ExecToDynamicList(); //.LeftJoin(DB..As("C")).On(T_MID_ALERT.TXID == "C".Field("ID")) // List<T_MID_ALERTModel> lis = SerializerHelper.Deserialize<List<T_MID_ALERTModel>>(SerializerHelper.Serialize(query)); DataRow dr = null; query.ForEach(d => { dr = dataTable.NewRow(); dr["PK_NAME"] = d["PK_NAME"]; dr["STAIN_TEXT"] = d["TX_NAME"]; dr["STATE"] = d["STATE"] == 0 ? "未处理" : "处理"; dr["STARTTIME"] = d["STARTTIME"]; dr["ENDTIME"] = d["ENDTIME"]; dr["LENTIME"] = new TimeSpan(Convert.ToDateTime(d["STARTTIME"]) - Convert.ToDateTime(d["ENDTIME"])).TotalMinutes; dataTable.Rows.Add(dr); }); return(dataTable); }
/// <summary> /// 获取企业 /// </summary> /// <returns></returns> private List <dynamic> GetCompanyList(RequestData data) { DataTable dataTable = new DataTable(); FieldModel where = null; if (!string.IsNullOrEmpty(data.Get("CompanyID")) && data.Get("CompanyID") != "-1") { where &= T_BASE_COMPANY_PK.COMPANYID == data.Get("CompanyID"); } else if (!string.IsNullOrEmpty(data.Get("CompanyID")) && data.Get("PKID") != "-1") { where &= T_BASE_COMPANY_PK.ID == data.Get("PKID"); } SqlModel model = SqlModel.SelectAll(T_BASE_COMPANY.ISONLINE, T_BASE_COMPANY_PK.NAME.As("PK_NAME"), T_BASE_COMPANY.NAME.As("COMPANY_NAME")).From(DB.T_BASE_COMPANY_PK) .LeftJoin(DB.T_BASE_COMPANY_PK_TX).On(T_BASE_COMPANY_PK.ID == T_BASE_COMPANY_PK_TX.PKID) .LeftJoin(DB.T_BASE_COMPANY).On(T_BASE_COMPANY.ID == T_BASE_COMPANY_PK.COMPANYID) .Where(where); return(model.ExecToDynamicList()); }
public ActionResult GetCompanyConfig(RequestData data) { string levelID = data.Get("PEAK_LEVE_ID"); //levelID = "2"; if (string.IsNullOrEmpty(levelID)) { return(this.ErrorResult("没有上传等级ID")); } List <dynamic> companyList = new List <dynamic>(); List <dynamic> dischList = new List <dynamic>(); List <dynamic> energyList = new List <dynamic>(); SqlModel companySql = SqlModel.SelectAll().From(DB.T_THEPEAK_LEVEL_CONFIG).Where(T_THEPEAK_LEVEL_CONFIG.PEAK_LEVE_ID == levelID); //SqlModel dischSql = SqlModel.SelectAll().From(DB.T_THEPEAK_LEVEL_CONFIG_DISCH).Where(T_THEPEAK_LEVEL_CONFIG_DISCH.PEAK_LEVE_ID == levelID); //SqlModel energySql = SqlModel.SelectAll().From(DB.T_THEPEAK_LEVEL_CONFIG_ENERGY).Where(T_THEPEAK_LEVEL_CONFIG_ENERGY.PEAK_LEVE_ID == levelID); companySql.ExecToDynamicList().ForEach(item => { if ("1" == StringHelper.DynamicToString(item["IS_STOP"])) { var company = new { ID = StringHelper.DynamicToString(item["ID"]), PEAK_LEVE_ID = StringHelper.DynamicToString(item["PEAK_LEVE_ID"]), COMPANY_ID = StringHelper.DynamicToString(item["COMPANY_ID"]), IS_STOP = StringHelper.DynamicToString(item["IS_STOP"]), }; companyList.Add(company); } else if ("1" == StringHelper.DynamicToString(item["LIMIT_CONFIG"])) { var company = new { ID = StringHelper.DynamicToString(item["ID"]), PEAK_LEVE_ID = StringHelper.DynamicToString(item["PEAK_LEVE_ID"]), COMPANY_ID = StringHelper.DynamicToString(item["COMPANY_ID"]), LIMIT_TIME_START = StringHelper.DynamicToString(item["LIMIT_TIME_START"]), LIMIT_TIME_END = StringHelper.DynamicToString(item["LIMIT_TIME_END"]), LIMIT_TYPE = StringHelper.DynamicToString(item["LIMIT_TYPE"]), LIMIT_RATIO = StringHelper.DynamicToString(item["LIMIT_RATIO"]),//排污上限 LIMIT_CONFIG = StringHelper.DynamicToString(item["LIMIT_CONFIG"]), LIMIT_START = StringHelper.DynamicToString(item["LIMIT_START"]), }; companyList.Add(company); } /* * var company = new * { * ID = StringHelper.DynamicToString(item["ID"]), * PEAK_LEVE_ID = StringHelper.DynamicToString(item["PEAK_LEVE_ID"]), * COMPANY_ID = StringHelper.DynamicToString(item["COMPANY_ID"]), * IS_STOP = StringHelper.DynamicToString(item["IS_STOP"]), * //IS_PATROL = StringHelper.DynamicToString(item["IS_PATROL"]), * LIMIT_TIME_START = StringHelper.DynamicToString(item["LIMIT_TIME_START"]), * LIMIT_TIME_END = StringHelper.DynamicToString(item["LIMIT_TIME_END"]), * LIMIT_TYPE = StringHelper.DynamicToString(item["LIMIT_TYPE"]), * LIMIT_RATIO = StringHelper.DynamicToString(item["LIMIT_RATIO"]),//排污上限 * //ENERGY_RATIO = StringHelper.DynamicToString(item["ENERGY_RATIO"]),//能耗上限 * LIMIT_CONFIG = StringHelper.DynamicToString(item["LIMIT_CONFIG"]), * LIMIT_START = StringHelper.DynamicToString(item["LIMIT_START"]), * ENERGY_START = StringHelper.DynamicToString(item["ENERGY_START"]), * //LINE_ID = StringHelper.DynamicToString(item["LINE_ID"]), * //IS_POWER_OFF = StringHelper.DynamicToString(item["IS_POWER_OFF"]), * }; * companyList.Add(company); */ }); return(this.SuccessResult("", new { companyList = companyList, dischList = dischList, energyList = energyList })); }
/// <summary> /// 根据时间获取处于错峰的企业 /// </summary> /// <param name="time"></param> /// <returns></returns> public List <T_THEPEAK_ENT_SUB_LISTModel> GetThePeakEnterprise(DateTime time) { Dictionary <string, List <DateTime> > peakTime = new Dictionary <string, List <DateTime> >(); SqlModel sql = SqlModel.SelectAll() .From(DB.T_THEPEAK_ENT_SUB_LIST) .LeftJoin(DB.T_THEPEAK_MAIN_LIST_INFO).On(T_THEPEAK_MAIN_LIST_INFO.ID == T_THEPEAK_ENT_SUB_LIST.THEPEAKID) .Where( T_THEPEAK_MAIN_LIST_INFO.START_TIME <= time & T_THEPEAK_MAIN_LIST_INFO.END_TIME >= time & T_THEPEAK_MAIN_LIST_INFO.PLAN_TYPE == "0" & T_THEPEAK_MAIN_LIST_INFO.IS_CLOSE == '0' ); var peakEnterpriseList = SerializerHelper.Deserialize <List <T_THEPEAK_ENT_SUB_LISTModel> >(SerializerHelper.Serialize(sql.ExecToDynamicList())); #region 根据企业的管制类型,再次判断是否处于错峰时间,将非该时间错峰的企业移除 for (int i = 0; peakEnterpriseList != null && i < peakEnterpriseList.Count; i++) { T_THEPEAK_ENT_SUB_LISTModel enterprise = peakEnterpriseList[i]; //停产和限产 if (3 != enterprise.ENT_PEAK_TYPE) { peakTime.Add(enterprise.ID.ToString(), new List <DateTime>() { DateTime.Now.Date, DateTime.Now.Date.AddDays(1).AddSeconds(-1) }); continue; } //时间段限产的 //00:00 ~ 00:00 if (enterprise.LIMIT_TIME_START == enterprise.LIMIT_TIME_END) { peakTime.Add(enterprise.ID.ToString(), new List <DateTime>() { DateTime.Now.Date, DateTime.Now.Date.AddDays(1).AddSeconds(-1) }); continue; } double hour = double.Parse(enterprise.LIMIT_TIME_START.Split(new char[1] { ':' })[0]); double minutes = double.Parse(enterprise.LIMIT_TIME_START.Split(new char[1] { ':' })[1]); DateTime limitTimeStart = DateTime.Now.Date.AddHours(hour).AddMinutes(minutes); hour = double.Parse(enterprise.LIMIT_TIME_END.Split(new char[1] { ':' })[0]); minutes = double.Parse(enterprise.LIMIT_TIME_END.Split(new char[1] { ':' })[1]); DateTime limitTimeEnd = DateTime.Now.Date.AddHours(hour).AddMinutes(minutes); //00:00 ~ 10:00 if (limitTimeEnd > limitTimeStart && limitTimeEnd > time && limitTimeStart <= time) { peakTime.Add(enterprise.ID.ToString(), new List <DateTime>() { limitTimeStart, limitTimeEnd }); continue; } //10:00 ~ 08:00 的时间段 10:00~24:00 10:00 ~ 08:00 的时间段 00:00~08:00 if (limitTimeEnd < limitTimeStart && (limitTimeStart <= time || limitTimeEnd > time)) { peakTime.Add(enterprise.ID.ToString(), new List <DateTime>() { limitTimeStart, DateTime.Now.Date.AddDays(1).AddSeconds(-1), DateTime.Now.Date, limitTimeEnd }); continue; } //将非该时间错峰的企业移除 peakEnterpriseList.Remove(enterprise); i--; } #endregion return(peakEnterpriseList); }