From 2f071fc07c1bcc5f27e8c304c13a5e89f4b24bf4 Mon Sep 17 00:00:00 2001
From: liaoxuwei <5789413@qq.com>
Date: Wed, 8 May 2024 15:29:47 +0800
Subject: [PATCH] =?UTF-8?q?=E6=95=88=E8=83=BD=E7=9B=91=E6=B5=8B=E4=B8=8D?=
 =?UTF-8?q?=E5=8F=91=E5=BC=82=E5=B8=B8=E6=B6=88=E6=81=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../AttendanceLeaveRecordServiceImpl.java     | 24 +++---
 .../impl/CheckEffectRecordServiceImpl.java    | 73 ++++++++++---------
 2 files changed, 50 insertions(+), 47 deletions(-)

diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceLeaveRecordServiceImpl.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceLeaveRecordServiceImpl.java
index 2161c0d1..2cfe605b 100644
--- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceLeaveRecordServiceImpl.java
+++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceLeaveRecordServiceImpl.java
@@ -8,6 +8,7 @@ import com.mortals.framework.common.Rest;
 import com.mortals.framework.service.ICacheService;
 import com.mortals.framework.util.DataUtil;
 import com.mortals.framework.util.DateUtils;
+import com.mortals.framework.util.StringUtils;
 import com.mortals.framework.util.ThreadPool;
 import com.mortals.xhx.base.system.user.model.UserEntity;
 import com.mortals.xhx.base.system.user.service.UserService;
@@ -77,6 +78,9 @@ public class AttendanceLeaveRecordServiceImpl extends AbstractCRUDServiceImpl<At
     @Autowired
     private PerformRulesService performRulesService;
 
