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
...
| Panel |
|---|
| title | API lấy dữ liệu hồ sơ mời thầu |
|---|
|
Method | GET | URL | application/tenderDocument/listlistV2 |
|---|
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ị. |
|---|
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. RequestSTT | 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 |
|
| | 16 | (documents) round | Integer | lần điều chỉnh |
|
|
|
| Panel |
|---|
| title | API update trạng thái hồ sơ |
|---|
|
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ơ |
|---|
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. RequestSTT | 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 |
|
|
|
| Panel |
|---|
| title | API lấy danh sách nhân viên |
|---|
|
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 |
|---|
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. RequestSTT | 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 |
|
| Panel |
|---|
|
Method | POST | URL | adminapi/upload/file |
|---|
Description | API upload file |
|---|
Note | API cũ đã có rồi |
|---|
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 bodySTT | 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 |
|
|
|
| Panel |
|---|
| title | API gửi yêu cầu điều chỉnh |
|---|
|
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 đó |
|---|
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 bodySTT | 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 |
|
|
|
...