public IActionResult GetAllArea() { var area = _service.GetAllArea(); List <AreaDto> Dto = new List <AreaDto>(); foreach (var item in area) { AreaDto Dtos = _mapper.Map <AreaDto>(item); Dto.Add(Dtos); } return(Ok(Dto)); }
public ActionResult LayoutMap(int idlayout) { if (idlayout <= 0) { return(HttpNotFound()); } List <SeatDto> objsseats = _seatService.GetAllSeat(); List <AreaDto> objsareas = _areaService.GetAllArea().Where(a => a.TMLayoutId == idlayout).ToList(); List <AreaViewModel> areaViewModel = new List <AreaViewModel>(); List <SeatViewModel> localSeatsView = new List <SeatViewModel>(); List <SeatDto> localSeats; foreach (var item in objsareas) { localSeats = objsseats.Where(s => s.AreaId == item.Id).ToList(); foreach (var itemchild in localSeats) { localSeatsView.Add(new SeatViewModel { Number = itemchild.Number, Row = itemchild.Row, }); } areaViewModel.Add(new AreaViewModel { CoordX = item.CoordX, CoordY = item.CoordY, CountSeatsX = localSeats.Max(s => s.Number), CountSeatsY = localSeats.Max(s => s.Row), Description = item.Description, Seats = localSeatsView, }); } TMLayoutViewModel layoutViewModel = new TMLayoutViewModel { Layout = _tmlayoutService.GetTMLayout(idlayout), Areas = areaViewModel, }; return(PartialView("_LayoutMap", layoutViewModel)); }
public void RemoveLayout(int layoutId) { // for transaction List <AreaDto> areas = _areaService.GetAllArea() .Where(a => a.TMLayoutId == layoutId).ToList(); List <SeatDto> seats = _seatService.GetAllSeat() .Where(s => areas.Any(a => a.Id == s.AreaId)).ToList(); seats.ForEach(s => _seatService.RemoveSeat(s.Id)); areas.ForEach(a => _areaService.RemoveArea(a.Id)); try { _tmlayoutService.RemoveTMLayout(layoutId); } catch (System.Data.SqlClient.SqlException) { areas.ForEach(a => _areaService.CreateArea(a)); seats.ForEach(s => _seatService.CreateSeat(s)); } }
// GET: Welcome public ActionResult Index() { var measnumEndDate = new PagingOptions <t_bp_custom>(0, 7, t => t.measnumEndDate); var measnumDate = customRep.GetByConditonPage <MeasnumDateModel>(t => t.measnumEndDate != null, t => new { t.ID, t.NAME, t.measnumEndDate }, measnumEndDate);//检测资质有效期日期 var detectnumEndDate = new PagingOptions <t_bp_custom>(0, 7, t => t.detectnumEndDate); var detectnumDate = customRep.GetByConditonPage <DetectnumDateModel>(t => t.detectnumEndDate != null, t => new { t.ID, t.NAME, t.detectnumEndDate }, detectnumEndDate);//计量认证有效期日期 var checkenddate = new PagingOptions <t_bp_Equipment>(0, 7, t => t.checkenddate); var checkdate = equipmentRep.GetByConditonPage <CheckdateModel>(t => t.checkenddate != null, t => new { t.id, t.EquName, t.checkenddate, t.customid }, checkenddate);//设备有效期 var allUnitByArea = checkUnitService.GetAllCustomInArea(); WelcomeViewMoel viewmodel = new WelcomeViewMoel() { EchartUnqualifyReportsCount = new List <EchartNameValue>(), EchartTotalReportsCount = new List <EchartNameValue>(), EcharModifyReportsCount = new List <EchartNameValue>(), MeasnumDate = new List <DueRemindModel>(), DetectnumDate = new List <DueRemindModel>(), Checkdate = new List <DueRemindModel>() }; int i = 1; foreach (var item in measnumDate) { DueRemindModel dueRemind = new DueRemindModel(); var dateTime = Convert.ToDateTime(DateTime.Now); var time = dateTime - Convert.ToDateTime(item.measnumEndDate); if (time.Days >= 0) { dueRemind.Type = item.Name + "单位检测资质证书已经过期" + time.Days + "天"; } else { dueRemind.Type = item.Name + "单位检测资质证书有效期剩余" + time.Days * (-1) + "天"; } dueRemind.Date = item.measnumEndDate.HasValue ? item.measnumEndDate.Value.ToString("yyyy-MM-dd") : string.Empty; dueRemind.Num = i; i++; dueRemind.Id = item.Id; viewmodel.MeasnumDate.Add(dueRemind); } i = 1; foreach (var item in detectnumDate) { DueRemindModel dueRemind = new DueRemindModel(); var dateTime = Convert.ToDateTime(DateTime.Now); var time = dateTime - Convert.ToDateTime(item.detectnumEndDate); if (time.Days >= 0) { dueRemind.Type = item.Name + "单位计量认证证书已经过期" + time.Days + "天"; } else { dueRemind.Type = item.Name + "单位计量认证证书有效期剩余" + time.Days * (-1) + "天"; } dueRemind.Num = i; i++; dueRemind.Date = item.detectnumEndDate.HasValue ? item.detectnumEndDate.Value.ToString("yyyy-MM-dd") : string.Empty; dueRemind.Id = item.Id; viewmodel.DetectnumDate.Add(dueRemind); } i = 1; foreach (var item in checkdate) { DueRemindModel dueRemind = new DueRemindModel(); var dateTime = Convert.ToDateTime(DateTime.Now); var time = dateTime - Convert.ToDateTime(item.checkenddate); var checkName = checkUnitService.GetCheckUnitById(item.customid); if (time.Days >= 0) { dueRemind.Type = checkName + "单位仪器设备检定已经过期" + time.Days + "天"; } else { dueRemind.Type = checkName + "单位仪器设备检定有效期剩余" + time.Days * (-1) + "天"; } dueRemind.Num = i; i++; dueRemind.Id = item.id; dueRemind.Date = item.checkenddate.HasValue ? item.checkenddate.Value.ToString("yyyy-MM-dd") : string.Empty; viewmodel.Checkdate.Add(dueRemind); } DateTime DtNow = DateTime.Now; string dtFormatStr = "yyyy-MM-dd'T'HH:mm:ss"; string endDtStr = DtNow.AddDays(1).ToString(dtFormatStr); //string endDt = endDtStr DateTime DtStart = DtNow.AddDays(-7); string startDtStr = DtStart.ToString(dtFormatStr); #region 获得首页上部统计信息 var instFilter = GetCurrentInstFilter(); Func <Nest.QueryContainerDescriptor <es_t_bp_item>, QueryContainer> qcd = q => { var qc = q.DateRange(qdr => qdr.Field(qdrf => qdrf.PRINTDATE).GreaterThanOrEquals(DateMath.FromString(startDtStr))) && q.DateRange(qddr => qddr.Field(qddrf => qddrf.PRINTDATE).LessThanOrEquals(DateMath.FromString(endDtStr))); if (instFilter.NeedFilter && instFilter.FilterInstIds.Count() > 0) { qc = qc && +q.Terms(qtm => qtm.Field(qtmf => qtmf.CUSTOMID).Terms(instFilter.FilterInstIds)); } return(qc); }; var response = tbpitemESRep.Search(s => s.Size(0).Query(qcd).Aggregations(af => af.Terms(UnQualiKey, adn => adn.Field(aaa => aaa.CONCLUSIONCODE)) .Terms(ModifyKey, adm => adm.Field(aadm => aadm.HAVELOG)) .Terms(ReportKey, ada => ada.Field(adaa => adaa.HAVREPORT)))); if (response.IsValid) { viewmodel.TotalReports = (int)response.Total; var unQualiBuckets = response.Aggs.Terms(UnQualiKey).Buckets; foreach (var buctet in unQualiBuckets) { if (buctet.Key == "N") { viewmodel.UnqualifyReports = (int)buctet.DocCount; } } var modifyBuckets = response.Aggs.Terms(ModifyKey).Buckets; foreach (var buctet in modifyBuckets) { if (buctet.Key == "1") { viewmodel.ModifyReports = (int)buctet.DocCount; } } var reportBuckets = response.Aggs.Terms(ReportKey).Buckets; foreach (var buctet in reportBuckets) { if (buctet.Key == "1") { viewmodel.PKRReports = (int)buctet.DocCount; } } } if (viewmodel.TotalReports == 0) { viewmodel.UnqualifyPercentage = "0"; viewmodel.ModifyPercentage = "0"; viewmodel.PKRPercentage = "0"; } else { viewmodel.UnqualifyPercentage = (viewmodel.UnqualifyReports * 100 / viewmodel.TotalReports).ToString(); viewmodel.ModifyPercentage = (viewmodel.ModifyReports * 100 / viewmodel.TotalReports).ToString(); viewmodel.PKRPercentage = (viewmodel.PKRReports * 100 / viewmodel.TotalReports).ToString(); } #endregion #region 获得首页中间部分地图信息数据 var countByArea = new Dictionary <string, int>(); var unQualifyCount = new Dictionary <string, int>(); var ModifyCount = new Dictionary <string, int>(); var EchartTotalReportsCount = new Dictionary <string, int>(); var EchartUnqualifyReportsCount = new Dictionary <string, int>(); var EcharModifyReportsCount = new Dictionary <string, int>(); var allArea = areaService.GetAllArea(); var userItems = userItemrep.GetDictByCondition <string, string>(r => r.UserId == GetCurrentUserId() && r.UserItemType == UserItemType.UnQualifiedReport, r => new { r.Id, r.ItemTableName }); var userInstIds = userCustomrep.GetDictByCondition <string, string>(r => r.UserId == GetCurrentUserId() && r.UserCustomType == UserCustomType.UnQualifiedCount, r => new { r.Id, r.CustomId }); SysSearchModel model = new SysSearchModel() { StartDt = DateTime.Today.AddDays(-7), EndDt = DateTime.Today.AddDays(1) }; var filterQuery = GetFilterQuery(checkUnitService, itemNameService, model, userInstIds, userItems); var mapResponse = tbpitemESRep.Search(s => s.Size(0).Query(filterQuery) .Aggregations(af => af.Terms(aggeKey, item => item.Field(iif => iif.CUSTOMID).Size(1000) .Aggregations(aaaf => aaaf.Terms("Conclution", aaa => aaa.Field(aac => aac.CONCLUSIONCODE)).Terms("Havelog", aab => aab.Field(aad => aad.HAVELOG)) )))); if (mapResponse.IsValid) { var bucks = mapResponse.Aggs.Terms(aggeKey).Buckets; foreach (var item in bucks) { var unqualiBucks = item.Terms("Conclution").Buckets; var modifyBucks = item.Terms("Havelog").Buckets; var customId = item.Key; var unitArea = string.Empty; var areaBool = allUnitByArea.TryGetValue(item.Key, out unitArea); if (areaBool) { GetDictResult(countByArea, item, unitArea); } else { unitArea = "其他"; GetDictResult(countByArea, item, unitArea); } foreach (var unqualifyItem in unqualiBucks) { if (unqualifyItem.Key == "N" || unqualifyItem.Key == "n") { GetDictResult(unQualifyCount, unqualifyItem, unitArea); } } foreach (var modifyItem in modifyBucks) { if (modifyItem.Key == "1") { GetDictResult(ModifyCount, modifyItem, unitArea); } } } foreach (var item in countByArea) { GetEchartValue(EchartTotalReportsCount, allArea, item); } foreach (var item in unQualifyCount) { GetEchartValue(EchartUnqualifyReportsCount, allArea, item); } foreach (var item in ModifyCount) { GetEchartValue(EcharModifyReportsCount, allArea, item); } foreach (var item in EchartTotalReportsCount) { EchartNameValue echart = new EchartNameValue() { name = item.Key, value = item.Value }; viewmodel.EchartTotalReportsCount.Add(echart); } foreach (var item in EchartUnqualifyReportsCount) { EchartNameValue echart = new EchartNameValue() { name = item.Key, value = item.Value }; viewmodel.EchartUnqualifyReportsCount.Add(echart); } foreach (var item in EcharModifyReportsCount) { EchartNameValue echart = new EchartNameValue() { name = item.Key, value = item.Value }; viewmodel.EcharModifyReportsCount.Add(echart); } viewmodel.EchartTotalReportsCount = viewmodel.EchartTotalReportsCount.OrderBy(s => s.name).ToList(); viewmodel.EchartUnqualifyReportsCount = viewmodel.EchartUnqualifyReportsCount.OrderBy(s => s.name).ToList(); viewmodel.EcharModifyReportsCount = viewmodel.EcharModifyReportsCount.OrderBy(s => s.name).ToList(); } #endregion #region 获得首页下部到期提醒数据 #endregion return(View(viewmodel)); }
/// <summary> /// 根据机构分组统计之后,塞到对应的地区中 /// </summary> /// <param name="model"></param> /// <returns></returns> public ActionResult Search(SysSearchModel model) { model.GroupType = "Custom"; var response = GetStatisData(model); DhtmlxGrid grid = new DhtmlxGrid(); /* * 1.查出所有报告数量以及分组统计不合格报告数量 * 2.countByArea 存储该地区报告总数 * 3.需要一个存储该地区所有不合格报告数量 * 4.存储改地区所有有不合格报告数量的厂家 厂家总数 * */ if (response.IsValid) { var bucks = response.Aggs.Terms("Custom").Buckets; Dictionary <string, int> countByArea, unQualifyCount, countUnitByArea, unQualifyUnitCountByArea; GetSearchResult(bucks, out countByArea, out unQualifyCount, out countUnitByArea, out unQualifyUnitCountByArea); var allAreas = AreaService.GetAllArea(); /* * 1.从所有的地区中选择名字相对应的地区,判断是否为市级节点,是直接加入,不是的话需要判断本节点所属的市级节点是否存在,如果存在直接加上,不存在则增加一条数值为0的记录 */ var index = 1; var rootAreas = new List <AreaResultModel>(); var childAreas = new List <AreaResultModel>(); foreach (var item in countByArea) { if (item.Key.IsNullOrEmpty()) { continue; } var unQualifyCountRow = 0; var unitCountByArea = 0; var unqualifyUnitCount = 0; var isUnqualify = unQualifyCount.TryGetValue(item.Key, out unQualifyCountRow); //isUnqualify 标识是否有不合格报告 var isUnitCount = countUnitByArea.TryGetValue(item.Key, out unitCountByArea); var isUnqualifyUnitCount = unQualifyUnitCountByArea.TryGetValue(item.Key, out unqualifyUnitCount); List <t_bp_area> areas = new List <t_bp_area>(); var areass = allAreas.Where(t => t.AREANAME == item.Key); if (areass != null) { areas = areass.ToList(); } if (areas != null && areas.Count > 0) { var area = areas.First(); logger.Debug("areasfirst"); AreaResultModel areaResult = new AreaResultModel() { AreaCode = area.AREACODE, ParentCode = area.PAREACODE, Name = area.AREANAME, TotalCount = (int)item.Value, UnqualifuCount = unQualifyCountRow, FactoryCount = unitCountByArea, UnqualifyFactoryCount = unqualifyUnitCount }; if (area.PAREACODE == "45")//市 { GetRootAreaResult(rootAreas, area, areaResult, areaResult); } else //市辖区,县等 { childAreas.Add(areaResult); var parentCode = area.PAREACODE; if (parentCode != null) { List <t_bp_area> parentAreas = new List <t_bp_area>(); var parentAreass = allAreas.Where(t => t.AREACODE == parentCode); if (parentAreass != null) { parentAreas = parentAreass.ToList(); } if (parentAreas != null && parentAreas.Count > 0) { var parentArea = parentAreas.First(); //获得所属市地区信息 AreaResultModel parentareaResult = new AreaResultModel() { AreaCode = parentArea.AREACODE, Name = parentArea.AREANAME, TotalCount = 0, UnqualifuCount = 0, FactoryCount = 0, UnqualifyFactoryCount = 0 }; GetRootAreaResult(rootAreas, parentArea, areaResult, parentareaResult); } } } } } foreach (var item in rootAreas) { DhtmlxGridRow row = new DhtmlxGridRow(item.AreaCode); row.AddCell(index++); row.AddCell(item.Name); row.AddCell(item.TotalCount); row.AddCell(item.UnqualifuCount); row.AddCell(item.TotalCount == 0 ? "0" : Math.Round(((item.UnqualifuCount * 1.00 / item.TotalCount) * 100), 2).ToString() + "%"); row.AddCell(item.FactoryCount); row.AddCell(item.UnqualifyFactoryCount); row.AddCell(item.FactoryCount == 0 ? "0" : Math.Round(((item.UnqualifyFactoryCount * 1.00 / item.FactoryCount) * 100), 2).ToString() + "%"); row.AddCell(string.Empty); //同比 row.AddCell(string.Empty); //环比 if (item.TotalCount > 0) { row.AddLinkJsCell("详情查看", "showItemKeyGrid(\"{0}\")".Fmt(item.Name)); } List <AreaResultModel> thisChildAreas = new List <AreaResultModel>(); var thisChildAreass = childAreas.Where(t => t.ParentCode == item.AreaCode); if (thisChildAreass != null) { thisChildAreas = thisChildAreass.ToList(); } if (thisChildAreas != null && thisChildAreas.Count > 0) { var childIndex = 1; foreach (var childItem in thisChildAreas) { DhtmlxGridRow childRow = new DhtmlxGridRow(childItem.AreaCode); childRow.AddCell(childIndex++); childRow.AddCell(childItem.Name); childRow.AddCell(childItem.TotalCount); childRow.AddCell(childItem.UnqualifuCount); childRow.AddCell(childItem.TotalCount == 0 ? "0" : Math.Round(((childItem.UnqualifuCount * 1.00 / childItem.TotalCount) * 100), 2).ToString() + "%"); childRow.AddCell(childItem.FactoryCount); childRow.AddCell(childItem.UnqualifyFactoryCount); childRow.AddCell(childItem.FactoryCount == 0 ? "0" : Math.Round(((childItem.UnqualifyFactoryCount * 1.00 / childItem.FactoryCount) * 100), 2).ToString() + "%"); childRow.AddCell(string.Empty); //同比 childRow.AddCell(string.Empty); //环比 if (childItem.UnqualifuCount > 0) //有不合格报告才显示详情查看 { //TODO 由于改了实现方式,将市辖区,县的信息塞到了市中,在不合格详情查看时需要增加如果是市,则需要查本市所有的不合格数据 childRow.AddLinkJsCell("详情查看", "showItemKeyGrid(\"{0}\")".Fmt(childItem.Name)); } row.AddRow(childRow); } } grid.AddGridRow(row); } //foreach (var item in countByArea) //{ // var unQualifyCountRow = 0; // var unitCountByArea = 0; // var unqualifyUnitCount = 0; // var isUnqualify = unQualifyCount.TryGetValue(item.Key, out unQualifyCountRow); //isUnqualify 标识是否有不合格报告 // var isUnitCount = countUnitByArea.TryGetValue(item.Key, out unitCountByArea); // var isUnqualifyUnitCount = unQualifyUnitCountByArea.TryGetValue(item.Key, out unqualifyUnitCount); // DhtmlxGridRow row = new DhtmlxGridRow(item.Key); // row.AddCell(index++); // row.AddCell(item.Key); // row.AddCell(item.Value); // row.AddCell(isUnqualify ? unQualifyCountRow : 0); // row.AddCell(item.Value == 0 ? "0" : Math.Round(((unQualifyCountRow * 1.00 / item.Value) * 100), 2).ToString() + "%"); // row.AddCell(unitCountByArea.ToString()); // row.AddCell(unqualifyUnitCount.ToString()); // row.AddCell(unitCountByArea == 0 ? "0" : Math.Round(((unqualifyUnitCount * 1.00 / unitCountByArea) * 100), 2).ToString() + "%"); // row.AddCell(string.Empty);//同比 // row.AddCell(string.Empty);//环比 // if (isUnqualify)//有不合格报告才显示详情查看 // { // row.AddLinkJsCell("详情查看", "showItemKeyGrid(\"{0}\")".Fmt(item.Key)); // } // grid.AddGridRow(row); //} } string str = grid.BuildRowXml().ToString(System.Xml.Linq.SaveOptions.DisableFormatting); return(Content(str, "text/xml")); }
public JsonResult GetMapData() { JsonResult result = new JsonResult(); result.JsonRequestBehavior = JsonRequestBehavior.AllowGet; //Guid uid = Guid.Parse(Session["wp_username"].ToString()); User_t account = UserContext.account; List <FlowMeterStatusAndArea> fmlist = new List <FlowMeterStatusAndArea>(); List <PressureMeterStatusAndArea> pmlist = new List <PressureMeterStatusAndArea>(); List <QualityMeterStatusAndArea> qmlist = new List <QualityMeterStatusAndArea>(); //Func<List<FlowMeterStatusAndArea>> fmAndStatusArea = () => flowmeterService.GetFlowMeterStatusAndArea(); //List<FlowMeterStatusAndArea> fmstatusAndAreaList = DBHelper.get<FlowMeterStatusAndArea>(fmAndStatusArea, // ConfigurationManager.AppSettings["allFlowMeterStatusAndArea"]); //Func<List<PressureMeterStatusAndArea>> pmAndStatusArea = () => pressuremeterService.GetPressureMeterStatusAndArea(); //List<PressureMeterStatusAndArea> pmstatusAndAreaList = DBHelper.get<PressureMeterStatusAndArea>(pmAndStatusArea, // ConfigurationManager.AppSettings["allPressureMeterStatusAndArea"]).ToList(); //Func<List<QualityMeterStatusAndArea>> qmAndStatusArea = () => qualitymeterService.GetQualityMeterStatusAndArea(); //List<QualityMeterStatusAndArea> qmstatusAndAreaList = DBHelper.get<QualityMeterStatusAndArea>(qmAndStatusArea, // ConfigurationManager.AppSettings["allQualityMeterStatusAndArea"]); if (account.Usr_Type == 3) { //fmlist = fmstatusAndAreaList.Where(p => p.flowmeter.FM_WaterConsumerUId==account.Usr_UId).ToList(); //qmlist = qmstatusAndAreaList.Where(p=>p.qualitymeter); //pmlist = pmstatusAndAreaList.Where(p=>p.pressuremeter); AreaUser_t au = areauserService.GetAreaUserByUser(account.Usr_UId); Func <List <FlowMeterStatusAndArea> > fmsFunc = () => flowmeterService.GetFlowMeterStatusByArea(au.AU_AreaUId); fmlist = DBHelper.get <FlowMeterStatusAndArea>(fmsFunc, ConfigurationManager.AppSettings["FlowMeterStatusByAreaUid"] + au.AU_AreaUId).Where(p => p.flowmeter.FM_WaterConsumerUId == account.Usr_UId).ToList(); } else { List <Area_t> arealist = areaService.GetAllArea(); foreach (var areaitem in arealist) { Func <List <FlowMeterStatusAndArea> > fmsFunc = () => flowmeterService.GetFlowMeterStatusByArea(areaitem.Ara_UId); var fmdata = DBHelper.get <FlowMeterStatusAndArea>(fmsFunc, ConfigurationManager.AppSettings["FlowMeterStatusByAreaUid"] + areaitem.Ara_UId); fmlist.AddRange(fmdata); Func <List <PressureMeterStatusAndArea> > pmsFunc = () => pressuremeterService.GetPressureMeterStatusByArea(areaitem.Ara_UId); var pmsalist = DBHelper.get <PressureMeterStatusAndArea>(pmsFunc, ConfigurationManager.AppSettings["PressureMeterStatusByAreaUid"] + areaitem.Ara_UId).ToList(); pmlist.AddRange(pmsalist); Func <List <QualityMeterStatusAndArea> > qmAndStatusArea = () => qualitymeterService.GetQualityMeterStatusByArea(areaitem.Ara_UId); var qmslist = DBHelper.get <QualityMeterStatusAndArea>(qmAndStatusArea, ConfigurationManager.AppSettings["QualityMeterStatusByAreaUid"] + areaitem.Ara_UId); qmlist.AddRange(qmslist); } //fmlist = fmstatusAndAreaList; //pmlist = pmstatusAndAreaList; //qmlist = qmstatusAndAreaList; } result.Data = new { fmstatusAndAreaList = fmlist, pmstatusAndAreaList = pmlist, qmstatusAndAreaList = qmlist, }; return(result); }
public IEnumerable <AreaBaseDto> GetAllArea() => _areaService.GetAllArea();