示例#1
0
        /// <summary>
        /// 检查Session
        /// </summary>
        /// <returns></returns>
        private SmcErr CheckSession()
        {
            NLogEx.LoggerEx logEx      = new NLogEx.LoggerEx(log);
            SmcErr          err        = new CgwError();
            CGWSession      CgwSession = null;

            if (OperationContext.Current != null)
            {
                string strSessionId = OperationContext.Current.SessionId;
                err = SessionManage.Instance().GetSessionsBySessionId(strSessionId, out CgwSession);

                if (err.IsSuccess() == false || CgwSession == null)
                {
                    err.SetErrorNo(CgwError.ERR_CGW_BUSINESS_SESSION_NULL);
                }
                else
                {
                    //更新Session最后访问时间
                    CgwSession.LastVisitedTime = DateTime.Now;
                    logEx.Trace("Current SessionId is:{0}, LastVisitedTime is :{1}", strSessionId, CgwSession.LastVisitedTime.ToLongTimeString());
                }
            }
            else
            {
                err.SetErrorNo(CgwError.ERR_CGW_BUSINESS_CURRENTSESSION_NULL);
            }

            return(err);
        }
示例#2
0
        /// <summary>
        /// 更新用户信息
        /// </summary>
        /// <param name="id">用户ID</param>
        /// <param name="user">用户数据对象</param>
        /// <returns>JsonResult</returns>
        public JsonResult UpdateUserInfo(string id, SYS_User user)
        {
            const string action = "3BC17B61-327D-4EAA-A0D7-7F825A6C71DB";
            var          verify = new SessionVerify();

            if (!verify.CompareAsID(action, id))
            {
                return(verify.Result);
            }

            var reset = Update(user);

            if (!reset.HasValue)
            {
                return(verify.Result.NotFound());
            }

            if (!reset.Value)
            {
                return(verify.Result.DataBaseError());
            }

            SessionManage.UpdateSession(user);
            return(verify.Result);
        }
示例#3
0
        /// <summary>
        /// 写入日志,非报表类操作
        /// </summary>
        /// <param name="type">操作类型</param>
        /// <param name="describe">操作描述</param>
        /// <returns></returns>
        public byte WriteLog(String type, string describe)
        {
            OT_Log pTemp = new OT_Log();

            try
            {
                var pUser = SessionManage.GetLoginUser();
                if (pUser != null)
                {
                    pTemp.Id       = Guid.NewGuid();
                    pTemp.LogDate  = DateTime.Now;
                    pTemp.Type     = type;
                    pTemp.UserName = pUser.UserName;
                    pTemp.RptName  = string.Empty;
                    pTemp.Describe = describe;

                    if (pUser.RoleList.Count > 0 && pUser.RoleList[0] != null)
                    {
                        pTemp.RoleName = pUser.RoleList[0].RoleName;
                    }
                    return(Create(pTemp));
                }
            }
            catch (Exception ex)
            {
                SystemLog.GetInstance().Error("插入操作日志失败!", ex);
            }
            return((byte)EResult.Fail);
        }
示例#4
0
        /// <summary>
        /// 断开融合网关
        /// </summary>
        /// <returns></returns>
        public SmcErr DisConnect()
        {
            NLogEx.LoggerEx logEx = new NLogEx.LoggerEx(log);
            SmcErr          err   = new CgwError();

            if (OperationContext.Current != null)
            {
                string strSessionId = OperationContext.Current.SessionId;
                if (!string.IsNullOrEmpty(strSessionId))
                {
                    err = SessionManage.Instance().RemoveSessionBySessionId(strSessionId);
                    logEx.Trace("DisConnect Successful,Current.SessionId is : ", strSessionId);
                }
                else
                {
                    err.SetErrorNo(CgwError.ERR_CGW_BUSINESS_CURRENTSESSION_NULL);
                    logEx.Warn("Current SessionId is null ! ");
                }
            }
            else
            {
                err.SetErrorNo(CgwError.ERR_CGW_BUSINESS_CURRENTSESSION_NULL);
                logEx.Warn("Current SessionId is null ! ");
            }

            return(err);
        }
示例#5
0
        /// <summary>
        /// 写入日志,报表类操作
        /// </summary>
        /// <param name="type">操作类型</param>
        /// <param name="report">报表名称</param>
        /// <param name="dt">时间(yyyy-MM-dd)或时间范围(yyyy-MM-dd - yyyy-MM-dd)</param>
        /// <returns></returns>
        public byte WriteLog(String type, String report, String dt)
        {
            OT_Log pTemp = new OT_Log();

            try
            {
                var pUser = SessionManage.GetLoginUser();
                if (pUser != null)
                {
                    pTemp.Id       = Guid.NewGuid();
                    pTemp.LogDate  = DateTime.Now;
                    pTemp.Type     = type;
                    pTemp.UserName = pUser.UserName;
                    if (type != OperationType.Login && type != OperationType.LoginOut)
                    {
                        pTemp.RptName  = report;
                        pTemp.Describe = String.Format("{0}{1}{2}", type, dt, report);
                    }
                    if (pUser.RoleList.Count > 0 && pUser.RoleList[0] != null)
                    {
                        pTemp.RoleName = pUser.RoleList[0].RoleName;
                    }
                    return(Create(pTemp));
                }
            }
            catch (Exception ex)
            {
                SystemLog.GetInstance().Error("插入操作日志失败!", ex);
            }
            return((byte)EResult.Fail);
        }
示例#6
0
        /// <summary>
        /// 修改密码
        /// </summary>
        /// <param name="userId">用户编号</param>
        /// <param name="pwd">新密码</param>
        /// <param name="oldpwd">旧密码</param>
        /// <returns>修改结果</returns>
        public CustomResult  UpdatePassword(Guid userId, string pwd, string oldpwd)
        {
            using (DataSubmittedEntities db = new DataSubmittedEntities())
            {
                using (TransactionScope transaction = new TransactionScope())
                {
                    MD5Encryptor md5      = new MD5Encryptor();
                    string       password = md5.Encrypt(oldpwd);

                    var list = db.OT_User.Where(a => a.Id == userId & a.Password == password & a.IsDelete == (byte)EUserStatus.Normal).ToList();

                    if (list != null && list.Count > 0)
                    {
                        password = md5.Encrypt(pwd);
                        foreach (var info in list)
                        {
                            info.Password = password;
                        }
                        SessionManage.SetSession("UserInfo", null);
                        return(Result.SaveUpdateResult(db, transaction));
                    }
                    else
                    {
                        CustomResult pReturnValue = new CustomResult();
                        pReturnValue.ResultKey   = (byte)EResult.Fail;//程序已经使用多处,所有不变动
                        pReturnValue.ResultValue = Wttech.DataSubmitted.Common.Resources.TipInfo.OldPasswordError;
                        return(pReturnValue);
                    }
                }
            }
        }
示例#7
0
        /// <summary>
        /// 为指定的登录账号设置用户状态
        /// </summary>
        /// <param name="account">登录账号</param>
        /// <param name="validity">可用状态</param>
        /// <returns>JsonResult</returns>
        public JsonResult SetUserStatus(string account, bool validity)
        {
            var action = validity ? "369548E9-C8DB-439B-A604-4FDC07F3CCDD" : "0FA34D43-2C52-4968-BDDA-C9191D7FCE80";
            var verify = new SessionVerify();

            if (!verify.Compare(action, account))
            {
                return(verify.Result);
            }

            var reset = Update(verify.Guid, validity);

            if (!reset.HasValue)
            {
                return(verify.Result.NotFound());
            }

            if (!reset.Value)
            {
                return(verify.Result.DataBaseError());
            }

            SessionManage.SetValidity(account, validity);
            return(verify.Result);
        }
