Min 1 년 전
부모
커밋
1389c5c41a

+ 11 - 5
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/UserWithBeisenController.java

@@ -23,6 +23,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
+import java.time.Duration;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
@@ -232,7 +233,7 @@ public class UserWithBeisenController {
             return msg;
         }
         JSONObject item = BeiSenUtils.getAttendanceStatisticWithUser(createDate,withBeisen.get().getUserId(), beisenConfig.getAppKey(), beisenConfig.getAppSecret());
-        JSONArray allOverTimeList = BeiSenUtils.getScheduledOverTimeRangeList(createDate,createDate,withBeisen.get().getUserId(), beisenConfig.getAppKey(), beisenConfig.getAppSecret());
+        JSONArray allOverTimeList = BeiSenUtils.getScheduledOverTimeRangeList(createDate,"2024-03-26",withBeisen.get().getUserId(), beisenConfig.getAppKey(), beisenConfig.getAppSecret());
         //获取当前数据下的人员工号对应到工时管家
         Optional<User> first = userList.stream().filter(f -> f.getJobNumber().equals(withBeisen.get().getJobNumber())).findFirst();
         System.out.println("考勤数据:"+item.toString());
@@ -247,14 +248,19 @@ public class UserWithBeisenController {
             Stream<JSONObject> overTimeStream = allOverTimeList.stream().map(elment -> (JSONObject) elment);
             Optional<UserWithBeisen> beisen = userWithBeisenList.stream().filter(u -> u.getJobNumber() != null && u.getJobNumber().equals(first.get().getJobNumber())).findFirst();
             if(beisen.isPresent()){
-                List<JSONObject> overTimeList = overTimeStream.filter(a -> a.getString("StaffId").equals(beisen.get().getUserId())
-                        && a.getIntValue("ApproveStatus") == 2).collect(Collectors.toList());
+                List<JSONObject> overTimeList = overTimeStream.filter(a -> a.getString("staffID").equals(beisen.get().getUserId())).collect(Collectors.toList());
                 System.out.println("加班时长数据:"+overTimeList.toString());
                 for (JSONObject jsonObject : overTimeList) {
-                    System.out.println("加班时长:"+jsonObject.getDouble("ActualOverTimeDuration"));
+                    System.out.println("加班开始时间:"+jsonObject.getString("overTimeStartTime"));
+                    System.out.println("加班结束时间:"+jsonObject.getString("overTimeEndTime"));
                 }
                 if(overTimeList.size()>0){
-                    double actualOverTimeDuration = overTimeList.stream().mapToDouble(i -> i.getDouble("ActualOverTimeDuration")).sum();
+                    double actualOverTimeDuration = overTimeList.stream().mapToDouble(i ->{
+                        LocalDateTime overTimeStartTime = LocalDateTime.parse(i.getString("overTimeStartTime"), df1);
+                        LocalDateTime overTimeEndTime = LocalDateTime.parse(i.getString("overTimeEndTime"), df1);
+                        Duration between = Duration.between(overTimeStartTime, overTimeEndTime);
+                        return between.toHours();
+                    }).sum();
                     if(workDay){
                         workTime= workTime+actualOverTimeDuration;
                     }else {