# 港口岸门门禁管理系统 - 前端接口文档

> **基础路径**：`${application.gateway}` 运行时替换为 `/primeport`
>
> **COLA 通用响应结构**：
>
> | 响应类型 | 字段 |
> |---------|------|
> | `Response` | errCode(String), errMessage(String), success(Boolean) |
> | `SingleResponse<T>` | errCode, errMessage, success, **data**(T) |
> | `MultiResponse<T>` | errCode, errMessage, success, **data**(List\<T\>) |
> | `PageResponse<T>` | errCode, errMessage, success, **data**(List\<T\>), totalCount(Long), pageSize(Integer), pageNumber(Integer) |
>
> **分页查询基类字段**（所有 Qry 继承）：pageSize(Integer), pageNumber(Integer)

---

## 一、门口信息管理 `/${gateway}/mkmj`

### 1.1 新增门口
- **POST** `/save`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| mkmjName | String | 是 | 口门名称 |
| mkmjLevel | Integer | 是 | 口门级别 1-一级 2-二级 |
| mkmjType | String | 是 | 口门类型 |
| mkmjTypeName | String | 是 | 口门类型名称 1-人行 2-车行 3-综合 |
| hgAuthArea | String | 是 | 所属港区 |
| hgAuthAreaName | String | 是 | 所属港区名称 |
| mkmjStatus | Integer | 是 | 口门状态 1-停用 2-正常 |
| inDirectionArea | Long | 否 | 入方向区域(二级) |
| inDirectionAreaName | String | 否 | 入方向区域名称(二级) |
| outDirectionArea | Long | 否 | 出方向区域(二级) |
| outDirectionAreaName | String | 否 | 出方向区域名称(二级) |
| closedAreaId | Long | 否 | 封闭区域id(二级) |
| outDirectionType | Integer | 否 | 进出类型 1离场 2离开进入其他区域 |
| longitude | String | 否 | 经度 |
| latitude | String | 否 | 纬度 |
| remarks | String | 否 | 口门位置 |
| mkmjAreaJurisdictionalCorpId | Long | 否 | 管辖单位id |

- 响应：`SingleResponse<MkmjCO>`

**MkmjCO**：

| 字段 | 类型 | 说明 |
|------|------|------|
| id | Long | 主键 |
| mkmjName | String | 口门名称 |
| hgAuthArea | String | 所属港区 |
| hgAuthAreaName | String | 所属港区名称 |
| mkmjLevel | Integer | 口门级别 1-一级 2-二级 |
| mkmjType | String | 口门类型 |
| mkmjTypeName | String | 口门类型名称 |
| mkmjStatus | Integer | 口门状态 |
| inDirectionArea | Long | 入方向区域 |
| inDirectionAreaName | String | 入方向区域名称 |
| outDirectionArea | Long | 出方向区域 |
| outDirectionAreaName | String | 出方向区域名称 |
| closedAreaId | Long | 封闭区域id |
| closedAreaName | String | 封闭区域名称 |
| outDirectionType | Integer | 进出类型 |
| longitude | String | 经度 |
| latitude | String | 纬度 |
| remarks | String | 口门位置 |
| videoCount | Integer | 摄像头数量 |
| passageCount | Integer | 通道数量 |
| jurisdictionalCorpId | Long | 管辖单位id |
| mkmjAreaJurisdictionalCorpId | Long | 口门管辖单位id |
| jurisdictionalCorpName | String | 管辖单位名称 |

### 1.2 分页查询
- **POST** `/list`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| likeMkmjName | String | 否 | 口门名称模糊查询 |
| mkmjStatus | Integer | 否 | 口门状态 |
| mkmjType | String | 否 | 口门类型 |
| mkmjLevel | Integer | 否 | 口门级别 |
| hgAuthArea | String | 否 | 所属区域 |
| closedAreaId | Long | 否 | 封闭区域id |

- 响应：`PageResponse<MkmjCO>`

### 1.3 分页查询(免Token)
- **POST** `/listNoToken`
- 请求体：同 1.2
- 响应：`PageResponse<MkmjCO>`

### 1.4 查询所有
- **GET** `/listAll`
- 请求参数：同 1.2（QueryParam）
- 响应：`MultiResponse<MkmjCO>`

### 1.5 详情
- **GET** `/{id}`
- 路径参数：id(Long)
- 响应：`SingleResponse<MkmjCO>`

### 1.6 删除
- **DELETE** `/{id}`
- 路径参数：id(Long)
- 响应：`Response`

### 1.7 修改
- **PUT** `/edit`
- 请求体：同 1.1 + id(Long, 必填)
- 响应：`SingleResponse`

### 1.8 停用/启用
- **PUT** `/editStatus`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| id | Long | 是 | 主键 |
| mkmjStatus | Integer | 是 | 口门状态 1-停用 2-正常 |

- 响应：`SingleResponse`

### 1.9 名称唯一性校验
- **GET** `/check-name`
- 请求参数：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| mkmjName | String | 是 | 口门名称 |
| id | Long | 否 | 记录ID(编辑时传) |

- 响应：`SingleResponse<Map<String, Boolean>>` (available: true/false)

---

## 二、门禁通道 `/${gateway}/mkmjPassage`

### 2.1 新增
- **POST** `/save`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| passageName | String | 是 | 通道名称 |
| passageType | String | 是 | 通道类型 1-人行 2-车行 3-综合 |
| passageTypeName | String | 是 | 通道类型名称 |
| passageStatus | Integer | 是 | 通道状态 1-停用 2-正常 |
| mkmjId | Long | 是 | 口门区域id |
| longitude | String | 否 | 经度 |
| latitude | String | 否 | 纬度 |

- 响应：`SingleResponse<MkmjPassageCO>`

**MkmjPassageCO**：

| 字段 | 类型 | 说明 |
|------|------|------|
| id | Long | 主键 |
| passageName | String | 通道名称 |
| passageType | String | 通道类型 |
| passageTypeName | String | 通道类型名称 |
| passageStatus | Integer | 通道状态 |
| passageStatusName | String | 通道状态名称 |
| mkmjId | Long | 口门区域id |
| mkmjName | String | 口门名称 |
| longitude | String | 经度 |
| latitude | String | 纬度 |
| remarks | String | 备注 |
| gateCount | Integer | 闸机数量 |
| videoCount | Integer | 摄像头数量 |

### 2.2 分页查询
- **POST** `/list`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| eqMkmjId | Long | 否 | 口门ID |
| likePassageName | String | 否 | 通道名称模糊查询 |
| eqPassageType | String | 否 | 通道类型 |
| eqPassageStatus | Integer | 否 | 通道状态 |

- 响应：`PageResponse<MkmjPassageCO>`

### 2.3 详情
- **GET** `/{id}`
- 响应：`SingleResponse<MkmjPassageCO>`

### 2.4 删除
- **DELETE** `/{id}`
- 响应：`Response`

### 2.5 修改
- **PUT** `/edit`
- 请求体：同 2.1 + id(Long, 必填)
- 响应：`SingleResponse`

### 2.6 名称唯一性校验
- **GET** `/check-name`
- 请求参数：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| passageName | String | 是 | 通道名称 |
| mkmjId | Long | 是 | 口门ID |
| id | Long | 否 | 记录ID |

- 响应：`SingleResponse<Map<String, Boolean>>`

---

## 三、闸机管理 `/${gateway}/mkmjGate`

### 3.1 新增
- **POST** `/save`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| mkmjId | Long | 是 | 口门区域id |
| passageId | Long | 是 | 通道id |
| gateNumber | String | 否 | 闸机标识 |
| gateName | String | 是 | 闸机名称 |
| gateType | String | 是 | 闸机类型 |
| gateTypeName | String | 是 | 闸机类型名称 |
| gateStatus | Integer | 是 | 闸机状态 1-停用 2-正常 |
| gateCategory | String | 是 | 闸机类别 |
| gateCategoryName | String | 是 | 闸机类别名称 |
| gateModel | String | 是 | 闸机型号 |
| gatePosition | String | 是 | 闸机位置 |
| longitude | String | 否 | 经度 |
| latitude | String | 否 | 纬度 |

- 响应：`SingleResponse<MkmjGateCO>`

**MkmjGateCO**：

| 字段 | 类型 | 说明 |
|------|------|------|
| id | Long | 主键 |
| mkmjId | Long | 口门区域id |
| mkmjName | String | 口门名称 |
| passageId | Long | 通道id |
| passageName | String | 通道名称 |
| gateNumber | String | 闸机标识 |
| gateName | String | 闸机名称 |
| gateType | String | 闸机类型 |
| gateTypeName | String | 闸机类型名称 |
| gateStatus | Integer | 闸机状态 |
| gateStatusName | String | 闸机状态名称 |
| gateCategory | String | 闸机类别 |
| gateCategoryName | String | 闸机类别名称 |
| gateModel | String | 闸机型号 |
| gatePosition | String | 闸机位置 |
| longitude | String | 经度 |
| latitude | String | 纬度 |
| videoCount | Integer | 摄像头数量 |

