From 323061b0d7f945ae778ed8892d4460e90fc118c6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=B5=B5=E5=95=B8=E9=9D=9E?= <8153694@qq.com>
Date: Tue, 20 Aug 2024 15:46:26 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=AF=B7=E5=81=87=E8=AE=A1?=
 =?UTF-8?q?=E7=AE=97=E8=80=83=E5=8B=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../AttendanceRecordErrorServiceImpl.java     | 36 +++++++++++++++++--
 .../impl/AttendanceRecordServiceImpl.java     |  2 +-
 .../service/work/FixWorkOtherAttendance.java  |  2 +-
 .../java/com/mortals/httpclient/system.http   |  8 ++---
 4 files changed, 40 insertions(+), 8 deletions(-)

diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceRecordErrorServiceImpl.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceRecordErrorServiceImpl.java
index 82db63d4..ce6a7256 100644
--- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceRecordErrorServiceImpl.java
+++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceRecordErrorServiceImpl.java
@@ -430,7 +430,39 @@ public class AttendanceRecordErrorServiceImpl extends AbstractCRUDServiceImpl<At
                             //褰撳ぉ
                             // 1.鍒ゆ柇寮傚父鏃堕棿涓庤鍋囧紑濮嬫椂闂撮偅涓ぇ銆�
                             int compare = DateUtil.compare(entity.getErrorDateTime(), leaveRecord.getStartTime());
+                            int compare1 = DateUtil.compare(entity.getErrorDateTime(), leaveRecord.getEndTime());
+                            int compare2 = DateUtil.compare(entity.getErrorDateTime(), leaveRecord.getEndTime());
 
+                            boolean in = DateUtil.isIn(goOffDateTime, leaveRecord.getStartTime(), leaveRecord.getEndTime());
+
+                            if (in) {
+                                //涓婄彮鎵撳崱鏃堕棿鍦ㄨ鍋囨椂闂磋寖鍥村唴锛岃繜鍒板垎閽熸寜鐓ц鍋囩粨鏉熸椂闂翠笌寮傚父鏃堕棿鍋氬樊鍊�
+                                long tempLate = DateUtil.between(leaveRecord.getEndTime(), entity.getErrorDateTime(), DateUnit.MINUTE, false);
+                                if (tempLate > 0L) {
+                                    lateMinList.add(tempLate);
+                                }
+                            } else {
+                                //涓嶅寘鍚紝鍒欒澶氫釜鍒ゆ柇
+                                //1.璇峰亣寮€濮嬫椂闂� 澶т簬涓婄彮鏃堕棿鏃跺€�
+                                int rightBig = DateUtil.compare(goOffDateTime, leaveRecord.getStartTime());
+                                long leftRange = 0L;
+                                if (rightBig <= 0) {
+                                    //澶氭鍊�  宸︽鍊�
+                                     leftRange = DateUtil.between(goOffDateTime, leaveRecord.getStartTime(), DateUnit.MINUTE, false);
+                                }
+                                //鍙虫鍊�
+                                long leftRange1 = 0;
+                                int rightBig1 = DateUtil.compare(leaveRecord.getEndTime(), entity.getErrorDateTime());
+                                if (rightBig1 < 0) {
+                                    leftRange1 = DateUtil.between(leaveRecord.getEndTime(), entity.getErrorDateTime(), DateUnit.MINUTE, false);
+                                }
+                                leftRange = leftRange + leftRange1;
+                                if(leftRange>0){
+                                    lateMinList.add(leftRange);
+                                }
+                            }
+
+/*
                             if (compare < 0) {
                                 //寮傚父鏃堕棿灏忎簬璇峰亣缁撴潫鏃堕棿,杩熷埌鍒欒绠楀紓甯告椂闂翠笌鐝鐝鐝椂闂磋繕鏈夊墠缃椂闂村樊鍊�
                                 long tempLate = DateUtil.between(goOffDateTime, entity.getErrorDateTime(), DateUnit.MINUTE, false);
@@ -444,7 +476,7 @@ public class AttendanceRecordErrorServiceImpl extends AbstractCRUDServiceImpl<At
                                 if (tempLate > 0L) {
                                     lateMinList.add(tempLate);
                                 }
-                            }
+                            }*/
 
                         }
 
