|
@@ -0,0 +1,77 @@
|
|
|
+package com.xjrsoft.module.hikvision.controller;
|
|
|
+
|
|
|
+import cn.dev33.satoken.annotation.SaCheckPermission;
|
|
|
+import cn.hutool.core.convert.Convert;
|
|
|
+import com.google.gson.Gson;
|
|
|
+import com.google.gson.JsonArray;
|
|
|
+import com.google.gson.JsonElement;
|
|
|
+import com.google.gson.JsonObject;
|
|
|
+import com.google.gson.JsonParser;
|
|
|
+import com.xjrsoft.common.model.result.RT;
|
|
|
+import com.xjrsoft.common.page.PageOutput;
|
|
|
+import com.xjrsoft.module.hikvision.dto.HikvisionOutinPageDto;
|
|
|
+import com.xjrsoft.module.hikvision.service.IHikvisionDataService;
|
|
|
+import com.xjrsoft.module.hikvision.util.ApiUtil;
|
|
|
+import com.xjrsoft.module.hikvision.vo.HikvisionOutinPageVo;
|
|
|
+import com.xjrsoft.module.workflow.vo.PendingTaskVo;
|
|
|
+import io.swagger.annotations.Api;
|
|
|
+import io.swagger.annotations.ApiOperation;
|
|
|
+import lombok.AllArgsConstructor;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.web.bind.annotation.PostMapping;
|
|
|
+import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
+import org.springframework.web.bind.annotation.RestController;
|
|
|
+
|
|
|
+import javax.validation.Valid;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+@RestController
|
|
|
+@RequestMapping("/hikvision/outin")
|
|
|
+@Api(value = "/hikvision/outin", tags = "海康出入记录")
|
|
|
+@AllArgsConstructor
|
|
|
+@Slf4j
|
|
|
+public class OutInController {
|
|
|
+
|
|
|
+ private final IHikvisionDataService hkvisionDataService;
|
|
|
+
|
|
|
+ @PostMapping("/page")
|
|
|
+ @ApiOperation(value="海康记录查询(分页)")
|
|
|
+ @SaCheckPermission("outin:detail")
|
|
|
+ public RT<PageOutput<HikvisionOutinPageVo>> page(@Valid HikvisionOutinPageDto dto){
|
|
|
+ ApiUtil apiUtil = new ApiUtil();
|
|
|
+ String apiPath = "/api/acs/v2/door/events";
|
|
|
+
|
|
|
+ JsonObject paramJson = new JsonObject();
|
|
|
+ JsonArray eventList = new JsonArray();
|
|
|
+ eventList.add(196893); // 只获取人脸通过的
|
|
|
+ paramJson.addProperty("pageNo", dto.getLimit());
|
|
|
+ paramJson.addProperty("pageSize", dto.getSize());
|
|
|
+ paramJson.add("eventTypes", eventList);
|
|
|
+ String hikvisionId = hkvisionDataService.getHikvisionIdBySourceId(dto.getUserId().toString());
|
|
|
+
|
|
|
+ JsonArray personIds = new JsonArray();
|
|
|
+ personIds.add(hikvisionId);
|
|
|
+ paramJson.add("personIds", personIds);
|
|
|
+ paramJson.addProperty("sort", "eventTime");
|
|
|
+ paramJson.addProperty("order", "desc");
|
|
|
+
|
|
|
+ String doPost = apiUtil.doPost(apiPath, paramJson.toString(), null);
|
|
|
+ JsonParser parser = new JsonParser();
|
|
|
+ JsonObject data = parser.parse(doPost).getAsJsonObject().get("data").getAsJsonObject();
|
|
|
+ JsonArray list = data.get("list").getAsJsonArray();
|
|
|
+ List<HikvisionOutinPageVo> result = new ArrayList<>();
|
|
|
+ Gson gson = new Gson();
|
|
|
+ for (JsonElement jsonElement : list) {
|
|
|
+ result.add(gson.fromJson(jsonElement.getAsJsonObject(), HikvisionOutinPageVo.class));
|
|
|
+ }
|
|
|
+
|
|
|
+ PageOutput<HikvisionOutinPageVo> output = new PageOutput<>();
|
|
|
+ output.setCurrentPage(dto.getLimit());
|
|
|
+ output.setPageSize(dto.getSize());
|
|
|
+ output.setTotal(data.get("totalPage").getAsInt());
|
|
|
+ output.setList(result);
|
|
|
+
|
|
|
+ return RT.ok(output);
|
|
|
+ }
|
|
|
+}
|