From 94adc6f8c317f26da2f1f3b65224ac262670bdd8 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期五, 31 五月 2024 17:15:52 +0800
Subject: [PATCH] 工时统计的原始工时

---
 performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryCorrectionHoursServiceImpl.java |   51 +++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 43 insertions(+), 8 deletions(-)

diff --git a/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryCorrectionHoursServiceImpl.java b/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryCorrectionHoursServiceImpl.java
index 19bcdcf..d91c8f0 100644
--- a/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryCorrectionHoursServiceImpl.java
+++ b/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryCorrectionHoursServiceImpl.java
@@ -21,10 +21,12 @@
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
 /**
@@ -50,10 +52,11 @@
     @Resource
     PowerMapper powerMapper;
 
+
     @Override
     public Map<String, Object> selectAuxiliaryCorrectionHours(Page page, AuxiliaryCorrectionHoursDto auxiliaryCorrectionHoursDto) {
         Map<String, Object> map = new HashMap<>();
-        List<Integer> ids = null;
+        List<Integer> ids = new ArrayList<>();
         map.put("head", PrintChina.printChina(AuxiliaryCorrectionHoursDto.class));
         //鍒ゆ柇缁勯暱,缁勫憳,绠$悊鍛樻潈闄�
         Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectAuxiliaryCorrectionHours");
@@ -71,12 +74,29 @@
         } else {
             //鏄粍闀�
             //鏌ヨ缁勯暱涓嬬殑缁勫憳
-            List<User> users = userMapper.selectList(Wrappers.<User>lambdaQuery().like(User::getDepartLimsId, user.getDepartLimsId()));
+            List<User> users = userMapper.selectList(Wrappers.<User>lambdaQuery()
+                    .like(User::getDepartLimsId, user.getDepartLimsId())
+                    .eq(User::getState, 1));
             if (ObjectUtils.isNotEmpty(users)) {
-                ids = users.stream().map(User::getId).distinct().collect(Collectors.toList());
+                ids.addAll(users.stream().map(User::getId).distinct().collect(Collectors.toList()));
             }
         }
-        map.put("body", auxiliaryCorrectionHoursMapper.selectAuxiliaryCorrectionHours(page, QueryWrappers.queryWrappers(auxiliaryCorrectionHoursDto),ids));
+        String departLims = auxiliaryCorrectionHoursDto.getDepartLims();
+        auxiliaryCorrectionHoursDto.setDepartLims(null);
+        if (ObjectUtils.isNotEmpty(departLims)) {
+            //鍏堟ā绯婃煡璇㈠嚭鏉d
+            List<Integer> ides = auxiliaryCorrectionHoursMapper.selDepartLimsByName(departLims);
+            for (Integer ide : ides) {
+                List<User> users = userMapper.selectList(Wrappers.<User>lambdaQuery()
+                        .like(User::getDepartLimsId, ide)
+                        .eq(User::getState, 1));
+                if (ObjectUtils.isNotEmpty(users)) {
+                    ids.clear();
+                    ids.addAll(users.stream().map(User::getId).distinct().collect(Collectors.toList()));
+                }
+            }
+        }
+        map.put("body", auxiliaryCorrectionHoursMapper.selectAuxiliaryCorrectionHours(page, QueryWrappers.queryWrappers(auxiliaryCorrectionHoursDto).eq("month", auxiliaryCorrectionHoursDto.getMonth()), ids));
         return map;
     }
 
@@ -87,17 +107,32 @@
             return;
         }
         List<AuxiliaryCorrectionHours> auxiliaryCorrectionHoursList = new ArrayList<>();
+        List<AuxiliaryCorrectionHours> auxiliaryCorrectionHoursList1 = new ArrayList<>();
         for (AuxiliaryCorrectionHoursDto auxiliaryCorrectionHoursDto : list) {
             AuxiliaryCorrectionHours auxiliaryCorrectionHours = new AuxiliaryCorrectionHours();
             User user = userMapper.selectOne(Wrappers.<User>lambdaQuery().eq(User::getName, auxiliaryCorrectionHoursDto.getName()));
-            if (ObjectUtils.isEmpty(user)){
-                throw new RuntimeException("绯荤粺娌℃湁鏌ュ埌"+auxiliaryCorrectionHoursDto.getName()+"杩欎釜鐢ㄦ埛淇℃伅!");
+            if (ObjectUtils.isEmpty(user)) {
+                throw new RuntimeException("绯荤粺娌℃湁鏌ュ埌" + auxiliaryCorrectionHoursDto.getName() + "杩欎釜鐢ㄦ埛淇℃伅!");
             }
-            BeanUtils.copyProperties(auxiliaryCorrectionHoursDto,auxiliaryCorrectionHours);
+            String regex = "\\d{4}-\\d{2}";
+            if (Pattern.matches(regex,auxiliaryCorrectionHours.getMonth())) {
+                throw new RuntimeException(auxiliaryCorrectionHoursDto.getMonth() + "鏍煎紡涓嶆纭�,鏈堜唤鏍煎紡搴斾负yyyy-MM");
+            }
+            BeanUtils.copyProperties(auxiliaryCorrectionHoursDto, auxiliaryCorrectionHours);
             auxiliaryCorrectionHours.setNameUser(user.getId());
-            auxiliaryCorrectionHoursList.add(auxiliaryCorrectionHours);
+            AuxiliaryCorrectionHours auxiliaryCorrectionHours1 = auxiliaryCorrectionHoursMapper.selectOne(Wrappers.<AuxiliaryCorrectionHours>lambdaQuery()
+                    .eq(AuxiliaryCorrectionHours::getNameUser, user.getId())
+                    .eq(AuxiliaryCorrectionHours::getType, auxiliaryCorrectionHours.getType())
+                    .eq(AuxiliaryCorrectionHours::getMonth, auxiliaryCorrectionHours.getMonth()));
+            if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours1)) {
+                auxiliaryCorrectionHoursList1.add(auxiliaryCorrectionHours);
+            } else {
+                auxiliaryCorrectionHoursList.add(auxiliaryCorrectionHours);
+            }
         }
         //鎵归噺鏂板
         saveBatch(auxiliaryCorrectionHoursList);
+        //鎵归噺淇敼
+        updateBatchById(auxiliaryCorrectionHoursList1);
     }
 }

--
Gitblit v1.9.3