### 3.2 分页查询
- **POST** `/list`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| mkmjId | Long | 否 | 口门ID |
| passageId | Long | 否 | 通道ID |
| gateName | String | 否 | 闸机名称模糊查询 |
| gateType | String | 否 | 闸机类型 |
| gateCategory | String | 否 | 闸机类别 |
| gateStatus | Integer | 否 | 闸机状态 |

- 响应：`PageResponse<MkmjGateCO>`

### 3.3 详情
- **GET** `/{id}`
- 响应：`SingleResponse<MkmjGateCO>`

### 3.4 删除
- **DELETE** `/{id}`
- 响应：`Response`

### 3.5 修改
- **PUT** `/edit`
- 请求体：同 3.1 + id(Long, 必填)
- 响应：`SingleResponse`

### 3.6 名称唯一性校验
- **GET** `/check-name`
- 请求参数：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| gateName | String | 是 | 闸机名称 |
| passageId | Long | 是 | 通道ID |
| id | Long | 否 | 记录ID |

- 响应：`SingleResponse<Map<String, Boolean>>`

---

## 四、口门审批人 `/${gateway}/mkmjApprovalUser`

### 4.1 新增
- **POST** `/save`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| corpId | Long | 是 | 审批人企业id |
| corpName | String | 是 | 审批人企业名称 |
| deptId | Long | 是 | 审批人部门id |
| deptName | String | 是 | 审批人部门名称 |
| postId | Long | 否 | 审批人岗位Id |
| postName | String | 否 | 审批人岗位名称 |
| userId | Long | 是 | 审批人id |
| userName | String | 是 | 审批人名称 |
| personnelPermissionFlag | Integer | 是 | 人员审核权限 1-无 2-有 |
| vehiclePermissionFlag | Integer | 是 | 车辆审核权限 1-无 2-有 |
| temporaryPermissionFlag | Integer | 是 | 临时审核权限 1-无 2-有 |

- 响应：`SingleResponse<MkmjApprovalUserCO>`

**MkmjApprovalUserCO**：

| 字段 | 类型 | 说明 |
|------|------|------|
| id | Long | 主键 |
| corpId | Long | 企业id |
| corpName | String | 企业名称 |
| postId | Long | 岗位Id |
| postName | String | 岗位名称 |
| deptId | Long | 部门id |
| deptName | String | 部门名称 |
| userId | Long | 审批人id |
| userName | String | 审批人名称 |
| personnelPermissionFlag | Integer | 人员审核权限 |
| vehiclePermissionFlag | Integer | 车辆审核权限 |
| temporaryPermissionFlag | Integer | 临时审核权限 |

### 4.2 分页查询
- **POST** `/list`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| corpId | Long | 是 | 审批人企业id |
| deptId | Long | 否 | 审批人部门id |
| userName | String | 否 | 审批人姓名 |
| personnelPermissionFlag | Integer | 否 | 人员审核权限 |
| vehiclePermissionFlag | Integer | 否 | 车辆审核权限 |
| temporaryPermissionFlag | Integer | 否 | 临时审核权限 |
| needSelfCorpApprovalUserFlag | Integer | 否 | 1本租户 2所有审批人 |

- 响应：`PageResponse<MkmjApprovalUserCO>`

### 4.3 查询所有
- **GET** `/listAll`
- 响应：`MultiResponse<MkmjApprovalUserCO>`

### 4.4 详情
- **GET** `/{id}`
- 响应：`SingleResponse<MkmjApprovalUserCO>`

### 4.5 删除
- **DELETE** `/{id}`
- 响应：`Response`

### 4.6 校验审批人是否已录入
- **GET** `/checkExistByUserId/{userId}`
- 路径参数：userId(Long)
- 响应：`SingleResponse<AvailableResultCO>`

**AvailableResultCO**：

| 字段 | 类型 | 说明 |
|------|------|------|
| available | Boolean | 是否可用 |
| availableMessage | String | 不可用原因 |

### 4.7 修改
- **PUT** `/edit`
- 请求体：同 4.1 + id(Long, 必填)
- 响应：`SingleResponse`

---

## 五、摄像头 `/${gateway}/video`

### 5.1 新增
- **POST** `/save`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| foreignId | Long | 是 | 口门/闸机id |
| deviceType | Integer | 是 | 设备类型 1-口门 2-闸机 |
| videoResourceId | String | 是 | 摄像头id |
| videoResourceName | String | 是 | 摄像头名称 |
| videoResourceCode | String | 否 | 摄像头编码 |
| videoType | Integer | 是 | 摄像头类型 1-移动 2-平台 |
| longitude | String | 否 | 经度 |
| latitude | String | 否 | 纬度 |

- 响应：`SingleResponse<VideoCO>`

**VideoCO**：

| 字段 | 类型 | 说明 |
|------|------|------|
| id | Long | 主键 |
| foreignId | Long | 口门/闸机id |
| deviceType | Integer | 设备类型 |
| videoResourceId | String | 摄像头id |
| videoResourceName | String | 摄像头名称 |
| videoResourceCode | String | 摄像头编码 |
| videoType | Integer | 摄像头类型 |
| longitude | String | 经度 |
| latitude | String | 纬度 |
| isOnline | String | 是否在线 |
| type | String | 来源 yd移动/gd固定 |

### 5.2 分页查询
- **POST** `/list`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| eqForeignId | Long | 否 | 口门/闸机id |
| eqDeviceType | Integer | 否 | 设备类型 |
| videoResourceName | String | 否 | 视频名称 |
| eqIsOnline | Integer | 否 | 是否在线 0离线/1在线 |

- 响应：`PageResponse<VideoCO>`

### 5.3 详情 / 删除 / 修改
- **GET** `/{id}` → `SingleResponse<VideoCO>`
- **DELETE** `/{id}` → `Response`
- **PUT** `/edit` → `SingleResponse`（请求体同 5.1 + id）

---

## 六、刷卡记录 `/${gateway}/mkmjSwipeCardRecord`

### 6.1 大华对接推送(内部)
- **POST** `/dockSave`
- 请求体：`SwipeRecordPushVo`（三层嵌套，大华 EVO-AccessControl 推送）
- 响应：`SingleResponse`

### 6.2 新增
- **POST** `/save`
- 请求体：`MkmjSwipeCardRecordAddCmd`
- 响应：`SingleResponse<MkmjSwipeCardRecordCO>`

**MkmjSwipeCardRecordCO** 主要字段：

| 字段 | 类型 | 说明 |
|------|------|------|
| id | Long | 主键 |
| nodeCode | String | 节点编码 |
| deviceCode | String | 设备编号 |
| alarmCode | String | 报警编号 |
| alarmDate | Long | 报警时间(10位时间戳) |
| alarmGrade | Integer | 报警等级 1严重 2一般 3轻微 |
| alarmStat | Integer | 报警状态 1产生 2消失 |
| channelName | String | 通道名称 |
| acsChannelCode | String | 通道编号 |
| acsChannelName | String | 通道名称 |
| enterOrExit | String | 进出门类型 |
| swingTime | String | 刷卡时间 |
| deviceName | String | 设备名称 |
| personCode | String | 人员编号 |
| personId | Long | 人员ID(大华) |
| personName | String | 人员姓名 |
| personImg | String | 人员图片路径 |
| paperType | String | 证件类型 |
| paperNumber | String | 证件号 |
| openType | String | 开门类型 |
| openResult | Integer | 开门结果 0失败 1成功 |
| openFailedCod | String | 开门错误码 |
| cardNumber | String | 卡号 |
| cardType | Integer | 卡类型 |
| category | String | 卡介质 0-IC 1-有源RFID 2-CPU |
| maskState | Integer | 口罩状态 3戴 2未戴 1未识别 0未知 |
| sex | Integer | 性别 1男 2女 0未知 |
| age | Integer | 年龄 |
| deptName | String | 部门名称 |
| deptId | Long | 部门id |
| orgName | String | 组织名称 |
| orgCode | String | 组织编码 |
| vRecordFlag | Integer | 访客标识 0非访客 1访客 |
| recordImage1 | String | 抓拍图路径 |
| beginTime | Long | 开始时间(13位时间戳) |

### 6.3 分页查询
- **POST** `/list`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| cardNo | String | 否 | 卡号 |
| likeDeviceName | String | 否 | 设备名称模糊查询 |
| swingTimeStart | String | 否 | 刷卡时间起始 |
| swingTimeEnd | String | 否 | 刷卡时间结束 |

- 响应：`PageResponse<MkmjSwipeCardRecordCO>`

### 6.4 详情 / 删除 / 批量删除
- **GET** `/{id}` → `SingleResponse<MkmjSwipeCardRecordCO>`
- **DELETE** `/{id}` → `Response`
- **DELETE** `/ids?ids=1,2,3` → `Response`

---

## 七、封闭区域 `/${gateway}/closedArea`

### 7.1 树级结构
- **GET** `/listTree`
- 请求参数：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| closedAreaName | String | 否 | 封闭区域名称 |
| hgAuthArea | String | 否 | 所属港区 |
| parentId | Long | 否 | 父节点(根节点传0) |
| jurisdictionalCorpId | Long | 否 | 管辖单位 |

