public void Init() { UserInfos = new Dictionary <string, UserInfo>(); var optionsBuilder = new DbContextOptionsBuilder <db_MicroStationContext>(); using (var context = new db_MicroStationContext(optionsBuilder.Options)) { var queryAll = context.UserInfo.AsQueryable().Where("Useroid != @0", "").ToList(); foreach (var item in queryAll) { UserInfos.Add(item.UserInfoOid, item); } } UserDefault = new UserInfo() { Useroid = "863fd12b50ce401e8481ed902a59ca9-", Userid = "ADMIN-TEST", Username = "******", Userphone = "138272990**", Organizationoid = "b017665d8c6348d091c17f8e250437**", Groupname = "东莞市生态环境局南城分局", Permission = ".南城" }; UserInfos.Add(UserDefault.Useroid, UserDefault); }
public static List <int> checkPermission_IDs(string userName, db_MicroStationContext context) { UserPermission permissions = common.checkPermissions(userName); List <int> delopyIds = new List <int>(); if (permissions.HasPermission) { // 提取权限对应的设备ID号 if (permissions.DelopyIds.Count > 0) { delopyIds = context.MicroStation.Where(x => permissions.DelopyIds.Contains(x.DeployId)).Select(x => x.DeployId).ToList(); } else { if (permissions.Communitys.Count > 0) { delopyIds = context.MicroStation.Where(x => permissions.Communitys.Contains(x.CommunityName)).Select(x => x.DeployId).ToList(); } else { if (permissions.TownStreets.Count > 0) { delopyIds = context.MicroStation.Where(x => permissions.TownStreets.Contains(x.StreetName)).Select(x => x.DeployId).ToList(); } } } } return(delopyIds); }
public void JobInfo_Group() { // 读取文件夹列表 if (common.coon == "") { return; } var provider = new PhysicalFileProvider(Directory.GetCurrentDirectory() + @"/ftpData/task"); var contents = provider.GetDirectoryContents(string.Empty); foreach (var item in contents) { if (!item.Name.Contains("group_")) { continue; } if (item.IsDirectory == false) { int result = 0; List <string> errs = new List <string>(); using (System.IO.StreamReader file = System.IO.File.OpenText(item.PhysicalPath)) { Console.WriteLine("new file group:: " + item.PhysicalPath); using (JsonTextReader reader = new JsonTextReader(file)) { // 循环解析文件json数据 JObject jsonObject = (JObject)JToken.ReadFrom(reader); JArray jsonValues = (JArray)jsonObject["RECORDS"]; if (jsonValues.Count > 0) { //按逻辑结构组织对象 //for (int i = 0; i < jsonValues.Count; i++) //{ // dictObjs[jsonValues[i]["id"].ToString()] = (JObject)jsonValues[i]; //} // //按逻辑结构组织对象 //Dictionary<string, JObject> dictOrg = new Dictionary<string, JObject>(); //for (int i = 0; i < jsonValues.Count; i++) //{ // JObject obj = (JObject)jsonValues[i]; //}dictObjs var optionsBuilder = new DbContextOptionsBuilder <db_MicroStationContext>(); using (var context = new db_MicroStationContext(optionsBuilder.Options)) { var queryAll = context.Organization.AsQueryable().Where("OrganizationOid != @0", "").ToList(); foreach (var value in jsonValues) { string Nodepath = (string)value["path"]; if (Nodepath == null || !Nodepath.Contains("东莞市生态环境局")) { continue; } string srcOid = (string)value["id"]; Console.WriteLine("srcOid:: " + srcOid); var query = queryAll.Where(s => s.OrganizationOid == srcOid).FirstOrDefault(); try { if (query == null) { Organization obj = new Organization { OrganizationOid = srcOid, Organizationcategory = (int)value["category"], Departmenttype = (int)value["departmentType"], Groupname = (string)value["groupName"], GroupType = (int)value["groupType"], Organizationcode = (string)value["orgCode"], Organizationlevel = (int)value["orgLevel"], Parentnodecode = (string)value["parentId"], Nodepath = (string)value["path"], }; context.Add(obj); } else { query.OrganizationOid = srcOid; query.Organizationcategory = (int)value["category"]; query.Departmenttype = (int)value["departmentType"]; query.Groupname = (string)value["groupName"]; query.GroupType = (int)value["groupType"]; query.Organizationcode = (string)value["orgCode"]; query.Organizationlevel = (int)value["orgLevel"]; query.Parentnodecode = (string)value["parentId"]; query.Nodepath = (string)value["path"]; } dictGroups[srcOid] = (JObject)value; } catch (Exception) { Console.WriteLine("err srcID::" + srcOid); errs.Add((string)value["id"]); throw; } } result = context.SaveChanges(); Console.WriteLine("res count::" + result.ToString()); // 记录操作 TaskDocking docking = new TaskDocking { TaskDockingOid = Guid.NewGuid().ToString("D"), Filename = item.Name, Filepath = item.PhysicalPath, Dockingtype = "组织机构", AssociationId = "", Dockingmode = "download", Dockingtime = DateTime.Now, Dockingresults = errs.Count > 0 ? "失败" : "完成", Dockingtimes = 1, Dockmark = errs.ToString(), Createtime = DateTime.Now }; context.Add(docking); int result2 = context.SaveChanges(); } } } } // 转移文件 if (result > errs.Count) { //File.Copy(item.PhysicalPath, AppContext.BaseDirectory + @"ftpData/user_old/" + item.Name); //File.Delete(item.PhysicalPath); } } } }
public void JobInfo_User() { // 读取文件夹列表 if (common.coon == "") { return; } var provider = new PhysicalFileProvider(Directory.GetCurrentDirectory() + @"/ftpData/task"); var contents = provider.GetDirectoryContents(string.Empty); foreach (var item in contents) { if (!item.Name.Contains("user_")) { continue; } if (item.Name.Contains("user_group")) { continue; } if (item.IsDirectory == false) { int result = 0; List <string> errs = new List <string>(); using (System.IO.StreamReader file = System.IO.File.OpenText(item.PhysicalPath)) { Console.WriteLine("new file user: "******"RECORDS"]; if (jsonValues.Count > 0) { var optionsBuilder = new DbContextOptionsBuilder <db_MicroStationContext>(); using (var context = new db_MicroStationContext(optionsBuilder.Options)) { var queryAll = context.UserInfo.AsQueryable().Where("Useroid != @0", "").ToList(); foreach (var value in jsonValues) { //提取suer的group信息 string userId = (string)value["id"]; Console.WriteLine("userId:: " + userId); if (!dictUsrGroups.ContainsKey(userId)) { continue; } var query = queryAll.Where(s => s.Useroid == userId).FirstOrDefault(); try { JObject objGroup = dictGroups[dictUsrGroups[userId]]; if (query == null) { UserInfo obj = new UserInfo { UserInfoOid = Guid.NewGuid().ToString("D"), Useroid = (string)value["id"], Userid = (string)value["userName"], Username = (string)value["displayName"], UserPwd = "On8U4+dy1Rs=", //默认密码12345678 Userphone = (string)value["mobile"], Isitavailable = (ulong)value["enable"], Organizationoid = dictUsrGroups[userId], Groupname = (string)objGroup["groupName"], Nodepath = (string)objGroup["path"], }; checkPermission(ref obj); context.Add(obj); } else { query.Useroid = (string)value["id"]; query.Userid = (string)value["userName"]; query.Username = (string)value["displayName"]; query.Userphone = (string)value["mobile"]; query.Isitavailable = (ulong)value["enable"]; query.Organizationoid = dictUsrGroups[userId]; query.Groupname = (string)objGroup["groupName"]; query.Nodepath = (string)objGroup["path"]; checkPermission(ref query); } } catch (Exception) { Console.WriteLine("err srcID::" + userId); errs.Add((string)value["id"]); throw; } } result = context.SaveChanges(); Console.WriteLine("res count::" + result.ToString()); // 记录操作 TaskDocking docking = new TaskDocking { TaskDockingOid = Guid.NewGuid().ToString("D"), Filename = item.Name, Filepath = item.PhysicalPath, Dockingtype = "用户信息", AssociationId = "", Dockingmode = "download", Dockingtime = DateTime.Now, Dockingresults = errs.Count > 0 ? "失败" : "完成", Dockingtimes = 1, Dockmark = errs.ToString(), Createtime = DateTime.Now }; context.Add(docking); int result2 = context.SaveChanges(); } } } } // 转移文件 Thread.Sleep(1000); if (result > errs.Count || errs.Count == 0) { File.Copy(item.PhysicalPath, Directory.GetCurrentDirectory() + @"/ftpData/task_old/" + item.Name); File.Copy(item.PhysicalPath.Replace("user_", "user_group"), Directory.GetCurrentDirectory() + @"/ftpData/task_old/" + item.Name.Replace("user_", "user_group")); File.Copy(item.PhysicalPath.Replace("user_", "group_"), Directory.GetCurrentDirectory() + @"/ftpData/task_old/" + item.Name.Replace("user_", "group_")); Thread.Sleep(2000); File.Delete(item.PhysicalPath); File.Delete(item.PhysicalPath.Replace("user_", "user_group")); File.Delete(item.PhysicalPath.Replace("user_", "group_")); common.userManger.Init(); // 用户信息重载 } } } }
public TaskFeedbackController(db_MicroStationContext context) { _context = context; }
public TaskOrderController(db_MicroStationContext context) { _context = context; }
public void StartJob() { // 读取文件夹列表 if (common.coon == "") { return; } var provider = new PhysicalFileProvider(Directory.GetCurrentDirectory() + @"/ftpData/alarm"); var contents = provider.GetDirectoryContents(string.Empty); foreach (var item in contents) { if (item.IsDirectory == false) { int result = 0; List <string> errs = new List <string>(); using (System.IO.StreamReader file = System.IO.File.OpenText(item.PhysicalPath)) { Console.WriteLine("new file alarm:: " + item.PhysicalPath); using (JsonTextReader reader = new JsonTextReader(file)) { // 循环解析文件json数据 JObject jsonObject = (JObject)JToken.ReadFrom(reader); JArray jsonValues = (JArray)jsonObject["RECORDS"]; if (jsonValues.Count > 0) { var optionsBuilder = new DbContextOptionsBuilder <db_MicroStationContext>(); optionsBuilder.UseMySql(common.coon); using (var context = new db_MicroStationContext(optionsBuilder.Options)) { var queryAll = context.Infoalarm.AsQueryable().Where("srcOID != @0", "").OrderByDescending(d => d.Alarmtime).Take(1000).ToList(); foreach (var value in jsonValues) { string srcOid = (string)value["id"]; Console.WriteLine("srcOid:: " + srcOid); var query = queryAll.Where(s => s.SrcOid == srcOid).FirstOrDefault(); if (query != null) { continue; } try { Infoalarm obj = new Infoalarm { InfoalarmOid = Guid.NewGuid().ToString("D"), DeployId = (int)value["targetId"], SrcOid = (string)value["id"], AlarmType = (string)value["targetType"] == "station" ? "监测站点实时告警" : "", Alarmindex = (string)value["warningIndicator"], Alarmlevel = (string)value["warningLevel"], Alarmtitle = (string)value["warningTitle"], Alarmcontent = (string)value["warningContent"], Alarmtime = (DateTime)value["createTime"], Datatime = (DateTime)value["lastTime"], Cratetime = DateTime.Now }; if (!string.IsNullOrEmpty((string)value["normalTime"])) { obj.AlarmtimeNormal = (DateTime)value["normalTime"]; } if (!string.IsNullOrEmpty((string)value["lastTime"])) { obj.AlarmtimeLast = (DateTime)value["lastTime"]; } context.Add(obj); } catch (Exception) { Console.WriteLine("err srcID::" + srcOid); errs.Add((string)value["id"]); throw; } } result = context.SaveChanges(); Console.WriteLine("res count::" + result.ToString()); // 记录操作 TaskDocking docking = new TaskDocking { TaskDockingOid = Guid.NewGuid().ToString("D"), Filename = item.Name, Filepath = item.PhysicalPath, Dockingtype = "站点告警", AssociationId = "", Dockingmode = "download", Dockingtime = DateTime.Now, Dockingresults = errs.Count > 0 ? "失败" : "完成", Dockingtimes = 1, Dockmark = errs.ToString(), Createtime = DateTime.Now }; context.Add(docking); int result2 = context.SaveChanges(); } } Task.Run(() => { }); } } // 转移文件 if (result > errs.Count || errs.Count == 0) { File.Copy(item.PhysicalPath, Directory.GetCurrentDirectory() + @"/ftpData/alarm_old/" + item.Name); Thread.Sleep(1000); File.Delete(item.PhysicalPath); } } } }
public UserInfoController(db_MicroStationContext context) { _context = context; }
public InfoAlarmController(db_MicroStationContext context) { _context = context; }
public void DoDowndata_Task() { // 读取文件夹列表 if (common.coon == "") { return; } var provider = new PhysicalFileProvider(Directory.GetCurrentDirectory() + @"/ftpData/task"); Console.WriteLine(Directory.GetCurrentDirectory() + @"/ftpData/task"); var contents = provider.GetDirectoryContents(string.Empty); foreach (var item in contents) { if (item.IsDirectory == false) { int result = 0; List <string> errs = new List <string>(); using (System.IO.StreamReader file = System.IO.File.OpenText(item.PhysicalPath)) { Console.WriteLine("new file task:: " + item.PhysicalPath); using (JsonTextReader reader = new JsonTextReader(file)) { // 循环解析文件json数据 JObject jsonObject = (JObject)JToken.ReadFrom(reader); JArray jsonValues = (JArray)jsonObject["RECORDS"]; if (jsonValues.Count > 0) { var optionsBuilder = new DbContextOptionsBuilder <db_MicroStationContext>(); optionsBuilder.UseMySql(common.coon); using (var context = new db_MicroStationContext(optionsBuilder.Options)) { foreach (var value in jsonValues) { string srcOid = (string)value["id"]; Console.WriteLine("srcOid:: " + srcOid); string taskType = (string)value["taskType"]; string subtype = (string)value["subtype"]; if (!(taskType == "2")) { continue; } if ((string)value["taskObjective"] == null) { continue; } var taskObj = (JObject)JToken.Parse((string)value["taskObjective"]); if (taskObj["entMessageList"] == null) { continue; } var listTrac = (JArray)taskObj["entMessageList"]; if (listTrac.Count < 1) { continue; } var query = context.TaskOrder.AsQueryable().Where("Taskid = @0", srcOid); if (query.Count() > 0) { continue; } try { // 循环企业清单列表 foreach (var trace in listTrac) { TaskOrder obj = new TaskOrder { TaskOrderOid = Guid.NewGuid().ToString("D"), Taskid = (string)value["id"], TaskTypeSrc = taskType, TaskTypesubSrc = subtype, Tasktitle = (string)value["brief"], Tasktype = (string)value["targetType"], Taskstatus = (string)value["status"] == "ASSIGNING" ? "待查收" : (string)value["status"], Taskobjectname = (string)value["targetName"], TaskTownStreet = (string)taskObj["townName"], TaskCommunity = ((string)taskObj["warningTargetName"]).Split("-")[0], AlarmStationnumber = (int)taskObj["warningTargetId"], AlarmStationname = (string)taskObj["warningTargetName"], Alarmcontent = (string)taskObj["warningContent"], Alarmtime = (DateTime)taskObj["dataTime"], Alarmfactor = (string)taskObj["warningFactory"], Tasksubobjectname = (string)trace["targetName"], TasksubobjectOrgcode = (string)trace["orgCode"], TasksubTownStreet = (string)trace["townName"], TasksubCommunity = (string)trace["streetName"], Tasksubobjectaddress = (string)trace["addr"], Contributionrateranking = (int)trace["rank"], Contributionrate = (float)trace["rate"], //Contributionrate= (float)value["warningIndicator"], //Contributionrateranking = (int)value["warningIndicator"], Collectorid = (string)taskObj["agentId"], Collector = (string)taskObj["agentName"], Collectorphone = (string)taskObj["agentContact"], CollectorunitId = (string)taskObj["agentOrgId"], CollectorunitName = (string)taskObj["agentOrgName"], Taskcontent = (string)value["detail"], Tasknotes = (string)value["remark"], Taskstarttime = (DateTime)value["implStartTime"], Taskdeadline = (DateTime)value["implEndTime"], Taskreceivingtime = DateTime.Now, Taskfallback = (ulong?)(((string)value["backReason"]) + "" == "" ? 0 : 1), Taskfallbackreason = (string)value["backReason"], //Checktime = null, //Taskfeedbacktimes = 0, //Taskfeedbacktime = null, //Taskcompletetime = null, Taskstatusupdatetime = DateTime.Now }; if (!string.IsNullOrEmpty((string)value["Taskfallbacktime"])) { obj.Taskfallbacktime = (DateTime)value["Taskfallbacktime"]; } context.Add(obj); //TaskOrder objSub = obj. //Taskobjectaddress = (string)value["targetAddress"], //TaskTraceability objTrac = new TaskTraceability //{ // TaskTraceabilityOid = Guid.NewGuid().ToString("D"), // Taskordeid = obj.TaskOrderOid, // Taskid = obj.Taskid, // Sitecode = (int)trace["stationCode"], // TargetName = (string)trace["targetName"], // TownStreet = (string)trace["townName"], // OrgCode = (string)trace["orgCode"], // TargetAddr = (string)trace["addr"], // PollutionRank = (int)trace["rank"], // PollutionRate = (float)trace["rate"] //}; } } catch (Exception) { Console.WriteLine("err srcID::" + srcOid); errs.Add((string)value["id"]); throw; } } result = context.SaveChanges(); Console.WriteLine("res count::" + result.ToString()); // 记录操作 TaskDocking docking = new TaskDocking { TaskDockingOid = Guid.NewGuid().ToString("D"), Filename = item.Name, Filepath = item.PhysicalPath, Dockingtype = "站点任务", AssociationId = "", Dockingmode = "download", Dockingtime = DateTime.Now, Dockingresults = errs.Count > 0 ? "失败" : "完成", Dockingtimes = 1, Dockmark = string.Join(",", errs), Createtime = DateTime.Now }; context.Add(docking); int result2 = context.SaveChanges(); } } Task.Run(() => { }); } } // 转移文件 if (result > errs.Count || errs.Count == 0) { File.Copy(item.PhysicalPath, Directory.GetCurrentDirectory() + @"/ftpData/task_old/" + item.Name); Thread.Sleep(1000); File.Delete(item.PhysicalPath); } } } }
public MicroStationController(db_MicroStationContext context) { _context = context; }
public TaskDockingController(db_MicroStationContext context) { _context = context; }