Đề tài Quản lý công văn
ĐỐI TƯỢNG NGHIÊN CỨU VÀ SỰ CẦN THIẾT CỦA ĐỀ TÀI
Công tác quản lý, xử lý Công văn, Văn bản(VB) có vai trò rất quan trọng đối với
hoạt động của bất cứ tổ chức nào, vì nó có thể quyết định sự lớn mạnh, phát triển hay
kém phát triển của tổ chức đó. Việc tin học hoá trong công tác trên mang lại nhiều lợi
ích hơn so với quản lý thủ công. Quản lý, xử lý công văn đi, đến là một bài toán quan
trọng trong việc vận hành công tác trong một tổ chức.
Trường Đại học Trà Vinh(TVU) là trường Đại học công lập, là trung tâm đào tạo,
cung ứng nguồn lao động khoa học công nghệ cho khu vực nói chung và tỉnh Trà Vinh
nói riêng, nên việc ứng dụng Công nghệ Thông tin vào các hoạt động của nhà trường
là hết sức cần thiết.
Xuất phát từ những vấn đề trên chúng tôi đưa ra hướng giải pháp để khắc phục và
nhằm hạn chế mức tối thiểu các khoảng thời gian và chi phí trên bằng cách áp dụng
việc quản lý công văn trên hệ thống Website nhằm đáp ứng nhu cầu điều hành hoạt
động của nhà trường thông qua hệ thống trực tuyến.
Với Website “Quản lý Công văn” sẽ làm tăng tính hiệu quả trong việc quản lý và
điều hành công việc của Nhà trường, tiết kiệm chi phí văn phòng phẩm hàng năm cho
việc in ấn, sao lưu, chuyển công văn.
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Trang 10
Tải về để xem bản đầy đủ
Tóm tắt nội dung tài liệu: Đề tài Quản lý công văn
TRƯỜNG ĐẠI HỌC TRÀ VINH KHOA KỸ THUẬT VÀ CÔNG NGHỆ BÁO CÁO TỔNG KẾT ĐỀ TÀI KHOA HỌC VÀ CÔNG NGHỆ CẤP TRƯỜNG TÊN ĐỀ TÀI QUẢN LÝ CÔNG VĂN CHỦ NHIỆM ĐỀ TÀI: KS. LÊ VĂN PHOL ĐƠN VỊ: PHÒNG QUẢN TRỊ THIẾT BỊ Trà Vinh, ngày 13 tháng 04 năm 2012 TRƯỜNG ĐẠI HỌC TRÀ VINH KHOA KỸ THUẬT VÀ CÔNG NGHỆ BÁO CÁO TỔNG KẾT ĐỀ TÀI KHOA HỌC VÀ CÔNG NGHỆ CẤP TRƯỜNG TÊN ĐỀ TÀI QUẢN LÝ CÔNG VĂN Xác nhận của cơ quan chủ trì Chủ nhiệm đề tài (ký tên và đóng dấu) (ký tên, họ tên) LÊ VĂN PHOL Trà Vinh, ngày 13 tháng 04 năm 2012 i MỤC LỤC CHƯƠNG I. TỔNG QUAN CỦA ĐỀ TÀI ............................................................... 1 1.1. ĐỐI TƯỢNG NGHIÊN CỨU VÀ SỰ CẦN THIẾT CỦA ĐỀ TÀI .......................1 1.2. TÌNH HÌNH NGHIÊN CỨU TRONG VÀ NGOÀI NƯỚC .....................................1 1.3. MỤC TIÊU CỦA ĐỀ TÀI ..................................................................................................2 1.4. NỘI DUNG NGHIÊN CỨU ...............................................................................................2 1.5. QUY TRÌNH THỰC HIỆN ................................................................................................2 1.6. PHƯƠNG PHÁP THỰC HIỆN .........................................................................................3 Nghiên cứu quy ..........................................................................................................................3 Quy trình xử lý ...........................................................................................................................3 Thiết kế CSDL ...........................................................................................................................3 Thiết kế giao diện hệ thống ....................................................................................................3 Nghiên cứu Hệ quản trị CSDL MySQL và công nghệ CakePHP để xây dựng hệ thống .............................................................................................................................................4 Đưa vào dùng thử và ................................................................................................................4 Tiến hành tập huấn sử ..............................................................................................................4 Báo cáo kết ..................................................................................................................................4 CHƯƠNG II. PHƯƠNG PHÁP VÀ KỸ THUẬT THỰC HIỆN .............................. 5 2.1 CÔNG NGHỆ THỰC HIỆN ...............................................................................................5 2.1.1 Hệ quản trị CSDL MySQL ...............................................................................................5 2.1.2 Công nghệ CakePHP ..........................................................................................................7 2.2 MÔ HÌNH TƯƠNG TÁC HỆ THỐNG............................................................................8 2.2.1 Sơ đồ Usecase .......................................................................................................................8 2.2.2 Mô hình quan niệm (CDM) .............................................................................................9 2.2.3 Mô hình Luận lý( LDM) ................................................................................................ 11 2.2.4 Các mô hình xử lý ........................................................................................................... 13 a. Mô hình xử lý tiếp nhận công văn đến .................................................................. 13 b. Mô hình tạo mới công việc và điều chuyển xử lý ................................................. 14 c. Mô hình xử lý công việc ....................................................................................... 15 d. Mô hình xử lý công văn chờ duyệt (Ký duyệt công văn) ..................................... 16 2.3 HỆ THỐNG CSDL .............................................................................................................. 17 ii 2.3.1 Phân hệ quản lý công văn, VB ...................................................................................... 17 nhom_van_ban ...................................................................................................... 17 do_khan ................................................................................................................. 17 do_mat ................................................................................................................... 17 loai_van_ban ......................................................................................................... 17 linh_vuc_van_ban ................................................................................................. 17 van_ban .................... ... a gõ tên người cần trình ký. 6) Chọn đệ trình để hoàn tất việc trình ký duyệt một công văn. Thông báo: Đã trình ký công văn thành công. Đạt 11 Duyệt công 1) Chọn liên kết công văn trong danh Thông báo: Đạt BÁO CÁO ĐỀ TÀI NGHIÊN CỨU KHOA HỌC 68 văn được trình ký sách liên kết. 2) Chọn tiếp liên kết công văn chờ duyệt. 3) Chọn nút tùy chọn. 4) Trong thực đơn tùy chọn ta duyệt công văn. 5) Trong ô nội dung duyệt, ta gõ nội dung xử lý vào. 6) Chọn duyệt để hoàn tất việc ký duyệt một công văn. Đã duyệt VB. 12 Điều chuyển công văn đã duyệt 1) Chọn liên kết công văn lưu trữ trong danh sách liên kết. 2) Chọn tiếp liên kết công văn đến hoặc đi. 3) Chọn nút tùy chọn. 4) Trong thực đơn tùy chọn ta điều chuyển. 5) Chọn đơn vị hoặc cá nhân cần điều chuyển bằng cách gõ vào tên tương ứng với ô nhập liệu. 6) Chọn nút chuyển đi để hoàn tất việc chuyển công văn. Thông báo: Đã chuyển công văn thành công. Đạt 13 Công bố công văn 1) Chọn liên kết công văn lưu trữ trong danh sách liên kết. 2) Chọn tiếp liên kết công văn đến hoặc đi. 3) Chọn nút tùy chọn. 4) Trong thực đơn tùy chọn ta công bố. 5) Chọn nút công bố để hoàn tất. Thông báo: Đã công bố VB. Đạt 14 Phân quyền cho công văn 1) Chọn liên kết công văn lưu trữ trong danh sách liên kết. 2) Chọn tiếp liên kết công văn đến hoặc đi. 3) Vào chi tiết công văn cần phân quyền. 4) Chọn liên kết phân quyền. 5) Ở mục người nhận đánh dấu vào các quyền tương ứng với tên người nhận công văn. 6) Chọn nút cập nhật để hoàn tất việc phân quyền công văn. Thông báo: Đã cập nhật thành công. Đạt BÁO CÁO ĐỀ TÀI NGHIÊN CỨU KHOA HỌC 69 PHỤ LỤC 4: CÔNG NGHỆ CAKEPHP 1. Giới thiệu về CakePHP Theo CakePHP là một framework cho PHP, mục đích của nó là cung cấp một framework cho người sử dụng PHP phát triển những ứng dụng web nhanh, mạnh mà không mất tính linh hoạt của nó. Việc viết web trở nên đơn giản và nhanh hơn rất nhiều so với cách viết truyền thông bằng việc dựa trên các thư viện, lớp có sẵn thêm vào đó nó cũng hổ trợ Ajax, Javascript và CSS. Và điều quan trọng là CakePHP là miễn phí.Trang chủ CakePHP: Để sử dụng nó, yêu cầu người làm phải biết những kiến thức cơ bản về PHP và HTML, ... Có thể đọc tài liệu chi tiết về nội dung cũng như ví dụ của CakePHP tại Tải về CakePHP framwork CakePHP được lưu trữ tại GitHUB: https://github.com/CakePHP/CakePHP/zipball/master. 2. Cài đặt và cấu hình CakePHP 2.1 Cài đặt Để sử dụng CakePHP, cần phải đáp ứng những yêu cầu sau: ▪ Một HTTP Server (ví dụ như Apache, IIS) ▪ CakePHP chỉ support trong PHP ver 4 trở lên. ▪ Database: CakePHP hổ trợ các hệ cơ sở dữ liệu sau: MySql, PostgreSQL. Có thể sử dụng "AppServ Version 2.5.7 for Windows" gồm ▪ Apache Web Server Version 2.2.3 ▪ PHP Script Language Version 5.1.6 ▪ MySQL Database Version 5.0.24a ▪ PHPMyAdmin Database Manager Version 2.9.0.2 BÁO CÁO ĐỀ TÀI NGHIÊN CỨU KHOA HỌC 70 Sau khi download CakePHP về ta extract ra (.zip) và copy vào thư mục chứa Apache Server (vd: C:\AppServ\www\MyCake). VD: /MyCake /app /cake /vendors .htaccess index.PHP 2.2 Cấu hình Để cake có thể làm việc được với database, cần cấu hình lại trang database.PHP, mặc định trang này không có, để cấu hình ta làm như sau: Mở file database.PHP.default ở /app/config và Save As lại thành file database.PHP. Điều chỉnh lại các thông số: var $default = array('driver' => 'mysql', 'connect' => 'mysql_connect', 'host' => 'localhost', 'login' => 'user', 'password' => 'password', 'database' => 'project_name', 'prefix' => ); Với user, password, database lần lượt là: tên user, password và database ở trong MySql Quy ước về đặt tên bảng trong database ▪ Tên bảng trong cake nên ở dạng tiếng Anh số nhiều (ví dụ: users, customers, students, ...); BÁO CÁO ĐỀ TÀI NGHIÊN CỨU KHOA HỌC 71 ▪ Bảng phải có khoá chính tên là 'id' là trường kiểu int, tự động tăng theo chuẩn của CakePHP quy định; ▪ Nếu có sử dụng quan hệ trong các bảng ví dụ: user_id (user không có s và dấu _ cộng id). 2.3 Chạy thử Tôi sẽ nói đến tính năng, cũng như mô hình hoạt động của CakePHP, cách viết một web application bằng CakePHP tôi sẽ nói dần với các bạn qua ví dụ: Sau khi cài đặt và cấu hình CakePHP, kiểm tra CakePHP đã setup chưa, bạn kiểm tra thử bằng cách mở trình duyệt lên gõ bạn sẽ thấy giao diện như sau Cần chú ý đến 2 dòng ▪ Your database configuration file is present. ▪ Cake is able to connect to the database. Xác định xem bạn đã kết nối được Cake với database của bạn hay chưa. 3. Kiến trúc hoạt động BÁO CÁO ĐỀ TÀI NGHIÊN CỨU KHOA HỌC 72 Như đã giới thiệu CakePHP là một framework, nó hoạt động theo kiến trúc MVC (Model, View, Control). Trong Cake Model được thể hiện là một bảng dữ liệu, lưu trữ dữ liệu theo như các quy tắc mà Cake định nghĩa theo mặc định hoặc theo người phát triển tự định nghĩa (chúng ta sẽ nói tính hợp lệ của dữ liệu qua phần Validate dữ liệu). View thể hiện các giao diện với code có thể là html và PHP. Controller sẽ thực hiện các yêu cầu từ server (ví dụ như buộc người dùng nhập dữ liệu vào input text), và sử dụng các Model để đọc, viết, hoặc thay đổi dữ liệu trong database và gởi dữ liệu đã được xử lý đến View. 3.1 Model Model đại diện cho dữ liệu và được sử dụng trong ứng dụng CakePHP để truy cập dữ liệu. Một Model thường đại diện cho một bảng cơ sở dữ liệu nhưng có thể được sử dụng để truy cập bất cứ điều gì dùng để lưu trữ dữ liệu như các tập tin, hồ sơ LDAP, các sự kiện iCal, hoặc các hàng trong một tập tin CSV. Một Model có thể được liên kết với các Model khác. Ví dụ, Sách có thể được liên kết với các Tác giả của sách cũng như các thành phần trong sách. 3.2 Controller Controller được sử dụng để quản lý logic cho một phần của ứng dụng của bạn.Thông thường nhất, controller được sử dụng để quản lý logic cho một model đơn lẻ . Ví dụ, nếu bạn đã xây dựng một trang web cho một tiệm bánh trực tuyến, bạn có thể có một RecipesController và IngredientsController quản lý công thức nấu ăn của bạn và các nguyên liệu của nó. Trong CakePHP, bộ điều khiển được đặt tên theo model chúng xử lý, dưới hình thức số nhiều. model Recipe được xử lý bởi RecipesController, model Product được xử lý bởi ProductsController, và vân vân. Ứng dụng của controller là các lớp mở rộng các lớp CakePHP AppController, từ đó mở rộng một Controller class cốt lõi, đó là một phần của thư viện CakePHP. Lớp AppController có thể được định nghĩa trong / app / app_controller.PHP và nó chứa các phương thức được chia sẻ giữa tất cả các controller trong ứng dụng của bạn. BÁO CÁO ĐỀ TÀI NGHIÊN CỨU KHOA HỌC 73 Controllers có thể bao gồm bất kỳ số lượng các phương thức thường được gọi là hành động. Hành động là phương thức điều khiển sử dụng để hiển thị views. Một hành động là một phương thức duy nhất của một controller. dispatcher của CakePHP gọi hành động khi một yêu cầu đến phù hợp với một URL để hành động của một bộ điều khiển (tham khảo "Cấu hình Routes" để giải thích về cách thức điều khiển hành động và các thông số được ánh xạ từ địa chỉ URL). 3.3 View Views là V trong MVC. Views được chịu trách nhiệm để tạo ra kết xuất cụ thể cần thiết cho yêu cầu. Thường thì điều này có ở dạng của HTML, XML, hoặc JSON, nhưng streaming các tập tin và tạo ra của PDF mà người dùng có thể tải về cũng là trách nhiệm của lớp View. CakePHP đi kèm với một số được xây dựng trong các lớp View để xử lý các kịch bản dựng phổ biến nhất: • Để tạo các webservices XML hoặc JSON, bạn có thể sử dụng JSON và XML views. • Để phục vụ các tập tin được bảo vệ, hoặc các tập tin tự động tạo ra, bạn có thể sử dụng Media Views • Để tạo ra nhiều giao diện theo chủ đề, bạn có thể sử dụng Themes 3.4 Components Trong những trường hợp vì một lý do nào đó ta không thể viết được các hàm trong controller, thì components sẽ giúp chúng ta giải quyết được vấn để đó, và đó cũng chính là một đặc tính rất hữu ích cho các nhà phát triển trong việc kế thừa các function từ các nguồn khác. Các files component được lưu giữ ở thư mục app/controllers/components/. Ví dụ ta tạo một file component tên là cpn.PHP, nội dung trang components đó sẽ tương tự như sau: class CpnComponent extends Object BÁO CÁO ĐỀ TÀI NGHIÊN CỨU KHOA HỌC 74 { var $comp = null; var $controller = true; function startup(&$controller) { // controller initialization here. } function doComp() { $this->comp = 'cpn'; } } Phương thức startup() sẽ tham chiếu đến controller mà đang sử dụng nó. Hàm startup() Dispatcher trong suốt quá trình load CakePHP. Nó là một contructor cho phép components truy xuất đến controller đó. Để sử dụng components đó các bạn phải khai báo biến $components trong controller và gán giá trị cho nó chính là tên components. Ví dụ trong ví dụ về quản lý Customer bạn muốn sử dụng components cpn.PHP trong CustomersComtroller thì đoạn code như sau <?PHP class CustomersController extends AppController{ var $name = 'Customers'; var $components = array('cpn'); ... } ?> BÁO CÁO ĐỀ TÀI NGHIÊN CỨU KHOA HỌC 75 Và trong controller đó ta muốn sử dụng hàm doComp() trong components thì viết như sau: $this->Cpn->doComp();. Một ví dụ khác, nếu ai đã từng dùng json (nó là một lớp gồm các hàm để chuyển đổi định dạng dữ liệu bao gồm các phương thức chuyển đổi như encode(), decode(), ...) để sử dụng nó trong các ứng dụng, ta cũng khai báo như trên var $components = array(‘json’);và đặt nó trong controller mà muốn sử dụng. 3.5 Helper Helper cung cấp các hàm để chúng ta định dạng và thể hiện dữ liệu ở trong View giúp cho các developer viết ứng dụng nhanh hơn trong việc thiết kế các web form. Helper được sử dụng phổ biến và nhiều nhất là HTML helper, nó được sử dụng thông qua đối tượng $html. Hầu hết các hàm trong HTML helper đều định nghĩa các thẻ HTML chuẩn được chúng ta hay sử dụng. Trong ví dụ trên trong add view (add.html) các bạn có thể thấy được cách sử dụng helper trong việc xuất ra một input text để người dùng nhập dữ liệu. $html->input('Customer.name',array('size'=>'20', 'maxlength'=>'255'));. Tiếp đến là Javascript Helper và các Ajax, Number, Text, Time, Cache helper. 3.6 Plugins Việc phát triển ứng dụng không phải lúc nào cũng hoàn chỉnh, và việc cập nhật, sữa chữa, thêm bớt chức năng là cần thiết. CakePHP cho phép bạn thiết lập một sự kết hợp với các controller, các model, và các view và phát hành như là một plugin ứng dụng được đóng gói mà người khác có thể sử dụng trong các ứng dụng CakePHP của họ. Mối quan hệ chính giữa một plugin và các ứng dụng đã được cài đặt sẵn là cấu hình của ứng dụng (kết nối cơ sở dữ liệu, vv). Nếu không, nó hoạt động trong không gian nhỏ của riêng mình, hành xử nhiều giống như nó sẽ thể nó là một ứng dụng riêng của nó. BÁO CÁO ĐỀ TÀI NGHIÊN CỨU KHOA HỌC 76 3.7 Access Controller Lists Access Controller Lists (ACL) quản lý quyền ứng dụng rất chuẩn theo khuynh hướng dễ duy trì và quản lý. ACL định nghĩa 2 thuật ngữ AROs và ACOs như sau: ▪ AROs: là những đối tượng cần truy xuất đến ACOs, thường là User. ▪ ACOs: là những đối tượng mà AROs yêu cầu, thường là những action hoặc là dữ liệu. ACL sẽ quyết định việc AROs truy xuất đến ACOs. ACL sử dụng 2 phương thức để thiết lập quyền: ▪ Dựa trên file được lưu trên /app/config/acl.ini.PHP ▪ Dựa trên database. Việc chúng ta xác định dùng phương thưc nào có thể được chỉ định trong file /app/config/core.PHP. Mặc định cake sử dụng phương thức database (khuyến cáo người sử dụng dùng phương thức này). Chúng ta có thể thấy cake định nghĩa phương thức thiết lập quyền trong file core như sau define('ACL_CLASSNAME', 'DB_ACL'); define('ACL_FILENAME', 'dbacl' . DS . 'db_acl'); Nếu chúng ta muốn sử dụng phương thức sử dụng file lưu trữ acl.ini.PHP thì sữa lại giá trị hằng ACL_CLASSNAME và ACL_FILENAME define('ACL_CLASSNAME', 'INI_ACL'); define('ACL_FILENAME', 'ini_acl' . DS . 'ini_acl'); Tiếp theo chúng ta sẽ tìm hiểu ACL tạo các đối tượng AROs và ACOs như thế nào. Nhưng trước hết ta tìm hiểu xem ACL lưu trữ các aros và acos đó bằng cách nào: Vâng, đó là lưu trữ theo cấu trúc cây, theo phương thức MPTT (Modified Preorder Tree Traversal). Để các bạn dễ hình dung tôi đưa ra ví dụ sau: Dùng ACL để xác thực quyền của người dùng trong việc truy xuất đến dữ liệu và các phương thức. Giả sử BÁO CÁO ĐỀ TÀI NGHIÊN CỨU KHOA HỌC 77 việc phân quyền ta chia ra làm các nhóm như sau (AROs): Quyền cao nhất là Super Admin, tiếp đến ta phân quyền Super Admin đó thành 2 group cấp nhỏ hơn là Admin1 và Admin2, trong group Admin1 ta có thêm 2 group nhỏ hơn là Group1 và Group2, tương tự trong group Admin2 có group nhỏ hơn là Guest. Để rõ hơn các bạn nhìn hình sau: Tương tự là cấu trúc cây của ACOs gồm các phương thức ta tạm gọi là Member (root), User và Anonymous Mặc định ACL deny tất cả các quyền của root, như vậy thì mặc định tất cả các group trên cây sẽ không có quyền nào để truy cập đến các phương thức, dữ liệu. Việc lưu các đối tượng theo dạng cây có một ưu điểm là rất trực quan. Để hiểu rõ hơn, tôi lấy ví dụ cụ thể như sau: Ta cho phép group Super Admin có quyền truy xuất đến tất cả các phương thức và dữ liệu của Member. Thì khi đó tất cả các group con của nó cũng có quyền tương tự, nếu ta muốn cấm (deny) group Admin1 không được truy xuất đến ACOs User thì ta chỉ việc deny Admin1 truy xuất đến User. BÁO CÁO ĐỀ TÀI NGHIÊN CỨU KHOA HỌC 78 Cụ thể: SuperAdmin (allow all)->Admin1 (deny User)->deny Admin1, Group1, Group2 truy xuất đến User. Trước khi làm ví dụ kiểm chứng trên ta tìm hiểu cách tạo các đối tượng AROs, ACOs của Cake. Cake đã định nghĩa các đối tượng Aro và Aco, ta chỉ việc khởi tạo đối tượng bởi từ khóa new. $aro = new Aro(); $aco = new Aco(); Và dùng phương thức create($user_id, $parent_id, $alias) để khởi tạo các thuộc tính cho các đối tượng ARO và create($id, $parent, $alias) để khởi tạo các thuộc tính cho các đối tượng ACO. Sử dụng phương thức setParent(parent,child) để set đối tượng con là thuộc đối tượng cha nào. BÁO CÁO ĐỀ TÀI NGHIÊN CỨU KHOA HỌC 79 TÀI LIỆU THAM KHẢO 1. Khuất Thùy Phương, 2005, Lập trình ứng dụng Web với PHP Tập 1,2 Nhà xuất bản Đại học Quốc Gia TP Hồ Chí Minh. 2. Phạm Thị Xuân Lộc, 2009, Giáo trình Phân tích hệ thống hướng đối tượng, Khoa Công nghệ Thông tin Trường Đại học Cần Thơ. 3. Ahsanul Bari, Anupom Syam , 2008, CakePHP Application Development. 4. Kai Chan and John Omokoro wih Richard K. MillerPractical, 2009, CakePHP Procjects. 5. Quy trình Quản lý công văn của Tổ văn thư thuộc Phòng Hành chánh – Tổ chức, Trường Đại học Trà Vinh 6. Các trang web đã tham khảo: - - - - -
File đính kèm:
- de_tai_quan_ly_cong_van.pdf