示例#8
0
        /// <summary>
        /// 根据对象实体数据新增一个用户
        /// </summary>
        /// <param name="account">登录账号</param>
        /// <param name="user">用户对象</param>
        /// <returns>JsonResult</returns>
        public JsonResult AddUser(string account, SYS_User user)
        {
            const string action = "60D5BE64-0102-4189-A999-96EDAD3DA1B5";
            var          verify = new SessionVerify();

            // 用户注册,验证用户签名
            if (verify.Basis == null)
            {
                var session = verify.Session;
                var sign    = Hash(session.LoginName + user.LoginName + user.Password);
                if (sign != session.Signature)
                {
                    return(verify.Result.InvalidAuth());
                }

                if (!InsertData(user))
                {
                    return(verify.Result.DataBaseError());
                }

                // 返回用于验证的Key
                session.Signature = Hash(account.ToUpper() + user.Password);
                session           = SessionManage.GetSession(session);
                return(verify.Result.Created(CreateKey(session)));
            }

            // 管理员添加用户,验证管理员身份及鉴权
            if (!verify.Compare(action))
            {
                return(verify.Result);
            }

            return(InsertData(user) ? verify.Result.Created() : verify.Result.DataBaseError());
        }
 public JsonResult GetUserInfo()
 {
     //UserInfoViewModel result=null;
     //if (Session["UserInfo"] != null)
     //    result = (UserInfoViewModel)Session["UserInfo"];
     //SessionManage.GetLoginUser();
     return(Json(SessionManage.GetLoginUser(), JsonRequestBehavior.DenyGet));
 }
        /// <summary>
        /// 补数据
        /// </summary>
        /// <param name="para"></param>
        private void RepairData(QueryParameters para)
        {
            using (DataSubmittedEntities db = new DataSubmittedEntities())
            {
                using (TransactionScope transaction = new TransactionScope())
                {
                    int day = (para.EndTime.Value - para.StartTime.Value).Days + 1;
                    for (int i = 0; i < day; i++)
                    {
                        DateTime dtime = para.StartTime.Value.AddDays(i);

                        //时间小于当前时间
                        if (DateTime.Now > dtime)
                        {
                            bool flag = StrWhere(db, para).Select(a => a.CalculTime).ToList().Contains(dtime);
                            if (!flag)//补数据
                            {
                                RP_AADTSta hday = new RP_AADTSta();
                                hday.CalculTime = dtime;
                                if (SessionManage.GetLoginUser() != null)
                                {
                                    hday.CrtBy = SessionManage.GetLoginUser().UserName;
                                }
                                hday.CrtDate   = DateTime.Now;
                                hday.Id        = Guid.NewGuid();
                                hday.LineEnSum = 0;
                                hday.LineExSum = 0;
                                db.RP_AADTSta.Add(hday);
                            }
                            else//将数据中有空值的改成0
                            {
                                var hday = db.RP_AADTSta.Where(a => a.CalculTime == dtime).ToList()[0];
                                if (hday.LineEnSum == null)
                                {
                                    hday.LineEnSum = 0;
                                }
                                if (hday.LineExSum == null)
                                {
                                    hday.LineExSum = 0;
                                }
                            }
                        }
                    }
                    try
                    {
                        db.SaveChanges();
                        transaction.Complete();
                    }
                    catch (Exception ex)
                    {
                        SystemLog.GetInstance().Error(TipInfo.AddFaile, ex);
                    }
                }
            }
        }
示例#11
0
        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="args"></param>
        /// <returns></returns>
        public Common.CustomResult Update(Common.ViewModels.UpdateEnExViewModel args)
        {
            using (DataSubmittedEntities db = new DataSubmittedEntities())
            {
                using (TransactionScope transaction = new TransactionScope())
                {
                    CustomResult pReturnValue = new CustomResult();

                    DateTime dt = new DateTime();
                    if (DateTime.TryParse(args.DataInfo[0].CalcuTime, out dt))
                    {
                        var list = db.RP_EnEx.Where(a => a.CalcuTime == dt & a.StaType == args.StationType).ToList();
                        if (list != null && list.Count > 0 && args.DataInfo != null && args.DataInfo.Count > 0)
                        {
                            // list[0].CalcuTime = args.DataInfo[0].CalcuTime;
                            //  list[0].EnGre = args.DataInfo[0].EnGre;

                            list[0].EnOthCar = args.DataInfo[0].EnOthCar;
                            list[0].EnSmaCar = args.DataInfo[0].EnSmaCar;
                            list[0].EnTruk   = args.DataInfo[0].EnTruk;
                            list[0].State    = "1";
                            list[0].UpdDate  = DateTime.Now;
                            if (SessionManage.GetLoginUser() != null)
                            {
                                list[0].UpdBy = SessionManage.GetLoginUser().UserName;
                            }
                        }
                        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.DateTimeIsNull;
                        return(pReturnValue);
                    }
                }
            }
        }
示例#12
0
        public void NHibernateTest()
        {
            Engine engine = new Engine();

            engine.Start();
            using (ISession session = SessionManage.OpenSession())
            {
                ITransaction tran = session.BeginTransaction();
                string       sql  = string.Format("from BoxTagsInfo b");
                IList        list = session.CreateQuery(sql).List();
                tran.Commit();
            }
        }
 /// <summary>
 /// 修改数据信息
 /// </summary>
 /// <typeparam name="T">数据表类型集合</typeparam>
 /// <param name="args">参数</param>
 /// <returns>影响行数</returns>
 public CustomResult Update(UpdateHdayExViewModel args)
 {
     using (DataSubmittedEntities db = new DataSubmittedEntities())
     {
         using (TransactionScope transaction = new TransactionScope())
         {
             CustomResult    pReturnValue = new CustomResult();
             int             count        = (args.EndTime.Value - args.StartTime.Value).Days + 1;
             HDayExViewModel model        = null;
             if (args.DataInfo.Count > 0)
             {
                 if (args.DataInfo[0].Num == 15)
                 {
                     model = args.DataInfo[0];
                 }
             }
             try
             {
                 for (int i = 0; i < count; i++)
                 {
                     DateTime pDateTime = args.StartTime.Value.AddDays(i);
                     var      listHDa   = db.RP_HDayAADT.Where(a => a.CalcuTime == pDateTime).ToList();
                     foreach (RP_HDayAADT hd in listHDa)
                     {
                         Type         myType = model.GetType();
                         PropertyInfo pinfo  = myType.GetProperty("Tra" + (i + 1));
                         hd.Out     = (double)pinfo.GetValue(model);
                         hd.UpdDate = DateTime.Now;
                         hd.State   = "1";
                         if (SessionManage.GetLoginUser() != null)
                         {
                             hd.UpdBy = SessionManage.GetLoginUser().UserName;
                         }
                     }
                 }
                 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);
             }
         }
     }
 }
示例#14
0
        /// <summary>
        /// 获取当前在线状态的全部内部用户的Session
        /// </summary>
        /// <param name="type">用户类型</param>
        /// <returns>JsonResult</returns>
        public JsonResult GetSessions(string type)
        {
            const string action = "331BF752-CDB7-44DE-9631-DF2605BB527E";
            var          verify = new SessionVerify();

            if (!verify.Compare(action))
            {
                return(verify.Result);
            }

            var list = SessionManage.GetSessions(Convert.ToInt32(type));

            return(list.Count > 0 ? verify.Result.Success(list) : verify.Result.NoContent());
        }
示例#15
0
        /// <summary>
        /// 设置指定用户的登录状态为离线
        /// </summary>
        /// <param name="account">用户账号</param>
        /// <returns>JsonResult</returns>
        public JsonResult UserSignOut(string account)
        {
            var action = "331BF752-CDB7-44DE-9631-DF2605BB527E";
            var verify = new SessionVerify();

            if (verify.Basis.LoginName == account)
            {
                action = null;
            }

            if (!verify.Compare(action))
            {
                return(verify.Result);
            }

            SessionManage.Offline(account);
            return(verify.Result);
        }
