From c5bf75a6eb32f410cf192abf355a89c1f65f3e62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=88=E5=B1=95=E8=88=AA?= <2426745133@qq.com> Date: Wed, 17 Dec 2025 19:47:48 +0800 Subject: [PATCH] =?UTF-8?q?12-17-=E4=BA=BA=E5=91=98=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=A4=A7=E5=B1=8F-=E4=BF=AE=E5=A4=8D=E5=BE=AA=E7=8E=AF?= =?UTF-8?q?=E6=B3=A8=E5=85=A5=E7=89=88-=E4=BF=AE=E5=A4=8DtimeType=E7=89=88?= =?UTF-8?q?-=E6=B6=88=E6=81=AF=E5=9B=9E=E5=A4=8D-=E5=AE=8C=E5=96=84-?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/BusAttendanceServiceImpl.java | 101 ++++++++++++++---- 1 file changed, 78 insertions(+), 23 deletions(-) diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusAttendanceServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusAttendanceServiceImpl.java index dd650bbd..2b8e5fcc 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusAttendanceServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusAttendanceServiceImpl.java @@ -50,6 +50,7 @@ import org.dromara.project.service.*; import org.dromara.system.domain.SysUser; import org.dromara.system.domain.vo.SysOssVo; import org.dromara.system.domain.vo.SysUserVo; +import org.dromara.system.mapper.SysUserMapper; import org.dromara.system.service.ISysOssService; import org.dromara.system.service.ISysUserService; import org.dromara.websocket.ChatServerHandler; @@ -63,6 +64,7 @@ import java.math.BigDecimal; import java.math.RoundingMode; import java.time.*; import java.time.format.DateTimeFormatter; +import java.time.temporal.ChronoUnit; import java.time.temporal.TemporalAdjusters; import java.util.*; import java.util.concurrent.CompletableFuture; @@ -111,6 +113,8 @@ public class BusAttendanceServiceImpl extends ServiceImpl list = constructionUserService.list(lqw); //再去从聊天服务中获取在线的ID List onlineUserList = ChatServerHandler.getOnlineUserList(); + //先查询出用户列表 + List users = userMapper.selectVoList(Wrappers.lambdaQuery()); //构建将要返回的 数据 List info = new ArrayList<>(); long zx = 0; //在线 @@ -2803,26 +2809,46 @@ public class BusAttendanceServiceImpl extends ServiceImpl item.getSysUserId().equals(constructionUser.getSysUserId())) - .findFirst().ifPresent(item -> { - SysUserVo sysUserVo = userService.queryById(item.getSysUserId()); - if (sysUserVo != null){ - //app用户类型 0-施工人员 1-管理人员 2-分包人员 - if (sysUserVo.getAppUserType().equals("0")){ - cacheUserVo.setJslx("施工"); - sg.set(sg.getAndIncrement()+1); - }else if (sysUserVo.getAppUserType().equals("2")){ - cacheUserVo.setJslx("分包"); - fb.set(fb.getAndIncrement()+1); - } - } - }); - info.add(cacheUserVo); +// list.stream().filter(item -> item.getSysUserId().equals(constructionUser.getSysUserId())) +// .findFirst().ifPresent(item -> { +// //app用户类型 0-施工人员 1-管理人员 2-分包人员 +// if (cacheSysUserVo.getAppUserType().equals("0")){ +// cacheSysUserVo.setJslx("施工"); +// sg.set(sg.getAndIncrement()+1); +// }else if (cacheSysUserVo.getAppUserType().equals("2")){ +// cacheSysUserVo.setJslx("分包"); +// fb.set(fb.getAndIncrement()+1); +// } +// }); + //app用户类型 0-施工人员 1-管理人员 2-分包人员 + if (cacheSysUserVo.getAppUserType().equals("0")){ + cacheSysUserVo.setJslx("施工"); + sg.set(sg.getAndIncrement()+1); + }else if (cacheSysUserVo.getAppUserType().equals("2")){ + cacheSysUserVo.setJslx("分包"); + fb.set(fb.getAndIncrement()+1); + } + info.add(cacheSysUserVo); }else { lx++; } @@ -2849,16 +2875,28 @@ public class BusAttendanceServiceImpl extends ServiceImpl lqw = new LambdaQueryWrapper<>(); lqw.eq(SubConstructionUser::getProjectId, projectId); List list = constructionUserService.list(lqw); + //先查询出用户列表 + List users = userMapper.selectVoList(Wrappers.lambdaQuery()); //根据分包和班组的id进行分类 统计都有多少人 未入场人员没有两项数据 无法统计 仅能计算为总数 List fbList = new ArrayList<>(); List bzList = new ArrayList<>(); for (SubConstructionUser constructionUser : list) { //统计该项目下的分包和班组各应有多少人 - SysUserVo sysUserVo = userService.queryById(constructionUser.getSysUserId()); + SysUserVo sysUserVo = null; + for (SysUserVo user : users) { + if (user.getUserId().equals(constructionUser.getSysUserId())){ + sysUserVo = user; + break; + } + } if (sysUserVo == null){ continue; } +// SysUserVo sysUserVo = userService.queryById(constructionUser.getSysUserId()); +// if (sysUserVo == null){ +// continue; +// } //判断userType app用户类型 0-施工人员 1-管理人员 2-分包人员 if (sysUserVo.getAppUserType().equals("0")){ checkAndSetValue(bzList,constructionUser,0,timeType,projectId); @@ -2898,12 +2936,23 @@ public class BusAttendanceServiceImpl extends ServiceImpl ryglWebSocketVoList, SubConstructionUser info,int type,Long time,Long projectId){ //timeType 1:今天 2:本周 3:本月 此参数的校验放在连接时获取参数进行校验 - if (time == 2L){ - time = 7L; - }else if (time == 3L){ - time = 30L; + if (time == 2L) { + // 获取本周一到今天的天数 + LocalDate today = LocalDate.now(); + LocalDate monday = today.with(DayOfWeek.MONDAY); + time = ChronoUnit.DAYS.between(monday, today) + 1; + } else if (time == 3L) { + // 获取本月1日到今天的天数 + LocalDate today = LocalDate.now(); + LocalDate firstDay = today.withDayOfMonth(1); + time = ChronoUnit.DAYS.between(firstDay, today) + 1; } Long finalTime = time;