| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- package com.xjrsoft.module.liteflow.node;
- import com.google.gson.JsonArray;
- import com.google.gson.JsonObject;
- import com.google.gson.JsonParser;
- import com.xjrsoft.XjrSoftApplication;
- import com.xjrsoft.common.mybatis.SqlRunnerAdapter;
- import com.xjrsoft.module.hikvision.mapper.HikvisionDataMapper;
- import com.xjrsoft.module.hikvision.util.ApiUtil;
- import com.xjrsoft.module.hikvision.util.FaceImportUtil;
- import com.xjrsoft.module.personnel.entity.StundentFaceProcess;
- import com.xjrsoft.module.personnel.service.IStundentFaceProcessService;
- import com.xjrsoft.module.teacher.mapper.FaceImportMapper;
- 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.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- import java.util.Map;
- /**
- * @author dzx
- * @date 2024/6/11
- */
- @RunWith(SpringRunner.class)
- @SpringBootTest(classes = XjrSoftApplication.class)
- class ImportStudentFaceNodeTest {
- @Autowired
- private IStundentFaceProcessService stundentFaceProcessService;
- @Autowired
- private HikvisionDataMapper hikvisionDataMapper;
- @Autowired
- private FaceImportMapper faceImportMapper;
- @Test
- void test(){
- String sql = "SELECT t3.* FROM base_new_student t1" +
- " INNER JOIN student_report_record t2 ON t1.id = t2.user_id" +
- " INNER JOIN xjr_user t3 ON t1.credential_number = t3.credential_number" +
- " WHERE t2.report_time IS NOT NULL;";
- List<Map<String, Object>> list = SqlRunnerAdapter.db().selectList(sql);
- ApiUtil apiUtil = new ApiUtil();
- JsonParser parser = new JsonParser();
- for (Map<String, Object> user : list) {
- long userId = Long.parseLong(user.get("id").toString());
- 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";
- Map<String, Object> process = SqlRunnerAdapter.db().selectOne(sql);
- if(process == null || process.isEmpty()){
- continue;
- }
- long id = Long.parseLong(process.get("id").toString());
- String fileUrl = faceImportMapper.GetStudentHikvisionImgById(id);
- // 数据处理
- StundentFaceProcess dataObj = stundentFaceProcessService.getById(process.get("id").toString());
- if(dataObj == null){
- continue;
- }
- String apiUrl = "/api/resource/v1/person/condition/personInfo";
- JsonObject paramsJson = new JsonObject();
- paramsJson.addProperty("paramName", "personId");
- JsonArray array = new JsonArray();
- String hikvisionId = hikvisionDataMapper.getStudentHikvisionId(dataObj.getUserId());
- if(hikvisionId == null){
- continue;
- }
- array.add(hikvisionId);
- paramsJson.add("paramValue", array);
- String personInfoRes = apiUtil.doPost(apiUrl, paramsJson.toString(), null);
- if(personInfoRes == null){
- continue;
- }
- JsonObject personInfoData = parser.parse(personInfoRes).getAsJsonObject();
- String faceId = null;
- if("0".equals(personInfoData.get("code").getAsString()) && "success".equals(personInfoData.get("msg").getAsString())){
- JsonObject dataJson = personInfoData.get("data").getAsJsonObject();
- if(dataJson.get("total").getAsInt() > 0){
- JsonArray personPhoto = dataJson.get("list").getAsJsonArray().get(0)
- .getAsJsonObject().get("personPhoto").getAsJsonArray();
- if(personPhoto.size() == 0){
- dataObj.setStatus(1);
- dataObj.setExamStatus(1);
- String result = FaceImportUtil.ImportStudentFace(hikvisionDataMapper.getStudentHikvisionId(dataObj.getUserId()), fileUrl);
- dataObj.setHikvisionResult(result);
- dataObj.setModifyDate(new Date());
- dataObj.setEnabledMark(1);
- stundentFaceProcessService.updateById(dataObj);
- }
- }
- }
- }
- }
- @Test
- void test2(){
- String sql = "SELECT * FROM stundent_face_process WHERE id in (1802917291234996224, 1798295439057399810,1798295434271698945)";
- List<Map<String, Object>> list = SqlRunnerAdapter.db().selectList(sql);
- ApiUtil apiUtil = new ApiUtil();
- JsonParser parser = new JsonParser();
- List<Long> ids = new ArrayList<>();
- for (Map<String, Object> process : list) {
- long id = Long.parseLong(process.get("id").toString());
- // 数据处理
- StundentFaceProcess dataObj = stundentFaceProcessService.getById(process.get("id").toString());
- if(dataObj == null){
- continue;
- }
- String apiUrl = "/api/resource/v1/person/condition/personInfo";
- JsonObject paramsJson = new JsonObject();
- paramsJson.addProperty("paramName", "personId");
- JsonArray array = new JsonArray();
- String hikvisionId = hikvisionDataMapper.getStudentHikvisionId(dataObj.getUserId());
- if(hikvisionId == null){
- continue;
- }
- array.add(hikvisionId);
- paramsJson.add("paramValue", array);
- String personInfoRes = apiUtil.doPost(apiUrl, paramsJson.toString(), null);
- JsonObject personInfoData = parser.parse(personInfoRes).getAsJsonObject();
- String faceId = null;
- if("0".equals(personInfoData.get("code").getAsString()) && "success".equals(personInfoData.get("msg").getAsString())){
- JsonObject dataJson = personInfoData.get("data").getAsJsonObject();
- if(dataJson.get("total").getAsInt() > 0){
- JsonArray personPhoto = dataJson.get("list").getAsJsonArray().get(0)
- .getAsJsonObject().get("personPhoto").getAsJsonArray();
- if(personPhoto.size() == 0){
- ids.add(id);
- }
- }
- }
- }
- System.out.println("ids.size() ----------> " + ids.size());
- }
- }
|