- 响应：`MultiResponse<ClosedAreaCO>`

**ClosedAreaCO**：

| 字段 | 类型 | 说明 |
|------|------|------|
| id | Long | 主键 |
| parentId | Long | 父节点id |
| hgAuthArea | String | 所属港区 |
| hgAuthAreaName | String | 所属港区名称 |
| closedAreaName | String | 封闭区域名称 |
| closedAreaType | String | 区域类型 |
| closedAreaTypeName | String | 区域类型名称 |
| jurisdictionalCorpId | Long | 管辖单位id |
| jurisdictionalCorpName | String | 管辖单位名称 |
| location | String | 区域经纬度 |
| deleteEnum | String | 删除标记 |
| remarks | String | 备注 |
| totalAreaCount | Integer | 封闭区域总数 |
| totalCorpCount | Integer | 管辖单位总数 |
| hasChild | Integer | 1有子节点 2无子节点 |
| children | List\<ClosedAreaCO\> | 子节点列表 |

### 7.2 统计港区封闭区域数与管辖单位数
- **GET** `/getCountByHgAuthArea`
- 响应：`MultiResponse<ClosedAreaCO>`

### 7.3 新增
- **POST** `/save`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| parentId | Long | 是 | 父id |
| hgAuthArea | String | 是 | 所属港区 |
| hgAuthAreaName | String | 是 | 所属港区名称 |
| closedAreaName | String | 是 | 封闭区域名称 |
| closedAreaType | String | 是 | 区域类型 |
| closedAreaTypeName | String | 是 | 区域类型名称 |
| jurisdictionalCorpId | Long | 是 | 管辖单位id |
| jurisdictionalCorpName | String | 是 | 管辖单位名称 |
| location | String | 否 | 区域经纬度 |

- 响应：`SingleResponse<ClosedAreaCO>`

### 7.4 分页查询
- **POST** `/list`
- 请求体：同 7.1
- 响应：`PageResponse<ClosedAreaCO>`

### 7.5 根据港区选择封闭区域
- **GET** `/listAllByhgAuthArea?hgAuthArea=xxx`
- 响应：`MultiResponse<ClosedAreaCO>`

### 7.6 根据管辖单位查询封闭区域
- **GET** `/listAllByJurisdictionalCorpId/{id}`
- 路径参数：id(Long) 管辖单位ID
- 响应：`MultiResponse<ClosedAreaCO>`

### 7.7 详情 / 删除 / 批量删除 / 修改
- **GET** `/{id}` → `SingleResponse<ClosedAreaCO>`
- **DELETE** `/{id}` → `Response`
- **DELETE** `/ids?ids=1&ids=2` → `Response`
- **PUT** `/edit` → `SingleResponse`（请求体含 id + 可选修改字段）

### 7.8 区域人员和车辆统计
- **POST** `/count`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| corpId | Long | 否 | 公司id |
| closedAreaName | String | 否 | 封闭区域名称 |
| parentId | Long | 否 | 父节点ID |

- 响应：`MultiResponse<ClosedAreaCountCO>`

**ClosedAreaCountCO**：

| 字段 | 类型 | 说明 |
|------|------|------|
| id | Long | 主键 |
| parentId | Long | 父节点id |
| closedAreaName | String | 封闭区域名称 |
| personCount | Integer | 人员现存数 |
| carCount | Integer | 车辆现存数 |
| hasChild | Integer | 1有子节点 2无子节点 |
| children | List\<ClosedAreaCountCO\> | 子节点列表 |

---

## 八、封闭区域人员申请 `/${gateway}/closedAreaPersonApply`

### 8.1 新增
- **POST** `/save`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| personBelongType | Integer | 是 | 1股份 2分公司 3相关方 4临时人员 |
| levelOneMkmjId | Long | 否 | 一级口门id |
| levelTwoMkmjId | Long | 否 | 二级口门id |
| closedAreaId | Long | 是 | 封闭区域id |
| closedAreaName | String | 是 | 封闭区域名称 |
| visitStartTime | String | 是 | 访问起始时间 |
| visitEndTime | String | 是 | 访问结束时间 |
| jurisdictionalCorpId | Long | 是 | 管辖单位id |
| jurisdictionalCorpName | String | 是 | 管辖单位名称 |
| projectId | Long | 否 | 项目id |
| projectName | String | 否 | 项目名称 |
| applyReason | String | 是 | 申请理由 |
| entourage | String | 否 | 随行人员(JSON) |
| informSignId | String | 是 | 告知签字 |
| auditPersonCorpId | Long | 是 | 审批人企业ID |
| auditPersonCorpName | String | 是 | 审批人企业名称 |
| auditPersonDepartmentId | Long | 是 | 审批人部门id |
| auditPersonDepartmentName | String | 是 | 审批人部门名称 |
| auditPersonUserId | Long | 是 | 审批人id |
| auditPersonUserName | String | 是 | 审批人姓名 |
| applyPersonUserName | String | 否 | 申请人姓名(临时) |
| userFaceUrl | String | 否 | 申请人头像(临时) |
| userPhone | String | 否 | 申请人手机号(临时) |
| userCard | String | 否 | 申请人身份证号(临时) |

- 响应：`SingleResponse<ClosedAreaPersonApplyCO>`

**ClosedAreaPersonApplyCO**：

| 字段 | 类型 | 说明 |
|------|------|------|
| id | Long | 主键 |
| personBelongType | Integer | 申请归属 |
| levelOneMkmjId | Long | 一级口门id |
| levelTwoMkmjId | Long | 二级口门id |
| levelOneMkmjName | String | 一级口门名称 |
| levelTwoMkmjName | String | 二级口门名称 |
| closedAreaId | Long | 封闭区域id |
| closedAreaName | String | 封闭区域名称 |
| auditFlag | Integer | 审核状态 |
| mkmjPermission | Integer | 进出港权限 1有 2无 |
| visitStartTime | String | 访问起始时间 |
| visitEndTime | String | 访问结束时间 |
| jurisdictionalCorpId | Long | 管辖单位id |
| jurisdictionalCorpName | String | 管辖单位名称 |
| projectId | Long | 项目id |
| projectName | String | 项目名称 |
| applyPersonCorpId | Long | 申请人企业ID |
| applyPersonCorpName | String | 申请人企业名称 |
| applyPersonDepartmentId | Long | 申请人部门id |
| applyPersonDepartmentName | String | 申请人部门名称 |
| applyPersonUserId | Long | 申请人id |
| applyPersonUserName | String | 申请人姓名 |
| applyUserName | String | 申请人姓名 |
| applyReason | String | 申请理由 |
| userFaceUrl | String | 申请人头像 |
| userPhone | String | 申请人手机号 |
| userCard | String | 申请人身份证号 |
| entourage | String | 随行人员 |
| informSignId | String | 告知签字 |
| auditPersonCorpId | Long | 审批人企业ID |
| auditPersonCorpName | String | 审批人企业名称 |
| auditPersonDepartmentId | Long | 审批人部门id |
| auditPersonDepartmentName | String | 审批人部门名称 |
| auditPersonUserId | Long | 审批人id |
| auditPersonUserName | String | 审批人姓名 |
| auditTime | String | 审批时间 |
| refusalReason | String | 驳回原因 |
| currentUserCanAudit | Integer | 当前用户是否可审批 |
| personInOutRecord | List\<HashMap\> | 进出记录 |
| areaList | List\<FgsPersonArea\> | 授权范围 |

### 8.2 待审批/已审批/申请记录分页
- **POST** `/pendingApprovalRecordList`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| name | String | 否 | 人员搜索 |
| deptId | Long | 否 | 按部门搜索 |
| noSelf | Integer | 否 | 1带自己 2不带自己 |
| applyPersonCorpName | String | 否 | 申请人公司名称 |
| applyPersonUserName | String | 否 | 申请人名称 |
| processOrRecord | Integer | 否 | 1本单位申请中 2本单位申请记录 |
| personBelongType | Integer | 否 | 1股份 2分公司 3相关方 4临时 |
| hasFaceUrl | Integer | 否 | 1有图片 |
| projectName | String | 否 | 项目名称 |

- 响应：`PageResponse<ClosedAreaPersonApplyCO>`

### 8.3 申请记录部门列表
- **GET** `/pendingApprovalDeptList`
- 响应：`MultiResponse<ClosedAreaPersonApplyDeptCO>`

### 8.4 审批人员申请
- **POST** `/auditPersonApply`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| id | Long | 是 | 主键 |
| auditFlag | Integer | 否 | 2通过 3驳回 |
| refusalReason | String | 否 | 驳回原因 |

- 响应：`Response`

### 8.5 授权二级门禁
- **POST** `/authorizationPerson`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| userId | Long | 是 | 用户id |
| mkmjPermission | Integer | 是 | 权限 1有 2无 |
| corpId | Long | 否 | 企业id |
| departmentId | Long | 否 | 部门id |
| areaList | List\<FgsPersonArea\> | 否 | 授权范围 |
| - fgsPersonAuthId | Long | 否 | 授权id |
| - closedAreaId | Long | 否 | 封闭区域id |
| - closedAreaName | String | 否 | 封闭区域名称 |

