123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- package com.xjrsoft.module.job;
- import cn.hutool.extra.spring.SpringUtil;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.google.gson.JsonArray;
- import com.google.gson.JsonElement;
- import com.google.gson.JsonObject;
- import com.google.gson.JsonParser;
- import com.xjrsoft.XjrSoftApplication;
- import com.xjrsoft.module.hikvision.entity.HikvisionData;
- import com.xjrsoft.module.hikvision.mapper.HikvisionDataMapper;
- import com.xjrsoft.module.hikvision.util.ApiUtil;
- import com.xjrsoft.module.organization.entity.User;
- import com.xjrsoft.module.organization.service.IUserService;
- import com.xjrsoft.module.student.entity.StudentLeave;
- import com.xjrsoft.module.student.service.IStudentLeaveService;
- import com.xjrsoft.module.teacher.entity.WfTeacherleave;
- import com.xjrsoft.module.teacher.service.IWfTeacherleaveService;
- import org.junit.jupiter.api.Test;
- import org.junit.runner.RunWith;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.boot.test.context.SpringBootTest;
- import org.springframework.test.context.junit4.SpringRunner;
- import java.time.LocalDate;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- /**
- * @author dzx
- * @date 2024/9/18
- */
- @RunWith(SpringRunner.class)
- @SpringBootTest(classes = XjrSoftApplication.class)
- class HikvisionLeaveTaskTest {
- @Autowired
- private IStudentLeaveService studentLeaveService;
- @Autowired
- private IWfTeacherleaveService teacherleaveService;
- @Autowired
- private HikvisionDataMapper hikvisionDataMapper;
- @Autowired
- private IUserService userService;
- @Test
- void test(){
- doExecute();
- }
- public void doExecute() {
- List<String> sourceIds = new ArrayList<>();
- List<StudentLeave> studentList = studentLeaveService.list(
- new QueryWrapper<StudentLeave>().lambda()
- .isNotNull(StudentLeave::getHikvisionResult)
- .lt(StudentLeave::getEndDate, LocalDate.now())
- );
- for (StudentLeave studentLeave : studentList) {
- sourceIds.add(studentLeave.getStudentUserId().toString());
- }
- List<WfTeacherleave> teacherList = teacherleaveService.list(
- new QueryWrapper<WfTeacherleave>().lambda()
- .isNotNull(WfTeacherleave::getHikvisionResult)
- .lt(WfTeacherleave::getLeaveEndTime, new Date())
- );
- for (WfTeacherleave teacherleave : teacherList) {
- String[] split = teacherleave.getUserId().split(",");
- sourceIds.addAll( Arrays.asList(split));
- }
- // List<String> nameList = new ArrayList<>();
- // nameList.add("王娟");nameList.add("何晓渝");
- // List<User> list = userService.list(new QueryWrapper<User>().lambda().in(User::getName, nameList));
- // for (User user : list) {
- // sourceIds.add(user.getId().toString());
- // }
- if(sourceIds.isEmpty()){
- return;
- }
- List<HikvisionData> hikvisionData = hikvisionDataMapper.selectList(
- new QueryWrapper<HikvisionData>().lambda()
- .in(HikvisionData::getSourceId, sourceIds)
- );
- ApiUtil apiUtil = new ApiUtil();
- String apiPath = "/api/acps/v1/auth_config/delete";
- JsonObject paramJson = new JsonObject();
- JsonArray personDatas = new JsonArray();
- JsonObject personData = new JsonObject();
- JsonArray indexCodes = new JsonArray();
- for (HikvisionData el : hikvisionData) {
- indexCodes.add(el.getHikvisionId());
- }
- personData.addProperty("personDataType","person");
- personData.add("indexCodes", indexCodes);
- personDatas.add(personData);
- paramJson.add("personDatas", personDatas);
- JsonArray resourceInfos = selectResource(apiUtil);
- paramJson.add("resourceInfos", resourceInfos);
- Map<String, String> header = new HashMap<>();
- header.put("tagId", "studentleave");
- //调用接口获取到返回内容,并将其存到数据库中
- String result = apiUtil.doPost(apiPath, paramJson.toString(), null, header);
- System.out.println(result);
- //删除成功后,重新下载
- //1、创建任务
- paramJson = new JsonObject();
- paramJson.addProperty("taskType", 1);
- apiPath = "/api/acps/v1/download/configuration/task/add";
- String doPost = apiUtil.doPost(apiPath, paramJson.toString(), null, null);
- JsonParser jsonParser = new JsonParser();
- JsonObject resultJson = jsonParser.parse(doPost).getAsJsonObject();
- if("0".equals(resultJson.get("code").getAsString()) && "success".equals(resultJson.get("msg").getAsString())){
- String taskId = resultJson.get("data").getAsJsonObject().get("taskId").getAsString();
- //2、下载
- apiPath = "/api/acps/v1/download/configuration/data/add";
- paramJson = new JsonObject();
- paramJson.add("resourceInfos", resourceInfos);
- paramJson.addProperty("taskId", taskId);
- apiUtil.doPost(apiPath, paramJson.toString(), null, null);
- }
- }
- JsonArray selectResource(ApiUtil apiUtil){
- String apiPath = "/api/irds/v2/resource/resourcesByParams";
- JsonObject jsonObject = new JsonObject();
- jsonObject.addProperty("pageNo", 1);
- jsonObject.addProperty("pageSize", 500);
- jsonObject.addProperty("resourceType", "door");
- String result = apiUtil.doPost(apiPath, jsonObject.toString(), null, null);
- JsonParser parser = new JsonParser();
- JsonObject resultJson = parser.parse(result).getAsJsonObject();
- JsonArray resourceInfos = new JsonArray();
- if("0".equals(resultJson.get("code").getAsString()) && "success".equals(resultJson.get("msg").getAsString())){
- JsonArray list = resultJson.get("data").getAsJsonObject().get("list").getAsJsonArray();
- for (JsonElement jsonElement : list) {
- JsonObject listOne = jsonElement.getAsJsonObject();
- JsonObject resourceInfo = new JsonObject();
- resourceInfo.add("resourceIndexCode", listOne.get("indexCode"));
- resourceInfo.add("resourceType", listOne.get("resourceType"));
- JsonArray channelNos = new JsonArray();
- channelNos.add(listOne.get("channelNo"));
- resourceInfo.add("channelNos", channelNos);
- resourceInfos.add(resourceInfo);
- }
- }
- return resourceInfos;
- }
- }
|