@@ -458,7 +490,7 @@ public class AttendanceRecordErrorServiceImpl extends AbstractCRUDServiceImpl<At
                     } else {
                         lateMin = DateUtil.between(entity.getErrorDateTime(), entity.getGoOffDateTime(), DateUnit.MINUTE);
                     }
-                }else{
+                } else {
                     lateMin = DateUtil.between(entity.getErrorDateTime(), entity.getGoOffDateTime(), DateUnit.MINUTE);
 
                 }
diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceRecordServiceImpl.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceRecordServiceImpl.java
index 3a0386fd..55a4e073 100644
--- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceRecordServiceImpl.java
+++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceRecordServiceImpl.java
@@ -77,7 +77,7 @@ public class AttendanceRecordServiceImpl extends AbstractCRUDServiceImpl<Attenda
 
     @Override
     protected void updateAfter(AttendanceRecordEntity entity, Context context) throws AppException {
-        if (!ObjectUtils.isEmpty(entity.getAttendanceRecordDetailList())) {
+        if (!ObjectUtils.isEmpty(entity)&&!ObjectUtils.isEmpty(entity.getAttendanceRecordDetailList())) {
             Long[] attendanceRecordDetailIds = attendanceRecordDetailService.find(new AttendanceRecordDetailQuery().recordId(entity.getId())).stream().map(AttendanceRecordDetailEntity::getId).toArray(Long[]::new);
             attendanceRecordDetailService.remove(attendanceRecordDetailIds, context);
             entity.getAttendanceRecordDetailList().stream().peek(item -> {
diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/work/FixWorkOtherAttendance.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/work/FixWorkOtherAttendance.java
index b5a8eda5..0157ea2e 100644
--- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/work/FixWorkOtherAttendance.java
+++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/work/FixWorkOtherAttendance.java
@@ -560,7 +560,7 @@ public class FixWorkOtherAttendance extends AttendanceWorkAbstract {
                 if (ObjectUtils.isEmpty(attendanceRecordErrorEntity)) {
                     errorService.save(errorEntity, context);
                 }else {
-                    log.info("寮傚父璁板綍宸插瓨鍦紝涓嶆坊鍔�");
+                    //log.info("寮傚父璁板綍宸插瓨鍦紝涓嶆坊鍔�");
                 }
             }
         }
diff --git a/attendance-performance-manager/src/test/java/com/mortals/httpclient/system.http b/attendance-performance-manager/src/test/java/com/mortals/httpclient/system.http
index 05c2ebf2..24a29866 100644
--- a/attendance-performance-manager/src/test/java/com/mortals/httpclient/system.http
+++ b/attendance-performance-manager/src/test/java/com/mortals/httpclient/system.http
@@ -37,8 +37,8 @@ POST {{baseUrl}}/attendance/record/hik/addAttendanceRecord
 Content-Type: application/json
 
 {
-  "attendanceDateStart": "2024-07-08",
-  "attendanceDateEnd": "2024-07-10"
+  "attendanceDateStart": "2024-07-01",
+  "attendanceDateEnd": "2024-07-31"
 }
 
 ###娴峰悍鑰冨嫟鎵撳崱璁板綍璁$畻1
@@ -78,8 +78,8 @@ POST {{baseUrl}}/attendance/stat/summary
 Content-Type: application/json
 
 {
-  "summaryTimeStart": "2024-03-01",
-  "summaryTimeEnd": "2024-03-31"
+  "summaryTimeStart": "2024-07-01",
+  "summaryTimeEnd": "2024-07-31"
 }
 
 
-- 
2.24.3