- 响应：`Response`

### 8.6 查询分公司人员授权范围
- **GET** `/getAuthorizationPersonInfo/{id}`
- 响应：`SingleResponse<ClosedAreaPersonApplyCO>`

### 8.7 获取本单位人员信息(用于随行人员)
- **POST** `/getCorpUserList`
- 请求体：同 8.2
- 响应：`PageResponse<UserCo>`

**UserCo**：

| 字段 | 类型 | 说明 |
|------|------|------|
| corpId | Long | 企业id |
| corpName | String | 企业名称 |
| deptId | Long | 部门id |
| deptName | String | 部门名称 |
| postId | Long | 岗位id |
| postName | String | 岗位名称 |
| userId | Long | 用户id |
| name | String | 姓名 |
| userName | String | 用户名 |
| phone | String | 手机号 |
| userFaceUrl | String | 头像 |
| userIdCard | String | 身份证号 |
| employmentFlag | Integer | 在职标志 |
| rzFlag | Integer | 入职标志 |
| vehicleCount | Integer | 车辆数 |
| mkmjPermission | Integer | 进出港权限 |

### 8.8 详情
- **GET** `/{id}`
- 响应：`SingleResponse<ClosedAreaPersonApplyCO>`

---

## 九、封闭区域车辆申请 `/${gateway}/closedAreaCarApply`

### 9.1 新增
- **POST** `/save`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| carBelongType | Integer | 是 | 1股份 2分公司 3相关方 4临时 5分公司内部车 |
| licenceType | String | 是 | 车牌类型 |
| licenceTypeName | String | 是 | 车牌类型名称 |
| licenceNo | String | 是 | 车牌号 |
| vehicleType | String | 是 | 车辆类型 |
| vehicleTypeName | String | 是 | 车辆类型名称 |
| levelOneMkmjId | Long | 否 | 一级口门id |
| levelTwoMkmjId | Long | 否 | 二级口门id |
| closedAreaId | Long | 是 | 封闭区域id |
| closedAreaName | String | 否 | 封闭区域名称 |
| visitStartTime | String | 是 | 访问起始时间 |
| visitEndTime | String | 是 | 访问结束时间 |
| jurisdictionalCorpId | Long | 否 | 管辖单位id |
| jurisdictionalCorpName | String | 否 | 管辖单位名称 |
| projectId | Long | 否 | 项目id |
| projectName | String | 否 | 项目名称 |
| applyReason | String | 是 | 申请理由 |
| entourage | String | 否 | 随行人员 |
| informSignId | String | 是 | 告知签字 |
| drivingUserId | Long | 否 | 驾驶人ID |
| drivingUserName | String | 否 | 驾驶人名称 |
| drivingLicenseId | String | 是 | 行驶证照片 |
| attachmentId | String | 是 | 车辆照片 |
| auditPersonCorpId | Long | 是 | 审批人企业ID |
| auditPersonCorpName | String | 是 | 审批人企业名称 |
| auditPersonDepartmentId | Long | 是 | 审批人部门id |
| auditPersonDepartmentName | String | 是 | 审批人部门名称 |
| auditPersonUserId | Long | 是 | 审批人id |
| auditPersonUserName | String | 是 | 审批人姓名 |

- 响应：`SingleResponse<ClosedAreaCarApplyCO>`

**ClosedAreaCarApplyCO**：

| 字段 | 类型 | 说明 |
|------|------|------|
| id | Long | 主键 |
| carBelongType | Integer | 申请归属 |
| licenceType | String | 车牌类型 |
| licenceTypeName | String | 车牌类型名称 |
| licenceNo | String | 车牌号 |
| vehicleType | String | 车辆类型 |
| vehicleTypeName | String | 车辆类型名称 |
| levelOneMkmjId | Long | 一级口门id |
| levelTwoMkmjId | Long | 二级口门id |
| levelOneMkmjName | String | 一级口门名称 |
| levelTwoMkmjName | String | 二级口门名称 |
| closedAreaId | Long | 封闭区域id |
| closedAreaName | String | 封闭区域名称 |
| auditFlag | Integer | 审核状态 |
| visitStartTime | String | 访问起始时间 |
| visitEndTime | String | 访问结束时间 |
| jurisdictionalCorpId | Long | 管辖单位id |
| jurisdictionalCorpName | String | 管辖单位名称 |
| projectId | Long | 项目id |
| projectName | String | 项目名称 |
| applyPersonCorpId | Long | 申请人企业ID |
| applyPersonCorpName | String | 申请人企业名称 |
| applyPersonDepartmentId | Long | 申请人部门id |
| applyPersonDepartmentName | String | 申请人部门名称 |
| applyPersonUserId | Long | 申请人id |
| applyPersonUserName | String | 申请人姓名 |
| applyUserName | String | 申请人姓名 |
| applyReason | String | 申请理由 |
| userFaceUrl | String | 申请人头像 |
| userPhone | String | 申请人手机号 |
| userCard | String | 申请人身份证号 |
| entourage | String | 随行人员 |
| informSignId | String | 告知签字 |
| drivingLicenseId | String | 行驶证照片 |
| attachmentId | String | 车辆照片 |
| auditPersonCorpId | Long | 审批人企业ID |
| auditPersonCorpName | String | 审批人企业名称 |
| auditPersonDepartmentId | Long | 审批人部门id |
| auditPersonDepartmentName | String | 审批人部门名称 |
| auditPersonUserId | Long | 审批人id |
| auditPersonUserName | String | 审批人姓名 |
| auditTime | String | 审批时间 |
| refusalReason | String | 驳回原因 |
| currentUserCanAudit | Integer | 当前用户是否可审批 |
| personInOutRecord | List\<HashMap\> | 进出记录 |

### 9.2 分页查询
- **POST** `/list`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| licenceNo | String | 否 | 车牌号 |
| applyPersonUserName | String | 否 | 申请人姓名 |
| auditFlag | Integer | 否 | 审核状态 |
| processOrRecord | Integer | 否 | 1申请中 2申请记录 |
| carBelongType | Integer | 否 | 1股份 2分公司 3相关方 4临时 |
| applyPersonCorpName | String | 否 | 申请人公司名称 |
| projectName | String | 否 | 项目名称 |

- 响应：`PageResponse<ClosedAreaCarApplyCO>`

### 9.3 审批车辆申请
- **POST** `/auditCarApply`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| id | Long | 是 | 主键 |
| auditFlag | Integer | 否 | 2通过 3驳回 |
| refusalReason | String | 否 | 驳回原因 |

- 响应：`Response`

### 9.4 详情 / 删除
- **GET** `/{id}` → `SingleResponse<ClosedAreaCarApplyCO>`
- **DELETE** `/{id}` → `Response`

---

## 十、封闭区域临时申请 `/${gateway}/closedTmpApply`

### 10.1 新增
- **POST** `/save`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| tmpApplyType | String | 是 | PERSON_APPLY / CAR_APPLY |
| tmpMkmjType | String | 是 | 一级人:ONE_LEVEL_PERSON_APPLY 二级人:TWO_LEVEL_PERSON_APPLY 一级车:ONE_LEVEL_CAR_APPLY 二级车:TWO_LEVEL_CAR_APPLY |
| auditPersonCorpId | Long | 是 | 审批人企业ID |
| auditPersonCorpName | String | 是 | 审批人企业名称 |
| auditPersonDepartmentId | Long | 是 | 审批人部门id |
| auditPersonDepartmentName | String | 是 | 审批人部门名称 |
| auditPersonUserId | Long | 是 | 审批人id |
| auditPersonUserName | String | 是 | 审批人姓名 |
| applyPersonUserName | String | 否 | 申请人姓名 |
| userFaceUrl | String | 否 | 申请人头像 |
| userPhone | String | 否 | 申请人手机号 |
| userCard | String | 否 | 申请人身份证号 |
| applyReason | String | 是 | 申请理由 |
| visitStartTime | String | 是 | 访问起始时间 |
| visitEndTime | String | 是 | 访问结束时间 |
| hgAuthArea | String | 是 | 所属港区 |
| hgAuthAreaName | String | 是 | 所属港区名称 |
| levelOneMkmjId | Long | 否 | 一级口门id |
| levelOneMkmjName | String | 是 | 一级口门名称 |
| informSignId | Long | 是 | 告知签字 |
| jurisdictionalCorpId | Long | 否 | 管辖单位id(二级人) |
| jurisdictionalCorpName | String | 否 | 管辖单位名称(二级人) |
| closedAreaId | Long | 否 | 封闭区域id(二级人) |
| closedAreaName | String | 否 | 封闭区域名称(二级人) |
| levelTwoMkmjId | Long | 否 | 二级口门id(二级人) |
| levelTwoMkmjName | String | 否 | 二级口门名称(二级人) |
| licenceType | String | 否 | 车牌类型(车) |
| licenceTypeName | String | 否 | 车牌类型名称(车) |
| licenceNo | String | 否 | 车牌号(车) |
| vehicleType | String | 否 | 车辆类型(车) |
| vehicleTypeName | String | 否 | 车辆类型名称(车) |
| drivingLicenseId | String | 否 | 行驶证照片(车) |
| attachmentId | String | 否 | 车辆照片(车) |
| drivingUserId | String | 否 | 驾驶人ID(车) |
| drivingUserName | String | 否 | 驾驶人名称(车) |

