c. Thẻ <NOScript> và </NOSCRIPT>
3.3.3. Xác định đối tượng tham gia hệ thống
3.3.3.1 Xác định đối tượng tham gia:
- Là toàn thể cán bộ, nhân viên của đơn vị.
3.3.3.2. Nguyên tắc quản lý
- Cấp trên quản lý công việc của cấp dưới (có cán bộ Tham mưu tổng hợp giúp việc).
- Lãnh đạo phụ trách lĩnh vực công tác nào thì quản lý lĩnh vực công tác đó.
- Cán bộ chủ trì công việc có trách nhiệm nắm bắt và quản lý toàn bộ công việc được giao.
3.3.3.3. Trách nhiệm và quyền hạn của các đối tượng tham gia
- Cán bộ lãnh đạo trực tiếp chỉ đạo và nắm bắt các công việc trong phạm vi mình quản lý.
- Cán bộ tham mưu có trách nhiệm nắm bắt được tất cả các đầu việc trong đơn vị của mình để có trách nhiệm báo cáo lãnh đạo và kiểm tra, đốc thúc tiến độ thực hiện.
- Cán bộ chủ trì thực hiện có trách nhiệm nắm bắt các công việc mình được giao, đề xuất cách thức thực hiện và tổ chức thực hiện công việc. Trong quá trình thực hiện, cán bộ thực hiện có trách nhiệm báo cáo hướng giải quyết, tiến độ thực hiện và kết quả thực hiện cho các cấp lãnh đạo.
- Trong trường hợp công việc có sự phối hợp giữa nhiều cán bộ chiến sĩ, thì các đồng chí phối hợp thực hiện có trách nhiệm nắm bắt và thực hiện phần việc theo phân công.
3.4. Mô hình CSDL.
Hệ thống quản lý thông tin về công việc bao gồm nhiều thành phần khác nhau, mỗi thành phần có thể coi là một hệ thống độc lập. Nhưng thông
tin được tổng hợp và quản lý chung trên một giao diện web được gọi là cổng thông tin điện tử về công việc.
Với mỗi thành phần trên hệ thống có một thiết kế khác nhau.
3.4.1. Hệ thống quản lý thông tin về công việc.
3.4.1.1. Các bảng danh mục
- Bảng tblChucVu
Tên trường Kiểu dữ liệu Ràng buộc Mô tả ID INT IDENTITY Khóa chính TEN NVARCHAR (100) NOT NULL
- Bảng tblDoMat
Tên trường Kiểu dữ liệu Ràng buộc Mô tả ID INT IDENTITY Khóa chính TEN NVARCHAR(200) NOT NULL
- Bảng tblDoKhan
Tên trường Kiểu dữ liệu Ràng buộc Mô tả ID INT IDENTITY Khóa chính TEN NVARCHAR(200) NOT NULL
- Bảng tblLoaiViec
Tên trường Kiểu dữ liệu Ràng buộc Mô tả ID INT IDENTITY Khóa chính TEN NVARCHAR(300) NOT NULL
- Bảng tblQuyen
Tên trường Kiểu dữ liệu Ràng buộc Mô tả ID INT IDENTITY Khóa chính TEN NVARCHAR(100) NOT NULL
3.4.1.2. Các bảng chính
- Bảng tblCongViec
Tên trường Kiểu dữ liệu Ràng buộc Mô tả ID INT IDENTITY Khóa chính
TEN NVARCHAR
(500)
NOT NULL Tên công việc LOAIVIEC_ID INT Loại việc DOKHAN_ID INT NOT NULL Độ khẩn DOMAT_ID INT NOT NULL Độ mật
DVXULY_ID INT Đơn vị (cán bộ) xử lý
UUTIEN BIT NOT NULL Ưu tiên GHICHU NVARCHAR(800) Ghi chú
NGAYDX DATETIME Ngày đề xuất giải quyết
NOIDUNGDX NVARCHAR(500) Nội dung đề xuất DUKIENTG DATETIME Dự kiến thời gian
hoàn thành KETQUA NVARCHAR(500) Kết quả xử lý NGAYGIAO DATETIME Ngày giao việc NGAYKT DATETIME Ngày hoàn thành NGUOINHAP_ID INT NOT NULL
NGUOISUA_ID INT
NGAYNHAP DATETIME NOT NULL NGAYSUA DATETIME
SUA INT
- Bảng tblDVYC
Tên trường Kiểu dữ liệu Ràng buộc Mô tả ID INT IDENTITY Khóa chính NGAYNHAN DATETIME Ngày nhận NGAYCV DATETIME Ngày công văn SOCV NVARCHAR(50) Số công văn DVYC NVARCHAR(200) Đơn vị yêu cầu CONGVIEC_ID INT NOT NULL
NGUOINHAP_ID INT NOT NULL NGUOISUA_ID INT
NGAY NHAP DATETIME NOT NULL NGAYSUA DATETIME
SUA INT
- Bảng tblDVPhoiHop
Tên trường Kiểu dữ liệu Ràng buộc Mô tả ID INT IDENTITY Khóa chính CONGVIEC_ID INT NOT NULL
DV_ID INT
NGUOINHAP_ID INT NOT NULL NGUOISUA_ID INT
NGAYSUA DATETIME
NGAYNHAP DATETIME NOT NULL
- Bảng tblTiendo
Tên trường Kiểu dữ liệu Ràng buộc Mô tả ID INT IDENTITY Khóa chính NGAY DATETIME NOT NULL Ngày báo cáo NOIDUNG NVARCHAR(500) NOT NULL Nội dung báo cáo TIENDO INT NOT NULL Tiến độ thực hiện:
Chưa thực hiện, đang thực hiện, đã hoàn thành, quá hạn
CONGVIEC_ID INT NOT NULL
GIAHAN DATETIME Ngày xin gia hạn GHICHU NVARCHAR(200)
NGUOINHAP_ID INT NOT NULL NGUOISUA_ID INT
NGAYNHAP DATETIME NOT NULL NGAYSUA DATETIME
SUA INT
- Bảng tblYKienChiDao
Tên trường Kiểu dữ liệu Ràng buộc Mô tả ID INT IDENTITY Khóa chính
NGAY DATETIME Ngày chỉ đạo
NOIDUNG NVARCHAR(500) Nội dung NGUOICD_ID INT Người chỉ đạo CONGVIEC_ID INT NOT NULL
NGUOINHAP_ID INT NOT NULL NGUOISUA_ID INT
NGAYNHAP DATETIME NOT NULL NGAYSUA DATETIME
- Bảng tblBanGiao
Tên trường Kiểu dữ liệu Ràng buộc Mô tả ID INT IDENTITY Khóa chính CONGVIEC_ID INT NOT NULL
DVTHUCHIEN_ID INT Đơn vị (cán bộ) đang thực hiện DVNHAN_ID INT Đơn vị (cán bộ)
nhận bàn giao
NGAY DATETIME Ngày bàn giao
GHICHU NVARCHAR(500) - Bảng tblCB_LV
Tên trường Kiểu dữ liệu Ràng buộc Mô tả
ID INT IDENTITY
DV_ID INT NOT NULL
LOAIVIEC_ID INT NOT NULL NGAYBD DATETIME NOT NULL NGAYKT DATETIME
- Bảng tblDVCanbo
Tên trường Kiểu dữ liệu Ràng buộc Mô tả ID INT IDENTITY Khóa chính SOHIEUCB NVARCHAR(10) NOT NULL Số hiệu cán bộ TEN NVARCHAR(100) NOT NULL Họ tên cán bộ MATKHAU NVARCHAR(100) Mật khẩu
DV_ID INT Đơn vị
CHUCVU_ID INT Chức vụ
EMAIL NVARCHAR(50) Địa chỉ thư nội bộ GHICHU NVARCHAR(500)
CB_DV BIT NOT NULL Cán bộ hay đơn vị - Bảng tblCanbo_Quyen
Tên trường Kiểu dữ liệu Ràng buộc Mô tả ID INT IDENTITY Khóa chính
DV_ID INT NOT NULL
QUYEN_ID INT NOT NULL
3.4.2. Hệ thống quản lý lịch công tác
- Bảng tblTHOIGIAN
Tên trường Kiểu dữ liệu Ràng buộc Mô tả ID INT IDENTITY Khóa chính
TUAN INT NOT NULL
NGAY DATETIME NOT NULL
BUOI INT Sáng, Chiều, Tối
- Bảng tblLich
Tên trường Kiểu dữ liệu Ràng buộc Mô tả ID INT IDENTITY Khóa chính TENVIEC NVARCHAR(200) NOT NULL
GHICHU NVARCHAR(200) NOT NULL THOIGIAN_ID INT NOT NULL
- Bảng tblQuyen
Tên trường Kiểu dữ liệu Ràng buộc Mô tả ID INT IDENTITY Khóa chính VIEC_ID INT NOT NULL
NGUOIDUNG_ID INT NOT NULL
3.4.3. Hệ thống nhắc việc cá nhân
- Bảng tblViecCaNhan
Tên trường Kiểu dữ liệu Ràng buộc Mô tả ID INT IDENTITY Khóa chính TENVIEC NVARCHAR(200) NOT NULL
THOIGIAN DATETIME NOT NULL TINHTRANG INT NOT NULL NGUOIDUNG_ID INT
3.4.4. Hệ thống quản lý danh bạ điện thoại
- Bảng tblDanhba.
Tên trường Kiểu dữ liệu Ràng buộc Mô tả ID INT IDENTITY Khóa chính TEN NVARCHAR(200) NOT NULL
COQUAN VARCHAR(20) DIDONG VARCHAR(20) NHARIENG VARCHAR(20) NGAYSINH DATETIME DONVI_ID INT
NGUOIDUNG_ID INT NOT NULL TRANGTHAI INT NOT NULL
3.5. Giao diện của hệ thống quản lý thông tin công việc.
3.5.1. Giao diện chính của cổng thông tin về công việc.
Mỗi người dùng tùy theo mức độ quyền hạn và phạm vi quản lý của mình mà khi đăng nhập, hệ thống sẽ lọc các thông tin về công việc trong phạm vi tương ứng.
Thông tin về công việc, lịch công tác là thông tin chung của đơn vị, và được tương tác dưới dạng luồng công việc. Mỗi người dùng tham gia vào luồng công việc ở mức độ nào thì hệ thống sẽ hiển thị thông tin về công việc ở mức độ đó.
- Cán bộ lãnh đạo: Hiển thị các công việc thuộc lĩnh vực quản lý của mình.
- Cán bộ thực hiện: Hiển thị các công việc thuộc phạm vi giải quyết của mình.
- Cán bộ tham mưu, tổng hợp: Được xem hết các công việc thuộc đơn vị mà mình tham mưu, tổng hợp.
Thông tin về nhắc việc cá nhân, danh bạ điện thoại là thông tin riêng của mỗi người dùng. Nó hoàn toàn độc lập giữa các người dùng với nhau.
Hình 2.7: Giao diện chính của cổng thông tin điện tử về công việc
Người dùng có thể tùy chọn giao diện trang chính của mình bằng cách thêm, bớt các chức năng, có thể đặt để lại các thành phần của trang chính chỉ bằng cách kéo thả.
3.5.2. Giao diện về việc nhập thông tin về một công việc.
Công việc được lãnh đạo giao xuống cho cán bộ thực hiện. Có thể lãnh đạo trực tiếp nhập thông tin về công việc vào chương trình hoặc cán bộ trực tiếp thực hiện nhập vào. Nếu lãnh đạo nhập vào và thực hiện giao việc bằng chương trình thì cán bộ thực hiện sẽ nhìn thấy công việc được giao trên màn hình làm việc của mình.
3.5.3. Giao diện chính của một hồ sơ công việc.
Các thông tin về công việc được các cấp thực hiện bổ sung vào trong quá trình thực hiện. Tập hợp các thông tin về xử lý một công việc là một hồ sơ công việc. Lãnh đạo có thể xem hồ sơ của một công việc để kiểm tra việc thực hiện của công việc đó.
Hình 2.9: Giao diện về hồ sơ một công việc
3.5.4. Giao diện về việc cho ý kiến chỉ đạo về công việc.
Lãnh đạo khi duyệt thông tin về công việc có thể trực tiếp cho ý kiến chỉ đạo trên chương trình bằng cách nhập ý kiến chỉ đạo của mình về công việc đó vào chương trình. Cán bộ thực hiện khi đăng nhập sẽ nhìn thấy ý kiến chỉ đạo và thực hiện.
Hình 2.10: Giao diện nhập ý kiến chỉ đạo
3.6. Một số đoạn chương trình mẫu
3.6.1. Kiểm tra quyền của người dùng khi truy nhập hệ thống.
protected void laydieukien() {
switch (chucvuid) {
//Nếu là đồng chí Cục trưởng
case "5":
strsql = " and a.ngaykt is null and a.congviec_id is null ";
break;
//Nếu là đồng chí Cục phó
case "6":
strsql = " and a.ngaykt is null and
((a.nguoigiao_id="+userid+") or (a.dvxuly_id=" + userid + " and a.id not in (select congviec_id from tblCongviec where congviec_id is not null and sua is null)) or (a.congviec_id is null and a.id not in (select
congviec_id from tblCongviec where sua is null and congviec_id is not null))) ";
strsql1 = "select a.id as id from tblCongviec a where a.sua is null and a.ngaykt is null and((a.dvxuly_id=" + userid + ") or (a.nguoigiao_id="+userid+") or (a.loaiviec_id in (select loaiviec_id from tblCB_LV where sua is null and dv_id=" + userid + " and (ngaykt is null or ngaykt>'" + DateTime.Now.ToString() + "')) and a.congviec_id is null and a.id not in (select congviec_id from tblCongviec where sua is null and congviec_id is not null)))";
strsql2 = "select a.id as id from tblCongviec a,tblDVPhoihop b where a.sua is null and b.sua is null and a.id=b.congviec_id and b.dv_id="+userid+"";
break;
//Nếu là tham mưu Cục
case "17":
strsql = " and a.ngaykt is null and ((a.id in (select congviec_id from tblDVPhoihop where sua is null and dv_id=" + userid + ")) or (a.dvxuly_id=" + userid + ") or (a.congviec_id is null)) ";
strsql1 = "select a.id as id from tblCongviec a where a.sua is null and a.ngaykt is null and a.dvxuly_id=" + userid + "";
strsql2 = "select a.id as id from tblCongviec a,tblDVPhoihop b where a.sua is null and b.sua is null and a.id=b.congviec_id and b.dv_id="+userid+"";
break;
//Nếu là Trưởng phòng. Đối với các công việc phối hợp
thì chỉ xem những công phối hợp với đơn vị ngoài
case "7":
strsql = " and a.ngaykt is null and a.id not in (select congviec_id from tblCongviec where congviec_id is not null and
(dvxuly_id="+donvichuquanid+" or dvxuly_id in (select id from tblDVCanbo where sua is null and dv_id = " + donvichuquanid + "))) and
(a.dvxuly_id=" + donvichuquanid + " or dvxuly_id in (select id from tblDVCanbo where dv_id=" + donvichuquanid + " and sua is null) " +
"or (a.id in (select
tblDVPhoihop.congviec_id from tblDVPhoihop, tblCongviec,tblDVCanbo
g,tblDVCanbo h where tblCongviec.sua is null and g.sua is null and h.sua is null and tblDVPhoihop.sua is null and tblDVPhoihop.dv_id=g.id and (g.id=" + donvichuquanid + " or g.dv_id=" + donvichuquanid + ") and tblDVPhoihop.congviec_id=tblCongviec.id and tblCongviec.dvxuly_id=h.id and (h.id<>" + donvichuquanid + " or h.id<>" + donvichuquanid + "))))";
strsql1 = "select a.id as id from tblCongviec a where a.sua is null and a.ngaykt is null and (a.dvxuly_id=" + donvichuquanid + " or a.dvxuly_id in (select id from tblDVCanbo where sua is null and dv_id=" + donvichuquanid + ")) and (a.id not in (select congviec_id from tblCongviec where sua is null and congviec_id is not null and dvxuly_id in (select id from tblDVCanbo where sua is null and dv_id=" +
donvichuquanid + ")) or a.nguoigiao_id in (select id from tblDVCanbo where sua is null and dv_id=" + donvichuquanid + "))";
strsql2 = "select a.id as id from tblCongviec a,tblDVPhoihop b where a.sua is null and b.sua is null and
a.id=b.congviec_id and (b.dv_id=" + donvichuquanid + " or b.dv_id in (select id from tblDVCanbo where sua is null and
dv_id="+donvichuquanid+"))"; break;
//Nếu là Chánh văn phòng
case "13":
strsql = " and a.ngaykt is null and a.id not in (select congviec_id from tblCongviec where congviec_id is not null and
(dvxuly_id=" + donvichuquanid + " or dvxuly_id in (select id from tblDVCanbo where sua is null and dv_id = " + donvichuquanid + "))) and (a.dvxuly_id=" + donvichuquanid + " or dvxuly_id in (select id from tblDVCanbo where dv_id=" + donvichuquanid + " and sua is null) " +
"or (a.id in (select
tblDVPhoihop.congviec_id from tblDVPhoihop, tblCongviec,tblDVCanbo
g,tblDVCanbo h where tblCongviec.sua is null and g.sua is null and h.sua is null and tblDVPhoihop.sua is null and tblDVPhoihop.dv_id=g.id and (g.id=" + donvichuquanid + " or g.dv_id=" + donvichuquanid + ") and tblDVPhoihop.congviec_id=tblCongviec.id and tblCongviec.dvxuly_id=h.id and (h.id<>" + donvichuquanid + " or h.id<>" + donvichuquanid + "))))";
strsql1 = "select a.id as id from tblCongviec a where a.sua is null and a.ngaykt is null and (a.dvxuly_id=" +
donvichuquanid + " or a.dvxuly_id in (select id from tblDVCanbo where sua is null and dv_id=" + donvichuquanid + ")) and (a.id not in (select
congviec_id from tblCongviec where sua is null and congviec_id is not null and dvxuly_id in (select id from tblDVCanbo where sua is null and dv_id=" + donvichuquanid + ")) or a.nguoigiao_id in (select id from tblDVCanbo where sua is null and dv_id=" + donvichuquanid + "))";
strsql2 = "select a.id as id from tblCongviec a,tblDVPhoihop b where a.sua is null and b.sua is null and
a.id=b.congviec_id and (b.dv_id=" + donvichuquanid + " or b.dv_id in (select id from tblDVCanbo where sua is null and dv_id=" + donvichuquanid + "))";
break;
//Nếu là phó phòng
case "8":
strsql = " and a.ngaykt is null and a.id not in (select congviec_id from tblCongviec where congviec_id is not null and
(dvxuly_id=" + donvichuquanid + " or dvxuly_id in (select id from tblDVCanbo where sua is null and dv_id = " + donvichuquanid + "))) and (a.dvxuly_id=" + donvichuquanid + " or dvxuly_id in (select id from tblDVCanbo where dv_id=" + donvichuquanid + " and sua is null) " +
"or (a.id in (select
tblDVPhoihop.congviec_id from tblDVPhoihop, tblCongviec,tblDVCanbo
g,tblDVCanbo h where tblCongviec.sua is null and g.sua is null and h.sua is null and tblDVPhoihop.sua is null and tblDVPhoihop.dv_id=g.id and (g.id=" + donvichuquanid + " or g.dv_id=" + donvichuquanid + ") and tblDVPhoihop.congviec_id=tblCongviec.id and tblCongviec.dvxuly_id=h.id and (h.id<>" + donvichuquanid + " or h.id<>" + donvichuquanid + "))))";
strsql1 = "select a.id as id from tblCongviec a where a.sua is null and a.ngaykt is null and ((a.nguoigiao_id="+userid+") or (a.dvxuly_id ="+userid+") or (a.dvxuly_id="+donvichuquanid+") or
(a.dvxuly_id in (select id from tblDVCanbo where sua is null and
dv_id="+donvichuquanid+") and a.loaiviec_id in (select loaiviec_id from tblCB_LV where sua is null and dv_id=" + userid + " and (ngaykt is null or ngaykt>'" + DateTime.Now.ToString() + "'))))";
strsql2 = "select a.id as id from tblCongviec a,tblDVPhoihop b where a.sua is null and b.sua is null and
a.id=b.congviec_id and (b.dv_id=" + userid + " or (b.dv_id in (select id from tblDVCanbo where sua is null and dv_id=" + donvichuquanid + ") and a.loaiviec_id in (select loaiviec_id from tblCB_LV where sua is null and dv_id=" + userid + " and (ngaykt is null or ngaykt>'" +
DateTime.Now.ToString() + "'))))"; break;
//Nếu là phó chánh văn phòng
case "14":
strsql = " and a.ngaykt is null and a.id not in (select congviec_id from tblCongviec where congviec_id is not null and
(dvxuly_id=136 or dvxuly_id in (select id from tblDVCanbo where sua is null and dv_id = 136))) and (a.dvxuly_id=136 or dvxuly_id in (select id from tblDVCanbo where dv_id=136 and sua is null) " +
"or (a.id in (select
tblDVPhoihop.congviec_id from tblDVPhoihop, tblCongviec,tblDVCanbo
g,tblDVCanbo h where tblCongviec.sua is null and g.sua is null and h.sua is null and tblDVPhoihop.sua is null and tblDVPhoihop.dv_id=g.id and (g.id=" + donvichuquanid + " or g.dv_id=" + donvichuquanid + ") and tblDVPhoihop.congviec_id=tblCongviec.id and tblCongviec.dvxuly_id=h.id and (h.id<>" + donvichuquanid + " or h.id<>" + donvichuquanid + "))))";
strsql1 = "select a.id as id from tblCongviec a where a.sua is null and a.ngaykt is null and ((a.nguoigiao_id=" + userid + ") or (a.dvxuly_id =" + userid + ") or (a.dvxuly_id=" + donvichuquanid + ") or (a.dvxuly_id in (select id from tblDVCanbo where sua is null and dv_id=" + donvichuquanid + ") and a.loaiviec_id in (select loaiviec_id from tblCB_LV where sua is null and dv_id=" + userid + " and (ngaykt is null or ngaykt>'" + DateTime.Now.ToString() + "'))))";
strsql2 = "select a.id as id from tblCongviec a,tblDVPhoihop b where a.sua is null and b.sua is null and
a.id=b.congviec_id and (b.dv_id=" + userid + " or (b.dv_id in (select id from tblDVCanbo where sua is null and dv_id=" + donvichuquanid + ") and a.loaiviec_id in (select loaiviec_id from tblCB_LV where sua is null and dv_id=" + userid + " and (ngaykt is null or ngaykt>'" +
DateTime.Now.ToString() + "'))))"; break;
case "18":
strsql = " and a.ngaykt is null and a.id not in (select congviec_id from tblCongviec where congviec_id is not null and
null and dv_id = 136))) and (a.dvxuly_id=136 or dvxuly_id in (select id from tblDVCanbo where dv_id=136 and sua is null) " +
"or (a.id in (select
tblDVPhoihop.congviec_id from tblDVPhoihop, tblCongviec,tblDVCanbo
g,tblDVCanbo h where tblCongviec.sua is null and g.sua is null and h.sua is null and tblDVPhoihop.sua is null and tblDVPhoihop.dv_id=g.id and (g.id=" + donvichuquanid + " or g.dv_id=" + donvichuquanid + ") and tblDVPhoihop.congviec_id=tblCongviec.id and tblCongviec.dvxuly_id=h.id and (h.id<>" + donvichuquanid + " or h.id<>" + donvichuquanid + "))))";
strsql1 = "select a.id as id from tblCongviec a where a.sua is null and a.ngaykt is null and a.dvxuly_id=" + userid + "";
strsql2 = "select a.id as id from tblCongviec a,tblDVPhoihop b where a.sua is null and b.sua is null and
a.id=b.congviec_id and b.dv_id=" + userid + ""; break;
default:
strsql = " and a.ngaykt is null and ((a.dvxuly_id=" + this.Session["userid"].ToString() + ") or (a.id in (select congviec_id from tblDVPhoiHop where sua is null and dv_id=" +