ImportStudentFaceNodeTest.java 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. package com.xjrsoft.module.liteflow.node;
  2. import com.google.gson.JsonArray;
  3. import com.google.gson.JsonObject;
  4. import com.google.gson.JsonParser;
  5. import com.xjrsoft.XjrSoftApplication;
  6. import com.xjrsoft.common.mybatis.SqlRunnerAdapter;
  7. import com.xjrsoft.module.hikvision.mapper.HikvisionDataMapper;
  8. import com.xjrsoft.module.hikvision.util.ApiUtil;
  9. import com.xjrsoft.module.hikvision.util.FaceImportUtil;
  10. import com.xjrsoft.module.personnel.entity.StundentFaceProcess;
  11. import com.xjrsoft.module.personnel.service.IStundentFaceProcessService;
  12. import com.xjrsoft.module.teacher.mapper.FaceImportMapper;
  13. import org.junit.jupiter.api.Test;
  14. import org.junit.runner.RunWith;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.boot.test.context.SpringBootTest;
  17. import org.springframework.test.context.junit4.SpringRunner;
  18. import java.util.ArrayList;
  19. import java.util.Date;
  20. import java.util.List;
  21. import java.util.Map;
  22. /**
  23. * @author dzx
  24. * @date 2024/6/11
  25. */
  26. @RunWith(SpringRunner.class)
  27. @SpringBootTest(classes = XjrSoftApplication.class)
  28. class ImportStudentFaceNodeTest {
  29. @Autowired
  30. private IStundentFaceProcessService stundentFaceProcessService;
  31. @Autowired
  32. private HikvisionDataMapper hikvisionDataMapper;
  33. @Autowired
  34. private FaceImportMapper faceImportMapper;
  35. @Test
  36. void test(){
  37. String sql = "SELECT t3.* FROM base_new_student t1" +
  38. " INNER JOIN student_report_record t2 ON t1.id = t2.user_id" +
  39. " INNER JOIN xjr_user t3 ON t1.credential_number = t3.credential_number" +
  40. " WHERE t2.report_time IS NOT NULL;";
  41. List<Map<String, Object>> list = SqlRunnerAdapter.db().selectList(sql);
  42. ApiUtil apiUtil = new ApiUtil();
  43. JsonParser parser = new JsonParser();
  44. for (Map<String, Object> user : list) {
  45. long userId = Long.parseLong(user.get("id").toString());
  46. sql = "SELECT * FROM stundent_face_process WHERE user_id = " + userId + " AND exam_status = 1 AND STATUS = 1 ORDER BY create_date DESC,modify_date DESC LIMIT 1";
  47. Map<String, Object> process = SqlRunnerAdapter.db().selectOne(sql);
  48. if(process == null || process.isEmpty()){
  49. continue;
  50. }
  51. long id = Long.parseLong(process.get("id").toString());
  52. String fileUrl = faceImportMapper.GetStudentHikvisionImgById(id);
  53. // 数据处理
  54. StundentFaceProcess dataObj = stundentFaceProcessService.getById(process.get("id").toString());
  55. if(dataObj == null){
  56. continue;
  57. }
  58. String apiUrl = "/api/resource/v1/person/condition/personInfo";
  59. JsonObject paramsJson = new JsonObject();
  60. paramsJson.addProperty("paramName", "personId");
  61. JsonArray array = new JsonArray();
  62. String hikvisionId = hikvisionDataMapper.getStudentHikvisionId(dataObj.getUserId());
  63. if(hikvisionId == null){
  64. continue;
  65. }
  66. array.add(hikvisionId);
  67. paramsJson.add("paramValue", array);
  68. String personInfoRes = apiUtil.doPost(apiUrl, paramsJson.toString(), null);
  69. if(personInfoRes == null){
  70. continue;
  71. }
  72. JsonObject personInfoData = parser.parse(personInfoRes).getAsJsonObject();
  73. String faceId = null;
  74. if("0".equals(personInfoData.get("code").getAsString()) && "success".equals(personInfoData.get("msg").getAsString())){
  75. JsonObject dataJson = personInfoData.get("data").getAsJsonObject();
  76. if(dataJson.get("total").getAsInt() > 0){
  77. JsonArray personPhoto = dataJson.get("list").getAsJsonArray().get(0)
  78. .getAsJsonObject().get("personPhoto").getAsJsonArray();
  79. if(personPhoto.size() == 0){
  80. dataObj.setStatus(1);
  81. dataObj.setExamStatus(1);
  82. String result = FaceImportUtil.ImportStudentFace(hikvisionDataMapper.getStudentHikvisionId(dataObj.getUserId()), fileUrl);
  83. dataObj.setHikvisionResult(result);
  84. dataObj.setModifyDate(new Date());
  85. dataObj.setEnabledMark(1);
  86. stundentFaceProcessService.updateById(dataObj);
  87. }
  88. }
  89. }
  90. }
  91. }
  92. @Test
  93. void test2(){
  94. String sql = "SELECT * FROM stundent_face_process WHERE id in (1802917291234996224, 1798295439057399810,1798295434271698945)";
  95. List<Map<String, Object>> list = SqlRunnerAdapter.db().selectList(sql);
  96. ApiUtil apiUtil = new ApiUtil();
  97. JsonParser parser = new JsonParser();
  98. List<Long> ids = new ArrayList<>();
  99. for (Map<String, Object> process : list) {
  100. long id = Long.parseLong(process.get("id").toString());
  101. // 数据处理
  102. StundentFaceProcess dataObj = stundentFaceProcessService.getById(process.get("id").toString());
  103. if(dataObj == null){
  104. continue;
  105. }
  106. String apiUrl = "/api/resource/v1/person/condition/personInfo";
  107. JsonObject paramsJson = new JsonObject();
  108. paramsJson.addProperty("paramName", "personId");
  109. JsonArray array = new JsonArray();
  110. String hikvisionId = hikvisionDataMapper.getStudentHikvisionId(dataObj.getUserId());
  111. if(hikvisionId == null){
  112. continue;
  113. }
  114. array.add(hikvisionId);
  115. paramsJson.add("paramValue", array);
  116. String personInfoRes = apiUtil.doPost(apiUrl, paramsJson.toString(), null);
  117. JsonObject personInfoData = parser.parse(personInfoRes).getAsJsonObject();
  118. String faceId = null;
  119. if("0".equals(personInfoData.get("code").getAsString()) && "success".equals(personInfoData.get("msg").getAsString())){
  120. JsonObject dataJson = personInfoData.get("data").getAsJsonObject();
  121. if(dataJson.get("total").getAsInt() > 0){
  122. JsonArray personPhoto = dataJson.get("list").getAsJsonArray().get(0)
  123. .getAsJsonObject().get("personPhoto").getAsJsonArray();
  124. if(personPhoto.size() == 0){
  125. ids.add(id);
  126. }
  127. }
  128. }
  129. }
  130. System.out.println("ids.size() ----------> " + ids.size());
  131. }
  132. }