From 929c6698f4d7598997fc233e09c39c3bdce9fcf8 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期四, 14 八月 2025 10:23:15 +0800
Subject: [PATCH] 判断合格绝对值的问题
---
performance-server/src/main/java/com/yuanchu/mom/service/impl/PerformanceShiftServiceImpl.java | 71 ++++++++++++++++++++++++++---------
1 files changed, 52 insertions(+), 19 deletions(-)
diff --git a/performance-server/src/main/java/com/yuanchu/mom/service/impl/PerformanceShiftServiceImpl.java b/performance-server/src/main/java/com/yuanchu/mom/service/impl/PerformanceShiftServiceImpl.java
index f281f2d..8d6978e 100644
--- a/performance-server/src/main/java/com/yuanchu/mom/service/impl/PerformanceShiftServiceImpl.java
+++ b/performance-server/src/main/java/com/yuanchu/mom/service/impl/PerformanceShiftServiceImpl.java
@@ -55,29 +55,44 @@
@Override
public void performanceShiftAdd(PerformanceShiftAddDto performanceShiftAddDto) {
List<PerformanceShift> list = new ArrayList<>();
+ LocalDateTime startWeek = performanceShiftAddDto.getStartWeek();
+ LocalDateTime endWeek = performanceShiftAddDto.getEndWeek();
+
+
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String formattedDateTime = performanceShiftAddDto.getStartWeek().format(formatter);
String[] splitUserId = performanceShiftAddDto.getUserId().split(",");
for (String userId : splitUserId) {
- boolean exists = baseMapper.exists(Wrappers.<PerformanceShift>lambdaQuery()
- .eq(PerformanceShift::getWorkTime, formattedDateTime)
- .eq(PerformanceShift::getUserId, userId));
- // 濡傛灉涓嶅瓨鍦ㄦ坊鍔犳暟鎹�
- if (!exists) {
- LocalDate firstDayOfMonth = performanceShiftAddDto.getEndWeek().toLocalDate().withDayOfMonth(1);
- LocalDate lastDayOfMonth = performanceShiftAddDto.getEndWeek().toLocalDate().with(TemporalAdjusters.lastDayOfMonth());
- List<LocalDateTime> localDateTimesBetween = getLocalDateTimesBetween(firstDayOfMonth.atStartOfDay(), lastDayOfMonth.atStartOfDay());
- localDateTimesBetween.forEach(i -> {
- PerformanceShift performanceShift = new PerformanceShift();
- performanceShift.setUserId(Integer.valueOf(userId));
- performanceShift.setWorkTime(i);
- performanceShift.setShift("");
- list.add(performanceShift);
- if (list.size() >= 1000) {
- baseMapper.insertBatchSomeColumn(list);
- list.clear();
- }
- });
+ //鍒ゆ柇鏄惁璺ㄦ湀
+ boolean isMonth = startWeek.getMonthValue() != endWeek.getMonthValue();
+ if (isMonth){
+ //濡傛灉璺ㄦ湀,鍒欎袱涓湀閮藉垽鏂竴涓嬬湅鏁版嵁搴撴槸鍝釜鏈堜唤鐨勬暟鎹病鏈�
+ boolean exists1 = baseMapper.exists(Wrappers.<PerformanceShift>lambdaQuery()
+ .eq(PerformanceShift::getWorkTime, startWeek)
+ .eq(PerformanceShift::getUserId, userId));
+ boolean exists2 = baseMapper.exists(Wrappers.<PerformanceShift>lambdaQuery()
+ .eq(PerformanceShift::getWorkTime, endWeek)
+ .eq(PerformanceShift::getUserId, userId));
+ if (!exists1 && !exists2){
+ //涓や釜鏈堥兘涓嶅瓨鍦ㄦ暟鎹�
+ list = saveMonth(performanceShiftAddDto.getStartWeek(), userId, list);
+ list = saveMonth(performanceShiftAddDto.getEndWeek(), userId, list);
+ }else if (!exists1 && exists2){
+ //寮�濮嬬殑鏈堜唤涓嶅瓨鍦ㄦ暟鎹�
+ list = saveMonth(performanceShiftAddDto.getStartWeek(), userId, list);
+ }else if (exists1 && !exists2){
+ //缁撴潫鐨勬湀浠戒笉瀛樺湪鏁版嵁
+ list = saveMonth(performanceShiftAddDto.getEndWeek(), userId, list);
+ }
+ }else {
+ //涓嶈法鏈�
+ boolean exists = baseMapper.exists(Wrappers.<PerformanceShift>lambdaQuery()
+ .in(PerformanceShift::getWorkTime, formattedDateTime)
+ .eq(PerformanceShift::getUserId, userId));
+ // 濡傛灉涓嶅瓨鍦ㄦ坊鍔犳暟鎹�
+ if (!exists) {
+ list = saveMonth(performanceShiftAddDto.getEndWeek(), userId, list);
+ }
}
}
if (!list.isEmpty()) {
@@ -101,6 +116,24 @@
}
}
+ private List<PerformanceShift> saveMonth (LocalDateTime week,String userId,List<PerformanceShift> list){
+ LocalDate firstDayOfMonth = week.toLocalDate().withDayOfMonth(1);
+ LocalDate lastDayOfMonth = week.toLocalDate().with(TemporalAdjusters.lastDayOfMonth());
+ List<LocalDateTime> localDateTimesBetween = getLocalDateTimesBetween(firstDayOfMonth.atStartOfDay(), lastDayOfMonth.atStartOfDay());
+ localDateTimesBetween.forEach(i -> {
+ PerformanceShift performanceShift = new PerformanceShift();
+ performanceShift.setUserId(Integer.valueOf(userId));
+ performanceShift.setWorkTime(i);
+ performanceShift.setShift("");
+ list.add(performanceShift);
+ if (list.size() >= 1000) {
+ baseMapper.insertBatchSomeColumn(list);
+ list.clear();
+ }
+ });
+ return list;
+ }
+
@Override
public Map<String, Object> performanceShiftPage(Page<Object> page, String time, String userName, String laboratory) {
//鏌ヨ褰撳墠鐧诲綍浜哄憳鐨勬灦鏋�
--
Gitblit v1.9.3