示例#16
0
        /// <summary>
        /// 连接融合网关
        /// </summary>
        /// <param name="password">连接字符串</param>
        /// <returns></returns>
        public SmcErr Connect(string password)
        {
            SmcErr err = new CgwError();

            NLogEx.LoggerEx logEx = new NLogEx.LoggerEx(log);
            if (false == string.IsNullOrEmpty(password))
            {
                //获取后台密码字符串
                string s = CommonFunction.GetAppSetting("PassWord");
                //进行SHA256加密
                string newPassword = CommonFunction.SHA256Encrypt(s);
                //保存当前会话
                if (newPassword == password)
                {
                    //获取SessionManage中Session个数
                    if (SessionManage.Instance().GetSessionsCount() == 0)
                    {
                        Guid sessionGuid = Guid.NewGuid();

                        //保存至CGW的session管理中
                        CGWSession CgwSession = new CGWSession(sessionGuid, OperationContext.Current.SessionId);
                        logEx.Trace("Connect Successful,Current.SessionId is : ", OperationContext.Current.SessionId);
                    }
                    else
                    {
                        err.SetErrorNo(CgwError.ERR_CGW_BUSINESS_SESSION_COUNT_MAX);
                        logEx.Warn("Session Count is  Top Of Max number !");
                    }
                }
                else
                {
                    err.SetErrorNo(CgwError.ERR_CGW_BUSINESS_PASSWORD_INCORRECT);
                    logEx.Error("Connect Password is Incorrect !");
                }
            }
            else
            {
                err.SetErrorNo(CgwError.ERR_CGW_BUSINESS_PASSWORD_NULL);
                logEx.Error("Connect Password is null !");
            }
            return(err);
        }
示例#17
0
        /// <summary>
        /// 保存用户信息到缓存中
        /// </summary>
        /// <param name="userId">用户编号</param>
        /// <param name="Session">存储用户信息缓存</param>
        private void SaveUserInfo(Guid userId)
        {
            using (DataSubmittedEntities db = new DataSubmittedEntities())
            {
                List <UserInfoViewModel> list = db.OT_User.Where(a => a.Id == userId & a.IsDelete == (byte)EUserStatus.Normal).Select(a => new UserInfoViewModel
                {
                    UserId   = a.Id,
                    UserName = a.Name,
                }).ToList();

                //给用户的角色赋值
                foreach (UserInfoViewModel model in list)
                {
                    model.RoleList = db.OT_UserRole.Where(a => a.UserId == userId && a.IsDelete == (byte)EDataStatus.Normal).Select(a => new RoleInfoViewModel
                    {
                        RoleId   = a.RoleId,
                        RoleName = a.OT_Role.Name
                    }).ToList();
                }

                SessionManage.SetSession("UserInfo", list[0]);
            }
        }
示例#18
0
        /// <summary>
        /// 每次请求都续期
        /// </summary>
        /// <param name="filterContext"></param>
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            var      cookie = filterContext.HttpContext.Request.Cookies["redisRefresh"];
            DateTime lastTime;

            if (cookie == null)
            {
                filterContext.HttpContext.Response.Cookies.Add(new HttpCookie("redisRefresh", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")));
                lastTime = DateTime.Now;
            }
            else
            {
                lastTime = Convert.ToDateTime(cookie.Value);
            }
            var ts = DateTime.Now - lastTime;

            if (ts.TotalMinutes > 5)
            {
                SessionManage.GetSessionClient(filterContext.HttpContext).Refresh();
                cookie.Value = DateTime.Now.ToString();
                filterContext.HttpContext.Response.Cookies.Add(cookie);
            }
        }
示例#19
0
        /// <summary>
        /// 更新指定用户Session的签名
        /// </summary>
        /// <param name="account">登录账号</param>
        /// <param name="password">新密码</param>
        /// <returns>JsonResult</returns>
        public JsonResult UpdateSignature(string account, string password)
        {
            const string action  = "26481E60-0917-49B4-BBAA-2265E71E7B3F";
            var          verify  = new SessionVerify();
            var          session = verify.Basis;

            if (!StringCompare(session.LoginName, account))
            {
                session = SessionManage.GetSession(account);
            }

            if (!verify.Compare(action, account))
            {
                return(verify.Result);
            }

            var reset = Update(account, password);

            if (!reset.HasValue)
            {
                return(verify.Result.NotFound());
            }

            if (!reset.Value)
            {
                return(verify.Result.DataBaseError());
            }

            if (session == null)
            {
                return(verify.Result);
            }

            session.Signature = Hash(session.LoginName.ToUpper() + password);
            return(verify.Result.Success(CreateKey(session)));
        }
        /// <summary>
        /// 校正数据
        /// </summary>
        /// <param name="args"></param>
        /// <returns></returns>
        public CustomResult CalibrationData(QueryParameters para)
        {
            CustomResult pReturnValue = new CustomResult();
            double       pFloating    = 1 + para.FloatingRange * 0.01;

            List <RP_HDayAADT> pHDayAADT = new List <RP_HDayAADT>();

            try
            {
                using (DataSubmittedEntities db = new DataSubmittedEntities())
                {
                    //判断报表浮动百分比配置是否正确
                    OT_HDayConfig pds = HolidayConfig.GetInstance().GetById(para.ReportType);
                    if (pds == null)
                    {
                        pReturnValue.ResultKey   = (byte)EResult.Fail;
                        pReturnValue.ResultValue = TipInfo.CalibrationFaileNoConfig;
                        return(pReturnValue);
                    }
                    if (Math.Abs(para.FloatingRange) > (double)pds.CheckFloat.Value)
                    {
                        pReturnValue.ResultKey   = (byte)EResult.Fail;
                        pReturnValue.ResultValue = TipInfo.ErrorInfo + "范围应在负" + pds.CheckFloat.Value + "%-正" + pds.CheckFloat.Value + "%之间";
                        return(pReturnValue);
                    }
                    //判断时间范围是否相同
                    if ((para.LastYearEnd - para.LastYearStart) == (para.EndTime - para.StartTime))
                    {
                        //获取参考日期符合校正时间段的数据
                        List <RP_HDayAADT> pRefList = db.RP_HDayAADT.Where(s => s.CalcuTime >= para.LastYearStart && s.CalcuTime <= para.LastYearEnd).ToList();
                        //如果参考日期数据为0 则返回失败
                        if (pRefList.Count == 0)
                        {
                            pReturnValue.ResultKey   = (byte)EResult.Fail;
                            pReturnValue.ResultValue = TipInfo.CalibrationFaileRefNoData;
                            return(pReturnValue);
                        }
                        //需要校正的数据
                        var pCheckList = db.RP_HDayAADT.Where(s => s.CalcuTime >= para.StartTime && s.CalcuTime <= para.EndTime).ToList();
                        //如果需要校正的数据为空则返回失败
                        if (pCheckList.Count == 0)
                        {
                            pReturnValue.ResultKey   = (byte)EResult.Fail;
                            pReturnValue.ResultValue = TipInfo.CalibrationFaileNoData;
                            return(pReturnValue);
                        }
                        using (TransactionScope tran = new TransactionScope())
                        {
                            ////校正数据
                            //RP_HDayAADTSta pCheckInfo = pCheckNaturalList.First();
                            ////参考数据
                            //RP_HDayAADTSta pRefInfo = pRefNaturalList.First();

                            foreach (RP_HDayAADT pCheckInfo in pCheckList) //校正数据
                            {
                                foreach (RP_HDayAADT pRefInfo in pRefList) //参考数据
                                {
                                    if (pRefInfo.CalcuTime == pRefInfo.CalcuTime)
                                    {
                                        pCheckInfo.Out = Math.Round(pRefInfo.Out.Value * pFloating);
                                        if (SessionManage.GetLoginUser() != null)
                                        {
                                            pCheckInfo.UpdBy = SessionManage.GetLoginUser().UserName;
                                        }
                                        pCheckInfo.UpdDate = DateTime.Now;
                                        pCheckInfo.State   = "1";
                                        break;
                                    }
                                }
                            }
                            db.SaveChanges();
                            tran.Complete();
                            pReturnValue.ResultKey   = (byte)EResult.Succeed;
                            pReturnValue.ResultValue = TipInfo.CalibrationSuccess;
                        }
                    }
                    else
                    {
                        pReturnValue.ResultKey   = (byte)EResult.Fail;
                        pReturnValue.ResultValue = TipInfo.CalibrationRangeFaile;
                    }
                }
                return(pReturnValue);
            }
            catch (Exception e)
            {
                pReturnValue.ResultKey   = (byte)EResult.Fail;
                pReturnValue.ResultValue = TipInfo.CalibrationFaile + e.Message.ToString();
                SystemLog.GetInstance().Error(TipInfo.CalibrationFaile, e);
                return(pReturnValue);
            }
        }
示例#21
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);
                    }
                }
            }
        }
