feat(oa/erp): 优化ERP工时汇总功能

- 在ErpTimesheetSummaryBo中新增summaryIds字段用于汇总工时ID集合查询
- 为ErpTimesheetSummaryVo添加部门名称、部门负责人和汇总人姓名字段
- 修改数据库查询映射,增加用户关联查询获取汇总人姓名
- 更新查询条件构建逻辑,支持按汇总工时ID集合进行筛选
- 优化Excel导出配置,调整字段显示名称并移除部分ID字段的导出
- 为日期字段添加时间格式化和列宽设置
dev
yangk 2 months ago
parent 149352cf23
commit 6867192f4e

@ -92,4 +92,9 @@ public class ErpTimesheetSummaryBo extends BaseEntity {
*/
private List<ErpTimesheetSummaryDetailBo> summaryDetailList;
/**
* ID
*/
private Long[] summaryIds;
}

@ -5,6 +5,8 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.oa.erp.domain.ErpTimesheetStandardMonth;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import cn.idev.excel.annotation.format.DateTimeFormat;
import cn.idev.excel.annotation.write.style.ColumnWidth;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
@ -34,37 +36,41 @@ public class ErpTimesheetStandardMonthVo implements Serializable {
/**
* ID
*/
@ExcelProperty(value = "月标准工时ID")
// @ExcelProperty(value = "月标准工时ID")
private Long standardMonthId;
/**
* (YYYYMM202604)
*/
@ExcelProperty(value = "月份编码(YYYYMM如202604)")
@ExcelProperty(value = "月份编码")
private String monthCode;
/**
* (20264)
*/
@ExcelProperty(value = "月份显示名(如2026年4月)")
@ExcelProperty(value = "月份显示名")
private String monthLabel;
/**
*
*/
@ExcelProperty(value = "起始日期")
@DateTimeFormat("yyyy-MM-dd")
@ColumnWidth(20)
private Date startDate;
/**
*
*/
@ExcelProperty(value = "截止日期")
@DateTimeFormat("yyyy-MM-dd")
@ColumnWidth(20)
private Date endDate;
/**
* (21.021.5)
*/
@ExcelProperty(value = "月标准工时天数(如21.0、21.5)")
@ExcelProperty(value = "月标准工时天数")
private BigDecimal standardDays;
/**

@ -33,7 +33,7 @@ public class ErpTimesheetSummaryVo implements Serializable {
/**
* ID
*/
@ExcelProperty(value = "汇总工时ID")
// @ExcelProperty(value = "汇总工时ID")
private Long summaryId;
/**
@ -51,43 +51,59 @@ public class ErpTimesheetSummaryVo implements Serializable {
/**
* ID
*/
@ExcelProperty(value = "部门ID")
private Long deptId;
/**
*
*/
@ExcelProperty(value = "部门名称")
private String deptName;
/**
* ()ID
*/
@ExcelProperty(value = "汇总人(部门负责人)用户ID")
private Long userId;
/**
*
*/
@ExcelProperty(value = "部门负责人")
private String leaderName;
/**
*
*/
// @ExcelProperty(value = "汇总人姓名")
private String userName;
/**
* ID
*/
@ExcelProperty(value = "关联月标准工时ID")
// @ExcelProperty(value = "关联月标准工时ID")
private Long standardMonthId;
/**
* ()
*/
@ExcelProperty(value = "月标准工时天数(冗余,取自标准月表)")
@ExcelProperty(value = "月标准工时天数")
private BigDecimal standardDays;
/**
* ()
*/
@ExcelProperty(value = "项目工时合计(天)")
@ExcelProperty(value = "项目工时合计")
private BigDecimal totalProjectHours;
/**
* ()
*/
@ExcelProperty(value = "部门工时合计(天)")
@ExcelProperty(value = "部门工时合计")
private BigDecimal totalDeptHours;
/**
* ()
*/
@ExcelProperty(value = "总工时合计(天)")
@ExcelProperty(value = "总工时合计")
private BigDecimal totalHours;
/**
@ -102,17 +118,6 @@ public class ErpTimesheetSummaryVo implements Serializable {
@ExcelProperty(value = "备注")
private String remark;
/**
*
*/
@ExcelProperty(value = "部门名称")
private String deptName;
/**
*
*/
@ExcelProperty(value = "负责人姓名")
private String leaderName;
/**
*

@ -110,7 +110,8 @@ public class ErpTimesheetSummaryServiceImpl implements IErpTimesheetSummaryServi
bo.getTotalProjectHours())
.eq(bo.getTotalDeptHours() != null, ErpTimesheetSummary::getTotalDeptHours, bo.getTotalDeptHours())
.eq(bo.getTotalHours() != null, ErpTimesheetSummary::getTotalHours, bo.getTotalHours())
.eq(bo.getStaffCount() != null, ErpTimesheetSummary::getStaffCount, bo.getStaffCount());
.eq(bo.getStaffCount() != null, ErpTimesheetSummary::getStaffCount, bo.getStaffCount())
.in(bo.getSummaryIds() != null && bo.getSummaryIds().length > 0, ErpTimesheetSummary::getSummaryId, (Object[]) bo.getSummaryIds());
return lqw;
}

@ -7,10 +7,11 @@
</resultMap>
<select id="selectCustomErpTimesheetSummaryVoList" resultType="org.dromara.oa.erp.domain.vo.ErpTimesheetSummaryVo">
select t.*, d.dept_name, u.nick_name as leader_name
select t.*, d.dept_name, u.nick_name as leader_name, u2.nick_name as user_name
from erp_timesheet_summary t
left join sys_dept d on t.dept_id = d.dept_id and d.del_flag = '0'
left join sys_user u on d.leader = u.user_id and u.del_flag = '0'
left join sys_user u2 on t.user_id = u2.user_id and u2.del_flag = '0'
${ew.getCustomSqlSegment}
</select>

Loading…
Cancel
Save