From a88b06107af8d82e892283a3c097ddbfb1844681 Mon Sep 17 00:00:00 2001 From: Lx <935448346@qq.com> Date: Thu, 7 Aug 2025 09:41:51 +0800 Subject: [PATCH] 0807 --- .../service/IInspectionFileService.java | 1 - .../DriveSchoolCoachClockController.java | 9 ++++++ .../controller/admin/TrainController.java | 8 +++++ .../mapper/DriveSchoolCoachClockMapper.java | 3 ++ .../IDriveSchoolCoachClockService.java | 8 +++++ .../module/train/service/TrainService.java | 1 + .../DriveSchoolCoachClockServiceImpl.java | 31 +++++++++++++++++++ .../train/service/impl/TrainServiceImpl.java | 16 ++++++++++ .../train/DriveSchoolCoachClockMapper.xml | 31 +++++++++++++++++++ .../controller/admin/SysLoginController.java | 2 +- .../framework/web/core/FlowableWebFilter.java | 20 ++++++++++-- .../dal/mysql/user/AdminUserMapper.java | 8 +++++ .../service/auth/AdminAuthServiceImpl.java | 1 + .../system/service/user/AdminUserService.java | 1 + .../service/user/AdminUserServiceImpl.java | 5 +++ 15 files changed, 140 insertions(+), 5 deletions(-) diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/IInspectionFileService.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/IInspectionFileService.java index 56286e73..e9d441f5 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/IInspectionFileService.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/IInspectionFileService.java @@ -68,7 +68,6 @@ public interface IInspectionFileService extends IService { /** * 分页查询 InspectionFile 列表 * - * @param page 分页对象 * @param inspectionFile 查询条件 * @return 分页结果 */ diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/controller/admin/DriveSchoolCoachClockController.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/controller/admin/DriveSchoolCoachClockController.java index 2ca9557e..2d7cca18 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/controller/admin/DriveSchoolCoachClockController.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/controller/admin/DriveSchoolCoachClockController.java @@ -209,4 +209,13 @@ public class DriveSchoolCoachClockController { return success(coachClockService.getClockCarInfoByUserId(userId, carNo)); } + @GetMapping("/errorPage") + @Operation(summary = "获得教练异常打卡记录分页") + public CommonResult> queryErrorClockListPage(DriveSchoolCoachClockVO pageReqVO, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { + Page page = new Page<>(pageNo, pageSize); + return success(coachClockService.queryErrorClockListPage(pageReqVO, page)); + } + } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/controller/admin/TrainController.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/controller/admin/TrainController.java index a0387fe7..ee0bbe58 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/controller/admin/TrainController.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/controller/admin/TrainController.java @@ -253,6 +253,14 @@ public class TrainController { return success(trainService.getTrainStudentList(coachClockId)); } + /** + * 根据教练打卡id,获取对应异常学员列表信息 + */ + @GetMapping("getTrainErrorStudentList") + public CommonResult> getTrainErrorStudentList(@RequestParam(value = "coachClockId") String coachClockId){ + return success(trainService.getTrainErrorStudentList(coachClockId)); + } + /** * 获取学员导出数据列表 */ diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/mapper/DriveSchoolCoachClockMapper.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/mapper/DriveSchoolCoachClockMapper.java index d6d798c4..394f57bd 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/mapper/DriveSchoolCoachClockMapper.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/mapper/DriveSchoolCoachClockMapper.java @@ -63,5 +63,8 @@ public interface DriveSchoolCoachClockMapper extends BaseMapper getClockCarNoByUserId(@Param("userId") Long userId); DriveSchoolCoachClock getClockCarInfoByUserId(@Param("userId") Long userId, @Param("carNo") String carNo); + IPage queryErrorClockListPage(@Param("entity") DriveSchoolCoachClockVO pageReqVO, Page page); + + } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/service/IDriveSchoolCoachClockService.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/service/IDriveSchoolCoachClockService.java index 89914396..b548d07c 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/service/IDriveSchoolCoachClockService.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/service/IDriveSchoolCoachClockService.java @@ -99,4 +99,12 @@ public interface IDriveSchoolCoachClockService extends IService getClockCarNoByUserId(Long userId); DriveSchoolCoachClock getClockCarInfoByUserId(Long userId, String carNo); + /** + * 获得教练异常打卡记录分页 + * @param pageReqVO + * @param page + * @return + */ + IPage queryErrorClockListPage(DriveSchoolCoachClockVO pageReqVO, Page page); + } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/service/TrainService.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/service/TrainService.java index ba876a0d..c59c4c2b 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/service/TrainService.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/service/TrainService.java @@ -98,6 +98,7 @@ public interface TrainService extends IService { * 根据教练打卡id,获取对应学员列表信息 */ List getTrainStudentList(String coachClockId); + List getTrainErrorStudentList(String coachClockId); /** * 获取学员导出数据列表 diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/service/impl/DriveSchoolCoachClockServiceImpl.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/service/impl/DriveSchoolCoachClockServiceImpl.java index 54218dd6..2b47edb1 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/service/impl/DriveSchoolCoachClockServiceImpl.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/service/impl/DriveSchoolCoachClockServiceImpl.java @@ -466,5 +466,36 @@ public class DriveSchoolCoachClockServiceImpl extends ServiceImpl queryErrorClockListPage(DriveSchoolCoachClockVO pageReqVO, Page page) { + String startTime = ""; + String endTime = ""; + if ("more".equals(pageReqVO.getTimeType())) { + if (org.apache.commons.lang3.StringUtils.isNotEmpty(pageReqVO.getStartTimeStr())) { + startTime = pageReqVO.getStartTimeStr(); + } + if (org.apache.commons.lang3.StringUtils.isNotEmpty(pageReqVO.getEndTimeStr())) { + endTime = pageReqVO.getEndTimeStr(); + } + } else if ("month".equals(pageReqVO.getTimeType())) { + //当月 + startTime = DateUtil.format(DateUtil.beginOfMonth(DateUtil.date()), "yyyy-MM-dd"); + endTime = DateUtil.format(DateUtil.endOfMonth(DateUtil.date()), "yyyy-MM-dd"); + } else if ("day".equals(pageReqVO.getTimeType())) { + //当天 + startTime = DateUtil.formatDate(DateUtil.date()); + endTime = DateUtil.formatDate(DateUtil.date()); + } + pageReqVO.setStartTimeStr(startTime); + pageReqVO.setEndTimeStr(endTime); + return driveSchoolCoachClockMapper.queryErrorClockListPage(pageReqVO, page); + } } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/service/impl/TrainServiceImpl.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/service/impl/TrainServiceImpl.java index 0cb8c67c..638ee265 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/service/impl/TrainServiceImpl.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/train/service/impl/TrainServiceImpl.java @@ -205,6 +205,22 @@ public class TrainServiceImpl extends ServiceImpl implements } + /** + * 根据教练打卡id,获取对应学员列表信息 + */ + @Override + public List getTrainErrorStudentList(String coachClockId) { + return lambdaQuery().eq(Train::getCoachClockId,coachClockId) + .eq(Train::getDeleted,0) + .isNull(Train::getEndTime) + .isNotNull(Train::getUserId) + .isNotNull(Train::getCoachId) + .isNotNull(Train::getSubject) + .orderByDesc(Train::getCreateTime) + .list(); + + } + /** * 获取学员导出数据列表 diff --git a/dl-module-jx/src/main/resources/mapper/train/DriveSchoolCoachClockMapper.xml b/dl-module-jx/src/main/resources/mapper/train/DriveSchoolCoachClockMapper.xml index cc3ec237..05290000 100644 --- a/dl-module-jx/src/main/resources/mapper/train/DriveSchoolCoachClockMapper.xml +++ b/dl-module-jx/src/main/resources/mapper/train/DriveSchoolCoachClockMapper.xml @@ -367,4 +367,35 @@ AND subject = #{entity.subject} --> + + + diff --git a/dl-module-rescue/src/main/java/cn/iocoder/yudao/module/rescue/app/controller/admin/SysLoginController.java b/dl-module-rescue/src/main/java/cn/iocoder/yudao/module/rescue/app/controller/admin/SysLoginController.java index d7c3d972..19ad8cf4 100644 --- a/dl-module-rescue/src/main/java/cn/iocoder/yudao/module/rescue/app/controller/admin/SysLoginController.java +++ b/dl-module-rescue/src/main/java/cn/iocoder/yudao/module/rescue/app/controller/admin/SysLoginController.java @@ -151,7 +151,7 @@ public class SysLoginController { @TenantIgnore public CommonResult loginApp(@RequestBody LoginBody loginBody) throws Exception { String userName = loginBody.getUsername(); - AdminUserDO user = userService.getUserByUsername(userName); + AdminUserDO user = userService.getUserByUsernameRescue(userName); if (ObjectUtil.isEmpty(user)) { return error(CommonErrorCodeConstants.LOGIN_ACCOUNT_NOT_EXIST); } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/web/core/FlowableWebFilter.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/web/core/FlowableWebFilter.java index 7c7ce35d..8959a5d8 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/web/core/FlowableWebFilter.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/web/core/FlowableWebFilter.java @@ -2,6 +2,8 @@ package cn.iocoder.yudao.module.bpm.framework.web.core; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; import cn.iocoder.yudao.module.bpm.framework.flowable.core.util.FlowableUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.web.filter.OncePerRequestFilter; import javax.servlet.FilterChain; @@ -17,6 +19,8 @@ import java.io.IOException; */ public class FlowableWebFilter extends OncePerRequestFilter { + private static final Logger log = LoggerFactory.getLogger(FlowableWebFilter.class); + @Override protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws ServletException, IOException { @@ -24,14 +28,24 @@ public class FlowableWebFilter extends OncePerRequestFilter { // 设置工作流的用户 Long userId = SecurityFrameworkUtils.getLoginUserId(); if (userId != null) { - FlowableUtils.setAuthenticatedUserId(userId); + try { + FlowableUtils.setAuthenticatedUserId(userId); + } catch (Exception e) { + // 忽略设置用户 ID 时的异常,避免影响主流程 + log.warn("设置 Flowable 认证用户 ID 失败", e); + } } // 过滤 chain.doFilter(request, response); } finally { // 清理 - FlowableUtils.clearAuthenticatedUserId(); + try { + FlowableUtils.clearAuthenticatedUserId(); + } catch (Exception e) { + // 忽略清理时的异常 + log.warn("清理 Flowable 认证用户 ID 失败", e); + } } } -} +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.java index 46ed101d..4cb239cc 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.java @@ -12,6 +12,7 @@ import cn.iocoder.yudao.module.system.controller.admin.auth.vo.AuthLoginReqVO; import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserPageReqVO; import cn.iocoder.yudao.module.system.controller.app.user.UserInfoVO; import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -29,6 +30,13 @@ public interface AdminUserMapper extends BaseMapperX { return selectOne(AdminUserDO::getUsername, username); } + default AdminUserDO selectByUsernameRescue(String username) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("username", username) + .ne("user_type", "02"); + return selectOne(wrapper); + } + default AdminUserDO selectByUsername(String username, Long tenantId,String userType) { return selectOne(new LambdaQueryWrapperX().eq(AdminUserDO::getUsername, username).eq(ObjectUtil.isNotEmpty(tenantId),TenantBaseDO::getTenantId, tenantId) .eq(ObjectUtil.isNotEmpty(userType), AdminUserDO::getUserType, userType).last("limit 1")); diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java index 20d699c3..d1da7950 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java @@ -145,6 +145,7 @@ public class AdminAuthServiceImpl implements AdminAuthService { // 创建 Token 令牌,记录登录日志 return createTokenAfterLoginSuccess(user.getId(), reqVO.getUsername(), LoginLogTypeEnum.LOGIN_USERNAME); } + @Override public AuthLoginRespVO loginApp(AuthLoginReqVO reqVO,Long tenantId) { // 校验验证码 diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java index 439c7e1d..c239e985 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java @@ -128,6 +128,7 @@ public interface AdminUserService extends IService { * @return 用户对象信息 */ AdminUserDO getUserByUsername(String username); + AdminUserDO getUserByUsernameRescue(String username); /** * 通过用户名查询用户 diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java index 5ea94413..2bd858c7 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java @@ -293,6 +293,11 @@ public class AdminUserServiceImpl extends ServiceImpl