Пример #1
0
 // đẩy thông báo cho người có công đoạn tiếp theo biết công việc tiên quyết đã hoàn thành
 public async Task SaveNotifiNextAsync(int?Code, int QuyTrinhId, string MaLenh, string TenNguoiGui, string NoiDung, int TrangThaixl, string router)
 {
     try
     {
         var    myWorks = _context.CV_QT_MyWork.Where(x => x.Predecessor == Code).Select(a => a.UserTaskId);
         string messege = "(CV Tiên quyết của mã công việc (" + Code.ToString() + ") đã hoàn thành";
         foreach (var item in myWorks)
         {
             Sys_QT_ThongBao sys_QT_ThongBao = new Sys_QT_ThongBao()
             {
                 QuyTrinhId    = QuyTrinhId,
                 MaLenh        = MaLenh,
                 TenNguoiGui   = TenNguoiGui,
                 NoiDung       = messege,
                 NgayGui       = DateTime.Now,
                 NgayDoc       = null,
                 DaDoc         = false,
                 RouterLink    = router,
                 NguoiNhanId   = item,
                 TrangThaiXuLy = TrangThaixl,
                 TrangThai     = getTrangThaiXuLy(TrangThaixl, QuyTrinhId),
                 IsNotifi      = false
             };
             _context.Sys_QT_ThongBao.Add(sys_QT_ThongBao);
         }
         await _context.SaveChangesAsync();
     }
     catch (Exception e)
     {
         throw new InvalidOperationException(e.Message);
     }
 }
        public async Task <ActionResult <IEnumerable <VB_QT_VanBanMoiSoHoa> > > r2AddQTChuyenChoPheDuyet(VB_QT_LuanChuyenVanBan vB_QT_LuanChuyenVanBan)
        {
            try
            {
                var userId = Convert.ToInt32(User.Claims.First(c => c.Type == "UserId").Value);
                var user   = await _context.Sys_Dm_User.FindAsync(userId);

                var userNN = await _context.Sys_Dm_User.FindAsync(vB_QT_LuanChuyenVanBan.NguoiNhanId);

                var qtLuanChuyenVb = await _context.VB_QT_LuanChuyenVanBan.FindAsync(vB_QT_LuanChuyenVanBan.Id);

                qtLuanChuyenVb.NgayDoc  = DateTime.Now;
                qtLuanChuyenVb.DaDoc    = true;
                qtLuanChuyenVb.NgayXuLy = DateTime.Now;
                VB_QT_LuanChuyenVanBan lcvb = LuanChuyenVanBan.r2AddLuanChuyenVanBan(
                    qtLuanChuyenVb.VbMoiSoHoaId, vB_QT_LuanChuyenVanBan.NguoiNhanId, vB_QT_LuanChuyenVanBan.TenNguoiNhan, userId, user.FullName,
                    vB_QT_LuanChuyenVanBan.TieuDe,
                    vB_QT_LuanChuyenVanBan.NoiDung, false,
                    vB_QT_LuanChuyenVanBan.HanXuLy, null,
                    vB_QT_LuanChuyenVanBan.TrangThaiXuLy,
                    vB_QT_LuanChuyenVanBan.MaLenh, null,
                    false, qtLuanChuyenVb.Id,
                    vB_QT_LuanChuyenVanBan.MenuGuiId,
                    vB_QT_LuanChuyenVanBan.MenuNhanId,
                    userNN.PositionName, user.PositionName, userNN.DepartmentName, user.DepartmentName);
                _context.VB_QT_LuanChuyenVanBan.Add(lcvb);
                Sys_QT_ThongBao obj = new Sys_QT_ThongBao();
                obj.MaLenh        = vB_QT_LuanChuyenVanBan.MaLenh;
                obj.QuyTrinhId    = 1;
                obj.TenNguoiGui   = user.FullName;
                obj.NguoiNhanId   = vB_QT_LuanChuyenVanBan.NguoiNhanId ?? 0;
                obj.NoiDung       = vB_QT_LuanChuyenVanBan.NoiDung;
                obj.NgayGui       = DateTime.Now;
                obj.DaDoc         = false;
                obj.NgayDoc       = null;
                obj.TrangThaiXuLy = vB_QT_LuanChuyenVanBan.TrangThaiXuLy;
                obj.RouterLink    = "/vanban/quytrinhvanban/vanbanchopheduyet";
                _context.Sys_QT_ThongBao.Add(obj);
                List <NguoiNhanThongBao> nhanThongBaos = new List <NguoiNhanThongBao>();
                NguoiNhanThongBao        nguoiNhan     = new NguoiNhanThongBao();
                nguoiNhan.NguoiNhanId = vB_QT_LuanChuyenVanBan.NguoiNhanId ?? 0;
                nhanThongBaos.Add(nguoiNhan);
                await _context.SaveChangesAsync();

                return(new ObjectResult(new { error = 0, nguoiNhanTbs = nhanThongBaos }));
            }
            catch (Exception)
            {
                return(new ObjectResult(new { error = 1 }));
            }
        }
