Commit e37d1619 authored by 赵啸非's avatar 赵啸非

考勤请假添加钉钉原始记录

parent e0673a63
......@@ -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-19
* @date 2023-08-15
*/
@Data
public class AttendanceLeaveRecordEntity extends AttendanceLeaveRecordVo {
......@@ -33,7 +36,6 @@ public class AttendanceLeaveRecordEntity extends AttendanceLeaveRecordVo {
/**
* 所属部门
*/
@Excel(name = "所属部门")
private String deptName;
/**
* 电话号码
......@@ -72,7 +74,6 @@ public class AttendanceLeaveRecordEntity extends AttendanceLeaveRecordVo {
/**
* 审批负责人
*/
@Excel(name = "审批负责人")
private String approver;
/**
* 附件
......@@ -89,7 +90,6 @@ public class AttendanceLeaveRecordEntity extends AttendanceLeaveRecordVo {
/**
* 申请时间
*/
@Excel(name = "申请时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date appealTime;
/**
* 审核结果(1.申请通过,2.申请不通过)
......@@ -109,8 +109,11 @@ public class AttendanceLeaveRecordEntity extends AttendanceLeaveRecordVo {
/**
* 处理状态
*/
@Excel(name = "处理状态", readConverterExp = "1=待处理,2=已处理")
private Integer processStatus;
/**
* 钉钉原始请假时间记录
*/
private String sourceDingTime;
@Override
public int hashCode() {
return this.getId().hashCode();
......@@ -128,45 +131,26 @@ public class AttendanceLeaveRecordEntity extends AttendanceLeaveRecordVo {
}
public void initAttrValue(){
this.leavePersonId = -1L;
this.leavePersonId = 0L;
this.leavePerson = "";
this.deptId = null;
this.deptId = 0L;
this.deptName = "";
this.phoneNumber = "";
this.leaveType =null;
this.startTime = null;
this.endTime = null;
this.leaveType = 0;
this.startTime = new Date();
this.endTime = new Date();
this.duration = 0;
this.reason = "";
this.approverId = null;
this.approverId = 0L;
this.approver = "";
this.attachment = "";
this.attachmentPath = "";
this.remark = "";
this.appealTime = null;
this.auditResult = null;
this.appealTime = new Date();
this.auditResult = 0;
this.auditDesc = "";
this.auditTime = null;
this.auditTime = new Date();
this.processStatus = 1;
this.sourceDingTime = "";
}
}
\ No newline at end of file
......@@ -7,7 +7,7 @@ import com.mortals.xhx.module.attendance.model.AttendanceLeaveRecordEntity;
* 请假记录信息查询对象
*
* @author zxfei
* @date 2023-07-18
* @date 2023-08-15
*/
public class AttendanceLeaveRecordQuery extends AttendanceLeaveRecordEntity {
/** 开始 序号,主键,自增长 */
......@@ -241,6 +241,11 @@ public class AttendanceLeaveRecordQuery extends AttendanceLeaveRecordEntity {
/** 处理状态排除列表 */
private List <Integer> processStatusNotList;
/** 钉钉原始请假时间记录 */
private List<String> sourceDingTimeList;
/** 钉钉原始请假时间记录排除列表 */
private List <String> sourceDingTimeNotList;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<AttendanceLeaveRecordQuery> orConditionList;
......@@ -1539,6 +1544,38 @@ public class AttendanceLeaveRecordQuery extends AttendanceLeaveRecordEntity {
}
/**
* 获取 钉钉原始请假时间记录
* @return sourceDingTimeList
*/
public List<String> getSourceDingTimeList(){
return this.sourceDingTimeList;
}
/**
* 设置 钉钉原始请假时间记录
* @param sourceDingTimeList
*/
public void setSourceDingTimeList(List<String> sourceDingTimeList){
this.sourceDingTimeList = sourceDingTimeList;
}
/**
* 获取 钉钉原始请假时间记录
* @return sourceDingTimeNotList
*/
public List<String> getSourceDingTimeNotList(){
return this.sourceDingTimeNotList;
}
/**
* 设置 钉钉原始请假时间记录
* @param sourceDingTimeNotList
*/
public void setSourceDingTimeNotList(List<String> sourceDingTimeNotList){
this.sourceDingTimeNotList = sourceDingTimeNotList;
}
/**
* 设置 序号,主键,自增长
* @param id
......@@ -2256,6 +2293,25 @@ public class AttendanceLeaveRecordQuery extends AttendanceLeaveRecordEntity {
return this;
}
/**
* 设置 钉钉原始请假时间记录
* @param sourceDingTime
*/
public AttendanceLeaveRecordQuery sourceDingTime(String sourceDingTime){
setSourceDingTime(sourceDingTime);
return this;
}
/**
* 设置 钉钉原始请假时间记录
* @param sourceDingTimeList
*/
public AttendanceLeaveRecordQuery sourceDingTimeList(List<String> sourceDingTimeList){
this.sourceDingTimeList = sourceDingTimeList;
return this;
}
/**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList
......
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.AttendanceStaffStatEntity;
import lombok.Data;
......@@ -15,6 +16,12 @@ import java.util.List;
@Data
public class AttendanceStatVo extends BaseEntityLong {
@Excels({
@Excel(name = "汇总内容", width = 30, targetAttr = "attendanceSummary", type = Excel.Type.EXPORT),
@Excel(name = "日期", targetAttr = "day", type = Excel.Type.EXPORT),
})
private List<AttendanceStaffStatEntity> attendanceStaffStatEntities;
......
......@@ -30,6 +30,7 @@
<result property="auditDesc" column="auditDesc" />
<result property="auditTime" column="auditTime" />
<result property="processStatus" column="processStatus" />
<result property="sourceDingTime" column="sourceDingTime" />
</resultMap>
......@@ -112,23 +113,26 @@
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('processStatus') or colPickMode == 1 and data.containsKey('processStatus')))">
a.processStatus,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('sourceDingTime') or colPickMode == 1 and data.containsKey('sourceDingTime')))">
a.sourceDingTime,
</if>
</trim>
</sql>
<!-- 新增 区分主键自增加还是业务插入 -->
<insert id="insert" parameterType="AttendanceLeaveRecordEntity" useGeneratedKeys="true" keyProperty="id">
insert into mortals_xhx_attendance_leave_record
(leavePersonId,leavePerson,deptId,deptName,phoneNumber,leaveType,startTime,endTime,duration,reason,approverId,approver,attachment,attachmentPath,remark,createUserId,createTime,updateUserId,updateTime,appealTime,auditResult,auditDesc,auditTime,processStatus)
(leavePersonId,leavePerson,deptId,deptName,phoneNumber,leaveType,startTime,endTime,duration,reason,approverId,approver,attachment,attachmentPath,remark,createUserId,createTime,updateUserId,updateTime,appealTime,auditResult,auditDesc,auditTime,processStatus,sourceDingTime)
VALUES
(#{leavePersonId},#{leavePerson},#{deptId},#{deptName},#{phoneNumber},#{leaveType},#{startTime},#{endTime},#{duration},#{reason},#{approverId},#{approver},#{attachment},#{attachmentPath},#{remark},#{createUserId},#{createTime},#{updateUserId},#{updateTime},#{appealTime},#{auditResult},#{auditDesc},#{auditTime},#{processStatus})
(#{leavePersonId},#{leavePerson},#{deptId},#{deptName},#{phoneNumber},#{leaveType},#{startTime},#{endTime},#{duration},#{reason},#{approverId},#{approver},#{attachment},#{attachmentPath},#{remark},#{createUserId},#{createTime},#{updateUserId},#{updateTime},#{appealTime},#{auditResult},#{auditDesc},#{auditTime},#{processStatus},#{sourceDingTime})
</insert>
<!-- 批量新增 -->
<insert id="insertBatch" parameterType="paramDto">
insert into mortals_xhx_attendance_leave_record
(leavePersonId,leavePerson,deptId,deptName,phoneNumber,leaveType,startTime,endTime,duration,reason,approverId,approver,attachment,attachmentPath,remark,createUserId,createTime,updateUserId,updateTime,appealTime,auditResult,auditDesc,auditTime,processStatus)
(leavePersonId,leavePerson,deptId,deptName,phoneNumber,leaveType,startTime,endTime,duration,reason,approverId,approver,attachment,attachmentPath,remark,createUserId,createTime,updateUserId,updateTime,appealTime,auditResult,auditDesc,auditTime,processStatus,sourceDingTime)
VALUES
<foreach collection="data.dataList" item="item" index="index" separator="," >
(#{item.leavePersonId},#{item.leavePerson},#{item.deptId},#{item.deptName},#{item.phoneNumber},#{item.leaveType},#{item.startTime},#{item.endTime},#{item.duration},#{item.reason},#{item.approverId},#{item.approver},#{item.attachment},#{item.attachmentPath},#{item.remark},#{item.createUserId},#{item.createTime},#{item.updateUserId},#{item.updateTime},#{item.appealTime},#{item.auditResult},#{item.auditDesc},#{item.auditTime},#{item.processStatus})
(#{item.leavePersonId},#{item.leavePerson},#{item.deptId},#{item.deptName},#{item.phoneNumber},#{item.leaveType},#{item.startTime},#{item.endTime},#{item.duration},#{item.reason},#{item.approverId},#{item.approver},#{item.attachment},#{item.attachmentPath},#{item.remark},#{item.createUserId},#{item.createTime},#{item.updateUserId},#{item.updateTime},#{item.appealTime},#{item.auditResult},#{item.auditDesc},#{item.auditTime},#{item.processStatus},#{item.sourceDingTime})
</foreach>
</insert>
......@@ -237,6 +241,9 @@
<if test="(colPickMode==0 and data.containsKey('processStatusIncrement')) or (colPickMode==1 and !data.containsKey('processStatusIncrement'))">
a.processStatus=ifnull(a.processStatus,0) + #{data.processStatusIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('sourceDingTime')) or (colPickMode==1 and !data.containsKey('sourceDingTime'))">
a.sourceDingTime=#{data.sourceDingTime},
</if>
</trim>
<trim suffixOverrides="where" suffix="">
where
......@@ -462,6 +469,13 @@
</choose>
</foreach>
</trim>
<trim prefix="sourceDingTime=(case" suffix="ELSE sourceDingTime end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('sourceDingTime')) or (colPickMode==1 and !item.containsKey('sourceDingTime'))">
when a.id=#{item.id} then #{item.sourceDingTime}
</if>
</foreach>
</trim>
</trim>
where id in
<foreach collection="data.dataList" item="item" index="index" open="(" separator="," close=")">
......@@ -1127,6 +1141,27 @@
${_conditionType_} a.processStatus <![CDATA[ <= ]]> #{${_conditionParam_}.processStatusEnd}
</if>
<if test="conditionParamRef.containsKey('sourceDingTime')">
<if test="conditionParamRef.sourceDingTime != null and conditionParamRef.sourceDingTime != ''">
${_conditionType_} a.sourceDingTime like #{${_conditionParam_}.sourceDingTime}
</if>
<if test="conditionParamRef.sourceDingTime == null">
${_conditionType_} a.sourceDingTime is null
</if>
</if>
<if test="conditionParamRef.containsKey('sourceDingTimeList') and conditionParamRef.sourceDingTimeList.size() > 0">
${_conditionType_} a.sourceDingTime in
<foreach collection="conditionParamRef.sourceDingTimeList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('sourceDingTimeNotList') and conditionParamRef.sourceDingTimeNotList.size() > 0">
${_conditionType_} a.sourceDingTime not in
<foreach collection="conditionParamRef.sourceDingTimeNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
</sql>
<sql id="_orderCols_">
<if test="orderColList != null and !orderColList.isEmpty()">
......@@ -1265,6 +1300,11 @@
<if test='orderCol.processStatus != null and "DESC".equalsIgnoreCase(orderCol.processStatus)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('sourceDingTime')">
a.sourceDingTime
<if test='orderCol.sourceDingTime != null and "DESC".equalsIgnoreCase(orderCol.sourceDingTime)'>DESC</if>
,
</if>
</trim>
</if>
</sql>
......
......@@ -852,3 +852,7 @@ CREATE TABLE mortals_xhx_attendance_record(
`className` varchar(128) COMMENT '班次名称',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='考勤打卡记录信息';
ALTER TABLE mortals_xhx_attendance_leave_record ADD COLUMN `sourceDingTime` varchar(64) COMMENT '钉钉原始请假时间记录';
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