|
@@ -80,6 +80,9 @@ public class BeiSenUtils {
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 获取人员数据
|
|
|
+ * */
|
|
|
public static List<JSONArray> getByTimeWindow(String scrollId,String startTime,String stopTime,String appkey,String appSecret){
|
|
|
List<JSONArray> resultList=new ArrayList<>();
|
|
|
String url = "https://openapi.italent.cn/TenantBaseExternal/api/v5/Employee/GetByTimeWindow";
|
|
@@ -117,7 +120,10 @@ public class BeiSenUtils {
|
|
|
return resultList;
|
|
|
}
|
|
|
|
|
|
- public static JSONArray getSwipingCards(String createDate,String appkey,String appSecret){
|
|
|
+ /**
|
|
|
+ * 获取打卡数据
|
|
|
+ * */
|
|
|
+ public static JSONArray getSwipingCards(String createDate,String appkey,String appSecret,Integer pageIndex,Integer pageSize){
|
|
|
String url = "https://openapi.italent.cn/AttendanceOpen/api/v1/SwipingCardData/GetSwipingCards";
|
|
|
HttpHeaders headers = new HttpHeaders();
|
|
|
RestTemplate restTemplate = new RestTemplate();
|
|
@@ -128,25 +134,111 @@ public class BeiSenUtils {
|
|
|
headers.add("Authorization","Bearer "+accessToken);
|
|
|
JSONObject requestMap = new JSONObject();
|
|
|
requestMap.put("PunchCardDate",createDate);
|
|
|
- requestMap.put("pageIndex","1");
|
|
|
- requestMap.put("pageSize","300");
|
|
|
+ requestMap.put("PageIndex",pageIndex);
|
|
|
+ requestMap.put("PageSize",pageSize);
|
|
|
System.out.println("--------headers请求头数据-------"+headers);
|
|
|
System.out.println("--------requestMap请求参数-------"+requestMap);
|
|
|
HttpEntity<JSONObject> entity = new HttpEntity<>(requestMap, headers);
|
|
|
ResponseEntity<String> ResponseEntity = restTemplate.postForEntity(url, entity, String.class);
|
|
|
+ JSONArray lastJSONArray=new JSONArray();
|
|
|
+ JSONArray target=new JSONArray();
|
|
|
if (ResponseEntity.getStatusCode() == HttpStatus.OK) {
|
|
|
String resp= ResponseEntity.getBody();
|
|
|
JSONObject respJson = JSONObject.parseObject(resp);
|
|
|
if(respJson.getIntValue("code")==200){
|
|
|
JSONObject data = respJson.getJSONObject("Data");
|
|
|
- JSONArray resultData = data.getJSONArray("SwipingCardDetails");
|
|
|
- return resultData;
|
|
|
+ target = data.getJSONArray("SwipingCardDetails");
|
|
|
+ lastJSONArray.addAll(target);
|
|
|
+ if (target.size()>0){
|
|
|
+ pageIndex++;
|
|
|
+ JSONArray swipingCardDetails = getSwipingCards(createDate, appkey, appSecret, pageIndex, pageSize);
|
|
|
+ lastJSONArray.addAll(swipingCardDetails);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- //todo:景昱 计算工作时长 默认工作日 8小时+当天人员加班(审核状态:通过)时长 非工作日考勤数据以加班数据为准
|
|
|
+ return lastJSONArray;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
+ /**
|
|
|
+ * 获取加班数据
|
|
|
+ * */
|
|
|
+ public static JSONArray getOverTimeList(String createDate,String appkey,String appSecret,Integer pageIndex,Integer pageSize){
|
|
|
+ String url = "https://openapi.italent.cn/AttendanceOpen/api/v1/AttendanceOvertime/GetOverTimeList";
|
|
|
+ HttpHeaders headers = new HttpHeaders();
|
|
|
+ RestTemplate restTemplate = new RestTemplate();
|
|
|
+ MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
|
|
|
+ headers.setContentType(type);
|
|
|
+ String accessToken = getToken(appkey,appSecret);
|
|
|
+ System.out.println("--------Bearer TOKEN--------"+accessToken);
|
|
|
+ headers.add("Authorization","Bearer "+accessToken);
|
|
|
+ JSONObject requestMap = new JSONObject();
|
|
|
+ requestMap.put("OverTimeDate",createDate);
|
|
|
+ requestMap.put("PageIndex",pageIndex);
|
|
|
+ requestMap.put("PageSize",pageSize);
|
|
|
+ System.out.println("--------headers请求头数据-------"+headers);
|
|
|
+ System.out.println("--------requestMap请求参数-------"+requestMap);
|
|
|
+ HttpEntity<JSONObject> entity = new HttpEntity<>(requestMap, headers);
|
|
|
+ ResponseEntity<String> ResponseEntity = restTemplate.postForEntity(url, entity, String.class);
|
|
|
+ JSONArray lastJSONArray=new JSONArray();
|
|
|
+ if (ResponseEntity.getStatusCode() == HttpStatus.OK) {
|
|
|
+ String resp= ResponseEntity.getBody();
|
|
|
+ JSONObject respJson = JSONObject.parseObject(resp);
|
|
|
+ if(respJson.getIntValue("code")==200){
|
|
|
+ JSONObject data = respJson.getJSONObject("Data");
|
|
|
+ JSONArray target = data.getJSONArray("OverTimeList");
|
|
|
+ lastJSONArray.addAll(target);
|
|
|
+ if (target.size()>0){
|
|
|
+ pageIndex++;
|
|
|
+ JSONArray overTimeList = getOverTimeList(createDate, appkey, appSecret, pageIndex, pageSize);
|
|
|
+ lastJSONArray.addAll(overTimeList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //todo:景昱 计算工作时长 默认工作日 8小时+当天人员加班(审核状态:通过)时长 非工作日考勤数据以加班数据为准
|
|
|
//todo:如何分页 循环调用接口 当天接口返回数据为空 取消调用
|
|
|
- return new JSONArray();
|
|
|
+ return lastJSONArray;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取考勤数据
|
|
|
+ * */
|
|
|
+ public static JSONArray getAttendanceStatistics(String startDate,String endDate,String appkey,String appSecret,Integer pageIndex,Integer pageSize){
|
|
|
+ String url = "https://openapi.italent.cn/AttendanceOpen/api/v1/AttendanceStatistics/get";
|
|
|
+ HttpHeaders headers = new HttpHeaders();
|
|
|
+ RestTemplate restTemplate = new RestTemplate();
|
|
|
+ MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
|
|
|
+ headers.setContentType(type);
|
|
|
+ String accessToken = getToken(appkey,appSecret);
|
|
|
+ System.out.println("--------Bearer TOKEN--------"+accessToken);
|
|
|
+ headers.add("Authorization","Bearer "+accessToken);
|
|
|
+ JSONObject requestMap = new JSONObject();
|
|
|
+ requestMap.put("StartDate",startDate);
|
|
|
+ requestMap.put("StopDate",endDate);
|
|
|
+ requestMap.put("PageIndex",pageIndex);
|
|
|
+ requestMap.put("PageSize",pageSize);
|
|
|
+ System.out.println("--------headers请求头数据-------"+headers);
|
|
|
+ System.out.println("--------requestMap请求参数-------"+requestMap);
|
|
|
+ HttpEntity<JSONObject> entity = new HttpEntity<>(requestMap, headers);
|
|
|
+ ResponseEntity<String> ResponseEntity = restTemplate.postForEntity(url, entity, String.class);
|
|
|
+ JSONArray lastJSONArray=new JSONArray();
|
|
|
+ if (ResponseEntity.getStatusCode() == HttpStatus.OK) {
|
|
|
+ String resp= ResponseEntity.getBody();
|
|
|
+ JSONObject respJson = JSONObject.parseObject(resp);
|
|
|
+ if(respJson.getIntValue("code")==200){
|
|
|
+ JSONObject data = respJson.getJSONObject("Data");
|
|
|
+ JSONArray target = data.getJSONArray("Items");
|
|
|
+ lastJSONArray.addAll(target);
|
|
|
+ if (target.size()>0){
|
|
|
+ pageIndex++;
|
|
|
+ JSONArray overTimeList = getAttendanceStatistics(startDate,endDate, appkey, appSecret, pageIndex, pageSize);
|
|
|
+ lastJSONArray.addAll(overTimeList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return lastJSONArray;
|
|
|
}
|
|
|
|
|
|
}
|