Пример #3
0
        public async Task SaveNotifiAsync(int QuyTrinhId, string MaLenh, string TenNguoiGui, string NoiDung, int NguoiNhanId, int TrangThaixl, string router)
        {
            Sys_QT_ThongBao sys_QT_ThongBao = new Sys_QT_ThongBao()
            {
                QuyTrinhId    = QuyTrinhId,
                MaLenh        = MaLenh,
                TenNguoiGui   = TenNguoiGui,
                NoiDung       = NoiDung,
                NgayGui       = DateTime.Now,
                NgayDoc       = null,
                DaDoc         = false,
                RouterLink    = router,
                NguoiNhanId   = NguoiNhanId,
                TrangThaiXuLy = TrangThaixl,
                TrangThai     = getTrangThaiXuLy(TrangThaixl, QuyTrinhId),
                IsNotifi      = true
            };
            NotifyContent notifyContent = new NotifyContent()
            {
                TenNguoiGui = sys_QT_ThongBao.TenNguoiGui,
                TrangThai   = sys_QT_ThongBao.TrangThai,
                Ngay        = DateTime.Now,
                NoiDung     = sys_QT_ThongBao.NoiDung
            };
            var connect = await _context.Sys_Dm_Connection.FirstOrDefaultAsync(x => x.UserId == NguoiNhanId);

            if (connect != null)
            {
                int[] typeflow = { 2, 3, 5, 6, 16, 15 };
                if (QuyTrinhId == 2 && typeflow.Contains(TrangThaixl))
                {
                    int[] pushtypef = { TrangThaixl };
                    HubService.Instance.PushTypeFlow(pushtypef, connect.ConnectionId);
                }
                HubService.Instance.CallHub(notifyContent, connect.ConnectionId);
            }
            else
            {
                sys_QT_ThongBao.IsNotifi = false;
            }
            _context.Sys_QT_ThongBao.Add(sys_QT_ThongBao);
            await _context.SaveChangesAsync();
        }