- 响应：`SingleResponse<HashMap<String, Object>>` (返回 id, tmpApplyType, tmpMkmjType)

### 10.2 详情
- **GET** `/getInfoById?id={id}&tmpApplyType={type}&tmpMkmjType={mkmjType}`
- 响应：`SingleResponse<TmpApplyCO>`

**TmpApplyCO**：

| 字段 | 类型 | 说明 |
|------|------|------|
| id | Long | 主键 |
| tmpApplyType | String | 申请类型 |
| auditFlag | Integer | 审核状态 |
| licenceNo | String | 车牌号(车) |
| vehicleType | String | 车辆类型(车) |
| levelOneMkmjId | Long | 一级口门id |
| levelOneMkmjName | String | 一级口门名称 |
| levelTwoMkmjId | Long | 二级口门id |
| levelTwoMkmjName | String | 二级口门名称 |
| closedAreaId | Long | 封闭区域id |
| closedAreaName | String | 封闭区域名称 |
| visitStartTime | String | 访问起始时间 |
| visitEndTime | String | 访问结束时间 |
| jurisdictionalCorpId | Long | 管辖单位id |
| jurisdictionalCorpName | String | 管辖单位名称 |
| applyPersonUserName | String | 申请人姓名 |
| applyReason | String | 申请理由 |
| userPhone | String | 申请人手机号 |
| drivingLicenseId | String | 行驶证照片(车) |
| attachmentId | String | 车辆照片(车) |
| gateLevelAuthArea | String | 授权范围 |
| auditPersonCorpId | Long | 审批人企业ID |
| auditPersonCorpName | String | 审批人企业名称 |
| auditPersonDepartmentId | Long | 审批人部门id |
| auditPersonDepartmentName | String | 审批人部门名称 |
| auditPersonUserId | Long | 审批人id |
| auditPersonUserName | String | 审批人姓名 |
| auditTime | String | 审批时间 |
| refusalReason | String | 驳回原因 |

---

## 十一、车辆申请 `/${gateway}/vehicleApply`

### 11.1 新增(长期车辆录入)
- **POST** `/save`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| licenceType | String | 是 | 车牌类型 |
| licenceTypeName | String | 是 | 车牌类型名称 0白牌 1蓝牌 2黄牌 3绿牌 4黑牌 |
| licenceNo | String | 是 | 车牌号 |
| vehicleType | String | 是 | 车辆类型 |
| vehicleTypeName | String | 是 | 车辆类型名称 |
| vehicleBelongType | String | 是 | 车辆所属 1股份员工 2股份单位 3分公司员工 4分公司单位 5相关方 6临时 7检查部门 |
| gateLevelAuthArea | String | 是 | 授权范围港区与区域 |
| visitStartTime | String | 是 | 访问起始时间 |
| visitEndTime | String | 是 | 访问结束时间 |
| drivingLicenseId | String | 是 | 行驶证照片 |
| attachmentId | String | 是 | 车辆照片 |
| informSignId | String | 否 | 告知签字 |
| projectId | Long | 否 | 项目id |
| projectName | String | 否 | 项目名称 |
| mkmjId | Long | 否 | 口门id |
| mkmjName | String | 否 | 口门名称 |
| lsUserPhone | String | 否 | 临时驾驶人手机号 |
| lsUserIdcard | String | 否 | 临时驾驶人身份证 |
| drivingUserId | Long | 否 | 临时驾驶人ID |
| drivingUserName | String | 否 | 临时驾驶人姓名 |
| remarks | String | 否 | 来访事由 |
| vehicleCorpId | Long | 否 | 车辆所属企业ID |
| vehicleCorpName | String | 否 | 车辆所属企业名称 |
| vehicleDepartmentId | Long | 否 | 车辆所属部门id |
| vehicleDepartmentName | String | 否 | 车辆所属部门名称 |
| employeeVehicleUserId | Long | 否 | 车辆所属人id |
| employeeVehicleUserName | String | 否 | 车辆所属人名称 |
| auditCorpId | Long | 否 | 审核企业 |
| auditCorpName | String | 否 | 审核企业名称 |
| auditDeptId | Long | 否 | 审核部门 |
| auditDeptName | String | 否 | 审核部门名称 |
| auditUserId | Long | 否 | 审核用户 |
| auditUserName | String | 否 | 审核用户名称 |

- 响应：`SingleResponse<VehicleApplyCO>`

**VehicleApplyCO**：

| 字段 | 类型 | 说明 |
|------|------|------|
| id | Long | 主键 |
| statusFlag | Integer | 车辆状态 1未启用 2启用 |
| licenceType | String | 车牌类型 |
| licenceTypeName | String | 车牌类型名称 |
| licenceNo | String | 车牌号 |
| vehicleType | String | 车辆类型 |
| vehicleTypeName | String | 车辆类型名称 |
| vehicleBelongType | String | 车辆所属类型 |
| gateLevelAuthArea | String | 授权范围 |
| auditFlag | Integer | 审核状态 1审核中 2通过 3驳回 4无需审批 |
| mkmjPermission | Integer | 进出港权限 1有 2无 |
| visitStartTime | String | 访问起始时间 |
| visitEndTime | String | 访问结束时间 |
| expiredExpiration | String | 有效期是否过期 1过期 2没过期 |
| blockedFlag | Integer | 1被拉黑 2未拉黑 |
| vehicleCorpId | Long | 车辆所属企业ID |
| vehicleCorpName | String | 车辆所属企业名称 |
| vehicleDepartmentId | Long | 车辆所属部门id |
| vehicleDepartmentName | String | 车辆所属部门名称 |
| employeeVehicleUserId | Long | 车辆所属人id |
| employeeVehicleUserName | String | 车辆所属人名称 |
| drivingUserName | String | 临时驾驶人姓名 |
| emissionStandards | String | 排放标准 |
| emissionStandardsName | String | 排放标准名称 |
| drivingLicenseId | String | 行驶证照片 |
| attachmentId | String | 车辆照片 |
| informSignId | String | 告知签字 |
| projectId | Long | 项目id |
| projectName | String | 项目名称 |
| mkmjId | Long | 口门id |
| mkmjName | String | 口门名称 |
| remarks | String | 来访事由 |
| lsUserPhone | String | 临时驾驶人手机号 |
| lsUserIdcard | String | 临时驾驶人身份证 |
| currentBatchState | Integer | 当前批次状态 |
| currentAuditUserId | Long | 当前审批人id |
| currentAuditUserName | String | 当前审批人名称 |
| currentAuditDeptId | Long | 当前审批部门id |
| currentAuditDeptName | String | 当前审批部门名称 |
| currentAuditCorpId | Long | 当前审批企业id |
| currentAuditCorpName | String | 当前审批企业名称 |
| currentAuditStatus | Integer | 当前审批状态 |
| currentAuditTime | String | 当前审批时间 |
| currentRemarks | String | 当前备注 |
| checkDepartmentName | String | 检查部门名称 |
| vehicleAuditLogList | List\<VehicleAuditLog\> | 审批记录列表 |

### 11.2 新增(检查部门车辆录入)
- **POST** `/inspectCarSave`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| checkDepartmentName | String | 是 | 检查部门名称 |
| vehicleBelongType | String | 是 | 车辆所属类型 |
| remarks | String | 否 | 名称 |
| inspectCarList | List\<InspectCar\> | 否 | 车辆信息列表 |
| - licenceType | String | 否 | 车牌类型 |
| - licenceTypeName | String | 否 | 车牌类型名称 |
| - vehicleType | String | 否 | 车辆类型 |
| - vehicleTypeName | String | 否 | 车辆类型名称 |
| - licenceNo | String | 否 | 车牌号 |
| - visitStartTime | String | 否 | 访问开始时间 |
| - visitEndTime | String | 否 | 访问结束时间 |

- 响应：`Response`

### 11.3 检查部门车辆修改
- **PUT** `/inspectCarEdit`
- 请求体：含 id + 车牌/类型等修改字段
- 响应：`Response`

### 11.4 分页查询
- **POST** `/list`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| licenceNo | String | 否 | 车牌号 |
| auditFlag | Integer | 否 | 审核状态 |
| visitStartTime | String | 否 | 访问起始时间 |
| visitEndTime | String | 否 | 访问结束时间 |
| gateLevelAuthAreaId | String | 否 | 授权范围 |
| vehicleCorpId | Long | 否 | 车辆归属企业ID |
| vehicleDepartmentId | Long | 否 | 车辆归属部门ID |
| employeeVehicleUserId | Long | 否 | 车辆归属员工ID |
| vehicleBelongType | Integer | 否 | 车辆所属类型 |
| remarks | String | 否 | 名称 |
| corpName | String | 否 | 企业名称 |

