public JsonResult GetPressureMeterByAreaUid(Guid areaUid) { JsonResult result = new JsonResult(); result.JsonRequestBehavior = JsonRequestBehavior.AllowGet; //Func<List<FlowMeterStatusAndArea>> fmAndStatusArea = () => flowmeterService.GetFlowMeterStatusByArea(areaUid); //List<FlowMeterStatusAndArea> fmstatusAndAreaList = DBHelper.get<FlowMeterStatusAndArea>(fmAndStatusArea, // ConfigurationManager.AppSettings["FlowMeterStatusByAreaUid"] + areaUid); Func <List <PressureMeterStatusAndArea> > pmAndStatusArea = () => pressuremeterService.GetPressureMeterStatusByArea(areaUid); List <PressureMeterStatusAndArea> pmstatusAndAreaList = DBHelper.get <PressureMeterStatusAndArea>(pmAndStatusArea, ConfigurationManager.AppSettings["PressureMeterStatusByAreaUid"] + areaUid).ToList(); User_t account = UserContext.account; List <PressureMeterStatusAndArea> pms_areas = new List <PressureMeterStatusAndArea>(); List <PressureMeterStatusAndArea> pms_areas_order = new List <PressureMeterStatusAndArea>(); if (account.Usr_Type != 3) { List <Area_t> subarealist = areaService.GetSubArea(areaUid); foreach (var item in subarealist) { Func <List <PressureMeterStatusAndArea> > pmsaFunc = () => pressuremeterService.GetPressureMeterStatusByArea(areaUid); var pmsalist = DBHelper.get <PressureMeterStatusAndArea>(pmsaFunc, ConfigurationManager.AppSettings["PressureMeterStatusByAreaUid"] + areaUid).ToList(); pms_areas.AddRange(pmsalist); } //获取设备访问次数,根据访问次数排序,再将剩余的设备整合 Func <List <VisitCount> > initvisit = () => { return(new List <VisitCount>()); }; List <VisitCount> vclist = DBHelper.getWithNoExpire <List <VisitCount> >(initvisit, UserContext.account.Usr_UId + ConfigurationManager.AppSettings["VisitPressureMeterCount"]); vclist = vclist.OrderByDescending(p => p.count).ToList(); foreach (var item in vclist) { var data = pms_areas.Where(p => p.pressuremeter.PM_UId == Guid.Parse(item.uid)).FirstOrDefault(); if (data != null) { pms_areas_order.Add(data); } } foreach (var item in pms_areas) { if (vclist.Where(p => p.uid == item.pressuremeter.PM_UId.ToString()).Count() == 0) { pms_areas_order.Add(item); } } } //result.Data = pmstatusAndAreaList; string dataresult = ToJson <List <PressureMeterStatusAndArea> > .Obj2Json <List <PressureMeterStatusAndArea> >(pms_areas_order).Replace("\\\\", ""); dataresult = dataresult.Replace("\\\\", ""); result.Data = dataresult; return(result); }
/// <summary> /// 输出昨日流量变化幅度从大到小排行的流量计列表 /// </summary> /// <returns></returns> public JsonResult GetLastDayFlowList() { JsonResult result = new JsonResult(); result.JsonRequestBehavior = JsonRequestBehavior.AllowGet; List <FlowMeterData> fmdata_account = new List <FlowMeterData>(); User_t account = UserContext.account; List <FlowMeter_t> fmlist = new List <FlowMeter_t>(); if (account.Usr_Type == 3) { fmlist = flowmeter_Service.GetFlowMetersByUserUid(account.Usr_UId); } else { fmlist = flowmeter_Service.GetAllFlowMeter(); } List <FlowMeterData> fmdatalist = new List <FlowMeterData>(); foreach (var item in fmlist) { if (item.FM_FlowCountLast != null) { Func <FlowMeterData> fmdataFunc = () => flowmeter_Service.GetAnalysisByFlowMeter(item, (DateTime)item.FM_FlowCountLast); var fmdata = DBHelper.getT <FlowMeterData>(fmdataFunc, ConfigurationManager.AppSettings["FlowMeterAnalysisByFMUid"] + item.FM_UId); fmdatalist.Add(fmdata); } } //先剔除“无法计算”的昨日流量比例,按大小排序,再补上“无法计算” var fmdatatemp1 = fmdatalist.Where(p => p.lastday_flow_proportion != "无法计算").ToList(); if (fmdatatemp1.Count >= 0 && fmdatatemp1.Count < 3) { fmdatalist.AddRange(fmdatatemp1); var fmdatatemp2 = fmdatalist.Where(p => p.lastday_flow_proportion == "无法计算").ToList(); if (fmdatatemp2.Count > 0) { fmdata_account.AddRange(fmdatatemp2); fmdata_account = fmdata_account.Take(3).ToList(); } } else if (fmdatatemp1.Count >= 3) { fmdata_account = fmdatatemp1.OrderByDescending(p => p.lastday_flow_proportion).Take(3).ToList(); } string dataresult = ToJson <List <FlowMeterData> > .Obj2Json <List <FlowMeterData> >(fmdata_account).Replace("\\\\", ""); dataresult = dataresult.Replace("\\\\", ""); result.Data = dataresult; return(result); }
public JsonResult GetQualityMeterByAreaUid(Guid areaUid) { JsonResult result = new JsonResult(); result.JsonRequestBehavior = JsonRequestBehavior.AllowGet; List <QualityMeterStatusAndArea> qms_areas = new List <QualityMeterStatusAndArea>(); List <QualityMeterStatusAndArea> qms_areas_order = new List <QualityMeterStatusAndArea>(); if (UserContext.account.Usr_Type != 3) { List <Area_t> subarealist = areaService.GetSubArea(areaUid); foreach (var item in subarealist) { Func <List <QualityMeterStatusAndArea> > qmAndStatusArea = () => qualitymeterService.GetQualityMeterStatusByArea(areaUid); var qmslist = DBHelper.get <QualityMeterStatusAndArea>(qmAndStatusArea, ConfigurationManager.AppSettings["QualityMeterStatusByAreaUid"] + areaUid); qms_areas.AddRange(qmslist); } //获取设备访问次数,根据访问次数排序,再将剩余的设备整合 //Func<List<VisitCount>> initvisit = () => { return new List<VisitCount>(); }; //List<VisitCount> vclist = DBHelper.getWithNoExpire<List<VisitCount>>(initvisit, UserContext.account.Usr_UId + ConfigurationManager.AppSettings["VisitQualityMeterCount"]); //vclist = vclist.OrderByDescending(p => p.count).ToList(); //foreach (var item in vclist) //{ // var data = qms_areas.Where(p => p.qualitymeter.QM_UId == Guid.Parse(item.uid)).FirstOrDefault(); // if (data != null) // { // qms_areas_order.Add(data); // } //} //foreach (var item in qms_areas) //{ // if (vclist.Where(p => p.uid == item.qualitymeter.QM_UId.ToString()).Count() == 0) // { // qms_areas_order.Add(item); // } //} } //result.Data = qmstatusAndAreaList; string dataresult = ToJson <List <QualityMeterStatusAndArea> > .Obj2Json <List <QualityMeterStatusAndArea> >(qms_areas).Replace("\\\\", ""); dataresult = dataresult.Replace("\\\\", ""); result.Data = dataresult; return(result); }
/// <summary> /// 输出昨日水压变化幅度从大到小排行的水压计列表 /// </summary> /// <returns></returns> public JsonResult GetLastDayPressureList() { JsonResult result = new JsonResult(); result.JsonRequestBehavior = JsonRequestBehavior.AllowGet; List <PressureMeterData> pmdatalist = new List <PressureMeterData>(); User_t account = UserContext.account; //Func<List<PressureMeterData>> pmdataFunc = () => pressuremeter_service.GetPressureMetersDataByUser(account); //var pmdataanalysis = DBHelper.get<PressureMeterData>(pmdataFunc, ConfigurationManager.AppSettings["allPressureAnalysisByUserUid"] + account.Usr_UId); List <PressureMeterData> pmdataanalysis = new List <PressureMeterData>(); List <PressureMeter_t> pmlist = new List <PressureMeter_t>(); if (account.Usr_Type == 3) { //获取客户的水压计,当前水压计未绑定客户 } else { pmlist = pressuremeter_service.GetAllPressureMeter(); foreach (var item in pmlist) { if (item.PM_CountLast != null) { Func <PressureMeterData> pmdataFunc = () => pressuremeter_service.GetAnalysisByPressureMeter(item, (DateTime)item.PM_CountLast); var pmdata = DBHelper.getT <PressureMeterData>(pmdataFunc, ConfigurationManager.AppSettings["PressureMeterAnalysisByPMUid"] + item.PM_UId); pmdataanalysis.Add(pmdata); } } } pmdatalist = pmdataanalysis.Where(p => p.lastday_pressure_proportion != "无法计算").OrderByDescending(p => p.lastday_pressure_proportion).Take(3).ToList(); string dataresult = ToJson <List <PressureMeterData> > .Obj2Json <List <PressureMeterData> >(pmdatalist).Replace("\\\\", ""); dataresult = dataresult.Replace("\\\\", ""); result.Data = dataresult; return(result); }
/// <summary> /// 输出经常访问的流量计分析数据 /// </summary> /// <param name="fmUids"></param> /// <returns></returns> /// public JsonResult GetMostVisitsFlowMeter() { JsonResult result = new JsonResult(); result.JsonRequestBehavior = JsonRequestBehavior.AllowGet; List <FlowMeterData> fmdata_account = new List <FlowMeterData>(); User_t account = UserContext.account; //获取账号访问设备次数的list Func <List <VisitCount> > initvisit = () => { return(new List <VisitCount>()); }; List <VisitCount> vclist = DBHelper.get <List <VisitCount> >(initvisit, UserContext.account.Usr_UId + ConfigurationManager.AppSettings["VisitFlowMeterCount"]); //Func<List<FlowMeterData>> fmdataFunc = () => flowmeter_Service.GetFlowMetersDataByUserUid(account); //List<FlowMeterData> fmdataanalysis = DBHelper.get<FlowMeterData>(fmdataFunc, ConfigurationManager.AppSettings["allFlowAnalysisByUserUid"] + account.Usr_UId); List <FlowMeter_t> fmlist = new List <FlowMeter_t>(); if (account.Usr_Type == 3) { fmlist = flowmeter_Service.GetFlowMetersByUserUid(account.Usr_UId).ToList(); } else { fmlist = flowmeter_Service.GetAllFlowMeter(); } if (vclist.Count > 0) { vclist = vclist.OrderByDescending(p => p.count).ToList(); foreach (var vcitem in vclist) { FlowMeter_t fm = fmlist.First(p => p.FM_UId == Guid.Parse(vcitem.uid)); if (fm.FM_FlowCountLast != null) { Func <FlowMeterData> fmdataFunc = () => flowmeter_Service.GetAnalysisByFlowMeter(fm, (DateTime)fm.FM_FlowCountLast); var fmdata = DBHelper.getT <FlowMeterData>(fmdataFunc, ConfigurationManager.AppSettings["FlowMeterAnalysisByFMUid"] + fm.FM_UId); fmdata_account.Add(fmdata); } } foreach (FlowMeter_t item in fmlist) { if (vclist.All(p => p.uid != item.FM_UId.ToString()) && item.FM_FlowCountLast != null) { Func <FlowMeterData> fmdataFunc = () => flowmeter_Service.GetAnalysisByFlowMeter(item, (DateTime)item.FM_FlowCountLast); var fmdata = DBHelper.getT <FlowMeterData>(fmdataFunc, ConfigurationManager.AppSettings["FlowMeterAnalysisByFMUid"] + item.FM_UId); fmdata_account.Add(fmdata); } } } else { foreach (var item in fmlist) { if (item.FM_FlowCountLast != null) { Func <FlowMeterData> fmdataFunc = () => flowmeter_Service.GetAnalysisByFlowMeter(item, (DateTime)item.FM_FlowCountLast); var fmdata = DBHelper.getT <FlowMeterData>(fmdataFunc, ConfigurationManager.AppSettings["FlowMeterAnalysisByFMUid"] + item.FM_UId); fmdata_account.Add(fmdata); } } } string dataresult = ToJson <List <FlowMeterData> > .Obj2Json <List <FlowMeterData> >(fmdata_account).Replace("\\\\", ""); dataresult = dataresult.Replace("\\\\", ""); result.Data = dataresult; return(result); }
/// <summary> /// 输出经常访问的水压计分析数据 /// </summary> /// <param name="pmUids"></param> /// <returns></returns> public JsonResult GetMostVisitsPressureMeter(string[] pmUids) { JsonResult result = new JsonResult(); User_t account = UserContext.account; result.JsonRequestBehavior = JsonRequestBehavior.AllowGet; List <PressureMeterData> pmdataanalysis = new List <PressureMeterData>(); List <PressureMeter_t> pmlist = new List <PressureMeter_t>(); if (account.Usr_Type == 3) { //获取客户的水压计,当前水压计未绑定客户 } else { pmlist = pressuremeter_service.GetAllPressureMeter(); foreach (var item in pmlist) { if (item.PM_CountLast != null) { Func <PressureMeterData> pmdataFunc = () => pressuremeter_service.GetAnalysisByPressureMeter(item, (DateTime)item.PM_CountLast); var pmdata = DBHelper.getT <PressureMeterData>(pmdataFunc, ConfigurationManager.AppSettings["PressureMeterAnalysisByPMUid"] + item.PM_UId); pmdataanalysis.Add(pmdata); } } } //Func<List<PressureMeterData>> pmdataFunc = () => pressuremeter_service.GetPressureMetersDataByUser(account); //var pmdataanalysis = DBHelper.get<PressureMeterData>(pmdataFunc, ConfigurationManager.AppSettings["allPressureAnalysisByUserUid"] + account.Usr_UId); List <PressureMeterData> pmdatalist = new List <PressureMeterData>(); Func <List <VisitCount> > initvisit = () => { return(new List <VisitCount>()); }; List <VisitCount> vclist = DBHelper.get <List <VisitCount> >(initvisit, UserContext.account.Usr_UId + ConfigurationManager.AppSettings["VisitPressureMeterCount"]); if (vclist.Count > 0) { vclist.OrderByDescending(p => p.count).ToList(); for (var i = 0; i < vclist.Count; i++) { var pmdata = pmdataanalysis.FirstOrDefault(p => p.PM_Uid == Guid.Parse(vclist[i].uid)); pmdatalist.Add(pmdata); } for (var i = 0; i < pmdataanalysis.Count; i++) { if (vclist.Where(p => p.uid == pmdataanalysis[i].PM_Uid.ToString()).Count() == 0) { pmdatalist.Add(pmdataanalysis[i]); } } } else { pmdatalist = pmdataanalysis; } string dataresult = ToJson <List <PressureMeterData> > .Obj2Json <List <PressureMeterData> >(pmdatalist).Replace("\\\\", ""); dataresult = dataresult.Replace("\\\\", ""); result.Data = dataresult; return(result); }
public JsonResult GetFlowMeterByAreaUid(Guid areaUid) { JsonResult result = new JsonResult(); result.JsonRequestBehavior = JsonRequestBehavior.AllowGet; List <FlowMeterStatusAndArea> fms_areas_order = new List <FlowMeterStatusAndArea>(); List <FlowMeterStatusAndArea> fms_areas = new List <FlowMeterStatusAndArea>(); //获取areauid对应的设备信息,并以areauid区分存储在redis Func <List <FlowMeterStatusAndArea> > fmAndStatusArea = () => flowmeterService.GetFlowMeterStatusByArea(areaUid); List <FlowMeterStatusAndArea> fmstatusAndAreaList = DBHelper.get <FlowMeterStatusAndArea>(fmAndStatusArea, ConfigurationManager.AppSettings["FlowMeterStatusByAreaUid"] + areaUid); User_t account = UserContext.account; if (account.Usr_Type == 3) { fms_areas = fmstatusAndAreaList.Where(p => p.flowmeter.FM_WaterConsumerUId == account.Usr_UId).ToList(); } else { //筛选出子区域范围内的所有流量计 List <Area_t> subarealist = areaService.GetSubArea(areaUid); foreach (var areaitem in subarealist) { Func <List <FlowMeterStatusAndArea> > fmsFunc = () => flowmeterService.GetFlowMeterStatusByArea(areaUid); var fmslist = DBHelper.get <FlowMeterStatusAndArea>(fmsFunc, ConfigurationManager.AppSettings["FlowMeterStatusByAreaUid"] + areaitem.Ara_UId); fms_areas.AddRange(fmslist); } //foreach (var item in fmstatusAndAreaList) //{ // if (subarealist.Where(p => p.Ara_UId == item.area.Ara_UId).Count() > 0) // { // fms_areas.Add(item); // } //} } //获取设备访问次数,根据访问次数排序,再将剩余的设备整合 Func <List <VisitCount> > initvisit = () => { return(new List <VisitCount>()); }; List <VisitCount> vclist = DBHelper.getWithNoExpire <List <VisitCount> >(initvisit, UserContext.account.Usr_UId + ConfigurationManager.AppSettings["VisitFlowMeterCount"]); vclist = vclist.OrderByDescending(p => p.count).ToList(); foreach (var item in vclist) { var data = fms_areas.Where(p => p.flowmeter.FM_UId == Guid.Parse(item.uid)).FirstOrDefault(); if (data != null) { fms_areas_order.Add(data); } } foreach (var item in fms_areas) { if (vclist.Where(p => p.uid == item.flowmeter.FM_UId.ToString()).Count() == 0) { fms_areas_order.Add(item); } } string dataresult = ToJson <List <FlowMeterStatusAndArea> > .Obj2Json <List <FlowMeterStatusAndArea> >(fms_areas_order); dataresult = dataresult.Replace("\\\\", ""); result.Data = dataresult; return(result); }