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) + "姣....");