# 租戶管理
[TOC]
## 租戶列表
```url
POST /tenant/list
```
### Request
欄位 | 型態 | 必填 | 說明
---|---|---|---
query | json | | 查詢條件json
pagination | json | | 分頁json
sorter | json | | 排序json, 預設是用更新時間降序排列
#### query (查詢條件json)
欄位 | 型態 | 必填 | 說明
---|---|---|---
tenantType| string | | 租戶類別, DEALER: 經銷單位, HOSPITAL:醫療機構, WMT:緯創醫學, BUSINESS:企業客戶, AD:廣告商
status| bool | | 啟用狀態, true: 啟用, false: 停用, 未填則表示全部
name| string | | 關鍵字,查詢機構或經銷階層名稱
#### pagination (分頁json)
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
current | int | | 1 | 當前頁數
pageSize | int | | 10 | 每頁結果數量,-1 為顯示所有
#### sorter (排序json)
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
field | string | | 預設為updateTime | 排序欄位, 可排序欄位:name, tenantType, dealerName, divisions, contact, telephone, status, updateTime
order | string | | desc | 升序或降序
```javascript
{
"query": {
"tenantType": "DEALER",
"status": true
},
"pagination": {
"current": 1,
"pageSize": 10
},
"sorter": {
"field": "updateTime",
"order": "asc"
}
}
```
### Response
欄位 | 型態 | 說明
---|---|---
id | string | 租戶 id
name | string | 租戶名稱
idNo | string | 租戶統編
tenantType | string | 租戶類別, DEALER: 經銷單位, HOSPITAL:醫療機構, WMT:緯創醫學, BUSINESS:企業客戶, AD:廣告商
dealerId | string | 經銷階層租戶id
dealerName | string | 經銷階層租戶名稱
divisions | string | 服務科別名稱組合, 當tenant_type為BUSINESS時,不會有divisons
tenantDivisions | json array | 服務科別 json array, 當tenant_type為BUSINESS時,不會有tenantDivisions
industryTypes | string array | 租戶業別列表, HEALTH_CHECK_CENTER:健檢中心, GYM:健身房, CLINIC:診所, REGIONAL_HOSPITAL:區域醫院, MEDICAL_CENTER:醫學中心, HEALTH_SUPPLEMENT:保健品業者, MEDICAL_DEVICE:醫療器材業者, CATERING:餐飲業者, CONSUMABLES:耗材業者, OTHER:其他
contact | string | 聯絡人
telephone | string | 電話
status | bool | 啟用狀態, true: 啟用, false: 停用
updateTime | timestamp | 最後更新時間
shortName | string | 簡稱
address | string | 地址
thumbnailObjectKey | string | logo縮圖objectKey
thumbnailUrl | string | logo縮圖URL
#### tenantDivisions 服務科別 json
欄位 | 型態 | 說明
---|---|---
divisionId | string | 服務科別id
divisionName | string | 服務科別名稱
```javascript
{
"httpCode": 200,
"result": {
"data": [
{
"id": "594bcf8d-a134-4efd-9366-392b8194e631",
"name": "租戶_HOSPITAL_Test_1",
"idNo": "3345678",
"tenantType": "HOSPITAL",
"dealerId": "WMT",
"status": true,
"contact": "張三AA",
"telephone": "0987000000",
"email": "abcd@tttt.cc",
"createTime": 1610588709000,
"updateTime": 1610588709000,
"platformId": "WMT",
"dealerName": "緯創醫學",
"divisions": "腎臟科1,心臟科61",
"tenantDivisions": [
{
"divisionId": "db72e3a9-18f3-4f1f-a6d6-7c3370799f49",
"divisionName": "腎臟科1"
},
{
"divisionId": "32a00fa4-5d97-480a-9c2e-c2959ccc73ff",
"divisionName": "心臟科61"
}
],
"IndustryTypeList": [
"HEALTH_CHECK_CENTER",
"MEDICAL_CENTER"
],
"shortName": "租戶_T1",
"address": "高雄市苓雅區苓前南路2號",
"thumbnailObjectKey": "tenant/thumbnail/43bb92d3-33a4-48b5-8bd7-b3bb9a78ebd3.png",
"thumbnailUrl": "http://content-service/swift/v1/tenant/thumbnail/43bb92d3-33a4-48b5-8bd7-b3bb9a78ebd3.png"
},
...
]
}
}
```
## 經銷階層租戶列表
```url
POST /tenant/dealerList
```
### Request
欄位 | 型態 | 必填 | 說明
---|---|---|---
query | json | | 查詢條件json
pagination | json | | 分頁json
sorter | json | | 排序json, 預設是用更新時間降序排列
#### query (查詢條件json)
欄位 | 型態 | 必填 | 說明
---|---|---|---
#### pagination (分頁json)
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
current | int | | 1 | 當前頁數
pageSize | int | | 10 | 每頁結果數量,-1 為顯示所有
#### sorter (排序json)
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
field | string | | | 排序欄位
order | string | | desc | 升序或降序
```javascript
{
"query": {
},
"pagination": {
"current": 1,
"pageSize": 10
},
"sorter": {
}
}
```
### Response
欄位 | 型態 | 說明
---|---|---
id | string | 租戶 id
name | string | 租戶名稱
```javascript
{
"httpCode": 200,
"result": {
"data": [
{
"id": "594bcf8d-a134-4efd-9366-392b8194e631",
"name": "租戶_HOSPITAL_Test_1"
},
{
"id": "7a198963-e2aa-4937-92ad-c8bc9b4d926c",
"name": "租戶Test_HOSPITAL",
},
...
]
}
}
```
## 取得上傳網址
```url
POST /tenant/get-upload-url
```
* 新增/編輯租戶時用來上傳logo縮圖
#### Request
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
isMultipart | boolean | Y | false | 是否使用分段上傳
isThumbnail | boolean | Y | false | 上傳的是否為縮圖
fileName | String | Y | | 檔名,不包含副檔名,限制最多50字
fileType | String | Y | | 副檔名, 限制最多10字
totalPart | int | **N** (isMultipart=false)<br>**Y** (isMultipart=true) | | 總分塊數量,不可小於2
parts | Array [...part] | **N** (isMultipart=false)<br>**Y** (isMultipart=true) | | part 資訊
* part(Object)
欄位 | 型態 | 必填 | 預設 | 說明
---|---|---|---|---
chunkSize | int | Y | | 該 chunk 的大小, bytes
md5 | string | Y | | 該 part 的 md5
part | int | Y | | part number, 第幾塊 chunk
```javascript
// 單檔
{
"isMultipart": false,
"isThumbnail": false,
"fileName": "ad_bg_jp",
"fileType": "png"
}
// 分塊上傳
{
"isMultipart": true,
"isThumbnail": false,
"fileName": "giphy (7)",
"fileType": "mp4",
"totalPart": 2,
"parts": [
{
"chunkSize": 5242880,
"md5": "5AACA89868CD486D81192221CF9F9415",
"part": 1
},
{
"chunkSize": 3145728,
"md5": "5AACA89868CD486D81192221CF9F9415",
"part": 2
}
]
}
```
#### Response
* data
欄位 | 型態 | 說明
--- | --- | ---
objectKey | string | storage 中的 objectKey, **unique**
uploadId | string | 識別該次上傳的 uploadId
fileName | string | 名稱
fileType | string | 副檔名
url | string | 單檔上傳的時候,才會回傳該 url, 時效 3600 秒
parts | [...part] | multipart上傳各part的url
* part(Object)
欄位 | 型態 | 說明
--- | --- | ---
chunkSize | int | 該 chunk 的大小, bytes
md5 | string | 該 part 的 md5
part | int | part number, 第幾塊 chunk
url | string | 可上傳的 url, 時效 3600 秒
```javascript
// HttpStatus:422, 上傳的檔案類型不允許
{
"errorMsg": "SERVICE_ERROR.UPLOAD_FILE_TYPE_NOT_ALLOWED",
"httpCode": 422
}
// HttpStatus: 200
// 單檔
{
"httpCode": 200,
"result": {
"data": {
"objectKey": "event/9f9de11b-12b9-4964-bae8-3233e9da065b.png",
"uploadId": "11becd09-7571-4b0d-b8ee-cb3f09f66cf0",
"fileName": "ad_bg_jp",
"fileType": "png",
// 單檔 才有 url
"url": "http://192.168.100.239:12345/v1/AUTH_test/kmuh/event%2F9f9de11b-12b9-4964-bae8-3233e9da065b.png?temp_url_sig=e61d9e721d860294bde4d0151e111ebf8ed57ed7&temp_url_expires=1554114780"
}
}
}
// 分塊上傳
{
"httpCode": 200,
"result": {
"data": {
"objectKey": "event/f76adf26-1e22-4b18-980d-b9a68efc5171.mp4",
"uploadId": "53fde368-43d9-455f-a610-62091fc30be6",
"fileName": "giphy (7)",
"fileType": "mp4",
"parts": [
{
"chunkSize": 5242880,
"md5": "5AACA89868CD486D81192221CF9F9415",
"part": 1,
"url": "http://192.168.100.239:12345/v1/AUTH_test/kmuh_segments/event%2Ff76adf26-1e22-4b18-980d-b9a68efc5171.mp4%2F1?temp_url_sig=796c52b00f75b62be658533b2fadbc7f14381e36&temp_url_expires=1554263771"
},
{
"chunkSize": 3145728,
"md5": "5AACA89868CD486D81192221CF9F9415",
"part": 2,
"url": "http://192.168.100.239:12345/v1/AUTH_test/kmuh_segments/event%2Ff76adf26-1e22-4b18-980d-b9a68efc5171.mp4%2F2?temp_url_sig=ad71de81dfbcd94bce4a091f2630c6f1373ff3cd&temp_url_expires=1554263771"
}
]
}
}
}
```
## 新增租戶
```url
POST /tenant/add
```
### Request
欄位 | 型態 | 必填 | 說明
---|---|---|---
name | string | Y | 租戶名稱
idNo | string | | 租戶統編
tenantType | string | Y | 租戶類別, DEALER: 經銷單位, HOSPITAL:醫療機構, WMT:緯創醫學, BUSINESS:企業客戶, AD:廣告商
dealerId | string | Y | 經銷階層租戶id
contact | string | Y | 聯絡人
telephone | string | | 電話
email | string | N | email
divisions | string array | Y | 服務科別id array, 當tenant_type為BUSINESS時,帶入空陣列[]
industryTypeList | string array | Y | 租戶業別列表, 可多選, HEALTH_CHECK_CENTER:健檢中心, GYM:健身房, CLINIC:診所, REGIONAL_HOSPITAL:區域醫院, MEDICAL_CENTER:醫學中心, HEALTH_SUPPLEMENT:保健品業者, MEDICAL_DEVICE:醫療器材業者, CATERING:餐飲業者, CONSUMABLES:耗材業者, OTHER:其他
featureList | string array | | 啟用服務列表, 可多選, SOS:緊急救援, 目前僅開放tenantType為HOSPITAL的租戶可以啟用
shortName | string | | 簡稱
address | string | | 地址
vdToken|string||醫馥通行碼
thumbnailObjectKey | string | | logo縮圖ObjectKey
isThumbnailMultipart | boolean | false | 縮圖上傳時是否分塊上傳,預設為 false
thumbnailTotalPart | int | **N** (isThumbnailMultipart=false)<br>**Y** (isThumbnailMultipart=true) | | 縮圖上傳的總分塊數量,不可小於2
thumbnailUploadId | string | **N** (isThumbnailMultipart=false)<br>**Y** (isThumbnailMultipart=true) | | 從 /tenant/get-upload-url 取得的 uploadId
```javascript
{
"name": "租戶Test_DEALER22",
"idNo": "3345678",
"tenantType": "HOSPITAL",
"dealerId": "WMT",
"contact": "小李",
"telephone": "07-33345678",
"email": "abc111@aaaa.aaaa",
"divisions":[
"db72e3a9-18f3-4f1f-a6d6-7c3370799f49"
],
"industryTypeList": [
"HEALTH_CHECK_CENTER"
],
"featureList": [
"SOS"
],
"shortName": "租戶_TD2",
"address": "高雄市苓雅區苓前南路2號",
"vdToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0ZW5hbnRUeXBlIjoiUExBVEZPUk0iLCJzdWIiOiJXaWNjS01VSCIsImxvZ2luVHlwZSI6ImttdWgiLCJkaXNwbGF5TmFtZSI6IkgzNjXlubPlj7DnrqHnkIblk6EiLCJpc3MiOiJXaXN0cm9uIFNXUEMiLCJyb2xlVHlwZSI6IlBMQVRGT1JNX0FETUlOIiwidXNlcklkIjoicGxhdGZvcm1AeW9wbWFpbC5jb20iLCJhY2NvdW50SWQiOiI4NzAzMWJjMS0zNWNlLTQzZDYtOTY4MC1hOWNjZGRlMzIwZTgiLCJhcmVhQ29kZSI6IldNVCIsInRlbmFudE5hbWUiOiIiLCJzdXJuYW1lIjoiSDM2NeW5s-WPsOeuoeeQhuWToSIsImhvdXNlaG9sZE1lbWJlcklkIjoiIiwidGVuYW50SWQiOiJXTVQiLCJqdGkiOiJkMThjN2U3NS04YWIwLTQzM2MtOWE4OS0zYjQ2OTYwMjM4YWIifQ.Kjc9FNWmlE_x0nJ9z7S2RXjnDu_R1LKV_i7TxX1liO8"
}
```
### Response
欄位 | 型態 | 說明
---|---|---
id | string | 租戶 id
name | string | 租戶名稱
idNo | string | 租戶統編
tenantType | string | 租戶類別, DEALER: 經銷單位, HOSPITAL:醫療機構, WMT:緯創醫學, BUSINESS:企業客戶, AD:廣告商
dealerId | string | 經銷階層租戶id
dealerName | string | 經銷階層租戶名稱
divisions | string | 服務科別
contact | string | 聯絡人
telephone | string | 電話
status | bool | 啟用狀態, true: 啟用, false: 停用
updateTime | timestamp | 最後更新時間
shortName | string | 簡稱
address | string | 地址
thumbnailObjectKey | string | logo縮圖objectKey
```javascript
//httpCode: 200
{
"httpCode": 200,
"result": {
"data": {
"id": "9da3256e-c940-48c2-86c2-087b24bd47b1",
"name": "租戶Test_DEALER22",
"idNo": "3345678",
"tenantType": "DEALER",
"dealerId": "WMT",
"status": false,
"contact": "小李",
"telephone": "07-33345678",
"email": "abc111@aaaa.aaaa",
"createTime": 1610592296000,
"updateTime": 1610592296000,
"platformId": "WMT",
"shortName": "租戶_TD2",
"address": "高雄市苓雅區苓前南路2號"
}
}
}
//httpCode: 422
{
"errorMsg": "SERVICE_ERROR.DIVISION_DISABLED",
"httpCode": 422
}
```
## 編輯租戶
```url
POST /tenant/update
```
### Request
欄位 | 型態 | 必填 | 說明
---|---|---|---
id | string | Y | 租戶id
name | string | Y | 租戶名稱
idNo | string | | 租戶統編
tenantType | string | Y | 租戶類別, DEALER: 經銷單位, HOSPITAL:醫療機構, WMT:緯創醫學, BUSINESS:企業客戶, AD:廣告商
dealerId | string | Y | 經銷階層租戶id
contact | string | Y | 聯絡人
telephone | string | | 電話
email | string | N | email
divisions | string array | Y | 服務科別id array,當tenantType為BUSINESS時,帶入空陣列[]
idNo | string | | 租戶統編
industryTypeList | string array | Y | 租戶業別列表, 可多選, HEALTH_CHECK_CENTER:健檢中心, GYM:健身房, CLINIC:診所, REGIONAL_HOSPITAL:區域醫院, MEDICAL_CENTER:醫學中心, HEALTH_SUPPLEMENT:保健品業者, MEDICAL_DEVICE:醫療器材業者, CATERING:餐飲業者, CONSUMABLES:耗材業者, OTHER:其他
featureList | string array | | 啟用服務列表, 可多選, SOS:緊急救援, 目前僅開放tenantType為HOSPITAL的租戶可以啟用
shortName | string | | 簡稱
address | string | | 地址
vdToken|string||醫馥通行碼
thumbnailObjectKey | string | | logo縮圖ObjectKey
isThumbnailMultipart | boolean | false | 縮圖上傳時是否分塊上傳,預設為 false
thumbnailTotalPart | int | **N** (isThumbnailMultipart=false)<br>**Y** (isThumbnailMultipart=true) | | 縮圖上傳的總分塊數量,不可小於2
thumbnailUploadId | string | **N** (isThumbnailMultipart=false)<br>**Y** (isThumbnailMultipart=true) | | 從 /tenant/get-upload-url 取得的 uploadId
```javascript
{
"id": "594bcf8d-a134-4efd-9366-392b8194e631",
"name": "租戶_HOSPITAL_Test_1",
"idNo": "3345678",
"tenantType": "HOSPITAL",
"dealerId": "WMT",
"contact": "張三AA",
"telephone": "0987000000",
"email": "abcd@tttt.cc",
"divisions":[
"db72e3a9-18f3-4f1f-a6d6-7c3370799f49",
"32a00fa4-5d97-480a-9c2e-c2959ccc73ff"
],
"industryTypeList": [
"HEALTH_CHECK_CENTER"
],
"featureList": [
"SOS"
],
"shortName": "租戶_T1",
"address": "高雄市苓雅區苓前南路2號",
"vdToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0ZW5hbnRUeXBlIjoiUExBVEZPUk0iLCJzdWIiOiJXaWNjS01VSCIsImxvZ2luVHlwZSI6ImttdWgiLCJkaXNwbGF5TmFtZSI6IkgzNjXlubPlj7DnrqHnkIblk6EiLCJpc3MiOiJXaXN0cm9uIFNXUEMiLCJyb2xlVHlwZSI6IlBMQVRGT1JNX0FETUlOIiwidXNlcklkIjoicGxhdGZvcm1AeW9wbWFpbC5jb20iLCJhY2NvdW50SWQiOiI4NzAzMWJjMS0zNWNlLTQzZDYtOTY4MC1hOWNjZGRlMzIwZTgiLCJhcmVhQ29kZSI6IldNVCIsInRlbmFudE5hbWUiOiIiLCJzdXJuYW1lIjoiSDM2NeW5s-WPsOeuoeeQhuWToSIsImhvdXNlaG9sZE1lbWJlcklkIjoiIiwidGVuYW50SWQiOiJXTVQiLCJqdGkiOiJkMThjN2U3NS04YWIwLTQzM2MtOWE4OS0zYjQ2OTYwMjM4YWIifQ.Kjc9FNWmlE_x0nJ9z7S2RXjnDu_R1LKV_i7TxX1liO8"
}
```
### Response
欄位 | 型態 | 說明
---|---|---
id | string | 租戶 id
name | string | 租戶名稱
idNo | string | 租戶統編
tenantType | string | 租戶類別, DEALER: 經銷單位, HOSPITAL:醫療機構, WMT:緯創醫學, BUSINESS:企業客戶, AD:廣告商
dealerId | string | 經銷階層租戶id
dealerName | string | 經銷階層租戶名稱
divisions | string | 服務科別
contact | string | 聯絡人
telephone | string | 電話
status | bool | 啟用狀態, true: 啟用, false: 停用
updateTime | timestamp | 最後更新時間
shortName | string | 簡稱
address | string | 地址
thumbnailObjectKey | string | logo縮圖objectKey
```javascript
//httpCode: 200
{
"httpCode": 200,
"result": {
"data": {
"id": "594bcf8d-a134-4efd-9366-392b8194e631",
"name": "租戶_HOSPITAL_Test_1",
"idNo": "3345678",
"tenantType": "HOSPITAL",
"dealerId": "WMT",
"status": true,
"contact": "張三AA",
"telephone": "0987000000",
"email": "abcd@tttt.cc",
"createTime": 1610588709000,
"updateTime": 1610592450000,
"platformId": "WMT",
"shortName": "租戶_T1",
"address": "高雄市苓雅區苓前南路2號"
}
}
}
//httpCode: 422
{
"errorMsg": "SERVICE_ERROR.TENANT_DEALER_RECURSIVE",
"httpCode": 422
}
//httpCode: 422
{
"errorMsg": "SERVICE_ERROR.DIVISION_DISABLED",
"httpCode": 422
}
```
## 啟用停用租戶
```url
POST /tenant/status
```
### Request
欄位 | 型態 | 必填 | 說明
---|---|---|---
id | string | Y | 租戶id
status | bool | Y | 啟用狀態, true: 啟用, false: 停用
```javascript
{
"id": "594bcf8d-a134-4efd-9366-392b8194e631",
"status": true
}
```
### Response
欄位 | 型態 | 說明
---|---|---
id | string | 租戶 id
name | string | 租戶名稱
idNo | string | 租戶統編
tenantType | string | 租戶類別, DEALER: 經銷單位, HOSPITAL:醫療機構, WMT:緯創醫學, BUSINESS:企業客戶, AD:廣告商
dealerId | string | 經銷階層租戶id
dealerName | string | 經銷階層租戶名稱
divisions | string | 服務科別
contact | string | 聯絡人
telephone | string | 電話
status | bool | 啟用狀態, true: 啟用, false: 停用
updateTime | timestamp | 最後更新時間
shortName | string | 簡稱
address | string | 地址
thumbnailObjectKey | string | logo縮圖objectKey
```javascript
{
"httpCode": 200,
"result": {
"data": {
"id": "594bcf8d-a134-4efd-9366-392b8194e631",
"name": "租戶_HOSPITAL_Test_1",
"idNo": "3345678",
"tenantType": "HOSPITAL",
"dealerId": "WMT",
"status": true,
"contact": "張三AA",
"telephone": "0987000000",
"email": "abcd@tttt.cc",
"createTime": 1610588709000,
"updateTime": 1610592450000,
"platformId": "WMT",
"shortName": "租戶_T1",
"address": "高雄市苓雅區苓前南路2號"
}
}
}
```
## 產生收案QRCode
```url
POST /tenant/gen-add-case-qrcode
```
* 租戶管理人員使用
* 目前僅限於 tenantType="HOSPITAL" 和 tenantType="BUSINESS"的租戶使用
- tenantType="HOSPITAL"
* 產出的QRCode內容格式有2種
- health365:://add-case-qrcode?tenantId=xxxxxxxx
- health365:://add-case-qrcode?tenantId=xxxxxxxx&staffId=xxxxx
- tenantType="BUSINESS"
QRCode內容格式為 health365:://company/add-case-qrcode?tenantId=xxxxxxxx&tenantName=xxxxxxxx
### Request
欄位 | 型態 | 必填 | 說明
--- | --- | --- | ---
staffId | string | | 收案處理人員account id, tenantType="HOSPITAL"時可選填
```javascript
{
"staffId": "816ab265-d00e-4092-9c68-fcab0b66a4cb"
}
```
### Response
欄位 | 型態 | 說明
--- | --- | ---
id | string | 租戶 id
name | string | 租戶名稱
idNo | string | 租戶統編
tenantType | string | 租戶類別, DEALER: 經銷單位, HOSPITAL:醫療機構, WMT:緯創醫學, BUSINESS:企業客戶, AD:廣告商
dealerId | string | 經銷階層租戶id
dealerName | string | 經銷階層租戶名稱
divisions | string | 服務科別
contact | string | 聯絡人
telephone | string | 電話
status | bool | 啟用狀態, true: 啟用, false: 停用
updateTime | timestamp | 最後更新時間
shortName | string | 簡稱
address | string | 地址
thumbnailObjectKey | string | logo縮圖objectKey
base64QrCode | string | QRCode base64字串
```javascript
{
"httpCode": 200,
"result": {
"data": {
"id": "WMT",
"name": "緯創醫學",
"tenantType": "PLATFORM",
"status": true,
"createTime": 1611823813000,
"updateTime": 1611823813000,
"timeZone": "Asia/Taipei",
"base64QrCode": "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8xllnzP7Q9nrHFjAAhawgAUsYAELWMACFrCABSxgAQtYwAIWsIAFLGABC1jAAhawenc/e3hZcQrHo7IDdFmb7nvNRbcXsIAFLGABC1jAAhawgAUsYAELWMACFrCABSxgAQtYwAIWsIAFLGCtT7Zpv3ykE1VSWLjb2yZYdYVlc+LjwAIWsIAFLGABC1jAAhawgAUsYAELWMACFrCABSxgAQtYwAIWsID1GKxPX8Z2v7BGC1sxW82Fz7nFkbFdAhawgAUsYAELWMACFrCABSxgAQtYwAIWsIAFLGABC1jAAhawgAWsabAK2+YlTbuF9cKHH7s7t1znW+54YAELWMACFrCABSxgAQtYwAIWsIAFLGABC1jAAhawgAUsYAELWMA62LRb5keyuKz+zrEGy9KWtT57cPF/GMACFrCABSxgAQtYwAIWsIAFLGABC1jAAhawgAUsYAELWMACFrCA9SKwCqfAskWWPfctBTY2yjRWdYsCLGABC1jAAhawgAUsYAELWMACFrCABSxgAQtYwAIWsIAFLGABC1h3glU4oLT6NbMf3/JG2YuqMMACFrCABSxgAQtYwAIWsIAFLGABC1jAAhawgAUsYAELWMACFrCAVQHW2IBSVtsto0yT9XTZGxX+ehbW+DwjsIAFLGABC1jAAhawgAUsYAELWMACFrCABSxgAQtYwAIWsIAFLGCVVt59YH35SIVc/vUlu8kn9rOwPkcPFFjAAhawgAUsYAELWMACFrCABSxgAQtYwAIWsIAFLGABC1jAAhawREQ6AywRAZaICLBEBFgiIsASEQGWiABLRARYIiLAEhFgiYgAS0QEWCICLBERYImIPMk/MandjctwlJEAAAAASUVORK5CYII=",
"featureList": [],
"industryTypeList": []
}
}
}
```