示例#22
0
        /// <summary>
        /// 校正
        /// </summary>
        /// <param name="para"></param>
        /// <returns></returns>
        public Common.CustomResult CalibrationData(Common.QueryParameters para)
        {
            CustomResult pReturnValue = new CustomResult();
            double       pFloating    = 1 + para.FloatingRange * 0.01;

            using (DataSubmittedEntities db = new DataSubmittedEntities())
            {
                //判断报表浮动百分比配置是否正确
                OT_HDayConfig pds = HolidayConfig.GetInstance().GetById(para.ReportType);
                if (pds == null)
                {
                    pReturnValue.ResultKey   = (byte)EResult.Fail;
                    pReturnValue.ResultValue = TipInfo.CalibrationFaileNoConfig;
                    return(pReturnValue);
                }
                if (Math.Abs(para.FloatingRange) > (double)pds.CheckFloat.Value)
                {
                    pReturnValue.ResultKey   = (byte)EResult.Fail;
                    pReturnValue.ResultValue = TipInfo.ErrorInfo + "范围应在负" + pds.CheckFloat.Value + "%-正" + pds.CheckFloat.Value + "%之间";
                    return(pReturnValue);
                }
                //判断时间范围是否相同
                if ((para.LastYearEnd - para.LastYearStart) == (para.EndTime - para.StartTime))
                {
                    //获取参考日期符合校正时间段的数据
                    List <RP_HDayAADT> pRefNaturalList = db.RP_HDayAADT.Where(a => a.CalcuTime >= para.LastYearStart & a.CalcuTime <= para.LastYearEnd).OrderBy(a => a.CalcuTime).ToList();
                    //如果参考日期数据为0 则返回失败
                    if (pRefNaturalList == null || pRefNaturalList.Count == 0)
                    {
                        pReturnValue.ResultKey   = (byte)EResult.Fail;
                        pReturnValue.ResultValue = TipInfo.CalibrationFaileRefNoData;
                        return(pReturnValue);
                    }
                    //需要校正的数据
                    var pCheckNaturalList = db.RP_HDayAADT.Where(a => a.CalcuTime >= para.StartTime & a.CalcuTime <= para.EndTime).OrderBy(a => a.CalcuTime).ToList();
                    //如果需要校正的数据为空则返回失败
                    if (pCheckNaturalList == null || pCheckNaturalList.Count == 0)
                    {
                        pReturnValue.ResultKey   = (byte)EResult.Fail;
                        pReturnValue.ResultValue = TipInfo.CalibrationFaileNoData;
                        return(pReturnValue);
                    }
                    using (TransactionScope tran = new TransactionScope())
                    {
                        for (int i = 0; i < pCheckNaturalList.Count; i++)
                        {
                            if (pRefNaturalList[i].JC != null)
                            {
                                pCheckNaturalList[i].JC = Math.Round(pRefNaturalList[i].JC.Value * pFloating);
                            }
                            if (pRefNaturalList[i].JZL != null)
                            {
                                pCheckNaturalList[i].JZL = Math.Round(pRefNaturalList[i].JZL.Value * pFloating);
                            }
                            if (pRefNaturalList[i].KG != null)
                            {
                                pCheckNaturalList[i].KG = Math.Round(pRefNaturalList[i].KG.Value * pFloating);
                            }
                            if (pRefNaturalList[i].TGB != null)
                            {
                                pCheckNaturalList[i].TGB = Math.Round(pRefNaturalList[i].TGB.Value * pFloating);
                            }
                            if (pRefNaturalList[i].TGX != null)
                            {
                                pCheckNaturalList[i].TGX = Math.Round(pRefNaturalList[i].TGX.Value * pFloating);
                            }
                            if (pRefNaturalList[i].TGXF != null)
                            {
                                pCheckNaturalList[i].TGXF = Math.Round(pRefNaturalList[i].TGXF.Value * pFloating);
                            }
                            if (pRefNaturalList[i].YC != null)
                            {
                                pCheckNaturalList[i].YC = Math.Round(pRefNaturalList[i].YC.Value * pFloating);
                            }
                            if (pRefNaturalList[i].YXBD != null)
                            {
                                pCheckNaturalList[i].YXBD = Math.Round(pRefNaturalList[i].YXBD.Value * pFloating);
                            }
                            if (pRefNaturalList[i].YXBX != null)
                            {
                                pCheckNaturalList[i].YXBX = Math.Round(pRefNaturalList[i].YXBX.Value * pFloating);
                            }
                            if (SessionManage.GetLoginUser() != null)
                            {
                                pCheckNaturalList[i].UpdBy = SessionManage.GetLoginUser().UserName;
                            }
                            pCheckNaturalList[i].UpdDate = DateTime.Now;
                            pCheckNaturalList[i].State   = "1";
                        }
                        try
                        {
                            db.SaveChanges();
                            tran.Complete();
                            pReturnValue.ResultKey   = (byte)EResult.Succeed;
                            pReturnValue.ResultValue = TipInfo.CalibrationSuccess;
                        }
                        catch (Exception e)
                        {
                            pReturnValue.ResultKey   = (byte)EResult.Fail;
                            pReturnValue.ResultValue = TipInfo.CalibrationFaile + e.Message.ToString();
                            SystemLog.GetInstance().Error(TipInfo.CalibrationFaile, e);
                            return(pReturnValue);
                        }
                    }
                }
                else
                {
                    pReturnValue.ResultKey   = (byte)EResult.Fail;
                    pReturnValue.ResultValue = TipInfo.CalibrationRangeFaile;
                }
            }
            return(pReturnValue);
        }
