Commit 89d708af authored by 赵啸非's avatar 赵啸非

每日打卡考勤导出实现

parent 15527866
......@@ -464,33 +464,32 @@ export default {
border-bottom: 3px solid rgb(20, 134, 248);
padding-bottom: 2px;
}
.mytree ::v-deep {
padding: 10px;
.el-tree--highlight-current
::v-deep
.el-tree-node.is-checked
> .el-tree-node__content {
.el-tree--highlight-current ::v-deep .el-tree-node.is-checked > .el-tree-node__content {
background-color: rgb(255, 255, 255);
color: rgb(64, 158, 255);
}
.el-tree--highlight-current
::v-deep
.el-tree-node.is-current
> .el-tree-node__content {
.el-tree--highlight-current ::v-deep .el-tree-node.is-current > .el-tree-node__content {
background-color: rgb(255, 255, 255);
color: rgb(64, 158, 255);
}
.el-tree > .el-tree-node:after {
border-top: none;
}
.el-tree-node {
position: relative;
padding-left: 16px;
}
//节点有间隙,隐藏掉展开按钮就好了,如果觉得空隙没事可以删掉
.el-tree-node__expand-icon.is-leaf {
display: none;
}
.el-tree-node__children {
padding-left: 16px;
}
......
package com.mortals.xhx.module.attendance.model;
import java.util.Date;
import java.util.List;
import java.util.ArrayList;
import java.math.BigDecimal;
import cn.hutool.core.date.DateUtil;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.attendance.model.vo.AttendanceRecordDetailVo;
import lombok.Data;
/**
* 考勤打卡记录详细信息实体对象
*
* @author zxfei
* @date 2023-04-09
* @date 2023-07-27
*/
@Data
public class AttendanceRecordDetailEntity extends AttendanceRecordDetailVo {
private static final long serialVersionUID = 1L;
......@@ -30,249 +31,61 @@ public class AttendanceRecordDetailEntity extends AttendanceRecordDetailVo {
/**
* 班次名称
*/
@Excel(name = "班次名称")
private String shiftsName;
/**
* 上班打卡时间
*/
@Excel(name = "上班打卡时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date goWorkDate;
/**
* 上班打卡结果(1.正常,2.请假,3.缺卡,4.迟到,5.早退)
*/
@Excel(name = "上班打卡结果", readConverterExp = "1=正常,2=请假,3=缺卡,4=迟到,5=早退")
private Integer goWorkResult;
/**
* 下班打卡时间
*/
@Excel(name = "下班打卡时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date offWorkDate;
/**
* 下班打卡结果(1.正常,2.请假,3.缺卡,4.迟到,5.早退)
*/
@Excel(name = "下班打卡结果", readConverterExp = "1=正常,2=请假,3=缺卡,4=迟到,5=早退")
private Integer offWorkResult;
/**
* 备注
*/
private String remark;
/**
* 排序字段
*/
private Integer orderNum;
public AttendanceRecordDetailEntity() {
}
/**
* 获取 考勤记录ID
*
* @return Long
*/
public Long getRecordId() {
return recordId;
}
/**
* 设置 考勤记录ID
*
* @param recordId
*/
public void setRecordId(Long recordId) {
this.recordId = recordId;
}
/**
* 获取 班次ID
*
* @return Long
*/
public Long getShiftsId() {
return shiftsId;
}
/**
* 设置 班次ID
*
* @param shiftsId
*/
public void setShiftsId(Long shiftsId) {
this.shiftsId = shiftsId;
}
/**
* 获取 班次名称
*
* @return String
*/
public String getShiftsName() {
return shiftsName;
}
/**
* 设置 班次名称
*
* @param shiftsName
*/
public void setShiftsName(String shiftsName) {
this.shiftsName = shiftsName;
}
/**
* 获取 上班打卡时间
*
* @return Date
*/
public Date getGoWorkDate() {
return goWorkDate;
}
/**
* 设置 上班打卡时间
*
* @param goWorkDate
*/
public void setGoWorkDate(Date goWorkDate) {
this.goWorkDate = goWorkDate;
}
/**
* 获取 上班打卡结果(1.正常,2.请假,3.缺卡,4.迟到,5.早退)
*
* @return Integer
*/
public Integer getGoWorkResult() {
return goWorkResult;
}
/**
* 设置 上班打卡结果(1.正常,2.请假,3.缺卡,4.迟到,5.早退)
*
* @param goWorkResult
*/
public void setGoWorkResult(Integer goWorkResult) {
this.goWorkResult = goWorkResult;
}
/**
* 获取 下班打卡时间
*
* @return Date
*/
public Date getOffWorkDate() {
return offWorkDate;
}
/**
* 设置 下班打卡时间
*
* @param offWorkDate
*/
public void setOffWorkDate(Date offWorkDate) {
this.offWorkDate = offWorkDate;
}
/**
* 获取 下班打卡结果(1.正常,2.请假,3.缺卡,4.迟到,5.早退)
*
* @return Integer
*/
public Integer getOffWorkResult() {
return offWorkResult;
}
/**
* 设置 下班打卡结果(1.正常,2.请假,3.缺卡,4.迟到,5.早退)
*
* @param offWorkResult
*/
public void setOffWorkResult(Integer offWorkResult) {
this.offWorkResult = offWorkResult;
}
/**
* 获取 备注
*
* @return String
*/
public String getRemark() {
return remark;
}
/**
* 设置 备注
*
* @param remark
*/
public void setRemark(String remark) {
this.remark = remark;
}
/**
* 获取 排序字段
*
* @return Integer
*/
public Integer getOrderNum() {
return orderNum;
}
/**
* 设置 排序字段
*
* @param orderNum
* 备注
*/
public void setOrderNum(Integer orderNum) {
this.orderNum = orderNum;
}
private String remark;
@Override
public int hashCode() {
return this.getOrderNum().hashCode();
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (obj instanceof AttendanceRecordDetailEntity) {
AttendanceRecordDetailEntity tmp = (AttendanceRecordDetailEntity) obj;
if (this.getOrderNum() == tmp.getOrderNum()) {
if (this.getId() == tmp.getId()) {
return true;
}
}
return false;
}
public String toString() {
StringBuilder sb = new StringBuilder("");
sb.append(",recordId:").append(getRecordId());
sb.append(",shiftsId:").append(getShiftsId());
sb.append(",shiftsName:").append(getShiftsName());
sb.append(",goWorkDate:").append(getGoWorkDate());
sb.append(",goWorkResult:").append(getGoWorkResult());
sb.append(",offWorkDate:").append(getOffWorkDate());
sb.append(",offWorkResult:").append(getOffWorkResult());
sb.append(",remark:").append(getRemark());
sb.append(",orderNum:").append(getOrderNum());
return sb.toString();
}
public void initAttrValue() {
this.recordId = null;
this.shiftsId = null;
public void initAttrValue(){
this.recordId = 0L;
this.shiftsId = 0L;
this.shiftsName = "";
this.goWorkDate = null;
this.goWorkResult = null;
this.offWorkDate = null;
this.offWorkResult = null;
this.remark = "";
this.goWorkDate = new Date();
this.goWorkResult = 0;
this.offWorkDate = new Date();
this.offWorkResult = 0;
this.orderNum = 1;
this.remark = "";
}
}
}
\ No newline at end of file
......@@ -2,6 +2,9 @@ package com.mortals.xhx.module.attendance.model;
import java.util.Date;
import java.util.List;
import java.util.ArrayList;
import java.math.BigDecimal;
import cn.hutool.core.date.DateUtil;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
......@@ -11,7 +14,7 @@ import lombok.Data;
* 考勤打卡记录信息实体对象
*
* @author zxfei
* @date 2023-07-18
* @date 2023-07-27
*/
@Data
public class AttendanceRecordEntity extends AttendanceRecordVo {
......@@ -24,10 +27,12 @@ public class AttendanceRecordEntity extends AttendanceRecordVo {
/**
* 员工姓名
*/
@Excel(name = "员工姓名")
private String staffName;
/**
* 工号
*/
@Excel(name = "工号")
private String workNum;
/**
* 所属部门
......@@ -36,6 +41,7 @@ public class AttendanceRecordEntity extends AttendanceRecordVo {
/**
* 所属部门名称
*/
@Excel(name = "所属部门名称")
private String deptName;
/**
* 职位ID
......@@ -44,6 +50,7 @@ public class AttendanceRecordEntity extends AttendanceRecordVo {
/**
* 职位名称
*/
@Excel(name = "职位名称")
private String positionName;
/**
* 所属考勤组ID
......@@ -52,6 +59,7 @@ public class AttendanceRecordEntity extends AttendanceRecordVo {
/**
* 所属考勤组名称
*/
@Excel(name = "所属考勤组名称")
private String attendanceGroupName;
/**
* 班次ID
......@@ -60,10 +68,12 @@ public class AttendanceRecordEntity extends AttendanceRecordVo {
/**
* 班次名称
*/
@Excel(name = "班次名称")
private String shiftsName;
/**
* 打卡日期
*/
@Excel(name = "打卡日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date attendanceDate;
/**
* 备注
......@@ -72,10 +82,12 @@ public class AttendanceRecordEntity extends AttendanceRecordVo {
/**
* 签到结果(0.否,1.是)
*/
@Excel(name = "签到结果", readConverterExp = "0=异常,1=正常")
private Integer signInResult;
/**
* 签退结果(0.否,1.是)
*/
@Excel(name = "签退结果", readConverterExp = "0=异常,1=正常")
private Integer signOutResult;
/**
* 考勤类型
......@@ -84,6 +96,7 @@ public class AttendanceRecordEntity extends AttendanceRecordVo {
/**
* 打卡结果(0.否,1.是)
*/
@Excel(name = "打卡结果", readConverterExp = "0=异常,1=正常")
private Integer punchResult;
@Override
public int hashCode() {
......@@ -102,39 +115,22 @@ public class AttendanceRecordEntity extends AttendanceRecordVo {
}
public void initAttrValue(){
this.staffId = -1L;
this.staffId = 0L;
this.staffName = "";
this.workNum = "";
this.deptId = -1L;
this.deptId = 0L;
this.deptName = "";
this.positionId = -1L;
this.positionId = 0L;
this.positionName = "";
this.attendanceGroupId = -1L;
this.attendanceGroupId = 0L;
this.attendanceGroupName = "";
this.shiftsId = -1L;
this.shiftsId = 0L;
this.shiftsName = "";
this.attendanceDate = null;
this.attendanceDate = new Date();
this.remark = "";
this.signInResult = 0;
this.signOutResult = 0;
this.attendType = "现场打卡";
this.punchResult = 1;
this.attendType = "";
this.punchResult = 0;
}
}
\ No newline at end of file
package com.mortals.xhx.module.attendance.model.vo;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.annotation.Excels;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.attendance.model.AttendanceRecordDetailEntity;
import com.mortals.xhx.module.attendance.model.AttendanceRecordEntity;
......@@ -17,6 +19,13 @@ public class AttendanceRecordVo extends BaseEntityLong {
private List<AttendanceGroupFixedworkSpecialVo> list;
@Excels({
@Excel(name = "上班打卡时间", width = 30, dateFormat = "yyyy-MM-dd", targetAttr = "goWorkDate", type = Excel.Type.EXPORT),
@Excel(name = "上班打卡结果", readConverterExp = "1=正常,2=请假,3=缺卡,4=迟到,5=早退", targetAttr = "goWorkResult", type = Excel.Type.EXPORT),
@Excel(name = "下班打卡时间", width = 30, dateFormat = "yyyy-MM-dd", targetAttr = "offWorkDate", type = Excel.Type.EXPORT),
@Excel(name = "下班打卡结果", readConverterExp = "1=正常,2=请假,3=缺卡,4=迟到,5=早退", targetAttr = "offWorkResult", type = Excel.Type.EXPORT)
})
private AttendanceRecordDetailEntity attendanceRecordDetailEntity;
/**
......
......@@ -15,6 +15,7 @@ import com.mortals.xhx.module.dept.model.DeptQuery;
import com.mortals.xhx.module.dept.service.DeptService;
import com.mortals.xhx.module.staff.service.StaffService;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.RequestMapping;
......@@ -69,12 +70,34 @@ public class AttendanceRecordController extends BaseCRUDJsonBodyMappingControlle
}
@Override
public void doExportBefore(Context context, AttendanceRecordEntity query, List<String> properties) throws AppException {
public void doExportAfter(Context context, List<AttendanceRecordEntity> list) throws AppException {
ArrayList<AttendanceRecordEntity> attendanceRecordEntities = new ArrayList<>();
for (AttendanceRecordEntity recordEntity : list) {
List<AttendanceRecordDetailEntity> attendanceRecordDetailList = recordEntity.getAttendanceRecordDetailList();
if(!ObjectUtils.isEmpty(attendanceRecordDetailList)){
for (AttendanceRecordDetailEntity detailEntity : attendanceRecordDetailList) {
AttendanceRecordEntity attendanceRecord = new AttendanceRecordEntity();
attendanceRecord.initAttrValue();
BeanUtils.copyProperties(recordEntity,attendanceRecord);
attendanceRecord.setAttendanceRecordDetailEntity(detailEntity);
attendanceRecordEntities.add(attendanceRecord);
}
}else {
AttendanceRecordEntity attendanceRecord = new AttendanceRecordEntity();
attendanceRecord.initAttrValue();
BeanUtils.copyProperties(recordEntity,attendanceRecord);
attendanceRecordEntities.add(attendanceRecord);
}
}
if(!ObjectUtils.isEmpty(attendanceRecordEntities)){
list.clear();
list.addAll(attendanceRecordEntities);
}
}
@Override
protected void doListBefore(AttendanceRecordEntity query, Map<String, Object> model, Context context) throws AppException {
if (query.getClassId()!=null){
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment