diff --git a/database/db_qlcb (1).sql b/database/db_qlcb (1).sql new file mode 100644 index 0000000..397a6a0 --- /dev/null +++ b/database/db_qlcb (1).sql @@ -0,0 +1,280 @@ +-- phpMyAdmin SQL Dump +-- version 5.2.0 +-- https://www.phpmyadmin.net/ +-- +-- Máy chủ: 127.0.0.1 +-- Thời gian đã tạo: Th6 26, 2022 lúc 05:17 PM +-- Phiên bản máy phục vụ: 10.4.24-MariaDB +-- Phiên bản PHP: 8.1.6 + +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +START TRANSACTION; +SET time_zone = "+00:00"; + + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; + +-- +-- Cơ sở dữ liệu: `db_qlcb` +-- + +-- -------------------------------------------------------- + +-- +-- Cấu trúc bảng cho bảng `tbl_canbo` +-- + +CREATE TABLE `tbl_canbo` ( + `macb` int(11) NOT NULL, + `tencb` varchar(50) COLLATE utf8mb4_vietnamese_ci NOT NULL, + `namsinh` int(11) NOT NULL, + `gioitinh` varchar(10) COLLATE utf8mb4_vietnamese_ci NOT NULL, + `diachi` varchar(100) COLLATE utf8mb4_vietnamese_ci NOT NULL, + `manghe` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_vietnamese_ci; + +-- +-- Đang đổ dữ liệu cho bảng `tbl_canbo` +-- + +INSERT INTO `tbl_canbo` (`macb`, `tencb`, `namsinh`, `gioitinh`, `diachi`, `manghe`) VALUES +(72, 'Đỗ Ngọc Đức', 2001, 'Nam', 'Hà Nam', 0), +(81, 'Trần Duy Khương', 2001, 'Nam', 'Hải Dương', 1), +(82, 'Trần Văn Công', 1998, 'Nữ', 'Hải Phòng', 1), +(83, 'Trần Thị Minh', 2006, 'Nữ', 'Hải Nam', 1), +(84, 'Trần Thành ', 1995, 'Nam', 'Quảng Bình', 3), +(85, 'Lê Thị Thơm', 2004, 'Nữ', 'Hà Giang', 3), +(86, 'Nguyễn Tiến Long', 1997, 'Nam', 'Nghệ An', 3), +(87, 'Trịnh Văn Sơn', 1995, 'Nam', 'Thanh Hóa', 2), +(88, 'Đỗ Ngọc Đức', 2001, 'Nam', 'Hà Nam', 2), +(89, 'Trần Tiến Công', 1997, 'Nam', 'Cà Mau', 1), +(90, 'Lương Văn Sơn', 1997, 'Nam', 'Quảng Ninh', 2), +(91, 'Phạm Thế Hùng', 2009, 'Nam', 'Ninh Bình', 3), +(92, 'Nguyễn Văn Dương', 2001, 'Nam', 'Hà Nam', 2), +(93, 'Hoàng Trịnh Trọng', 2000, 'Nam', 'Thanh Hóa', 1); + +-- -------------------------------------------------------- + +-- +-- Cấu trúc bảng cho bảng `tbl_congnhan` +-- + +CREATE TABLE `tbl_congnhan` ( + `macn` int(11) NOT NULL, + `bac` int(10) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_vietnamese_ci; + +-- +-- Đang đổ dữ liệu cho bảng `tbl_congnhan` +-- + +INSERT INTO `tbl_congnhan` (`macn`, `bac`) VALUES +(81, 9), +(82, 6), +(83, 10), +(89, 9), +(93, 7); + +-- -------------------------------------------------------- + +-- +-- Cấu trúc bảng cho bảng `tbl_kysu` +-- + +CREATE TABLE `tbl_kysu` ( + `maks` int(11) NOT NULL, + `nganhdt` varchar(100) COLLATE utf8mb4_vietnamese_ci NOT NULL, + `loaibang` varchar(100) COLLATE utf8mb4_vietnamese_ci NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_vietnamese_ci; + +-- +-- Đang đổ dữ liệu cho bảng `tbl_kysu` +-- + +INSERT INTO `tbl_kysu` (`maks`, `nganhdt`, `loaibang`) VALUES +(87, 'CNTT', 'Giỏi'), +(88, 'Tự động hóa', 'Giỏi'), +(90, 'Cơ điện tử', 'Khá'), +(92, 'CNTT', 'Giỏi'); + +-- -------------------------------------------------------- + +-- +-- Cấu trúc bảng cho bảng `tbl_nghe` +-- + +CREATE TABLE `tbl_nghe` ( + `manghe` int(11) NOT NULL, + `tennghe` varchar(100) COLLATE utf8mb4_vietnamese_ci NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_vietnamese_ci; + +-- +-- Đang đổ dữ liệu cho bảng `tbl_nghe` +-- + +INSERT INTO `tbl_nghe` (`manghe`, `tennghe`) VALUES +(0, 'Quản trị viên'), +(1, 'Công Nhân'), +(2, 'Kỹ Sư'), +(3, 'Nhân Viên'); + +-- -------------------------------------------------------- + +-- +-- Cấu trúc bảng cho bảng `tbl_nhanvien` +-- + +CREATE TABLE `tbl_nhanvien` ( + `manv` int(11) NOT NULL, + `congviec` varchar(100) COLLATE utf8mb4_vietnamese_ci NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_vietnamese_ci; + +-- +-- Đang đổ dữ liệu cho bảng `tbl_nhanvien` +-- + +INSERT INTO `tbl_nhanvien` (`manv`, `congviec`) VALUES +(84, 'Phục vụ'), +(85, 'Phụ bếp'), +(86, 'Đầu bếp'), +(91, 'Quản lý'); + +-- -------------------------------------------------------- + +-- +-- Cấu trúc bảng cho bảng `tbl_taikhoan` +-- + +CREATE TABLE `tbl_taikhoan` ( + `id` int(11) NOT NULL, + `username` varchar(30) COLLATE utf8mb4_vietnamese_ci NOT NULL, + `password` varchar(100) COLLATE utf8mb4_vietnamese_ci NOT NULL, + `macb` int(11) NOT NULL, + `quyen` int(3) NOT NULL, + `trangthai` text COLLATE utf8mb4_vietnamese_ci NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_vietnamese_ci; + +-- +-- Đang đổ dữ liệu cho bảng `tbl_taikhoan` +-- + +INSERT INTO `tbl_taikhoan` (`id`, `username`, `password`, `macb`, `quyen`, `trangthai`) VALUES +(12, 'ducdn', 'admin@123', 72, 0, 'Đang hoạt động'), +(14, 'tranduykhuong', '76797943', 81, 1, 'Đang hoạt động'), +(15, 'tranvancong', '5742266', 82, 1, 'Đang hoạt động'), +(16, 'tranthiminh', '40446294', 83, 0, 'Vô hiệu hóa'), +(17, 'tranthanh', '3926818', 84, 0, 'Đang hoạt động'), +(18, 'lethithom', '41433794', 85, 1, 'Đang hoạt động'), +(19, 'nguyentienlong', 'long2001@', 86, 0, 'Đang hoạt động'), +(21, 'dongocduc', '11405031', 88, 1, 'Đang hoạt động'), +(22, 'trantiencong', '64423393', 89, 1, 'Đang hoạt động'), +(23, 'luongvanson', 'son2001@', 90, 1, 'Đang hoạt động'), +(24, 'phamthehung', '80902513', 91, 1, 'Đang hoạt động'), +(25, 'nguyenvanduong', '14878199', 92, 1, 'Đang hoạt động'), +(26, 'hoangtrinhtrong', '64539800', 93, 0, 'Đang hoạt động'); + +-- +-- Chỉ mục cho các bảng đã đổ +-- + +-- +-- Chỉ mục cho bảng `tbl_canbo` +-- +ALTER TABLE `tbl_canbo` + ADD PRIMARY KEY (`macb`), + ADD KEY `fk_nghe` (`manghe`); + +-- +-- Chỉ mục cho bảng `tbl_congnhan` +-- +ALTER TABLE `tbl_congnhan` + ADD PRIMARY KEY (`macn`); + +-- +-- Chỉ mục cho bảng `tbl_kysu` +-- +ALTER TABLE `tbl_kysu` + ADD PRIMARY KEY (`maks`); + +-- +-- Chỉ mục cho bảng `tbl_nghe` +-- +ALTER TABLE `tbl_nghe` + ADD PRIMARY KEY (`manghe`); + +-- +-- Chỉ mục cho bảng `tbl_nhanvien` +-- +ALTER TABLE `tbl_nhanvien` + ADD PRIMARY KEY (`manv`); + +-- +-- Chỉ mục cho bảng `tbl_taikhoan` +-- +ALTER TABLE `tbl_taikhoan` + ADD PRIMARY KEY (`id`), + ADD KEY `fk_tk` (`macb`); + +-- +-- AUTO_INCREMENT cho các bảng đã đổ +-- + +-- +-- AUTO_INCREMENT cho bảng `tbl_canbo` +-- +ALTER TABLE `tbl_canbo` + MODIFY `macb` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=94; + +-- +-- AUTO_INCREMENT cho bảng `tbl_nghe` +-- +ALTER TABLE `tbl_nghe` + MODIFY `manghe` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7; + +-- +-- AUTO_INCREMENT cho bảng `tbl_taikhoan` +-- +ALTER TABLE `tbl_taikhoan` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=27; + +-- +-- Các ràng buộc cho các bảng đã đổ +-- + +-- +-- Các ràng buộc cho bảng `tbl_canbo` +-- +ALTER TABLE `tbl_canbo` + ADD CONSTRAINT `fk_nghe` FOREIGN KEY (`manghe`) REFERENCES `tbl_nghe` (`manghe`) ON DELETE CASCADE ON UPDATE CASCADE; + +-- +-- Các ràng buộc cho bảng `tbl_congnhan` +-- +ALTER TABLE `tbl_congnhan` + ADD CONSTRAINT `fk_macn` FOREIGN KEY (`macn`) REFERENCES `tbl_canbo` (`macb`) ON DELETE CASCADE ON UPDATE CASCADE; + +-- +-- Các ràng buộc cho bảng `tbl_kysu` +-- +ALTER TABLE `tbl_kysu` + ADD CONSTRAINT `fk_maks` FOREIGN KEY (`maks`) REFERENCES `tbl_canbo` (`macb`) ON DELETE CASCADE ON UPDATE CASCADE; + +-- +-- Các ràng buộc cho bảng `tbl_nhanvien` +-- +ALTER TABLE `tbl_nhanvien` + ADD CONSTRAINT `fk_manv` FOREIGN KEY (`manv`) REFERENCES `tbl_canbo` (`macb`) ON DELETE CASCADE ON UPDATE CASCADE; + +-- +-- Các ràng buộc cho bảng `tbl_taikhoan` +-- +ALTER TABLE `tbl_taikhoan` + ADD CONSTRAINT `fk_tk` FOREIGN KEY (`macb`) REFERENCES `tbl_canbo` (`macb`) ON DELETE CASCADE ON UPDATE CASCADE; +COMMIT; + +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; diff --git a/jaexel/employee.xls b/jaexel/employee.xls new file mode 100644 index 0000000..8e237b0 Binary files /dev/null and b/jaexel/employee.xls differ diff --git a/jaexel/engineer.xls b/jaexel/engineer.xls new file mode 100644 index 0000000..9bf4cd5 Binary files /dev/null and b/jaexel/engineer.xls differ diff --git a/jaexel/worker.xls b/jaexel/worker.xls new file mode 100644 index 0000000..f66fa7f Binary files /dev/null and b/jaexel/worker.xls differ diff --git a/pom.xml b/pom.xml index 7c7198c..0e38a53 100644 --- a/pom.xml +++ b/pom.xml @@ -21,5 +21,23 @@ AbsoluteLayout RELEASE126 + + + org.apache.poi + poi + 3.17 + + + + org.apache.poi + poi-ooxml + 3.17 + + + + commons-codec + commons-codec + 1.14 + \ No newline at end of file diff --git a/src/main/java/com/mycompany/qlcb/dao/CanBoDao.java b/src/main/java/com/mycompany/qlcb/dao/CanBoDao.java index 8387577..a0f5eaa 100644 --- a/src/main/java/com/mycompany/qlcb/dao/CanBoDao.java +++ b/src/main/java/com/mycompany/qlcb/dao/CanBoDao.java @@ -5,6 +5,7 @@ import com.mycompany.qlcb.model.Congnhan; import com.mycompany.qlcb.model.Kysu; import com.mycompany.qlcb.model.Nhanvien; +import com.mycompany.qlcb.model.TaiKhoan; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; @@ -19,8 +20,7 @@ public boolean insertCB(Canbo cb, int manghe) throws SQLException, Exception { + "values(?, ?, ?, ?, ?)"; try ( - Connection con = DatabaseHelper.openConnection(); - PreparedStatement pstmt = con.prepareStatement(sql);) { + Connection con = DatabaseHelper.openConnection(); PreparedStatement pstmt = con.prepareStatement(sql);) { pstmt.setString(1, cb.getTencb()); pstmt.setInt(2, cb.getNamsinh()); pstmt.setString(3, cb.getGioitinh()); @@ -36,9 +36,8 @@ public int getLastIdCB() throws SQLException, Exception { String sql = "SELECT macb FROM tbl_canbo ORDER BY macb DESC LIMIT 1;"; try ( - Connection con = DatabaseHelper.openConnection(); - PreparedStatement pstmt = con.prepareStatement(sql);) { - try (ResultSet rs = pstmt.executeQuery();) { + Connection con = DatabaseHelper.openConnection(); PreparedStatement pstmt = con.prepareStatement(sql);) { + try ( ResultSet rs = pstmt.executeQuery();) { if (rs.next()) { return rs.getInt("macb"); } @@ -55,8 +54,7 @@ public boolean insertTable(String table, int macb, String filed1, String filed2) String sql = "Insert into " + table + " values (?,?, ?)"; try ( - Connection con = DatabaseHelper.openConnection(); - PreparedStatement pstmt = con.prepareStatement(sql);) { + Connection con = DatabaseHelper.openConnection(); PreparedStatement pstmt = con.prepareStatement(sql);) { pstmt.setInt(1, macb); pstmt.setString(2, filed1); pstmt.setString(3, filed2); @@ -67,8 +65,7 @@ public boolean insertTable(String table, int macb, String filed1, String filed2) String sql = "Insert into " + table + " values (?,?)"; try ( - Connection con = DatabaseHelper.openConnection(); - PreparedStatement pstmt = con.prepareStatement(sql);) { + Connection con = DatabaseHelper.openConnection(); PreparedStatement pstmt = con.prepareStatement(sql);) { pstmt.setInt(1, macb); if (table.equalsIgnoreCase("tbl_congnhan")) { pstmt.setInt(2, Integer.parseInt(filed1)); @@ -80,25 +77,60 @@ public boolean insertTable(String table, int macb, String filed1, String filed2) } } - - - //Thêm tài khoản + + //Thêm tài khoản cào bản tài khoản public boolean insertTaiKhoan(String username, String password, int macb, int quyen) throws SQLException, Exception { - String sql = "Insert into tbl_taikhoan(username, password, macb, quyen) values (?,?,?,?)"; + String sql = "Insert into tbl_taikhoan(username, password, macb, quyen, trangthai) values (?,?,?,?,?)"; try ( - Connection con = DatabaseHelper.openConnection(); - PreparedStatement pstmt = con.prepareStatement(sql);) { + Connection con = DatabaseHelper.openConnection(); PreparedStatement pstmt = con.prepareStatement(sql);) { pstmt.setString(1, username); pstmt.setString(2, password); - pstmt.setInt(3, macb); - pstmt.setInt(4, quyen); - + pstmt.setInt(3, macb); + pstmt.setInt(4, quyen); + String status = "Đang hoạt động"; + pstmt.setString(5, status); + return pstmt.executeUpdate() > 0; + } + } + // Lấy thông tin tài khoản + public ArrayList getInfoAccount() throws SQLException, Exception { + String sql = "SELECT * FROM tbl_taikhoan"; + try ( + Connection con = DatabaseHelper.openConnection(); PreparedStatement pstmt = con.prepareStatement(sql);) { + try ( ResultSet rs = pstmt.executeQuery();) { + ArrayList listtk = new ArrayList(); + while (rs.next()) { + TaiKhoan tk = new TaiKhoan(); + tk.setMacb(rs.getInt("macb")); + tk.setUsername(rs.getString("username")); + tk.setQuyen(rs.getInt("quyen")); + tk.setTrangthai(rs.getString("trangthai")); + listtk.add(tk); + } + return listtk; } + + } } - - // Cập nhật thông tin + // Cập nhật thông tin tài khoản + public boolean update(TaiKhoan tk) throws SQLException, Exception { + + String sql = "update tbl_taikhoan set quyen = ?, trangthai = ? where macb = ?"; + + try ( + Connection con = DatabaseHelper.openConnection(); + PreparedStatement pstmt = con.prepareStatement(sql);) + { + pstmt.setInt(1, tk.getQuyen()); + pstmt.setString(2, tk.getTrangthai()); + pstmt.setInt(3, tk.getMacb()); + return pstmt.executeUpdate() > 0; + } + } + + // Cập nhật thông tin public void update(String table, Canbo cb, String filed1, String filed2) throws SQLException, Exception { if (table.equalsIgnoreCase("tbl_kysu")) { String sql = "update tbl_canbo, " + table + " set tencb = ?, " @@ -107,8 +139,7 @@ public void update(String table, Canbo cb, String filed1, String filed2) throws + "and macb = ?"; try ( - Connection con = DatabaseHelper.openConnection(); - PreparedStatement pstmt = con.prepareStatement(sql);) { + Connection con = DatabaseHelper.openConnection(); PreparedStatement pstmt = con.prepareStatement(sql);) { pstmt.setString(1, cb.getTencb()); pstmt.setInt(2, cb.getNamsinh()); pstmt.setString(3, cb.getGioitinh()); @@ -132,8 +163,7 @@ public void update(String table, Canbo cb, String filed1, String filed2) throws } try ( - Connection con = DatabaseHelper.openConnection(); - PreparedStatement pstmt = con.prepareStatement(sql);) { + Connection con = DatabaseHelper.openConnection(); PreparedStatement pstmt = con.prepareStatement(sql);) { pstmt.setString(1, cb.getTencb()); pstmt.setInt(2, cb.getNamsinh()); pstmt.setString(3, cb.getGioitinh()); @@ -151,8 +181,7 @@ public boolean delete(String table, String ma, int macb) throws SQLException, Ex + table + " on tbl_canbo.macb = " + table + "." + ma + " where tbl_canbo.macb = ?;"; try ( - Connection con = DatabaseHelper.openConnection(); - PreparedStatement pstmt = con.prepareStatement(sql);) { + Connection con = DatabaseHelper.openConnection(); PreparedStatement pstmt = con.prepareStatement(sql);) { pstmt.setInt(1, macb); return pstmt.executeUpdate() > 0; } @@ -163,9 +192,8 @@ public ArrayList getAllCanBo() throws SQLException, Exception { String sql = "select * from tbl_canbo inner join tbl_nghe on tbl_canbo.manghe = tbl_nghe.manghe"; try ( - Connection con = DatabaseHelper.openConnection(); - PreparedStatement pstmt = con.prepareStatement(sql);) { - try (ResultSet rs = pstmt.executeQuery();) { + Connection con = DatabaseHelper.openConnection(); PreparedStatement pstmt = con.prepareStatement(sql);) { + try ( ResultSet rs = pstmt.executeQuery();) { ArrayList listcb = new ArrayList(); while (rs.next()) { Canbo cb = new Canbo(); @@ -182,68 +210,81 @@ public ArrayList getAllCanBo() throws SQLException, Exception { } } } - + + public int[] getNumber() throws SQLException, Exception { + String sql = "SELECT count(macb) as 'soluong' FROM tbl_canbo group by manghe"; + int[] arr = new int[5]; + try ( + Connection con = DatabaseHelper.openConnection(); PreparedStatement pstmt = con.prepareStatement(sql);) { + try ( ResultSet rs = pstmt.executeQuery();) { + int i = 0; + while (rs.next()) { + arr[i] = rs.getInt("soluong"); + i++; + } + + } + return arr; + } + } + public Congnhan getDetailCn(int macb) throws SQLException, Exception { String sql = "SELECT * FROM tbl_canbo inner join tbl_congnhan on macb = macn where macb = " + macb; Congnhan cn; try ( - Connection con = DatabaseHelper.openConnection(); - PreparedStatement pstmt = con.prepareStatement(sql);) { - try (ResultSet rs = pstmt.executeQuery();) { + Connection con = DatabaseHelper.openConnection(); PreparedStatement pstmt = con.prepareStatement(sql);) { + try ( ResultSet rs = pstmt.executeQuery();) { if (rs.next()) { CongNhanDao dao = new CongNhanDao(); cn = dao.getDetailCongNhan(macb); return cn; } - + } } return null; } - - public Kysu getDetailKs(int macb) throws SQLException, Exception { + + public Kysu getDetailKs(int macb) throws SQLException, Exception { String sql = "SELECT * FROM tbl_canbo inner join tbl_kysu on macb = maks where macb = " + macb; Kysu ks; try ( - Connection con = DatabaseHelper.openConnection(); - PreparedStatement pstmt = con.prepareStatement(sql);) { - try (ResultSet rs = pstmt.executeQuery();) { + Connection con = DatabaseHelper.openConnection(); PreparedStatement pstmt = con.prepareStatement(sql);) { + try ( ResultSet rs = pstmt.executeQuery();) { if (rs.next()) { KySuDao dao = new KySuDao(); ks = dao.getDetailKySu(macb); return ks; } - + } } return null; } - - public Nhanvien getDetailcb(int macb) throws SQLException, Exception { + + public Nhanvien getDetailcb(int macb) throws SQLException, Exception { String sql = "SELECT * FROM tbl_canbo inner join tbl_nhacbien on macb = macb where macb = " + macb; Nhanvien cb; try ( - Connection con = DatabaseHelper.openConnection(); - PreparedStatement pstmt = con.prepareStatement(sql);) { - try (ResultSet rs = pstmt.executeQuery();) { + Connection con = DatabaseHelper.openConnection(); PreparedStatement pstmt = con.prepareStatement(sql);) { + try ( ResultSet rs = pstmt.executeQuery();) { if (rs.next()) { NhanVienDao dao = new NhanVienDao(); cb = dao.getDetailNhanVien(macb); return cb; } - + } } return null; } - + public int getManghe(int macb) throws SQLException, Exception { String sql = "select manghe from tbl_canbo where macb = " + macb; int manghe; try ( - Connection con = DatabaseHelper.openConnection(); - PreparedStatement pstmt = con.prepareStatement(sql);) { - try (ResultSet rs = pstmt.executeQuery();) { + Connection con = DatabaseHelper.openConnection(); PreparedStatement pstmt = con.prepareStatement(sql);) { + try ( ResultSet rs = pstmt.executeQuery();) { if (rs.next()) { manghe = rs.getInt("manghe"); return manghe; @@ -253,69 +294,65 @@ public int getManghe(int macb) throws SQLException, Exception { } return -1; } + // Lấy ra thông tin ngu?i dùng public Canbo getDataND(int maCB) throws SQLException, Exception { String sql = "SELECT * FROM tbl_canbo where macb = " + String.valueOf(maCB); try ( - Connection con = DatabaseHelper.openConnection(); - PreparedStatement pstmt = con.prepareStatement(sql);) { - try (ResultSet rs = pstmt.executeQuery();) { + Connection con = DatabaseHelper.openConnection(); PreparedStatement pstmt = con.prepareStatement(sql);) { + try ( ResultSet rs = pstmt.executeQuery();) { if (rs.next()) { - Canbo cb = new Canbo(); + Canbo cb = new Canbo(); cb.setMacb(maCB); - cb.setTencb(rs.getString("tencb")); + cb.setTencb(rs.getString("tencb")); cb.setNamsinh(rs.getInt("namsinh")); cb.setGioitinh(rs.getString("gioitinh")); cb.setDiachi(rs.getString("diachi")); - return cb; + return cb; } } } return null; } + //update cán bộ - public boolean update(String pw, int macb) throws SQLException, Exception { - + public boolean chagePassword(String pw, int macb) throws SQLException, Exception { + String sql = "update tbl_taikhoan SET password = ?" - + "where tbl_taikhoan.macb = ?"; - + + "where tbl_taikhoan.macb = ?"; + try ( - Connection con = DatabaseHelper.openConnection(); - PreparedStatement pstmt = con.prepareStatement(sql);) - { - pstmt.setString(1, pw); + Connection con = DatabaseHelper.openConnection(); PreparedStatement pstmt = con.prepareStatement(sql);) { + pstmt.setString(1, pw); pstmt.setInt(2, macb); return pstmt.executeUpdate() > 0; } } + //check password public boolean checkPw(String pw, int macb) throws SQLException, Exception { - + String sql = "select password form tbl_taikhoan where password = ? AND macb=?"; - + try ( - Connection con = DatabaseHelper.openConnection(); - PreparedStatement pstmt = con.prepareStatement(sql);) - { - pstmt.setString(1, pw); + Connection con = DatabaseHelper.openConnection(); PreparedStatement pstmt = con.prepareStatement(sql);) { + pstmt.setString(1, pw); pstmt.setInt(2, macb); return true; } } - + // cập nhật thông tin cơ bản ở panel người dùng public boolean update_general(Canbo cb) throws SQLException, Exception { - + String sql = "update tbl_canbo set tencb = ?, namsinh = ?, gioitinh = ?, diachi = ?" - + "where tbl_canbo.macb = ?"; - + + "where tbl_canbo.macb = ?"; + try ( - Connection con = DatabaseHelper.openConnection(); - PreparedStatement pstmt = con.prepareStatement(sql);) - { + Connection con = DatabaseHelper.openConnection(); PreparedStatement pstmt = con.prepareStatement(sql);) { pstmt.setString(1, cb.getTencb()); pstmt.setInt(2, cb.getNamsinh()); pstmt.setString(3, cb.getGioitinh()); @@ -324,4 +361,5 @@ public boolean update_general(Canbo cb) throws SQLException, Exception { return pstmt.executeUpdate() > 0; } } + } diff --git a/src/main/java/com/mycompany/qlcb/dao/CongNhanDao.java b/src/main/java/com/mycompany/qlcb/dao/CongNhanDao.java index 59c931b..86eb221 100644 --- a/src/main/java/com/mycompany/qlcb/dao/CongNhanDao.java +++ b/src/main/java/com/mycompany/qlcb/dao/CongNhanDao.java @@ -40,7 +40,7 @@ public ArrayList findCongnhan(String info) throws SQLException, Except String sql = "select * from tbl_canbo cb inner join " + "tbl_congnhan cn on cb.macb = cn.macn " + "where tencb like" + info + " or namsinh like" + info + " or gioitinh like " + info - + " or diachi like " + info + "or bac like " + info; + + " or diachi like " + info + "or bac like " + info + " or macb like " + info; try ( diff --git a/src/main/java/com/mycompany/qlcb/dao/KySuDao.java b/src/main/java/com/mycompany/qlcb/dao/KySuDao.java index 83b0261..c150ad1 100644 --- a/src/main/java/com/mycompany/qlcb/dao/KySuDao.java +++ b/src/main/java/com/mycompany/qlcb/dao/KySuDao.java @@ -50,7 +50,8 @@ public ArrayList findKysu(String info) throws SQLException, Exception { String sql = "select * from tbl_canbo cb inner join " + "tbl_kysu ks on cb.macb = ks.maks " + "where tencb like" + info + " or namsinh like" + info + " or gioitinh like " + info - + " or diachi like " + info + "or nganhdt like " + info + " or loaibang like " + info; + + " or diachi like " + info + "or nganhdt like " + info + " or loaibang like " + info + + " or macb like " + info; try ( diff --git a/src/main/java/com/mycompany/qlcb/dao/NguoiDungDao.java b/src/main/java/com/mycompany/qlcb/dao/NguoiDungDao.java index e0cec15..fa20913 100644 --- a/src/main/java/com/mycompany/qlcb/dao/NguoiDungDao.java +++ b/src/main/java/com/mycompany/qlcb/dao/NguoiDungDao.java @@ -1,48 +1,49 @@ package com.mycompany.qlcb.dao; import static com.mycompany.qlcb.helpers.DatabaseHelper.openConnection; +import com.mycompany.qlcb.helpers.MessageDialogHelper; import com.mycompany.qlcb.model.NguoiDung; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; - public class NguoiDungDao { + public NguoiDung checkLogin(String tenDangNhap, String matKhau) throws Exception { - String sql = "Select username, password,macb, quyen from tbl_taikhoan where username = ? and password = ?"; - try - ( - Connection con = openConnection(); - PreparedStatement pstmt = con.prepareStatement(sql); - ) - { + String sql = "Select username, password,macb, quyen, trangthai from tbl_taikhoan where username = ? and password = ?"; + try ( + Connection con = openConnection(); PreparedStatement pstmt = con.prepareStatement(sql);) { pstmt.setString(1, tenDangNhap); pstmt.setString(2, matKhau); - try(ResultSet rs = pstmt.executeQuery();) { + try ( ResultSet rs = pstmt.executeQuery();) { if (rs.next()) { - NguoiDung nd = new NguoiDung(); - nd.setTenDangNhap(tenDangNhap); - nd.setMaCB(rs.getInt("macb")); - int quyen = rs.getInt("quyen"); - if(quyen == 0){ - nd.setVaiTro("Quản trị viên"); - } - if(quyen == 1){ - nd.setVaiTro("Công nhân"); - } - if(quyen == 2){ - nd.setVaiTro("Kỹ sư"); + if (rs.getString("trangthai").equals("Đang hoạt động")) { + NguoiDung nd = new NguoiDung(); + nd.setTenDangNhap(tenDangNhap); + nd.setMaCB(rs.getInt("macb")); + int quyen = rs.getInt("quyen"); + if (quyen == 0) { + nd.setVaiTro("Quản trị viên"); + } + if (quyen == 1) { + nd.setVaiTro("Công nhân"); + } + if (quyen == 2) { + nd.setVaiTro("Kỹ sư"); + } + if (quyen == 3) { + nd.setVaiTro("Nhân viên"); + } + return nd; + } else { + return new NguoiDung(); } - if(quyen == 2){ - nd.setVaiTro("Nhân viên"); - } - return nd; - + } } } - + return null; - } - + } + } diff --git a/src/main/java/com/mycompany/qlcb/dao/NhanVienDao.java b/src/main/java/com/mycompany/qlcb/dao/NhanVienDao.java index 402a7b7..20395d1 100644 --- a/src/main/java/com/mycompany/qlcb/dao/NhanVienDao.java +++ b/src/main/java/com/mycompany/qlcb/dao/NhanVienDao.java @@ -47,7 +47,7 @@ public ArrayList findNhanVien(String info) throws SQLException, Except String sql = "select * from tbl_canbo cb inner join " + "tbl_nhanvien nv on cb.macb = nv.manv " + "where tencb like" + info + " or namsinh like" + info + " or gioitinh like " + info - + " or diachi like " + info + "or congviec like " + info; + + " or diachi like " + info + "or congviec like " + info + " or macb like " + info; try ( diff --git a/src/main/java/com/mycompany/qlcb/filehelpers/ExportBase.java b/src/main/java/com/mycompany/qlcb/filehelpers/ExportBase.java new file mode 100644 index 0000000..f663626 --- /dev/null +++ b/src/main/java/com/mycompany/qlcb/filehelpers/ExportBase.java @@ -0,0 +1,265 @@ + +package com.mycompany.qlcb.filehelpers; + +import com.mycompany.qlcb.model.Congnhan; +import com.mycompany.qlcb.model.Kysu; +import com.mycompany.qlcb.model.Nhanvien; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.List; + +import org.apache.poi.hssf.usermodel.HSSFCellStyle; +import org.apache.poi.hssf.usermodel.HSSFFont; +import org.apache.poi.hssf.usermodel.HSSFSheet; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.CellType; +import org.apache.poi.ss.usermodel.Row; + + +public class ExportBase { + + private static HSSFCellStyle createStyleForTitle(HSSFWorkbook workbook) { + HSSFFont font = workbook.createFont(); + font.setBold(true); + HSSFCellStyle style = workbook.createCellStyle(); + style.setFont(font); + return style; + } + + /** + * + * @param list + * @throws IOException + */ + public static void NhanVienExport(List list) throws IOException { + + HSSFWorkbook workbook = new HSSFWorkbook(); + HSSFSheet sheet = workbook.createSheet("Employees sheet"); + + + int rownum = 0; + Cell cell; + Row row; + // + HSSFCellStyle style = createStyleForTitle(workbook); + + row = sheet.createRow(rownum); + + // EmpNo + cell = row.createCell(0, CellType.STRING); + cell.setCellValue("Mã NV"); + cell.setCellStyle(style); + // EmpName + cell = row.createCell(1, CellType.STRING); + cell.setCellValue("Tên NV"); + cell.setCellStyle(style); + + cell = row.createCell(2, CellType.NUMERIC); + cell.setCellValue("Năm sinh"); + cell.setCellStyle(style); + + // Salary + cell = row.createCell(3, CellType.STRING); + cell.setCellValue("Giới tính"); + cell.setCellStyle(style); + // Grade + cell = row.createCell(4, CellType.STRING); + cell.setCellValue("Địa chỉ"); + cell.setCellStyle(style); + // Bonus + cell = row.createCell(5, CellType.STRING); + cell.setCellValue("Công việc"); + cell.setCellStyle(style); + + // Data + for (Nhanvien emp : list) { + rownum++; + row = sheet.createRow(rownum); + + // EmpNo (A) + cell = row.createCell(0, CellType.STRING); + cell.setCellValue(emp.getMacb()); + // EmpName (B) + cell = row.createCell(1, CellType.STRING); + cell.setCellValue(emp.getTencb()); + + cell = row.createCell(2, CellType.NUMERIC); + cell.setCellValue(emp.getNamsinh()); + + cell = row.createCell(3, CellType.STRING); + cell.setCellValue(emp.getGioitinh()); + // Grade (D) + cell = row.createCell(4, CellType.STRING); + cell.setCellValue(emp.getDiachi()); + + cell = row.createCell(5, CellType.STRING); + cell.setCellValue(emp.getCongviec()); + + + } + File file = new File("D:/employee.xls"); + file.getParentFile().mkdirs(); + + FileOutputStream outFile = new FileOutputStream(file); + workbook.write(outFile); + System.out.println("Created file: " + file.getAbsolutePath()); + + } + + public static void KySuExport(List list) throws IOException { + + HSSFWorkbook workbook = new HSSFWorkbook(); + HSSFSheet sheet = workbook.createSheet("Employees sheet"); + + + int rownum = 0; + Cell cell; + Row row; + // + HSSFCellStyle style = createStyleForTitle(workbook); + + row = sheet.createRow(rownum); + + // EmpNo + cell = row.createCell(0, CellType.STRING); + cell.setCellValue("Mã NV"); + cell.setCellStyle(style); + // EmpName + cell = row.createCell(1, CellType.STRING); + cell.setCellValue("Tên NV"); + cell.setCellStyle(style); + + cell = row.createCell(2, CellType.NUMERIC); + cell.setCellValue("Năm sinh"); + cell.setCellStyle(style); + + // Salary + cell = row.createCell(3, CellType.STRING); + cell.setCellValue("Giới tính"); + cell.setCellStyle(style); + // Grade + cell = row.createCell(4, CellType.STRING); + cell.setCellValue("Địa chỉ"); + cell.setCellStyle(style); + // Bonus + cell = row.createCell(5, CellType.STRING); + cell.setCellValue("Ngành đào tạo"); + cell.setCellStyle(style); + + cell = row.createCell(5, CellType.STRING); + cell.setCellValue("Loại bằng"); + cell.setCellStyle(style); + + // Data + for (Kysu emp : list) { + rownum++; + row = sheet.createRow(rownum); + + // EmpNo (A) + cell = row.createCell(0, CellType.STRING); + cell.setCellValue(emp.getMacb()); + // EmpName (B) + cell = row.createCell(1, CellType.STRING); + cell.setCellValue(emp.getTencb()); + + cell = row.createCell(2, CellType.NUMERIC); + cell.setCellValue(emp.getNamsinh()); + + cell = row.createCell(3, CellType.STRING); + cell.setCellValue(emp.getGioitinh()); + // Grade (D) + cell = row.createCell(4, CellType.STRING); + cell.setCellValue(emp.getDiachi()); + + cell = row.createCell(5, CellType.STRING); + cell.setCellValue(emp.getNganhdt()); + + cell = row.createCell(5, CellType.STRING); + cell.setCellValue(emp.getLoaibang()); + + } + File file = new File("D:/engineer.xls"); + file.getParentFile().mkdirs(); + + FileOutputStream outFile = new FileOutputStream(file); + workbook.write(outFile); + System.out.println("Created file: " + file.getAbsolutePath()); + + } + public static void WorkerExport(List list) throws IOException { + + HSSFWorkbook workbook = new HSSFWorkbook(); + HSSFSheet sheet = workbook.createSheet("Employees sheet"); + + + int rownum = 0; + Cell cell; + Row row; + // + HSSFCellStyle style = createStyleForTitle(workbook); + + row = sheet.createRow(rownum); + + // EmpNo + cell = row.createCell(0, CellType.STRING); + cell.setCellValue("Mã NV"); + cell.setCellStyle(style); + // EmpName + cell = row.createCell(1, CellType.STRING); + cell.setCellValue("Tên NV"); + cell.setCellStyle(style); + + cell = row.createCell(2, CellType.NUMERIC); + cell.setCellValue("Năm sinh"); + cell.setCellStyle(style); + + // Salary + cell = row.createCell(3, CellType.STRING); + cell.setCellValue("Giới tính"); + cell.setCellStyle(style); + // Grade + cell = row.createCell(4, CellType.STRING); + cell.setCellValue("Địa chỉ"); + cell.setCellStyle(style); + // Bonus + cell = row.createCell(5, CellType.STRING); + cell.setCellValue("Bậc"); + cell.setCellStyle(style); + + // Data + for (Congnhan emp : list) { + rownum++; + row = sheet.createRow(rownum); + + // EmpNo (A) + cell = row.createCell(0, CellType.STRING); + cell.setCellValue(emp.getMacb()); + // EmpName (B) + cell = row.createCell(1, CellType.STRING); + cell.setCellValue(emp.getTencb()); + + cell = row.createCell(2, CellType.NUMERIC); + cell.setCellValue(emp.getNamsinh()); + + cell = row.createCell(3, CellType.STRING); + cell.setCellValue(emp.getGioitinh()); + // Grade (D) + cell = row.createCell(4, CellType.STRING); + cell.setCellValue(emp.getDiachi()); + + cell = row.createCell(5, CellType.STRING); + cell.setCellValue(emp.getBac()); + + } + File file = new File("D:/worker.xls"); + file.getParentFile().mkdirs(); + + FileOutputStream outFile = new FileOutputStream(file); + workbook.write(outFile); + System.out.println("Created file: " + file.getAbsolutePath()); + + } + +} diff --git a/src/main/java/com/mycompany/qlcb/filehelpers/ExportKySu.java b/src/main/java/com/mycompany/qlcb/filehelpers/ExportKySu.java new file mode 100644 index 0000000..9f16f27 --- /dev/null +++ b/src/main/java/com/mycompany/qlcb/filehelpers/ExportKySu.java @@ -0,0 +1,112 @@ + +package com.mycompany.qlcb.filehelpers; + +import com.mycompany.qlcb.model.Kysu; +import com.mycompany.qlcb.model.Kysu; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.List; + +import org.apache.poi.hssf.usermodel.HSSFCellStyle; +import org.apache.poi.hssf.usermodel.HSSFFont; +import org.apache.poi.hssf.usermodel.HSSFSheet; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.CellType; +import org.apache.poi.ss.usermodel.Row; + + +public class ExportKySu { + + private static HSSFCellStyle createStyleForTitle(HSSFWorkbook workbook) { + HSSFFont font = workbook.createFont(); + font.setBold(true); + HSSFCellStyle style = workbook.createCellStyle(); + style.setFont(font); + return style; + } + + /** + * + * @param list + * @throws IOException + */ + public void Export(List list) throws IOException { + + HSSFWorkbook workbook = new HSSFWorkbook(); + HSSFSheet sheet = workbook.createSheet("Employees sheet"); + + + int rownum = 0; + Cell cell; + Row row; + // + HSSFCellStyle style = createStyleForTitle(workbook); + + row = sheet.createRow(rownum); + + // EmpNo + cell = row.createCell(0, CellType.STRING); + cell.setCellValue("Mã NV"); + cell.setCellStyle(style); + // EmpName + cell = row.createCell(1, CellType.STRING); + cell.setCellValue("Tên NV"); + cell.setCellStyle(style); + + cell = row.createCell(2, CellType.NUMERIC); + cell.setCellValue("Năm sinh"); + cell.setCellStyle(style); + + // Salary + cell = row.createCell(3, CellType.STRING); + cell.setCellValue("Giới tính"); + cell.setCellStyle(style); + // Grade + cell = row.createCell(4, CellType.STRING); + cell.setCellValue("Địa chỉ"); + cell.setCellStyle(style); + // Bonus + cell = row.createCell(5, CellType.STRING); + cell.setCellValue("Công việc"); + cell.setCellStyle(style); + + // Data + for (Kysu emp : list) { + rownum++; + row = sheet.createRow(rownum); + + // EmpNo (A) + cell = row.createCell(0, CellType.STRING); + cell.setCellValue(emp.getMacb()); + // EmpName (B) + cell = row.createCell(1, CellType.STRING); + cell.setCellValue(emp.getTencb()); + + cell = row.createCell(2, CellType.NUMERIC); + cell.setCellValue(emp.getNamsinh()); + + cell = row.createCell(3, CellType.STRING); + cell.setCellValue(emp.getGioitinh()); + // Grade (D) + cell = row.createCell(4, CellType.STRING); + cell.setCellValue(emp.getDiachi()); + + cell = row.createCell(5, CellType.STRING); + cell.setCellValue(emp.getNganhdt()); + + + } + File file = new File("D:/employee.xls"); + file.getParentFile().mkdirs(); + + FileOutputStream outFile = new FileOutputStream(file); + workbook.write(outFile); + System.out.println("Created file: " + file.getAbsolutePath()); + + } + + + +} diff --git a/src/main/java/com/mycompany/qlcb/model/NguoiDung.java b/src/main/java/com/mycompany/qlcb/model/NguoiDung.java index 45f5862..ea9a4c4 100644 --- a/src/main/java/com/mycompany/qlcb/model/NguoiDung.java +++ b/src/main/java/com/mycompany/qlcb/model/NguoiDung.java @@ -6,6 +6,9 @@ public class NguoiDung { private int macb; public NguoiDung() { + tenDangNhap = ""; + matKhau = ""; + vaiTro = ""; } public NguoiDung(String tenDangNhap, String matKhau,int macb, String vaiTro) { diff --git a/src/main/java/com/mycompany/qlcb/model/TaiKhoan.java b/src/main/java/com/mycompany/qlcb/model/TaiKhoan.java new file mode 100644 index 0000000..7fcc662 --- /dev/null +++ b/src/main/java/com/mycompany/qlcb/model/TaiKhoan.java @@ -0,0 +1,59 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ +package com.mycompany.qlcb.model; + +/** + * + * @author Duc + */ +public class TaiKhoan { + private int macb, quyen; + private String username, trangthai; + + public int getMacb() { + return macb; + } + + public void setMacb(int macb) { + this.macb = macb; + } + + public int getQuyen() { + return quyen; + } + + public void setQuyen(int quyen) { + this.quyen = quyen; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getTrangthai() { + return trangthai; + } + + public void setTrangthai(String trangthai) { + this.trangthai = trangthai; + } + + public TaiKhoan(int macb, int quyen, String username, String trangthai) { + this.macb = macb; + this.quyen = quyen; + this.username = username; + this.trangthai = trangthai; + } + + public TaiKhoan() { + } + + + +} diff --git a/src/main/java/com/mycompany/qlcb/ui/AccountManagementPanel.form b/src/main/java/com/mycompany/qlcb/ui/AccountManagementPanel.form new file mode 100644 index 0000000..c78fa81 --- /dev/null +++ b/src/main/java/com/mycompany/qlcb/ui/AccountManagementPanel.form @@ -0,0 +1,225 @@ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ diff --git a/src/main/java/com/mycompany/qlcb/ui/AccountManagementPanel.java b/src/main/java/com/mycompany/qlcb/ui/AccountManagementPanel.java new file mode 100644 index 0000000..3b300d2 --- /dev/null +++ b/src/main/java/com/mycompany/qlcb/ui/AccountManagementPanel.java @@ -0,0 +1,328 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/GUIForms/JPanel.java to edit this template + */ +package com.mycompany.qlcb.ui; + +import com.mycompany.qlcb.dao.CanBoDao; +import com.mycompany.qlcb.dao.NhanVienDao; +import com.mycompany.qlcb.helpers.DataValidator; +import com.mycompany.qlcb.helpers.MessageDialogHelper; +import com.mycompany.qlcb.model.Canbo; +import com.mycompany.qlcb.model.Nhanvien; +import com.mycompany.qlcb.model.TaiKhoan; +import java.util.ArrayList; +import javax.swing.JOptionPane; +import javax.swing.table.DefaultTableModel; + +/** + * + * @author Duc + */ +public class AccountManagementPanel extends javax.swing.JPanel { + + private MainForm parentForm; + private DefaultTableModel tblModel; + + public AccountManagementPanel() { + initComponents(); + initTable(); + loadDataToTable(); + } + + private void initTable() { + tblModel = new DefaultTableModel(); + tblModel.setColumnIdentifiers(new String[] {"Mã CB","Tên đăng nhập","Quyền", "Trạng thái"}); + tbAccount.setModel(tblModel); + } + + public void loadDataToTable() { + try { + CanBoDao dao = new CanBoDao(); + ArrayList list = dao.getInfoAccount(); + tblModel.setRowCount(0); + + for (TaiKhoan it:list) { + String cv = null; + if (it.getQuyen() == 0) cv = "Quản trị viên"; + else if (it.getQuyen() == 1) cv = "User thường"; + + tblModel.addRow(new Object[] { + it.getMacb(),it.getUsername(), cv, it.getTrangthai() + }); + } + tblModel.fireTableDataChanged(); + + } + catch (Exception e) { + e.printStackTrace(); + MessageDialogHelper.showErrorDialog(parentForm, e.getMessage(), "Lỗi"); + } + } + @SuppressWarnings("unchecked") + // //GEN-BEGIN:initComponents + private void initComponents() { + + jScrollPane1 = new javax.swing.JScrollPane(); + tbAccount = new javax.swing.JTable(); + jLabel1 = new javax.swing.JLabel(); + jLabel2 = new javax.swing.JLabel(); + txtId = new javax.swing.JTextField(); + txtUsername = new javax.swing.JTextField(); + jLabel3 = new javax.swing.JLabel(); + jLabel4 = new javax.swing.JLabel(); + jButton1 = new javax.swing.JButton(); + jLabel5 = new javax.swing.JLabel(); + tblReload = new javax.swing.JButton(); + cbRule = new javax.swing.JComboBox<>(); + cbStatus = new javax.swing.JComboBox<>(); + + tbAccount.setModel(new javax.swing.table.DefaultTableModel( + new Object [][] { + {null, null, null, null}, + {null, null, null, null}, + {null, null, null, null}, + {null, null, null, null} + }, + new String [] { + "Title 1", "Title 2", "Title 3", "Title 4" + } + )); + tbAccount.addMouseListener(new java.awt.event.MouseAdapter() { + public void mouseClicked(java.awt.event.MouseEvent evt) { + tbAccountMouseClicked(evt); + } + }); + jScrollPane1.setViewportView(tbAccount); + + jLabel1.setFont(new java.awt.Font("Segoe UI", 1, 16)); // NOI18N + jLabel1.setForeground(new java.awt.Color(255, 51, 51)); + jLabel1.setText("QUẢN LÝ TÀI KHOẢN NGƯỜI DÙNG"); + + jLabel2.setText("ID:"); + + txtUsername.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + txtUsernameActionPerformed(evt); + } + }); + + jLabel3.setText("Username"); + + jLabel4.setText("Quyền"); + + jButton1.setBackground(new java.awt.Color(0, 204, 255)); + jButton1.setForeground(new java.awt.Color(255, 0, 51)); + jButton1.setText("Cập nhật"); + jButton1.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jButton1ActionPerformed(evt); + } + }); + + jLabel5.setText("Trạng thái"); + + tblReload.setText("Reload"); + tblReload.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + tblReloadActionPerformed(evt); + } + }); + + cbRule.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Quản trị viên", "User thường" })); + cbRule.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + cbRuleActionPerformed(evt); + } + }); + + cbStatus.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Đang hoạt động", "Vô hiệu hóa" })); + cbStatus.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + cbStatusActionPerformed(evt); + } + }); + + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); + this.setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(15, 15, 15) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 341, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(0, 0, Short.MAX_VALUE)) + .addGroup(layout.createSequentialGroup() + .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 408, Short.MAX_VALUE) + .addGap(27, 27, 27) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jLabel3) + .addComponent(jLabel2) + .addComponent(jLabel4)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addComponent(txtUsername, javax.swing.GroupLayout.DEFAULT_SIZE, 295, Short.MAX_VALUE) + .addComponent(txtId))) + .addGroup(layout.createSequentialGroup() + .addComponent(jLabel5) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(11, 11, 11) + .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 132, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(tblReload, javax.swing.GroupLayout.PREFERRED_SIZE, 145, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(layout.createSequentialGroup() + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addComponent(cbRule, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(cbStatus, 0, 144, Short.MAX_VALUE)))))) + .addContainerGap()))) + ); + layout.setVerticalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addGap(23, 23, 23) + .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 38, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(txtId, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel2)) + .addGap(20, 20, 20) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 16, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(txtUsername, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(15, 15, 15) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(jLabel4) + .addComponent(cbRule, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(jLabel5) + .addComponent(cbStatus, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(jButton1) + .addComponent(tblReload))) + .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 368, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addContainerGap(23, Short.MAX_VALUE)) + ); + }// //GEN-END:initComponents + + private void txtUsernameActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtUsernameActionPerformed + // TODO add your handling code here: + }//GEN-LAST:event_txtUsernameActionPerformed + + private void tbAccountMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_tbAccountMouseClicked + try { + // Lấy ra dong được click + int row = tbAccount.getSelectedRow(); + if (row >= 0) { + txtId.setText(String.valueOf(tbAccount.getValueAt(row, 0))); + txtUsername.setText((String)tbAccount.getValueAt(row, 1)); + if ((String)tbAccount.getValueAt(row, 2) == "Quản trị viên") { + cbRule.setSelectedIndex(0); + } + else if ((String)tbAccount.getValueAt(row, 2) == "User thường") { + cbRule.setSelectedIndex(1); + } + + + if ((String)tbAccount.getValueAt(row, 3) == "Đang hoạt động") { + System.out.println("alo 1"); + cbStatus.setSelectedIndex(0); + } + else if ((String)tbAccount.getValueAt(row, 3) == "Vô hiệu hóa") + { + System.out.println("alo2"); + cbStatus.setSelectedIndex(1); + } + } + } catch (Exception e) { + MessageDialogHelper.showErrorDialog(parentForm, e.getMessage(), "Lỗi"); + } + }//GEN-LAST:event_tbAccountMouseClicked + + private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed + StringBuilder sb = new StringBuilder(); + DataValidator.validateEmpty(txtId, sb, "Mã cán bộ không được để trống!!"); + DataValidator.validateEmpty(txtUsername, sb, "Tên đăng nhập không được bỏ trống!!"); + + // Nếu có lỗi + if (sb.length() > 0) { + MessageDialogHelper.showErrorDialog(parentForm, sb.toString(), "Lỗi"); + return; + } + + if (MessageDialogHelper.showConfirmDialog(parentForm, "Bạn có muốn cập nhật sinh tài khoản?", + "Xác nhận") == JOptionPane.NO_OPTION) { + return; + } + try { + // Lấy dữ liệu từ trên form xuống + TaiKhoan tk = new TaiKhoan(); + tk.setMacb(Integer.parseInt(txtId.getText())); + int quyen = 0; + if (rule.equalsIgnoreCase("Admin")) quyen = 0; + else if (rule.equalsIgnoreCase("User thường")) quyen = 1; + + + + tk.setTrangthai(status); + + CanBoDao dao = new CanBoDao(); + + + if (dao.update(tk)) + { + loadDataToTable(); + MessageDialogHelper.showMessageDialog(parentForm, "Tài khoản đã được cập nhật thành công!!", + "Thông báo"); + } + else { + MessageDialogHelper.showConfirmDialog(parentForm, + "Tài khoản không được cập nhật do lỗi", "Cảnh báo"); + } + } catch (Exception e) { + e.printStackTrace(); + MessageDialogHelper.showErrorDialog(parentForm, e.getMessage(), "Lỗi"); + } + }//GEN-LAST:event_jButton1ActionPerformed + + private void tblReloadActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tblReloadActionPerformed + loadDataToTable(); + }//GEN-LAST:event_tblReloadActionPerformed + + String rule = ""; + private void cbRuleActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbRuleActionPerformed + String txt = (String)cbRule.getSelectedItem(); + rule = txt; + }//GEN-LAST:event_cbRuleActionPerformed + + String status = ""; + private void cbStatusActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbStatusActionPerformed + String txt = (String)cbStatus.getSelectedItem(); + status = txt; + }//GEN-LAST:event_cbStatusActionPerformed + + + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JComboBox cbRule; + private javax.swing.JComboBox cbStatus; + private javax.swing.JButton jButton1; + private javax.swing.JLabel jLabel1; + private javax.swing.JLabel jLabel2; + private javax.swing.JLabel jLabel3; + private javax.swing.JLabel jLabel4; + private javax.swing.JLabel jLabel5; + private javax.swing.JScrollPane jScrollPane1; + private javax.swing.JTable tbAccount; + private javax.swing.JButton tblReload; + private javax.swing.JTextField txtId; + private javax.swing.JTextField txtUsername; + // End of variables declaration//GEN-END:variables +} diff --git a/src/main/java/com/mycompany/qlcb/ui/EmployeeManagementPanel.form b/src/main/java/com/mycompany/qlcb/ui/EmployeeManagementPanel.form index 6a5702d..c6e69c9 100644 --- a/src/main/java/com/mycompany/qlcb/ui/EmployeeManagementPanel.form +++ b/src/main/java/com/mycompany/qlcb/ui/EmployeeManagementPanel.form @@ -28,165 +28,212 @@ - + + - - - - - - - - - - - - - - - - - - - - - - + + + + + - - + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + - + - + - - - + + + + - - - - - - - - - - - + + + + + - - - + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - @@ -244,8 +291,6 @@ - - @@ -407,6 +452,9 @@ + + + @@ -475,5 +523,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/com/mycompany/qlcb/ui/EmployeeManagementPanel.java b/src/main/java/com/mycompany/qlcb/ui/EmployeeManagementPanel.java index d1a0c2a..0826a5b 100644 --- a/src/main/java/com/mycompany/qlcb/ui/EmployeeManagementPanel.java +++ b/src/main/java/com/mycompany/qlcb/ui/EmployeeManagementPanel.java @@ -4,6 +4,7 @@ import com.mycompany.qlcb.dao.NhanVienDao; import com.mycompany.qlcb.helpers.DataValidator; import com.mycompany.qlcb.helpers.MessageDialogHelper; +import com.mycompany.qlcb.filehelpers.ExportBase; import com.mycompany.qlcb.helpers.VNCharacterUtils; import com.mycompany.qlcb.model.Nhanvien; import java.util.ArrayList; @@ -12,16 +13,16 @@ import java.util.logging.Logger; import javax.swing.JOptionPane; import javax.swing.table.DefaultTableModel; - +import org.apache.poi.ss.formula.functions.Count; public class EmployeeManagementPanel extends javax.swing.JPanel { - + private MainForm parentForm; private DefaultTableModel tblModel; ArrayList list; String fieldSort = "tencb"; String sortType = "ASC"; - + public EmployeeManagementPanel() { initComponents(); rdNam.setSelected(true); @@ -31,26 +32,25 @@ public EmployeeManagementPanel() { } private void initTable() { - tblModel = new DefaultTableModel(); - tblModel.setColumnIdentifiers(new String[] {"Mã NV","Họ tên","Năm sinh", "Giới tính", - "Địa chỉ", "Công việc"}); - tblEmployee.setModel(tblModel); + tblModel = new DefaultTableModel(); + tblModel.setColumnIdentifiers(new String[]{"Mã NV", "Họ tên", "Năm sinh", "Giới tính", + "Địa chỉ", "Công việc"}); + tblEmployee.setModel(tblModel); } - + private void loadDataToTable() { try { NhanVienDao dao = new NhanVienDao(); ArrayList list = dao.getAllNhanVien(null, ""); tblModel.setRowCount(0); - for (Nhanvien it:list) { - tblModel.addRow(new Object[] { - it.getMacb(),it.getTencb(), it.getNamsinh(), it.getGioitinh(), + for (Nhanvien it : list) { + tblModel.addRow(new Object[]{ + it.getMacb(), it.getTencb(), it.getNamsinh(), it.getGioitinh(), it.getDiachi(), it.getCongviec() }); } tblModel.fireTableDataChanged(); - } - catch (Exception e) { + } catch (Exception e) { e.printStackTrace(); MessageDialogHelper.showErrorDialog(parentForm, e.getMessage(), "Lỗi"); } @@ -72,7 +72,6 @@ private void initComponents() { jLabel4 = new javax.swing.JLabel(); jLabel5 = new javax.swing.JLabel(); txtName = new javax.swing.JTextField(); - jSeparator2 = new javax.swing.JSeparator(); txtNamSinh = new javax.swing.JTextField(); txtAddress = new javax.swing.JTextField(); rdNam = new javax.swing.JRadioButton(); @@ -94,6 +93,9 @@ private void initComponents() { cbField = new javax.swing.JComboBox<>(); cbSort = new javax.swing.JComboBox<>(); btnSort = new javax.swing.JButton(); + jButton1 = new javax.swing.JButton(); + btnExport = new javax.swing.JButton(); + jLabel7 = new javax.swing.JLabel(); jLabel1.setFont(new java.awt.Font("Segoe UI", 1, 14)); // NOI18N jLabel1.setText("QUẢN LÝ NHÂN VIÊN"); @@ -240,156 +242,202 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { } }); + jButton1.setText("Reset mật khẩu"); + jButton1.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jButton1ActionPerformed(evt); + } + }); + + btnExport.setText("Xuất file"); + btnExport.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + btnExportActionPerformed(evt); + } + }); + + jLabel7.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N + jLabel7.setText("Sắp xếp"); + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() + .addGap(24, 24, 24) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() - .addGap(12, 12, 12) - .addComponent(jLabel2) - .addGap(83, 83, 83) - .addComponent(txtName, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addGroup(layout.createSequentialGroup() - .addGap(12, 12, 12) - .addComponent(jLabel3) - .addGap(66, 66, 66) - .addComponent(txtNamSinh, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addGroup(layout.createSequentialGroup() - .addGap(12, 12, 12) - .addComponent(jLabel5) - .addGap(84, 84, 84) - .addComponent(txtAddress, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addGroup(layout.createSequentialGroup() - .addGap(12, 12, 12) - .addComponent(jLabel8) - .addGap(65, 65, 65) - .addComponent(txtJob, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addComponent(jLabel4) + .addGap(36, 36, 36) + .addComponent(rdNam) + .addGap(26, 26, 26) + .addComponent(rdNu)) .addGroup(layout.createSequentialGroup() - .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jSeparator1) - .addComponent(jSeparator2) - .addComponent(jSeparator3) - .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING))) - .addGroup(layout.createSequentialGroup() - .addGap(12, 12, 12) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jLabel1) .addGroup(layout.createSequentialGroup() - .addComponent(jLabel4) - .addGap(73, 73, 73) - .addComponent(rdNam) - .addGap(79, 79, 79) - .addComponent(rdNu))) - .addGap(0, 362, Short.MAX_VALUE)) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addComponent(jLabel6) - .addGap(28, 28, 28) - .addComponent(txtSearch) + .addComponent(jLabel2) + .addGap(46, 46, 46) + .addComponent(txtName, javax.swing.GroupLayout.PREFERRED_SIZE, 251, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(24, 24, 24) + .addComponent(jLabel6)) + .addGroup(layout.createSequentialGroup() + .addComponent(jLabel3) + .addGap(29, 29, 29) + .addComponent(txtNamSinh, javax.swing.GroupLayout.PREFERRED_SIZE, 251, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(26, 26, 26) + .addComponent(jLabel7))) .addGap(18, 18, 18) - .addComponent(btnSeach))) - .addContainerGap()) - .addGroup(layout.createSequentialGroup() - .addGap(139, 139, 139) - .addComponent(btnNew) - .addGap(50, 50, 50) - .addComponent(btnSave) - .addGap(58, 58, 58) - .addComponent(btnUpdate) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 75, Short.MAX_VALUE) - .addComponent(btnDelete) - .addGap(21, 21, 21)) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addComponent(cbField, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(cbSort, javax.swing.GroupLayout.PREFERRED_SIZE, 87, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(txtSearch, javax.swing.GroupLayout.PREFERRED_SIZE, 213, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(btnSeach) + .addComponent(btnSort, javax.swing.GroupLayout.PREFERRED_SIZE, 81, javax.swing.GroupLayout.PREFERRED_SIZE)))) + .addGap(0, 55, Short.MAX_VALUE)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(cbField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(18, 18, 18) - .addComponent(cbSort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(btnSort) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addGroup(layout.createSequentialGroup() + .addGap(23, 23, 23) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jSeparator1, javax.swing.GroupLayout.Alignment.TRAILING) + .addGroup(layout.createSequentialGroup() + .addComponent(jLabel1) + .addGap(0, 0, Short.MAX_VALUE)))) + .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() + .addComponent(txtMaNghe, javax.swing.GroupLayout.PREFERRED_SIZE, 0, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(0, 0, Short.MAX_VALUE)) + .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(24, 24, 24) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addGroup(layout.createSequentialGroup() + .addComponent(btnNew, javax.swing.GroupLayout.PREFERRED_SIZE, 112, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(18, 18, 18) + .addComponent(btnSave, javax.swing.GroupLayout.PREFERRED_SIZE, 85, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(26, 26, 26) + .addComponent(btnUpdate)) + .addComponent(jSeparator3, javax.swing.GroupLayout.PREFERRED_SIZE, 340, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(layout.createSequentialGroup() + .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 164, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(18, 18, 18) + .addComponent(btnDelete, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jLabel5) + .addComponent(jLabel8)) + .addGap(27, 27, 27) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(txtJob, javax.swing.GroupLayout.PREFERRED_SIZE, 251, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(txtAddress, javax.swing.GroupLayout.PREFERRED_SIZE, 251, javax.swing.GroupLayout.PREFERRED_SIZE)))) + .addGap(26, 26, 26)) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addContainerGap() + .addComponent(txtmanv, javax.swing.GroupLayout.PREFERRED_SIZE, 0, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(67, 67, 67))) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 485, Short.MAX_VALUE) + .addComponent(btnExport, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 137, javax.swing.GroupLayout.PREFERRED_SIZE)))) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() + .addComponent(txtMaNghe, javax.swing.GroupLayout.PREFERRED_SIZE, 0, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addComponent(jLabel1) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGap(18, 18, 18) .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 2, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(16, 16, 16) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGap(10, 10, 10) - .addComponent(jLabel2)) - .addComponent(txtName, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jLabel3) - .addComponent(txtNamSinh, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(12, 12, 12) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(txtName, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(txtSearch, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(btnSeach, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup() - .addGap(1, 1, 1) - .addComponent(jLabel4)) - .addComponent(rdNam) - .addComponent(rdNu)) - .addGap(9, 9, 9) + .addGap(4, 4, 4) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jLabel2) + .addComponent(jLabel6)))) + .addGap(6, 6, 6) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() - .addGap(10, 10, 10) - .addComponent(jLabel5)) - .addComponent(txtAddress, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(13, 13, 13) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(txtNamSinh, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(layout.createSequentialGroup() + .addGap(4, 4, 4) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jLabel3) + .addComponent(jLabel7)))) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jLabel4, javax.swing.GroupLayout.Alignment.TRAILING) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(rdNam) + .addComponent(rdNu))) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(4, 4, 4) + .addComponent(jLabel5)) + .addComponent(txtAddress, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(13, 13, 13) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(4, 4, 4) + .addComponent(jLabel8)) + .addComponent(txtJob, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(22, 22, 22) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(btnNew) + .addComponent(btnSave) + .addComponent(btnUpdate)) + .addGap(18, 18, 18) + .addComponent(jSeparator3, javax.swing.GroupLayout.PREFERRED_SIZE, 11, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(jButton1) + .addComponent(btnDelete)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 134, Short.MAX_VALUE) + .addComponent(txtmanv, 0, 0, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(25, 25, 25)) .addGroup(layout.createSequentialGroup() - .addGap(10, 10, 10) - .addComponent(jLabel8)) - .addComponent(txtJob, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(jSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, 2, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(13, 13, 13) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(btnSave) - .addComponent(btnNew)) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(btnUpdate) - .addComponent(btnDelete))) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(jSeparator3, javax.swing.GroupLayout.PREFERRED_SIZE, 11, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(5, 5, 5) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(btnSeach, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(txtSearch, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(jLabel6))) - .addGap(18, 18, 18) - .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 153, Short.MAX_VALUE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(cbField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(cbSort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(btnSort)) - .addContainerGap()) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(cbField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(cbSort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)) + .addGroup(layout.createSequentialGroup() + .addComponent(btnSort) + .addGap(0, 0, Short.MAX_VALUE))) + .addGap(18, 18, 18) + .addComponent(btnExport) + .addContainerGap()))) ); + + txtMaNghe.getAccessibleContext().setAccessibleName(""); }// //GEN-END:initComponents private void txtNameActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtNameActionPerformed - + }//GEN-LAST:event_txtNameActionPerformed private void txtNamSinhActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtNamSinhActionPerformed - + }//GEN-LAST:event_txtNamSinhActionPerformed private void txtAddressActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtAddressActionPerformed - + }//GEN-LAST:event_txtAddressActionPerformed private void txtJobActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtJobActionPerformed - + }//GEN-LAST:event_txtJobActionPerformed private void btnNewActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnNewActionPerformed @@ -400,8 +448,7 @@ private void btnNewActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST: rdNam.setSelected(true); rdNu.setSelected(false); }//GEN-LAST:event_btnNewActionPerformed - - + // Sự kiện save private void btnSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSaveActionPerformed StringBuilder sb = new StringBuilder(); @@ -409,60 +456,53 @@ private void btnSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST DataValidator.validateEmpty(txtNamSinh, sb, "Năm sinh không được bỏ trống!!"); DataValidator.validateEmpty(txtAddress, sb, "Địa chỉ không được bỏ trống!"); DataValidator.validateEmpty(txtJob, sb, "Công việc không được bỏ trống!!"); - + // Nếu có lỗi if (sb.length() > 0) { MessageDialogHelper.showErrorDialog(parentForm, sb.toString(), "Lỗi"); return; } - - + try { // Lấy dữ liệu từ trên form xuống Nhanvien nv = new Nhanvien(); nv.setTencb(txtName.getText()); nv.setNamsinh(Integer.parseInt(txtNamSinh.getText())); - nv.setGioitinh(rdNam.isSelected()?"Nam":"Nữ"); + nv.setGioitinh(rdNam.isSelected() ? "Nam" : "Nữ"); nv.setCongviec(txtJob.getText()); nv.setDiachi(txtAddress.getText()); int manghe = Integer.parseInt(txtMaNghe.getText()); CanBoDao dao = new CanBoDao(); - - - if (dao.insertCB(nv, manghe)) - { + + if (dao.insertCB(nv, manghe)) { MessageDialogHelper.showMessageDialog(parentForm, "Công nhân đã được thêm thành công!!", - "Thông báo"); - } - else { - MessageDialogHelper.showConfirmDialog(parentForm, + "Thông báo"); + } else { + MessageDialogHelper.showConfirmDialog(parentForm, "Công nhân không được lưu do lỗi", "Cảnh báo"); } - - + // Lấy ra mã cán bộ cuối cùng trong bảng để chèn vào bảng Công nhân - if (dao.getLastIdCB() != -1) { int macb = dao.getLastIdCB(); - + // Chèn vào bảng Công nhân dao.insertTable("tbl_nhanvien", macb, txtJob.getText(), ""); SatisticManagementPanel sasPanel = new SatisticManagementPanel(); sasPanel.loadDataToTable1(); - + //tao tai khoan tu dong String tk = VNCharacterUtils.removeAccent(txtName.getText()).replace(" ", "").toLowerCase(); System.out.print(tk); Random rand = new Random(); String mk = String.valueOf(rand.nextInt(100000000)); - if(dao.insertTaiKhoan(tk, mk, macb, Integer.valueOf(txtMaNghe.getText()))){ - MessageDialogHelper.showMessageDialog(parentForm, "Tạo tài khoản thành công!\nTài khoản: "+tk+"\nMật khẩu: "+mk, - "Thông báo"); + if (dao.insertTaiKhoan(tk, mk, macb, Integer.valueOf(txtMaNghe.getText()))) { + MessageDialogHelper.showMessageDialog(parentForm, "Tạo tài khoản thành công!\nTài khoản: " + tk + "\nMật khẩu: " + mk, + "Thông báo"); } loadDataToTable(); } - - + } catch (Exception e) { e.printStackTrace(); MessageDialogHelper.showErrorDialog(parentForm, e.getMessage(), "Lỗi"); @@ -475,14 +515,14 @@ private void btnUpdateActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIR DataValidator.validateEmpty(txtNamSinh, sb, "Năm sinh không được bỏ trống!!"); DataValidator.validateEmpty(txtAddress, sb, "Địa chỉ không được bỏ trống!"); DataValidator.validateEmpty(txtJob, sb, "Công việc không được bỏ trống!!"); - + // Nếu có lỗi if (sb.length() > 0) { MessageDialogHelper.showErrorDialog(parentForm, sb.toString(), "Lỗi"); return; } - - if (MessageDialogHelper.showConfirmDialog(parentForm, "Bạn có muốn cập nhật sinh viên không?", + + if (MessageDialogHelper.showConfirmDialog(parentForm, "Bạn có muốn cập nhật sinh viên không?", "Xác nhận") == JOptionPane.NO_OPTION) { return; } @@ -491,21 +531,18 @@ private void btnUpdateActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIR Nhanvien nv = new Nhanvien(); nv.setTencb(txtName.getText()); nv.setNamsinh(Integer.parseInt(txtNamSinh.getText())); - nv.setGioitinh(rdNam.isSelected()?"Nam":"Nữ"); + nv.setGioitinh(rdNam.isSelected() ? "Nam" : "Nữ"); nv.setCongviec(txtJob.getText()); nv.setDiachi(txtAddress.getText()); nv.setMacb(Integer.parseInt(txtmanv.getText())); NhanVienDao dao = new NhanVienDao(); - - - if (dao.update(nv)) - { + + if (dao.update(nv)) { loadDataToTable(); MessageDialogHelper.showMessageDialog(parentForm, "Công nhân đã được cập nhật thành công!!", - "Thông báo"); - } - else { - MessageDialogHelper.showConfirmDialog(parentForm, + "Thông báo"); + } else { + MessageDialogHelper.showConfirmDialog(parentForm, "Công nhân không được cập nhật do lỗi", "Cảnh báo"); } } catch (Exception e) { @@ -520,18 +557,18 @@ private void tblEmployeeMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST int row = tblEmployee.getSelectedRow(); if (row >= 0) { txtmanv.setText(String.valueOf(tblModel.getValueAt(row, 0))); - txtName.setText((String)tblModel.getValueAt(row, 1)); + txtName.setText((String) tblModel.getValueAt(row, 1)); txtNamSinh.setText(String.valueOf(tblModel.getValueAt(row, 2))); - String gender = (String)tblModel.getValueAt(row, 3); + String gender = (String) tblModel.getValueAt(row, 3); if (gender.equalsIgnoreCase("Nam")) { rdNam.setSelected(true); rdNu.setSelected(false); + } else { + rdNu.setSelected(true); + rdNam.setSelected(false); } - else { - rdNu.setSelected(true); rdNam.setSelected(false); - } - txtAddress.setText((String)tblModel.getValueAt(row, 4)); - txtJob.setText((String)tblModel.getValueAt(row, 5)); + txtAddress.setText((String) tblModel.getValueAt(row, 4)); + txtJob.setText((String) tblModel.getValueAt(row, 5)); } } catch (Exception e) { MessageDialogHelper.showErrorDialog(parentForm, e.getMessage(), "Lỗi"); @@ -544,14 +581,14 @@ private void btnDeleteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIR DataValidator.validateEmpty(txtNamSinh, sb, "Năm sinh không được bỏ trống!!"); DataValidator.validateEmpty(txtAddress, sb, "Địa chỉ không được bỏ trống!"); DataValidator.validateEmpty(txtJob, sb, "Công việc không được bỏ trống!!"); - + // Nếu có lỗi if (sb.length() > 0) { MessageDialogHelper.showErrorDialog(parentForm, sb.toString(), "Lỗi"); return; } - - if (MessageDialogHelper.showConfirmDialog(parentForm, "Bạn có muốn cập nhật sinh viên không?", + + if (MessageDialogHelper.showConfirmDialog(parentForm, "Bạn có muốn cập nhật sinh viên không?", "Xác nhận") == JOptionPane.NO_OPTION) { return; } @@ -559,17 +596,13 @@ private void btnDeleteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIR // Lấy dữ liệu từ trên form xuống CanBoDao dao = new CanBoDao(); int manv = Integer.parseInt(txtmanv.getText()); - - - - if (dao.delete("tbl_nhanvien", "manv",manv)) - { + + if (dao.delete("tbl_nhanvien", "manv", manv)) { MessageDialogHelper.showMessageDialog(parentForm, "Công nhân đã được xóa thành công!!", - "Thông báo"); + "Thông báo"); loadDataToTable(); - } - else { - MessageDialogHelper.showConfirmDialog(parentForm, + } else { + MessageDialogHelper.showConfirmDialog(parentForm, "Công nhân không được xóa do lỗi", "Cảnh báo"); } } catch (Exception e) { @@ -582,55 +615,95 @@ private void btnSeachActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRS try { NhanVienDao dao = new NhanVienDao(); String info = txtSearch.getText(); - info = "'%" + info + "%'"; - ArrayList list = dao.findNhanVien(info); - tblModel.setRowCount(0); - for (Nhanvien it:list) { - tblModel.addRow(new Object[] { - it.getMacb(),it.getTencb(), it.getNamsinh(), it.getGioitinh(), - it.getDiachi(), it.getCongviec() - }); + if (info.length() == 0) { + MessageDialogHelper.showErrorDialog(parentForm, "Thông tin tìm kiếm không được bỏ trống!!", "Lỗi"); + } else { + info = "'%" + info + "%'"; + ArrayList list = dao.findNhanVien(info); + tblModel.setRowCount(0); + for (Nhanvien it : list) { + tblModel.addRow(new Object[]{ + it.getMacb(), it.getTencb(), it.getNamsinh(), it.getGioitinh(), + it.getDiachi(), it.getCongviec() + }); + } + tblModel.fireTableDataChanged(); } - tblModel.fireTableDataChanged(); - } - catch (Exception e) { + } catch (Exception e) { e.printStackTrace(); MessageDialogHelper.showErrorDialog(parentForm, e.getMessage(), "Lỗi"); } }//GEN-LAST:event_btnSeachActionPerformed private void cbFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbFieldActionPerformed - String txt = (String)cbField.getSelectedItem(); + String txt = (String) cbField.getSelectedItem(); fieldSort = txt; }//GEN-LAST:event_cbFieldActionPerformed private void cbSortActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbSortActionPerformed - String type = (String)cbSort.getSelectedItem(); + String type = (String) cbSort.getSelectedItem(); sortType = type; }//GEN-LAST:event_cbSortActionPerformed private void btnSortActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSortActionPerformed NhanVienDao dao = new NhanVienDao(); ArrayList listt; + tblModel.setRowCount(0); try { listt = dao.sortEmployee(fieldSort, sortType); - for (Nhanvien it:listt) { - tblModel.addRow(new Object[] { - it.getMacb(),it.getTencb(), it.getNamsinh(), it.getGioitinh(), + for (Nhanvien it : listt) { + tblModel.addRow(new Object[]{ + it.getMacb(), it.getTencb(), it.getNamsinh(), it.getGioitinh(), it.getDiachi(), it.getCongviec() }); } tblModel.fireTableDataChanged(); tblEmployee.setModel(tblModel); - tblModel.setRowCount(0); + } catch (Exception ex) { Logger.getLogger(EngineerManagementPanel.class.getName()).log(Level.SEVERE, null, ex); } }//GEN-LAST:event_btnSortActionPerformed + private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed + int manv = Integer.parseInt(txtmanv.getText()); + Random rand = new Random(); + String mk = String.valueOf(rand.nextInt(100000000)); + CanBoDao dao = new CanBoDao(); + try { + System.out.println("alo dmm1"); + if (dao.chagePassword(mk, manv)) { + + System.out.println("alo dmm2"); + MessageDialogHelper.showMessageDialog(parentForm, "Reset mật khẩu thành công!!\nMật khẩu mới: " + mk, "Thông báo"); + } + + } catch (Exception ex) { + MessageDialogHelper.showErrorDialog(parentForm, ex.getMessage(), "Lỗi"); + } + }//GEN-LAST:event_jButton1ActionPerformed + + private void btnExportActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnExportActionPerformed + try { + NhanVienDao dao = new NhanVienDao(); + ArrayList list = dao.getAllNhanVien(null, ""); + + if (list.size() > 0) { + ExportBase export = new ExportBase(); + export.NhanVienExport(list); + + MessageDialogHelper.showMessageDialog(parentForm, "Xuất file thành công", "Thông báo"); + } + + } catch (Exception ex) { + MessageDialogHelper.showErrorDialog(parentForm, ex.getMessage(), "Lỗi"); + } + }//GEN-LAST:event_btnExportActionPerformed + // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton btnDelete; + private javax.swing.JButton btnExport; private javax.swing.JButton btnNew; private javax.swing.JButton btnSave; private javax.swing.JButton btnSeach; @@ -639,16 +712,17 @@ private void btnSortActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST private javax.swing.JComboBox cbField; private javax.swing.JComboBox cbSort; private javax.swing.ButtonGroup genderGroup; + private javax.swing.JButton jButton1; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; + private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JSeparator jSeparator1; - private javax.swing.JSeparator jSeparator2; private javax.swing.JSeparator jSeparator3; private javax.swing.JSeparator jSeparator4; private javax.swing.JSeparator jSeparator5; @@ -665,4 +739,5 @@ private void btnSortActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST private javax.swing.JTextField txtSearch; private javax.swing.JTextField txtmanv; // End of variables declaration//GEN-END:variables + } diff --git a/src/main/java/com/mycompany/qlcb/ui/EngineerManagementPanel.form b/src/main/java/com/mycompany/qlcb/ui/EngineerManagementPanel.form index c4c39fc..20f42ba 100644 --- a/src/main/java/com/mycompany/qlcb/ui/EngineerManagementPanel.form +++ b/src/main/java/com/mycompany/qlcb/ui/EngineerManagementPanel.form @@ -21,119 +21,111 @@ + + + + + + + + + + + - - + + + + + + - - - - - - + + + - - - - - - - - - - - - - - + + + - - - - + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - + + + - - - - - - - - + - - - - - - - - - - - - - - - - - - - + + @@ -141,81 +133,100 @@ - + + - + - - - - - - - - - - - - - - - - - + + + + + + + + + - - + + + + + + - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + - - @@ -255,8 +266,6 @@ - - @@ -380,6 +389,9 @@ + + + @@ -456,6 +468,7 @@ + @@ -480,14 +493,12 @@ - - - + @@ -534,5 +545,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/com/mycompany/qlcb/ui/EngineerManagementPanel.java b/src/main/java/com/mycompany/qlcb/ui/EngineerManagementPanel.java index 93c0a7b..698ab44 100644 --- a/src/main/java/com/mycompany/qlcb/ui/EngineerManagementPanel.java +++ b/src/main/java/com/mycompany/qlcb/ui/EngineerManagementPanel.java @@ -2,6 +2,7 @@ import com.mycompany.qlcb.dao.CanBoDao; import com.mycompany.qlcb.dao.KySuDao; +import com.mycompany.qlcb.filehelpers.ExportBase; import com.mycompany.qlcb.helpers.DataValidator; import com.mycompany.qlcb.helpers.MessageDialogHelper; import com.mycompany.qlcb.helpers.VNCharacterUtils; @@ -13,14 +14,14 @@ import javax.swing.JOptionPane; import javax.swing.table.DefaultTableModel; - public class EngineerManagementPanel extends javax.swing.JPanel { + private MainForm parentForm; private DefaultTableModel tblModel; ArrayList list; String fieldSort = ""; String sortType = "ASC"; - + public EngineerManagementPanel() { initComponents(); rdNam.setSelected(true); @@ -28,34 +29,32 @@ public EngineerManagementPanel() { initTable(); loadDataToTable(); } - + private void initTable() { - tblModel = new DefaultTableModel(); - tblModel.setColumnIdentifiers(new String[] {"Mã KS","Họ tên","Năm sinh", "Giới tính", - "Địa chỉ", "Ngành đào tạo", "Loại bằng"}); - tblEngineer.setModel(tblModel); + tblModel = new DefaultTableModel(); + tblModel.setColumnIdentifiers(new String[]{"Mã KS", "Họ tên", "Năm sinh", "Giới tính", + "Địa chỉ", "Ngành đào tạo", "Loại bằng"}); + tblEngineer.setModel(tblModel); } - + private void loadDataToTable() { try { KySuDao dao = new KySuDao(); list = dao.getAllKysu(null, ""); tblModel.setRowCount(0); - for (Kysu it:list) { - tblModel.addRow(new Object[] { - it.getMacb(),it.getTencb(), it.getNamsinh(), it.getGioitinh(), + for (Kysu it : list) { + tblModel.addRow(new Object[]{ + it.getMacb(), it.getTencb(), it.getNamsinh(), it.getGioitinh(), it.getDiachi(), it.getNganhdt(), it.getLoaibang() }); } tblModel.fireTableDataChanged(); - } - catch (Exception e) { + } catch (Exception e) { e.printStackTrace(); MessageDialogHelper.showErrorDialog(parentForm, e.getMessage(), "Lỗi"); } } - @SuppressWarnings("unchecked") // //GEN-BEGIN:initComponents private void initComponents() { @@ -66,7 +65,6 @@ private void initComponents() { jLabel3 = new javax.swing.JLabel(); jLabel4 = new javax.swing.JLabel(); jLabel5 = new javax.swing.JLabel(); - jSeparator2 = new javax.swing.JSeparator(); txtAddress = new javax.swing.JTextField(); rdNam = new javax.swing.JRadioButton(); rdNu = new javax.swing.JRadioButton(); @@ -88,11 +86,13 @@ private void initComponents() { txtname = new javax.swing.JTextField(); txtSearch = new javax.swing.JTextField(); btnSearch = new javax.swing.JButton(); - jSeparator4 = new javax.swing.JSeparator(); jLabel6 = new javax.swing.JLabel(); cbField = new javax.swing.JComboBox<>(); cbSort = new javax.swing.JComboBox<>(); btnSort = new javax.swing.JButton(); + jButton1 = new javax.swing.JButton(); + btnExport = new javax.swing.JButton(); + jLabel9 = new javax.swing.JLabel(); jLabel1.setFont(new java.awt.Font("Segoe UI", 1, 14)); // NOI18N jLabel1.setText("QUẢN LÝ KỸ SƯ"); @@ -170,6 +170,7 @@ public Class getColumnClass(int columnIndex) { return types [columnIndex]; } }); + tblEngineer.setMinimumSize(new java.awt.Dimension(1000, 64)); tblEngineer.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { tblEngineerMouseClicked(evt); @@ -214,6 +215,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { jLabel16.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N jLabel16.setText("Họ tên"); + txtmaks.setEditable(false); txtmaks.setAlignmentX(0.0F); txtmaks.setAlignmentY(0.0F); @@ -232,7 +234,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { }); jLabel6.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N - jLabel6.setText("Thông tin tìm kiếm"); + jLabel6.setText("Sắp xếp"); cbField.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Họ tên", "Năm sinh", "Giới tính", "Ngành đào tạo", "Loại bằng" })); cbField.addActionListener(new java.awt.event.ActionListener() { @@ -255,167 +257,185 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { } }); + jButton1.setText("Reset mật khẩu"); + jButton1.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jButton1ActionPerformed(evt); + } + }); + + btnExport.setText("Xuất file"); + btnExport.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + btnExportActionPerformed(evt); + } + }); + + jLabel9.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N + jLabel9.setText("Thông tin tìm kiếm"); + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addComponent(txtmaks, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE) + .addGap(126, 126, 126)) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGap(12, 12, 12) - .addComponent(jLabel1)) - .addGroup(layout.createSequentialGroup() - .addGap(20, 20, 20) - .addComponent(jLabel4) - .addGap(67, 67, 67) - .addComponent(rdNam) - .addGap(79, 79, 79) - .addComponent(rdNu))) - .addGap(0, 0, Short.MAX_VALUE)) .addGroup(layout.createSequentialGroup() .addGap(20, 20, 20) + .addComponent(txtMaNghe, javax.swing.GroupLayout.PREFERRED_SIZE, 0, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(btnExport, javax.swing.GroupLayout.PREFERRED_SIZE, 165, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(layout.createSequentialGroup() + .addGap(21, 21, 21) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() - .addComponent(jLabel5) - .addGap(78, 78, 78) - .addComponent(txtAddress, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addGroup(layout.createSequentialGroup() - .addComponent(jLabel3) - .addGap(60, 60, 60) - .addComponent(txtNamSinh, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addComponent(btnAdd, javax.swing.GroupLayout.PREFERRED_SIZE, 115, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(btnSave, javax.swing.GroupLayout.PREFERRED_SIZE, 97, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(21, 21, 21) + .addComponent(btnUpdate, javax.swing.GroupLayout.PREFERRED_SIZE, 129, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(jSeparator3, javax.swing.GroupLayout.PREFERRED_SIZE, 380, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(layout.createSequentialGroup() - .addComponent(jLabel16) - .addGap(77, 77, 77) - .addComponent(txtname, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 182, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(btnDelete, javax.swing.GroupLayout.PREFERRED_SIZE, 180, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup() .addComponent(jLabel7) .addGap(24, 24, 24) - .addComponent(txtField, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))) - .addGap(12, 12, 12)) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addComponent(jSeparator1) - .addContainerGap()) - .addGroup(layout.createSequentialGroup() - .addGap(20, 20, 20) - .addComponent(jLabel8) - .addGap(58, 58, 58) - .addComponent(txtDegree, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addContainerGap()) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addComponent(jLabel6) - .addGap(28, 28, 28) - .addComponent(txtSearch) - .addGap(18, 18, 18) - .addComponent(btnSearch)) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(jScrollPane1) + .addComponent(txtField, javax.swing.GroupLayout.PREFERRED_SIZE, 252, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup() - .addGap(8, 8, 8) - .addComponent(txtMaNghe, javax.swing.GroupLayout.PREFERRED_SIZE, 0, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(cbField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(cbSort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(btnSort))) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(txtmaks, javax.swing.GroupLayout.PREFERRED_SIZE, 2, javax.swing.GroupLayout.PREFERRED_SIZE))) - .addContainerGap()) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addContainerGap() - .addComponent(jSeparator2) - .addContainerGap()) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(jSeparator3) + .addComponent(jLabel8) + .addGap(58, 58, 58) + .addComponent(txtDegree, javax.swing.GroupLayout.PREFERRED_SIZE, 252, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(jLabel1) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addGroup(layout.createSequentialGroup() + .addComponent(jLabel3) + .addGap(60, 60, 60) + .addComponent(txtNamSinh, javax.swing.GroupLayout.PREFERRED_SIZE, 252, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) + .addGroup(layout.createSequentialGroup() + .addComponent(jLabel16) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(txtname, javax.swing.GroupLayout.PREFERRED_SIZE, 252, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jLabel5) + .addComponent(jLabel4)) + .addGap(67, 67, 67) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addComponent(rdNam) + .addGap(38, 38, 38) + .addComponent(rdNu)) + .addComponent(txtAddress, javax.swing.GroupLayout.PREFERRED_SIZE, 252, javax.swing.GroupLayout.PREFERRED_SIZE))))) + .addGap(20, 20, 20) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addGroup(layout.createSequentialGroup() + .addComponent(cbField, javax.swing.GroupLayout.PREFERRED_SIZE, 119, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(cbSort, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(13, 13, 13) + .addComponent(btnSort, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(layout.createSequentialGroup() + .addComponent(jLabel9) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(txtSearch, javax.swing.GroupLayout.PREFERRED_SIZE, 238, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(btnSearch))))) + .addGap(0, 0, Short.MAX_VALUE)) .addGroup(layout.createSequentialGroup() - .addGap(0, 124, Short.MAX_VALUE) - .addComponent(btnAdd) - .addGap(109, 109, 109) - .addComponent(btnSave) - .addGap(81, 81, 81) - .addComponent(btnUpdate) - .addGap(92, 92, 92) - .addComponent(btnDelete))) + .addGap(408, 408, 408) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addComponent(jLabel6) + .addGap(0, 0, Short.MAX_VALUE)) + .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 607, Short.MAX_VALUE)))) .addContainerGap()) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addContainerGap() - .addComponent(jSeparator4) + .addGap(21, 21, 21) + .addComponent(jSeparator1) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() + .addComponent(txtmaks, javax.swing.GroupLayout.PREFERRED_SIZE, 0, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addComponent(jLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 2, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(17, 17, 17) + .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel16) - .addComponent(txtname, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(10, 10, 10) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jLabel3) - .addComponent(txtNamSinh, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(10, 10, 10) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jLabel4) - .addComponent(rdNam) - .addComponent(rdNu)) - .addGap(5, 5, 5) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() - .addGap(10, 10, 10) - .addComponent(jLabel5)) - .addComponent(txtAddress, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(10, 10, 10) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGap(10, 10, 10) - .addComponent(jLabel7)) - .addComponent(txtField, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(20, 20, 20) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jLabel8) - .addComponent(txtDegree, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(jSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, 4, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(1, 1, 1) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(txtname, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(txtSearch, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(btnSearch)) + .addComponent(jLabel9, javax.swing.GroupLayout.Alignment.TRAILING)))) .addGap(13, 13, 13) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(btnSave) - .addComponent(btnAdd) - .addComponent(btnUpdate) - .addComponent(btnDelete)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(jSeparator3, javax.swing.GroupLayout.PREFERRED_SIZE, 11, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(txtSearch) - .addComponent(btnSearch, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addComponent(jLabel6)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jSeparator4, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 164, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(txtmaks, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(btnSort) - .addComponent(cbSort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(cbField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addComponent(txtMaNghe, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addContainerGap(21, Short.MAX_VALUE)) + .addComponent(txtNamSinh, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel3) + .addComponent(jLabel6)) + .addGroup(layout.createSequentialGroup() + .addGap(1, 1, 1) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(cbField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(cbSort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(btnSort)))) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(9, 9, 9) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(rdNam) + .addComponent(jLabel4))) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(rdNu))) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(txtAddress, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel5)) + .addGap(18, 18, 18) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(txtField, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel7)) + .addGap(13, 13, 13) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(txtDegree, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel8)) + .addGap(24, 24, 24) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(btnAdd) + .addComponent(btnSave)) + .addComponent(btnUpdate)) + .addGap(13, 13, 13) + .addComponent(jSeparator3, javax.swing.GroupLayout.PREFERRED_SIZE, 11, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(jButton1) + .addComponent(btnDelete)) + .addGap(64, 64, 64) + .addComponent(txtMaNghe, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap(26, Short.MAX_VALUE)) + .addGroup(layout.createSequentialGroup() + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(btnExport) + .addGap(17, 17, 17)))) ); }// //GEN-END:initComponents @@ -424,7 +444,7 @@ private void txtAddressActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FI }//GEN-LAST:event_txtAddressActionPerformed private void txtFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtFieldActionPerformed - + }//GEN-LAST:event_txtFieldActionPerformed private void txtDegreeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtDegreeActionPerformed @@ -458,35 +478,31 @@ private void btnSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST MessageDialogHelper.showErrorDialog(parentForm, sb.toString(), "Lỗi"); return; } - - + try { // Lấy dữ liệu từ trên form xuống Kysu ks = new Kysu(); ks.setTencb(txtname.getText()); ks.setNamsinh(Integer.parseInt(txtNamSinh.getText())); - ks.setGioitinh(rdNam.isSelected()?"Nam":"Nữ"); + ks.setGioitinh(rdNam.isSelected() ? "Nam" : "Nữ"); ks.setLoaibang(txtField.getText()); ks.setDiachi(txtAddress.getText()); ks.setNganhdt(txtField.getText()); - + int manghe = Integer.parseInt(txtMaNghe.getText()); CanBoDao dao = new CanBoDao(); - if (dao.insertCB(ks, manghe)) - { + if (dao.insertCB(ks, manghe)) { MessageDialogHelper.showMessageDialog(parentForm, "Kỹ sư đã được thêm thành công!!", - "Thông báo"); - } - else { - MessageDialogHelper.showConfirmDialog(parentForm, + "Thông báo"); + } else { + MessageDialogHelper.showConfirmDialog(parentForm, "Kỹ sư không được lưu do lỗi", "Cảnh báo"); } - + // Lấy ra mã cán bộ cuối cùng trong bảng để chèn vào bảng nhân viên - if (dao.getLastIdCB() != -1) { int macb = dao.getLastIdCB(); - + // Chèn vào bảng nhân viên dao.insertTable("tbl_kysu", macb, txtField.getText(), txtDegree.getText()); //tao tai khoan tu dong @@ -494,9 +510,9 @@ private void btnSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST System.out.print(tk); Random rand = new Random(); String mk = String.valueOf(rand.nextInt(100000000)); - if(dao.insertTaiKhoan(tk, mk, macb, Integer.valueOf(txtMaNghe.getText()))){ - MessageDialogHelper.showMessageDialog(parentForm, "Tạo tài khoản thành công!\nTài khoản: "+tk+"\nMật khẩu: "+mk, - "Thông báo"); + if (dao.insertTaiKhoan(tk, mk, macb, Integer.valueOf(txtMaNghe.getText()))) { + MessageDialogHelper.showMessageDialog(parentForm, "Tạo tài khoản thành công!\nTài khoản: " + tk + "\nMật khẩu: " + mk, + "Thông báo"); } loadDataToTable(); } @@ -515,22 +531,22 @@ private void txtnameActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST }//GEN-LAST:event_txtnameActionPerformed private void tblEngineerMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_tblEngineerMouseClicked - try { + try { // Lấy ra dong được click int row = tblEngineer.getSelectedRow(); if (row >= 0) { txtmaks.setText((String.valueOf(tblModel.getValueAt(row, 0)))); - txtname.setText((String)tblModel.getValueAt(row, 1)); + txtname.setText((String) tblModel.getValueAt(row, 1)); txtNamSinh.setText(String.valueOf(tblModel.getValueAt(row, 2))); - String gender = (String)tblModel.getValueAt(row, 3); + String gender = (String) tblModel.getValueAt(row, 3); if (gender.equalsIgnoreCase("Nam")) { rdNam.setSelected(true); rdNu.setSelected(false); + } else { + rdNu.setSelected(true); + rdNam.setSelected(false); } - else { - rdNu.setSelected(true); rdNam.setSelected(false); - } - txtAddress.setText((String)tblModel.getValueAt(row, 4)); + txtAddress.setText((String) tblModel.getValueAt(row, 4)); txtField.setText(String.valueOf(tblModel.getValueAt(row, 5))); txtDegree.setText(String.valueOf(tblModel.getValueAt(row, 6))); } @@ -540,19 +556,19 @@ private void tblEngineerMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST }//GEN-LAST:event_tblEngineerMouseClicked private void btnUpdateActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnUpdateActionPerformed - StringBuilder sb = new StringBuilder(); + StringBuilder sb = new StringBuilder(); DataValidator.validateEmpty(txtname, sb, "Tên nhân viên không được để trống!!"); DataValidator.validateEmpty(txtNamSinh, sb, "Năm sinh không được bỏ trống!!"); DataValidator.validateEmpty(txtAddress, sb, "Địa chỉ không được bỏ trống!"); DataValidator.validateEmpty(txtField, sb, "Trường làm việc không được bỏ trống!!"); - + // Nếu có lỗi if (sb.length() > 0) { MessageDialogHelper.showErrorDialog(parentForm, sb.toString(), "Lỗi"); return; } - - if (MessageDialogHelper.showConfirmDialog(parentForm, "Bạn có muốn cập nhật sinh viên không?", + + if (MessageDialogHelper.showConfirmDialog(parentForm, "Bạn có muốn cập nhật sinh viên không?", "Xác nhận") == JOptionPane.NO_OPTION) { return; } @@ -561,29 +577,26 @@ private void btnUpdateActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIR Kysu ks = new Kysu(); ks.setTencb(txtname.getText()); ks.setNamsinh(Integer.parseInt(txtNamSinh.getText())); - ks.setGioitinh(rdNam.isSelected()?"Nam":"Nữ"); + ks.setGioitinh(rdNam.isSelected() ? "Nam" : "Nữ"); ks.setNganhdt(txtField.getText()); ks.setLoaibang(txtDegree.getText()); ks.setDiachi(txtAddress.getText()); ks.setMacb(Integer.parseInt(txtmaks.getText())); KySuDao dao = new KySuDao(); - - - if (dao.update(ks)) - { + + if (dao.update(ks)) { loadDataToTable(); MessageDialogHelper.showMessageDialog(parentForm, "Kỹ sư đã được cập nhật thành công!!", - "Thông báo"); - } - else { - MessageDialogHelper.showConfirmDialog(parentForm, + "Thông báo"); + } else { + MessageDialogHelper.showConfirmDialog(parentForm, "Kỹ sư không được cập nhật do lỗi", "Cảnh báo"); } } catch (Exception e) { e.printStackTrace(); MessageDialogHelper.showErrorDialog(parentForm, e.getMessage(), "Lỗi"); } - + }//GEN-LAST:event_btnUpdateActionPerformed private void btnDeleteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnDeleteActionPerformed @@ -598,8 +611,8 @@ private void btnDeleteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIR MessageDialogHelper.showErrorDialog(parentForm, sb.toString(), "Lỗi"); return; } - - if (MessageDialogHelper.showConfirmDialog(parentForm, "Bạn có muốn xóa kỹ sư không?", + + if (MessageDialogHelper.showConfirmDialog(parentForm, "Bạn có muốn xóa kỹ sư không?", "Xác nhận") == JOptionPane.NO_OPTION) { return; } @@ -607,17 +620,13 @@ private void btnDeleteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIR // Lấy dữ liệu từ trên form xuống CanBoDao dao = new CanBoDao(); int maks = Integer.parseInt(txtmaks.getText()); - - - - if (dao.delete("tbl_kysu", "maks",maks)) - { + + if (dao.delete("tbl_kysu", "maks", maks)) { loadDataToTable(); MessageDialogHelper.showMessageDialog(parentForm, "Kỹ sư đã được xóa thành công!!", - "Thông báo"); - } - else { - MessageDialogHelper.showConfirmDialog(parentForm, + "Thông báo"); + } else { + MessageDialogHelper.showConfirmDialog(parentForm, "Kỹ sư không được xóa do lỗi", "Cảnh báo"); } } catch (Exception e) { @@ -630,31 +639,36 @@ private void btnSearchActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIR try { KySuDao dao = new KySuDao(); String info = txtSearch.getText(); - info = "'%" + info + "%'"; - ArrayList list = dao.findKysu(info); - tblModel.setRowCount(0); - for (Kysu it:list) { - tblModel.addRow(new Object[] { - it.getMacb(),it.getTencb(), it.getNamsinh(), it.getGioitinh(), - it.getDiachi(), it.getNganhdt(), it.getLoaibang() - }); + + if (info.length() == 0) { + MessageDialogHelper.showErrorDialog(parentForm, "Thông tin tìm kiếm không được bỏ trống!!", "Lỗi"); + } else { + info = "'%" + info + "%'"; + ArrayList list = dao.findKysu(info); + tblModel.setRowCount(0); + for (Kysu it : list) { + tblModel.addRow(new Object[]{ + it.getMacb(), it.getTencb(), it.getNamsinh(), it.getGioitinh(), + it.getDiachi(), it.getNganhdt(), it.getLoaibang() + }); + } + tblModel.fireTableDataChanged(); } - tblModel.fireTableDataChanged(); - } - catch (Exception e) { + + } catch (Exception e) { e.printStackTrace(); MessageDialogHelper.showErrorDialog(parentForm, e.getMessage(), "Lỗi"); } }//GEN-LAST:event_btnSearchActionPerformed private void cbFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbFieldActionPerformed - String txt = (String)cbField.getSelectedItem(); + String txt = (String) cbField.getSelectedItem(); fieldSort = txt; }//GEN-LAST:event_cbFieldActionPerformed private void cbSortActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbSortActionPerformed - String type = (String)cbSort.getSelectedItem(); - sortType = type; + String type = (String) cbSort.getSelectedItem(); + sortType = type; }//GEN-LAST:event_cbSortActionPerformed private void btnSortActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSortActionPerformed @@ -663,9 +677,9 @@ private void btnSortActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST tblModel.setRowCount(0); try { listt = dao.sortEngineer(fieldSort, sortType); - for (Kysu it:listt) { - tblModel.addRow(new Object[] { - it.getMacb(),it.getTencb(), it.getNamsinh(), it.getGioitinh(), + for (Kysu it : listt) { + tblModel.addRow(new Object[]{ + it.getMacb(), it.getTencb(), it.getNamsinh(), it.getGioitinh(), it.getDiachi(), it.getNganhdt(), it.getLoaibang() }); } @@ -674,14 +688,47 @@ private void btnSortActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST } catch (Exception ex) { Logger.getLogger(EngineerManagementPanel.class.getName()).log(Level.SEVERE, null, ex); } - - + + }//GEN-LAST:event_btnSortActionPerformed + private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed + int manv = Integer.parseInt(txtmaks.getText()); + Random rand = new Random(); + String mk = String.valueOf(rand.nextInt(100000000)); + CanBoDao dao = new CanBoDao(); + try { + if (dao.chagePassword(mk, manv)) { + MessageDialogHelper.showMessageDialog(parentForm, "Reset mật khẩu thành công!!\nMật khẩu mới: " + mk, "Thông báo"); + } + + } catch (Exception ex) { + MessageDialogHelper.showErrorDialog(parentForm, ex.getMessage(), "Lỗi"); + } + }//GEN-LAST:event_jButton1ActionPerformed + + private void btnExportActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnExportActionPerformed + try { + KySuDao dao = new KySuDao(); + list = dao.getAllKysu(null, ""); + + if (list.size() > 0) { + ExportBase export = new ExportBase(); + export.KySuExport(list); + + MessageDialogHelper.showMessageDialog(parentForm, "Xuất file thành công", "Thông báo"); + } + + } catch (Exception ex) { + MessageDialogHelper.showErrorDialog(parentForm, ex.getMessage(), "Lỗi"); + } + }//GEN-LAST:event_btnExportActionPerformed + // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton btnAdd; private javax.swing.JButton btnDelete; + private javax.swing.JButton btnExport; private javax.swing.JButton btnSave; private javax.swing.JButton btnSearch; private javax.swing.JButton btnSort; @@ -689,6 +736,7 @@ private void btnSortActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST private javax.swing.JComboBox cbField; private javax.swing.JComboBox cbSort; private javax.swing.ButtonGroup genderGroup; + private javax.swing.JButton jButton1; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel16; private javax.swing.JLabel jLabel3; @@ -697,11 +745,10 @@ private void btnSortActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; + private javax.swing.JLabel jLabel9; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JSeparator jSeparator1; - private javax.swing.JSeparator jSeparator2; private javax.swing.JSeparator jSeparator3; - private javax.swing.JSeparator jSeparator4; private javax.swing.JRadioButton rdNam; private javax.swing.JRadioButton rdNu; private javax.swing.JTable tblEngineer; diff --git a/src/main/java/com/mycompany/qlcb/ui/LoginDialog.java b/src/main/java/com/mycompany/qlcb/ui/LoginDialog.java index 07d506b..ca26fed 100644 --- a/src/main/java/com/mycompany/qlcb/ui/LoginDialog.java +++ b/src/main/java/com/mycompany/qlcb/ui/LoginDialog.java @@ -157,8 +157,7 @@ private void btnCloseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRS private void btnLoginActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnLoginActionPerformed StringBuilder sb = new StringBuilder(); DataValidator.validateEmpty(txtUsername, sb, "Tên đăng nhập không được để trống!!"); - DataValidator.validateEmpty(txtPassword, sb, "Mật khẩu không được để trống!!"); - + DataValidator.validateEmpty(txtPassword, sb, "Mật khẩu không được để trống!! " ); if (sb.length() > 0) { MessageDialogHelper.showErrorDialog(this, sb.toString(), "Lỗi"); return; @@ -167,11 +166,17 @@ private void btnLoginActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRS NguoiDungDao dao = new NguoiDungDao(); try { nd = dao.checkLogin(txtUsername.getText(), new String(txtPassword.getPassword())); - + System.out.println(nd.getTenDangNhap()); + System.out.println(nd.getMatKhau()); + System.out.println(nd.getVaiTro()); + + if (nd==null) { MessageDialogHelper.showErrorDialog(this, "Tên đăng nhập hoặc mật khẩu sai!!", "Lỗi"); } - else { + else if(nd.getTenDangNhap() == ""){ + MessageDialogHelper.showErrorDialog(this, "Người dùng đã bị vô hiệu hóa\nVui lòng đăng nhập bằng tài khoản khác!", "Lỗi"); + }else{ SharedData.nguoiDangNhap = nd; // dong hop thoai this.dispose(); diff --git a/src/main/java/com/mycompany/qlcb/ui/MainForm.form b/src/main/java/com/mycompany/qlcb/ui/MainForm.form index 54b5839..f4d467a 100644 --- a/src/main/java/com/mycompany/qlcb/ui/MainForm.form +++ b/src/main/java/com/mycompany/qlcb/ui/MainForm.form @@ -113,6 +113,16 @@ + + + + + + + + + + @@ -193,33 +203,26 @@ - - - - - - - - - - - - + + + + + - + - - + + - - - + + + @@ -296,6 +299,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -310,8 +345,6 @@ - - @@ -323,23 +356,28 @@ - - + + + + + - + - + - + + + + - @@ -358,6 +396,10 @@ + + + + diff --git a/src/main/java/com/mycompany/qlcb/ui/MainForm.java b/src/main/java/com/mycompany/qlcb/ui/MainForm.java index a32d399..4f53e7f 100644 --- a/src/main/java/com/mycompany/qlcb/ui/MainForm.java +++ b/src/main/java/com/mycompany/qlcb/ui/MainForm.java @@ -12,6 +12,7 @@ public class MainForm extends javax.swing.JFrame { private EmployeeManagementPanel mEmployeePanel; private SatisticManagementPanel mSatisticPanel; private nguoidungPanel mNguoiDungPanel; + private AccountManagementPanel mAccountPanel; public MainForm() { initComponents(); @@ -44,12 +45,17 @@ private void initComponents() { jSeparator4 = new javax.swing.JToolBar.Separator(); tbrQLNV = new javax.swing.JButton(); jSeparator2 = new javax.swing.JToolBar.Separator(); + tbrQLTK = new javax.swing.JButton(); + jSeparator13 = new javax.swing.JToolBar.Separator(); + tbrSatistic = new javax.swing.JButton(); + jSeparator14 = new javax.swing.JToolBar.Separator(); tbrAboutUs = new javax.swing.JButton(); - jSeparator10 = new javax.swing.JToolBar.Separator(); tplMainBoard = new javax.swing.JTabbedPane(); jPanel1 = new javax.swing.JPanel(); txtTen = new javax.swing.JLabel(); txtQuyen = new javax.swing.JLabel(); + jSeparator12 = new javax.swing.JSeparator(); + jSeparator10 = new javax.swing.JToolBar.Separator(); jMenuBar1 = new javax.swing.JMenuBar(); jMenu1 = new javax.swing.JMenu(); jMenuItem1 = new javax.swing.JMenuItem(); @@ -61,6 +67,8 @@ private void initComponents() { mnuManageEngineer = new javax.swing.JMenuItem(); jSeparator7 = new javax.swing.JPopupMenu.Separator(); mnuManageEmployee = new javax.swing.JMenuItem(); + jSeparator11 = new javax.swing.JPopupMenu.Separator(); + mnuQLTK = new javax.swing.JMenuItem(); jMenu4 = new javax.swing.JMenu(); mnuSatistic = new javax.swing.JMenuItem(); mnuAboutUs = new javax.swing.JMenu(); @@ -135,6 +143,32 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { jToolBar1.add(tbrQLNV); jToolBar1.add(jSeparator2); + tbrQLTK.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/mycompany/qlcb/icons/gpa-icon-32.png"))); // NOI18N + tbrQLTK.setText("QL Tài Khoản"); + tbrQLTK.setFocusable(false); + tbrQLTK.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); + tbrQLTK.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); + tbrQLTK.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + tbrQLTKActionPerformed(evt); + } + }); + jToolBar1.add(tbrQLTK); + jToolBar1.add(jSeparator13); + + tbrSatistic.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/mycompany/qlcb/icons/Actions-view-choose-icon-24.png"))); // NOI18N + tbrSatistic.setText("Thống kê"); + tbrSatistic.setFocusable(false); + tbrSatistic.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); + tbrSatistic.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); + tbrSatistic.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + tbrSatisticActionPerformed(evt); + } + }); + jToolBar1.add(tbrSatistic); + jToolBar1.add(jSeparator14); + tbrAboutUs.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/mycompany/qlcb/icons/Actions-help-about-icon-32.png"))); // NOI18N tbrAboutUs.setText("Giới thiệu"); tbrAboutUs.setFocusable(false); @@ -146,7 +180,6 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { } }); jToolBar1.add(tbrAboutUs); - jToolBar1.add(jSeparator10); txtTen.setFont(new java.awt.Font("Segoe UI", 0, 18)); // NOI18N txtTen.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); @@ -157,20 +190,25 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup() - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(jPanel1Layout.createSequentialGroup() + .addComponent(jSeparator12, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(7, 7, 7) + .addComponent(jSeparator10, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(42, 42, 42) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(txtTen, javax.swing.GroupLayout.DEFAULT_SIZE, 103, Short.MAX_VALUE) + .addComponent(txtTen, javax.swing.GroupLayout.DEFAULT_SIZE, 133, Short.MAX_VALUE) .addComponent(txtQuyen, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addGap(54, 54, 54)) + .addContainerGap()) ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jSeparator12, javax.swing.GroupLayout.PREFERRED_SIZE, 89, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jSeparator10, javax.swing.GroupLayout.PREFERRED_SIZE, 89, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(jPanel1Layout.createSequentialGroup() + .addContainerGap() .addComponent(txtTen, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(txtQuyen, javax.swing.GroupLayout.PREFERRED_SIZE, 19, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(0, 0, Short.MAX_VALUE)) + .addComponent(txtQuyen, javax.swing.GroupLayout.PREFERRED_SIZE, 19, javax.swing.GroupLayout.PREFERRED_SIZE)) ); jMenu1.setText("Hệ thống"); @@ -231,6 +269,11 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { } }); jMenu2.add(mnuManageEmployee); + jMenu2.add(jSeparator11); + + mnuQLTK.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_T, java.awt.event.InputEvent.CTRL_DOWN_MASK)); + mnuQLTK.setText("Quản lý tài khoản"); + jMenu2.add(mnuQLTK); jMenuBar1.add(jMenu2); @@ -272,26 +315,22 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGap(10, 10, 10) - .addComponent(tplMainBoard, javax.swing.GroupLayout.DEFAULT_SIZE, 707, Short.MAX_VALUE)) - .addGroup(layout.createSequentialGroup() - .addComponent(jToolBar1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(72, 72, 72) - .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addComponent(jToolBar1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 45, Short.MAX_VALUE) + .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap()) + .addComponent(tplMainBoard) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() - .addContainerGap() + .addGap(0, 0, 0) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(jToolBar1, javax.swing.GroupLayout.DEFAULT_SIZE, 91, Short.MAX_VALUE) - .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(tplMainBoard, javax.swing.GroupLayout.DEFAULT_SIZE, 543, Short.MAX_VALUE) + .addComponent(jToolBar1, javax.swing.GroupLayout.DEFAULT_SIZE, 81, Short.MAX_VALUE) + .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, 81, Short.MAX_VALUE)) + .addGap(0, 0, 0) + .addComponent(tplMainBoard, javax.swing.GroupLayout.DEFAULT_SIZE, 323, Short.MAX_VALUE) .addContainerGap()) ); @@ -302,8 +341,7 @@ private void mnuManageEmployeeActionPerformed(java.awt.event.ActionEvent evt) {/ if (mEmployeePanel == null) { mEmployeePanel = new EmployeeManagementPanel(); tplMainBoard.addTab("Quản lý nhân viên", mEmployeePanel); - } - else { + } else { tplMainBoard.addTab("Quản lý nhân viên", mEmployeePanel); } tplMainBoard.setSelectedComponent(mSatisticPanel); @@ -331,32 +369,35 @@ private void mnuManageWorkerActionPerformed(java.awt.event.ActionEvent evt) {//G mWorkerPanel = new WorkerManagementPanel(); tplMainBoard.addTab("Quản lý công nhân", mWorkerPanel); - } - else { + } else { tplMainBoard.addTab("Quản lý công nhân", mWorkerPanel); } tplMainBoard.setSelectedComponent(mWorkerPanel); }//GEN-LAST:event_mnuManageWorkerActionPerformed - private void tbrAboutUsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tbrAboutUsActionPerformed - AboutUsDialog aboutDialog = new AboutUsDialog(this, true); - aboutDialog.setVisible(true); - }//GEN-LAST:event_tbrAboutUsActionPerformed + private void tbrSatisticActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tbrSatisticActionPerformed + if (mSatisticPanel == null) { + mSatisticPanel = new SatisticManagementPanel(); + tplMainBoard.addTab("Thống kê và tìm kiếm", mSatisticPanel); + } + else { + tplMainBoard.addTab("Thống kê và tìm kiếm", mSatisticPanel); + } + tplMainBoard.setSelectedComponent(mSatisticPanel); + }//GEN-LAST:event_tbrSatisticActionPerformed private void jMenuItem5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem5ActionPerformed AboutUsDialog aboutDialog = new AboutUsDialog(this, true); aboutDialog.setVisible(true); }//GEN-LAST:event_jMenuItem5ActionPerformed - // Quản lý công nhân private void tbrQLCNActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tbrQLCNActionPerformed if (mWorkerPanel == null) { mWorkerPanel = new WorkerManagementPanel(); tplMainBoard.addTab("Quản lý công nhân", mWorkerPanel); - } - else { + } else { tplMainBoard.addTab("Quản lý công nhân", mWorkerPanel); } tplMainBoard.setSelectedComponent(mWorkerPanel); @@ -368,8 +409,7 @@ private void mnuManageEngineerActionPerformed(java.awt.event.ActionEvent evt) {/ mEngineerPanel = new EngineerManagementPanel(); tplMainBoard.addTab("Quản lý kỹ sư", mEngineerPanel); - } - else { + } else { tplMainBoard.addTab("Quản lý kỹ sư", mEngineerPanel); } tplMainBoard.setSelectedComponent(mEngineerPanel); @@ -380,8 +420,7 @@ private void tbrQLKSActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST mEngineerPanel = new EngineerManagementPanel(); tplMainBoard.addTab("Quản lý kỹ sư", mEngineerPanel); - } - else { + } else { tplMainBoard.addTab("Quản lý kỹ sư", mEngineerPanel); } tplMainBoard.setSelectedComponent(mEngineerPanel); @@ -391,8 +430,7 @@ private void tbrQLNVActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST if (mEmployeePanel == null) { mEmployeePanel = new EmployeeManagementPanel(); tplMainBoard.addTab("Quản lý nhân viên", mEmployeePanel); - } - else { + } else { tplMainBoard.addTab("Quản lý nhân viên", mEmployeePanel); } tplMainBoard.setSelectedComponent(mEmployeePanel); @@ -404,7 +442,7 @@ private void tbrLogoutActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIR tplMainBoard.removeAll(); LoginDialog loginDialog = new LoginDialog(this, true); loginDialog.setVisible(true); - + processLogin(); } catch (Exception ex) { Logger.getLogger(MainForm.class.getName()).log(Level.SEVERE, null, ex); @@ -428,9 +466,28 @@ private void mnuSatisticActionPerformed(java.awt.event.ActionEvent evt) {//GEN-F mSatisticPanel = new SatisticManagementPanel(); tplMainBoard.addTab("Thống kê và tìm kiếm", mSatisticPanel); } + else { + tplMainBoard.addTab("Thống kê và tìm kiếm", mSatisticPanel); + } tplMainBoard.setSelectedComponent(mSatisticPanel); }//GEN-LAST:event_mnuSatisticActionPerformed + private void tbrAboutUsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tbrAboutUsActionPerformed + AboutUsDialog aboutDialog = new AboutUsDialog(this, true); + aboutDialog.setVisible(true); + }//GEN-LAST:event_tbrAboutUsActionPerformed + + private void tbrQLTKActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tbrQLTKActionPerformed + if (mAccountPanel == null) { + mAccountPanel = new AccountManagementPanel(); + tplMainBoard.addTab("Quản lý tài khoản", mAccountPanel); + } + else { + tplMainBoard.addTab("Quản lý tài khoản", mAccountPanel); + } + tplMainBoard.setSelectedComponent(mAccountPanel); + }//GEN-LAST:event_tbrQLTKActionPerformed + private void processLogin() throws Exception { txtTen.setText(SharedData.nguoiDangNhap.getTenDangNhap()); txtQuyen.setText(SharedData.nguoiDangNhap.getVaiTro()); @@ -438,10 +495,16 @@ private void processLogin() throws Exception { if (!SharedData.nguoiDangNhap.getVaiTro().equals("Quản trị viên")) { SharedData a = new SharedData(); a.show_info(); + + // Vô hiệu hóa các function nếu không phải là quản trị viên mnuManageWorker.setEnabled(false); mnuManageEmployee.setEnabled(false); mnuManageEngineer.setEnabled(false); mnuSatistic.setEnabled(false); + mnuQLTK.setEnabled(false); + + tbrSatistic.setEnabled(false); + tbrQLTK.setEnabled(false); tbrQLNV.setEnabled(false); tbrQLKS.setEnabled(false); tbrQLCN.setEnabled(false); @@ -449,31 +512,35 @@ private void processLogin() throws Exception { mNguoiDungPanel = new nguoidungPanel(); tplMainBoard.addTab("Thông tin cá nhân", mNguoiDungPanel); tplMainBoard.setSelectedComponent(mNguoiDungPanel); - } - else { + } else { tplMainBoard.addTab("Thông tin cá nhân", mNguoiDungPanel); tplMainBoard.setSelectedComponent(mNguoiDungPanel); } - + } else { if (tplMainBoard == null) { tplMainBoard.setSelectedComponent(mEmployeePanel); tplMainBoard.setSelectedComponent(mEngineerPanel); tplMainBoard.setSelectedComponent(mWorkerPanel); - } + tplMainBoard.setSelectedComponent(mSatisticPanel); + tplMainBoard.setSelectedComponent(mAccountPanel); + } SharedData a = new SharedData(); a.show_info(); mnuManageWorker.setEnabled(true); mnuManageEmployee.setEnabled(true); mnuManageEngineer.setEnabled(true); mnuSatistic.setEnabled(true); + mnuQLTK.setEnabled(true); + tbrQLNV.setEnabled(true); tbrQLKS.setEnabled(true); tbrQLCN.setEnabled(true); + tbrQLTK.setEnabled(true); + tbrSatistic.setEnabled(true); } } - public static void main(String args[]) { /* Set the Nimbus look and feel */ // @@ -520,6 +587,10 @@ public void run() { private javax.swing.JPanel jPanel1; private javax.swing.JPopupMenu.Separator jSeparator1; private javax.swing.JToolBar.Separator jSeparator10; + private javax.swing.JPopupMenu.Separator jSeparator11; + private javax.swing.JSeparator jSeparator12; + private javax.swing.JToolBar.Separator jSeparator13; + private javax.swing.JToolBar.Separator jSeparator14; private javax.swing.JToolBar.Separator jSeparator2; private javax.swing.JSeparator jSeparator3; private javax.swing.JToolBar.Separator jSeparator4; @@ -534,12 +605,15 @@ public void run() { private javax.swing.JMenuItem mnuManageEmployee; private javax.swing.JMenuItem mnuManageEngineer; private javax.swing.JMenuItem mnuManageWorker; + private javax.swing.JMenuItem mnuQLTK; private javax.swing.JMenuItem mnuSatistic; private javax.swing.JButton tbrAboutUs; private javax.swing.JButton tbrLogout; private javax.swing.JButton tbrQLCN; private javax.swing.JButton tbrQLKS; private javax.swing.JButton tbrQLNV; + private javax.swing.JButton tbrQLTK; + private javax.swing.JButton tbrSatistic; private javax.swing.JTabbedPane tplMainBoard; private javax.swing.JLabel txtQuyen; private javax.swing.JLabel txtTen; diff --git a/src/main/java/com/mycompany/qlcb/ui/SatisticManagementPanel.form b/src/main/java/com/mycompany/qlcb/ui/SatisticManagementPanel.form index 6e0701b..d8a1647 100644 --- a/src/main/java/com/mycompany/qlcb/ui/SatisticManagementPanel.form +++ b/src/main/java/com/mycompany/qlcb/ui/SatisticManagementPanel.form @@ -1,6 +1,13 @@
+ + + + + + + @@ -16,28 +23,44 @@ - - + - - + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + + - - - - - - - @@ -46,27 +69,36 @@ - + - - + + + - - - + + + + + + + + - + + + + - + - + - + @@ -139,7 +171,7 @@ - + @@ -151,6 +183,15 @@ + + + + + + + + + @@ -180,11 +221,34 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/com/mycompany/qlcb/ui/SatisticManagementPanel.java b/src/main/java/com/mycompany/qlcb/ui/SatisticManagementPanel.java index 5a5cc9a..247ce8e 100644 --- a/src/main/java/com/mycompany/qlcb/ui/SatisticManagementPanel.java +++ b/src/main/java/com/mycompany/qlcb/ui/SatisticManagementPanel.java @@ -26,101 +26,103 @@ public class SatisticManagementPanel extends javax.swing.JPanel { private MainForm parentForm; private DefaultTableModel tblModel1; private DefaultTableModel tblModel2; - + public SatisticManagementPanel() { initComponents(); initTable1(); loadDataToTable1(); } - private void initTable1() { - tblModel1 = new DefaultTableModel(); - tblModel1.setColumnIdentifiers(new String[] {"Mã NV","Họ tên","Năm sinh", "Giới tính", - "Địa chỉ", "Mã nghành", "Tên ngành"}); - tbCanBo.setModel(tblModel1); + tblModel1 = new DefaultTableModel(); + tblModel1.setColumnIdentifiers(new String[]{"Mã NV", "Họ tên", "Năm sinh", "Giới tính", + "Địa chỉ", "Mã nghành", "Tên ngành"}); + tbCanBo.setModel(tblModel1); } - + private void initTable(String field1, String field2) { - tblModel2 = new DefaultTableModel(); - tblModel2.setColumnIdentifiers(new String[] {"Mã NV","Họ tên","Năm sinh", "Giới tính", - "Địa chỉ", field1, field2}); - tbDetailCb.setModel(tblModel2); + tblModel2 = new DefaultTableModel(); + tblModel2.setColumnIdentifiers(new String[]{"Mã NV", "Họ tên", "Năm sinh", "Giới tính", + "Địa chỉ", field1, field2}); + tbDetailCb.setModel(tblModel2); } + public void loadDataToTable1() { try { CanBoDao dao = new CanBoDao(); ArrayList list = dao.getAllCanBo(); tblModel1.setRowCount(0); - for (Canbo it:list) { - tblModel1.addRow(new Object[] { - it.getMacb(),it.getTencb(), it.getNamsinh(), it.getGioitinh(), + for (Canbo it : list) { + tblModel1.addRow(new Object[]{ + it.getMacb(), it.getTencb(), it.getNamsinh(), it.getGioitinh(), it.getDiachi(), it.getManghe(), it.getTennghe() }); } tblModel1.fireTableDataChanged(); - } - catch (Exception e) { + int[] arr = dao.getNumber(); + lbCongNhan.setText("Số công nhân: " + String.valueOf(arr[0])); + lbKySu.setText("Số kỹ sư: " + String.valueOf(arr[1])); + lbNhanVien.setText("Số nhân viên: " + String.valueOf(arr[2])); + + } catch (Exception e) { e.printStackTrace(); MessageDialogHelper.showErrorDialog(parentForm, e.getMessage(), "Lỗi"); } } - + private void loadDataToTableCn(int macb) { try { CanBoDao dao = new CanBoDao(); Congnhan it = dao.getDetailCn(macb); - tblModel2.addRow(new Object[] { - it.getMacb(),it.getTencb(), it.getNamsinh(), it.getGioitinh(), + tblModel2.addRow(new Object[]{ + it.getMacb(), it.getTencb(), it.getNamsinh(), it.getGioitinh(), it.getDiachi(), it.getBac() }); - + tblModel2.fireTableDataChanged(); - } - catch (Exception e) { + } catch (Exception e) { e.printStackTrace(); MessageDialogHelper.showErrorDialog(parentForm, e.getMessage(), "Lỗi"); } } - + private void loadDataToTableKs(int macb) { try { KySuDao dao = new KySuDao(); Kysu it = dao.getDetailKySu(macb); - tblModel2.addRow(new Object[] { - it.getMacb(),it.getTencb(), it.getNamsinh(), it.getGioitinh(), + tblModel2.addRow(new Object[]{ + it.getMacb(), it.getTencb(), it.getNamsinh(), it.getGioitinh(), it.getDiachi(), it.getNganhdt(), it.getLoaibang() }); - + tblModel2.fireTableDataChanged(); - } - catch (Exception e) { + } catch (Exception e) { e.printStackTrace(); MessageDialogHelper.showErrorDialog(parentForm, e.getMessage(), "Lỗi"); } } - + private void loadDataToTableNv(int macb) { try { NhanVienDao dao = new NhanVienDao(); Nhanvien it = dao.getDetailNhanVien(macb); - tblModel2.addRow(new Object[] { - it.getMacb(),it.getTencb(), it.getNamsinh(), it.getGioitinh(), + tblModel2.addRow(new Object[]{ + it.getMacb(), it.getTencb(), it.getNamsinh(), it.getGioitinh(), it.getDiachi(), it.getCongviec() }); - + tblModel2.fireTableDataChanged(); - } - catch (Exception e) { + } catch (Exception e) { e.printStackTrace(); MessageDialogHelper.showErrorDialog(parentForm, e.getMessage(), "Lỗi"); } } - + @SuppressWarnings("unchecked") // //GEN-BEGIN:initComponents private void initComponents() { + jTextField1 = new javax.swing.JTextField(); jLabel1 = new javax.swing.JLabel(); jScrollPane1 = new javax.swing.JScrollPane(); tbCanBo = new javax.swing.JTable(); @@ -131,6 +133,12 @@ private void initComponents() { jScrollPane2 = new javax.swing.JScrollPane(); tbDetailCb = new javax.swing.JTable(); btnReload = new javax.swing.JButton(); + lbCongNhan = new javax.swing.JLabel(); + lbNhanVien = new javax.swing.JLabel(); + lbKySu = new javax.swing.JLabel(); + jLabel4 = new javax.swing.JLabel(); + + jTextField1.setText("jTextField1"); jLabel1.setFont(new java.awt.Font("Segoe UI", 1, 14)); // NOI18N jLabel1.setForeground(new java.awt.Color(255, 0, 0)); @@ -151,10 +159,13 @@ private void initComponents() { jLabel2.setFont(new java.awt.Font("Segoe UI", 1, 14)); // NOI18N jLabel2.setForeground(new java.awt.Color(255, 0, 0)); - jLabel2.setText("THÔNG TIN CHI TIẾT"); + jLabel2.setText("TÌM KIẾM CÁN BỘ"); jLabel3.setText("Mã cán bộ"); + btnSearch.setBackground(new java.awt.Color(40, 167, 69)); + btnSearch.setFont(new java.awt.Font("Segoe UI", 1, 12)); // NOI18N + btnSearch.setForeground(new java.awt.Color(255, 255, 255)); btnSearch.setText("Tìm kiếm"); btnSearch.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -175,6 +186,9 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { )); jScrollPane2.setViewportView(tbDetailCb); + btnReload.setBackground(new java.awt.Color(41, 167, 69)); + btnReload.setFont(new java.awt.Font("Segoe UI", 1, 12)); // NOI18N + btnReload.setForeground(new java.awt.Color(255, 255, 255)); btnReload.setText("Reload"); btnReload.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -182,29 +196,43 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { } }); + jLabel4.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N + jLabel4.setText("Chi tiết số lượng cán bộ"); + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() - .addGap(26, 26, 26) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 697, Short.MAX_VALUE) .addGroup(layout.createSequentialGroup() + .addGap(22, 22, 22) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jLabel1) + .addGroup(layout.createSequentialGroup() + .addComponent(jScrollPane1) + .addGap(18, 18, 18) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(lbCongNhan, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 153, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(lbKySu, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 153, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(lbNhanVien, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 153, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel4))) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(btnReload, javax.swing.GroupLayout.PREFERRED_SIZE, 150, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel1) + .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 153, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(0, 593, Short.MAX_VALUE)))) + .addGroup(layout.createSequentialGroup() + .addGap(20, 20, 20) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jScrollPane2, javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(layout.createSequentialGroup() .addComponent(jLabel3) - .addGap(68, 68, 68) + .addGap(18, 18, 18) .addComponent(txtMaSearch, javax.swing.GroupLayout.PREFERRED_SIZE, 171, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) - .addComponent(btnSearch))) - .addGap(0, 0, Short.MAX_VALUE)) - .addComponent(jScrollPane2) - .addGroup(layout.createSequentialGroup() - .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 153, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(btnReload))) + .addComponent(btnSearch) + .addGap(0, 0, Short.MAX_VALUE))))) .addContainerGap()) ); layout.setVerticalGroup( @@ -213,51 +241,65 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addGap(21, 21, 21) .addComponent(jLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 235, Short.MAX_VALUE) .addGroup(layout.createSequentialGroup() - .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 236, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(18, 18, 18) - .addComponent(jLabel2)) - .addComponent(btnReload)) + .addComponent(jLabel4) + .addGap(12, 12, 12) + .addComponent(lbCongNhan, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(lbKySu, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(lbNhanVien, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(0, 0, Short.MAX_VALUE))) + .addGap(17, 17, 17) + .addComponent(btnReload) + .addGap(13, 13, 13) + .addComponent(jLabel2) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(jLabel3) .addComponent(txtMaSearch, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel3) .addComponent(btnSearch)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGap(13, 13, 13) .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 183, javax.swing.GroupLayout.PREFERRED_SIZE) - .addContainerGap()) + .addGap(18, 18, 18)) ); }// //GEN-END:initComponents private void btnSearchActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSearchActionPerformed - try { + try { CanBoDao dao = new CanBoDao(); - int macb = Integer.parseInt(txtMaSearch.getText()); - int manghe = dao.getManghe(macb); - if (manghe < 0) { - MessageDialogHelper.showMessageDialog(parentForm, "Mã cán bộ không tồn tại", "Thông báo"); + + if (txtMaSearch.getText().length() == 0) { + MessageDialogHelper.showMessageDialog(parentForm, "Ô tìm kiếm không được bỏ trống", "Thông báo"); return; - } - - try { - if (manghe == 1) { - initTable("Bậc", ""); - loadDataToTableCn(macb); - } - else if (manghe == 2) { - initTable("Ngành ĐT", "Loại bằng"); - loadDataToTableKs(macb); + } else { + int macb = Integer.parseInt(txtMaSearch.getText()); + int manghe = dao.getManghe(macb); + if (manghe < 0) { + MessageDialogHelper.showMessageDialog(parentForm, "Mã cán bộ không tồn tại", "Thông báo"); + return; + } else { + try { + if (manghe == 1) { + initTable("Bậc", ""); + loadDataToTableCn(macb); + } else if (manghe == 2) { + initTable("Ngành ĐT", "Loại bằng"); + loadDataToTableKs(macb); + } else if (manghe == 3) { + initTable("Công việc", ""); + loadDataToTableNv(macb); + } + } catch (Exception ex) { + MessageDialogHelper.showErrorDialog(parentForm, ex.getMessage(), "Lỗi"); + } } - else if (manghe == 3) { - initTable("Công việc", ""); - loadDataToTableNv(macb); - } - } catch (Exception ex) { - MessageDialogHelper.showErrorDialog(parentForm, ex.getMessage(), "Lỗi"); } + } catch (Exception ex) { - Logger.getLogger(SatisticManagementPanel.class.getName()).log(Level.SEVERE, null,ex); + Logger.getLogger(SatisticManagementPanel.class.getName()).log(Level.SEVERE, null, ex); } }//GEN-LAST:event_btnSearchActionPerformed @@ -272,8 +314,13 @@ private void btnReloadActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIR private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; + private javax.swing.JLabel jLabel4; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane2; + private javax.swing.JTextField jTextField1; + private javax.swing.JLabel lbCongNhan; + private javax.swing.JLabel lbKySu; + private javax.swing.JLabel lbNhanVien; private javax.swing.JTable tbCanBo; private javax.swing.JTable tbDetailCb; private javax.swing.JTextField txtMaSearch; diff --git a/src/main/java/com/mycompany/qlcb/ui/WorkerManagementPanel.form b/src/main/java/com/mycompany/qlcb/ui/WorkerManagementPanel.form index bd1b101..8d48dd3 100644 --- a/src/main/java/com/mycompany/qlcb/ui/WorkerManagementPanel.form +++ b/src/main/java/com/mycompany/qlcb/ui/WorkerManagementPanel.form @@ -20,186 +20,196 @@ - + - - - - - - + - - - + + + + + + - - - + + + + + + - - - - - - - - - - + + - - - + + + + + + + + + - + - - - - - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - + + - + - + - - - + + - - + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + - + - + - - - - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + @@ -414,8 +424,6 @@ - - @@ -485,5 +493,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/com/mycompany/qlcb/ui/WorkerManagementPanel.java b/src/main/java/com/mycompany/qlcb/ui/WorkerManagementPanel.java index 4277e78..ffae62f 100644 --- a/src/main/java/com/mycompany/qlcb/ui/WorkerManagementPanel.java +++ b/src/main/java/com/mycompany/qlcb/ui/WorkerManagementPanel.java @@ -2,6 +2,7 @@ import com.mycompany.qlcb.dao.CanBoDao; import com.mycompany.qlcb.dao.CongNhanDao; +import com.mycompany.qlcb.filehelpers.ExportBase; import com.mycompany.qlcb.helpers.DataValidator; import com.mycompany.qlcb.helpers.MessageDialogHelper; import com.mycompany.qlcb.helpers.VNCharacterUtils; @@ -81,7 +82,6 @@ private void initComponents() { btnDelete = new javax.swing.JButton(); jScrollPane1 = new javax.swing.JScrollPane(); tblWorker = new javax.swing.JTable(); - jSeparator3 = new javax.swing.JSeparator(); txtMaNghe = new javax.swing.JTextField(); txtmacn = new javax.swing.JTextField(); txtSearch = new javax.swing.JTextField(); @@ -90,6 +90,9 @@ private void initComponents() { cbField = new javax.swing.JComboBox<>(); cbSort = new javax.swing.JComboBox<>(); btnSort = new javax.swing.JButton(); + jButton1 = new javax.swing.JButton(); + btnExport = new javax.swing.JButton(); + jLabel8 = new javax.swing.JLabel(); jLabel1.setFont(new java.awt.Font("Segoe UI", 1, 14)); // NOI18N jLabel1.setText("QUẢN LÝ CÔNG NHÂN"); @@ -234,6 +237,23 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { } }); + jButton1.setText("Reset mật khẩu"); + jButton1.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jButton1ActionPerformed(evt); + } + }); + + btnExport.setText("Xuất file"); + btnExport.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + btnExportActionPerformed(evt); + } + }); + + jLabel8.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N + jLabel8.setText("Sắp xếp"); + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( @@ -242,143 +262,148 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addGap(12, 12, 12) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel1) - .addGroup(layout.createSequentialGroup() - .addComponent(jLabel4) - .addGap(203, 203, 203) - .addComponent(rdNu)) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() - .addComponent(txtmacn, javax.swing.GroupLayout.PREFERRED_SIZE, 7, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(0, 0, Short.MAX_VALUE)) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addGap(0, 0, Short.MAX_VALUE) - .addComponent(cbField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) - .addGap(18, 18, 18) - .addComponent(cbSort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(13, 13, 13) - .addComponent(btnSort) - .addGap(18, 18, 18) - .addComponent(txtMaNghe, javax.swing.GroupLayout.PREFERRED_SIZE, 0, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jSeparator2) + .addComponent(jLabel2) + .addGap(42, 42, 42) + .addComponent(txtName, javax.swing.GroupLayout.PREFERRED_SIZE, 252, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(29, 29, 29) + .addComponent(jLabel7)) .addGroup(layout.createSequentialGroup() - .addComponent(jLabel6) - .addGap(114, 114, 114) - .addComponent(txtBac, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) - .addContainerGap()))) + .addComponent(jLabel3) + .addGap(25, 25, 25) + .addComponent(txtNamSinh, javax.swing.GroupLayout.PREFERRED_SIZE, 252, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(29, 29, 29) + .addComponent(jLabel8))) + .addGap(12, 12, 12) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addGroup(layout.createSequentialGroup() + .addComponent(cbField, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(cbSort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(txtSearch)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addComponent(btnSearch, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(btnSort, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))) + .addGap(89, 89, 89)) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(12, 12, 12) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jLabel2) - .addComponent(jLabel3) - .addComponent(jLabel5)) - .addGap(76, 76, 76) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() + .addComponent(jLabel4) + .addGap(32, 32, 32) .addComponent(rdNam) - .addGap(0, 0, Short.MAX_VALUE)) - .addComponent(txtName, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(txtNamSinh, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(txtAddress, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) + .addGap(120, 120, 120) + .addComponent(rdNu)) + .addGroup(layout.createSequentialGroup() + .addComponent(jLabel5) + .addGap(43, 43, 43) + .addComponent(txtAddress, javax.swing.GroupLayout.PREFERRED_SIZE, 252, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(layout.createSequentialGroup() + .addComponent(jLabel6) + .addGap(63, 63, 63) + .addComponent(txtBac, javax.swing.GroupLayout.PREFERRED_SIZE, 252, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(jSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, 337, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(layout.createSequentialGroup() + .addComponent(btnAdd) + .addGap(33, 33, 33) + .addComponent(btnSave, javax.swing.GroupLayout.PREFERRED_SIZE, 90, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(18, 18, 18) + .addComponent(btnUpdate)) + .addGroup(layout.createSequentialGroup() + .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 165, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(12, 12, 12) + .addComponent(btnDelete, javax.swing.GroupLayout.PREFERRED_SIZE, 160, javax.swing.GroupLayout.PREFERRED_SIZE))) + .addGap(31, 31, 31) + .addComponent(jScrollPane1)) .addGroup(layout.createSequentialGroup() .addContainerGap() - .addComponent(jSeparator1))) + .addComponent(jSeparator1)) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addGap(0, 0, Short.MAX_VALUE) + .addComponent(btnExport, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE))) .addContainerGap()) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addGroup(layout.createSequentialGroup() - .addComponent(jLabel7) - .addGap(18, 18, 18) - .addComponent(txtSearch) - .addGap(18, 18, 18) - .addComponent(btnSearch)) - .addComponent(jScrollPane1) - .addComponent(jSeparator3, javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGap(139, 139, 139) - .addComponent(btnAdd) - .addGap(73, 73, 73) - .addComponent(btnSave) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 79, Short.MAX_VALUE) - .addComponent(btnUpdate) - .addGap(70, 70, 70) - .addComponent(btnDelete) - .addGap(16, 16, 16))) - .addGap(17, 17, 17)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(18, 18, 18) .addComponent(jLabel1) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 2, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(16, 16, 16) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGap(10, 10, 10) - .addComponent(jLabel2)) - .addComponent(txtName, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(15, 15, 15) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(txtNamSinh, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(jLabel3)) - .addGap(12, 12, 12) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGap(1, 1, 1) - .addComponent(jLabel4)) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(rdNu) - .addComponent(rdNam))) .addGap(18, 18, 18) + .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 4, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() - .addGap(10, 10, 10) - .addComponent(jLabel5)) - .addComponent(txtAddress, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(19, 19, 19) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGap(18, 18, 18) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(10, 10, 10) + .addComponent(jLabel2)) + .addComponent(txtName, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(layout.createSequentialGroup() + .addGap(4, 4, 4) + .addComponent(jLabel7)))) .addGroup(layout.createSequentialGroup() - .addGap(10, 10, 10) - .addComponent(jLabel6)) - .addComponent(txtBac, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(18, 18, 18) - .addComponent(jSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, 2, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(btnAdd) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(btnUpdate) - .addComponent(btnDelete) - .addComponent(btnSave))) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(jSeparator3, javax.swing.GroupLayout.PREFERRED_SIZE, 2, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(txtSearch, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(btnSearch, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(jLabel7)) - .addGap(18, 18, 18) - .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 150, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(20, 20, 20) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(txtSearch, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(btnSearch, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE)))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(txtmacn, javax.swing.GroupLayout.PREFERRED_SIZE, 0, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() - .addGap(4, 4, 4) - .addComponent(txtMaNghe, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(10, 10, 10) + .addComponent(jLabel3)) + .addComponent(txtNamSinh, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(layout.createSequentialGroup() + .addGap(6, 6, 6) + .addComponent(jLabel8)) .addGroup(layout.createSequentialGroup() - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGap(5, 5, 5) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(cbField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(cbSort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(btnSort)))) - .addContainerGap(21, Short.MAX_VALUE)) + .addComponent(btnSort) + .addComponent(cbField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))) + .addGap(10, 10, 10) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(1, 1, 1) + .addComponent(jLabel4)) + .addComponent(rdNam) + .addComponent(rdNu)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(10, 10, 10) + .addComponent(jLabel5)) + .addComponent(txtAddress, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(19, 19, 19) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(10, 10, 10) + .addComponent(jLabel6)) + .addComponent(txtBac, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(18, 18, 18) + .addComponent(jSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, 7, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(13, 13, 13) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(btnAdd) + .addComponent(btnSave) + .addComponent(btnUpdate)) + .addGap(26, 26, 26) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jButton1) + .addComponent(btnDelete))) + .addGroup(layout.createSequentialGroup() + .addGap(11, 11, 11) + .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 337, javax.swing.GroupLayout.PREFERRED_SIZE))) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(btnExport) + .addContainerGap()) ); }//
//GEN-END:initComponents @@ -579,16 +604,22 @@ private void btnSearchActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIR try { CongNhanDao dao = new CongNhanDao(); String info = txtSearch.getText(); - info = "'%" + info + "%'"; - ArrayList list = dao.findCongnhan(info); - tblModel.setRowCount(0); - for (Congnhan it:list) { - tblModel.addRow(new Object[] { - it.getMacb(),it.getTencb(), it.getNamsinh(), it.getGioitinh(), - it.getDiachi(), it.getBac() - }); + + if (info.length() == 0) { + MessageDialogHelper.showErrorDialog(parentForm, "Thông tin tìm kiếm không được bỏ trống!!", "Lỗi"); + } + else { + info = "'%" + info + "%'"; + ArrayList list = dao.findCongnhan(info); + tblModel.setRowCount(0); + for (Congnhan it:list) { + tblModel.addRow(new Object[] { + it.getMacb(),it.getTencb(), it.getNamsinh(), it.getGioitinh(), + it.getDiachi(), it.getBac() + }); + } + tblModel.fireTableDataChanged(); } - tblModel.fireTableDataChanged(); } catch (Exception e) { e.printStackTrace(); @@ -626,10 +657,43 @@ private void btnSortActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST }//GEN-LAST:event_btnSortActionPerformed + private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed + int manv = Integer.parseInt(txtmacn.getText()); + Random rand = new Random(); + String mk = String.valueOf(rand.nextInt(100000000)); + CanBoDao dao = new CanBoDao(); + try { + if (dao.chagePassword(mk, manv)) { + MessageDialogHelper.showMessageDialog(parentForm, "Reset mật khẩu thành công!!\nMật khẩu mới: " + mk , "Thông báo"); + } + + } catch (Exception ex) { + MessageDialogHelper.showErrorDialog(parentForm, ex.getMessage(), "Lỗi"); + } + }//GEN-LAST:event_jButton1ActionPerformed + + private void btnExportActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnExportActionPerformed + try { + CongNhanDao dao = new CongNhanDao(); + list = dao.getAllCongNhan(null, ""); + + if (list.size() > 0) { + ExportBase export = new ExportBase(); + export.WorkerExport(list); + + MessageDialogHelper.showMessageDialog(parentForm, "Xuất file thành công", "Thông báo"); + } + + } catch (Exception ex) { + MessageDialogHelper.showErrorDialog(parentForm, ex.getMessage(), "Lỗi"); + } + }//GEN-LAST:event_btnExportActionPerformed + // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton btnAdd; private javax.swing.JButton btnDelete; + private javax.swing.JButton btnExport; private javax.swing.JButton btnSave; private javax.swing.JButton btnSearch; private javax.swing.JButton btnSort; @@ -637,6 +701,7 @@ private void btnSortActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST private javax.swing.JComboBox cbField; private javax.swing.JComboBox cbSort; private javax.swing.ButtonGroup genderGroup; + private javax.swing.JButton jButton1; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; @@ -644,10 +709,10 @@ private void btnSortActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; + private javax.swing.JLabel jLabel8; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JSeparator jSeparator1; private javax.swing.JSeparator jSeparator2; - private javax.swing.JSeparator jSeparator3; private javax.swing.JRadioButton rdNam; private javax.swing.JRadioButton rdNu; private javax.swing.JTable tblWorker; diff --git a/src/main/java/com/mycompany/qlcb/ui/nguoidungPanel.form b/src/main/java/com/mycompany/qlcb/ui/nguoidungPanel.form index eb0eebe..4d6be37 100644 --- a/src/main/java/com/mycompany/qlcb/ui/nguoidungPanel.form +++ b/src/main/java/com/mycompany/qlcb/ui/nguoidungPanel.form @@ -29,93 +29,95 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - + + + + + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + - + + - + - - + + + - - - - - - - - - + - + - - - - - + + + + - + - - - - - + + + + + + + + + + + @@ -145,32 +147,32 @@ - + - + - + - + - + - + - + - - - - + + + + - + - + @@ -179,7 +181,10 @@ - + + + + diff --git a/src/main/java/com/mycompany/qlcb/ui/nguoidungPanel.java b/src/main/java/com/mycompany/qlcb/ui/nguoidungPanel.java index 8a2099d..bc21684 100644 --- a/src/main/java/com/mycompany/qlcb/ui/nguoidungPanel.java +++ b/src/main/java/com/mycompany/qlcb/ui/nguoidungPanel.java @@ -73,7 +73,8 @@ private void initComponents() { txtPasNew = new javax.swing.JPasswordField(); txtRePw = new javax.swing.JPasswordField(); - jLabel1.setFont(new java.awt.Font("Segoe UI", 1, 14)); // NOI18N + jLabel1.setFont(new java.awt.Font("Segoe UI", 1, 16)); // NOI18N + jLabel1.setForeground(new java.awt.Color(255, 51, 102)); jLabel1.setText("QUẢN LÝ NHÂN VIÊN"); jLabel2.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N @@ -152,73 +153,74 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addGap(12, 12, 12) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(jLabel1, javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() - .addComponent(jLabel4) - .addGap(73, 73, 73) - .addComponent(rdNam) - .addGap(79, 79, 79) - .addComponent(rdNu))) - .addContainerGap(385, Short.MAX_VALUE)) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGap(12, 12, 12) - .addComponent(jLabel2) - .addGap(83, 83, 83) - .addComponent(txtName, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addGroup(layout.createSequentialGroup() - .addGap(12, 12, 12) - .addComponent(jLabel3) - .addGap(66, 66, 66) - .addComponent(txtNamSinh, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addGroup(layout.createSequentialGroup() - .addGap(12, 12, 12) - .addComponent(jLabel5) - .addGap(84, 84, 84) - .addComponent(txtAddress, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addGroup(layout.createSequentialGroup() .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jSeparator1) - .addComponent(jSeparator2) - .addComponent(jSeparator3))) + .addComponent(jSeparator3)) .addGroup(layout.createSequentialGroup() .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(jSeparator2)) + .addComponent(jSeparator1) + .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(txtMaNghe, javax.swing.GroupLayout.PREFERRED_SIZE, 0, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(layout.createSequentialGroup() + .addGap(12, 12, 12) + .addComponent(jLabel1)) + .addComponent(txtmanv, javax.swing.GroupLayout.PREFERRED_SIZE, 0, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(layout.createSequentialGroup() + .addGap(12, 12, 12) + .addComponent(jLabel4) + .addGap(73, 73, 73) + .addComponent(rdNam) + .addGap(79, 79, 79) + .addComponent(rdNu))) + .addGap(0, 448, Short.MAX_VALUE)) + .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() + .addGap(12, 12, 12) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addComponent(jLabel5) + .addGap(84, 84, 84) + .addComponent(txtAddress, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGroup(layout.createSequentialGroup() + .addComponent(jLabel2) + .addGap(83, 83, 83) + .addComponent(txtName, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGroup(layout.createSequentialGroup() + .addComponent(jLabel3) + .addGap(66, 66, 66) + .addComponent(txtNamSinh, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jLabel10) .addComponent(jLabel9) - .addComponent(jLabel10)) - .addGap(39, 39, 39) + .addComponent(jLabel11)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(txtPasOld) - .addComponent(txtPasNew))) - .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() - .addComponent(jLabel7) - .addGap(0, 0, Short.MAX_VALUE)) - .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() - .addComponent(jLabel11) - .addGap(12, 12, 12) - .addComponent(txtRePw)))) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addComponent(txtPasNew) + .addComponent(txtRePw) + .addComponent(txtPasOld))) + .addComponent(jLabel7))) + .addGroup(layout.createSequentialGroup() .addGap(0, 0, Short.MAX_VALUE) - .addComponent(btnUpdate)) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(btnChangePw))) - .addContainerGap()) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(btnChangePw, javax.swing.GroupLayout.PREFERRED_SIZE, 124, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(btnUpdate, javax.swing.GroupLayout.PREFERRED_SIZE, 127, javax.swing.GroupLayout.PREFERRED_SIZE)))) + .addGap(21, 21, 21)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(txtMaNghe, javax.swing.GroupLayout.PREFERRED_SIZE, 0, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(layout.createSequentialGroup() + .addGap(18, 18, 18) + .addComponent(jLabel1)) + .addComponent(txtmanv, javax.swing.GroupLayout.PREFERRED_SIZE, 0, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(13, 13, 13) + .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 0, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) - .addComponent(jLabel1) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 2, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(16, 16, 16) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(10, 10, 10) @@ -243,27 +245,27 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addComponent(txtAddress, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, 2, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(7, 7, 7) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(btnUpdate) - .addGap(18, 18, 18) + .addGap(12, 12, 12) .addComponent(jSeparator3, javax.swing.GroupLayout.PREFERRED_SIZE, 11, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel7) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGap(7, 7, 7) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(jLabel9) - .addComponent(txtPasOld, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(txtPasOld, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel9)) + .addGap(13, 13, 13) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(jLabel10) - .addComponent(txtPasNew, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 10, Short.MAX_VALUE) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(jLabel11) - .addComponent(txtRePw, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(txtPasNew, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel10)) + .addGap(14, 14, 14) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(txtRePw, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel11)) + .addGap(11, 11, 11) .addComponent(btnChangePw) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addContainerGap()) ); }// //GEN-END:initComponents @@ -339,7 +341,7 @@ private void btnChangePwActionPerformed(java.awt.event.ActionEvent evt) {//GEN-F CanBoDao dao = new CanBoDao(); if (dao.checkPw(new String(txtPasOld.getPassword()), macb)) { if (new String(txtPasNew.getPassword()).equals(new String(txtRePw.getPassword()))) { - if (dao.update(new String(txtPasNew.getPassword()), macb)) { + if (dao.chagePassword(new String(txtPasNew.getPassword()), macb)) { MessageDialogHelper.showMessageDialog(parentForm, "Đổi mật khẩu thành công!!", "Thông báo"); } else { MessageDialogHelper.showConfirmDialog(parentForm, "Đổi mật khẩu lỗi", "Cảnh báo"); diff --git a/target/classes/com/mycompany/qlcb/dao/CanBoDao.class b/target/classes/com/mycompany/qlcb/dao/CanBoDao.class index d11c0d7..cc59ac2 100644 Binary files a/target/classes/com/mycompany/qlcb/dao/CanBoDao.class and b/target/classes/com/mycompany/qlcb/dao/CanBoDao.class differ diff --git a/target/classes/com/mycompany/qlcb/dao/CongNhanDao.class b/target/classes/com/mycompany/qlcb/dao/CongNhanDao.class index c0fabae..14e3d1c 100644 Binary files a/target/classes/com/mycompany/qlcb/dao/CongNhanDao.class and b/target/classes/com/mycompany/qlcb/dao/CongNhanDao.class differ diff --git a/target/classes/com/mycompany/qlcb/dao/KySuDao.class b/target/classes/com/mycompany/qlcb/dao/KySuDao.class index 2bb4f47..db632fa 100644 Binary files a/target/classes/com/mycompany/qlcb/dao/KySuDao.class and b/target/classes/com/mycompany/qlcb/dao/KySuDao.class differ diff --git a/target/classes/com/mycompany/qlcb/dao/NguoiDungDao.class b/target/classes/com/mycompany/qlcb/dao/NguoiDungDao.class index 745085f..0a3a020 100644 Binary files a/target/classes/com/mycompany/qlcb/dao/NguoiDungDao.class and b/target/classes/com/mycompany/qlcb/dao/NguoiDungDao.class differ diff --git a/target/classes/com/mycompany/qlcb/dao/NhanVienDao.class b/target/classes/com/mycompany/qlcb/dao/NhanVienDao.class index 256fde6..5ba8e9e 100644 Binary files a/target/classes/com/mycompany/qlcb/dao/NhanVienDao.class and b/target/classes/com/mycompany/qlcb/dao/NhanVienDao.class differ diff --git a/target/classes/com/mycompany/qlcb/filehelpers/ExportBase.class b/target/classes/com/mycompany/qlcb/filehelpers/ExportBase.class new file mode 100644 index 0000000..30938d9 Binary files /dev/null and b/target/classes/com/mycompany/qlcb/filehelpers/ExportBase.class differ diff --git a/target/classes/com/mycompany/qlcb/filehelpers/ExportKySu.class b/target/classes/com/mycompany/qlcb/filehelpers/ExportKySu.class new file mode 100644 index 0000000..145ca15 Binary files /dev/null and b/target/classes/com/mycompany/qlcb/filehelpers/ExportKySu.class differ diff --git a/target/classes/com/mycompany/qlcb/helpers/DataValidator.class b/target/classes/com/mycompany/qlcb/helpers/DataValidator.class index 5f1fd12..2a5ccf0 100644 Binary files a/target/classes/com/mycompany/qlcb/helpers/DataValidator.class and b/target/classes/com/mycompany/qlcb/helpers/DataValidator.class differ diff --git a/target/classes/com/mycompany/qlcb/helpers/MessageDialogHelper.class b/target/classes/com/mycompany/qlcb/helpers/MessageDialogHelper.class index d41348d..f4dab01 100644 Binary files a/target/classes/com/mycompany/qlcb/helpers/MessageDialogHelper.class and b/target/classes/com/mycompany/qlcb/helpers/MessageDialogHelper.class differ diff --git a/target/classes/com/mycompany/qlcb/model/Canbo.class b/target/classes/com/mycompany/qlcb/model/Canbo.class index b845ee7..4642271 100644 Binary files a/target/classes/com/mycompany/qlcb/model/Canbo.class and b/target/classes/com/mycompany/qlcb/model/Canbo.class differ diff --git a/target/classes/com/mycompany/qlcb/model/Congnhan.class b/target/classes/com/mycompany/qlcb/model/Congnhan.class index 69f0571..89ea42d 100644 Binary files a/target/classes/com/mycompany/qlcb/model/Congnhan.class and b/target/classes/com/mycompany/qlcb/model/Congnhan.class differ diff --git a/target/classes/com/mycompany/qlcb/model/Kysu.class b/target/classes/com/mycompany/qlcb/model/Kysu.class index fb0eed7..e34fa80 100644 Binary files a/target/classes/com/mycompany/qlcb/model/Kysu.class and b/target/classes/com/mycompany/qlcb/model/Kysu.class differ diff --git a/target/classes/com/mycompany/qlcb/model/NguoiDung.class b/target/classes/com/mycompany/qlcb/model/NguoiDung.class index bc7c99f..cd7a761 100644 Binary files a/target/classes/com/mycompany/qlcb/model/NguoiDung.class and b/target/classes/com/mycompany/qlcb/model/NguoiDung.class differ diff --git a/target/classes/com/mycompany/qlcb/model/Nhanvien.class b/target/classes/com/mycompany/qlcb/model/Nhanvien.class index ec385d1..6d78486 100644 Binary files a/target/classes/com/mycompany/qlcb/model/Nhanvien.class and b/target/classes/com/mycompany/qlcb/model/Nhanvien.class differ diff --git a/target/classes/com/mycompany/qlcb/model/TaiKhoan.class b/target/classes/com/mycompany/qlcb/model/TaiKhoan.class new file mode 100644 index 0000000..b02286d Binary files /dev/null and b/target/classes/com/mycompany/qlcb/model/TaiKhoan.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/AboutUsDialog$1.class b/target/classes/com/mycompany/qlcb/ui/AboutUsDialog$1.class index 3e1f0fb..af92226 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/AboutUsDialog$1.class and b/target/classes/com/mycompany/qlcb/ui/AboutUsDialog$1.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/AboutUsDialog$2.class b/target/classes/com/mycompany/qlcb/ui/AboutUsDialog$2.class index 8ba7b23..3d974b3 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/AboutUsDialog$2.class and b/target/classes/com/mycompany/qlcb/ui/AboutUsDialog$2.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/AboutUsDialog$3$1.class b/target/classes/com/mycompany/qlcb/ui/AboutUsDialog$3$1.class index 7933991..c05a9e5 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/AboutUsDialog$3$1.class and b/target/classes/com/mycompany/qlcb/ui/AboutUsDialog$3$1.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/AboutUsDialog$3.class b/target/classes/com/mycompany/qlcb/ui/AboutUsDialog$3.class index d0cc386..4f4b715 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/AboutUsDialog$3.class and b/target/classes/com/mycompany/qlcb/ui/AboutUsDialog$3.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/AboutUsDialog.class b/target/classes/com/mycompany/qlcb/ui/AboutUsDialog.class index 2598e41..4dc949f 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/AboutUsDialog.class and b/target/classes/com/mycompany/qlcb/ui/AboutUsDialog.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/AccountManagementPanel$1.class b/target/classes/com/mycompany/qlcb/ui/AccountManagementPanel$1.class new file mode 100644 index 0000000..fb670ba Binary files /dev/null and b/target/classes/com/mycompany/qlcb/ui/AccountManagementPanel$1.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/AccountManagementPanel$2.class b/target/classes/com/mycompany/qlcb/ui/AccountManagementPanel$2.class new file mode 100644 index 0000000..82f280f Binary files /dev/null and b/target/classes/com/mycompany/qlcb/ui/AccountManagementPanel$2.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/AccountManagementPanel$3.class b/target/classes/com/mycompany/qlcb/ui/AccountManagementPanel$3.class new file mode 100644 index 0000000..5c68eb6 Binary files /dev/null and b/target/classes/com/mycompany/qlcb/ui/AccountManagementPanel$3.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/AccountManagementPanel$4.class b/target/classes/com/mycompany/qlcb/ui/AccountManagementPanel$4.class new file mode 100644 index 0000000..6fb2b20 Binary files /dev/null and b/target/classes/com/mycompany/qlcb/ui/AccountManagementPanel$4.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/AccountManagementPanel$5.class b/target/classes/com/mycompany/qlcb/ui/AccountManagementPanel$5.class new file mode 100644 index 0000000..3aab511 Binary files /dev/null and b/target/classes/com/mycompany/qlcb/ui/AccountManagementPanel$5.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/AccountManagementPanel$6.class b/target/classes/com/mycompany/qlcb/ui/AccountManagementPanel$6.class new file mode 100644 index 0000000..628baac Binary files /dev/null and b/target/classes/com/mycompany/qlcb/ui/AccountManagementPanel$6.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/AccountManagementPanel.class b/target/classes/com/mycompany/qlcb/ui/AccountManagementPanel.class new file mode 100644 index 0000000..f1e4655 Binary files /dev/null and b/target/classes/com/mycompany/qlcb/ui/AccountManagementPanel.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$1.class b/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$1.class index c59bb9b..d8fc986 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$1.class and b/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$1.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$10.class b/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$10.class index bb93872..643fd95 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$10.class and b/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$10.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$11.class b/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$11.class index 4385be9..1362486 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$11.class and b/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$11.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$12.class b/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$12.class index 3a59897..b7c29b1 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$12.class and b/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$12.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$13.class b/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$13.class index 9499526..d6938d6 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$13.class and b/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$13.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$14.class b/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$14.class index 409679c..04987c3 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$14.class and b/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$14.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$15.class b/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$15.class new file mode 100644 index 0000000..153fe47 Binary files /dev/null and b/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$15.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$16.class b/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$16.class new file mode 100644 index 0000000..cb4affb Binary files /dev/null and b/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$16.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$2.class b/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$2.class index 4e383b6..995d40d 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$2.class and b/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$2.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$3.class b/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$3.class index 10177f0..5d684e9 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$3.class and b/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$3.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$4.class b/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$4.class index 60a0016..341e866 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$4.class and b/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$4.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$5.class b/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$5.class index a5533cf..5b89ab2 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$5.class and b/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$5.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$6.class b/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$6.class index b464459..dfe232b 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$6.class and b/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$6.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$7.class b/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$7.class index 3c6cf1a..20c6d3a 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$7.class and b/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$7.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$8.class b/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$8.class index a56853c..e7f9be0 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$8.class and b/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$8.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$9.class b/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$9.class index 5144991..f36173e 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$9.class and b/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$9.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel.class b/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel.class index 431fc35..31b3c84 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel.class and b/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$10.class b/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$10.class index 42a0318..57fd94b 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$10.class and b/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$10.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$11.class b/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$11.class index 70334dc..a37157c 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$11.class and b/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$11.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$12.class b/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$12.class index c346303..6610712 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$12.class and b/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$12.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$13.class b/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$13.class index 84703c3..b98625f 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$13.class and b/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$13.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$14.class b/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$14.class index 093a428..e2ca560 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$14.class and b/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$14.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$15.class b/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$15.class index 88871a5..9c07724 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$15.class and b/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$15.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$16.class b/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$16.class index 24de789..1dc5dd3 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$16.class and b/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$16.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$17.class b/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$17.class index df68e01..59de0f9 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$17.class and b/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$17.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$18.class b/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$18.class index 0910b1b..ccb9abd 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$18.class and b/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$18.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$7.class b/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$7.class index d44cce7..e8c80ec 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$7.class and b/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$7.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$8.class b/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$8.class index c9b646e..f5ed341 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$8.class and b/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$8.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$9.class b/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$9.class index f664e90..57ded40 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$9.class and b/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$9.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel.class b/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel.class index 1bcc994..c40d644 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel.class and b/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/LoadApp$1.class b/target/classes/com/mycompany/qlcb/ui/LoadApp$1.class index fa88dc2..d610053 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/LoadApp$1.class and b/target/classes/com/mycompany/qlcb/ui/LoadApp$1.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/LoadApp$2$1.class b/target/classes/com/mycompany/qlcb/ui/LoadApp$2$1.class index cf1d1a4..8fd1747 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/LoadApp$2$1.class and b/target/classes/com/mycompany/qlcb/ui/LoadApp$2$1.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/LoadApp$2.class b/target/classes/com/mycompany/qlcb/ui/LoadApp$2.class index 1b84412..a8b2eca 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/LoadApp$2.class and b/target/classes/com/mycompany/qlcb/ui/LoadApp$2.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/LoadApp.class b/target/classes/com/mycompany/qlcb/ui/LoadApp.class index adbe9f2..2faf4d1 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/LoadApp.class and b/target/classes/com/mycompany/qlcb/ui/LoadApp.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/LoginDialog$5$1.class b/target/classes/com/mycompany/qlcb/ui/LoginDialog$5$1.class index de9e0e0..4329d68 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/LoginDialog$5$1.class and b/target/classes/com/mycompany/qlcb/ui/LoginDialog$5$1.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/LoginDialog$5.class b/target/classes/com/mycompany/qlcb/ui/LoginDialog$5.class index 1481db2..cda5095 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/LoginDialog$5.class and b/target/classes/com/mycompany/qlcb/ui/LoginDialog$5.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/LoginDialog.class b/target/classes/com/mycompany/qlcb/ui/LoginDialog.class index 727462c..811ba0c 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/LoginDialog.class and b/target/classes/com/mycompany/qlcb/ui/LoginDialog.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/MainForm$1.class b/target/classes/com/mycompany/qlcb/ui/MainForm$1.class index a8296b6..24771f5 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/MainForm$1.class and b/target/classes/com/mycompany/qlcb/ui/MainForm$1.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/MainForm$10.class b/target/classes/com/mycompany/qlcb/ui/MainForm$10.class index 5694f4f..b86c79c 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/MainForm$10.class and b/target/classes/com/mycompany/qlcb/ui/MainForm$10.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/MainForm$11.class b/target/classes/com/mycompany/qlcb/ui/MainForm$11.class index f0cf819..c75891f 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/MainForm$11.class and b/target/classes/com/mycompany/qlcb/ui/MainForm$11.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/MainForm$12.class b/target/classes/com/mycompany/qlcb/ui/MainForm$12.class index fd06fef..6b5911f 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/MainForm$12.class and b/target/classes/com/mycompany/qlcb/ui/MainForm$12.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/MainForm$13.class b/target/classes/com/mycompany/qlcb/ui/MainForm$13.class index 4199e39..92003ed 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/MainForm$13.class and b/target/classes/com/mycompany/qlcb/ui/MainForm$13.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/MainForm$14.class b/target/classes/com/mycompany/qlcb/ui/MainForm$14.class index 326ba4e..3242fa2 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/MainForm$14.class and b/target/classes/com/mycompany/qlcb/ui/MainForm$14.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/MainForm$15.class b/target/classes/com/mycompany/qlcb/ui/MainForm$15.class new file mode 100644 index 0000000..d6fa662 Binary files /dev/null and b/target/classes/com/mycompany/qlcb/ui/MainForm$15.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/MainForm$16.class b/target/classes/com/mycompany/qlcb/ui/MainForm$16.class new file mode 100644 index 0000000..ca3c6c7 Binary files /dev/null and b/target/classes/com/mycompany/qlcb/ui/MainForm$16.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/MainForm$2.class b/target/classes/com/mycompany/qlcb/ui/MainForm$2.class index f89bc5d..3f63044 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/MainForm$2.class and b/target/classes/com/mycompany/qlcb/ui/MainForm$2.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/MainForm$3.class b/target/classes/com/mycompany/qlcb/ui/MainForm$3.class index bd5af8f..1f835b6 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/MainForm$3.class and b/target/classes/com/mycompany/qlcb/ui/MainForm$3.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/MainForm$4.class b/target/classes/com/mycompany/qlcb/ui/MainForm$4.class index 76557a9..1e7f57d 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/MainForm$4.class and b/target/classes/com/mycompany/qlcb/ui/MainForm$4.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/MainForm$5.class b/target/classes/com/mycompany/qlcb/ui/MainForm$5.class index 805a211..2bbf74b 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/MainForm$5.class and b/target/classes/com/mycompany/qlcb/ui/MainForm$5.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/MainForm$6.class b/target/classes/com/mycompany/qlcb/ui/MainForm$6.class index 08cfde5..dbb6ae2 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/MainForm$6.class and b/target/classes/com/mycompany/qlcb/ui/MainForm$6.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/MainForm$7.class b/target/classes/com/mycompany/qlcb/ui/MainForm$7.class index efcb680..e9feea7 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/MainForm$7.class and b/target/classes/com/mycompany/qlcb/ui/MainForm$7.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/MainForm$8.class b/target/classes/com/mycompany/qlcb/ui/MainForm$8.class index b5201d0..902c72c 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/MainForm$8.class and b/target/classes/com/mycompany/qlcb/ui/MainForm$8.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/MainForm$9.class b/target/classes/com/mycompany/qlcb/ui/MainForm$9.class index 9bb2701..1cc2aa5 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/MainForm$9.class and b/target/classes/com/mycompany/qlcb/ui/MainForm$9.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/MainForm.class b/target/classes/com/mycompany/qlcb/ui/MainForm.class index ce5fdea..a02a999 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/MainForm.class and b/target/classes/com/mycompany/qlcb/ui/MainForm.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/SatisticManagementPanel$1.class b/target/classes/com/mycompany/qlcb/ui/SatisticManagementPanel$1.class index 2337e8c..ce2c3ce 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/SatisticManagementPanel$1.class and b/target/classes/com/mycompany/qlcb/ui/SatisticManagementPanel$1.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/SatisticManagementPanel$2.class b/target/classes/com/mycompany/qlcb/ui/SatisticManagementPanel$2.class index 2a1c0f4..8669968 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/SatisticManagementPanel$2.class and b/target/classes/com/mycompany/qlcb/ui/SatisticManagementPanel$2.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/SatisticManagementPanel.class b/target/classes/com/mycompany/qlcb/ui/SatisticManagementPanel.class index ec21e50..048da60 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/SatisticManagementPanel.class and b/target/classes/com/mycompany/qlcb/ui/SatisticManagementPanel.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$1.class b/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$1.class index 60163cf..4644df6 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$1.class and b/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$1.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$10.class b/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$10.class index 65877a6..98dcb21 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$10.class and b/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$10.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$11.class b/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$11.class index a0dca2a..b7d9fa3 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$11.class and b/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$11.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$12.class b/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$12.class index ad7c3ee..aa7ce30 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$12.class and b/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$12.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$13.class b/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$13.class index a90863c..3026e6d 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$13.class and b/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$13.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$14.class b/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$14.class index d066a96..2534caa 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$14.class and b/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$14.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$15.class b/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$15.class new file mode 100644 index 0000000..5f0b63d Binary files /dev/null and b/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$15.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$16.class b/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$16.class new file mode 100644 index 0000000..51882b2 Binary files /dev/null and b/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$16.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$2.class b/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$2.class index 56bd46f..e58c8a6 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$2.class and b/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$2.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$3.class b/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$3.class index 55126af..5514b88 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$3.class and b/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$3.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$4.class b/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$4.class index 3c9c03d..ef20e14 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$4.class and b/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$4.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$5.class b/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$5.class index 0a11c1d..150b0b3 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$5.class and b/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$5.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$6.class b/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$6.class index f8b3893..9591d2a 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$6.class and b/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$6.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$7.class b/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$7.class index b5b0b5b..5ed867f 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$7.class and b/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$7.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$8.class b/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$8.class index b88d6ba..e2b18d5 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$8.class and b/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$8.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$9.class b/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$9.class index 4ad38f0..ba9f81c 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$9.class and b/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$9.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel.class b/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel.class index 9d1c83d..533506c 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel.class and b/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/nguoidungPanel$1.class b/target/classes/com/mycompany/qlcb/ui/nguoidungPanel$1.class index 7169be8..869eea7 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/nguoidungPanel$1.class and b/target/classes/com/mycompany/qlcb/ui/nguoidungPanel$1.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/nguoidungPanel$2.class b/target/classes/com/mycompany/qlcb/ui/nguoidungPanel$2.class index 6f66d3a..a6ab896 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/nguoidungPanel$2.class and b/target/classes/com/mycompany/qlcb/ui/nguoidungPanel$2.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/nguoidungPanel$3.class b/target/classes/com/mycompany/qlcb/ui/nguoidungPanel$3.class index e415e73..ecbd6d9 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/nguoidungPanel$3.class and b/target/classes/com/mycompany/qlcb/ui/nguoidungPanel$3.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/nguoidungPanel$4.class b/target/classes/com/mycompany/qlcb/ui/nguoidungPanel$4.class index 5946642..fb63c8a 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/nguoidungPanel$4.class and b/target/classes/com/mycompany/qlcb/ui/nguoidungPanel$4.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/nguoidungPanel$5.class b/target/classes/com/mycompany/qlcb/ui/nguoidungPanel$5.class index d3db0e5..fe363c5 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/nguoidungPanel$5.class and b/target/classes/com/mycompany/qlcb/ui/nguoidungPanel$5.class differ diff --git a/target/classes/com/mycompany/qlcb/ui/nguoidungPanel.class b/target/classes/com/mycompany/qlcb/ui/nguoidungPanel.class index f6c43c1..05b995e 100644 Binary files a/target/classes/com/mycompany/qlcb/ui/nguoidungPanel.class and b/target/classes/com/mycompany/qlcb/ui/nguoidungPanel.class differ diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst index ceaf79e..0278da2 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -1,23 +1,26 @@ -C:\Users\Nguyen Hieu\Desktop\BTL_Java_QLCB3\src\main\java\com\mycompany\qlcb\ui\MainForm.java -C:\Users\Nguyen Hieu\Desktop\BTL_Java_QLCB3\src\main\java\com\mycompany\qlcb\ui\SatisticManagementPanel.java -C:\Users\Nguyen Hieu\Desktop\BTL_Java_QLCB3\src\main\java\com\mycompany\qlcb\dao\CanBoDao.java -C:\Users\Nguyen Hieu\Desktop\BTL_Java_QLCB3\src\main\java\com\mycompany\qlcb\helpers\DataValidator.java -C:\Users\Nguyen Hieu\Desktop\BTL_Java_QLCB3\src\main\java\com\mycompany\qlcb\dao\NhanVienDao.java -C:\Users\Nguyen Hieu\Desktop\BTL_Java_QLCB3\src\main\java\com\mycompany\qlcb\dao\NguoiDungDao.java -C:\Users\Nguyen Hieu\Desktop\BTL_Java_QLCB3\src\main\java\com\mycompany\qlcb\dao\KySuDao.java -C:\Users\Nguyen Hieu\Desktop\BTL_Java_QLCB3\src\main\java\com\mycompany\qlcb\model\Congnhan.java -C:\Users\Nguyen Hieu\Desktop\BTL_Java_QLCB3\src\main\java\com\mycompany\qlcb\dao\CongNhanDao.java -C:\Users\Nguyen Hieu\Desktop\BTL_Java_QLCB3\src\main\java\com\mycompany\qlcb\helpers\DatabaseHelper.java -C:\Users\Nguyen Hieu\Desktop\BTL_Java_QLCB3\src\main\java\com\mycompany\qlcb\ui\LoginDialog.java -C:\Users\Nguyen Hieu\Desktop\BTL_Java_QLCB3\src\main\java\com\mycompany\qlcb\ui\EngineerManagementPanel.java -C:\Users\Nguyen Hieu\Desktop\BTL_Java_QLCB3\src\main\java\com\mycompany\qlcb\model\NguoiDung.java -C:\Users\Nguyen Hieu\Desktop\BTL_Java_QLCB3\src\main\java\com\mycompany\qlcb\ui\LoadApp.java -C:\Users\Nguyen Hieu\Desktop\BTL_Java_QLCB3\src\main\java\com\mycompany\qlcb\model\Kysu.java -C:\Users\Nguyen Hieu\Desktop\BTL_Java_QLCB3\src\main\java\com\mycompany\qlcb\ui\WorkerManagementPanel.java -C:\Users\Nguyen Hieu\Desktop\BTL_Java_QLCB3\src\main\java\com\mycompany\qlcb\ui\EmployeeManagementPanel.java -C:\Users\Nguyen Hieu\Desktop\BTL_Java_QLCB3\src\main\java\com\mycompany\qlcb\model\Canbo.java -C:\Users\Nguyen Hieu\Desktop\BTL_Java_QLCB3\src\main\java\com\mycompany\qlcb\ui\AboutUsDialog.java -C:\Users\Nguyen Hieu\Desktop\BTL_Java_QLCB3\src\main\java\com\mycompany\qlcb\model\Nhanvien.java -C:\Users\Nguyen Hieu\Desktop\BTL_Java_QLCB3\src\main\java\com\mycompany\qlcb\ui\nguoidungPanel.java -C:\Users\Nguyen Hieu\Desktop\BTL_Java_QLCB3\src\main\java\com\mycompany\qlcb\helpers\MessageDialogHelper.java -C:\Users\Nguyen Hieu\Desktop\BTL_Java_QLCB3\src\main\java\com\mycompany\qlcb\helpers\SharedData.java +D:\BTL_Java_QLCB\src\main\java\com\mycompany\qlcb\ui\SatisticManagementPanel.java +D:\BTL_Java_QLCB\src\main\java\com\mycompany\qlcb\dao\CanBoDao.java +D:\BTL_Java_QLCB\src\main\java\com\mycompany\qlcb\ui\MainForm.java +D:\BTL_Java_QLCB\src\main\java\com\mycompany\qlcb\helpers\SharedData.java +D:\BTL_Java_QLCB\src\main\java\com\mycompany\qlcb\ui\nguoidungPanel.java +D:\BTL_Java_QLCB\src\main\java\com\mycompany\qlcb\helpers\MessageDialogHelper.java +D:\BTL_Java_QLCB\src\main\java\com\mycompany\qlcb\helpers\DataValidator.java +D:\BTL_Java_QLCB\src\main\java\com\mycompany\qlcb\model\Kysu.java +D:\BTL_Java_QLCB\src\main\java\com\mycompany\qlcb\ui\WorkerManagementPanel.java +D:\BTL_Java_QLCB\src\main\java\com\mycompany\qlcb\dao\KySuDao.java +D:\BTL_Java_QLCB\src\main\java\com\mycompany\qlcb\model\NguoiDung.java +D:\BTL_Java_QLCB\src\main\java\com\mycompany\qlcb\filehelpers\ExportBase.java +D:\BTL_Java_QLCB\src\main\java\com\mycompany\qlcb\model\Congnhan.java +D:\BTL_Java_QLCB\src\main\java\com\mycompany\qlcb\dao\CongNhanDao.java +D:\BTL_Java_QLCB\src\main\java\com\mycompany\qlcb\model\Canbo.java +D:\BTL_Java_QLCB\src\main\java\com\mycompany\qlcb\dao\NguoiDungDao.java +D:\BTL_Java_QLCB\src\main\java\com\mycompany\qlcb\ui\LoginDialog.java +D:\BTL_Java_QLCB\src\main\java\com\mycompany\qlcb\ui\LoadApp.java +D:\BTL_Java_QLCB\src\main\java\com\mycompany\qlcb\dao\NhanVienDao.java +D:\BTL_Java_QLCB\src\main\java\com\mycompany\qlcb\filehelpers\ExportKySu.java +D:\BTL_Java_QLCB\src\main\java\com\mycompany\qlcb\model\Nhanvien.java +D:\BTL_Java_QLCB\src\main\java\com\mycompany\qlcb\ui\AboutUsDialog.java +D:\BTL_Java_QLCB\src\main\java\com\mycompany\qlcb\helpers\VNCharacterUtils.java +D:\BTL_Java_QLCB\src\main\java\com\mycompany\qlcb\ui\EmployeeManagementPanel.java +D:\BTL_Java_QLCB\src\main\java\com\mycompany\qlcb\helpers\DatabaseHelper.java +D:\BTL_Java_QLCB\src\main\java\com\mycompany\qlcb\ui\EngineerManagementPanel.java diff --git a/target/qlcb-1.0-SNAPSHOT.jar b/target/qlcb-1.0-SNAPSHOT.jar index 9192dbb..01e2cfb 100644 Binary files a/target/qlcb-1.0-SNAPSHOT.jar and b/target/qlcb-1.0-SNAPSHOT.jar differ