瀏覽代碼

1, graphql增加注释

2,调整考勤数据逻辑
tags/B.2.6.7_20240112_base
yk 1 年之前
父節點
當前提交
77bf62381f
共有 5 個文件被更改,包括 76 次插入50 次删除
  1. +61
    -50
      xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/staff/service/impl/DmStaffServiceImpl.java
  2. +3
    -0
      xueyi-modules/xueyi-system/src/main/resources/graphql/visitRecords.graphqls
  3. +7
    -0
      xueyi-modules/xueyi-system/src/main/resources/graphql/visitor.graphqls
  4. +3
    -0
      xueyi-modules/xueyi-system/src/main/resources/graphql/visitorLog.graphqls
  5. +2
    -0
      xueyi-modules/xueyi-system/src/main/resources/graphql/visitorPassRecords.graphqls

+ 61
- 50
xueyi-modules/xueyi-system/src/main/java/com/xueyi/system/staff/service/impl/DmStaffServiceImpl.java 查看文件

@@ -143,6 +143,64 @@ public class DmStaffServiceImpl extends BaseServiceImpl<DmStaffQuery, DmStaffDto
}


public DmEmpAttendancePo judgeAttendanceDescStatus(DmEmpAttendancePo po, Date checkDate){
SysDeptExt ext = sysDeptExtMapper.selectWorkTimeByDeptId(po.getDeptId());
if (null == po) {
DmEmpAttendancePo ea = new DmEmpAttendancePo();
ea.setCheckInTime(checkDate);
DmHolidayPo holidayPo = holidayService.isHoliday(checkDate);
if (MyDateUtils.formatDate(checkDate, MyDateUtils.DEFAULT_TIME_PATTERN).compareTo(ext.getOnDutyHourEnd()) > 0) {//识别时间比考勤上班打卡最晚时间更晚
ea.setDescStatus(ATTENDANCE_STATUS_BE_LATER); // 迟到
if (holidayPo.getHoliday() == 1) {
ea.setDescStatus(ATTENDANCE_STATUS_OVERTIME);
}
} else {//识别时间比考勤上班打卡最晚时间早
if (holidayPo.getHoliday() == 1) {
ea.setDescStatus(ATTENDANCE_STATUS_OVERTIME);
}
}
return ea;
}
DmHolidayPo holidayPo = holidayService.isHoliday(po.getCheckInTime());
if (holidayPo.getHoliday() == 1) {//如果是节假日
po.setDescStatus(ATTENDANCE_STATUS_OVERTIME);//加班
return po;
}
logger.info("deptId:{}", po.getDeptId());
logger.info("ext:start-end:{} end-start:{}" ,ext.getOnDutyHourEnd(), ext.getOffDutyHourStart());
if (po.getCheckInTime() == null && po.getCheckOutTime()== null) {//正常不会走这个流程
po.setDescStatus(ATTENDANCE_STATUS_ABSENCE);
return po;
} else if (po.getCheckInTime() != null && po.getCheckOutTime()== null) {//第一次打卡
if (MyDateUtils.formatDate(po.getCheckInTime(), MyDateUtils.DEFAULT_TIME_PATTERN).compareTo(ext.getOnDutyHourEnd()) > 0) {//识别时间比考勤上班打卡最晚时间更晚
po.setDescStatus(ATTENDANCE_STATUS_LATER_AND_EARLY);
} else {
po.setDescStatus(ATTENDANCE_STATUS_LEAVE_EARLY);
}
return po;
} else if (po.getCheckInTime() != null && po.getCheckOutTime() != null) {//之后的打卡
if (MyDateUtils.formatDate(po.getCheckInTime(), MyDateUtils.DEFAULT_TIME_PATTERN).compareTo(ext.getOffDutyHourStart()) < 0) {//识别时间比考勤下班打卡最早时间更早
if (MyDateUtils.formatDate(po.getCheckInTime(), MyDateUtils.DEFAULT_TIME_PATTERN).compareTo(ext.getOnDutyHourEnd()) > 0) {//识别时间比考勤上班打卡最晚时间更晚
po.setDescStatus(ATTENDANCE_STATUS_LATER_AND_EARLY);
} else {//正常上班打卡
po.setDescStatus(ATTENDANCE_STATUS_LEAVE_EARLY);
}
} else {//正常下班打卡
if (MyDateUtils.formatDate(po.getCheckInTime(), MyDateUtils.DEFAULT_TIME_PATTERN).compareTo(ext.getOnDutyHourEnd()) > 0) {//识别时间比考勤上班打卡最晚时间更晚
po.setDescStatus(ATTENDANCE_STATUS_BE_LATER);
} else {//正常上班打卡
po.setDescStatus(ATTENDANCE_STATUS_NORMAL);
}
}
Date cin = po.getCheckInTime();
Date cout = po.getCheckOutTime();
Integer diffMin = MyDateUtils.dateDiffMin(cin, cout);
po.setWorkDuration(diffMin);
}
return po;
}


