Nghiệp vụ | IT | |||
|---|---|---|---|---|
Người lập | Người duyệt | Người lập | Người duyệt | |
Họ & Tên | Bùi Nguyệt Anh | Nguyễn Đức Trung | Nguyễn Hữu Lộc | Phạm Văn Quân |
Tài khoản email/MS Team | anhbn4 | trungnd3 | Locnh1 | Quanpv3 |
Chức danh | Business Analyst (BA) | Product Owner (P.O) | Dev | Techlead |
Ngày soạn thảo/phê duyệt |
| 26.06.2025 | ||
Jira Ticket | [BSHKVH-1054] Màn hình Quản lý yêu cầu làm rõ (Chi tiết gói thầu) - Jira | |||
1. Card (Mô tả tính năng)
Là thành viên Hội đồng thầu tôi muốn quản lý tập trung các yêu cầu làm rõ hồ sơ mời thầu của nhà thầu và ý kiến phản hồi của thành viên hội đồng thầu
2. Confirmation/ Acceptance Criteria (Tiêu chí nghiệm thu)
- Thành viên hội đồng thầu xem được:
- Danh sách nhà thầu & tài khoản tương ứng các lần làm rõ của từng nhà thầu
- Thời gian xuất hiện yêu cầu làm rõ
- Trạng thái của yêu cầu làm rõ:
- Chờ phản hồi
- Đã phân công
- Chờ tổng hợp
- Đã phản hồi
- Lịch sử tổng hợp làm rõ hồ sơ mời thầu của thư ký hội đồng thầu
- Lịch sử yêu cầu làm rõ của từng nhà thầu
- Tìm kiếm nhanh theo tên nhà thầu
- Lọc theo thời gian và trạng thái xuất hiện yêu cầu làm rõ
- Thư ký hội đồng thầu có thể gửi Tổng hợp yêu cầu làm rõ (chung) cho tất cả các nhà thầu
- Thư ký hội đồng thầu có thể phân công thành viên hội đồng thầu phản hồi yêu cầu làm rõ
3. Conversation (Mô tả chi tiết)
3.1 UIUX Màn hình
3.1.1 Màn hình Quản lý yêu cầu làm rõ & Bộ lọc
3.1.2 Màn hình quản lý lịch sử tổng hợp làm rõ
Được phân quyền Thêm Được phân quyền xem
3.1.3 Màn hình Yêu cầu làm rõ
Được phân quyền Thêm Được phân quyền Xem
3.2 Luồng:
3.3 API Spec: <gắn link tài liệu mô tả API vào đây>
Method | GET | URL | <DOMAIN>/application/clarificationRequest/byTenderPackage |
|---|---|---|---|
Description | API danh sách quản lý yêu cầu làm rõ | ||
Note | Đã có api cũ nhưng hiện tại api cũ đang là lấy tất cả chứ không chia theo từng gói thầu và phải lược bỏ một số param không dùng đến. | ||
1. Headers
STT | Field | Source Data Type / Length | Description | Sample Values |
|---|---|---|---|---|
| authorization | String | Token | Bearer eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3NjYzMDk1MTgsInVzZXIiOiJ7XCJpZFwiOjIwMjAsXCJ1c2VybmFtZVwiOlwiMDM3NDc4ODQwNVwiLFwibmFtZVwiOlwiQ2h1IFRo4buLIExpw6 puXCIsXCJyb2xlc1wiOltdLFwibWFwQmVhdXR5U2Fsb25cIjp7XCJicG0ucmVib3JuLnZuXCI6Nn0sXCJlbXBsb3llZUlkXCI6NTMxLFwiYnJhbmNoSWRcIjoyM30ifQ.UGz8TQudVxEd7rp_rsLXePraHELTRWHyc7iXNvVnn14 |
2. Param
STT | Field | Required | Data Type / Length | Description | Note |
|---|---|---|---|---|---|
| 1 | organizationName | String | Tên nhà thầu | ||
| 2 | tenderPackageId | true | Integer | Id gói thầu | |
| 3 | status | Integer | Trạng thái | ||
| 4 | startDate | String | Thời gian nhận từ ngày | ||
| 5 | endDate | String | Thời gian nhận đến ngày | ||
| 6 | limit | Integer | Số bản ghi | ||
| 7 | page | Integer | Trang |
3. Response / Incoming Data Specification
| STT | Field | Data Type / Length | Description | Note | Sample Values |
|---|---|---|---|---|---|
| code | Integer | Code | |||
| message | String | Message | |||
| loadMoreAble | Boolean | ||||
| preLoadAble | Boolean | ||||
| result | Object | Kết quả | |||
| result.total | Long | Tổng số bản ghi | |||
| result.page | Integer | Số trang hiện tại | |||
| result.items | List | Danh sách kết quả | |||
| result.items[?].id | Integer | Id | |||
| result.items[?].organizationId | Integer | Id nhà thầu | |||
| result.items[?].organizationName | String | Tên nhà thầu | |||
| result.items[?].contactId | Integer | Id người liên hệ | |||
| result.items[?].contactName | String | Tên người liên hệ | |||
| result.items[?].contactEmail | String | Email người liên hệ | |||
| result.items[?].round | Integer | Số lần làm rõ | |||
| result.items[?].createdTime | Timestamp | Thời gian nhận | |||
| result.items[?].status | Integer | Trạng thái |
Method | POST | URL | <DOMAIN>/application/generalClarification/update |
|---|---|---|---|
Description | API gửi tổng hợp làm rõ HSMT | ||
Note | Đã có | ||
1. Headers
STT | Field | Source Data Type / Length | Description | Sample Values |
|---|---|---|---|---|
| authorization | String | Token | Bearer eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3NjYzMDk1MTgsInVzZXIiOiJ7XCJpZFwiOjIwMjAsXCJ1c2VybmFtZVwiOlwiMDM3NDc4ODQwNVwiLFwibmFtZVwiOlwiQ2h1IFRo4buLIExpw6 puXCIsXCJyb2xlc1wiOltdLFwibWFwQmVhdXR5U2Fsb25cIjp7XCJicG0ucmVib3JuLnZuXCI6Nn0sXCJlbXBsb3llZUlkXCI6NTMxLFwiYnJhbmNoSWRcIjoyM30ifQ.UGz8TQudVxEd7rp_rsLXePraHELTRWHyc7iXNvVnn14 |
2. Body
STT | Field | Required | Data Type / Length | Description | Note |
|---|---|---|---|---|---|
| 1 | id | true | Integer | id tổng hợp làm rõ HSMT, mặc định thêm mới = 0 | |
| 2 | content | String | Nội dung | ||
| 3 | packageId | true | Integer | Id gói thầu | |
| 4 | attachments | String | Danh sách file |
3. Response / Incoming Data Specification
| STT | Field | Data Type / Length | Description | Note | Sample Values |
|---|---|---|---|---|---|
| code | Integer | Code | |||
| message | String | Message | |||
| result | Object | Kết quả | |||
| result.id | Integer | id tổng hợp làm rõ HSMT | |||
| result.packageId | Integer | Id gói thầu | |||
| result.content | String | Nội dung | |||
| result.attachments | String | Danh sách file | |||
| result.employeeId | Integer | Người tạo | |||
| result.createdTime | Timestamp | Thời gian tạo |
Method | GET | URL | <DOMAIN>/application/generalClarification/list |
|---|---|---|---|
Description | API Lịch sử gửi tổng hợp làm rõ HSMT | ||
Note | Đã có | ||
1. Headers
STT | Field | Source Data Type / Length | Description | Sample Values |
|---|---|---|---|---|
| authorization | String | Token | Bearer eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3NjYzMDk1MTgsInVzZXIiOiJ7XCJpZFwiOjIwMjAsXCJ1c2VybmFtZVwiOlwiMDM3NDc4ODQwNVwiLFwibmFtZVwiOlwiQ2h1IFRo4buLIExpw6 puXCIsXCJyb2xlc1wiOltdLFwibWFwQmVhdXR5U2Fsb25cIjp7XCJicG0ucmVib3JuLnZuXCI6Nn0sXCJlbXBsb3llZUlkXCI6NTMxLFwiYnJhbmNoSWRcIjoyM30ifQ.UGz8TQudVxEd7rp_rsLXePraHELTRWHyc7iXNvVnn14 |
2. PARAM
STT | Field | Required | Data Type / Length | Description | Note |
|---|---|---|---|---|---|
| 1 | packageId | true | Integer | Id gói thầu |
3. Response / Incoming Data Specification
| STT | Field | Data Type / Length | Description | Note | Sample Values |
|---|---|---|---|---|---|
| code | Integer | Code | |||
| message | String | Message | |||
| result | Object | Kết quả | |||
| result[?].id | Integer | id tổng hợp làm rõ HSMT | |||
| result[?].packageId | Integer | Id gói thầu | |||
| result[?].content | String | Nội dung | |||
| result[?].attachments | String | Danh sách file | |||
| result[?].employeeId | Integer | Người tạo | |||
| result[?].createdTime | Timestamp | Thời gian tạo |
Method | GET | URL | <DOMAIN>/application/clarificationDetail/list |
|---|---|---|---|
Description | API danh sách chi tiết yêu cầu làm rõ | ||
Note | Đã có | ||
1. Headers
STT | Field | Source Data Type / Length | Description | Sample Values |
|---|---|---|---|---|
| authorization | String | Token | Bearer eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3NjYzMDk1MTgsInVzZXIiOiJ7XCJpZFwiOjIwMjAsXCJ1c2VybmFtZVwiOlwiMDM3NDc4ODQwNVwiLFwibmFtZVwiOlwiQ2h1IFRo4buLIExpw6 puXCIsXCJyb2xlc1wiOltdLFwibWFwQmVhdXR5U2Fsb25cIjp7XCJicG0ucmVib3JuLnZuXCI6Nn0sXCJlbXBsb3llZUlkXCI6NTMxLFwiYnJhbmNoSWRcIjoyM30ifQ.UGz8TQudVxEd7rp_rsLXePraHELTRWHyc7iXNvVnn14 |
2. PARAM
STT | Field | Required | Data Type / Length | Description | Note |
|---|---|---|---|---|---|
| 1 | clarificationId | true | Integer | Id gói thầu | |
| round | true | Integer | Số vòng |
3. Response / Incoming Data Specification
| STT | Field | Data Type / Length | Description | Note | Sample Values |
|---|---|---|---|---|---|
| code | Integer | Code | |||
| message | String | Message | |||
| result | Object | Kết quả | |||
| result[?].id | Integer | id tổng hợp làm rõ HSMT | |||
| result[?].attachments | String | Danh sách file | |||
| result[?].content | String | Nội dung | |||
| result[?].assignTime | Timestamp | ||||
| result[?].processTime | Timestamp | ||||
| result[?].status | Integer | Trạng thái | |||
| result[?].employeeId | Integer | ||||
| result[?].employeeName | String | ||||
| result[?].documentId | Integer | ||||
| result[?].clarificationId | Integer | ||||
| result[?].organizationId | Integer | ||||
| result[?].documentName | String | ||||
| result[?].documentPosition | String | ||||
| result[?].idFromPortal | Integer | ||||
| result[?].documentType | String | ||||
| result[?].documentEmployeeName | String | ||||
| result[?].documentEmployeeId | String | ||||
| result[?].employeeIdSow | Integer | ||||
| result[?].employeeIdBom | Integer | ||||
| result[?].employeeIdEngineer | Integer | ||||
| result[?].employeeIdExperiment | Integer | ||||
| result[?].employeeIdBoq | Integer | ||||
| result[?].employeeIdDesign | Integer | ||||
| result[?].employeeIdSplcontact | Integer | ||||
| result[?].employeePackageId | Integer | ||||
| result[?].employeeNameSow | String | ||||
| result[?].employeeNameBom | String | ||||
| result[?].employeeNameEngineer | String | ||||
| result[?].employeeNameExperiment | String | ||||
| result[?].employeeNameBoq | String | ||||
| result[?].employeeNameDesign | String | ||||
| result[?].employeeNameSplcontact | String |
Method | GET | URL | <DOMAIN>/system/employee/list |
|---|---|---|---|
Description | API Danh sách nhân viên | ||
Note | Đã có | ||
1. Headers
STT | Field | Source Data Type / Length | Description | Sample Values |
|---|---|---|---|---|
| authorization | String | Token | Bearer eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3NjYzMDk1MTgsInVzZXIiOiJ7XCJpZFwiOjIwMjAsXCJ1c2VybmFtZVwiOlwiMDM3NDc4ODQwNVwiLFwibmFtZVwiOlwiQ2h1IFRo4buLIExpw6 puXCIsXCJyb2xlc1wiOltdLFwibWFwQmVhdXR5U2Fsb25cIjp7XCJicG0ucmVib3JuLnZuXCI6Nn0sXCJlbXBsb3llZUlkXCI6NTMxLFwiYnJhbmNoSWRcIjoyM30ifQ.UGz8TQudVxEd7rp_rsLXePraHELTRWHyc7iXNvVnn14 |
2. PARAM
STT | Field | Required | Data Type / Length | Description | Note |
|---|---|---|---|---|---|
| 1 | name | String | Tên, email nhân viên | ||
| page | Integer | ||||
| limit | Integer |
3. Response / Incoming Data Specification
| STT | Field | Data Type / Length | Description | Note | Sample Values |
|---|---|---|---|---|---|
| code | Integer | Code | |||
| message | String | Message | |||
| total | Long | Tổng số bản ghi | |||
| page | Integer | Số trang | |||
| result | Object | Kết quả | |||
| result.item[?].id | Integer | Id user | |||
| result.item[?].name | String | Tên | |||
| result.item[?].userName | String | Tên đăng nhập | |||
| result.item[?].avatar | String | avatar | |||
| result.item[?].phone | String | Số điện thoại | |||
| result.item[?].email | String | ||||
| result.item[?].address | String | Đại chỉ | |||
| result.item[?].jteId | Integer | ||||
| result.item[?].jteName | String | ||||
| result.item[?].departmentId | Integer | ||||
| result.item[?].roles | String | ||||
| result.item[?].leadership | Integer | ||||
| result.item[?].status | Integer | ||||
| result.item[?].position | Integer | ||||
| result.item[?].isOwner | Integer | ||||
| result.item[?].userId | Integer | ||||
| result.item[?].managerId | Integer | ||||
| result.item[?].serviceCount | Integer | ||||
| result.item[?].title | String | ||||
| result.item[?].branchName | String | ||||
| result.item[?].branchAddress | String | ||||
| result.item[?].departmentName | String | ||||
| result.item[?].viewMode | Integer | ||||
| result.item[?].idToken | String | ||||
| result.item[?].accessToken | String | ||||
| result.item[?].uniqueId | String | ||||
| result.item[?].viewCustomerMode | Integer | ||||
| result.item[?].viewBusinessPartnerMode | Integer | ||||
| result.item[?].sip | String | ||||
| result.item[?].shiftId | Integer | ||||
| result.item[?].shiftName | String | ||||
| result.item[?].branchId | Integer | ||||
| result.item[?].bsnId | Integer | ||||
| result.item[?].managerName | String | ||||
| result.item[?].managerAvatar | String | ||||
| result.item[?].lstEmployeeId | List<Integer> | ||||
| result.item[?].rank | Integer | ||||
| result.item[?].tmpId | Integer | ||||
| result.item[?].lstOrgApp | List<EBOrgApp> | public class EBOrgApp { | |||
| result.item[?].lstEmployeeRole | List<JobTitle> | public class JobTitle { |
Method | POST | URL | <DOMAIN>/application/clarificationRequest/assign |
|---|---|---|---|
Description | API Gửi phân công yêu cầu làm rõ | ||
Note | Đã có | ||
1. Headers
STT | Field | Source Data Type / Length | Description | Sample Values |
|---|---|---|---|---|
| authorization | String | Token | Bearer eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3NjYzMDk1MTgsInVzZXIiOiJ7XCJpZFwiOjIwMjAsXCJ1c2VybmFtZVwiOlwiMDM3NDc4ODQwNVwiLFwibmFtZVwiOlwiQ2h1IFRo4buLIExpw6 puXCIsXCJyb2xlc1wiOltdLFwibWFwQmVhdXR5U2Fsb25cIjp7XCJicG0ucmVib3JuLnZuXCI6Nn0sXCJlbXBsb3llZUlkXCI6NTMxLFwiYnJhbmNoSWRcIjoyM30ifQ.UGz8TQudVxEd7rp_rsLXePraHELTRWHyc7iXNvVnn14 |
2. BODY
STT | Field | Required | Data Type / Length | Description | Note |
|---|---|---|---|---|---|
| 1 | clarificationDetail | List<ClarificationDetail> | public class ClarificationDetail { |
3. Response / Incoming Data Specification
| STT | Field | Data Type / Length | Description | Note | Sample Values |
|---|---|---|---|---|---|
| code | Integer | Code | |||
| message | String | Message | |||
| result | Object | Kết quả | |||
| result.id | Integer | Id | |||
| result.round | Integer | Số vòng | |||
| result.status | Integer | Trạng thái | |||
| result.assignTime | Timestamp | Thời gian assign | |||
| result.createdTime | Timestamp | Thời gian tạo | |||
| result.responseTimeDay | Integer | Thời gian phản hồi (ngày) | |||
| result.responseTimeHour | Integer | Thời gian phản hồi (giờ) | |||
| result.responseTimeMinute | Integer | Thời gian phản hồi (phút) | |||
| result.responseTime | Timestamp | Thời gian phản hồi | |||
| result.organizationId | Integer | ||||
| result.packageId | Integer | ||||
| result.projectId | Integer | ||||
| result.packageName | String | ||||
| result.projectName | String | ||||
| result.branchName | String | ||||
| result.tenderPackageName | String | ||||
| result.packageProjectName | String | ||||
| result.packageProjectCode | String | ||||
| result.idFromPortal | Integer | ||||
| result.contactId | Integer | ||||
| result.userId | Integer | ||||
| result.processingTimeDay | Integer | Thời gian xử lý (ngày) | |||
| result.processingTimeHour | Integer | Thời gian xử lý (giờ) | |||
| result.processingTimeMinute | Integer | Thời gian xử lý (phút) | |||
| result.organizationName | Integer |
4. Mô tả các trường dữ liệu trên màn hình
4.1 Màn hình Quản lý yêu cầu làm rõ
4.1.1. Phân quyền
Màn hình Quản lý yêu cầu làm rõ được mở cho phép người dùng nhấn khi gói thầu đã được phát hành (hoàn thành bước A1.04 thực hiện mời thầu)
Màn hình Quản lý yêu cầu làm rõ là một đối tượng phân quyền tại chức năng: Quản lý người dùng > Quản lý cơ sở > Danh sách phòng ban > Cấu hình phân quyền
Với Site đấu thầu là chức năng cha và "Hồ sơ mời thầu" là chức năng con với các quyền:
- Xem:
- Cho phép xem danh sách yêu cầu làm rõ: ẩn nút chức năng "Gửi tổng hợp"
- Cho phép xem chi tiết phân công Yêu cầu làm rõ: nhấn vào tên nhà thầu để mở Pop-up Xem yêu cầu làm rõ: ẩn nút chức năng "Gửi phân công làm rõ yêu cầu", "Gửi trả lời yêu cầu làm rõ"
- Cho phép xem chi tiết yêu cầu màn rõ: nhấn vào biểu tượng con mặt trong màn hình Phân công yêu cầu làm rõ: ẩn nút chức năng "Lưu"
- Cho phép xem lịch sử yêu cầu làm rõ: Hiển thị nút chức năng "Lịch sử", trong màn hình lịch sử ẩn nút chức năng "Tổng hợp mới"
- Thêm:
- Cho phép người dùng gửi tổng hợp yêu cầu làm rõ: màn hình Quản lý yêu cầu làm rõ hiển thị nút chức năng "Gửi tổng hợp"
- Cho phép chỉnh sửa chi tiết yêu cầu màn rõ: nhấn vào biểu tượng con mặt trong màn hình Phân công yêu cầu làm rõ hiển thị nút chức năng "Lưu"
- Cho phép người dùng tổng hợp mới từ lịch sử yêu cầu làm rõ: màn hình Lịch sử yêu cầu làm rõ hiển thị nút chức năng "Tổng hợp mới"
- Cho phép người dùng phân công yêu cầu làm rõ: màn hình chi tiết Yêu cầu làm rõ hiển thị nút chức năng "Gửi phân công làm rõ yêu cầu", "Gửi trả lời yêu cầu làm rõ"
4.1.2. Mô tả về các trường/nút chức năng rên màn hình quản lý yêu cầu làm rõ & bộ lọc
4.1.2.1 Màn hình Quản lý yêu cầu làm rõ
STT | Trường/Nút chức năng | Kiểu dữ liệu | Điều kiện | Quy định | Mô tả |
|---|---|---|---|---|---|
Màn hình quản lý yêu cầu làm rõ | |||||
| 1 | STT | Number | Số thự tự hệ thống tự sinh | ||
| 2 | Nhà thầu | Hyperlink | Hiển thị danh sách nhà thầu gửi yêu cầu làm rõ Nhấn vào tên nhà thầu hệ thống mở Pop-up chi tiết yêu cầu làm rõ | ||
| 3 | Tên người liên hệ | Text | Hiển thị tên người liên hệ gửi yêu cầu làm rõ | ||
| 4 | Email người liên hệ | Text | Hiển thị email (tài khoản) gửi yêu cầu làm rõ | ||
| 5 | Lần làm rõ | Number | Hiển thị lần làm rõ hiện tại của nhà thầu | ||
| 6 | Thời gian nhận | Date time | Hiển thị thời gian yêu cầu làm rõ gần nhất của nhà thầu | ||
| 7 | Trạng thái | Text | Trạng thái làm rõ của nhà thầu:
| ||
| 8 | Bộ lọc | Button | Chức năng cho phép người dùng thực hiện lọc nhà thầu cần xử lý làm rõ Nhấn vào hệ thống hiển thị Pop-up điều kiện lọc | ||
| 9 | Searchbox | Searchbox | Chức năng cho phép người dùng thực hiện tìm kiếm theo tên nhà thầu | ||
Màn hình bộ lọc | |||||
| 1 | Từ ngày | Date | Cho phép người dùng nhập thông tin từ ngày | ||
| 2 | Đến ngày | Date | Cho phép người dùng nhập thông tin đến ngày | ||
| 3 | Trạng thái | Droplist | Cho phép người dùng lựa chọn các trạng thái làm rõ của nhà thầu:
| ||
| 4 | Đặt lại | Button | Chức năng cho phép người dùng xóa hết các điều kiện lọc đã chọn | ||
| 5 | Áp dụng | Button | Với trường hợp lọc nhiều điều kiện hệ thống sử dụng điều kiện And.
| Chức năng cho phép người dùng lọc dữ liệu theo các kiều kiện đã chọn. Hệ thống tắt màn hình Pop-up điều kiện lọc. | |
4.1.2.2 Màn hình Pop-up Chi tiết yêu cầu làm rõ
STT | Trường/Nút chức năng | Kiểu dữ liệu | Điều kiện | Quy định | Mô tả |
|---|---|---|---|---|---|
| 1 | Tab lần gửi yêu cầu làm rõ | Number | Hiển thị danh sách các lần làm rõ của nhà thầu Hệ thống mặc định hiển thị lần gần nhất khi mở ra Pop-up Hệ thống cho phép nhấn vào các lần trước đó để xem lại lịch sử phân công và chi tiết nội dung đàm phán từng lần | ||
| 2 | STT | Number | Tham chiếu tài liệu URD mục 2.7.4.3 | ||
| 3 | Tên hồ sơ | Text | Tham chiếu tài liệu URD mục 2.7.4.3 | ||
| 4 | Người trả lời yêu cầu làm rõ | Text | Tham chiếu tài liệu URD mục 2.7.4.3 | ||
| 5 | Trạng thái | Number | Tham chiếu tài liệu URD mục 2.7.4.3 | ||
| 6 | Nút xem chi tiết | Date time | Tham chiếu tài liệu URD mục 2.7.4.3 | ||
| 7 | Nút “Gửi tổng hợp” | Text | Tham chiếu tài liệu URD mục 2.7.4.3 |







