|
|
@@ -1,12 +1,22 @@
|
|
|
package com.xjrsoft.module.student.service.impl;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.github.yulichang.base.MPJBaseServiceImpl;
|
|
|
+import com.google.gson.JsonArray;
|
|
|
+import com.google.gson.JsonObject;
|
|
|
+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.student.entity.StudentLeave;
|
|
|
import com.xjrsoft.module.student.mapper.StudentLeaveMapper;
|
|
|
import com.xjrsoft.module.student.service.IStudentLeaveService;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
/**
|
|
|
* @title: 学生请假
|
|
|
* @Author dzx
|
|
|
@@ -16,8 +26,47 @@ import org.springframework.stereotype.Service;
|
|
|
@Service
|
|
|
@AllArgsConstructor
|
|
|
public class StudentLeaveServiceImpl extends MPJBaseServiceImpl<StudentLeaveMapper, StudentLeave> implements IStudentLeaveService {
|
|
|
+
|
|
|
+ private final HikvisionDataMapper hikvisionDataMapper;
|
|
|
+
|
|
|
@Override
|
|
|
public Boolean hikvisionLeave(Long id) {
|
|
|
- return null;
|
|
|
+ StudentLeave studentLeave = this.getById(id);
|
|
|
+
|
|
|
+ //查询学生在海康的id
|
|
|
+ HikvisionData hikvisionData = hikvisionDataMapper.selectOne(
|
|
|
+ new QueryWrapper<HikvisionData>().lambda()
|
|
|
+ .eq(HikvisionData::getSourceId, studentLeave.getStudentUserId())
|
|
|
+ .eq(HikvisionData::getTableName, "base_student")
|
|
|
+ );
|
|
|
+ ApiUtil apiUtil = new ApiUtil();
|
|
|
+ String apiPath = "/api/acps/v1/auth_config/add";
|
|
|
+
|
|
|
+// String outputFormat = "yyyy-MM-dd'T'HH:mm:ss+08:00";
|
|
|
+ DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
|
|
|
+ JsonObject paramJson = new JsonObject();
|
|
|
+
|
|
|
+ paramJson.addProperty("startTime", studentLeave.getStartDate().atStartOfDay().format(formatter));
|
|
|
+ paramJson.addProperty("endTime", studentLeave.getEndDate().atTime(23,59,59).format(formatter));
|
|
|
+
|
|
|
+ //组装人员数据
|
|
|
+ JsonArray personDatas = new JsonArray();
|
|
|
+ JsonObject personData = new JsonObject();
|
|
|
+ personData.addProperty("personDataType", "person");
|
|
|
+
|
|
|
+ JsonArray indexCodes = new JsonArray();
|
|
|
+ indexCodes.add(hikvisionData.getHikvisionId());
|
|
|
+ personData.add("indexCodes", indexCodes);
|
|
|
+
|
|
|
+ personDatas.add(personData);
|
|
|
+ paramJson.add("personDatas", personDatas);
|
|
|
+
|
|
|
+ Map<String, String> header = new HashMap<>();
|
|
|
+ header.put("tagId", "studentleave");
|
|
|
+ //调用接口获取到返回内容,并将其存到数据库中
|
|
|
+ String result = apiUtil.doPost(apiPath, paramJson.toString(), null, header);
|
|
|
+ studentLeave.setHikvisionResult(result);
|
|
|
+ this.updateById(studentLeave);
|
|
|
+ return true;
|
|
|
}
|
|
|
}
|