12-17-人员管理大屏-修复循环注入版-修复timeType版-消息回复-完善

This commit is contained in:
2025-12-17 14:47:44 +08:00
parent be4e5ba049
commit 48117eb5d4
2 changed files with 14 additions and 10 deletions

View File

@ -2842,7 +2842,7 @@ public class BusAttendanceServiceImpl extends ServiceImpl<BusAttendanceMapper, B
public void getAttendanceInfo(Long projectId,Long timeType,Map<String, String> map){ public void getAttendanceInfo(Long projectId,Long timeType,Map<String, String> map){
//构建数据 //构建数据
//timeType 1:今天 2:本周 3:本月 //timeType 1:今天 2:本周 3:本月
Long zrs = 0L; //总人数 Long zrs; //总人数
Long cqr = 0L; //出勤人数 Long cqr = 0L; //出勤人数
BigDecimal cql = BigDecimal.ZERO; //出勤率 BigDecimal cql = BigDecimal.ZERO; //出勤率
//查询此项目的所有人员 //查询此项目的所有人员
@ -2875,8 +2875,8 @@ public class BusAttendanceServiceImpl extends ServiceImpl<BusAttendanceMapper, B
for (RyglWebSocketVo vo : fbList) { for (RyglWebSocketVo vo : fbList) {
if (vo.getZrs()>0){ if (vo.getZrs()>0){
vo.setDgl( vo.setDgl(
//到岗人数/总人数 四舍五入 位小数 //到岗人数/总人数 四舍五入 2位小数
BigDecimal.valueOf(vo.getDgrs()).divide(BigDecimal.valueOf(vo.getZrs()), 1, RoundingMode.HALF_UP) BigDecimal.valueOf(vo.getDgrs()).divide(BigDecimal.valueOf(vo.getZrs()), 2, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100))
); );
}else { }else {
vo.setDgl(BigDecimal.ZERO); vo.setDgl(BigDecimal.ZERO);
@ -2887,8 +2887,8 @@ public class BusAttendanceServiceImpl extends ServiceImpl<BusAttendanceMapper, B
for (RyglWebSocketVo vo : bzList) { for (RyglWebSocketVo vo : bzList) {
if (vo.getZrs()>0){ if (vo.getZrs()>0){
vo.setDgl( vo.setDgl(
//到岗人数/总人数 四舍五入 位小数 //到岗人数/总人数 四舍五入 2位小数
BigDecimal.valueOf(vo.getDgrs()).divide(BigDecimal.valueOf(vo.getZrs()), 1, RoundingMode.HALF_UP) BigDecimal.valueOf(vo.getDgrs()).divide(BigDecimal.valueOf(vo.getZrs()), 2, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100))
); );
}else { }else {
vo.setDgl(BigDecimal.ZERO); vo.setDgl(BigDecimal.ZERO);
@ -2897,12 +2897,16 @@ public class BusAttendanceServiceImpl extends ServiceImpl<BusAttendanceMapper, B
// zrs = zrs + vo.getZrs(); // zrs = zrs + vo.getZrs();
} }
//总人数
zrs = (long) list.size() * timeType;
//总出勤人
cqr = fbcqr + bzcqr;
//出勤率 //出勤率
zrs = (long) list.size();
if (zrs != 0L){ if (zrs != 0L){
cql = (BigDecimal.valueOf(fbcqr).add(BigDecimal.valueOf(bzcqr))).divide(BigDecimal.valueOf(zrs),1,RoundingMode.HALF_UP); cql = (BigDecimal.valueOf(fbcqr).add(BigDecimal.valueOf(bzcqr))).divide(BigDecimal.valueOf(zrs),2,RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
} }
map.put("zrs", zrs.toString()); //总人数 map.put("zrs", zrs.toString()); //总人数
map.put("cqr", cqr.toString()); //出勤人数 map.put("cqr", cqr.toString()); //出勤人数
map.put("cql", cql.toString()); //出勤率 map.put("cql", cql.toString()); //出勤率

View File

@ -240,15 +240,15 @@ public class BigScreenWebSocketServer {
case 1: case 1:
break; break;
case 2: case 2:
int timeType = Math.toIntExact((Long) JSONUtil.parseObj(message).get("timeType")); String timeType = JSONUtil.parseObj(message).get("timeType").toString();
//判断参数 //判断参数
if (timeType != 1L && timeType != 2L && timeType != 3L) { if (Long.parseLong(timeType) != 1L && Long.parseLong(timeType) != 2L && Long.parseLong(timeType) != 3L) {
throw new RuntimeException("时间类型参数错误"); throw new RuntimeException("时间类型参数错误");
} }
//先获取左边坐标得到map //先获取左边坐标得到map
Map<String, String> infoData = busAttendanceService.getRyglOnlineUserInfoData(projectId); Map<String, String> infoData = busAttendanceService.getRyglOnlineUserInfoData(projectId);
//获取右边数据 //获取右边数据
busAttendanceService.getAttendanceInfo(projectId, (long) timeType, infoData); busAttendanceService.getAttendanceInfo(projectId, Long.valueOf(timeType) , infoData);
//返回数据 //返回数据
maps.add(infoData); maps.add(infoData);
break; break;