示例#23
0
 /// <summary>
 /// 报表17备注
 /// </summary>
 /// <param name="sheet"></param>
 /// <param name="reporttype"></param>
 private void SetRemark(ISheet sheet, int reporttype)
 {
     try
     {
         //17备注备注规则,二者用分号分隔,符合全为英文下的,如果不包含两个人的信息则不加分号示例:负责人:张三 联系电话:022-6583411 手机:18888888888;填表人:张四 联系电话:022-6583411 手机:18888888888
         OT_HDayConfig holiday = HolidayConfig.GetInstance().GetById(reporttype);
         if (holiday != null)
         {
             string[] remark   = new string[] { };
             string   officer  = string.Empty;
             string   preparer = string.Empty;
             //包含两个人的信息
             if (holiday.RptRemark.IndexOf(';') != -1)
             {
                 remark = holiday.RptRemark.Split(';');
                 if (remark[0].Substring(0, 3).ToString() == "负责人")
                 {
                     officer  = remark[0];
                     preparer = remark[1];
                 }
                 else
                 {
                     preparer = remark[0];
                     officer  = remark[1];
                 }
             }
             else
             {
                 if (holiday.RptRemark.Split(' ')[0].Substring(0, 3).ToString() == "负责人")
                 {
                     officer = holiday.RptRemark;
                 }
                 else
                 {
                     preparer = holiday.RptRemark;
                 }
             }
             if (!string.IsNullOrEmpty(officer))
             {
                 string[] pTempOfficer = officer.Split(' ');
                 for (int i = 0; i < pTempOfficer.Count(); i++)
                 {
                     if (pTempOfficer[i].Substring(0, 3) == "负责人")
                     {
                         //负责人
                         SetValue(sheet, 6, 2, pTempOfficer[i]);
                     }
                     else if (pTempOfficer[i].Substring(0, 4) == "联系电话")
                     {
                         //负责人联系电话
                         SetValue(sheet, 6, 4, pTempOfficer[i].Substring(5));
                     }
                     else if (pTempOfficer[i].Substring(0, 2) == "手机")
                     {
                         //负责人手机
                         SetValue(sheet, 6, 6, pTempOfficer[i].Substring(3));
                     }
                 }
             }
             if (!string.IsNullOrEmpty(preparer))
             {
                 string[] pTempPreparer = preparer.Split(' ');
                 for (int i = 0; i < pTempPreparer.Count(); i++)
                 {
                     //if (pTempPreparer[i].Substring(0, 3) == "填表人")
                     //{
                     //    //填表人
                     //    SetValue(sheet, 7, 2, pTempPreparer[i]);
                     //}
                     //else
                     if (pTempPreparer[i].Substring(0, 4) == "联系电话")
                     {
                         //填表人联系电话
                         SetValue(sheet, 7, 4, pTempPreparer[i].Substring(5));
                     }
                     else if (pTempPreparer[i].Substring(0, 2) == "手机")
                     {
                         //填表人手机
                         SetValue(sheet, 7, 6, pTempPreparer[i].Substring(3));
                     }
                 }
             }
             if (SessionManage.GetLoginUser() != null)
             {
                 //填表人
                 SetValue(sheet, 7, 2, "填表人:" + SessionManage.GetLoginUser().UserName);
             }
         }
     }
     catch (Exception ex)
     {
         SystemLog.GetInstance().Info(ex.Message);
     }
 }
示例#24
0
        /// <summary>
        /// 批量修改
        /// </summary>
        /// <param name="args"></param>
        /// <returns></returns>
        public CustomResult Update(UpdateNaturalInfoViewModel args)
        {
            CustomResult pReturnValue = new CustomResult();

            pReturnValue.ResultKey   = (byte)EResult.Fail;
            pReturnValue.ResultValue = TipInfo.UpdateFaile;
            if (args.UpdateData == null)
            {
                pReturnValue.ResultKey   = (byte)EResult.Succeed;
                pReturnValue.ResultValue = TipInfo.DataNull;
                return(pReturnValue);
            }
            if (args.StationType != 15)
            {
                args.StationType = 1;
            }
            using (DataSubmittedEntities db = new DataSubmittedEntities())
            {
                var pReportData = db.RP_NatSta.Where(s => s.CalcuTime == args.DataDate && s.StaType == args.StationType).ToList();
                using (TransactionScope transaction = new TransactionScope())
                {
                    try
                    {
                        foreach (var item in args.UpdateData)
                        {
                            //获取查询日期当天所有已上传的数据,包括合计

                            var pDataTemp = pReportData.Where(i => i.HourPer == item.Num - 1).SingleOrDefault();
                            pDataTemp.EnNum = item.InDayTraffic;
                            pDataTemp.ExNum = item.OutDayTraffic;
                            pDataTemp.Sum   = item.InDayTraffic + item.OutDayTraffic;
                            pDataTemp.Rek   = item.Remark;
                            if (!string.IsNullOrEmpty(item.RunningStatus))
                            {
                                pDataTemp.RunStae = item.RunningStatus;
                            }
                            else
                            {
                                pDataTemp.RunStae = SystemConst.RunningStatus;
                            }
                            pDataTemp.UpdDate = DateTime.Now;
                            pDataTemp.State   = "1";
                            if (SessionManage.GetLoginUser() != null)
                            {
                                pDataTemp.UpdBy = SessionManage.GetLoginUser().UserName;
                            }
                        }
                        db.SaveChanges();
                        transaction.Complete();
                        pReturnValue.ResultKey   = (byte)EResult.Succeed;
                        pReturnValue.ResultValue = TipInfo.UpdateSuccess;
                    }
                    catch (Exception ex)
                    {
                        Common.SystemLog.GetInstance().Log.Info(TipInfo.UpdateDataRepeat, ex);
                        pReturnValue.ResultKey   = (byte)EResult.Fail;
                        pReturnValue.ResultValue = TipInfo.UpdateDataRepeat;
                    }
                    return(pReturnValue);
                }
            }
        }
示例#25
0
        /// <summary>
        /// 校正数据
        /// </summary>
        /// <param name="args"></param>
        /// <returns></returns>
        public CustomResult CalibrationData(QueryParameters para)
        {
            CustomResult pReturnValue = new CustomResult();
            QueryNaturalInfoViewModel queryNatural = new QueryNaturalInfoViewModel();

            //判断选择校正时间段的有效性
            string[] calibrationDataHour = new string[24];
            if (para.StartHour <= para.EndHour)
            {
                for (int i = para.StartHour; i <= para.EndHour; i++)
                {
                    calibrationDataHour[i] = i.ToString();
                }
            }
            else
            {
                pReturnValue.ResultKey   = (byte)EResult.Fail;
                pReturnValue.ResultValue = TipInfo.CalibrationFaileHour;
                return(pReturnValue);
            }
            double           pFloating       = para.FloatingRange * 0.01;
            List <RP_NatSta> pNaturalTraList = new List <RP_NatSta>();

            try
            {
                using (DataSubmittedEntities db = new DataSubmittedEntities())
                {
                    //判断报表浮动百分比配置是否正确
                    OT_HDayConfig pds = HolidayConfig.GetInstance().GetById(para.ReportType);
                    if (pds == null)
                    {
                        pReturnValue.ResultKey   = (byte)EResult.Fail;
                        pReturnValue.ResultValue = TipInfo.CalibrationFaileNoConfig;
                        return(pReturnValue);
                    }
                    if (Math.Abs(para.FloatingRange) > (double)pds.CheckFloat.Value)
                    {
                        pReturnValue.ResultKey   = (byte)EResult.Fail;
                        pReturnValue.ResultValue = TipInfo.ErrorInfo + "范围应在负" + pds.CheckFloat.Value + "%-正" + pds.CheckFloat.Value + "%之间";
                        return(pReturnValue);
                    }
                    //获取参考日期符合校正时间段的数据,因为只校正一天的数据,所以只查询开始数据的日期就可以
                    List <NaturalInfoViewModel> pRefNaturalList = db.RP_NatSta.Where(s => s.CalcuTime == para.LastYearStart && s.StaType == para.StationType && calibrationDataHour.Contains(s.HourPer.Value.ToString())).ToList().Select(s => new NaturalInfoViewModel
                    {
                        HourPer       = (byte)s.HourPer,
                        DayTraffic    = (double)s.Sum,
                        InDayTraffic  = (double)s.EnNum,
                        OutDayTraffic = (double)s.ExNum,
                        RunningStatus = s.RunStae,
                        Remark        = s.Rek
                    }).ToList();
                    //如果参考日期数据为0 则返回失败
                    if (pRefNaturalList.Count == 0)
                    {
                        pReturnValue.ResultKey   = (byte)EResult.Fail;
                        pReturnValue.ResultValue = TipInfo.CalibrationFaileRefNoData;
                        return(pReturnValue);
                    }
                    //判断校正数据日期是否合理
                    if (para.LastYearStart < para.StartTime && para.StartTime < DateTime.Now.AddDays(1))
                    {
                        //需要校正的数据
                        var pCheckNaturalList = db.RP_NatSta.Where(s => s.CalcuTime == para.StartTime && s.StaType == para.StationType && calibrationDataHour.Contains(s.HourPer.Value.ToString())).ToList();
                        if (pCheckNaturalList.Count == 0)
                        {
                            pReturnValue.ResultKey   = (byte)EResult.Fail;
                            pReturnValue.ResultValue = TipInfo.CalibrationFaileNoData;
                            return(pReturnValue);
                        }
                        using (TransactionScope tran = new TransactionScope())
                        {
                            foreach (var item in pCheckNaturalList)
                            {
                                IEnumerable <NaturalInfoViewModel> plist = pRefNaturalList.Where(i => i.HourPer == item.HourPer);
                                if (plist.Count() > 0)
                                {
                                    NaturalInfoViewModel pTemp = plist.First();
                                    item.EnNum     = (int)(pTemp.InDayTraffic + pTemp.InDayTraffic * pFloating);
                                    item.ExNum     = (int)(pTemp.OutDayTraffic + pTemp.OutDayTraffic * pFloating);
                                    item.Sum       = item.EnNum + item.ExNum;
                                    item.RunStae   = pTemp.RunningStatus;
                                    item.CalcuTime = para.StartTime.Value;
                                    item.StaType   = para.StationType;
                                    if (SessionManage.GetLoginUser() != null)
                                    {
                                        item.UpdBy = SessionManage.GetLoginUser().UserName;
                                    }
                                    item.UpdDate = DateTime.Now;
                                    item.State   = "1";
                                }
                            }
                            db.SaveChanges();
                            tran.Complete();
                            pReturnValue.ResultKey   = (byte)EResult.Succeed;
                            pReturnValue.ResultValue = TipInfo.CalibrationSuccess;
                        }
                    }
                    else
                    {
                        pReturnValue.ResultKey   = (byte)EResult.Fail;
                        pReturnValue.ResultValue = TipInfo.CalibrationFaileDate;
                    }
                }
                return(pReturnValue);
            }
            catch (Exception e)
            {
                pReturnValue.ResultKey   = (byte)EResult.Fail;
                pReturnValue.ResultValue = TipInfo.CalibrationFaile + e.Message.ToString();
                SystemLog.GetInstance().Error(TipInfo.CalibrationFaile, e);
                return(pReturnValue);
            }
        }
