|
@@ -248,7 +248,35 @@ public class SmartAttendanceController implements SmartAttendanceControllerAPI {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
boolean insertResult = smartAttendanceService.insertAttendanceBatch(attendanceArrayList);
|
|
boolean insertResult = smartAttendanceService.insertAttendanceBatch(attendanceArrayList);
|
|
|
|
|
+
|
|
|
|
|
+ // 不需要审核则直接推送到百胜
|
|
|
|
|
+ if (IfVerification == 1) {
|
|
|
|
|
+ DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
+ for (SmartAttendance smartAttendance : attendanceArrayList) {
|
|
|
|
|
+ askForLeaveRequest askForLeaveRequest = new askForLeaveRequest();
|
|
|
|
|
+ askForLeaveRequest.setId(smartAttendance.getUserId());
|
|
|
|
|
+ askForLeaveRequest.setReason(smartAttendance.getReason());
|
|
|
|
|
+
|
|
|
|
|
+ Date startTime = smartAttendance.getStartTime();
|
|
|
|
|
+ LocalDateTime startDateTime = LocalDateTime.ofInstant(startTime.toInstant(), ZoneId.systemDefault());
|
|
|
|
|
+ String start = startDateTime.format(dateTimeFormatter);
|
|
|
|
|
+ askForLeaveRequest.setStartTime(start);
|
|
|
|
|
+
|
|
|
|
|
+ Date endTime = smartAttendance.getEndTime();
|
|
|
|
|
+ LocalDateTime endDateTime = LocalDateTime.ofInstant(endTime.toInstant(), ZoneId.systemDefault());
|
|
|
|
|
+ String end = endDateTime.format(dateTimeFormatter);
|
|
|
|
|
+ askForLeaveRequest.setEndTime(end);
|
|
|
|
|
+ try {
|
|
|
|
|
+ pushBs(askForLeaveRequest);
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ logger.error("请假id为:"+smartAttendance.getId()+"上传失败");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
if (!insertResult) {
|
|
if (!insertResult) {
|
|
|
return CommonResult.fail("请假数据获取失败");
|
|
return CommonResult.fail("请假数据获取失败");
|
|
|
}
|
|
}
|
|
@@ -257,6 +285,66 @@ public class SmartAttendanceController implements SmartAttendanceControllerAPI {
|
|
|
return CommonResult.ok("操作成功");
|
|
return CommonResult.ok("操作成功");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 请假数据上传到百胜
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param request
|
|
|
|
|
+ * @throws Exception
|
|
|
|
|
+ */
|
|
|
|
|
+ public void pushBs(askForLeaveRequest request) throws Exception {
|
|
|
|
|
+ SmartStudentVo student = smartUserService.querySmartStudentById(request.getId());
|
|
|
|
|
+ if (student == null) {
|
|
|
|
|
+ logger.error("不存在:" + request.getId() + " 学生");
|
|
|
|
|
+ throw new RuntimeException("不存在:" + request.getId() + " 学生");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (student.getIdentityId().intValue() != eIdentityStatu.Student.getValue()) {
|
|
|
|
|
+ logger.error("前用户身份不是学生," + request.getId() + "无法请假!");
|
|
|
|
|
+ throw new RuntimeException("前用户身份不是学生," + request.getId() + "无法请假!");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ String reason = request.getReason() == null ? "学生请假" : request.getReason();
|
|
|
|
|
+
|
|
|
|
|
+ //region 学生请假
|
|
|
|
|
+ String appId = controlConfig.getAppId();
|
|
|
|
|
+ String schoolno = controlConfig.getSchoolCode();
|
|
|
|
|
+ String timestamp = TimeExchange.DateNowTimeStamo();
|
|
|
|
|
+ String appSecret = controlConfig.getAppSecret();
|
|
|
|
|
+ String url = controlConfig.getUrl() + "student/addleavebill";
|
|
|
|
|
+
|
|
|
|
|
+ JSONObject jsonobject = new JSONObject();
|
|
|
|
|
+ jsonobject.put("appid", appId);
|
|
|
|
|
+ String str = "{\"student_no\":\"" + student.getBsStudentNo() + "\",\"grade_no\":\"" + student.getBsGradeNo() + "\",\"classtab_no\":\"" + student.getBsClassNo() + "\",\"leavebill_content\":\"" + reason + "\",\"leavebill_begindate\":\"" + request.getStartTime() + "\",\"leavebill_enddate\":\"" + request.getEndTime() + "\",\"leavebill_remark\":\"" + "" + "\"}";
|
|
|
|
|
+ String aesStr = URLEncoder.encode(AesTestOne.encrypt(str, controlConfig.getAppSecret()), "UTF-8");
|
|
|
|
|
+ jsonobject.put("data", aesStr);
|
|
|
|
|
+ jsonobject.put("schoolno", schoolno);
|
|
|
|
|
+ jsonobject.put("timestamp", timestamp);
|
|
|
|
|
+
|
|
|
|
|
+ String md5Str = "appid=" + appId + "&data={\"student_no\":\"" + student.getBsStudentNo() + "\",\"grade_no\":\"" + student.getBsGradeNo() + "\",\"classtab_no\":\"" + student.getBsClassNo() + "\",\"leavebill_content\":\"" + reason + "\",\"leavebill_begindate\":\"" + request.getStartTime() + "\",\"leavebill_enddate\":\"" + request.getEndTime() + "\",\"leavebill_remark\":\"" + "" + "\"}" + "&schoolno=" + schoolno + "×tamp=" + timestamp + "&key=" + appSecret;
|
|
|
|
|
+ String sign = CommonUtil.MD5(md5Str);
|
|
|
|
|
+ //sign签名
|
|
|
|
|
+ jsonobject.put("sign", sign);
|
|
|
|
|
+
|
|
|
|
|
+ //返回的结果中 code为1表示成功
|
|
|
|
|
+ String bsResult = RequestUtils.httpPost(url, jsonobject.toJSONString());
|
|
|
|
|
+
|
|
|
|
|
+ ObjectMapper objectMapper = new ObjectMapper();
|
|
|
|
|
+ BsLeaveVo leave = objectMapper.readValue(bsResult, BsLeaveVo.class);
|
|
|
|
|
+
|
|
|
|
|
+ if (!bsResult.contains("添加成功")) {
|
|
|
|
|
+ logger.error(request.getId() + ":添加失败");
|
|
|
|
|
+ throw new RuntimeException(request.getId() + ":添加失败");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // URL解码
|
|
|
|
|
+ String decodedUrl = URLDecoder.decode(leave.getData(), "UTF-8");
|
|
|
|
|
+
|
|
|
|
|
+ BsLeaveNoVo leaveNo = objectMapper.readValue(decrypt(decodedUrl, controlConfig.getAppSecret()), BsLeaveNoVo.class);
|
|
|
|
|
+ logger.info("成功:" + leaveNo.getLeavebill_no());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
@DESRespondSecret(validated = true)
|
|
@DESRespondSecret(validated = true)
|
|
|
public CommonResult queryAttendanceList(String date, int classId) {
|
|
public CommonResult queryAttendanceList(String date, int classId) {
|
|
@@ -408,6 +496,7 @@ public class SmartAttendanceController implements SmartAttendanceControllerAPI {
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
public CommonResult historicalAttendance(int userId, String dateTime) {
|
|
public CommonResult historicalAttendance(int userId, String dateTime) {
|
|
|
|
|
|
|
@@ -477,12 +566,33 @@ public class SmartAttendanceController implements SmartAttendanceControllerAPI {
|
|
|
@DESRespondSecret(validated = true)
|
|
@DESRespondSecret(validated = true)
|
|
|
@PassToken
|
|
@PassToken
|
|
|
public CommonResult verification(String id) {
|
|
public CommonResult verification(String id) {
|
|
|
- SmartAttendance attendance = smartAttendanceService.getById(id);
|
|
|
|
|
- if (ObjectUtils.isEmpty(attendance)) {
|
|
|
|
|
|
|
+ SmartAttendance smartAttendance = smartAttendanceService.getById(id);
|
|
|
|
|
+ if (ObjectUtils.isEmpty(smartAttendance)) {
|
|
|
return CommonResult.fail("该id不存在");
|
|
return CommonResult.fail("该id不存在");
|
|
|
}
|
|
}
|
|
|
- attendance.setIfVerification(1);
|
|
|
|
|
- boolean update = smartAttendanceService.updateById(attendance);
|
|
|
|
|
|
|
+
|
|
|
|
|
+ DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
+ askForLeaveRequest askForLeaveRequest = new askForLeaveRequest();
|
|
|
|
|
+ askForLeaveRequest.setId(smartAttendance.getUserId());
|
|
|
|
|
+ askForLeaveRequest.setReason(smartAttendance.getReason());
|
|
|
|
|
+
|
|
|
|
|
+ Date startTime = smartAttendance.getStartTime();
|
|
|
|
|
+ LocalDateTime startDateTime = LocalDateTime.ofInstant(startTime.toInstant(), ZoneId.systemDefault());
|
|
|
|
|
+ String start = startDateTime.format(dateTimeFormatter);
|
|
|
|
|
+ askForLeaveRequest.setStartTime(start);
|
|
|
|
|
+
|
|
|
|
|
+ Date endTime = smartAttendance.getEndTime();
|
|
|
|
|
+ LocalDateTime endDateTime = LocalDateTime.ofInstant(endTime.toInstant(), ZoneId.systemDefault());
|
|
|
|
|
+ String end = endDateTime.format(dateTimeFormatter);
|
|
|
|
|
+ askForLeaveRequest.setEndTime(end);
|
|
|
|
|
+ try {
|
|
|
|
|
+ pushBs(askForLeaveRequest);
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ logger.error("请假id为:"+smartAttendance.getId()+"上传失败");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ smartAttendance.setIfVerification(1);
|
|
|
|
|
+ boolean update = smartAttendanceService.updateById(smartAttendance);
|
|
|
if (update) {
|
|
if (update) {
|
|
|
return CommonResult.ok();
|
|
return CommonResult.ok();
|
|
|
}
|
|
}
|
|
@@ -687,7 +797,7 @@ public class SmartAttendanceController implements SmartAttendanceControllerAPI {
|
|
|
LocalDateTime endTime = startTime.plusDays(1);
|
|
LocalDateTime endTime = startTime.plusDays(1);
|
|
|
|
|
|
|
|
// 获取单人单日的请假数据
|
|
// 获取单人单日的请假数据
|
|
|
- List<AckDetailVo> ackVos= smartAttendanceService.ackDetail(userId,startTime,endTime);
|
|
|
|
|
|
|
+ List<AckDetailVo> ackVos = smartAttendanceService.ackDetail(userId, startTime, endTime);
|
|
|
|
|
|
|
|
return CommonResult.ok(ackVos);
|
|
return CommonResult.ok(ackVos);
|
|
|
}
|
|
}
|