Browse Source

bug调整

dzx 8 months ago
parent
commit
55c43e4824

+ 2 - 0
src/main/java/com/xjrsoft/module/attendance/controller/StudentStatisticsController.java

@@ -13,6 +13,7 @@ import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.page.PageOutput;
 import com.xjrsoft.module.attendance.dto.AttendanceStatisticDto;
 import com.xjrsoft.module.attendance.dto.StudentDetailsDto;
+import com.xjrsoft.module.attendance.service.IAttendanceRuleCategoryService;
 import com.xjrsoft.module.attendance.vo.ClassStatisticsVo;
 import com.xjrsoft.module.attendance.vo.StudentStatisticsPageVo;
 import com.xjrsoft.module.base.entity.BaseClass;
@@ -68,6 +69,7 @@ public class StudentStatisticsController {
     private final IStudentLeaveService studentLeaveService;
     private final IBaseClassService classService;
     private final IHolidayDateService holidayDateService;
+    private final IAttendanceRuleCategoryService ruleCategoryService;
 
     @GetMapping(value = "/class-statistics")
     @ApiOperation(value="班级考勤统计")

+ 4 - 0
src/main/java/com/xjrsoft/module/attendance/service/IAttendanceRuleCategoryService.java

@@ -6,7 +6,9 @@ import com.xjrsoft.module.attendance.dto.UpdateAttendanceRuleCategoryDto;
 import com.xjrsoft.module.attendance.entity.AttendanceRuleCategory;
 import com.xjrsoft.module.attendance.entity.AttendanceRuleDetails;
 import com.xjrsoft.module.attendance.vo.AttendanceRuleDetailsUserVo;
+import com.xjrsoft.module.attendance.vo.TimeRangeVo;
 
+import java.time.LocalDateTime;
 import java.util.List;
 import java.util.Map;
 
@@ -57,4 +59,6 @@ public interface IAttendanceRuleCategoryService extends MPJBaseService<Attendanc
 
     Map<Long, AttendanceRuleDetailsUserVo> getTeacherTodyRuleByUserId(List<Long> teacherIds);
 
+    List<TimeRangeVo> getAllTimeRange(LocalDateTime startTime, LocalDateTime endTime);
+
 }

+ 21 - 0
src/main/java/com/xjrsoft/module/attendance/service/impl/AttendanceRuleCategoryServiceImpl.java

@@ -20,6 +20,7 @@ import com.xjrsoft.module.attendance.mapper.AttendanceRuleDetailsMapper;
 import com.xjrsoft.module.attendance.mapper.AttendanceUserRelationMapper;
 import com.xjrsoft.module.attendance.service.IAttendanceRuleCategoryService;
 import com.xjrsoft.module.attendance.vo.AttendanceRuleDetailsUserVo;
+import com.xjrsoft.module.attendance.vo.TimeRangeVo;
 import com.xjrsoft.module.concat.service.IXjrUserService;
 import com.xjrsoft.module.organization.entity.UserDeptRelation;
 import com.xjrsoft.module.student.entity.BaseStudent;
@@ -33,6 +34,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.time.DayOfWeek;
 import java.time.LocalDateTime;
+import java.time.temporal.ChronoUnit;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
@@ -493,4 +495,23 @@ public class AttendanceRuleCategoryServiceImpl extends MPJBaseServiceImpl<Attend
         }
         return dataMap;
     }
+
+    @Override
+    public List<TimeRangeVo> getAllTimeRange(LocalDateTime startTime, LocalDateTime endTime) {
+        long between = ChronoUnit.DAYS.between(startTime, endTime);
+        List<String> dayOfWeeks = new ArrayList<>();
+        Map<String, LocalDateTime> timeMap = new HashMap<>();
+        for (int i = 0; i <= between; i ++) {
+            String name = startTime.plusDays(i).getDayOfWeek().name();
+            dayOfWeeks.add(name);
+            timeMap.put(name, startTime.plusDays(i));
+        }
+
+        List<AttendanceRuleDetails> detailsList = detailsMapper.selectList(
+                new QueryWrapper<AttendanceRuleDetails>().lambda()
+                        .in(AttendanceRuleDetails::getDateType, dayOfWeeks)
+        );
+
+        return null;
+    }
 }

+ 26 - 0
src/main/java/com/xjrsoft/module/attendance/vo/TimeRangeVo.java