- 响应：`PageResponse<VehicleApplyCO>`

### 11.5 详情 / 删除 / 修改
- **GET** `/{id}` → `SingleResponse<VehicleApplyCO>`
- **DELETE** `/{id}` → `Response`
- **PUT** `/edit` → `SingleResponse`（请求体含 id + 修改字段）

### 11.6 车牌号唯一性校验
- **GET** `/check-licence-no?licenceNo=xxx&id=xxx`
- 响应：`SingleResponse<Map<String, Object>>`

### 11.7 车牌号黑名单校验
- **GET** `/check-licence-no-black?licenceNo=xxx`
- 响应：`SingleResponse<Map<String, Object>>`

### 11.8 分公司统计
- **POST** `/fgsCount`
- 请求参数：动态 HashMap
- 响应：`PageResponse<FgsVehicleCountCo>`

**FgsVehicleCountCo**：

| 字段 | 类型 | 说明 |
|------|------|------|
| corpId | Long | 企业id |
| corpName | String | 企业名称 |
| userCount | Integer | 人员数 |
| priCarCount | Integer | 个人车辆数 |
| pubCarCount | Integer | 单位车辆数 |

### 11.9 根据车辆归属查询车辆分页
- **GET** `/getCarByVehicleBelongType`
- 请求参数：同 11.4
- 响应：`PageResponse<VehicleApplyCO>`

### 11.10 相关方车辆授权
- **POST** `/xgfCarAuthorization`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| vehicleApplyId | Long | 否 | 车辆申请id |
| mkmjPermission | Integer | 是 | 进出港权限 1有 2无 |

- 响应：`Response`

---

## 十二、车辆审批 `/${gateway}/vehicleAudit`

### 12.1 待审批分页
- **POST** `/pendingApprovalList`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| employeeVehicleUserName | String | 否 | 车辆归属人 |
| licenceNo | String | 否 | 车牌号 |
| visitStartTime | String | 否 | 访问起始时间 |
| visitEndTime | String | 否 | 访问结束时间 |
| vehicleDepartmentId | Long | 否 | 车辆归属部门 |
| gateLevelAuthAreaId | String | 否 | 授权范围 |
| vehicleBelongTypeArr | String | 否 | 车辆所属类型(多选) |
| vehicleBelongType | String | 否 | 车辆所属类型 |
| processOrRecord | Integer | 否 | 1审批中 2审批记录 |
| auditStatus | Integer | 否 | 审核状态 |
| vehicleApplyId | Long | 否 | 车辆申请ID |
| applyCorpId | Long | 否 | 申请企业id |
| projectName | String | 否 | 项目名称 |
| h5UserIdCard | String | 否 | H5身份证号 |

- 响应：`PageResponse<VehicleAuditCO>`

**VehicleAuditCO**：

| 字段 | 类型 | 说明 |
|------|------|------|
| id | Long | 主键 |
| vehicleApplyId | String | 车辆申请id |
| batchType | Integer | 审批批次 1普通 2危险化学品 |
| batchState | Integer | 审批状态 1申请 2更新 |
| auditTime | String | 审批时间 |
| auditUserId | Long | 审批人id |
| auditUserName | String | 审批人名称 |
| auditDeptId | Long | 审批人部门id |
| auditDeptName | String | 审批人部门名称 |
| auditCorpId | Long | 审批人企业id |
| auditCorpName | String | 审批人企业名称 |
| auditStatus | Integer | 1未开始 2通过 3不通过 |
| remarks | String | 备注 |
| currentUserCanAudit | Integer | 当前用户是否可审批 |
| changeAfter | String | 变更后 |
| changeBefore | String | 变更前 |
| applyUserName | String | 申请人 |
| + 车辆申请字段 | | licenceNo, vehicleType, vehicleBelongType 等 |

### 12.2 车辆审批记录
- **POST** `/carApprovalLogByvehicleApplyIdList`
- 请求体：同 12.1
- 响应：`PageResponse<VehicleAuditCO>`

### 12.3 审批
- **POST** `/audit`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| id | Long | 是 | 审批记录id |
| vehicleApplyId | Long | 是 | 车辆申请id |
| auditStatus | Integer | 是 | 2通过 3不通过 |
| remarks | String | 否 | 驳回原因 |

- 响应：`Response`

### 12.4 详情
- **GET** `/{id}`
- 响应：`SingleResponse<VehicleAuditCO>`

---

## 十三、车辆违规 `/${gateway}/vehicleViolations`

### 13.1 新增
- **POST** `/save`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| licenceNo | String | 是 | 车牌号 |
| licenceType | String | 否 | 车牌类型 |
| licenceTypeName | String | 否 | 车牌类型名称 |
| vehicleType | String | 否 | 车辆类型 |
| vehicleTypeName | String | 否 | 车辆类型名称 |
| violationType | String | 是 | 违规类型 |
| violationTypeName | String | 是 | 违规类型名称 |
| location | String | 是 | 违规区域 |
| illegalImagesId | String | 是 | 违规图片路径 |
| describeMessage | String | 是 | 违规说明 |
| violationtime | String | 是 | 违规时间 |

- 响应：`SingleResponse<VehicleViolationsCO>`

**VehicleViolationsCO**：

| 字段 | 类型 | 说明 |
|------|------|------|
| id | Long | 主键 |
| vehicleId | Long | 车辆id |
| employeeVehicleUserName | String | 车辆归属人 |
| licenceNo | String | 车牌号 |
| violationType | String | 违规类型 |
| violationTypeName | String | 违规类型名称 |
| location | String | 违规区域 |
| illegalImagesId | String | 违规图片 |
| describeMessage | String | 违规说明 |
| violationtime | String | 违规时间 |
| violationProcessingStatus | Integer | 1已处理 2未处理 |
| violationCount | Integer | 违规次数 |

### 13.2 违规记录分页 / 违规详情记录分页
- **POST** `/list` 或 `/detailsRecordList`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| licenceNo | String | 否 | 车牌号 |
| violationType | String | 否 | 违规类型 |

- 响应：`PageResponse<VehicleViolationsCO>`

### 13.3 详情 / 删除 / 修改
- **GET** `/{id}` → `SingleResponse<VehicleViolationsCO>`
- **DELETE** `/{id}` → `Response`
- **PUT** `/edit` → `SingleResponse`

---

## 十四、车辆黑名单 `/${gateway}/vehicleBlack`

### 14.1 新增
- **POST** `/save`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| licenceNo | String | 是 | 车牌号 |
| licenceType | String | 否 | 车牌类型 |
| licenceTypeName | String | 否 | 车牌类型名称 |
| vehicleType | String | 否 | 车辆类型 |
| vehicleTypeName | String | 否 | 车辆类型名称 |
| remarks | String | 否 | 备注 |
| blockReason | String | 否 | 拉黑原因 |

- 响应：`SingleResponse<VehicleBlackCO>`

**VehicleBlackCO**：

| 字段 | 类型 | 说明 |
|------|------|------|
| id | Long | 主键 |
| employeeVehicleUserName | String | 车辆归属人 |
| licenceNo | String | 车牌号 |
| licenceType | String | 车牌类型 |
| licenceTypeName | String | 车牌类型名称 |
| vehicleType | String | 车辆类型 |
| vehicleTypeName | String | 车辆类型名称 |
| remarks | String | 备注 |
| blockReason | String | 拉黑原因 |

### 14.2 分页查询
- **POST** `/list`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| licenceNo | String | 否 | 车牌号 |
| employeeVehicleUserName | String | 否 | 车辆归属人 |
| vehicleDepartmentId | Long | 否 | 车辆归属部门 |
| vehicleType | String | 否 | 车辆类型 |

- 响应：`PageResponse<VehicleBlackCO>`

### 14.3 详情 / 删除
- **GET** `/{id}` → `SingleResponse<VehicleBlackCO>`
- **DELETE** `/{id}` → `Response`

---

## 十五、车辆门禁信息 `/${gateway}/vehicleMessage`

### 15.1 新增
- **POST** `/save`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| licenceType | String | 是 | 车牌类型 |
| licenceTypeName | String | 是 | 车牌类型名称 |
| licenceNo | String | 是 | 车牌号 |
| vehicleType | String | 是 | 车辆类型 |
| vehicleTypeName | String | 是 | 车辆类型名称 |
| vehicleBelongType | String | 是 | 车辆所属类型 |
| gateLevelAuthArea | Object | 是 | 授权范围 |
| visitStartTime | String | 是 | 授权访问起始时间 |
| visitEndTime | String | 是 | 授权访问结束时间 |
| vehicleApplyId | Long | 是 | 车辆申请id |
| remarks | String | 是 | 备注 |
| syncStatus | Integer | 是 | 对接状态 1完成 2未对接 |
| syncRemarks | String | 是 | 对接说明 |

- 响应：`SingleResponse<VehicleMessageCO>`

