예제 #1
0
 /// <summary>
 /// 推送染纱待拉轴信息到准备车间的拉轴工
 /// </summary>
 public void PushYdDaiSongZhouInfo()
 {
     using (PrdAppDbContext prdAppDb = new PrdAppDbContext())
     {
         int daiSongZhouCounts = ydmDb.prdSongZhouinfoes.Count(s => s.properattime == null);
         // 调用客户端的方法,在消息栏显示消息
         if (daiSongZhouCounts > 0)
         {
             List <string> conIds = prdAppDb.peAppWvUsers.Where(u => u.SubDept.Contains("PrSz") && u.IsLogin == true)
                                    .Select(u => u.ConnectionId).ToList();
             GlobalHost.ConnectionManager.GetHubContext <PushHub>().Clients.Clients(conIds)
             .receivePushFromServer("您有 " + daiSongZhouCounts + " 条轴待送!", "");
         }
     }
 }
예제 #2
0
 /// <summary>
 /// 登陆成功后/WiFi重新连接时调用
 /// </summary>
 /// <param name="empoNo">员工号</param>
 /// <param name="subDept">分厂</param>
 public void OnLogined(string empoNo, string subDept)
 {
     using (PrdAppDbContext prdAppDb = new PrdAppDbContext())
     {
         var deptGroup = prdAppDb.peAppWvUsers.FirstOrDefault(u => u.SubDept.Equals(subDept));
         if (deptGroup != null)
         {
             var isuser = prdAppDb.peAppWvUsers.FirstOrDefault(u => u.ConnectionId == Context.ConnectionId);
             if (isuser == null)
             {
                 // 更新数据库的登录状态
                 prdAppDb.peAppWvUsers.Where(u => u.code == empoNo).Update(u => new peAppWvUser()
                 {
                     ConnectionId = Context.ConnectionId, IsLogin = true
                 });
                 prdAppDb.SaveChanges();
             }
         }
     }
 }
예제 #3
0
        /// <summary>
        /// 返回抢单APP指定部门和工种信息
        /// </summary>
        /// <param name="subDept"></param>
        /// <param name="remark"></param>
        /// <param name="taskStatus"></param>
        /// <param name="deptId"></param>
        /// <returns></returns>
        public PushTarget QiangDanPushTarget(string subDept, string remark, int taskStatus, int deptId)
        {
            IList <string> conId     = new List <string>();
            int            undoTasks = 0;

            using (MonitorWv2DbContext monitorWv2Db = new MonitorWv2DbContext())
                using (PrdAppDbContext prdAppDb = new PrdAppDbContext())
                    using (WvmDbContext wvmDb = new WvmDbContext())
                    {
                        if (deptId < 1)
                        {
                            // 增加Department筛选 18-11-28
                            undoTasks =
                                monitorWv2Db.QiangDanTasks.Count(
                                    t => (t.TaskStatus == taskStatus) && t.IsActive == true && t.Department.Equals(subDept));
                            //var connectedUsers = prdAppDb.peAppWvUsers
                            //    .Join(wvmDb.peAppWvWorkers, u => u.code, w => w.cardno, (u, w) => new { u, w })
                            //    .Where(t => t.u.SubDept.Equals(subDept) && t.u.IsLogin == true && t.w.Remark.Equals(remark))
                            //    .Select(t => t.u.ConnectionId).ToList();
                            // 方式2
                            var userList       = prdAppDb.peAppWvUsers.Where(u => u.SubDept.Equals(subDept) && u.IsLogin == true).ToList();
                            var workerList     = wvmDb.peAppWvWorkers.Where(w => w.Remark.Equals(remark)).ToList();
                            var connectedUsers = userList.Join(workerList, u => u.code, w => w.cardno, (u, w) => new { u, w })
                                                 .Select(t => t.u.ConnectionId);

                            if (connectedUsers.Any() && undoTasks > 0)
                            {
                                foreach (var u in connectedUsers)
                                {
                                    conId.Add(u);
                                }
                            }
                        }
                        else
                        {
                            var sqlText = @"SELECT COUNT(*) FROM dbo.QiangDanTask AS q INNER JOIN dbo.machine AS m ON m.MachineName = q.MachineName WHERE m.DeptID=@p0 AND q.Department=@p1 AND q.TaskStatus=@p2 AND q.IsActive=1";
                            undoTasks = monitorWv2Db.Database.SqlQuery <int>(sqlText, deptId, subDept, taskStatus).Single();
                            if (deptId == 1)
                            {
                                //var connectedUsers = prdAppDb.peAppWvUsers
                                //    .Join(wvmDb.peAppWvWorkers, u => u.code, w => w.cardno, (u, w) => new { u, w })
                                //    .Where(t => t.u.SubDept.Equals(subDept) && t.u.IsLogin == true && t.w.Remark.Equals(remark) && t.w.GroupName.Contains("西"))
                                //    .Select(t => t.u.ConnectionId).ToList();

                                var userList       = prdAppDb.peAppWvUsers.Where(u => u.SubDept.Equals(subDept) && u.IsLogin == true).ToList();
                                var workerList     = wvmDb.peAppWvWorkers.Where(w => w.Remark.Equals(remark) && w.GroupName.Contains("西")).ToList();
                                var connectedUsers = userList.Join(workerList, u => u.code, w => w.cardno, (u, w) => new { u, w })
                                                     .Select(t => t.u.ConnectionId);
                                if (connectedUsers.Any() && undoTasks > 0)
                                {
                                    foreach (var u in connectedUsers)
                                    {
                                        conId.Add(u);
                                    }
                                }
                            }
                            else
                            {
                                //var connectedUsers = prdAppDb.peAppWvUsers
                                //    .Join(wvmDb.peAppWvWorkers, u => u.code, w => w.cardno, (u, w) => new { u, w })
                                //    .Where(t => t.u.SubDept.Equals(subDept) && t.u.IsLogin == true && t.w.Remark.Equals(remark) && t.w.GroupName.Contains("东"))
                                //    .Select(t => t.u.ConnectionId).ToList();
                                var userList       = prdAppDb.peAppWvUsers.Where(u => u.SubDept.Equals(subDept) && u.IsLogin == true).ToList();
                                var workerList     = wvmDb.peAppWvWorkers.Where(w => w.Remark.Equals(remark) && w.GroupName.Contains("东")).ToList();
                                var connectedUsers = userList.Join(workerList, u => u.code, w => w.cardno, (u, w) => new { u, w })
                                                     .Select(t => t.u.ConnectionId);
                                if (connectedUsers.Any() && undoTasks > 0)
                                {
                                    foreach (var u in connectedUsers)
                                    {
                                        conId.Add(u);
                                    }
                                }
                            }
                        }

                        return(new PushTarget {
                            ConnectIds = conId, Msg = undoTasks.ToString()
                        });
                    }
        }