+    /** 鍛樺伐浜嬪亣璇峰亣鏁版嵁key 鍛樺伐id+寮€濮嬫椂闂�+缁撴潫鏃堕棿*/
+    private static String LEAVE_REIDS_KEY ="attendance:leave:";
+
     @Override
     protected void updateAfter(AttendanceLeaveRecordEntity entity, Context context) throws AppException {
         super.updateAfter(entity, context);
@@ -228,18 +232,16 @@ public class AttendanceLeaveRecordServiceImpl extends AbstractCRUDServiceImpl<At
                 //浠ュ崐澶�4灏忔椂涓鸿绠楀崟浣嶈繘琛屾墸鍒�
                 int multiple = entity.getDuration() / 14400;
                 if (multiple > 0) {
-                    PerformAttendRecordEntity recordEntity = conversionLeaveRecord(entity);
-                    recordEntity.setCreateTime(new Date());
-                    recordEntity.setCreateUserId(1l);
-                    recordEntity.setErrorTime(entity.getStartTime());
-                    recordEntity.setScore(recordEntity.getScore().multiply(new BigDecimal(multiple)));
-                    PerformAttendRecordQuery query = new PerformAttendRecordQuery();
-                    query.setStaffId(recordEntity.getStaffId());
-                    query.setRuleId(recordEntity.getRuleId());
-                    query.setErrorTime(recordEntity.getErrorTime());
-                    PerformAttendRecordEntity temp = performAttendRecordService.selectOne(query);
-                    if (ObjectUtils.isEmpty(temp)) {
+                    String redisKey = entity.getLeavePersonId()+"_"+entity.getLeavePerson()+"_"+DateUtils.getDateTimeStr(entity.getStartTime(),"yyyyMMddHHmmss")+"_"+DateUtils.getDateTimeStr(entity.getEndTime(),"yyyyMMddHHmmss");
+                    String leaveKey = cacheService.get(LEAVE_REIDS_KEY + redisKey);
+                    if(StringUtils.isEmpty(leaveKey)) {
+                        PerformAttendRecordEntity recordEntity = conversionLeaveRecord(entity);
+                        recordEntity.setCreateTime(new Date());
+                        recordEntity.setCreateUserId(1l);
+                        recordEntity.setErrorTime(entity.getStartTime());
+                        recordEntity.setScore(recordEntity.getScore().multiply(new BigDecimal(multiple)));
                         performAttendRecordService.save(recordEntity, context);
+                        cacheService.set(LEAVE_REIDS_KEY + redisKey, redisKey, 300);     //浜斿垎閽熷唴涓嶄細閲嶅
                     }
                 }
             }
diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/check/service/impl/CheckEffectRecordServiceImpl.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/check/service/impl/CheckEffectRecordServiceImpl.java
index 6d8e3c48..1014121e 100644
--- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/check/service/impl/CheckEffectRecordServiceImpl.java
+++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/check/service/impl/CheckEffectRecordServiceImpl.java
@@ -120,17 +120,17 @@ public class CheckEffectRecordServiceImpl extends AbstractCRUDServiceImpl<CheckE
     @Override
     protected void saveAfter(CheckEffectRecordEntity entity, Context context) throws AppException {
         //娣诲姞缁╂晥寮傚父淇℃伅
-        try {
-            PerformErrorMessageEntity errorMessageEntity = new PerformErrorMessageEntity();
-            errorMessageEntity.initAttrValue();
-            BeanUtils.copyProperties(entity, errorMessageEntity, BeanUtil.getNullPropertyNames(entity));
-            errorMessageEntity.setCheckRecordId(entity.getId());
-            errorMessageEntity.setErrorTime(entity.getHappenTime());
-            errorMessageEntity.setPerformType(PerformTypeEnum.鏁堣兘缁╂晥.getValue());
-            performErrorMessageService.save(errorMessageEntity);
-        }catch (Exception e) {
-            log.error("鏂板缁╂晥寮傚父淇℃伅鏍告煡鐘舵€佸嚭閿�", e);
-        }
+//        try {
+//            PerformErrorMessageEntity errorMessageEntity = new PerformErrorMessageEntity();
+//            errorMessageEntity.initAttrValue();
+//            BeanUtils.copyProperties(entity, errorMessageEntity, BeanUtil.getNullPropertyNames(entity));
+//            errorMessageEntity.setCheckRecordId(entity.getId());
+//            errorMessageEntity.setErrorTime(entity.getHappenTime());
+//            errorMessageEntity.setPerformType(PerformTypeEnum.鏁堣兘缁╂晥.getValue());
+//            performErrorMessageService.save(errorMessageEntity);
+//        }catch (Exception e) {
+//            log.error("鏂板缁╂晥寮傚父淇℃伅鏍告煡鐘舵€佸嚭閿�", e);
+//        }
 
         try{
             StaffCheckSummaryQuery query = new StaffCheckSummaryQuery();
@@ -147,18 +147,19 @@ public class CheckEffectRecordServiceImpl extends AbstractCRUDServiceImpl<CheckE
 
     @Override
     protected void removeAfter(Long[] ids, Context context, int result) throws AppException {
-        try {
-            PerformErrorMessageQuery query = new PerformErrorMessageQuery();
-            query.setPerformType(PerformTypeEnum.鏁堣兘缁╂晥.getValue());
-            query.setCheckRecordIdList(Arrays.asList(ids));
-            List<PerformErrorMessageEntity> errorList = performErrorMessageService.find(query);
-            if (CollectionUtils.isNotEmpty(errorList)) {
-                Long[] deleteIds = errorList.stream().map(i -> i.getId()).toArray(Long[]::new);
-                performErrorMessageService.remove(deleteIds, context);
-            }
-        }catch (Exception e){
-            log.error("鍒犻櫎缁╂晥寮傚父淇℃伅鏍告煡鐘舵€佸嚭閿�", e);
-        }
+        super.removeAfter(ids, context, result);
+//        try {
+//            PerformErrorMessageQuery query = new PerformErrorMessageQuery();
+//            query.setPerformType(PerformTypeEnum.鏁堣兘缁╂晥.getValue());
+//            query.setCheckRecordIdList(Arrays.asList(ids));
+//            List<PerformErrorMessageEntity> errorList = performErrorMessageService.find(query);
+//            if (CollectionUtils.isNotEmpty(errorList)) {
+//                Long[] deleteIds = errorList.stream().map(i -> i.getId()).toArray(Long[]::new);
+//                performErrorMessageService.remove(deleteIds, context);
+//            }
+//        }catch (Exception e){
+//            log.error("鍒犻櫎缁╂晥寮傚父淇℃伅鏍告煡鐘舵€佸嚭閿�", e);
+//        }
     }
 
     private void sendCheckDingTalk(CheckEffectRecordEntity entity) {
@@ -210,19 +211,19 @@ public class CheckEffectRecordServiceImpl extends AbstractCRUDServiceImpl<CheckE
         entity.setCheckStatus(CheckStatusEnum.宸插鐞�.getValue()); //澶勭悊鐘舵€�(1.鏈鐞�,2.宸插鐞�)
         dao.update(entity);
         //鏇存柊缁╂晥寮傚父淇℃伅鏍告煡鐘舵€�
-        try {
-            PerformErrorMessageEntity errorMessageEntity = performErrorMessageService.selectOne(new PerformErrorMessageQuery().checkRecordId(entity.getId()).performType(PerformTypeEnum.鏁堣兘缁╂晥.getValue()));
-            if(errorMessageEntity!=null){
-                PerformErrorMessageEntity updateEntity = new PerformErrorMessageEntity();
-                updateEntity.setId(errorMessageEntity.getId());
-                updateEntity.setCheckStatus(CheckStatusEnum.宸插鐞�.getValue());
-                updateEntity.setCheckTime(entity.getCheckTime());
-                updateEntity.setUpdateTime(new Date());
-                performErrorMessageService.update(updateEntity);
-            }
-        }catch (Exception e){
-            log.error("鏇存柊缁╂晥寮傚父淇℃伅鏍告煡鐘舵€佸嚭閿�", e);
-        }
+//        try {
+//            PerformErrorMessageEntity errorMessageEntity = performErrorMessageService.selectOne(new PerformErrorMessageQuery().checkRecordId(entity.getId()).performType(PerformTypeEnum.鏁堣兘缁╂晥.getValue()));
+//            if(errorMessageEntity!=null){
+//                PerformErrorMessageEntity updateEntity = new PerformErrorMessageEntity();
+//                updateEntity.setId(errorMessageEntity.getId());
+//                updateEntity.setCheckStatus(CheckStatusEnum.宸插鐞�.getValue());
+//                updateEntity.setCheckTime(entity.getCheckTime());
+//                updateEntity.setUpdateTime(new Date());
+//                performErrorMessageService.update(updateEntity);
+//            }
+//        }catch (Exception e){
+//            log.error("鏇存柊缁╂晥寮傚父淇℃伅鏍告煡鐘舵€佸嚭閿�", e);
+//        }
         try{
             if(!ObjectUtils.isEmpty(temp.getRecordId())){
                 PerformEffectRecordEntity recordEntity = recordService.get(temp.getRecordId());
-- 
2.24.3