HikvisionLeaveTaskTest.java 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. package com.xjrsoft.module.job;
  2. import cn.hutool.extra.spring.SpringUtil;
  3. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  4. import com.google.gson.JsonArray;
  5. import com.google.gson.JsonElement;
  6. import com.google.gson.JsonObject;
  7. import com.google.gson.JsonParser;
  8. import com.xjrsoft.XjrSoftApplication;
  9. import com.xjrsoft.module.hikvision.entity.HikvisionData;
  10. import com.xjrsoft.module.hikvision.mapper.HikvisionDataMapper;
  11. import com.xjrsoft.module.hikvision.util.ApiUtil;
  12. import com.xjrsoft.module.organization.entity.User;
  13. import com.xjrsoft.module.organization.service.IUserService;
  14. import com.xjrsoft.module.student.entity.StudentLeave;
  15. import com.xjrsoft.module.student.service.IStudentLeaveService;
  16. import com.xjrsoft.module.teacher.entity.WfTeacherleave;
  17. import com.xjrsoft.module.teacher.service.IWfTeacherleaveService;
  18. import org.junit.jupiter.api.Test;
  19. import org.junit.runner.RunWith;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.boot.test.context.SpringBootTest;
  22. import org.springframework.test.context.junit4.SpringRunner;
  23. import java.time.LocalDate;
  24. import java.util.ArrayList;
  25. import java.util.Arrays;
  26. import java.util.Date;
  27. import java.util.HashMap;
  28. import java.util.List;
  29. import java.util.Map;
  30. /**
  31. * @author dzx
  32. * @date 2024/9/18
  33. */
  34. @RunWith(SpringRunner.class)
  35. @SpringBootTest(classes = XjrSoftApplication.class)
  36. class HikvisionLeaveTaskTest {
  37. @Autowired
  38. private IStudentLeaveService studentLeaveService;
  39. @Autowired
  40. private IWfTeacherleaveService teacherleaveService;
  41. @Autowired
  42. private HikvisionDataMapper hikvisionDataMapper;
  43. @Autowired
  44. private IUserService userService;
  45. @Test
  46. void test(){
  47. doExecute();
  48. }
  49. public void doExecute() {
  50. List<String> sourceIds = new ArrayList<>();
  51. List<StudentLeave> studentList = studentLeaveService.list(
  52. new QueryWrapper<StudentLeave>().lambda()
  53. .isNotNull(StudentLeave::getHikvisionResult)
  54. .lt(StudentLeave::getEndDate, LocalDate.now())
  55. );
  56. for (StudentLeave studentLeave : studentList) {
  57. sourceIds.add(studentLeave.getStudentUserId().toString());
  58. }
  59. List<WfTeacherleave> teacherList = teacherleaveService.list(
  60. new QueryWrapper<WfTeacherleave>().lambda()
  61. .isNotNull(WfTeacherleave::getHikvisionResult)
  62. .lt(WfTeacherleave::getLeaveEndTime, new Date())
  63. );
  64. for (WfTeacherleave teacherleave : teacherList) {
  65. String[] split = teacherleave.getUserId().split(",");
  66. sourceIds.addAll( Arrays.asList(split));
  67. }
  68. // List<String> nameList = new ArrayList<>();
  69. // nameList.add("王娟");nameList.add("何晓渝");
  70. // List<User> list = userService.list(new QueryWrapper<User>().lambda().in(User::getName, nameList));
  71. // for (User user : list) {
  72. // sourceIds.add(user.getId().toString());
  73. // }
  74. if(sourceIds.isEmpty()){
  75. return;
  76. }
  77. List<HikvisionData> hikvisionData = hikvisionDataMapper.selectList(
  78. new QueryWrapper<HikvisionData>().lambda()
  79. .in(HikvisionData::getSourceId, sourceIds)
  80. );
  81. ApiUtil apiUtil = new ApiUtil();
  82. String apiPath = "/api/acps/v1/auth_config/delete";
  83. JsonObject paramJson = new JsonObject();
  84. JsonArray personDatas = new JsonArray();
  85. JsonObject personData = new JsonObject();
  86. JsonArray indexCodes = new JsonArray();
  87. for (HikvisionData el : hikvisionData) {
  88. indexCodes.add(el.getHikvisionId());
  89. }
  90. personData.addProperty("personDataType","person");
  91. personData.add("indexCodes", indexCodes);
  92. personDatas.add(personData);
  93. paramJson.add("personDatas", personDatas);
  94. JsonArray resourceInfos = selectResource(apiUtil);
  95. paramJson.add("resourceInfos", resourceInfos);
  96. Map<String, String> header = new HashMap<>();
  97. header.put("tagId", "studentleave");
  98. //调用接口获取到返回内容,并将其存到数据库中
  99. String result = apiUtil.doPost(apiPath, paramJson.toString(), null, header);
  100. System.out.println(result);
  101. //删除成功后,重新下载
  102. //1、创建任务
  103. paramJson = new JsonObject();
  104. paramJson.addProperty("taskType", 1);
  105. apiPath = "/api/acps/v1/download/configuration/task/add";
  106. String doPost = apiUtil.doPost(apiPath, paramJson.toString(), null, null);
  107. JsonParser jsonParser = new JsonParser();
  108. JsonObject resultJson = jsonParser.parse(doPost).getAsJsonObject();
  109. if("0".equals(resultJson.get("code").getAsString()) && "success".equals(resultJson.get("msg").getAsString())){
  110. String taskId = resultJson.get("data").getAsJsonObject().get("taskId").getAsString();
  111. //2、下载
  112. apiPath = "/api/acps/v1/download/configuration/data/add";
  113. paramJson = new JsonObject();
  114. paramJson.add("resourceInfos", resourceInfos);
  115. paramJson.addProperty("taskId", taskId);
  116. apiUtil.doPost(apiPath, paramJson.toString(), null, null);
  117. }
  118. }
  119. JsonArray selectResource(ApiUtil apiUtil){
  120. String apiPath = "/api/irds/v2/resource/resourcesByParams";
  121. JsonObject jsonObject = new JsonObject();
  122. jsonObject.addProperty("pageNo", 1);
  123. jsonObject.addProperty("pageSize", 500);
  124. jsonObject.addProperty("resourceType", "door");
  125. String result = apiUtil.doPost(apiPath, jsonObject.toString(), null, null);
  126. JsonParser parser = new JsonParser();
  127. JsonObject resultJson = parser.parse(result).getAsJsonObject();
  128. JsonArray resourceInfos = new JsonArray();
  129. if("0".equals(resultJson.get("code").getAsString()) && "success".equals(resultJson.get("msg").getAsString())){
  130. JsonArray list = resultJson.get("data").getAsJsonObject().get("list").getAsJsonArray();
  131. for (JsonElement jsonElement : list) {
  132. JsonObject listOne = jsonElement.getAsJsonObject();
  133. JsonObject resourceInfo = new JsonObject();
  134. resourceInfo.add("resourceIndexCode", listOne.get("indexCode"));
  135. resourceInfo.add("resourceType", listOne.get("resourceType"));
  136. JsonArray channelNos = new JsonArray();
  137. channelNos.add(listOne.get("channelNo"));
  138. resourceInfo.add("channelNos", channelNos);
  139. resourceInfos.add(resourceInfo);
  140. }
  141. }
  142. return resourceInfos;
  143. }
  144. }