[update] Enhance DataDialog and related components to support search by checkup ID. Introduce new ID search field and update request handling in GetCheckupDataRequest and ServerHandler. Modify ultrasound report templates to include ID and barcode generation for improved data presentation.

This commit is contained in:
Lê Thành Đạt committed 2025-08-04 11:08:15 +07:00
1 parent bb1ee74238
commit 1fcd1e4106
10 files changed
+125 -85

No files matched your search

@@ -1368,8 +1368,20 @@ public class ServerHandler extends SimpleChannelInboundHandler<TextWebSocketFram
StringBuilder whereClause = new StringBuilder();
java.util.List<Object> params = new java.util.ArrayList<>();
boolean hasWhere = false;
if (getCheckupDataRequest.getSearchTerm() != null && !getCheckupDataRequest.getSearchTerm().trim().isEmpty()) {
String checkupIdSearch = getCheckupDataRequest.getCheckupIdSearch();
if (checkupIdSearch != null && !checkupIdSearch.trim().isEmpty()) {
whereClause.append("WHERE a.checkup_id = ?");
try {
// Chuyển đổi sang kiểu số để tìm kiếm chính xác và an toàn
params.add(Integer.parseInt(checkupIdSearch.trim()));
} catch (NumberFormatException e) {
// Nếu người dùng nhập chữ, ta truyền một giá trị không thể tìm thấy để trả về 0 kết quả
params.add(-1);
}
hasWhere = true;
}
else if (getCheckupDataRequest.getSearchTerm() != null && !getCheckupDataRequest.getSearchTerm().trim().isEmpty()) {
whereClause.append("WHERE (LOWER(c.customer_first_name) LIKE ? OR LOWER(c.customer_last_name) LIKE ? OR " +
"LOWER(CONCAT(c.customer_last_name, ' ', c.customer_first_name)) LIKE ? OR c.customer_number LIKE ?)");
String searchTerm = "%" + getCheckupDataRequest.getSearchTerm().toLowerCase().trim() + "%";