public void updateOrInsertAttendance(DmRecognizedRecordsPo checkRecords) {
if (ObjectUtil.isNull(checkRecords.getUserId())) {
return ;
@@ -160,57 +218,11 @@ public class DmStaffServiceImpl extends BaseServiceImpl<DmStaffQuery, DmStaffDto
}

DmEmpAttendancePo empAttendance = dmEmpAttendanceMapper.findByEmpAndDate(checkTimeDateStr, userId);
SysDeptExt ext = sysDeptExtMapper.selectWorkTimeByDeptId(emp.getDeptId());
logger.info("deptId:{}", emp.getDeptId());
logger.info("ext:start-end:{} end-start:{}" ,ext.getOnDutyHourEnd(), ext.getOffDutyHourStart());

if (null != empAttendance) {

if (null == empAttendance.getCheckInTime()) {
empAttendance.setCheckInTime(checkTime);
} else {
empAttendance.setCheckOutTime(checkTime);
}


if (null!=empAttendance.getCheckInTime() && null != empAttendance.getCheckOutTime()) {
Date cin = empAttendance.getCheckInTime();
Date cout = empAttendance.getCheckOutTime();
Integer diffMin = MyDateUtils.dateDiffMin(cin, cout);
empAttendance.setWorkDuration(diffMin);
}

if (MyDateUtils.formatDate(checkTime, MyDateUtils.DEFAULT_TIME_PATTERN).compareTo(ext.getOffDutyHourStart()) < 0) {
if (ATTENDANCE_STATUS_NORMAL == empAttendance.getDescStatus()) {
empAttendance.setDescStatus(ATTENDANCE_STATUS_LEAVE_EARLY);
} else if (ATTENDANCE_STATUS_BE_LATER == empAttendance.getDescStatus()){
empAttendance.setDescStatus(ATTENDANCE_STATUS_LATER_AND_EARLY);
}
} else { //如果修改考勤时间,则对应修改考勤状态
if (ATTENDANCE_STATUS_LATER_AND_EARLY == empAttendance.getDescStatus()) {
empAttendance.setDescStatus(ATTENDANCE_STATUS_BE_LATER);
} else if (ATTENDANCE_STATUS_LEAVE_EARLY == empAttendance.getDescStatus()){
empAttendance.setDescStatus(ATTENDANCE_STATUS_NORMAL);
}
}
if (null != empAttendance) {//基本都会走这个控制段
empAttendance = judgeAttendanceDescStatus(empAttendance, checkTime);
dmEmpAttendanceMapper.updateById(empAttendance);

} else {
DmEmpAttendancePo ea = new DmEmpAttendancePo();
Date checkDate = checkTime;
ea.setCheckInTime(checkDate);
DmHolidayPo holidayPo = holidayService.isHoliday(checkDate);
if (MyDateUtils.formatDate(checkDate, MyDateUtils.DEFAULT_TIME_PATTERN).compareTo(ext.getOnDutyHourEnd()) > 0) {//识别时间比考勤上班打卡最晚时间更晚
ea.setDescStatus(ATTENDANCE_STATUS_BE_LATER); // 迟到
if (holidayPo.getHoliday() == 1) {
ea.setDescStatus(ATTENDANCE_STATUS_OVERTIME);
}
} else {//识别时间比考勤上班打卡最晚时间早
if (holidayPo.getHoliday() == 1) {
ea.setDescStatus(ATTENDANCE_STATUS_OVERTIME);
}
}

DmEmpAttendancePo ea = judgeAttendanceDescStatus(empAttendance, checkTime);
ea.setDateStr(MyDateUtils.formatDate(new Date(), MyDateUtils.DEFAULT_DATE_PATTERN));
ea.setUserId(userId);
ea.setUserName(emp.getUserName());
@@ -220,7 +232,6 @@ public class DmStaffServiceImpl extends BaseServiceImpl<DmStaffQuery, DmStaffDto
ea.setCreateTime(MyDateUtils.currentDateToLocalDateTime());
ea.setUpdateTime(MyDateUtils.currentDateToLocalDateTime());
dmEmpAttendanceService.updRedisCount();

dmEmpAttendanceMapper.insert(ea);
}
}

+ 3
- 0
xueyi-modules/xueyi-system/src/main/resources/graphql/visitRecords.graphqls 查看文件

@@ -39,8 +39,11 @@ type VisitRecord {
id: ID
visitorId: ID
userId: ID
# 接待人姓名
receiverName: String
#接待人电话
receiverPhone: String
# 记录状态
recordStatus: Int
visitDate: Date
visitorCode: String


+ 7
- 0
xueyi-modules/xueyi-system/src/main/resources/graphql/visitor.graphqls 查看文件

@@ -15,8 +15,11 @@ input VisitorInput {
nickname: String
phone: String
visitorCompany: String
# 是否是VIP
isVip:Boolean
# 是否可随时拜访
flexVisit:Boolean
# 是否可拜访
isBlock:Boolean
resourceId: ID
}
@@ -47,9 +50,13 @@ type Visitor {
type: Int
visitorCompany: String
avatar: String
# 是否是VIP
isVip:Boolean
# 是否可随时拜访
flexVisit:Boolean
# 是否可拜访
isBlock:Boolean
resourceId: ID
# 删除标识,1:已删除;0:未删除
delFlag: Int
}

+ 3
- 0
xueyi-modules/xueyi-system/src/main/resources/graphql/visitorLog.graphqls 查看文件

@@ -20,7 +20,10 @@ type VisitorLog {
visitorId: ID
userId: ID
userName: String
# 接口请求参数
param: String
# 接口返回消息
jsonResult: String
# 操作时间
operateTime: String
}

+ 2
- 0
xueyi-modules/xueyi-system/src/main/resources/graphql/visitorPassRecords.graphqls 查看文件

@@ -17,8 +17,10 @@ type VisitorPassRecord {
userName: String
userId: ID
faceUrl: String
# 通行时间
recognizedTime: String
createTime: Date
# 通行人员类型,10:外部特殊人员; 9:重要访客; 8:预约访客;
type: Int
visitor: Visitor
}

Loading…
取消
儲存