Пример #4
0
        public async Task <ActionResult <IEnumerable <VB_QT_VanBanMoiSoHoa> > > r2AddQTPheDuyetTrinhKy(LuanChuyenVbDuyetTrinhKy luanChuyenVbXNHT)
        {
            try
            {
                List <NguoiNhanThongBao> nhanThongBaos = new List <NguoiNhanThongBao>();
                var userId = Convert.ToInt32(User.Claims.First(c => c.Type == "UserId").Value);
                var user   = await _context.Sys_Dm_User.FindAsync(userId);

                var qtLuanChuyenVb = await _context.VB_QT_LuanChuyenVanBan.FindAsync(luanChuyenVbXNHT.VB_QT_LuanChuyenVanBan.Id);

                qtLuanChuyenVb.NgayXuLy = DateTime.Now;
                qtLuanChuyenVb.NgayDoc  = DateTime.Now;
                qtLuanChuyenVb.DaDoc    = true;

                var nguoiNhans = _context.VB_QT_LuanChuyenVanBan.Where(x => x.VbMoiSoHoaId == qtLuanChuyenVb.VbMoiSoHoaId).Select(a => new
                {
                    a.TenNguoiGui,
                    a.NguoiGuiId,
                    a.MaLenh
                }).Distinct().ToList();
                if (luanChuyenVbXNHT.UserXNHT.isNguoiGui == true)
                {
                    foreach (var item in nguoiNhans.Where(x => x.MaLenh == "VB_CHOTRINHKY" && x.NguoiGuiId != nguoiNhans.FirstOrDefault(x => x.MaLenh == "VB_MOISOHOA").NguoiGuiId))
                    {
                        var userNN = await _context.Sys_Dm_User.FindAsync(item.NguoiGuiId);

                        VB_QT_LuanChuyenVanBan lcvb = LuanChuyenVanBan.r2AddLuanChuyenVanBan(
                            qtLuanChuyenVb.VbMoiSoHoaId, item.NguoiGuiId, item.TenNguoiGui, userId, user.FullName,
                            luanChuyenVbXNHT.VB_QT_LuanChuyenVanBan.TieuDe,
                            luanChuyenVbXNHT.VB_QT_LuanChuyenVanBan.NoiDung, false,
                            luanChuyenVbXNHT.VB_QT_LuanChuyenVanBan.HanXuLy, null,
                            5,
                            "VB_NHANTHONGBAO", null, false,
                            qtLuanChuyenVb.Id,
                            luanChuyenVbXNHT.VB_QT_LuanChuyenVanBan.MenuGuiId,
                            luanChuyenVbXNHT.VB_QT_LuanChuyenVanBan.MenuNhanId,
                            userNN.PositionName, user.PositionName, userNN.DepartmentName, user.DepartmentName);
                        _context.VB_QT_LuanChuyenVanBan.Add(lcvb);
                        // thêm vào thông báo
                        Sys_QT_ThongBao obj = new Sys_QT_ThongBao();
                        obj.MaLenh        = "VB_NHANTHONGBAO";
                        obj.QuyTrinhId    = 1;
                        obj.TenNguoiGui   = user.FullName;
                        obj.NguoiNhanId   = item.NguoiGuiId;
                        obj.NoiDung       = luanChuyenVbXNHT.VB_QT_LuanChuyenVanBan.NoiDung;
                        obj.NgayGui       = DateTime.Now;
                        obj.DaDoc         = false;
                        obj.NgayDoc       = null;
                        obj.TrangThaiXuLy = 5;
                        obj.RouterLink    = "/vanban/quytrinhvanban/vanbandapheduyet";
                        NguoiNhanThongBao nguoiNhan = new NguoiNhanThongBao();
                        nguoiNhan.NguoiNhanId = item.NguoiGuiId;
                        nhanThongBaos.Add(nguoiNhan);
                        _context.Sys_QT_ThongBao.Add(obj);
                    }
                }
                var userNNN = await _context.Sys_Dm_User.FindAsync(nguoiNhans.FirstOrDefault(x => x.MaLenh == "VB_MOISOHOA").NguoiGuiId);

                VB_QT_LuanChuyenVanBan lcvb1 = LuanChuyenVanBan.r2AddLuanChuyenVanBan(
                    qtLuanChuyenVb.VbMoiSoHoaId, nguoiNhans.FirstOrDefault(x => x.MaLenh == "VB_MOISOHOA").NguoiGuiId, nguoiNhans.FirstOrDefault(x => x.MaLenh == "VB_MOISOHOA").TenNguoiGui, userId, user.FullName,
                    luanChuyenVbXNHT.VB_QT_LuanChuyenVanBan.TieuDe,
                    luanChuyenVbXNHT.VB_QT_LuanChuyenVanBan.NoiDung, false,
                    luanChuyenVbXNHT.VB_QT_LuanChuyenVanBan.HanXuLy, null,
                    3,
                    luanChuyenVbXNHT.VB_QT_LuanChuyenVanBan.MaLenh, null, false,
                    qtLuanChuyenVb.Id,
                    luanChuyenVbXNHT.VB_QT_LuanChuyenVanBan.MenuGuiId,
                    luanChuyenVbXNHT.VB_QT_LuanChuyenVanBan.MenuNhanId,
                    userNNN.PositionName, user.PositionName, userNNN.DepartmentName, user.DepartmentName);
                _context.VB_QT_LuanChuyenVanBan.Add(lcvb1);
                NguoiNhanThongBao nguoiNhan1 = new NguoiNhanThongBao();
                nguoiNhan1.NguoiNhanId = nguoiNhans.FirstOrDefault(x => x.MaLenh == "VB_MOISOHOA").NguoiGuiId;
                nhanThongBaos.Add(nguoiNhan1);
                // thêm vào thông báo
                Sys_QT_ThongBao obj1 = new Sys_QT_ThongBao();
                obj1.MaLenh        = luanChuyenVbXNHT.VB_QT_LuanChuyenVanBan.MaLenh;
                obj1.QuyTrinhId    = 1;
                obj1.TenNguoiGui   = user.FullName;
                obj1.NguoiNhanId   = nguoiNhans.FirstOrDefault(x => x.MaLenh == "VB_MOISOHOA").NguoiGuiId;
                obj1.NoiDung       = luanChuyenVbXNHT.VB_QT_LuanChuyenVanBan.NoiDung;
                obj1.NgayGui       = DateTime.Now;
                obj1.DaDoc         = false;
                obj1.NgayDoc       = null;
                obj1.TrangThaiXuLy = luanChuyenVbXNHT.VB_QT_LuanChuyenVanBan.TrangThaiXuLy;
                obj1.RouterLink    = "/vanban/quytrinhvanban/vanbandapheduyet";
                _context.Sys_QT_ThongBao.Add(obj1);
                await _context.SaveChangesAsync();

                return(new ObjectResult(new { error = 0, nguoiNhanTbs = nhanThongBaos }));
            }
            catch (Exception)
            {
                return(new ObjectResult(new { error = 1 }));
            }
        }