### 15.2 分页 / 全部 / 详情 / 删除 / 批量删除 / 修改
- **POST** `/list` → `PageResponse<VehicleMessageCO>`
- **GET** `/listAll` → `MultiResponse<VehicleMessageCO>`
- **GET** `/{id}` → `SingleResponse<VehicleMessageCO>`
- **DELETE** `/{id}` → `Response`
- **DELETE** `/ids?ids=1&ids=2` → `Response`
- **PUT** `/edit` → `SingleResponse`

---

## 十六、车辆对接日志 `/${gateway}/vehicleDockLog`

### 16.1 新增
- **POST** `/save`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| level | String | 是 | 1一级口门 2二级口门 |
| vehicleBelongType | String | 是 | 车辆所属类型 |
| licenceNo | String | 是 | 车牌号 |
| applyName | String | 是 | 申请人名称 |
| applyTime | String | 是 | 申请时间 |
| auditName | String | 是 | 审批人名称 |
| auditTime | String | 是 | 审批时间 |
| portArea | String | 是 | 港区 0全部 1东港 2西港 |
| validDte | String | 是 | 有效期 |
| truckCardColor | String | 是 | 车牌颜色 |
| truckTypCod | String | 是 | 车辆类型 |
| yqlCheckFlag | String | 是 | 运全路 0不可以 1可以 |
| driverNam | String | 是 | 司机名称 |
| truckAppTypCod | String | 是 | 申请类别 1公务 2生产 3政府 4职工 5客户 |
| dockFlag | String | 是 | 对接状态 1没对接 2已对接 |
| dockStatus | String | 是 | 1对接失败 2对接成功 |
| reasonsRefusal | String | 是 | 对接失败原因 |

- 响应：`SingleResponse<VehicleDockLogCO>`

### 16.2 分页 / 全部 / 详情 / 删除 / 批量删除 / 修改
- **POST** `/list` → `PageResponse<VehicleDockLogCO>`
- **GET** `/listAll` → `MultiResponse<VehicleDockLogCO>`
- **GET** `/{id}` → `SingleResponse<VehicleDockLogCO>`
- **DELETE** `/{id}` → `Response`
- **DELETE** `/ids?ids=1,2` → `Response`
- **PUT** `/edit` → `SingleResponse`

---

## 十七、人员申请审批 `/${gateway}/personApply`

### 17.1 相关方人员申请新增
- **POST** `/xgfPersonSave`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| personBelongType | Integer | 是 | 3相关方 4临时人员 |
| gateLevelAuthArea | String | 是 | 授权范围港区与区域 |
| visitStartTime | String | 是 | 访问起始时间 |
| visitEndTime | String | 是 | 访问结束时间 |
| informSignId | String | 否 | 告知签字 |
| mkmjId | Long | 否 | 口门id |
| mkmjName | String | 否 | 口门名称 |
| projectId | Long | 否 | 项目id |
| projectName | String | 否 | 项目名称 |
| reasonVisit | String | 否 | 来访事由 |
| auditCorpId | Long | 否 | 审核企业 |
| auditCorpName | String | 否 | 审核企业名称 |
| auditDeptId | Long | 否 | 审核部门 |
| auditDeptName | String | 否 | 审核部门名称 |
| auditUserId | Long | 否 | 审核用户 |
| auditUserName | String | 否 | 审核用户名称 |
| personApplyList | List\<PersonApplyAddCmdExt\> | 否 | 待审批人员列表 |
| - personCorpId | Long | 否 | 企业ID |
| - personCorpName | String | 否 | 企业名称 |
| - personDepartmentId | Long | 否 | 部门id |
| - personDepartmentName | String | 否 | 部门名称 |
| - employeePersonUserId | Long | 否 | 人员id |
| - employeePersonUserName | String | 是 | 人员姓名 |
| - userFaceUrl | String | 是 | 头像 |
| - userPhone | String | 是 | 手机号 |
| - userCard | String | 是 | 身份证号 |
| - visitStartTime | String | 否 | 访问起始时间 |
| - visitEndTime | String | 否 | 访问结束时间 |

- 响应：`Response`

### 17.2 相关方/临时人员审批
- **POST** `/xgfPersonAudit`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| id | Long | 是 | 主键 |
| auditFlag | Integer | 是 | 2通过 3驳回 |
| reasonsRefusal | String | 否 | 驳回理由 |

- 响应：`Response`

### 17.3 相关方人员权限记录列表
- **POST** `/xgfPersonPermissionsList`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| processOrRecord | Integer | 否 | 1审批中 2审批记录 |
| projectName | String | 否 | 项目名称 |
| applyCorpName | String | 否 | 申请单位名称 |
| auditFlag | Integer | 否 | 审核状态 |
| userCard | String | 否 | 身份证号 |
| employeePersonUserName | String | 否 | 姓名 |
| applyCorpId | Long | 否 | 申请企业ID |

- 响应：`PageResponse<PersonApplyCO>`

**PersonApplyCO**：

| 字段 | 类型 | 说明 |
|------|------|------|
| id | Long | 主键 |
| xgfApplyPersonId | Long | 相关方申请人员id |
| personBelongType | Integer | 人员所属类型 |
| visitStartTime | String | 访问起始时间 |
| visitEndTime | String | 访问结束时间 |
| personCorpId | Long | 企业ID |
| personCorpName | String | 企业名称 |
| personDepartmentId | Long | 部门id |
| personDepartmentName | String | 部门名称 |
| employeePersonUserId | Long | 人员id |
| employeePersonUserName | String | 人员姓名 |
| userFaceUrl | String | 头像 |
| userPhone | String | 手机号 |
| userCard | String | 身份证号 |
| informSignId | String | 告知签字 |
| projectId | Long | 项目id |
| projectName | String | 项目名称 |
| mkmjId | Long | 口门id |
| mkmjName | String | 口门名称 |
| currentUserCanAudit | Integer | 当前用户是否可审批 |
| mkmjPermission | Integer | 进出港权限 |
| gateLevelAuthArea | String | 授权范围 |
| auditUserId | String | 审批人id |
| auditUserName | String | 审批人名称 |
| auditDeptId | String | 审批人部门id |
| auditDeptName | String | 审批人部门名称 |
| auditCorpId | String | 审批人企业id |
| auditCorpName | String | 审批人企业名称 |
| auditTime | String | 审批时间 |
| userUid | String | 用户uid |
| createTime | String | 创建时间 |

### 17.4 相关方人员权限详情
- **GET** `/xgfPersonPermissionsInfo/{id}`
- 响应：`SingleResponse<PersonApplyCO>`

### 17.5 相关方人员申请详情
- **GET** `/xgfPersonApplyInfoById/{id}`
- 响应：`SingleResponse<XgfPersonApplyCO>`

### 17.6 待审批相关方申请人员列表
- **POST** `/xgfPersonAuditList`
- 响应：`PageResponse<XgfPersonApplyCO>`

### 17.7 相关方人员入场申请列表
- **POST** `/xgfPersonApplyList`
- 响应：`PageResponse<XgfPersonApplyCO>`

### 17.8 临时访客人员入场申请列表(H5)
- **POST** `/tmpPersonApplyH5List`
- 响应：`PageResponse<PersonApplyCO>`

### 17.9 人员临时申请审批待审批分页
- **POST** `/pendingApprovalList`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| xgfApplyPersonId | Long | 否 | 相关方人员申请ID |
| employeePersonUserName | String | 否 | 访问人姓名 |
| personBelongType | String | 否 | 3相关方 4临时人员 |
| auditFlag | Integer | 否 | 审核状态 |
| processOrRecord | Integer | 否 | 1待审批 2已审批 |
| visitStartTime | String | 否 | 访问开始时间 |
| visitEndTime | String | 否 | 访问结束时间 |

- 响应：`PageResponse<XgfPersonApplyCO>`

### 17.10 相关方人员及车辆管理首页分页
- **GET** `/xgfPersonnelVehicleManagementList`
- 请求参数：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| name | String | 否 | 姓名 |
| projectName | String | 否 | 项目名称 |
| sex | Long | 否 | 性别 |
| departmentId | Long | 否 | 部门ID |
| corpId | Long | 否 | 公司ID |

- 响应：`PageResponse<XgfPersonCountCO>`

**XgfPersonCountCO**：

| 字段 | 类型 | 说明 |
|------|------|------|
| userId | Long | 用户id |
| userName | String | 姓名 |
| userCard | String | 身份证号 |
| userPhone | String | 手机号 |
| corpinfoId | Long | 企业id |
| corpName | String | 企业名称 |
| applyCorpId | Long | 申请企业id |
| applyCorpName | String | 申请企业名称 |
| departmentId | Long | 部门id |
| departmentName | String | 部门名称 |
| postName | String | 岗位名称 |
| projectId | Long | 项目id |
| projectName | String | 项目名称 |
| visitStartTime | String | 访问起始时间 |
| visitEndTime | String | 访问结束时间 |
| xgfApplyPersonId | Long | 相关方申请人员id |
| applyPersonId | Long | 申请人员id |
| vehicleCount | Integer | 车辆数 |
| projectCount | Integer | 项目数 |
| mkmjPermission | Integer | 进出港权限 |

### 17.11 股份/分公司人员及车辆管理分页
- **GET** `/personnelVehicleManagementList`
- 请求参数：同 17.10
- 响应：`PageResponse<PersonCountCO>`