示例#26
0
        /// <summary>
        /// 校正
        /// </summary>
        /// <param name="para"></param>
        /// <returns></returns>
        public CustomResult CalibrationData(QueryParameters para)
        {
            CustomResult      pReturnValue    = new CustomResult();
            double            pFloating       = 1 + para.FloatingRange * 0.01;
            List <RP_AADTSta> pNaturalTraList = new List <RP_AADTSta>();

            try
            {
                using (DataSubmittedEntities db = new DataSubmittedEntities())
                {
                    //判断报表浮动百分比配置是否正确
                    OT_HDayConfig pds = HolidayConfig.GetInstance().GetById(para.ReportType);
                    if (pds == null)
                    {
                        pReturnValue.ResultKey   = (byte)EResult.Fail;
                        pReturnValue.ResultValue = TipInfo.CalibrationFaileNoConfig;
                        return(pReturnValue);
                    }
                    if (Math.Abs(para.FloatingRange) > (double)pds.CheckFloat.Value)
                    {
                        pReturnValue.ResultKey   = (byte)EResult.Fail;
                        pReturnValue.ResultValue = TipInfo.ErrorInfo + "范围应在负" + pds.CheckFloat.Value + "%-正" + pds.CheckFloat.Value + "%之间";
                        return(pReturnValue);
                    }
                    //判断校正数据日期是否合理
                    if (para.LastYearStart < para.StartTime && para.StartTime < DateTime.Now.AddDays(1))
                    {
                        //获取参考日期符合校正时间段的数据,因为只校正一天的数据,所以只查询开始数据的日期就可以
                        List <RP_AADTSta> pRefNaturalList = db.RP_AADTSta.Where(s => s.CalculTime == para.LastYearStart).ToList();
                        //如果参考日期数据为0 则返回失败
                        if (pRefNaturalList.Count == 0)
                        {
                            pReturnValue.ResultKey   = (byte)EResult.Fail;
                            pReturnValue.ResultValue = TipInfo.CalibrationFaileRefNoData;
                            return(pReturnValue);
                        }
                        //需要校正的数据
                        var pCheckNaturalList = db.RP_AADTSta.Where(s => s.CalculTime == para.StartTime).ToList();
                        //如果需要校正的数据为空则返回失败
                        if (pCheckNaturalList.Count == 0)
                        {
                            pReturnValue.ResultKey   = (byte)EResult.Fail;
                            pReturnValue.ResultValue = TipInfo.CalibrationFaileNoData;
                            return(pReturnValue);
                        }
                        using (TransactionScope tran = new TransactionScope())
                        {
                            //校正数据
                            RP_AADTSta pCheckInfo = pCheckNaturalList.First();
                            //参考数据
                            RP_AADTSta pRefInfo = pRefNaturalList.First();

                            //出京总交通量(路线)
                            if (pRefInfo.LineExSum.HasValue)
                            {
                                pCheckInfo.LineExSum = Math.Round(pRefInfo.LineExSum.Value * pFloating);
                            }
                            //进京总交通量(路线)
                            if (pRefInfo.LineEnSum.HasValue)
                            {
                                pCheckInfo.LineEnSum = Math.Round(pRefInfo.LineEnSum.Value * pFloating);
                            }
                            //总交通量(路线)
                            pCheckInfo.LineSum = pCheckInfo.LineExSum + pCheckInfo.LineEnSum;
                            //总交通量同比增幅
                            pCheckInfo.SumGrow = double.Parse(string.Format("{0:0.00}", (pCheckInfo.LineSum - pRefInfo.LineSum) / pRefInfo.LineSum));
                            //出进京比
                            pCheckInfo.ExEnPer = double.Parse(string.Format("{0:0.00}", pCheckInfo.LineExSum / pCheckInfo.LineEnSum));
                            //免、收费总金额
                            if (pRefInfo.FeeSum.HasValue)
                            {
                                pCheckInfo.FeeSum = Math.Round(pRefInfo.FeeSum.Value * (decimal)pFloating, 2);
                            }
                            //出京小型客车免费通行交通量
                            if (pRefInfo.FeeSum.HasValue)
                            {
                                pCheckInfo.ExSmaCarFee = Math.Round(pRefInfo.ExSmaCarFee.Value * pFloating);
                            }
                            //进京小型客车免费通行交通量
                            if (pRefInfo.FeeSum.HasValue)
                            {
                                pCheckInfo.EnSmaCarFee = Math.Round(pRefInfo.EnSmaCarFee.Value * pFloating);
                            }
                            //小型客车免费通行交通量(合计)
                            if (pRefInfo.ExSmaCarFee.HasValue)
                            {
                                pCheckInfo.SmaCarFeeNum = pRefInfo.ExSmaCarFee.Value + pRefInfo.EnSmaCarFee.Value;
                            }
                            //小型客车交通量同比增幅
                            pCheckInfo.SmaCarCompGrow = double.Parse(string.Format("{0:0.00}", (pCheckInfo.SmaCarFeeNum - pRefInfo.SmaCarFeeNum) / pRefInfo.SmaCarFeeNum));
                            //小型客车免费金额
                            if (pRefInfo.SmaCarFee.HasValue)
                            {
                                pCheckInfo.SmaCarFee = Math.Round(pRefInfo.SmaCarFee.Value * (decimal)pFloating, 2);
                            }
                            //收费车辆(合计)
                            if (pRefInfo.ChagSumNum.HasValue)
                            {
                                pCheckInfo.ChagSumNum = Math.Round(pRefInfo.ChagSumNum.Value * pFloating);
                            }
                            //出京收费车辆
                            if (pRefInfo.ExChagNum.HasValue)
                            {
                                pCheckInfo.ExChagNum = Math.Round(pRefInfo.ExChagNum.Value * pFloating);
                            }
                            //进京收费车辆
                            if (pRefInfo.EnChagNum.HasValue)
                            {
                                pCheckInfo.EnChagNum = Math.Round(pRefInfo.EnChagNum.Value * pFloating);
                            }
                            //收费额度
                            if (pRefInfo.ChagAmount.HasValue)
                            {
                                pCheckInfo.ChagAmount = Math.Round(pRefInfo.ChagAmount.Value * (decimal)pFloating, 2);
                            }
                            //绿色通道车辆数
                            if (pRefInfo.GreNum.HasValue)
                            {
                                pCheckInfo.GreNum = Math.Round(pRefInfo.GreNum.Value * pFloating);
                            }
                            //绿色通道免收费金额
                            if (pRefInfo.GreFee.HasValue)
                            {
                                pCheckInfo.GreFee = Math.Round(pRefInfo.GreFee.Value * (decimal)pFloating, 2);
                            }
                            //出京总交通量(站)
                            if (pRefInfo.StaExSum.HasValue)
                            {
                                pCheckInfo.StaExSum = Math.Round(pRefInfo.StaExSum.Value * pFloating);
                            }
                            //进京总交通量(站)
                            if (pRefInfo.StaEnSum.HasValue)
                            {
                                pCheckInfo.StaEnSum = Math.Round(pRefInfo.StaEnSum.Value * pFloating);
                            }
                            if (SessionManage.GetLoginUser() != null)
                            {
                                pCheckInfo.UpdBy = SessionManage.GetLoginUser().UserName;
                            }
                            pCheckInfo.UpdDate = DateTime.Now;
                            pCheckInfo.State   = "1";

                            db.SaveChanges();
                            tran.Complete();
                            pReturnValue.ResultKey   = (byte)EResult.Succeed;
                            pReturnValue.ResultValue = TipInfo.CalibrationSuccess;
                        }
                    }
                    else
                    {
                        pReturnValue.ResultKey   = (byte)EResult.Fail;
                        pReturnValue.ResultValue = TipInfo.CalibrationFaileDate;
                    }
                }
                return(pReturnValue);
            }
            catch (Exception e)
            {
                pReturnValue.ResultKey   = (byte)EResult.Fail;
                pReturnValue.ResultValue = TipInfo.CalibrationFaile + e.Message.ToString();
                SystemLog.GetInstance().Error(TipInfo.CalibrationFaile, e);
                return(pReturnValue);
            }
        }
