新增车间计算记录与数据看板
This commit is contained in:
@@ -32,6 +32,12 @@ public class LaborCostData extends BaseEntity {
|
||||
// 加班时间
|
||||
private Double overtime;
|
||||
|
||||
// 出差次数
|
||||
private Double tripTimes;
|
||||
|
||||
// 请假次数
|
||||
private Double absenceDays;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,78 @@
|
||||
package com.ruoyi.oa.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 计算记录对象 oa_attendance_record
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-05-15
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("oa_attendance_record")
|
||||
public class OaAttendanceRecord extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
@TableId(value = "record_id")
|
||||
private Long recordId;
|
||||
/**
|
||||
* 涉及月份
|
||||
*/
|
||||
private Date relationMonth;
|
||||
/**
|
||||
* 生成时间
|
||||
*/
|
||||
private Date calcTime;
|
||||
/**
|
||||
* 统计者姓名
|
||||
*/
|
||||
private String nickName;
|
||||
/**
|
||||
* 出差天数
|
||||
*/
|
||||
private BigDecimal trips;
|
||||
/**
|
||||
* 请假次数
|
||||
*/
|
||||
private BigDecimal notNum;
|
||||
/**
|
||||
* 出勤天数
|
||||
*/
|
||||
private BigDecimal works;
|
||||
/**
|
||||
* 涉及项目
|
||||
*/
|
||||
private String projectIds;
|
||||
/**
|
||||
* 加班时长
|
||||
*/
|
||||
private BigDecimal overNum;
|
||||
/**
|
||||
* 删除标志
|
||||
*/
|
||||
@TableLogic
|
||||
private Long delFlag;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
private Long userId;
|
||||
|
||||
}
|
||||
@@ -25,8 +25,8 @@ public class OaReportDetail extends BaseEntity {
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
@TableId(value = "detail_id")
|
||||
private Long detailId;
|
||||
/**
|
||||
* 关联汇报概述ID(oa_report_summary.id)
|
||||
*/
|
||||
|
||||
@@ -27,8 +27,8 @@ public class OaReportSummary extends BaseEntity {
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
@TableId(value = "summary_id")
|
||||
private Long summaryId;
|
||||
/**
|
||||
* 汇报标题
|
||||
*/
|
||||
@@ -55,4 +55,6 @@ public class OaReportSummary extends BaseEntity {
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
private Long type;
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,86 @@
|
||||
package com.ruoyi.oa.domain.bo;
|
||||
|
||||
import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
/**
|
||||
* 计算记录业务对象 oa_attendance_record
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-05-15
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class OaAttendanceRecordBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
private Long recordId;
|
||||
|
||||
/**
|
||||
* 涉及月份
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private Date relationMonth;
|
||||
|
||||
/**
|
||||
* 生成时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private Date calcTime;
|
||||
|
||||
/**
|
||||
* 统计者姓名
|
||||
*/
|
||||
private String nickName;
|
||||
|
||||
/**
|
||||
* 出差天数
|
||||
*/
|
||||
private BigDecimal trips;
|
||||
|
||||
/**
|
||||
* 请假次数
|
||||
*/
|
||||
private BigDecimal notNum;
|
||||
|
||||
/**
|
||||
* 出勤天数
|
||||
*/
|
||||
private BigDecimal works;
|
||||
|
||||
/**
|
||||
* 涉及项目
|
||||
*/
|
||||
private String projectIds;
|
||||
|
||||
/**
|
||||
* 加班时长
|
||||
*/
|
||||
private BigDecimal overNum;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
private Long userId;
|
||||
|
||||
|
||||
}
|
||||
@@ -25,48 +25,41 @@ public class OaReportDetailBo extends BaseEntity {
|
||||
* 主键ID
|
||||
*/
|
||||
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
private Long detailId;
|
||||
|
||||
/**
|
||||
* 关联汇报概述ID(oa_report_summary.id)
|
||||
*/
|
||||
@NotNull(message = "关联汇报概述ID(oa_report_summary.id)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long summaryId;
|
||||
|
||||
/**
|
||||
* 设备唯一编号
|
||||
*/
|
||||
@NotBlank(message = "设备唯一编号不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String deviceCode;
|
||||
|
||||
/**
|
||||
* 设备类别
|
||||
*/
|
||||
@NotBlank(message = "设备类别不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String category;
|
||||
|
||||
/**
|
||||
* 设备生产说明
|
||||
*/
|
||||
@NotBlank(message = "设备生产说明不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String deviceDescription;
|
||||
|
||||
/**
|
||||
* 汇报详情内容(含文字、图像说明等)
|
||||
*/
|
||||
@NotBlank(message = "汇报详情内容(含文字、图像说明等)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String reportDetail;
|
||||
|
||||
/**
|
||||
* 关联图像 OSS ID 列表(逗号分隔)
|
||||
*/
|
||||
@NotBlank(message = "关联图像 OSS ID 列表(逗号分隔)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String ossIds;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String remark;
|
||||
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ public class OaReportSummaryBo extends BaseEntity {
|
||||
* 主键ID
|
||||
*/
|
||||
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
private Long summaryId;
|
||||
|
||||
/**
|
||||
* 汇报标题
|
||||
@@ -59,4 +59,6 @@ public class OaReportSummaryBo extends BaseEntity {
|
||||
private String remark;
|
||||
|
||||
|
||||
private Long type;
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.ruoyi.oa.domain.vo;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class AttendanceMonthlyCount {
|
||||
/** 格式:"2025-05" */
|
||||
private String month;
|
||||
/** 出勤次数(含出差) */
|
||||
private Integer attendanceCount;
|
||||
/** 请假次数 */
|
||||
private Integer leaveCount;
|
||||
// + getters/setters
|
||||
|
||||
private Long workHours;
|
||||
|
||||
private Long leaveHours;
|
||||
|
||||
private Long overtimeHours;
|
||||
|
||||
private Long tripHours;
|
||||
|
||||
|
||||
private Double attendanceRate; // 出勤率(0‑1 之间)
|
||||
|
||||
private Integer tripCount; // 出差次数
|
||||
|
||||
private Integer leavePeople; // 请假人数
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
package com.ruoyi.oa.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.ruoyi.common.annotation.ExcelDictFormat;
|
||||
import com.ruoyi.common.convert.ExcelDictConvert;
|
||||
import com.ruoyi.oa.domain.LaborCostData;
|
||||
import lombok.Data;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 计算记录视图对象 oa_attendance_record
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-05-15
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class OaAttendanceRecordVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
@ExcelProperty(value = "主键id")
|
||||
private Long recordId;
|
||||
|
||||
/**
|
||||
* 涉及月份
|
||||
*/
|
||||
@ExcelProperty(value = "涉及月份")
|
||||
private Date relationMonth;
|
||||
|
||||
/**
|
||||
* 生成时间
|
||||
*/
|
||||
@ExcelProperty(value = "生成时间")
|
||||
private Date calcTime;
|
||||
|
||||
/**
|
||||
* 统计者姓名
|
||||
*/
|
||||
@ExcelProperty(value = "统计者姓名")
|
||||
private String nickName;
|
||||
|
||||
/**
|
||||
* 出差天数
|
||||
*/
|
||||
@ExcelProperty(value = "出差天数")
|
||||
private BigDecimal trips;
|
||||
|
||||
/**
|
||||
* 请假次数
|
||||
*/
|
||||
@ExcelProperty(value = "请假次数")
|
||||
private BigDecimal notNum;
|
||||
|
||||
/**
|
||||
* 出勤天数
|
||||
*/
|
||||
@ExcelProperty(value = "出勤天数")
|
||||
private BigDecimal works;
|
||||
|
||||
/**
|
||||
* 涉及项目
|
||||
*/
|
||||
@ExcelProperty(value = "涉及项目")
|
||||
private String projectIds;
|
||||
|
||||
/**
|
||||
* 加班时长
|
||||
*/
|
||||
@ExcelProperty(value = "加班时长")
|
||||
private BigDecimal overNum;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
private List<SysOaAttendanceVo> attendanceList;
|
||||
|
||||
private Long userId;
|
||||
|
||||
|
||||
/** ▶︎ 按项目汇总 */
|
||||
private List<ProjectAttendanceSummaryVo> projectList;
|
||||
|
||||
private Long laborCost;
|
||||
}
|
||||
@@ -25,7 +25,7 @@ public class OaReportDetailVo {
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long id;
|
||||
private Long detailId;
|
||||
|
||||
/**
|
||||
* 关联汇报概述ID(oa_report_summary.id)
|
||||
|
||||
@@ -27,7 +27,7 @@ public class OaReportSummaryVo {
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long id;
|
||||
private Long summaryId;
|
||||
|
||||
/**
|
||||
* 汇报标题
|
||||
@@ -65,5 +65,7 @@ public class OaReportSummaryVo {
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
private Long type;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.ruoyi.oa.domain.vo;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/** 项目维度汇总行 */
|
||||
@Data
|
||||
public class ProjectAttendanceSummaryVo {
|
||||
private Long projectId;
|
||||
private String projectName;
|
||||
private String color;
|
||||
|
||||
private Integer workTimes; // 出勤天数
|
||||
private Integer hourWorkTimes; // 工作时长(h)
|
||||
private Integer overTime; // 加班时长(h)
|
||||
private Integer tripDays; // 出差天数
|
||||
}
|
||||
Reference in New Issue
Block a user