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;
......
package com.mortals.xhx.module.attendance.service.impl;
import cn.hutool.core.date.DateUtil;
import com.mortals.framework.model.PageInfo;
import com.mortals.framework.model.Result;
import com.mortals.framework.util.DateUtils;
......@@ -48,38 +49,40 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
@Override
protected void findAfter(AttendanceStatEntity entity, Context context, List<AttendanceStatEntity> list) throws AppException {
// DateUtil.parse(entity.getStartTime()).year();
//DateUtil.parse(entity.getStartTime()).month();
//开始时间
String startYears =entity.getStartTime().split("-",0)[0];
String startYears = entity.getStartTime().split("-", 0)[0];
Long startYear = Long.valueOf(startYears);
String startMonths = entity.getStartTime().split("-",0)[1];
Long startMonth =Long.valueOf(startMonths);
String startDays= entity.getStartTime().split("-",0)[2];
Long startDay =Long.valueOf(startDays);
String startMonths = entity.getStartTime().split("-", 0)[1];
Long startMonth = Long.valueOf(startMonths);
String startDays = entity.getStartTime().split("-", 0)[2];
Long startDay = Long.valueOf(startDays);
//结束时间
String endYears =entity.getEndTime().split("-",0)[0];
String endYears = entity.getEndTime().split("-", 0)[0];
Long endYear = Long.valueOf(endYears);
String endMonths = entity.getEndTime().split("-",0)[1];
Long endMonth =Long.valueOf(endMonths);
String endDays= entity.getEndTime().split("-",0)[2];
Long endDay =Long.valueOf(endDays);
String endMonths = entity.getEndTime().split("-", 0)[1];
Long endMonth = Long.valueOf(endMonths);
String endDays = entity.getEndTime().split("-", 0)[2];
Long endDay = Long.valueOf(endDays);
list.forEach(item -> {
AttendanceStaffStatQuery staffStatQuery = new AttendanceStaffStatQuery();
staffStatQuery.setStaffId(entity.getStaffId());
if (startYear==endYear){
if (startYear == endYear) {
staffStatQuery.setYear(startYear.intValue());
}else {
} else {
staffStatQuery.setYearStart(startYear.intValue());
staffStatQuery.setYearEnd(endYear.intValue());
}
if (startMonth==endMonth){
if (startMonth == endMonth) {
staffStatQuery.setMonth(startMonth.intValue());
}else {
} else {
staffStatQuery.setMonthStart(startMonth.intValue());
staffStatQuery.setMonthEnd(startMonth.intValue());
}
if (startDay==endDay){
if (startDay == endDay) {
staffStatQuery.setDay(startDay.intValue());
}else {
} else {
staffStatQuery.setDayStart(startDay.intValue());
staffStatQuery.setDayEnd(startDay.intValue());
}
......@@ -97,37 +100,37 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
@Override
protected void findAfter(AttendanceStatEntity params, PageInfo pageInfo, Context context, List<AttendanceStatEntity> list) throws AppException {
//开始时间
String startYears =params.getStartTime().split("-",0)[0];
String startYears = params.getStartTime().split("-", 0)[0];
Long startYear = Long.valueOf(startYears);
String startMonths = params.getStartTime().split("-",0)[1];
Long startMonth =Long.valueOf(startMonths);
String startDays= params.getStartTime().split("-",0)[2];
Long startDay =Long.valueOf(startDays);
String startMonths = params.getStartTime().split("-", 0)[1];
Long startMonth = Long.valueOf(startMonths);
String startDays = params.getStartTime().split("-", 0)[2];
Long startDay = Long.valueOf(startDays);
//结束时间
String endYears =params.getEndTime().split("-",0)[0];
String endYears = params.getEndTime().split("-", 0)[0];
Long endYear = Long.valueOf(endYears);
String endMonths = params.getEndTime().split("-",0)[1];
Long endMonth =Long.valueOf(endMonths);
String endDays= params.getEndTime().split("-",0)[2];
Long endDay =Long.valueOf(endDays);
String endMonths = params.getEndTime().split("-", 0)[1];
Long endMonth = Long.valueOf(endMonths);
String endDays = params.getEndTime().split("-", 0)[2];
Long endDay = Long.valueOf(endDays);
list.forEach(item -> {
AttendanceStaffStatQuery staffStatQuery = new AttendanceStaffStatQuery();
staffStatQuery.setStaffId(item.getStaffId());
if (startYear==endYear){
if (startYear == endYear) {
staffStatQuery.setYear(startYear.intValue());
}else {
} else {
staffStatQuery.setYearStart(startYear.intValue());
staffStatQuery.setYearEnd(endYear.intValue());
}
if (startMonth==endMonth){
if (startMonth == endMonth) {
staffStatQuery.setMonth(startMonth.intValue());
}else {
} else {
staffStatQuery.setMonthStart(startMonth.intValue());
staffStatQuery.setMonthEnd(endMonth.intValue());
}
if (startDay==endDay){
if (startDay == endDay) {
staffStatQuery.setDay(startDay.intValue());
}else {
} else {
staffStatQuery.setDayStart(startDay.intValue());
staffStatQuery.setDayEnd(endDay.intValue());
}
......@@ -158,11 +161,11 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
Calendar calendar = Calendar.getInstance();
calendar.setTime(DateUtils.StrToDate(query.getSummaryTime()));
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
if(dayOfWeek==Calendar.SATURDAY||dayOfWeek==Calendar.SUNDAY){
if (dayOfWeek == Calendar.SATURDAY || dayOfWeek == Calendar.SUNDAY) {
return;
}
Date today = DateUtils.getCurrDate();
if(DateUtils.StrToDate(query.getSummaryTime()).compareTo(today)>=0){
if (DateUtils.StrToDate(query.getSummaryTime()).compareTo(today) >= 0) {
return;
}
......@@ -191,7 +194,7 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
//汇总当前日期请假情况
List<LeaveSummaryVo> leaveSummaryVoList = attendanceSummaryDao.getLeaveSummary(query);
if (CollectionUtils.isNotEmpty(leaveSummaryVoList)) {
BigDecimal day = new BigDecimal(3600*24);
BigDecimal day = new BigDecimal(3600 * 24);
BigDecimal oneDay = new BigDecimal(1);
for (LeaveSummaryVo item : leaveSummaryVoList) {
String attendanceSummary = "";
......@@ -200,29 +203,29 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
BigDecimal leaveTime = new BigDecimal(item.getDuration()).divide(day, 1, BigDecimal.ROUND_HALF_DOWN);
String endStr = DateUtils.getStrDate(item.getEndTime());
String dayStr = query.getSummaryTime();
if(endStr.equals(dayStr)){
if(leaveTime.compareTo(oneDay)>=0){
if (endStr.equals(dayStr)) {
if (leaveTime.compareTo(oneDay) >= 0) {
// 整数部分
BigDecimal integerPart = leaveTime.setScale(0, RoundingMode.DOWN);
// 小数部分
BigDecimal fractionalPart = leaveTime.subtract(integerPart);
if(fractionalPart.compareTo(new BigDecimal(0))==0){
if (fractionalPart.compareTo(new BigDecimal(0)) == 0) {
leaveTime = oneDay;
}else {
} else {
leaveTime = fractionalPart;
}
}
}else {
if(leaveTime.compareTo(oneDay)>=0){
leaveTime=oneDay;
} else {
if (leaveTime.compareTo(oneDay) >= 0) {
leaveTime = oneDay;
}
}
temp.setGoTimes(0); //默认只要有请假,当天就不算全勤
LeaveTypeEnum leaveTypeEnum = LeaveTypeEnum.getByValue(item.getLeaveType());
if(leaveTypeEnum == null){
if (leaveTypeEnum == null) {
leaveTypeEnum = LeaveTypeEnum.事假; //默认为事假
}
attendanceSummary = leaveTypeEnum.getDesc()+"*1";
attendanceSummary = leaveTypeEnum.getDesc() + "*1";
switch (leaveTypeEnum) {
case 事假:
temp.setPersonalLeave(leaveTime);
......@@ -266,11 +269,11 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
BeanUtils.copyProperties(item, staffStat, BeanUtil.getNullPropertyNames(item));
staffStat.setAttendanceSummary(attendanceSummary);
AttendanceStaffStatEntity staffStatTemp = attendanceStaffStatService.selectOne(new AttendanceStaffStatQuery().staffId(item.getStaffId()).year(item.getYear()).month(item.getMonth()).day(item.getDay()));
if(staffStatTemp!=null){
if (staffStatTemp != null) {
staffStat.setId(staffStatTemp.getId());
staffStat.setUpdateTime(new Date());
attendanceStaffStatService.update(staffStat);
}else {
} else {
staffStat.setCreateTime(DateUtils.StrToDate(query.getSummaryTime()));
staffStat.setCreateUserId(1l);
attendanceStaffStatService.save(staffStat);
......@@ -289,25 +292,25 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
this.dao.update(temp);
}
String attendanceSummary = "";
if(item.getMorningTimes()>0){
attendanceSummary+="缺卡*"+item.getMorningTimes()+"次;";
if (item.getMorningTimes() > 0) {
attendanceSummary += "缺卡*" + item.getMorningTimes() + "次;";
}
if(item.getLateTimes()>0){
attendanceSummary+="迟到*"+item.getLateTimes()+"次;";
if (item.getLateTimes() > 0) {
attendanceSummary += "迟到*" + item.getLateTimes() + "次;";
}
if(item.getOvertimeTimes()>0){
attendanceSummary+="早退*"+item.getOvertimeTimes()+"次;";
if (item.getOvertimeTimes() > 0) {
attendanceSummary += "早退*" + item.getOvertimeTimes() + "次;";
}
AttendanceStaffStatEntity staffStat = new AttendanceStaffStatEntity();
staffStat.initAttrValue();
BeanUtils.copyProperties(item, staffStat, BeanUtil.getNullPropertyNames(item));
staffStat.setAttendanceSummary(attendanceSummary);
AttendanceStaffStatEntity staffStatTemp = attendanceStaffStatService.selectOne(new AttendanceStaffStatQuery().staffId(item.getStaffId()).year(item.getYear()).month(item.getMonth()).day(item.getDay()));
if(staffStatTemp!=null){
if (staffStatTemp != null) {
staffStat.setId(staffStatTemp.getId());
staffStat.setUpdateTime(new Date());
attendanceStaffStatService.update(staffStat);
}else {
} else {
staffStat.setCreateTime(DateUtils.StrToDate(query.getSummaryTime()));
staffStat.setCreateUserId(1l);
attendanceStaffStatService.save(staffStat);
......@@ -316,36 +319,38 @@ public class AttendanceStatServiceImpl extends AbstractCRUDServiceImpl<Attendanc
}
log.info("完成汇总当前日期异常考勤.....");
log.info("日期:" + query.getSummaryTime() + ",考勤汇总执行完成,耗时:" + (System.currentTimeMillis() - currentTime) + "毫秒....");
}catch (Exception e){
log.error("考勤汇总出错",e);
} catch (Exception e) {
log.error("考勤汇总出错", e);
}
}
@Override
public Result<AttendanceStatEntity> findExt(AttendanceSummaryQuery params, PageInfo pageInfo, Context context) throws AppException {
if(params==null){
if (params == null) {
params = new AttendanceSummaryQuery();
Calendar now = Calendar.getInstance();
/* Calendar now = Calendar.getInstance();
now.setTime(new Date());
now.add(Calendar.DAY_OF_MONTH, -30); //默认查最近30天数据
params.setSummaryTimeStart(DateUtils.getStrDate(now.getTime()));
*/
params.setSummaryTimeStart(DateUtil.offsetDay(new Date(), -30).toDateStr());
params.setSummaryTimeEnd(DateUtils.getCurrStrDate());
}
if(StringUtils.isNotEmpty(params.getStaffName())){
params.setStaffName("%"+params.getStaffName()+"%");
if (StringUtils.isNotEmpty(params.getStaffName())) {
params.setStaffName("%" + params.getStaffName() + "%");
}
if(StringUtils.isNotEmpty(params.getPhoneNumer())){
params.setPhoneNumer("%"+params.getPhoneNumer()+"%");
if (StringUtils.isNotEmpty(params.getPhoneNumer())) {
params.setPhoneNumer("%" + params.getPhoneNumer() + "%");
}
if(pageInfo == null){
if (pageInfo == null) {
pageInfo = new PageInfo(10);
}
Result<AttendanceStatEntity> result = dao.getListExt(params,pageInfo);
if(CollectionUtils.isNotEmpty(result.getList())){
for(AttendanceStatEntity item:result.getList()){
Result<AttendanceStatEntity> result = dao.getListExt(params, pageInfo);
if (CollectionUtils.isNotEmpty(result.getList())) {
for (AttendanceStatEntity item : result.getList()) {
params.setStaffId(item.getStaffId());
List<AttendanceStaffStatEntity> statEntities = attendanceStaffStatService.getListExt(params);
if(CollectionUtils.isNotEmpty(statEntities)){
if (CollectionUtils.isNotEmpty(statEntities)) {
item.setAttendanceStaffStatEntities(statEntities);
}
}
......
......@@ -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