示例#27
0
        /// <summary>
        /// 批量修改
        /// </summary>
        /// <param name="args"></param>
        /// <returns></returns>
        public CustomResult Update(UpdateHDayTraInfoViewModel args)
        {
            CustomResult pReturnValue = new CustomResult();

            pReturnValue.ResultKey   = (byte)EResult.Fail;
            pReturnValue.ResultValue = TipInfo.UpdateFaile;
            if (args.DataInfo == null)
            {
                pReturnValue.ResultKey   = (byte)EResult.Succeed;
                pReturnValue.ResultValue = TipInfo.DataNull;
                return(pReturnValue);
            }
            List <UpdateDataDailyInfo> pNewUpdateData = new List <UpdateDataDailyInfo>();

            using (DataSubmittedEntities db = new DataSubmittedEntities())
            {
                //获取修改日期的数据
                var pReportData = db.RP_AADTSta.Where(s => s.CalculTime == args.DataDate).ToList();
                if (pReportData.Count > 0)
                {
                    using (TransactionScope transaction = new TransactionScope())
                    {
                        try
                        {
                            foreach (var item in args.DataInfo)
                            {
                                var pDataTemp = pReportData.SingleOrDefault();
                                pDataTemp.FeeSum      = item.FeeSum;
                                pDataTemp.ExSmaCarFee = item.ExSmaCarFee;
                                pDataTemp.EnSmaCarFee = item.EnSmaCarFee;
                                pDataTemp.SmaCarFee   = item.SmaCarFee;
                                pDataTemp.ExChagNum   = item.ExChagNum;
                                pDataTemp.EnChagNum   = item.EnChagNum;
                                pDataTemp.ChagAmount  = item.ChagAmount;
                                pDataTemp.GreNum      = item.GreNum;
                                pDataTemp.GreFee      = item.GreFee;
                                pDataTemp.StaExSum    = item.StaExSum;
                                pDataTemp.StaEnSum    = item.StaEnSum;
                                pDataTemp.WorkPeoNum  = item.WorkPeoNum;
                                pDataTemp.InfoNum     = item.InfoNum;
                                pDataTemp.SitState    = item.SitState;
                                pDataTemp.LineExSum   = item.ExSmaCarFee + item.ExChagNum;
                                pDataTemp.LineEnSum   = item.EnSmaCarFee + item.EnChagNum;
                                pDataTemp.LineSum     = pDataTemp.LineExSum + pDataTemp.LineEnSum;
                                pDataTemp.UpdDate     = DateTime.Now;
                                pDataTemp.State       = "1";
                                if (SessionManage.GetLoginUser() != null)
                                {
                                    pDataTemp.UpdBy = SessionManage.GetLoginUser().UserName;
                                }
                            }
                            db.SaveChanges();
                            transaction.Complete();
                            pReturnValue.ResultKey   = (byte)EResult.Succeed;
                            pReturnValue.ResultValue = TipInfo.UpdateSuccess;
                        }
                        catch (Exception ex)
                        {
                            Common.SystemLog.GetInstance().Log.Info(TipInfo.UpdateDataRepeat, ex);
                            pReturnValue.ResultKey   = (byte)EResult.Fail;
                            pReturnValue.ResultValue = TipInfo.UpdateDataRepeat;
                        }
                    }
                }
                else
                {
                    pReturnValue.ResultKey   = (byte)EResult.Fail;
                    pReturnValue.ResultValue = TipInfo.DataNull;
                }
                return(pReturnValue);
            }
        }
        /// <summary>
        /// 补数据
        /// </summary>
        /// <param name="para"></param>
        private void RepairData(QueryParameters para)
        {
            using (DataSubmittedEntities db = new DataSubmittedEntities())
            {
                using (TransactionScope transaction = new TransactionScope())
                {
                    DateTime dtime = para.StartTime.Value;

                    //时间小于当前时间
                    if (DateTime.Now > dtime)
                    {
                        bool flag = StrWhere(db, para).Select(a => a.CalculTime).ToList().Contains(dtime);
                        if (!flag)//补数据
                        {
                            RP_AADTSta model = new RP_AADTSta();
                            model.CalculTime = dtime;
                            if (SessionManage.GetLoginUser() != null)
                            {
                                model.CrtBy = SessionManage.GetLoginUser().UserName;
                            }
                            model.CrtDate        = DateTime.Now;
                            model.Id             = Guid.NewGuid();
                            model.ChagSumNum     = 0.00;
                            model.ExEnPer        = 0.00;
                            model.LineEnSum      = 0.00;
                            model.LineExSum      = 0.00;
                            model.LineSum        = 0.00;
                            model.SmaCarCompGrow = 0.00;
                            model.SmaCarFee      = (decimal)0.00;
                            model.SmaCarFeeNum   = 0.00;
                            model.SumGrow        = 0.00;
                            model.State          = "0";
                            db.RP_AADTSta.Add(model);
                        }
                        else//将数据中有空值的改成0
                        {
                            var model = db.RP_AADTSta.Where(a => a.CalculTime == dtime).ToList()[0];
                            if (model.ChagSumNum == null)
                            {
                                model.ChagSumNum = 0.00;
                            }
                            if (model.ExEnPer == null)
                            {
                                model.ExEnPer = 0.00;
                            }
                            if (model.LineEnSum == null)
                            {
                                model.LineEnSum = 0.00;
                            }
                            if (model.LineExSum == null)
                            {
                                model.LineExSum = 0.00;
                            }
                            if (model.LineSum == null)
                            {
                                model.LineSum = 0.00;
                            }
                            if (model.SmaCarCompGrow == null)
                            {
                                model.SmaCarCompGrow = 0.00;
                            }
                            if (model.SmaCarFee == null)
                            {
                                model.SmaCarFee = (decimal)0.00;
                            }
                            if (model.SmaCarFeeNum == null)
                            {
                                model.SmaCarFeeNum = 0.00;
                            }
                            if (model.SumGrow == null)
                            {
                                model.SumGrow = 0.00;
                            }
                        }
                    }
                    try
                    {
                        db.SaveChanges();
                        transaction.Complete();
                    }
                    catch (Exception ex)
                    {
                        SystemLog.GetInstance().Error(TipInfo.AddFaile, ex);
                    }
                }
            }
        }
