This commit is contained in:
2024-12-04 13:45:45 +08:00
parent b443c006a7
commit 9fd16697d5
7 changed files with 135 additions and 71 deletions

View File

@@ -26,6 +26,9 @@ public class LaborCostData extends BaseEntity {
// 当月的所有签到信息
private List<SysOaAttendanceVo> attendances;
// 小时计时长
private Double hourWorkTime;
}

View File

@@ -79,4 +79,7 @@ public class SysOaAttendanceVo extends SysOaAttendance {
private String projectName;
// 小时计单个工作时间
private Double hourWorkTimes;
}

View File

@@ -166,9 +166,12 @@ public class SysOaAttendanceServiceImpl implements ISysOaAttendanceService {
List<SysOaProjectVo> projectVos = new ArrayList<>();
for (SysOaAttendanceVo oaAttendanceVo : sysOaAttendanceVos) {
SysOaProjectVo sysOaProjectVo = projectService.queryById(oaAttendanceVo.getProjectId());
oaAttendanceVo.setColor(sysOaProjectVo.getColor());
projectVos.add(sysOaProjectVo);
// 当projectId等于0时代表 当前为出差状态
if(oaAttendanceVo.getProjectId()!=0){
SysOaProjectVo sysOaProjectVo = projectService.queryById(oaAttendanceVo.getProjectId());
oaAttendanceVo.setColor(sysOaProjectVo.getColor());
projectVos.add(sysOaProjectVo);
}
}
sysUser.setProjects(projectVos);
sysUser.setAttendances(sysOaAttendanceVos);
@@ -212,15 +215,19 @@ public class SysOaAttendanceServiceImpl implements ISysOaAttendanceService {
List<SysOaAttendanceVo> sysOaAttendanceVos = baseMapper.selectVoListAndTime(userId, firstDay,lastDay);
List<SysOaProjectVo> projectVos = new ArrayList<>();
Double workTimes = 0.0;
Double hourWorkTimes = 0.0;
for (SysOaAttendanceVo oaAttendanceVo : sysOaAttendanceVos) {
SysOaProjectVo sysOaProjectVo = projectService.queryById(oaAttendanceVo.getProjectId());
oaAttendanceVo.setColor(sysOaProjectVo.getColor());
oaAttendanceVo.setSysOaProjectVo(sysOaProjectVo);
oaAttendanceVo.setProjectName(sysOaProjectVo.getProjectName());
projectVos.add(sysOaProjectVo);
workTimes+=oaAttendanceVo.getWorkTimes();
// 出差问题解决
if (oaAttendanceVo.getProjectId()!=0){
SysOaProjectVo sysOaProjectVo = projectService.queryById(oaAttendanceVo.getProjectId());
oaAttendanceVo.setColor(sysOaProjectVo.getColor());
oaAttendanceVo.setSysOaProjectVo(sysOaProjectVo);
oaAttendanceVo.setProjectName(sysOaProjectVo.getProjectName());
projectVos.add(sysOaProjectVo);
workTimes+=oaAttendanceVo.getWorkTimes();
hourWorkTimes += oaAttendanceVo.getHourWorkTimes();
}
}
projectVos.stream().distinct().collect(Collectors.toList());
LaborCostData laborCostData = new LaborCostData();
@@ -228,6 +235,7 @@ public class SysOaAttendanceServiceImpl implements ISysOaAttendanceService {
laborCostData.setAttendances(sysOaAttendanceVos);
laborCostData.setSysUser(sysUser);
laborCostData.setWorkTimes(workTimes);
laborCostData.setHourWorkTime(hourWorkTimes);
costDataList.add(laborCostData);
}

View File

@@ -19,6 +19,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="delFlag" column="del_flag"/>
<result property="count" column="count"/>
<result property="workTimes" column="work_times"/>
<result property="hourWorkTimes" column="hour_work_times"/>
</resultMap>
@@ -37,11 +38,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
ANY_VALUE(remark),
ANY_VALUE(del_flag),
count(*) as count,
sum(day_length) as work_times
sum(day_length) as work_times,
sum(hour) as hour_work_times
from sys_oa_attendance soa
where user_id = #{userId}
and #{lastDay} > create_time
and create_time > #{firstDay}
and del_flag = '0'
group by soa.project_id
</select>