@@ -0,0 +1,26 @@
+package com.xjrsoft.module.attendance.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+* @title: 考勤时间段
+* @Author dzx
+* @Date: 2024年6月17日
+* @Version 1.0
+*/
+@Data
+public class TimeRangeVo {
+
+    @ApiModelProperty("开始时间")
+    private LocalDateTime startTime;
+
+    @ApiModelProperty("结束时间")
+    private LocalDateTime endTime;
+
+    @ApiModelProperty("时段(1=上午 2=下午 3=晚上)")
+    private Integer timePeriod;
+
+}

+ 3 - 0
src/main/java/com/xjrsoft/module/concat/controller/ConcatController.java

@@ -1,6 +1,7 @@
 package com.xjrsoft.module.concat.controller;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.xjrsoft.common.enums.DeleteMark;
@@ -64,6 +65,8 @@ public class ConcatController {
                 .leftJoin("xjr_user_role_relation t3 ON t.id = t3.user_id")
                 .leftJoin("xjr_role t4 ON t4.id = t3.role_id")
                 .eq("t4.id", 2)
+                .eq(StrUtil.isNotEmpty(dto.getName()), XjrUser::getName, dto.getName())
+                .eq(StrUtil.isNotEmpty(dto.getMobile()), XjrUser::getMobile, dto.getMobile())
                 .eq(XjrUser::getDeleteMark, DeleteMark.NODELETE.getCode());
         List<XjrUser> userList = xjrUserService.selectJoinList(XjrUser.class, wrapper);
         for (XjrUser user : userList) {

+ 8 - 0
src/main/java/com/xjrsoft/module/job/AttendanceMessageTask.java

@@ -107,6 +107,12 @@ public class AttendanceMessageTask {
         List<AttendanceRuleDetails> ruleDetails = ruleCategoryService.getTodayRules();
         //获取最近的时间
         LocalDateTime recentlyTime = getRecentlyTime(ruleDetails, now);
+        if(now.isBefore(recentlyTime)){
+            log.info("未到时间,不需要提醒");
+            return;
+        }
+
+
         String wechatTemplate = weChatUtil.getAttendanceMessageTemplate();
         WechatMessageLog log = wechatMessageLogService.getOne(
                 new QueryWrapper<WechatMessageLog>().lambda()
@@ -174,6 +180,8 @@ public class AttendanceMessageTask {
                         new MPJLambdaWrapper<TeacherOutInRecord>()
                                 .le(TeacherOutInRecord::getRecordTime, recentlyTime)
                                 .eq(TeacherOutInRecord::getStatus, 1)
+                                .eq("DATE_FORMAT(record_time, '%Y-%m-%d')" , recentlyTime.toLocalDate())
+                                .groupBy(TeacherOutInRecord::getUserId)
                 );
 
                 WeChatSendMessageDto weChatSendMessageDto = new WeChatSendMessageDto();

+ 1 - 1
src/main/java/com/xjrsoft/module/student/controller/ConsumptionController.java

@@ -160,7 +160,7 @@ public class ConsumptionController {
     @GetMapping(value = "/fee-detail")
     @ApiOperation(value="学生缴费的详情")
     @SaCheckPermission("consumption:detail")
-    public RT<List<FeeDetailListVo>> feeDetail(@RequestParam String studentcode, @RequestParam String beltcode){
+    public RT<List<FeeDetailListVo>> feeDetail(@RequestParam String studentcode, String beltcode){
         return RT.ok(pbVXsxxsfytbService.getFeeDetail(studentcode, beltcode));
     }
 

+ 12 - 1
src/test/java/com/xjrsoft/module/job/AttendanceMessageTaskTest.java

@@ -86,7 +86,18 @@ class AttendanceMessageTaskTest {
     @Autowired
     private IWechatMessageLogService wechatMessageLogService;
 
-
+    @Test
+    void test3(){
+        LocalDateTime recentlyTime = LocalDateTime.now().withHour(8).withMinute(5).withSecond(0).withNano(0);
+        long outInRecords = teachertOutInRecordService.count(
+                new MPJLambdaWrapper<TeacherOutInRecord>()
+                        .le(TeacherOutInRecord::getRecordTime, recentlyTime)
+                        .eq(TeacherOutInRecord::getStatus, 1)
+                        .eq(true,"DATE_FORMAT(record_time, '%Y-%m-%d')" , recentlyTime.toLocalDate())
+                        .groupBy(TeacherOutInRecord::getUserId)
+        );
+        System.out.println(outInRecords);
+    }
     @Test
     void test2(){
         String  wechatTemplate = "o-KboOcqcJ3YpjPN2xwgM_NcjN-0yzwWlDDXYfTM0Q4";