index.ts 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414
  1. import { http } from '@/utils/http/axios';
  2. /**
  3. * @description: 查询未读消息列表
  4. */
  5. export interface UnReadNoticeInfo {
  6. id: number; // 消息通知id
  7. notifierUserId: number; // 被通知人用户id
  8. infoType: number; // 消息类型:1-灾害预警 2-防御通知 3-预防检查任务 4-灾害处置上报任务 5-灾害处置整改任务
  9. infoOutline: string; // 消息概要
  10. infoStatus: number; // 消息状态:1-已处理、2-未处理、3-忽略
  11. pushChannel: number; // 推送渠道:1-首页
  12. detail: string; // 详情(JSON)
  13. sourceId: number; // 消息来源id
  14. createdAt: string; // 创建时间
  15. updatedAt: string; // 更新时间
  16. isDeleted: number; // 0-未删除,大于0-已删除
  17. }
  18. export const getUnReadNoticeInfoList = () => {
  19. return http.request<UnReadNoticeInfo[]>({
  20. url: '/noticeInfo/queryUnReadNoticeInfoList',
  21. method: 'get',
  22. });
  23. };
  24. /**
  25. * @description: 更新消息通知状态
  26. */
  27. export interface UpdateUnReadNoticeInfoStatusParams {
  28. id: number; // 消息通知id
  29. status: number; // 修改状态:1-已读 2-未读 3-忽略
  30. }
  31. export const updateUnReadNoticeInfoStatus = (params: UpdateUnReadNoticeInfoStatusParams) => {
  32. return http.request({
  33. url: '/noticeInfo/updateNoticeInfoStatus',
  34. method: 'post',
  35. params,
  36. });
  37. };
  38. /**
  39. * @description: 灾害预警记录(timespan: 1-本周,2-本月,3-季度,4-年度)
  40. */
  41. export interface WarnRecord {
  42. disasterType: string; // 灾害类型
  43. warnTime: string; // 预警时间
  44. source: string; // 信息来源
  45. content: string; // 发布内容
  46. }
  47. export interface DisasterWarningRecordsRes {
  48. warnCount: number; // 预警数量
  49. warnRecord: WarnRecord[]; // 预警记录
  50. }
  51. export const getDisasterWarningRecords = (duration: number) => {
  52. return http.request<DisasterWarningRecordsRes[]>({
  53. url: `/overview/queryOverviewDisasterWarn?timespan=${duration}`,
  54. method: 'get',
  55. });
  56. };
  57. /**
  58. * @description: 预防检查
  59. */
  60. export interface QueryCheckingListsParams {
  61. pageNumber?: number;
  62. pageSize?: number;
  63. queryParam?: {};
  64. }
  65. export interface TaskRecord {
  66. id: number; // 任务id
  67. inspectType: number; // 检查类型:1-台汛前期检查,2-台汛中期检查,3-台汛后期检查
  68. deptName: string; // 被检查单位名称
  69. updatedAt: string; // 更新时间
  70. taskState: number; // 任务状态:1-待发布,2-待检查,3-待审批,4-已完成
  71. hasHazard: boolean; // 检查结果:false-不存在隐患,true-存在隐患
  72. }
  73. export interface PreventInspectInfoRes {
  74. totalTask: number; // 总任务数
  75. submittedTask: number; // 待签字任务数
  76. signedTask: number; // 已签字任务数
  77. passTask: number; // 通过任务数
  78. dangerTask: number; // 隐患任务数
  79. taskRecord: TaskRecord[]; // 检查任务记录
  80. pageNumber: number;
  81. pageSize: number;
  82. totalPage: number;
  83. totalRow: number;
  84. }
  85. export const getPreventInspect = (params: QueryCheckingListsParams) => {
  86. return http.request<PreventInspectInfoRes>({
  87. url: '/overview/queryOverviewPreventInspect',
  88. method: 'post',
  89. params,
  90. });
  91. };
  92. /**
  93. * @description: 灾害处置
  94. */
  95. export interface DisasterHandleInfoRecord {
  96. affectedItems: string; // 受灾物品
  97. deptId: number; // 损失部门id
  98. deptName: string; // 损失部门
  99. affectedLocation: string; // 受灾地点
  100. fixStatus: number; // 整改进度:1-待整改 2-已响应 3-已更新 4-已完成 5-暂时关闭
  101. fixerId: number; // 整改人员id
  102. fixerName: string; // 整改人员名称
  103. fixerStaffNo: string; // 整改人员工号
  104. }
  105. export interface QueryDisasterHandleOverviewRes {
  106. dueReportDeptCount: number; // 应上报部门数量
  107. completeReportDeptCount: number; // 已上报部门数量
  108. existLossDeptCount: number; // 存在损失部门数量
  109. lossRecordCount: number; // 损失记录数量
  110. completeHandleCount: number; // 处置完成数量
  111. disasterHandleInfoList: DisasterHandleInfoRecord[];
  112. pageNumber: number;
  113. pageSize: number;
  114. totalPage: number;
  115. totalRow: number;
  116. }
  117. export const getDisasterHandleOverview = (params: QueryCheckingListsParams) => {
  118. return http.request<QueryDisasterHandleOverviewRes>({
  119. url: '/disasterHandle/queryDisasterHandleOverview',
  120. method: 'post',
  121. params,
  122. });
  123. };
  124. /**
  125. * @description: 通知与管理规定(防御通知)
  126. */
  127. export interface NoticeAndRulesRes {
  128. id: number; // 通知id
  129. title: string; // 通知标题
  130. createdBy: number; // 创建人id
  131. createdName: string; // 创建人姓名
  132. pushTime: string; // 发布时间
  133. }
  134. export const getNoticeAndRules = () => {
  135. return http.request<NoticeAndRulesRes[]>({
  136. url: '/overview/queryOverviewDefenseNotice',
  137. method: 'get',
  138. });
  139. };
  140. /**
  141. * @description: 重点监测区域:查看相机分组列表
  142. */
  143. export interface GetCameraGroupListRes {
  144. id: number; // 分组id
  145. groupName: string; // 分组名称
  146. isDefault: number;
  147. playIntervalSec: number; // 轮播间隔
  148. isPaused: number; // 是否暂停播放
  149. children: CameraInfo[]; // 分组相机列表
  150. }
  151. export interface CameraInfo {
  152. networkingState: number; // 联网状态: 0-启用, 1-禁用
  153. integrationState: number; // 接入状态: 0-启用, 1-禁用
  154. render: string; // 渲染选择,无渲染/某个算法
  155. version: number; // 版本
  156. extra: string; // 扩展数据
  157. pushStreamDTO: {
  158. videoUrls: {
  159. pushstreamIp: string; // 推流地址(前端播放的地址)
  160. pushstreamRenderUrl: string; // 渲染推流地址(前端播放的渲染地址)
  161. m3u8PushstreamIp: string; // ios推流地址(前端播放的地址)
  162. m3u8PushstreamRenderIp: string; // ios推流地址(前端播放的地址)
  163. pushstreamIpAbs: string; // 推流地址(前端播放的地址)
  164. pushstreamRenderUrlAbs: string; // 渲染推流地址(前端播放的渲染地址)
  165. m3u8PushstreamIpAbs: string; // ios推流地址(前端播放的地址)
  166. m3u8PushstreamRenderIpAbs: string; // ios推流地址(前端播放的地址)
  167. };
  168. imageUrl: string; // 摄像头实时记录的画面
  169. };
  170. id: number; // 自增主键
  171. workshopId: number; // 车间id
  172. workspaceId: number; // 工位id
  173. name: string; // 相机名称
  174. code: string; // 相机编号
  175. cameraIp: string; // 相机IP
  176. cameraPort: string; // 相机端口
  177. cameraType: string; // 相机类型: haikang/dahua/anxus/huawei
  178. remark: string; // 描述
  179. sourceType: string; // 添加方式: IP,NVR,RTSP
  180. rtspUrl: string; // rtsp地址
  181. nvrId: number; // NVR id
  182. nvrChannel: string; // NVR通道号
  183. videoStandard: string; // 视频编码标准,H264, H265
  184. videoServiceType: string; // 视频服务类型,TCP, UDP, AUTO
  185. isDisabled: number; // 状态: 0-启用, 1-禁用
  186. }
  187. export const getMonitorCameraLists = () => {
  188. return http.request({
  189. url: '/cameraGroup/queryCameraGroupList?type=1',
  190. method: 'get',
  191. });
  192. };
  193. /**
  194. * @description: 重点监测区域:根据用户查询相机树
  195. */
  196. export interface QueryAllOwnedCameraTreeRes {
  197. nodeType: string; // 节点类型
  198. id: number; // 公司id
  199. parentId?: number; // 上级公司Id, 无上级为0
  200. name: string; // 公司名称
  201. code: string; // 公司编号
  202. remark: string; // 描述
  203. orderNum: number; // 排序序号
  204. longitude?: Record<string, unknown>; // 经度
  205. latitude?: Record<string, unknown>; // 纬度
  206. regionCode?: string; // 区域编码(标识)
  207. isDisabled: number; // 状态: 0-启用, 1-禁用
  208. createdBy: number; // 创建人
  209. updatedBy: number; // 更新人
  210. createdAt: Record<string, unknown>; // 创建时间
  211. updatedAt: Record<string, unknown>; // 更新时间
  212. tenantId: number; // 租户ID
  213. thumbnail?: string; // 公司缩略图
  214. // 车间-工位-相机信息
  215. children: {
  216. nodeType: string; // 节点类型
  217. id: number; // 车间id
  218. companyId: number; // 公司id
  219. name: string; // 车间名称
  220. code: string; // 车间编号
  221. orderNum: number; // 排序序号
  222. remark: string; // 描述
  223. isDisabled: number; // 状态: 0-启用, 1-禁用
  224. createdBy: number; // 创建人
  225. updatedBy: number; // 更新人
  226. createdAt: Record<string, unknown>; // 创建时间
  227. updatedAt: Record<string, unknown>; // 修改时间
  228. tenantId: number; // 租户ID
  229. // 工位-相机信息
  230. children: {
  231. nodeType: string; // 节点类型
  232. id: number; // 工位id
  233. workshopId: number; // 车间id
  234. name: string; // 工位名称
  235. code: string; // 工位编号
  236. remark: string; // 描述
  237. orderNum: number; // 排序序号
  238. principalName: string; // 工位负责人
  239. principalId: number; // 工位负责人id
  240. isDisabled: number; // 状态: 0-启用, 1-禁用
  241. createdBy: number; // 创建人
  242. updatedBy: number; // 更新人
  243. createdAt: Record<string, unknown>; // 创建时间
  244. updatedAt: Record<string, unknown>; // 更新时间
  245. tenantId: number; // 租户ID
  246. // 相机信息
  247. children: CameraInTree[];
  248. }[];
  249. }[];
  250. }
  251. export interface CameraInTree { "data": [
  252. {
  253. "dataTime": "",
  254. "minTemperature": "",
  255. "maxTemperature": "",
  256. "minWindVelocity": 0,
  257. "maxWindVelocity": 0,
  258. "avgWindVelocity": 0
  259. }
  260. ]
  261. networkingState: number; // 联网状态: 0-启用, 1-禁用
  262. integrationState: number; // 接入状态: 0-启用, 1-禁用
  263. render: string; // 渲染选择,无渲染/某个算法
  264. version: number; // 版本
  265. extra: string; // 扩展数据
  266. pushStreamDTO: {
  267. videoUrls: {
  268. pushstreamIp: string; // 推流地址(前端播放的地址)
  269. pushstreamRenderUrl: string; // 渲染推流地址(前端播放的渲染地址)
  270. m3u8PushstreamIp: string; // ios推流地址(前端播放的地址)
  271. m3u8PushstreamRenderIp: string; // ios推流地址(前端播放的地址)
  272. pushstreamIpAbs: string; // 推流地址(前端播放的地址)
  273. pushstreamRenderUrlAbs: string; // 渲染推流地址(前端播放的渲染地址)
  274. m3u8PushstreamIpAbs: string; // ios推流地址(前端播放的地址)
  275. m3u8PushstreamRenderIpAbs: string; // ios推流地址(前端播放的地址)
  276. };
  277. imageUrl: string; // 摄像头实时记录的画面
  278. };
  279. id: number; // 自增主键
  280. workshopId: number; // 车间id
  281. workspaceId: number; // 工位id
  282. name: string; // 相机名称
  283. code: string; // 相机编号
  284. cameraIp: string; // 相机IP
  285. cameraPort: string; // 相机端口
  286. cameraType: string; // 相机类型: haikang/dahua/anxus/huawei
  287. remark: string; // 描述
  288. sourceType: string; // 添加方式: IP,NVR,RTSP
  289. rtspUrl: string; // rtsp地址
  290. nvrId: number; // NVR id
  291. nvrChannel: string; // NVR通道号
  292. videoStandard: string; // 视频编码标准,H264, H265
  293. videoServiceType: string; // 视频服务类型,TCP, UDP, AUTO
  294. isDisabled: number; // 状态: 0-启用, 1-禁用
  295. nodeType: string; // 节点类型
  296. }
  297. export const getCameraTreeList = () => {
  298. return http.request({
  299. url: '/camera/queryAllOwnedCameraTree',
  300. method: 'get',
  301. });
  302. };
  303. /**
  304. * @description: 重点监测区域:批量编辑分组内相机
  305. */
  306. export const updateCameraToOverviewGroup = (params: { groupId: number | undefined; cameraIdList: number[] }) => {
  307. return http.request({
  308. url: '/cameraGroup/updateCameraInGroup',
  309. method: 'post',
  310. params,
  311. });
  312. };
  313. /**
  314. * @description: 获取实时天气数据
  315. */
  316. export interface RealTimeWeatherDataRes {
  317. time: string; // 时间
  318. temperature: string; // 温度℃
  319. windVelocity: number; // 风速m/s * 3.6 = km/h
  320. }
  321. export const getRealTimeWeatherData = () => {
  322. return http.request<RealTimeWeatherDataRes>({
  323. url: '/weatherData/queryWeatherData',
  324. method: 'get',
  325. });
  326. };
  327. /**
  328. * @description: 获取历史气温数据
  329. */
  330. export interface HistoryTemperatureInfo{
  331. dataTime : string;
  332. minTemperature : string;
  333. maxTemperature : string;
  334. minWindVelocity : number;
  335. maxWindVelocity : number;
  336. avgWindVelocity : number;
  337. }
  338. export const getHistoryTemperatureList = ()=>{
  339. return http.request<HistoryTemperatureInfo[]>({
  340. url: '/weatherData/queryRecentYearWeatherData',
  341. method: 'get',
  342. });
  343. }
  344. /**
  345. * @description: 获取一年高温天气天数
  346. */
  347. export const getHighTemperatureDays = ()=>{
  348. return http.request<number>({
  349. url: '/weatherData/countHotDaysInYear',
  350. method: 'get',
  351. });
  352. }
  353. /**
  354. * @description: 获取当日发布的灾害预警信息列表
  355. */
  356. export interface TodayDisasterWarnInfoType {
  357. id: number; // 自增主键
  358. disasterType: string; // 灾害类型
  359. disasterLevel: string; // 灾害等级
  360. warnTime: string; // 预警时间
  361. source: string; // 信息来源
  362. content: string; // 发布内容
  363. effectState: number; // 生效状态:1-未生效,2-生效
  364. createSource: number; // 创建来源:1-人工创建 2-接口数据获取
  365. isPush: number; // 是否推送:0-不推送 1-推送
  366. pushTime: string; // 发布时间
  367. userGroupList: string; // 用户分组列表
  368. createdBy: number; // 创建人
  369. createdAt: string; // 创建时间
  370. updatedAt: string; // 更新时间
  371. isDeleted: number; // 0-未删除,大于0(时间戳)-已删除
  372. tenantId: number; // 租户id
  373. }
  374. export const getTodayDisasterWarnInfoList = () => {
  375. return http.request<TodayDisasterWarnInfoType[]>({
  376. url: '/disasterWarn/queryTodayDisasterWarnInfoList',
  377. method: 'get',
  378. });
  379. };
  380. /**
  381. * @description: 查询安全态势应急管理统计
  382. */
  383. export interface DisasterPreventionInfoRes {
  384. monthDisasterCount: number; // 本月气象灾害预警数
  385. preventiveInspectRatio: string; // 预防检查覆盖
  386. }
  387. export const getDisasterPreventionInfo = () => {
  388. return http.request<DisasterPreventionInfoRes>({
  389. url: '/overview/queryDisasterPreventionStatistics',
  390. method: 'get',
  391. });
  392. };