/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); } } } }
/// <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); }
/// <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); } } } }
/// <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); } } } }
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); } } } }
/// <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()); }
/// <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); }
/// <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); }
/// <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]); } }
/// <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); } }
/// <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); } }
/// <summary> /// 修改 /// </summary> /// <param name="args"></param> /// <returns></returns> public Common.CustomResult Update(Common.ViewModels.UpdateHDayStaExEnViewModel args) { using (DataSubmittedEntities db = new DataSubmittedEntities()) { using (TransactionScope transaction = new TransactionScope()) { CustomResult pReturnValue = new CustomResult(); bool flag = false;//标记数据库中是否有数据修改 int count = (args.EndTime - args.StartTime).Days + 1; for (int j = 1; j < args.DataInfo.Count; j++) { HDayStaExEnViewModel model = args.DataInfo[j]; Type myType0 = qModel.TitleList[0].GetType(); for (int i = 1; i < count + 1; i++) { Type myType = model.GetType(); PropertyInfo pinfo = myType.GetProperty("Date" + i); PropertyInfo pinfo0 = myType0.GetProperty("Date" + i); if (args.StartTime.AddDays(i - 1).ToString("M月d日").ToString() == pinfo0.GetValue(qModel.TitleList[0]).ToString()) { DateTime dt = args.StartTime.AddDays(i - 1); var list = db.RP_HDayAADT.Where(a => a.CalcuTime == dt).ToList(); double info = double.Parse(pinfo.GetValue(model).ToString()); foreach (var item in list) { flag = true; if (model.Num == "43")//杨村站 { item.YC = info; } else if (model.Num == "44")//宜兴埠东站 { item.YXBD = info; } else if (model.Num == "45")//宜兴埠西站 { item.YXBX = info; } else if (model.Num == "46")//金钟路站 { item.JZL = info; } else if (model.Num == "47")//机场站 { item.JC = info; } else if (model.Num == "48")//空港经济区站 { item.KG = info; } else if (model.Num == "49")//塘沽西站 { item.TGX = info; } else if (model.Num == "50")//塘沽西分站 { item.TGXF = info; } else if (model.Num == "51")//塘沽北站 { item.TGB = info; } item.UpdDate = DateTime.Now; if (SessionManage.GetLoginUser() != null) { item.UpdBy = SessionManage.GetLoginUser().UserName; } item.State = "1"; } } } } if (flag)//有修改成功的数据 { try { db.SaveChanges(); transaction.Complete(); pReturnValue.ResultKey = (byte)EResult.Succeed; pReturnValue.ResultValue = TipInfo.UpdateSuccess; return(pReturnValue); } catch (Exception ex) { Common.SystemLog.GetInstance().Log.Info(TipInfo.UpdateDataRepeat, ex); pReturnValue.ResultKey = (byte)EResult.Fail; pReturnValue.ResultValue = TipInfo.UpdateDataRepeat; return(pReturnValue); } } else//存在数据尚未生成 { pReturnValue.ResultKey = (byte)EResult.Fail; pReturnValue.ResultValue = TipInfo.UpdateDataRepeat; return(pReturnValue); } } } }
/// <summary> /// 校正 /// </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); }
/// <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); } }
/// <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); } } }
/// <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); } }
/// <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); } }
/// <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); } } } }
/// <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); }
/// <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); } } } } }