You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
79 lines
2.9 KiB
C#
79 lines
2.9 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using System.Threading;
|
|
using ConsoleApp;
|
|
using KdbndpTypes;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using SlnMesnac.Common;
|
|
using SlnMesnac.Model.domain;
|
|
using SlnMesnac.Model.dto;
|
|
using SlnMesnac.Repository.service;
|
|
|
|
namespace SlnMesnac.Business.business
|
|
{
|
|
/// <summary>
|
|
/// RFID打卡业务逻辑类
|
|
/// </summary>
|
|
public class RfidHandleBusniess
|
|
{
|
|
private IRecordStaffAttendanceService _recordStaffAttendanceService;
|
|
private IRecordStaffCommuteService _recordStaffCommuteService;
|
|
|
|
public RfidHandleBusniess(IRecordStaffAttendanceService recordStaffAttendanceService, IRecordStaffCommuteService recordStaffCommuteService)
|
|
{
|
|
this._recordStaffAttendanceService = recordStaffAttendanceService;
|
|
this._recordStaffCommuteService = recordStaffCommuteService;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 处理并插入打卡记录
|
|
/// </summary>
|
|
/// <param name="staff"></param>
|
|
/// <param name="isCheckOn"></param>
|
|
/// <returns></returns>
|
|
public List<RecordStaffAttendance> HandleAndInsertStaffAttendance(BaseStaffInfo staff,int isCheckOn)
|
|
{
|
|
RecordStaffAttendance recordStaffAttendance = new RecordStaffAttendance
|
|
{
|
|
StaffId = staff.StaffId,
|
|
AttendanceType = isCheckOn.ToString(),
|
|
TeamCode = staff.TeamCode,
|
|
Remark = staff.Remark,
|
|
CreateBy = staff.StaffName,
|
|
CreateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
|
|
};
|
|
_recordStaffAttendanceService.Insert(recordStaffAttendance);
|
|
return _recordStaffAttendanceService.GetRecordStaffAttendances();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 处理上下班记录
|
|
/// </summary>
|
|
public void HandleStaffCommute(BaseStaffInfo staff, int isCheckOn)
|
|
{
|
|
if(isCheckOn == 0)
|
|
{
|
|
RecordStaffCommute recordStaffCommute = new RecordStaffCommute
|
|
{
|
|
StaffId = staff.StaffId,
|
|
TeamCode = staff.TeamCode,
|
|
//Classes =
|
|
StartWorkTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
|
|
Remark = staff.Remark,
|
|
CreateBy = staff.StaffName,
|
|
CreateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
|
|
};
|
|
_recordStaffCommuteService.Insert(recordStaffCommute);
|
|
}
|
|
else
|
|
{
|
|
//根据id和上班时间不超过九小时的查找对应记录
|
|
RecordStaffCommute recordStaffCommute = _recordStaffCommuteService.GetStaffCommuteByIdAndDuration(staff.StaffId, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
|
//更新这个记录的下班打卡时间和在班时长率
|
|
}
|
|
}
|
|
}
|
|
}
|