新增签到月份检索,加班时间折算,项目数据月份检索,

This commit is contained in:
2025-03-15 16:35:15 +08:00
parent b4b227395c
commit c0fe9c8885
10 changed files with 45 additions and 28 deletions

View File

@@ -61,7 +61,6 @@ public class EmployeeFilesController extends BaseController {
/** /**
* 新增文件档案管理 * 新增文件档案管理
*/ */
@Log(title = "文件档案管理", businessType = BusinessType.INSERT)
@RepeatSubmit() @RepeatSubmit()
@PostMapping() @PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody UserFilesVo filesVo) { public R<Void> add(@Validated(AddGroup.class) @RequestBody UserFilesVo filesVo) {

View File

@@ -129,8 +129,8 @@ public class SysOaFinanceController extends BaseController {
* 最近6个月的支出/收入情况 * 最近6个月的支出/收入情况
*/ */
@SaCheckPermission("oa:finance:list") @SaCheckPermission("oa:finance:list")
@PostMapping("/findFinanceByMonth") @GetMapping("/findFinanceByMonth")
public R<List<Object>> findFinanceByMonth(SysOaFinanceBo bo) { public R<List<Object>> findFinanceByMonth(SysOaFinanceBo bo,@RequestParam Map<String, Object> params) {
LocalDate now = LocalDate.now(); LocalDate now = LocalDate.now();
/* 建立一个数组 */ /* 建立一个数组 */
int[] integers = {0,1, 2, 3, 4, 5}; int[] integers = {0,1, 2, 3, 4, 5};
@@ -152,8 +152,8 @@ public class SysOaFinanceController extends BaseController {
outMap.put("financeType", '0'); outMap.put("financeType", '0');
outMap.put("beginTime", firstDay); outMap.put("beginTime", firstDay);
outMap.put("endTime", lastDay); outMap.put("endTime", lastDay);
outMap.put("payType",bo.getPayType()); outMap.put("payType",params.get("payType"));
outMap.put("receiveAccountId",bo.getReceiveAccountId()); outMap.put("receiveAccountId",params.get("receiveAccountId"));
BigDecimal financeOutReduce = iSysOaFinanceService.findFinanceByTime(bo, outMap); BigDecimal financeOutReduce = iSysOaFinanceService.findFinanceByTime(bo, outMap);
//收入 //收入
@@ -161,8 +161,8 @@ public class SysOaFinanceController extends BaseController {
comeMap.put("financeType", '1'); comeMap.put("financeType", '1');
comeMap.put("beginTime", firstDay); comeMap.put("beginTime", firstDay);
comeMap.put("endTime", lastDay); comeMap.put("endTime", lastDay);
comeMap.put("payType",bo.getPayType()); comeMap.put("payType",params.get("payType"));
comeMap.put("receiveAccountId",bo.getReceiveAccountId()); comeMap.put("receiveAccountId",params.get("receiveAccountId"));
BigDecimal financeComeReduce = iSysOaFinanceService.findFinanceByTime(bo, comeMap); BigDecimal financeComeReduce = iSysOaFinanceService.findFinanceByTime(bo, comeMap);
//收入减支出 //收入减支出
BigDecimal subtract = financeComeReduce.subtract(financeOutReduce); BigDecimal subtract = financeComeReduce.subtract(financeOutReduce);

View File

@@ -1,5 +1,6 @@
package com.ruoyi.oa.controller; package com.ruoyi.oa.controller;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Arrays; import java.util.Arrays;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@@ -81,9 +82,9 @@ public class SysOaProjectController extends BaseController {
* 获取项目管理详细信息 * 获取项目管理详细信息
* *
*/ */
@GetMapping("/projectDataByMonth") @GetMapping("/projectDataByMonth/{date}")
public R<List<SysOaProjectVo>> getProjectDataByMonth() { public R<List<SysOaProjectVo>> getProjectDataByMonth(@PathVariable("date") Date date) {
return R.ok(iSysOaProjectService.getProjectDataByMonth()); return R.ok(iSysOaProjectService.getProjectDataByMonth(date));
} }
/** /**

View File

@@ -29,6 +29,9 @@ public class LaborCostData extends BaseEntity {
// 小时计时长 // 小时计时长
private Double hourWorkTime; private Double hourWorkTime;
// 加班时间
private Double overtime;
} }

View File

@@ -6,13 +6,13 @@ import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import javax.validation.constraints.*; import javax.validation.constraints.*;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import java.util.Date; import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity; import com.ruoyi.common.core.domain.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;
/** /**
* 项目管理业务对象 sys_oa_project * 项目管理业务对象 sys_oa_project
@@ -162,4 +162,7 @@ public class SysOaProjectBo extends BaseEntity {
*/ */
private String color; private String color;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date date;
} }

View File

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

View File

@@ -8,6 +8,7 @@ import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.PageQuery;
import java.util.Collection; import java.util.Collection;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
@@ -55,7 +56,7 @@ public interface ISysOaProjectService {
* 获取每个项目当月的人力资源成本(人天) * 获取每个项目当月的人力资源成本(人天)
* @return * @return
*/ */
List<SysOaProjectVo> getProjectDataByMonth(); List<SysOaProjectVo> getProjectDataByMonth(Date date);
/** /**

View File

@@ -217,8 +217,8 @@ public class SysOaAttendanceServiceImpl implements ISysOaAttendanceService {
List<SysOaProjectVo> projectVos = new ArrayList<>(); List<SysOaProjectVo> projectVos = new ArrayList<>();
Double workTimes = 0.0; Double workTimes = 0.0;
Double hourWorkTimes = 0.0; Double hourWorkTimes = 0.0;
Double overTime = 0.0;
for (SysOaAttendanceVo oaAttendanceVo : sysOaAttendanceVos) { for (SysOaAttendanceVo oaAttendanceVo : sysOaAttendanceVos) {
// 出差问题解决 // 出差问题解决
if (oaAttendanceVo.getProjectId() != 0 && oaAttendanceVo.getProjectId() != 1) { if (oaAttendanceVo.getProjectId() != 0 && oaAttendanceVo.getProjectId() != 1) {
SysOaProjectVo sysOaProjectVo = projectService.queryById(oaAttendanceVo.getProjectId()); SysOaProjectVo sysOaProjectVo = projectService.queryById(oaAttendanceVo.getProjectId());
@@ -228,8 +228,10 @@ public class SysOaAttendanceServiceImpl implements ISysOaAttendanceService {
projectVos.add(sysOaProjectVo); projectVos.add(sysOaProjectVo);
workTimes += oaAttendanceVo.getWorkTimes(); workTimes += oaAttendanceVo.getWorkTimes();
hourWorkTimes += oaAttendanceVo.getHourWorkTimes(); hourWorkTimes += oaAttendanceVo.getHourWorkTimes();
overTime+=oaAttendanceVo.getOverTime();
} }
} }
// 此为所有小时计的综合
projectVos.stream().distinct().collect(Collectors.toList()); projectVos.stream().distinct().collect(Collectors.toList());
LaborCostData laborCostData = new LaborCostData(); LaborCostData laborCostData = new LaborCostData();
laborCostData.setProjects(projectVos); laborCostData.setProjects(projectVos);
@@ -237,6 +239,8 @@ public class SysOaAttendanceServiceImpl implements ISysOaAttendanceService {
laborCostData.setSysUser(sysUser); laborCostData.setSysUser(sysUser);
laborCostData.setWorkTimes(workTimes); laborCostData.setWorkTimes(workTimes);
laborCostData.setHourWorkTime(hourWorkTimes); laborCostData.setHourWorkTime(hourWorkTimes);
// 加班时间
laborCostData.setOvertime(overTime);
costDataList.add(laborCostData); costDataList.add(laborCostData);
} }

View File

@@ -133,11 +133,12 @@ public class SysOaProjectServiceImpl implements ISysOaProjectService {
* @return * @return
*/ */
@Override @Override
public List<SysOaProjectVo> getProjectDataByMonth() { public List<SysOaProjectVo> getProjectDataByMonth(Date date) {
Date date = new Date(); System.out.println(date);
if (date==null){
List<SysOaProjectVo> projectVos = baseMapper.getProjectDataByMonth(getFirstDay(date),getLastDay(date)); date = new Date();
return projectVos; }
return baseMapper.getProjectDataByMonth(getFirstDay(date),getLastDay(date));
} }
/** /**

View File

@@ -97,7 +97,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectVoListAndTime" resultType="com.ruoyi.oa.domain.vo.SysOaAttendanceVo"> <select id="selectVoListAndTime" resultType="com.ruoyi.oa.domain.vo.SysOaAttendanceVo">
select ANY_VALUE(id), SELECT ANY_VALUE(id),
user_id, user_id,
ANY_VALUE(attendance_day), ANY_VALUE(attendance_day),
project_id, project_id,
@@ -109,15 +109,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
ANY_VALUE(update_by), ANY_VALUE(update_by),
ANY_VALUE(remark), ANY_VALUE(remark),
ANY_VALUE(del_flag), ANY_VALUE(del_flag),
count(*) as count, count(id) AS count,
sum(day_length) as work_times, SUM(day_length) + CEILING(SUM(hour) / 9) AS work_times,
sum(hour) as hour_work_times (SUM(day_length) + CEILING(SUM(hour) / 9)) * 9 AS hour_work_times,
from sys_oa_attendance soa FLOOR(SUM(hour) / 9) AS overTime
where user_id = #{userId} FROM sys_oa_attendance soa
and #{lastDay} > create_time WHERE user_id = #{userId}
and create_time > #{firstDay} AND #{lastDay} > create_time
and del_flag = '0' AND create_time > #{firstDay}
group by soa.project_id AND del_flag = '0'
GROUP BY soa.project_id
</select> </select>
<select id="selectUserListAndAttendanceListAndProjectListByUserIds" <select id="selectUserListAndAttendanceListAndProjectListByUserIds"