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 Thế Đạt | Phạm Văn Quân |
Tài khoản email/MS Team | anhbn4 | trungnd3 | 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-1052] Màn hình Tab Hồ sơ mời thầu (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 Hồ sơ mời thầu theo các version
2. Confirmation/ Acceptance Criteria (Tiêu chí nghiệm thu)
- Màn hình hiển thị thành phần hồ sơ mời thầu theo từ lĩnh vực, từng lần (vesion)
- Với các hồ sơ mời thầu được sửa ở các lần thì có dấu hiệu nhận biết so với các hồ sơ không sửa
- Màn hình hiển thị trạng thái của các hồ sơ mời thầu
- Đang thực hiện → trạng thái hồ sơ chuyển sang bước người lập
- Chờ phê duyệt → trạng thái hồ sơ chuyển sang bước soát xét/ phê duyệt trung gian
- Đã phê duyệt → trạng thái hồ sơ đã được phê duyệt (bước hoàn thành công việc gửi Bản vẽ thiết kế)
- Đã phát hành → Thư ký phát hành hồ sơ mời thầu
- Thành viên hội đồng thầu có thể xem chi tiết từng loại hồ sơ mời thầu ở trạng thái phê duyệt cuối cùng
- Thư ký hội đồng thầu có thể kích hoạt chức năng điều chỉnh hồ sơ mời thầu tại màn hình này (thành viên khác ko được kích hoạt điều chỉnh hồ sơ mời thầu)
- Thư ký hội đồng đầu được phép kích hoạt từng loại hồ sơ điều chỉnh ở những thời điểm khác nhau (mỗi loại hồ sơ chỉ được điều chỉnh 01 lần trong một vòng điều chỉnh)
3. Conversation (Mô tả chi tiết)
3.1 UIUX:
3.1.1. Giao diện màn hình Tab Hồ sơ mời thầu Gói thầu Thi công
3.1.2. Giao diện màn hình Pop-up Tạo điều chỉnh gói thầu
3.1.4. Giao diện màn hình Pop-up Xác nhận điều chỉnh gói thầu
3.1.5. Giao diện màn hình Pop-up Xem điều chỉnh gói thầu
Màn hình quyền Xem điều chỉnh gói thầu
Màn hình quyền Thêm điều chỉnh gói thầu
3.3. API Spec
Method | GET | URL | application/tenderDocument/listV2 |
|---|---|---|---|
Description | API lấy dữ liệu hồ sơ mời thầu | ||
Note | API mới lấy dữ liệu theo "nhóm yêu cầu mua sắm". Với mỗi nhóm yêu cầu mua sắm sẽ cấu hình các loại hồ sơ để hiển thị. | ||
1. Headers
STT | Field | Source Data Type / Length | Description | Sample Values |
|---|---|---|---|---|
| 1 | authorization | <token> | Token của người dùng đăng nhập | Bearer eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3NjY0NTU3ODksInVzZXIiOiJ7XCJpZFwiOjIwMjAsXCJ1c2VybmFtZVwiOlwiMDM3NDc4ODQwNVwiLFwibmFtZVwiOlwiQ2h1IFRo4buLIExpw6puXCIsXCJyb2xlc1wiOltdLFwibWFwQmVhdXR5U2Fsb25cIjp7XCJicG0ucmVib3JuLnZuXCI6Nn0sXCJlbXBsb3llZUlkXCI6NTMxLFwiYnJhbmNoSWRcIjoyM30ifQ.wrvIFd-Q2kHgkTmPf6ryMY6aDIgXpNsWmSvvifQWc5k |
2. Request
STT | Field | Require | Data Type / Length | Description | Note | Sample Values |
|---|---|---|---|---|---|---|
| 1 | potId | true | Integer | id hồ sơ |
3. Response / Incoming Data Specification
| STT | Field | Data Type / Length | Description | Note | Sample Values |
|---|---|---|---|---|---|
| 1 | code | Integer | 0: thành công còn lại thất bại | ||
| 2 | message | String | message | ||
| 3 | result | List<Object> | kết quả trả ra | ||
| 4 | (result) round | Integer | lần điều chỉnh | ||
| 5 | (result) documents | List<Object> | danh sách hồ sơ | ||
| 6 | (documents) id | Integer | |||
| 7 | (documents) name | String | Tên hồ sơ | Phạm vi công việc, Tiêu chí thí nghiệm... | |
| 8 | (documents) isAdjustment | Boolean | đánh dấu xem hồ sơ này có điều chỉnh không, mặc định là false | Với trường hợp điều chỉnh hồ sơ mời thầu thì các hồ sơ được đánh dấu điều chỉnh sẽ có giá trị true | |
| 9 | (documents) status | Integer | trạng thái | 1: Đang thực hiện, 2: Chờ phê duyệt, 3: Đã phê duyệt, 4: Đã phát hành | |
| 10 | (documents) nodeId | String | Nếu ở trạng thái hoàn thành thì sẽ dùng field này để mở eform. | ||
| 11 | (documents) documentType | String | loại hồ sơ | HSTC, PVCV... | |
| 12 | (documents) employeeIds | List<Integer> | danh sách id nhân viên được giao việc | trường hợp hồ sơ đã phát hành thì sẽ có id gói thầu | |
| 13 | (documents) potId | Integer | id hồ sơ | ||
| 14 | (documents) note | String | ghi chú | ||
| 15 | (documents) attachments | String | link tệp đính kèm |
Method | POST | URL | application/tenderDocument/update |
|---|---|---|---|
Description | API update trạng thái hồ sơ | ||
Note | API update trạng thái hồ sơ khi hoàn thành công việc. Cần tạo service task trong quy trình để thay đổi trạng thái hồ sơ | ||
1. Headers
STT | Field | Source Data Type / Length | Description | Sample Values |
|---|---|---|---|---|
| 1 | authorization | <token> | Token của người dùng đăng nhập | Bearer eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3NjY0NTU3ODksInVzZXIiOiJ7XCJpZFwiOjIwMjAsXCJ1c2VybmFtZVwiOlwiMDM3NDc4ODQwNVwiLFwibmFtZVwiOlwiQ2h1IFRo4buLIExpw6puXCIsXCJyb2xlc1wiOltdLFwibWFwQmVhdXR5U2Fsb25cIjp7XCJicG0ucmVib3JuLnZuXCI6Nn0sXCJlbXBsb3llZUlkXCI6NTMxLFwiYnJhbmNoSWRcIjoyM30ifQ.wrvIFd-Q2kHgkTmPf6ryMY6aDIgXpNsWmSvvifQWc5k |
2. Request
STT | Field | Require | Data Type / Length | Description | Note | Sample Values |
|---|---|---|---|---|---|---|
| 1 | potId | true | Integer | id hồ sơ | ||
| 2 | status | true | Integer | trạng thái | ||
| 3 | documentType | true | String | loại hồ sơ |
3. Response / Incoming Data Specification
| STT | Field | Data Type / Length | Description | Note | Sample Values |
|---|---|---|---|---|---|
| 1 | code | Integer | 0: thành công còn lại thất bại | ||
| 2 | message | String | message |
Method | GET | URL | system/employee/list |
|---|---|---|---|
Description | API lấy danh sách nhân viên (dùng cho phần điều chỉnh hồ sơ) | ||
Note | API cũ đã có rồi | ||
1. Headers
STT | Field | Source Data Type / Length | Description | Sample Values |
|---|---|---|---|---|
| 1 | authorization | <token> | Token của người dùng đăng nhập | Bearer eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3NjY0NTU3ODksInVzZXIiOiJ7XCJpZFwiOjIwMjAsXCJ1c2VybmFtZVwiOlwiMDM3NDc4ODQwNVwiLFwibmFtZVwiOlwiQ2h1IFRo4buLIExpw6puXCIsXCJyb2xlc1wiOltdLFwibWFwQmVhdXR5U2Fsb25cIjp7XCJicG0ucmVib3JuLnZuXCI6Nn0sXCJlbXBsb3llZUlkXCI6NTMxLFwiYnJhbmNoSWRcIjoyM30ifQ.wrvIFd-Q2kHgkTmPf6ryMY6aDIgXpNsWmSvvifQWc5k |
2. Request
STT | Field | Require | Data Type / Length | Description | Note | Sample Values |
|---|---|---|---|---|---|---|
| 1 | name | false | String | tên nhân viên | ||
| 2 | page | true | Integer | |||
| 3 | limit | true | Integer |
3. Response / Incoming Data Specification
| STT | Field | Data Type / Length | Description | Note | Sample Values |
|---|---|---|---|---|---|
| 1 | code | Integer | 0: thành công còn lại thất bại | ||
| 2 | message | String | message | ||
| 3 | result | Object | kết quả | ||
| 4 | (result) total | Integer | tổng số bản ghi | ||
| 5 | (result) page | Integer | trang | ||
| 6 | (result) loadMoreAble | boolean | |||
| 7 | (result) preLoadAble | boolean | |||
| 8 | (result) items | List<Object> | Danh sách user | ||
| 9 | (items) id | Integer | id nhân viên | ||
| 10 | (items) name | String | tên nhân viên | ||
| 11 | (items) userName | String | |||
| 12 | (items) avatar | String | ảnh đại diện | ||
| 13 | (items) phone | String | số điện thoại | ||
| 14 | (items) address | String | địa chỉ | ||
| 15 | (items) userId | Integer | |||
| 16 | Còn một số các field khác thì đang không cần xử lý ở giao diện nên không list ra | ||||
Method | POST | URL | adminapi/upload/file |
|---|---|---|---|
Description | API upload file | ||
Note | API cũ đã có rồi | ||
1. Headers
STT | Field | Source Data Type / Length | Description | Sample Values |
|---|---|---|---|---|
| 1 | authorization | <token> | Token của người dùng đăng nhập | Bearer eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3NjY0NTU3ODksInVzZXIiOiJ7XCJpZFwiOjIwMjAsXCJ1c2VybmFtZVwiOlwiMDM3NDc4ODQwNVwiLFwibmFtZVwiOlwiQ2h1IFRo4buLIExpw6puXCIsXCJyb2xlc1wiOltdLFwibWFwQmVhdXR5U2Fsb25cIjp7XCJicG0ucmVib3JuLnZuXCI6Nn0sXCJlbXBsb3llZUlkXCI6NTMxLFwiYnJhbmNoSWRcIjoyM30ifQ.wrvIFd-Q2kHgkTmPf6ryMY6aDIgXpNsWmSvvifQWc5k |
2. Request body
STT | Field | Require | Data Type / Length | Description | Note | Sample Values |
|---|---|---|---|---|---|---|
| 1 | file | true | file | file tải lên |
3. Response / Incoming Data Specification
| STT | Field | Data Type / Length | Description | Note | Sample Values |
|---|---|---|---|---|---|
| 1 | code | Integer | 0: thành công còn lại thất bại | ||
| 2 | message | String | message | ||
| 3 | result | Object | kết quả | ||
| 4 | (result) fileUrl | String | url của file | ||
| 5 | (result) fileSize | Integer | dung lượng | ||
| 6 | (result) fileName | String | tên file | ||
| 7 | (result) width | Integer | chiều rộng | ||
| 8 | (result) height | Integer | chiều cao | ||
| 9 | (result) extension | String | loại file | ||
| 10 | (result) fileType | String | |||
| 11 | (result) mineType | String | |||
| 12 | (result) employeeId | Integer | id nhân viên tải lên |
Method | POST | URL | application/adjustments/submi |
|---|---|---|---|
Description | API gửi yêu cầu điều chỉnh | ||
Note | API cũ đã có rồi nhưng cần sửa lại logic 1 chút. Logic ngoài các item gửi lên thì cần duplicate các item mà không điều chỉnh ở version trước đó | ||
1. Headers
STT | Field | Source Data Type / Length | Description | Sample Values |
|---|---|---|---|---|
| 1 | authorization | <token> | Token của người dùng đăng nhập | Bearer eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3NjY0NTU3ODksInVzZXIiOiJ7XCJpZFwiOjIwMjAsXCJ1c2VybmFtZVwiOlwiMDM3NDc4ODQwNVwiLFwibmFtZVwiOlwiQ2h1IFRo4buLIExpw6puXCIsXCJyb2xlc1wiOltdLFwibWFwQmVhdXR5U2Fsb25cIjp7XCJicG0ucmVib3JuLnZuXCI6Nn0sXCJlbXBsb3llZUlkXCI6NTMxLFwiYnJhbmNoSWRcIjoyM30ifQ.wrvIFd-Q2kHgkTmPf6ryMY6aDIgXpNsWmSvvifQWc5k |
2. Request body
STT | Field | Require | Data Type / Length | Description | Note | Sample Values |
|---|---|---|---|---|---|---|
| 1 | documentType | true | String | loại hồ sơ | ||
| 2 | employeeId | true | Integer | id nhân viên nhận việc điều chỉnh hồ sơ | ||
| 3 | note | true | String | ghi chú | ||
| 4 | attachments | true | String | link file | ||
| 5 | processingTimeDay | true | Integer | thời gian số ngày xử lý | ||
| 6 | processingTimeHour | true | Integer | thời gian số giờ xử lý | ||
| 7 | processingTimeMinute | true | Integer | thời gian số phút xử lý | ||
| 8 | responseTimeDay | true | Integer | thời gian số ngày phản hồi | ||
| 9 | responseTimeHour | true | Integer | thời gian số giờ phản hồi | ||
| 10 | responseTimeMinute | true | Integer | thời gian số phút phản hồi | ||
| 11 | potId | true | Integer | id hồ sơ | ||
| 12 | round | true | Integer | vòng điều chỉnh |
3. Response / Incoming Data Specification
| STT | Field | Data Type / Length | Description | Note | Sample Values |
|---|---|---|---|---|---|
| 1 | code | Integer | 0: thành công còn lại thất bại | ||
| 2 | message | String | message |
4. Mô tả các trường dữ liệu trên màn hình
4.1. Mô tả màn hình Hồ sơ mời thầu
Màn hình hồ sơ mời thầu được mở cho phép người dùng nhấn khi hoàn thành phê duyệt cuối cùng bước Phê duyệt yêu cầu mua sắm/TT chủ trường (hoàn thành bước A1.01 theo cấu hình)
Màn hình hồ sơ mời thầu 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:
- Xem các lần và truy cập từng loại hồ sơ mời thầu:
- Xem lịch sử yêu cầu điều chỉnh; Pop-up Xem thông tin chỉnh sửa ẩn nút chức năng "Gửi yêu cầu điều chỉnh" và "Thêm lần điều chỉnh"
- Thêm:
- Gửi yêu cầu điều chỉnh: Pop-up tạo mới yêu cầu chỉnh sửa hiển thị nút chức năng "Gửi yêu cầu điều chỉnh"
- Thêm lần điều chỉnh: Pop-up tạo mới yêu cầu chỉnh sửa hiển thị nút chức năng "Thêm lần điều chỉnh"
| STT | Trường/Nút chức năng | Kiểu dữ liệu | Điều kiện | Quy định | Mô tả | Ghi chú |
|---|---|---|---|---|---|---|
| 1 | Nút "Điều chỉnh" | Button | Nhấn vào sẽ hiển thị Pop-up Điều chỉnh gói thầu | Nút cho phép truy cập vào màn hình điều chỉnh hồ sơ mời thầu | ||
| 2 | Nhãn số lần ("Lần 1") | Số lần (int) |
| Lần 1 là lần lập HSMT (lần lập đầu tiên trong quy trình bước A1.02) Khi người dùng nhấn vào nhãn, hệ thống sẽ mở màn hình tiết điều chỉnh gói thầu tương ứng thể hiện danh sách những yêu cầu cần điều chỉnh trước đó | ||
| 3 | Tên hồ sơ | Hyperlink | Dữ liệu danh sách hồ sơ mời thầu được lấy thông tin từ danh mục "Nhóm gói thầu" thuộc "Loại gói thầu" của gói thầu đó với các loại hồ sơ được chọn là "Hồ sơ mời thầu" Dữ liệu được khởi tạo khi người dùng hoàn thành bước đầu tiên trong quy trình | Hiển thị danh sách hồ sơ mời thầu của gói thầu Hệ thống cho phép người dùng nhấn vào để mở ra màn hình eform bước phê duyệt cuối cùng của loại hồ sơ đó. Chỉ cho phép nhấn khi hồ sơ ở trạng thái Đã phê duyệt | ||
| 4 | Điều chỉnh | Text | Nếu loại hồ sơ nào được kích hoạt điều chỉnh trên hệ thống sẽ hiển thị điều chỉnh. | |||
| 5 | Trạng thái | Text | Hiển thị trạng thái của hồ sơ mời thầu:
Trạng thái luôn luôn được xác định theo công việc mới nhất của loại hồ sơ đó được sinh ra (ví dụ đang phê duyệt bị từ chối/YCDC hồ sơ quay về trạng thái Đang xử lý) | thaottt4 Phạm Văn Quân đã bổ sung nói rõ là bước cấu hình |
4.2. Mô tả các trường dữ liệu trong Pop-up Điều chỉnh gói thầu
Trường/Nút chức năng | Kiểu dữ liệu | Điều kiện | Quy định | Mô tả | |
|---|---|---|---|---|---|
| 1 | Nhãn số lần ("Lần 1") | Số lần (int) | Tự sinh |
| Hiển thị số lần hồ sơ mời thầu đã được điều chỉnh |
| 2 | Danh sách Hồ sơ mời thầu | Table / Checklist | Hiển thị khi mở pop-up |
| Hiển thị danh sách hồ sơ mời thầu |
| 3 | Người điều chỉnh hồ sơ | Dropdown (select user) |
|
| |
| 4 | Thêm người điều chỉnh | Button | Hiển thị khi số người hiện tại < số tối đa |
|
|
| 5 | Nút “X” – Xoá người điều chỉnh | Button (icon cạnh tên người) | Hiển thị khi có từ 2 người điều chỉnh trở lên trong 1 loại hồ sơ | Cho phép xoá người khỏi danh sách điều chỉnh hồ sơ mời thầu | Nằm cạnh tên người điều chỉnh, dùng để loại bỏ người phụ trách không còn tham gia điều chỉnh hồ sơ |
| 6 | Yêu cầu phê duyệt | Toggle / Switch |
|
| |
| 7 | Ghi chú | Text area | Không bắt buộc nhập. Tối đa 500 ký tự | Nhập nội dung mô tả cho yêu cầu điều chỉnh hồ sơ mời thầu tương ứng. | |
| 8 | Tệp đính kèm | File upload |
| Đính kèm tài liệu | |
| 9 | Nút Gửi yêu cầu xác nhận | Button |
| Gửi yêu cầu điều chỉnh hồ sơ tới người phê duyệt/tiếp nhận xử lý. | |
| 10 | Nút Hủy | Button | Không lưu bất kỳ thay đổi nào. Đóng popup ngay lập tức. | Dùng để thoát khỏi popup “Điều chỉnh gói thầu” mà không ghi nhận dữ liệu đã nhập. | |
| 11 | Nút “X” – Đóng pop-up Điều chỉnh | Button (icon góc trên bên phải) | Luôn hiển thị ở góc phải trên cùng của popup | Không lưu thay đổi, chỉ thoát popup | Cho phép người dùng thoát nhanh popup “Điều chỉnh gói thầu” mà không cần nhấn nút “Hủy” |
4.3. Mô tả các trường dữ liệu trong Pop-up Xác nhận gửi yêu cầu điều chỉnh gói thầu
Trường/Nút chức năng | Kiểu dữ liệu | Điều kiện | Quy định | Mô tả | |
|---|---|---|---|---|---|
| 1 | Thời gian phản hồi* | Number | Bắt buộc |
| Thời hạn thư ký hoặc người được phân công phản hồi nội dung điều chỉnh |
| 2 | Thời gian xử lý* | Number | Bắt buộc |
| Thời hạn để người điều chỉnh hoàn tất điều chỉnh HSMT theo yêu cầu |
| 3 | Nút Hủy | Button | Không lưu bất kỳ thay đổi nào. Đóng pop-up ngay lập tức. | Dùng để thoát khỏi pop-up “Điều chỉnh gói thầu” mà không ghi nhận dữ liệu đã nhập. | |
| 4 | Nút Áp dụng | Button | Chỉ cho phép nhấn khi điền đầy đủ thông tin bắt buộc. |
| Dùng để kích hoạt từ bước điều chỉnh hồ sơ mời thầu tương ứng từng loại hồ sơ điều chỉnh. |
4.4. Mô tả các trường dữ liệu trong Pop-up Xem Thông tin chỉnh sửa
STT | Trường/Nút chức năng | Kiểu dữ liệu | Điều kiện | Quy định | Mô tả |
|---|---|---|---|---|---|
| 1 | Nhãn số lần ("Lần 1") | Số lần (int) |
| Hiển thị số lần hồ sơ mời thầu đã được điều chỉnh | |
| 2 | Danh sách Hồ sơ mời thầu | Table / Checklist | Hiển thị khi mở pop-up | Chỉ cái loại hồ sơ mời thầu có hiển thị biểu tượng (được yêu cầu điều chỉnh của lần đó) | Hiển thị danh sách hồ sơ mời thầu được yêu cầu điều chỉnh |
| 3 | Người điều chỉnh hồ sơ | Dropdown (select user) | Không cho phép thêm/sửa/xóa | Hiển thị tên người chịu trách nhiệm điều chỉnh hồ sơ mời thầu. | |
| 4 | Yêu cầu phê duyệt | Button (icon cạnh tên người) | Hiển thị khi có từ 2 người điều chỉnh trở lên trong 1 loại hồ sơ | Không cho phép thêm/sửa/xóa | Nằm cạnh tên người điều chỉnh, dùng để loại bỏ người phụ trách không còn tham gia điều chỉnh hồ sơ |
| 5 | Chi tiết điều chỉnh | Khi tồn tại dữ liệu điều chỉnh, nút cho phép truy cập để xem chi tiết. | Khi click vào hiển thị màn hình eform bước điều chỉnh hồ sơ mời thầu. | ||
| 6 | Nút X - nút Đóng | Không lưu thay đổi, chỉ thoát pop-up | Cho phép người dùng thoát nhanh pop-up “Điều chỉnh gói thầu” mà không cần nhấn nút “Hủy” | ||
| 7 | Thêm lần điều chỉnh | Button | Hệ thống cho phép người dùng nhấn thêm lần điều chỉnh khi: Tất cả các quy trình điều chỉnh đã hoàn thành (đã cập nhật về màn hình thư ký tổng hợp và đã hoặc chưa phát hành). Công việc điều chỉnh mới sinh ra sẽ lấy dữ liệu từ công việc gần nhất hoàn thành. | Hệ thống mở Pop-up yêu cầu điều chỉnh hồ sơ mời thầu | |
| 8 | Phát hành hồ sơ mời thời | Button | Chỉ cho phép nhấn khi đã hoàn thành điều chỉnh tất cả hồ sơ mời thầu. | Hiển thị Pop-up xác nhận phát hành hồ sơ mời thầu. Khi phát hành HSMT, hệ thống cập nhật dữ liệu hồ sơ mời thầu mới nhất của lần điều chỉnh đó lên Portal nhà thầu |








