/// <summary> /// 修改 /// </summary> /// <param name="args"></param> /// <returns></returns> public Common.CustomResult Update(Common.ViewModels.UpdateHDayStaExEnViewModel args) { using (DataSubmittedEntities db = new DataSubmittedEntities()) { using (TransactionScope transaction = new TransactionScope()) { CustomResult pReturnValue = new CustomResult(); bool flag = false;//标记数据库中是否有数据修改 int count = (args.EndTime - args.StartTime).Days + 1; for (int j = 1; j < args.DataInfo.Count; j++) { HDayStaExEnViewModel model = args.DataInfo[j]; Type myType0 = qModel.TitleList[0].GetType(); for (int i = 1; i < count + 1; i++) { Type myType = model.GetType(); PropertyInfo pinfo = myType.GetProperty("Date" + i); PropertyInfo pinfo0 = myType0.GetProperty("Date" + i); if (args.StartTime.AddDays(i - 1).ToString("M月d日").ToString() == pinfo0.GetValue(qModel.TitleList[0]).ToString()) { DateTime dt = args.StartTime.AddDays(i - 1); var list = db.RP_HDayAADT.Where(a => a.CalcuTime == dt).ToList(); double info = double.Parse(pinfo.GetValue(model).ToString()); foreach (var item in list) { flag = true; if (model.Num == "43")//杨村站 { item.YC = info; } else if (model.Num == "44")//宜兴埠东站 { item.YXBD = info; } else if (model.Num == "45")//宜兴埠西站 { item.YXBX = info; } else if (model.Num == "46")//金钟路站 { item.JZL = info; } else if (model.Num == "47")//机场站 { item.JC = info; } else if (model.Num == "48")//空港经济区站 { item.KG = info; } else if (model.Num == "49")//塘沽西站 { item.TGX = info; } else if (model.Num == "50")//塘沽西分站 { item.TGXF = info; } else if (model.Num == "51")//塘沽北站 { item.TGB = info; } item.UpdDate = DateTime.Now; if (SessionManage.GetLoginUser() != null) { item.UpdBy = SessionManage.GetLoginUser().UserName; } item.State = "1"; } } } } if (flag)//有修改成功的数据 { try { db.SaveChanges(); transaction.Complete(); pReturnValue.ResultKey = (byte)EResult.Succeed; pReturnValue.ResultValue = TipInfo.UpdateSuccess; return(pReturnValue); } catch (Exception ex) { Common.SystemLog.GetInstance().Log.Info(TipInfo.UpdateDataRepeat, ex); pReturnValue.ResultKey = (byte)EResult.Fail; pReturnValue.ResultValue = TipInfo.UpdateDataRepeat; return(pReturnValue); } } else//存在数据尚未生成 { pReturnValue.ResultKey = (byte)EResult.Fail; pReturnValue.ResultValue = TipInfo.UpdateDataRepeat; return(pReturnValue); } } } }
/// <summary> /// 获取和构造报表11的数据 /// </summary> /// <param name="para"></param> /// <returns></returns> private List <HDayStaExEnViewModel> GetData(Common.QueryParameters para) { //补数据 RepairData(para); List <HDayStaExEnViewModel> list = new List <HDayStaExEnViewModel>(); #region 构建数据结构 //构建列名行 HDayStaExEnViewModel modelTitle = new HDayStaExEnViewModel(); modelTitle.Belong = "所属高速"; modelTitle.Total = "合计"; modelTitle.Num = "序号"; modelTitle.Name = "收费站名称"; modelTitle.Date1 = para.StartTime.Value.AddDays(0).ToString("M月d日"); modelTitle.Date2 = para.StartTime.Value.AddDays(1).ToString("M月d日"); modelTitle.Date3 = para.StartTime.Value.AddDays(2).ToString("M月d日"); modelTitle.Date4 = para.StartTime.Value.AddDays(3).ToString("M月d日"); modelTitle.Date5 = para.StartTime.Value.AddDays(4).ToString("M月d日"); modelTitle.Date6 = para.StartTime.Value.AddDays(5).ToString("M月d日"); modelTitle.Date7 = para.StartTime.Value.AddDays(6).ToString("M月d日"); modelTitle.Date8 = para.StartTime.Value.AddDays(7).ToString("M月d日"); modelTitle.Date9 = para.StartTime.Value.AddDays(8).ToString("M月d日"); modelTitle.Date10 = para.StartTime.Value.AddDays(9).ToString("M月d日"); modelTitle.Date11 = para.StartTime.Value.AddDays(10).ToString("M月d日"); modelTitle.Date12 = para.StartTime.Value.AddDays(11).ToString("M月d日"); modelTitle.Date13 = para.StartTime.Value.AddDays(12).ToString("M月d日"); modelTitle.Date14 = para.StartTime.Value.AddDays(13).ToString("M月d日"); modelTitle.Date15 = para.StartTime.Value.AddDays(14).ToString("M月d日"); qModel.TitleList = new List <HDayStaExEnViewModel>(); qModel.TitleList.Add(modelTitle); //构建杨村站流量行 HDayStaExEnViewModel modelYC = new HDayStaExEnViewModel(); modelYC.Belong = "京津塘高速"; modelYC.Num = "43"; modelYC.Name = "杨村站"; list.Add(modelYC); //构建宜兴埠东站流量行 HDayStaExEnViewModel modelYXBD = new HDayStaExEnViewModel(); modelYXBD.Belong = "京津塘高速"; modelYXBD.Num = "44"; modelYXBD.Name = "宜兴埠东站"; list.Add(modelYXBD); //构建宜兴埠西站流量行 HDayStaExEnViewModel modelYXBX = new HDayStaExEnViewModel(); modelYXBX.Belong = "京津塘高速"; modelYXBX.Num = "45"; modelYXBX.Name = "宜兴埠西站"; list.Add(modelYXBX); //构建金钟路站流量行 HDayStaExEnViewModel modelJZL = new HDayStaExEnViewModel(); modelJZL.Belong = "京津塘高速"; modelJZL.Num = "46"; modelJZL.Name = "金钟路站"; list.Add(modelJZL); //构建机场站流量行 HDayStaExEnViewModel modelJC = new HDayStaExEnViewModel(); modelJC.Belong = "京津塘高速"; modelJC.Num = "47"; modelJC.Name = "机场站"; list.Add(modelJC); //构建空港经济区站流量行 HDayStaExEnViewModel modelKG = new HDayStaExEnViewModel(); modelKG.Belong = "京津塘高速"; modelKG.Num = "48"; modelKG.Name = "空港经济区站"; list.Add(modelKG); //构建塘沽西站流量行 HDayStaExEnViewModel modelTGX = new HDayStaExEnViewModel(); modelTGX.Belong = "京津塘高速"; modelTGX.Num = "49"; modelTGX.Name = "塘沽西站"; list.Add(modelTGX); //构建机场站流量行 HDayStaExEnViewModel modelTGXF = new HDayStaExEnViewModel(); modelTGXF.Belong = "京津塘高速"; modelTGXF.Num = "50"; modelTGXF.Name = "塘沽西分站"; list.Add(modelTGXF); //构建塘沽北站流量行 HDayStaExEnViewModel modelTGB = new HDayStaExEnViewModel(); modelTGB.Belong = "京津塘高速"; modelTGB.Num = "51"; modelTGB.Name = "塘沽北站"; list.Add(modelTGB); #endregion if (para.StartTime != null) { using (DataSubmittedEntities db = new DataSubmittedEntities()) { //查询数据 var lst = StrWhere(db, para).OrderBy(a => a.CalcuTime).ToList(); // list.AddRange(lst); //按条件查询后有数据 if (list != null && list.Count > 0) { //计算查询日期之间的差值 int countMax = (para.EndTime.Value - para.StartTime.Value).Days + 1; for (int j = 0; j < lst.Count; j++) { #region 将数据库中存放的数据赋值到表中 for (int i = 1; i < 16; i++) { Type myType = qModel.TitleList[0].GetType(); PropertyInfo pinfo = myType.GetProperty("Date" + i); if (lst[j].CalcuTime.Value.ToString("M月d日").ToString() == pinfo.GetValue(qModel.TitleList[0]).ToString()) { Type type1 = list[0].GetType(); PropertyInfo pinfo1 = type1.GetProperty("Date" + i); pinfo1.SetValue(list[0], lst[j].YC.ToString()); Type type2 = list[1].GetType(); PropertyInfo pinfo2 = type2.GetProperty("Date" + i); pinfo2.SetValue(list[1], lst[j].YXBD.ToString()); Type type3 = list[2].GetType(); PropertyInfo pinfo3 = type3.GetProperty("Date" + i); pinfo3.SetValue(list[2], lst[j].YXBX.ToString()); Type type4 = list[3].GetType(); PropertyInfo pinfo4 = type4.GetProperty("Date" + i); pinfo4.SetValue(list[3], lst[j].JZL.ToString()); Type type5 = list[4].GetType(); PropertyInfo pinfo5 = type5.GetProperty("Date" + i); pinfo5.SetValue(list[4], lst[j].JC.ToString()); Type type6 = list[5].GetType(); PropertyInfo pinfo6 = type6.GetProperty("Date" + i); pinfo6.SetValue(list[5], lst[j].KG.ToString()); Type type7 = list[6].GetType(); PropertyInfo pinfo7 = type7.GetProperty("Date" + i); pinfo7.SetValue(list[6], lst[j].TGX.ToString()); Type type8 = list[7].GetType(); PropertyInfo pinfo8 = type8.GetProperty("Date" + i); pinfo8.SetValue(list[7], lst[j].TGXF.ToString()); Type type9 = list[8].GetType(); PropertyInfo pinfo9 = type9.GetProperty("Date" + i); pinfo9.SetValue(list[8], lst[j].TGB.ToString()); break; } } #endregion } } #region 计算合计行 foreach (HDayStaExEnViewModel model in list) { double total = -1; if (!string.IsNullOrEmpty(model.Date1)) { total = double.Parse(model.Date1); } if (!string.IsNullOrEmpty(model.Date2)) { total = total + double.Parse(model.Date2); } if (!string.IsNullOrEmpty(model.Date3)) { total = total + double.Parse(model.Date3); } if (!string.IsNullOrEmpty(model.Date4)) { total = total + double.Parse(model.Date4); } if (!string.IsNullOrEmpty(model.Date5)) { total = total + double.Parse(model.Date5); } if (!string.IsNullOrEmpty(model.Date6)) { total = total + double.Parse(model.Date6); } if (!string.IsNullOrEmpty(model.Date7)) { total = total + double.Parse(model.Date7); } if (!string.IsNullOrEmpty(model.Date8)) { total = total + double.Parse(model.Date8); } if (!string.IsNullOrEmpty(model.Date9)) { total = total + double.Parse(model.Date9); } if (!string.IsNullOrEmpty(model.Date10)) { total = total + double.Parse(model.Date10); } if (!string.IsNullOrEmpty(model.Date11)) { total = total + double.Parse(model.Date11); } if (!string.IsNullOrEmpty(model.Date12)) { total = total + double.Parse(model.Date12); } if (!string.IsNullOrEmpty(model.Date13)) { total = total + double.Parse(model.Date13); } if (!string.IsNullOrEmpty(model.Date14)) { total = total + double.Parse(model.Date14); } if (!string.IsNullOrEmpty(model.Date15)) { total = total + double.Parse(model.Date15); } if (total > -1) { model.Total = total.ToString(); } } #endregion //存储到缓存中 listExport.Clear(); listExport.AddRange(list); } } return(list); }