示例#29
0
        /// <summary>
        /// 校正
        /// </summary>
        /// <param name="para"></param>
        /// <returns></returns>
        public Common.CustomResult CalibrationData(Common.QueryParameters para)
        {
            CustomResult pReturnValue = new CustomResult();
            double       pFloating    = 1 + para.FloatingRange * 0.01;

            using (DataSubmittedEntities db = new DataSubmittedEntities())
            {
                //判断报表浮动百分比配置是否正确
                OT_HDayConfig pds = HolidayConfig.GetInstance().GetById(para.ReportType);
                if (pds == null)
                {
                    pReturnValue.ResultKey   = (byte)EResult.Fail;
                    pReturnValue.ResultValue = TipInfo.CalibrationFaileNoConfig;
                    return(pReturnValue);
                }
                if (Math.Abs(para.FloatingRange) > (double)pds.CheckFloat.Value)
                {
                    pReturnValue.ResultKey   = (byte)EResult.Fail;
                    pReturnValue.ResultValue = TipInfo.ErrorInfo + "范围应在负" + pds.CheckFloat.Value + "%-正" + pds.CheckFloat.Value + "%之间";
                    return(pReturnValue);
                }
                //判断校正数据日期是否合理
                if (para.LastYearStart < para.StartTime && para.StartTime < DateTime.Now.AddDays(1))
                {
                    //获取参考日期符合校正时间段的数据,因为只校正一天的数据,所以只查询开始数据的日期就可以
                    List <RP_EnEx> pRefNaturalList = db.RP_EnEx.Where(s => s.CalcuTime == para.LastYearStart && s.StaType == para.StationType).ToList();
                    //如果参考日期数据为0 则返回失败
                    if (pRefNaturalList == null || pRefNaturalList.Count == 0)
                    {
                        pReturnValue.ResultKey   = (byte)EResult.Fail;
                        pReturnValue.ResultValue = TipInfo.CalibrationFaileRefNoData;
                        return(pReturnValue);
                    }
                    //需要校正的数据
                    var pCheckNaturalList = db.RP_EnEx.Where(s => s.CalcuTime == para.StartTime && s.StaType == para.StationType).ToList();
                    //如果需要校正的数据为空则返回失败
                    if (pCheckNaturalList == null || pCheckNaturalList.Count == 0)
                    {
                        pReturnValue.ResultKey   = (byte)EResult.Fail;
                        pReturnValue.ResultValue = TipInfo.CalibrationFaileNoData;
                        return(pReturnValue);
                    }
                    using (TransactionScope tran = new TransactionScope())
                    {
                        //校正数据
                        RP_EnEx pCheckInfo = pCheckNaturalList.First();
                        //参考数据
                        RP_EnEx pRefInfo = pRefNaturalList.First();

                        if (pRefInfo.EnOthCar != null)
                        {
                            pCheckInfo.EnOthCar = Math.Round(pRefInfo.EnOthCar.Value * pFloating);
                        }
                        if (pCheckInfo.EnSmaCar != null)
                        {
                            pCheckInfo.EnSmaCar = Math.Round(pRefInfo.EnSmaCar.Value * pFloating);
                        }
                        if (pCheckInfo.EnTruk != null)
                        {
                            pCheckInfo.EnTruk = Math.Round(pRefInfo.EnTruk.Value * pFloating);
                        }

                        if (SessionManage.GetLoginUser() != null)
                        {
                            pCheckInfo.UpdBy = SessionManage.GetLoginUser().UserName;
                        }
                        pCheckInfo.UpdDate = DateTime.Now;
                        pCheckInfo.State   = "1";
                        try
                        {
                            db.SaveChanges();
                            tran.Complete();
                            pReturnValue.ResultKey   = (byte)EResult.Succeed;
                            pReturnValue.ResultValue = TipInfo.CalibrationSuccess;
                        }
                        catch (Exception e)
                        {
                            pReturnValue.ResultKey   = (byte)EResult.Fail;
                            pReturnValue.ResultValue = TipInfo.CalibrationFaile + e.Message.ToString();
                            SystemLog.GetInstance().Error(TipInfo.CalibrationFaile, e);
                            return(pReturnValue);
                        }
                    }
                }
                else
                {
                    pReturnValue.ResultKey   = (byte)EResult.Fail;
                    pReturnValue.ResultValue = TipInfo.CalibrationFaileDate;
                }
            }
            return(pReturnValue);
        }
示例#30
0
        /// <summary>
        /// 补数据
        /// </summary>
        /// <param name="para"></param>
        private void RepairData(QueryParameters para)
        {
            using (DataSubmittedEntities db = new DataSubmittedEntities())
            {
                using (TransactionScope transaction = new TransactionScope())
                {
                    DateTime dtQuery = new DateTime();
                    //判断传入的时间段是否正确
                    if (para.StartTime != null && DateTime.TryParse(para.StartTime.Value.ToString(), out dtQuery))
                    {
                        DateTime dtime = para.StartTime.Value;

                        //时间小于当前时间
                        if (DateTime.Now > dtime)
                        {
                            bool flag = db.RP_EnEx.Where(a => a.CalcuTime == dtime & a.StaType == para.StationType).Select(a => a.CalcuTime).ToList().Contains(dtime);
                            if (!flag)//补数据
                            {
                                RP_EnEx hday = new RP_EnEx();
                                hday.CalcuTime = dtime;

                                if (SessionManage.GetLoginUser() != null)
                                {
                                    hday.CrtBy = SessionManage.GetLoginUser().UserName;
                                }
                                hday.CrtDate  = DateTime.Now;
                                hday.Id       = Guid.NewGuid();
                                hday.EnGre    = 0;
                                hday.EnOthCar = 0;
                                hday.EnSmaCar = 0;
                                hday.EnTruk   = 0;
                                hday.State    = "0";
                                hday.StaType  = para.StationType;
                                db.RP_EnEx.Add(hday);
                            }
                            else//将数据中有空值的改成0
                            {
                                var hday = db.RP_EnEx.Where(a => a.CalcuTime == dtime & a.StaType == para.StationType).ToList()[0];
                                if (hday.EnGre == null)
                                {
                                    hday.EnGre = 0;
                                }
                                if (hday.EnOthCar == null)
                                {
                                    hday.EnOthCar = 0;
                                }
                                if (hday.EnSmaCar == null)
                                {
                                    hday.EnSmaCar = 0;
                                }
                                if (hday.EnTruk == null)
                                {
                                    hday.EnTruk = 0;
                                }
                            }
                        }
                        try
                        {
                            db.SaveChanges();
                            transaction.Complete();
                        }
                        catch (Exception ex)
                        {
                            SystemLog.GetInstance().Error(TipInfo.AddFaile, ex);
                        }
                    }
                }
            }
        }