Exemple #1
0
        /// <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);
                    }
                }
            }
        }
Exemple #2
0
        /// <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);
        }