From a5b1bad21ba279ade3954852a5e281e9086042f0 Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期二, 26 十一月 2024 15:22:52 +0800 Subject: [PATCH] 前端联调修改2.0 --- performance-server/src/main/java/com/yuanchu/mom/service/impl/PerformanceShiftServiceImpl.java | 85 +++++++++++++++++++++++++++++++++--------- 1 files changed, 66 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 91d2ce3..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()) { @@ -99,6 +114,24 @@ .eq(PerformanceShift::getWorkTime, formatterDateTime)); } } + } + + 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 @@ -217,6 +250,20 @@ @Override public IPage<Map<String, Object>> performanceShiftPageYear(Page<Object> page, String time, String userName, String laboratory) { + //鏌ヨ褰撳墠鐧诲綍浜哄憳鐨勬灦鏋� + Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId"); + //鍒ゆ柇鍏ㄩ儴,涓汉,缁勭粐鐨勬潈闄� + User user = userMapper.selectById(userId);//褰撳墠鐧诲綍鐨勪汉 + //鑾峰彇褰撳墠浜烘墍灞炲疄楠屽id + String departLimsId = user.getDepartLimsId(); + if (com.baomidou.mybatisplus.core.toolkit.ObjectUtils.isNotEmpty(departLimsId) && !departLimsId.equals("")) { + String[] split = departLimsId.split(","); + //鏌ヨ瀵瑰簲鏋舵瀯鍚嶇О(閫氫俊瀹為獙瀹�,鐢靛姏瀹為獙瀹�,妫�娴嬪姙) + String departLims = baseMapper.seldepLimsId(Integer.parseInt(split[split.length - 1])); + if (departLims.contains("瀹為獙瀹�")) { + laboratory = departLims; + } + } IPage<Map<String, Object>> mapYearIPage = baseMapper.performanceShiftYear(page, time, userName, laboratory); List<Enums> shiftType = enumService.selectEnumByCategory("鐝绫诲瀷"); mapYearIPage.setRecords(annualAttendanceProcessing(mapYearIPage.getRecords(), shiftType)); -- Gitblit v1.9.3