**PersonCountCO**：

| 字段 | 类型 | 说明 |
|------|------|------|
| userId | Long | 用户id |
| userName | String | 姓名 |
| userCard | String | 身份证号 |
| userPhone | String | 手机号 |
| userFaceUrl | String | 头像 |
| corpinfoId | Long | 企业id |
| corpName | String | 企业名称 |
| departmentId | Long | 部门id |
| departmentName | String | 部门名称 |
| postName | String | 岗位名称 |
| projectId | Long | 项目id |
| projectName | String | 项目名称 |
| visitStartTime | String | 访问起始时间 |
| visitEndTime | String | 访问结束时间 |
| xgfApplyPersonId | Long | 相关方申请人员id |
| applyPersonId | Long | 申请人员id |
| vehicleCount | Integer | 车辆数 |
| mkmjPermission | Integer | 进出港权限 |

### 17.12 相关方人员授权
- **POST** `/xgfPersonAuthorization`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| applyPersonId | Long | 否 | 项目申请人员ID |
| xgfApplyPersonId | Long | 否 | 相关方申请人员ID |
| personBelongType | Integer | 是 | 1股份 2分公司 3相关方 |
| corpinfoId | Long | 否 | 企业ID |
| corpName | String | 否 | 企业名称 |
| departmentId | Long | 否 | 部门id |
| departmentName | String | 否 | 部门名称 |
| userId | Long | 否 | 人员id |
| userName | String | 否 | 人员姓名 |
| userFaceUrl | String | 否 | 头像 |
| userPhone | String | 否 | 手机号 |
| userCard | String | 否 | 身份证号 |
| gateLevelAuthArea | String | 是 | 授权范围 |
| mkmjPermission | Integer | 是 | 进出港权限 1有 2无 |

- 响应：`Response`

### 17.13 股份/分公司人员授权
- **POST** `/authorization`
- 请求体：同 17.12
- 响应：`Response`

### 17.14 详情 / 删除
- **GET** `/{id}` → `SingleResponse<PersonApplyCO>`
- **DELETE** `/{id}` → `Response`

---

## 十八、人员门禁信息 `/${gateway}/personMessage`

### 18.1 新增
- **POST** `/save`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| personApplyId | Long | 是 | 人员申请id |
| personBelongType | Integer | 是 | 1股份 2分公司 3相关方 4临时人员 |
| userFaceUrl | String | 是 | 头像 |
| userCard | String | 是 | 身份证号 |
| gateLevelAuthArea | String | 是 | 授权范围 |
| visitStartTime | String | 是 | 授权访问起始时间 |
| visitEndTime | String | 是 | 授权访问结束时间 |
| remarks | String | 是 | 备注 |
| syncStatus | Integer | 是 | 对接状态 1完成 2未对接 |
| syncRemarks | String | 是 | 对接说明 |

- 响应：`SingleResponse<PersonMessageCO>`

**PersonMessageCO**：

| 字段 | 类型 | 说明 |
|------|------|------|
| id | Object | 主键 |
| personApplyId | Long | 人员申请id |
| personBelongType | Integer | 人员所属类型 |
| userFaceUrl | String | 头像 |
| userCard | String | 身份证号 |
| gateLevelAuthArea | Object | 授权范围 |
| visitStartTime | String | 授权访问起始时间 |
| visitEndTime | String | 授权访问结束时间 |
| remarks | String | 备注 |
| syncStatus | Integer | 对接状态 |
| syncRemarks | String | 对接说明 |

### 18.2 分页 / 全部 / 详情 / 删除 / 批量删除 / 修改
- **POST** `/list` → `PageResponse<PersonMessageCO>`
- **GET** `/listAll` → `MultiResponse<PersonMessageCO>`
- **GET** `/{id}` → `SingleResponse<PersonMessageCO>`
- **DELETE** `/{id}` → `Response`
- **DELETE** `/ids?ids=1&ids=2` → `Response`
- **PUT** `/edit` → `SingleResponse`

---

## 十九、电动车基础信息 `/${gateway}/eVehicleBasicInfo`

### 19.1 新增
- **POST** `/save`
- 请求体（均非必填）：

| 字段 | 类型 | 说明 |
|------|------|------|
| vehicleRecordId | String | 车辆ID |
| vehicleFilingInfoRecordingOrg | String | 备案信息录入单位 |
| vehicleOwningEntity | String | 车辆归属单位 |
| vehiclePlateNumber | String | 车辆牌照号码 |
| vehicleRegistrationNumber | String | 车辆行驶证号码 |
| vehicleCategoryName | String | 车辆类型名称 |
| vehiclePlateColorName | String | 车辆牌照颜色名称 |
| vehicleFilingTime | String | 备案时间 |
| vehicleContactName | String | 联系人姓名 |
| vehicleContactPhoneNumber | String | 联系人电话 |
| vehicleFilingMethod | String | 备案分类 1长期 2一次性 3内部 4临时 |
| edwValidFlag | String | 有效标识 |
| edwDataSource | String | 数据源头 |
| edwCreateDate | String | 创建时间 |
| edwLastUpdate | String | 更新时间 |
| dataVersion | Long | 分区列 |
| accLastUpdateDate | String | 同步时间 |
| idSequence | Long | 序列号 |

- 响应：`SingleResponse<EVehicleBasicInfoCO>`

### 19.2 分页 / 全部 / 详情 / 删除 / 批量删除 / 修改
- **POST** `/list` → `PageResponse<EVehicleBasicInfoCO>`
- **GET** `/listAll` → `MultiResponse<EVehicleBasicInfoCO>`
- **GET** `/{id}` → `SingleResponse<EVehicleBasicInfoCO>`
- **DELETE** `/{id}` → `Response`
- **DELETE** `/ids?ids=1,2` → `Response`
- **PUT** `/edit` → `SingleResponse`

---

## 二十、电动车到离港信息 `/${gateway}/eVehicleArrivalDepartureInfo`

### 20.1 新增
- **POST** `/save`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| dataVersion | String | 是 | data_version |
| idSequence | Integer | 是 | id_sequence |
| accLastUpdateDate | String | 是 | 同步时间 |
| edwCreateDate | String | 是 | 创建时间 |
| edwDataSource | String | 是 | 数据源头 |
| edwLastUpdate | String | 是 | 更新时间 |
| edwValidFlag | String | 是 | 有效标识 |
| vehicleArrivalBarrier | String | 是 | 进港闸口 |
| vehicleArrivalStatus | String | 是 | 进港状态 |
| vehicleArrivalTime | String | 是 | 进港时间 |
| vehicleCategoryName | String | 是 | 车辆类型名称 |
| vehicleContactName | String | 是 | 联系人姓名 |
| vehicleContactPhoneNumber | String | 是 | 联系人电话 |
| vehicleDepartureBarrier | String | 是 | 出港闸口 |
| vehicleDepartureTime | String | 是 | 出港时间 |
| vehicleFilingInfoRecordingOrg | String | 是 | 备案信息录入单位 |
| vehicleFilingMethod | String | 是 | 备案分类 |
| vehiclePlateColor | String | 是 | 车牌颜色 |
| vehiclePlateNumber | String | 是 | 车牌号 |
| vehicleRecordId | String | 是 | 车辆ID |
| vehicleRegistrationNumber | String | 是 | 行驶证号码 |
| vehicleSequenceNumber | String | 是 | 序列号 |
| jjbsaasdatacenterid | Long | 是 | 数据中心ID |

- 响应：`SingleResponse<EVehicleArrivalDepartureInfoCO>`

### 20.2 分页查询
- **POST** `/list`
- 请求体：

| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| vehiclePlateNumber | String | 否 | 车牌号 |
| startVehicleArrivalTime | String | 否 | 进港开始时间 |
| endVehicleArrivalTime | String | 否 | 进港结束时间 |
| startVehicleDepartureTime | String | 否 | 出港开始时间 |
| endVehicleDepartureTime | String | 否 | 出港结束时间 |

- 响应：`PageResponse<EVehicleArrivalDepartureInfoCO>`

### 20.3 全部 / 详情 / 删除 / 批量删除 / 修改
- **GET** `/listAll` → `MultiResponse<EVehicleArrivalDepartureInfoCO>`
- **GET** `/{id}` → `SingleResponse<EVehicleArrivalDepartureInfoCO>`
- **DELETE** `/{id}` → `Response`
- **DELETE** `/ids?ids=1,2` → `Response`
- **PUT** `/edit` → `SingleResponse`

---

## 二十一、App统计角标 `/${gateway}/appStatisticsCorner`

### 21.1 获取App统计角标
- **GET** `/getAppCount`
- 请求参数：无
- 响应：`MultiResponse<AppCountCO>`

**AppCountCO**：

| 字段 | 类型 | 说明 |
|------|------|------|
| type | String | 类型: one_level_car / two_level_car / one_level_person / two_level_person |
| belongType | String | 所属类型 |
| auditUserId | Long | 审批人ID |
| waitAuditCount | int | 待审批数量 |
