diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/common/code/ErrorStatusEnum.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/common/code/ErrorStatusEnum.java
index e8bdb5d2f1069a23d67a6e2418122444aac38441..c695fd951200cb4aa40e00a5fac6eaa6576450bf 100644
--- a/attendance-performance-manager/src/main/java/com/mortals/xhx/common/code/ErrorStatusEnum.java
+++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/common/code/ErrorStatusEnum.java
@@ -12,7 +12,9 @@ public enum ErrorStatusEnum {
     缂哄崱(0, "缂哄崱"),
     鏃╅€€(1, "鏃╅€€"),
     杩熷埌(2, "杩熷埌"),
-    姝e父(3, "姝e父");
+    姝e父(3, "姝e父"),
+    浜嬪亣鍗婂ぉ(4, "浜嬪亣鍗婂ぉ"),
+    浜嬪亣鍏ㄥぉ(5, "浜嬪亣鍏ㄥぉ");
 
     private Integer value;
     private String desc;
diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/AttendanceRecordErrorEntity.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/AttendanceRecordErrorEntity.java
index 0c6c43705e85079938fbb071d7fb33b62f83bdcc..c5b0c416f3c6ca9c000e19fa6cb79d09f5303723 100644
--- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/AttendanceRecordErrorEntity.java
+++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/model/AttendanceRecordErrorEntity.java
@@ -29,10 +29,12 @@ public class AttendanceRecordErrorEntity extends AttendanceRecordErrorVo {
     /**
      * 鍛樺伐濮撳悕
      */
+    @Excel(name = "鍛樺伐濮撳悕",sort = 1)
     private String staffName;
     /**
      * 宸ュ彿
      */
+    @Excel(name = "宸ュ彿",sort = 2)
     private String workNum;
     /**
      * 鎵€灞為儴闂�
@@ -41,6 +43,7 @@ public class AttendanceRecordErrorEntity extends AttendanceRecordErrorVo {
     /**
      * 鎵€灞為儴闂ㄥ悕绉�
      */
+    @Excel(name = "鎵€灞為儴闂�",sort = 4)
     private String deptName;
     /**
      * 鑱屼綅ID
@@ -57,6 +60,7 @@ public class AttendanceRecordErrorEntity extends AttendanceRecordErrorVo {
     /**
      * 鎵€灞炶€冨嫟缁勫悕绉�
      */
+    @Excel(name = "鎵€灞炶€冨嫟缁�",sort = 5)
     private String attendanceGroupName;
     /**
      * 鐝ID
@@ -71,18 +75,22 @@ public class AttendanceRecordErrorEntity extends AttendanceRecordErrorVo {
      */
     @JsonFormat(pattern = "HH:mm")
     @JSONField(format = "HH:mm")
+    @Excel(name = "涓婁笅鐝椂闂�",sort = 9,dateFormat = "HH:mm")
     private Date goOffDateTime;
     /**
      * 寮傚父鏃堕棿
      */
+    @Excel(name = "寮傚父鏃堕棿",sort = 7, width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
     private Date errorDateTime;
     /**
      * 瀹為檯鎵撳崱鏃堕棿
      */
+    @Excel(name = "瀹為檯鎵撳崱鏃堕棿",sort = 10, width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
     private Date actualAttendanceDateTime;
     /**
      * 澶勭悊鏃堕棿
      */
+    @Excel(name = "澶勭悊鏃堕棿",sort = 11, width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
     private Date operDateTime;
     /**
      * 澶勭悊浜�
@@ -91,14 +99,17 @@ public class AttendanceRecordErrorEntity extends AttendanceRecordErrorVo {
     /**
      * 寮傚父鐘舵€�(0.缂哄崱,1.鏃╅€€,2.缂哄崱)
      */
+    @Excel(name = "寮傚父鐘舵€�",sort = 6,readConverterExp = "0=缂哄崱,1=鏃╅€€,2=杩熷埌,3=姝e父,4=浜嬪亣鍗婂ぉ,5=浜嬪亣鍏ㄥぉ")
     private Integer errorStatus;
     /**
      * 澶勭悊鐘舵€�(0.鏈鐞�,1.宸插鐞�)
      */
+    @Excel(name = "澶勭悊鐘舵€�",sort = 12,readConverterExp = "0=鏈鐞�,1=宸插鐞�")
     private Integer processStatus;
     /**
      * 澶勭悊缁撴灉
      */
+    @Excel(name = "澶勭悊缁撴灉",sort = 8,readConverterExp = "0=缂哄崱,1=鏃╅€€,2=杩熷埌,3=姝e父,4=浜嬪亣鍗婂ぉ,5=浜嬪亣鍏ㄥぉ")
     private String processResult;
     /**
      * 澶囨敞
@@ -111,6 +122,7 @@ public class AttendanceRecordErrorEntity extends AttendanceRecordErrorVo {
     /**
      * 鎵€灞炲ぇ鍘呭悕绉�
      */
+    @Excel(name = "鎵€灞炲ぇ鍘�",sort = 3)
     private String salaName;
     @Override
     public int hashCode() {
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 faf8781d20fcca52d7ac7fae8935151e96319531..54320d0063cee431f52ec51a8ec5b2621f9f1a6b 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
@@ -335,6 +335,10 @@ public class AttendanceRecordErrorServiceImpl extends AbstractCRUDServiceImpl<At
             }
         } else if (ErrorStatusEnum.缂哄崱.getValue() == DataUtil.converStr2Int(entity.getProcessResult(), 3)) {
             ruleCode = "ATTEND1007";
+        } else if (ErrorStatusEnum.浜嬪亣鍗婂ぉ.getValue() == DataUtil.converStr2Int(entity.getProcessResult(), 4)) {
+            ruleCode = "ATTEND1010";
+        } else if (ErrorStatusEnum.浜嬪亣鍏ㄥぉ.getValue() == DataUtil.converStr2Int(entity.getProcessResult(), 5)) {
+            ruleCode = "ATTEND1011";
         }
         return ruleCode;
     }
diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceStatController.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceStatController.java
index 2bb26dff38948351f4c473d5b512bdd009642bb2..7661c71371bd0871267ca2601804096a25155cba 100644
--- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceStatController.java
+++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceStatController.java
@@ -111,6 +111,10 @@ public class AttendanceStatController extends BaseCRUDJsonBodyMappingController<
         String busiDesc = "鎵ц鑰冨嫟姹囨€讳换鍔�";
         int code = 1;
         try {
+            String verify = cacheService.get(SUMMARY_TASK_KEY);
+            if(StringUtils.isNotEmpty(verify)&&verify.equals("true")){
+                throw new AppException("姹囨€讳换鍔℃鍦ㄦ墽琛岋紝璇峰嬁閲嶅鎿嶄綔");
+            }
             if (StringUtils.isNotEmpty(query.getSummaryTimeStart()) && StringUtils.isNotEmpty(query.getSummaryTimeEnd())) {
                 List<String> dateList = getDatesBetween(query.getSummaryTimeStart(), query.getSummaryTimeEnd());
                 for (String day : dateList) {
@@ -121,7 +125,7 @@ public class AttendanceStatController extends BaseCRUDJsonBodyMappingController<
             } else {
                 cacheService.lpush(KEY_ATTENDANCE_STAT_CACHE,query);
             }
-
+            cacheService.set(SUMMARY_TASK_KEY,"true",900);     //15鍒嗛挓杩囨湡
             model.put("message_info", "寮€濮嬫墽琛岃€冨嫟姹囨€�,璇风◢鍚庢煡鐪�");
         } catch (Exception var9) {
             code = -1;
diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/perform/service/impl/PerformAttendRecordServiceImpl.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/perform/service/impl/PerformAttendRecordServiceImpl.java
index 823c96afb9772d80f23bfb38dfc3d3e59e72d7a8..5473ab5edf006d255b999475c43a11fec6aee4e0 100644
--- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/perform/service/impl/PerformAttendRecordServiceImpl.java
+++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/perform/service/impl/PerformAttendRecordServiceImpl.java
@@ -266,6 +266,12 @@ public class PerformAttendRecordServiceImpl extends AbstractCRUDServiceImpl<Perf
         if (ObjectUtils.isEmpty(performAttendRecordEntity)) {
             this.save(recordEntity);
         } else {
+            if(performAttendRecordEntity.getRuleId().longValue()!=recordEntity.getRuleId().longValue()){
+                Long[] ids = new Long[1];
+                ids[0]=performAttendRecordEntity.getId();
+                this.remove(ids,null);
+                this.save(recordEntity);
+            }
             log.info("宸茬粡瀛樺湪鑰冨嫟璁板綍锛屾棤闇€閲嶅娣诲姞锛�");
         }
         //   this.save(recordEntity);
diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/web/StaffPerformSummaryController.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/web/StaffPerformSummaryController.java
index 27632f9225ad667cb8111759ddc01258c6d1a861..be6ad2c332052936e31b66ec5de00ac1beb554bd 100644
--- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/web/StaffPerformSummaryController.java
+++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/web/StaffPerformSummaryController.java
@@ -66,6 +66,7 @@ public class StaffPerformSummaryController extends BaseCRUDJsonBodyMappingContro
     @Autowired
     private ICacheService cacheService;
 
+    private static String SUMMARY_TASK_KEY = "staffPerformSummaryTask:run";
 
     public StaffPerformSummaryController() {
         super.setModuleDesc("鍛樺伐缁╂晥缁熻");
@@ -125,7 +126,10 @@ public class StaffPerformSummaryController extends BaseCRUDJsonBodyMappingContro
         String busiDesc = "鎵ц缁╂晥姹囨€讳换鍔�";
         int code = 1;
         try {
-
+            String verify = cacheService.get(SUMMARY_TASK_KEY);
+            if(StringUtils.isNotEmpty(verify)&&verify.equals("true")){
+                throw new AppException("姹囨€讳换鍔℃鍦ㄦ墽琛岋紝璇峰嬁閲嶅鎿嶄綔");
+            }
             if(StringUtils.isNotEmpty(query.getCheckTimeStart())){
                 Date date = DateUtils.StrToDateTime(query.getCheckTimeStart());
                 Calendar calendar = Calendar.getInstance();
@@ -147,8 +151,8 @@ public class StaffPerformSummaryController extends BaseCRUDJsonBodyMappingContro
                 condition.put("month",month);
                 this.service.getDao().update(staffPerformSummaryEntity,condition);
             }
-
             cacheService.lpush(KEY_CHECK_SUMMARY_CACHE,query);
+            cacheService.set(SUMMARY_TASK_KEY,"true",900);     //15鍒嗛挓杩囨湡
             model.put("message_info", "寮€濮嬫墽琛岀哗鏁堟眹鎬�,璇风◢鍚庢煡鐪�");
         } catch (Exception var9) {
             code = -1;
diff --git a/db/add.sql b/db/add.sql
index a2a50a4a0dee47594a0f31b2c787c23705e513b1..815eef87b43fe759e9beeeec06e9c2a3f9c58f06 100644
--- a/db/add.sql
+++ b/db/add.sql
@@ -1328,3 +1328,6 @@ ADD COLUMN `processTime` datetime      COMMENT '澶勭悊鏃堕棿' AFTER `processStat
 ADD COLUMN `processPerson` varchar(128)      COMMENT '澶勭悊浜哄憳' AFTER `processTime`,
 ADD KEY `appealPerson` (`appealPerson`) USING BTREE;
 
+--2024-07-08
+INSERT INTO `mortals_xhx_perform_rules` (`ruleCode`, `categoryId`, `categoryName`, `name`, `content`, `subAddType`, `score`, `assoOwner`, `ownerScore`, `remark`, `type`, `createUserId`, `createTime`, `updateUserId`, `updateTime`) VALUES ('ATTEND1010', '1', '', '浜嬪亣鍗婂ぉ', '浜嬪亣鍗婂ぉ', '2', '0.5', '0', '0.00', '', '1', '1', NOW(), NULL, NULL);
+INSERT INTO `mortals_xhx_perform_rules` (`ruleCode`, `categoryId`, `categoryName`, `name`, `content`, `subAddType`, `score`, `assoOwner`, `ownerScore`, `remark`, `type`, `createUserId`, `createTime`, `updateUserId`, `updateTime`) VALUES ('ATTEND1011', '1', '', '浜嬪亣鍏ㄥぉ', '浜嬪亣鍏ㄥぉ', '2', '1', '0', '0.00', '', '1', '1', NOW(), NULL, NULL);