Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
                    }
                }
            }
        }
Пример #4
0
        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();       // 用户信息重载
                    }
                }
            }
        }
Пример #5
0
 public TaskFeedbackController(db_MicroStationContext context)
 {
     _context = context;
 }
Пример #6
0
 public TaskOrderController(db_MicroStationContext context)
 {
     _context = context;
 }
Пример #7
0
        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);
                    }
                }
            }
        }
Пример #8
0
 public UserInfoController(db_MicroStationContext context)
 {
     _context = context;
 }
Пример #9
0
 public InfoAlarmController(db_MicroStationContext context)
 {
     _context = context;
 }
Пример #10
0
        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);
                    }
                }
            }
        }
Пример #11
0
 public MicroStationController(db_MicroStationContext context)
 {
     _context = context;
 }
Пример #12
0
 public TaskDockingController(db_MicroStationContext context)
 {
     _context = context;
 }