|
@@ -1,7 +1,9 @@
|
|
|
package com.template.controller;
|
|
package com.template.controller;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+import com.alibaba.druid.sql.visitor.functions.If;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
import com.seewo.open.sdk.DefaultSeewoClient;
|
|
import com.seewo.open.sdk.DefaultSeewoClient;
|
|
|
import com.seewo.open.sdk.SeewoClient;
|
|
import com.seewo.open.sdk.SeewoClient;
|
|
@@ -14,6 +16,7 @@ import com.template.config.SeewoConfig;
|
|
|
import com.template.model.enumModel.eAttendanceStatu;
|
|
import com.template.model.enumModel.eAttendanceStatu;
|
|
|
import com.template.model.enumModel.eIdentityStatu;
|
|
import com.template.model.enumModel.eIdentityStatu;
|
|
|
import com.template.model.enumModel.eXwApproveStatu;
|
|
import com.template.model.enumModel.eXwApproveStatu;
|
|
|
|
|
+import com.template.model.evaluate.student.SmartEvaluateStudent;
|
|
|
import com.template.model.pojo.*;
|
|
import com.template.model.pojo.*;
|
|
|
import com.template.model.request.askForLeaveRequest;
|
|
import com.template.model.request.askForLeaveRequest;
|
|
|
import com.template.model.result.CommonResult;
|
|
import com.template.model.result.CommonResult;
|
|
@@ -22,6 +25,8 @@ import com.template.model.seewo.PersonalLeaveListSchoolPeriodRecordsRequest;
|
|
|
import com.template.model.seewo.PersonalLeaveListSchoolPeriodRecordsResult;
|
|
import com.template.model.seewo.PersonalLeaveListSchoolPeriodRecordsResult;
|
|
|
import com.template.model.vo.*;
|
|
import com.template.model.vo.*;
|
|
|
import com.template.services.SmartAttendanceService;
|
|
import com.template.services.SmartAttendanceService;
|
|
|
|
|
+import com.template.services.SmartEvaluateStudentService;
|
|
|
|
|
+import com.template.services.SmartSemesterService;
|
|
|
import com.template.services.SmartUserService;
|
|
import com.template.services.SmartUserService;
|
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
@@ -33,6 +38,8 @@ import org.springframework.web.bind.annotation.RestController;
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
|
import java.net.URLDecoder;
|
|
import java.net.URLDecoder;
|
|
|
import java.net.URLEncoder;
|
|
import java.net.URLEncoder;
|
|
|
|
|
+import java.time.LocalDateTime;
|
|
|
|
|
+import java.time.ZoneId;
|
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
@@ -63,6 +70,8 @@ public class SmartAttendanceController implements SmartAttendanceControllerAPI {
|
|
|
private SmartUserService smartUserService;
|
|
private SmartUserService smartUserService;
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private SmartAttendanceService smartAttendanceService;
|
|
private SmartAttendanceService smartAttendanceService;
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ SmartSemesterService smartSemesterService;
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -273,6 +282,56 @@ public class SmartAttendanceController implements SmartAttendanceControllerAPI {
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public CommonResult historicalAttendance(int userId, String dateTime) {
|
|
|
|
|
+
|
|
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
|
|
+ Date startTime = null;
|
|
|
|
|
+ Date endTime= null;
|
|
|
|
|
+ HistoricalAttendanceVo historicalAttendanceVo = new HistoricalAttendanceVo();
|
|
|
|
|
+ if ("1".equals(dateTime)) {
|
|
|
|
|
+// 本学期
|
|
|
|
|
+ SmartSemester smartSemester = smartSemesterService.getSemester(now);
|
|
|
|
|
+ if (ObjectUtils.isEmpty(smartSemester)) {
|
|
|
|
|
+ return CommonResult.ok(historicalAttendanceVo);
|
|
|
|
|
+ }
|
|
|
|
|
+ startTime = smartSemester.getStartTime();
|
|
|
|
|
+ endTime = smartSemester.getEndTime();
|
|
|
|
|
+ System.out.println("smartSemester = " + smartSemester);
|
|
|
|
|
+
|
|
|
|
|
+ } else if ("2".equals(dateTime)) {
|
|
|
|
|
+// 近1个月
|
|
|
|
|
+ LocalDateTime localDateTime = now.minusMonths(1);
|
|
|
|
|
+ startTime = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
|
|
|
|
|
+ endTime = Date.from(now.atZone(ZoneId.systemDefault()).toInstant());
|
|
|
|
|
+
|
|
|
|
|
+ } else if ("3".equals(dateTime)) {
|
|
|
|
|
+// 近一周
|
|
|
|
|
+ LocalDateTime localDateTime = now.minusDays(7);
|
|
|
|
|
+ startTime = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
|
|
|
|
|
+ endTime = Date.from(now.atZone(ZoneId.systemDefault()).toInstant());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ List<Integer> statusList=smartAttendanceService.getGroup();
|
|
|
|
|
+
|
|
|
|
|
+ for (Integer status : statusList) {
|
|
|
|
|
+ List<SmartAttendance> smartAttendances =smartAttendanceService.getHistoricalAttendance(userId,status,startTime,endTime);
|
|
|
|
|
+ if (0==status) {
|
|
|
|
|
+ historicalAttendanceVo.setPunctuality(smartAttendances.size());
|
|
|
|
|
+ }else if (1==status){
|
|
|
|
|
+ historicalAttendanceVo.setBeLate(smartAttendances.size());
|
|
|
|
|
+ }else if (3==status){
|
|
|
|
|
+ historicalAttendanceVo.setNotClockingIn(smartAttendances.size());
|
|
|
|
|
+ }else if (6==status){
|
|
|
|
|
+ historicalAttendanceVo.setAskForLeave(smartAttendances.size());
|
|
|
|
|
+ }else if (7==status){
|
|
|
|
|
+ historicalAttendanceVo.setClockOut(smartAttendances.size());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return CommonResult.ok(historicalAttendanceVo);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
public PersonalLeaveListSchoolPeriodRecordsResult getXwAttendance(String startDate, String endDate, Integer currentPage, Integer pageSize) {
|
|
public PersonalLeaveListSchoolPeriodRecordsResult getXwAttendance(String startDate, String endDate, Integer currentPage, Integer pageSize) {
|
|
|
//初始化客户端
|
|
//初始化客户端
|
|
|
SeewoClient seewoClient = new DefaultSeewoClient(new Account(seewoConfig.getAppId(), seewoConfig.getAppSecret()));
|
|
SeewoClient seewoClient = new DefaultSeewoClient(new Account(seewoConfig.getAppId(), seewoConfig.getAppSecret()));
|