From ed83fdced0b1ce7a4476c32673b9349a2595d59b Mon Sep 17 00:00:00 2001
From: tjx <t2856754968@163.com>
Date: 星期三, 24 十二月 2025 18:47:14 +0800
Subject: [PATCH] 获取设备打卡数据
---
src/main/java/com/gs/dingtalk/controller/KMController.java | 86 ++++++++++++++++++++++++++++++++++++++++--
1 files changed, 81 insertions(+), 5 deletions(-)
diff --git a/src/main/java/com/gs/dingtalk/controller/KMController.java b/src/main/java/com/gs/dingtalk/controller/KMController.java
index 151b60d..b0f7fe0 100644
--- a/src/main/java/com/gs/dingtalk/controller/KMController.java
+++ b/src/main/java/com/gs/dingtalk/controller/KMController.java
@@ -2,12 +2,15 @@
import com.gs.dingtalk.config.ResultMessage;
+import com.gs.dingtalk.service.QwCheckinDayDataService;
+import com.gs.dingtalk.service.QwHardwareCheckinDataService;
import com.gs.dingtalk.service.SendDingtalkService;
import lombok.RequiredArgsConstructor;
-import org.springframework.web.bind.annotation.CrossOrigin;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+
+import java.time.LocalDate;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
@RestController
@RequestMapping("Numerical")
@@ -18,8 +21,12 @@
private final SendDingtalkService sendDingtalkService;
+ private final QwCheckinDayDataService qwCheckinDayDataService;
+
+ private final QwHardwareCheckinDataService qwHardwareCheckinDataService;
+
@PostMapping("/chatSendMessage")
- public ResultMessage setCode() {
+ public ResultMessage chatSendMessage() {
try {
sendDingtalkService.chatSendMessage();
@@ -29,4 +36,73 @@
}
}
+ @PostMapping("/getUserId")
+ public ResultMessage getUserId() {
+
+ try {
+ sendDingtalkService.getDingTalkUserId();
+ return ResultMessage.ok();
+ } catch (Exception e) {
+ return ResultMessage.error(e);
+ }
+ }
+
+ /**
+ * 鍚屾浼佷笟寰俊鎵撳崱鏃ユ姤鏁版嵁
+ * @param startDate 寮�濮嬫棩鏈燂紝鏍煎紡锛歽yyy-MM-dd
+ * @param endDate 缁撴潫鏃ユ湡锛屾牸寮忥細yyyy-MM-dd
+ * @return 鍚屾缁撴灉
+ */
+ @PostMapping("/syncCheckinDayData")
+ public ResultMessage syncCheckinDayData(@RequestParam String startDate, @RequestParam String endDate) {
+ try {
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+ LocalDate start = LocalDate.parse(startDate, formatter);
+ LocalDate end = LocalDate.parse(endDate, formatter);
+
+ // 杞崲涓篣nix鏃堕棿鎴筹紙褰撳ぉ0鐐癸級
+ ZoneId zoneId = ZoneId.of("Asia/Shanghai");
+ long startTime = start.atStartOfDay(zoneId).toEpochSecond();
+ long endTime = end.atStartOfDay(zoneId).toEpochSecond();
+
+ int totalInsert = 0;
+ // 鏃ユ姤鎺ュ彛starttime鍜宔ndtime闇�鐩稿悓锛岄�愬ぉ鍚屾
+ for (long date = startTime; date <= endTime; date += 86400) {
+ int insertCount = qwCheckinDayDataService.syncDayData(date);
+ totalInsert += insertCount;
+ }
+
+ return ResultMessage.ok();
+ } catch (Exception e) {
+ return ResultMessage.error(e);
+ }
+ }
+
+ /**
+ * 鍚屾浼佷笟寰俊璁惧鎵撳崱鏁版嵁
+ * @param startDate 寮�濮嬫棩鏈燂紝鏍煎紡锛歽yyy-MM-dd
+ * @param endDate 缁撴潫鏃ユ湡锛屾牸寮忥細yyyy-MM-dd
+ * @return 鍚屾缁撴灉
+ */
+ @PostMapping("/syncHardwareCheckinData")
+ public ResultMessage syncHardwareCheckinData(@RequestParam String startDate, @RequestParam String endDate) {
+ try {
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+ LocalDate start = LocalDate.parse(startDate, formatter);
+ LocalDate end = LocalDate.parse(endDate, formatter);
+
+ // 杞崲涓篣nix鏃堕棿鎴�
+ ZoneId zoneId = ZoneId.of("Asia/Shanghai");
+ long startTime = start.atStartOfDay(zoneId).toEpochSecond();
+ // 缁撴潫鏃堕棿涓哄綋澶�23:59:59
+ long endTime = end.plusDays(1).atStartOfDay(zoneId).toEpochSecond() - 1;
+
+ int insertCount = qwHardwareCheckinDataService.syncHardwareData(startTime, endTime);
+
+ return ResultMessage.ok();
+ } catch (Exception e) {
+ return ResultMessage.error(e);
+ }
+ }
+
}
\ No newline at end of file
--
Gitblit v1.9.3