接go数据
This commit is contained in:
@ -1,14 +1,15 @@
|
|||||||
package org.dromara.bigscreen.controller;
|
package org.dromara.bigscreen.controller;
|
||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.dromara.bigscreen.domain.dto.WeatherQueryReq;
|
import org.dromara.bigscreen.domain.dto.WeatherQueryReq;
|
||||||
import org.dromara.bigscreen.domain.vo.*;
|
import org.dromara.bigscreen.domain.vo.*;
|
||||||
|
import org.dromara.bigscreen.mapper.ProjectBigScreenMapper;
|
||||||
import org.dromara.bigscreen.service.EnterpriseBigScreenService;
|
import org.dromara.bigscreen.service.EnterpriseBigScreenService;
|
||||||
import org.dromara.common.core.domain.R;
|
import org.dromara.common.core.domain.R;
|
||||||
|
import org.dromara.common.core.utils.DateUtils;
|
||||||
|
import org.dromara.common.utils.BigDecimalUtil;
|
||||||
import org.dromara.manager.weathermanager.vo.WeatherVo;
|
import org.dromara.manager.weathermanager.vo.WeatherVo;
|
||||||
import org.dromara.project.domain.BusAttendance;
|
|
||||||
import org.dromara.project.domain.BusProject;
|
import org.dromara.project.domain.BusProject;
|
||||||
import org.dromara.project.domain.BusUserProjectRelevancy;
|
import org.dromara.project.domain.BusUserProjectRelevancy;
|
||||||
import org.dromara.project.service.IBusAttendanceService;
|
import org.dromara.project.service.IBusAttendanceService;
|
||||||
@ -23,8 +24,7 @@ import java.math.BigDecimal;
|
|||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.temporal.ChronoUnit;
|
import java.time.temporal.ChronoUnit;
|
||||||
import java.util.*;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 企业级大屏
|
* 企业级大屏
|
||||||
@ -49,6 +49,9 @@ public class EnterpriseBigScreenController {
|
|||||||
@Resource
|
@Resource
|
||||||
private IBusProjectService projectService;
|
private IBusProjectService projectService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ProjectBigScreenMapper projectBigScreenMapper;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取关键指标
|
* 获取关键指标
|
||||||
@ -137,7 +140,8 @@ public class EnterpriseBigScreenController {
|
|||||||
peopleCountVo.setSubcontractorsCount(list.stream().filter(item -> "3".equals(item.getUserType()))
|
peopleCountVo.setSubcontractorsCount(list.stream().filter(item -> "3".equals(item.getUserType()))
|
||||||
.map(BusUserProjectRelevancy::getUserId)
|
.map(BusUserProjectRelevancy::getUserId)
|
||||||
.distinct().count());
|
.distinct().count());
|
||||||
|
Integer projectUserCount = projectBigScreenMapper.getUserCount();
|
||||||
|
peopleCountVo.setConstructionPersonnelCount(Long.valueOf(projectUserCount));
|
||||||
return R.ok(peopleCountVo);
|
return R.ok(peopleCountVo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -149,6 +153,15 @@ public class EnterpriseBigScreenController {
|
|||||||
@GetMapping("/allAttendanceCount")
|
@GetMapping("/allAttendanceCount")
|
||||||
public R<TodayAttendanceCountVo> getAllAttendanceCount() {
|
public R<TodayAttendanceCountVo> getAllAttendanceCount() {
|
||||||
TodayAttendanceCountVo todayAttendanceCountVo = new TodayAttendanceCountVo();
|
TodayAttendanceCountVo todayAttendanceCountVo = new TodayAttendanceCountVo();
|
||||||
|
List<BusProject> projectList = projectService.listByIds(List.of(1897160897167638529L, 1897161054676336641L));
|
||||||
|
Integer countUser = 0;
|
||||||
|
Integer countAttendance = 0;
|
||||||
|
for (BusProject project : projectList) {
|
||||||
|
Long projectId = project.getGoId();
|
||||||
|
countUser = countUser + projectBigScreenMapper.getProjectUserCount(projectId);
|
||||||
|
countAttendance = countAttendance + projectBigScreenMapper.getAttendanceCount(projectId, DateUtils.getDate());
|
||||||
|
}
|
||||||
|
/*
|
||||||
List<BusAttendance> list = attendanceService.list(Wrappers.<BusAttendance>lambdaQuery()
|
List<BusAttendance> list = attendanceService.list(Wrappers.<BusAttendance>lambdaQuery()
|
||||||
.eq(BusAttendance::getClockDate, LocalDate.now())
|
.eq(BusAttendance::getClockDate, LocalDate.now())
|
||||||
.in(BusAttendance::getClockStatus, Arrays.asList("1", "2", "3"))
|
.in(BusAttendance::getClockStatus, Arrays.asList("1", "2", "3"))
|
||||||
@ -160,11 +173,12 @@ public class EnterpriseBigScreenController {
|
|||||||
// 查询总人数
|
// 查询总人数
|
||||||
List<BusUserProjectRelevancy> relevancyList = userProjectRelevancyService.list();
|
List<BusUserProjectRelevancy> relevancyList = userProjectRelevancyService.list();
|
||||||
long totalUserCount = relevancyList.stream().map(BusUserProjectRelevancy::getUserId).distinct().count();
|
long totalUserCount = relevancyList.stream().map(BusUserProjectRelevancy::getUserId).distinct().count();
|
||||||
|
*/
|
||||||
|
|
||||||
// 计算考勤率(保留一位小数)
|
// 计算考勤率(保留一位小数)
|
||||||
if (totalUserCount > 0) {
|
if (countUser > 0) {
|
||||||
BigDecimal rate = new BigDecimal(attendanceCount * 100)
|
BigDecimal rate = new BigDecimal(countAttendance * 100)
|
||||||
.divide(new BigDecimal(totalUserCount), 1, RoundingMode.HALF_UP);
|
.divide(new BigDecimal(countUser), 1, RoundingMode.HALF_UP);
|
||||||
todayAttendanceCountVo.setAttendanceRate(rate.doubleValue());
|
todayAttendanceCountVo.setAttendanceRate(rate.doubleValue());
|
||||||
} else {
|
} else {
|
||||||
todayAttendanceCountVo.setAttendanceRate(0.0);
|
todayAttendanceCountVo.setAttendanceRate(0.0);
|
||||||
@ -179,7 +193,19 @@ public class EnterpriseBigScreenController {
|
|||||||
@GetMapping("/projectAttendanceCount")
|
@GetMapping("/projectAttendanceCount")
|
||||||
public R<List<ProjectAttendanceCountVo>> getProjectAttendanceCount() {
|
public R<List<ProjectAttendanceCountVo>> getProjectAttendanceCount() {
|
||||||
|
|
||||||
ArrayList<ProjectAttendanceCountVo> projectAttendanceCountVos = new ArrayList<>();
|
List<BusProject> projectList = projectService.listByIds(List.of(1897160897167638529L, 1897161054676336641L));
|
||||||
|
return R.ok(projectList.stream().map(busProject -> {
|
||||||
|
ProjectAttendanceCountVo vo = new ProjectAttendanceCountVo();
|
||||||
|
vo.setProjectId(busProject.getId());
|
||||||
|
vo.setProjectName(busProject.getProjectName());
|
||||||
|
Long projectId = busProject.getGoId();
|
||||||
|
Integer projectUserCount = projectBigScreenMapper.getProjectUserCount(projectId);
|
||||||
|
Integer attendanceCount = projectBigScreenMapper.getAttendanceCount(projectId, DateUtils.getDate());
|
||||||
|
vo.setAttendanceCount(Long.valueOf(attendanceCount));
|
||||||
|
vo.setAttendanceRate(BigDecimalUtil.toPercentage(BigDecimal.valueOf(attendanceCount), BigDecimal.valueOf(projectUserCount)).doubleValue());
|
||||||
|
return vo;
|
||||||
|
}).toList());
|
||||||
|
/*ArrayList<ProjectAttendanceCountVo> projectAttendanceCountVos = new ArrayList<>();
|
||||||
|
|
||||||
List<BusAttendance> list = attendanceService.list(Wrappers.<BusAttendance>lambdaQuery()
|
List<BusAttendance> list = attendanceService.list(Wrappers.<BusAttendance>lambdaQuery()
|
||||||
.eq(BusAttendance::getClockDate, LocalDate.now())
|
.eq(BusAttendance::getClockDate, LocalDate.now())
|
||||||
@ -221,7 +247,7 @@ public class EnterpriseBigScreenController {
|
|||||||
projectAttendanceCountVos.add(projectAttendanceCountVo);
|
projectAttendanceCountVos.add(projectAttendanceCountVo);
|
||||||
}
|
}
|
||||||
|
|
||||||
return R.ok(projectAttendanceCountVos);
|
return R.ok(projectAttendanceCountVos);*/
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -26,6 +26,9 @@ public interface ProjectBigScreenMapper {
|
|||||||
@Select("select count(*) from bus_construction_user where project_id = #{projectId} && deleted_at is NULL")
|
@Select("select count(*) from bus_construction_user where project_id = #{projectId} && deleted_at is NULL")
|
||||||
Integer getProjectUserCount(@Param("projectId") Long projectId);
|
Integer getProjectUserCount(@Param("projectId") Long projectId);
|
||||||
|
|
||||||
|
@Select("select count(*) from bus_construction_user where project_id in (60,59) && deleted_at is NULL")
|
||||||
|
Integer getUserCount();
|
||||||
|
|
||||||
@Select("select count(*) from bus_attendance where project_id = #{projectId} && printing_date = #{printingDate} && commuter = '1'")
|
@Select("select count(*) from bus_attendance where project_id = #{projectId} && printing_date = #{printingDate} && commuter = '1'")
|
||||||
Integer getAttendanceCount(@Param("projectId") Long projectId,
|
Integer getAttendanceCount(@Param("projectId") Long projectId,
|
||||||
@Param("printingDate") String printingDate);
|
@Param("printingDate") String printingDate);
|
||||||
|
|||||||
Reference in New Issue
Block a user