diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/AttendanceSummaryTaskImpl.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/AttendanceSummaryTaskImpl.java
index 99f6113bad41ab28b62e4761f2d3777170defb90..3092d8dfffa1917d6e5f69b040a3c48e209bf56a 100644
--- a/attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/AttendanceSummaryTaskImpl.java
+++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/AttendanceSummaryTaskImpl.java
@@ -42,6 +42,7 @@ public class AttendanceSummaryTaskImpl  implements ITaskExcuteService {
         query.setSummaryTimeEnd(DateUtils.getStrDate(now.getTime()));
         now.add(Calendar.DAY_OF_MONTH, -19);
         query.setSummaryTimeStart(DateUtils.getStrDate(now.getTime()));
+        log.info("鑰冨嫟姹囨€绘椂闂�:"+DateUtils.getDateTime(now.getTime(),"yyyy-MM-dd HH:mm:ss"));
         //閲嶆柊姹囨€绘渶杩�20澶╃殑鑰冨嫟鏁版嵁
         cacheService.lpush(KEY_ATTENDANCE_STAT_CACHE,query);
     }
diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceStatServiceImpl.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceStatServiceImpl.java
index a7ba2b2f1d0b9b63eeaa5178db92a2e94ae289fe..3d6857c6797b2d13b227e4cead94707b8e4e7062 100644
--- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceStatServiceImpl.java
+++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceStatServiceImpl.java
@@ -40,10 +40,7 @@ import org.springframework.util.ObjectUtils;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
-import java.util.Arrays;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 
 /**
  * AttendanceStatService
@@ -221,6 +218,8 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
             //姹囨€诲綋鍓嶆棩鏈熷亣鏈熶綑棰�
             List<VacationBalanceSummaryVo> vacationBalanceSummaryVoList = attendanceSummaryDao.getVacationBalanceSummary(query);
             if (CollectionUtils.isNotEmpty(vacationBalanceSummaryVoList)) {
+                List<AttendanceStatEntity> insertList = new ArrayList<>();
+                List<AttendanceStatEntity> updateList = new ArrayList<>();
                 for (VacationBalanceSummaryVo item : vacationBalanceSummaryVoList) {
                     if(item.getStatus() == StaffSatusEnum.绂昏亴.getValue()){
                         //绂昏亴鐘舵€佹椂鍒ゆ柇褰撳墠姹囨€绘棩鏈熸槸鍚﹀湪绂昏亴鍚�
@@ -251,19 +250,27 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
                         attendanceStatEntity.setCreateTime(new Date());
                         attendanceStatEntity.setCreateUserId(1l);
                         attendanceStatEntity.setGoTimes(1);   //榛樿褰撳ぉ鍏ㄥ嫟
-                        this.dao.insert(attendanceStatEntity);
+                        //this.dao.insert(attendanceStatEntity);
+                        insertList.add(attendanceStatEntity);
                     } else {
                         //BeanUtils.copyProperties(item, temp, BeanUtil.getNullPropertyNames(item));
-                        temp.setUpdateTime(new Date());
-                        this.dao.update(temp);
+                        //temp.setUpdateTime(new Date());
+                        //this.dao.update(temp);
+                        //updateList.add(temp);
                     }
                 }
+                if(insertList.size()>0){
+                    this.dao.insertBatch(insertList);
+                }
             }
             log.info("瀹屾垚姹囨€诲綋鍓嶆棩鏈熷亣鏈熶綑棰�.....");
 
             //姹囨€诲綋鍓嶆棩鏈熷紓甯歌€冨嫟
             List<ErrorSummaryVo> errorSummaryVoList = attendanceSummaryDao.getErrorSummary(query);
             if (CollectionUtils.isNotEmpty(errorSummaryVoList)) {
+                List<AttendanceStatEntity> updateList = new ArrayList<>();
+                List<AttendanceStaffStatEntity> addStaffStat = new ArrayList<>();
+                List<AttendanceStaffStatEntity> updateStaffStat = new ArrayList<>();
                 for (ErrorSummaryVo item : errorSummaryVoList) {
                     if(item.getStatus() == StaffSatusEnum.绂昏亴.getValue()){
                         //绂昏亴鐘舵€佹椂鍒ゆ柇褰撳墠姹囨€绘棩鏈熸槸鍚﹀湪绂昏亴鍚�
@@ -285,7 +292,8 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
                         if (item.getMorningTimes() > 0) {
                             temp.setNonCompliancePunch(new BigDecimal(item.getMorningTimes()));
                         }
-                        this.dao.update(temp);
+                        //this.dao.update(temp);
+                        updateList.add(temp);
                     }
                     String attendanceSummary = "";
                     if (item.getMorningTimes() > 0) {
@@ -322,18 +330,32 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
                     if (staffStatTemp != null) {
                         staffStat.setId(staffStatTemp.getId());
                         staffStat.setUpdateTime(new Date());
-                        attendanceStaffStatService.update(staffStat);
+                        //attendanceStaffStatService.update(staffStat);
+                        updateStaffStat.add(staffStat);
                     } else {
                         staffStat.setCreateTime(DateUtils.StrToDate(query.getSummaryTime()));
                         staffStat.setCreateUserId(1l);
-                        attendanceStaffStatService.save(staffStat);
+                        //attendanceStaffStatService.save(staffStat);
+                        addStaffStat.add(staffStat);
                     }
                 }
+                if(updateList.size()>0){
+                    this.dao.updateBatch(updateList);
+                }
+                if(addStaffStat.size()>0){
+                    attendanceStaffStatService.save(addStaffStat);
+                }
+                if(updateStaffStat.size()>0){
+                    attendanceStaffStatService.update(updateStaffStat);
+                }
             }
             log.info("瀹屾垚姹囨€诲綋鍓嶆棩鏈熷紓甯歌€冨嫟.....");
             //姹囨€诲綋鍓嶆棩鏈熻鍋囨儏鍐�
             List<LeaveSummaryVo> leaveSummaryVoList = attendanceSummaryDao.getLeaveSummary(query);
             if (CollectionUtils.isNotEmpty(leaveSummaryVoList)) {
+                List<AttendanceStatEntity> updateList = new ArrayList<>();
+                List<AttendanceStaffStatEntity> addStaffStat = new ArrayList<>();
+                List<AttendanceStaffStatEntity> updateStaffStat = new ArrayList<>();
                 BigDecimal day = new BigDecimal(3600 * 8); //涓€澶╂寜8灏忔椂鎶樼畻
                 BigDecimal oneDay = new BigDecimal(1);
                 for (LeaveSummaryVo item : leaveSummaryVoList) {
@@ -453,7 +475,8 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
                                 temp.setOtherDays(leaveTime);
                                 break;
                         }
-                        this.dao.update(temp);
+                        //this.dao.update(temp);
+                        updateList.add(temp);
                     }
 
                     AttendanceStaffStatEntity staffStat = new AttendanceStaffStatEntity();
@@ -464,13 +487,24 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
                     if (staffStatTemp != null) {
                         staffStat.setId(staffStatTemp.getId());
                         staffStat.setUpdateTime(new Date());
-                        attendanceStaffStatService.update(staffStat);
+                        //attendanceStaffStatService.update(staffStat);
+                        updateStaffStat.add(staffStat);
                     } else {
                         staffStat.setCreateTime(DateUtils.StrToDate(query.getSummaryTime()));
                         staffStat.setCreateUserId(1l);
-                        attendanceStaffStatService.save(staffStat);
+                        //attendanceStaffStatService.save(staffStat);
+                        addStaffStat.add(staffStat);
                     }
                 }
+                if(updateList.size()>0){
+                    this.dao.updateBatch(updateList);
+                }
+                if(addStaffStat.size()>0){
+                    attendanceStaffStatService.save(addStaffStat);
+                }
+                if(updateStaffStat.size()>0){
+                    attendanceStaffStatService.update(updateStaffStat);
+                }
             }
             log.info("瀹屾垚姹囨€诲綋鍓嶆棩鏈熻鍋囨儏鍐�.....");
             log.info("鏃ユ湡:" + query.getSummaryTime() + ",鑰冨嫟姹囨€绘墽琛屽畬鎴�,鑰楁椂:" + (System.currentTimeMillis() - currentTime) + "姣....");