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 { /// /// RFID打卡业务逻辑类 /// public class RfidHandleBusniess { private IRecordStaffAttendanceService _recordStaffAttendanceService; private IRecordStaffCommuteService _recordStaffCommuteService; private string currentTime; private string teamMembers = null; private List members = new List(); public RfidHandleBusniess(IRecordStaffAttendanceService recordStaffAttendanceService, IRecordStaffCommuteService recordStaffCommuteService) { this._recordStaffAttendanceService = recordStaffAttendanceService; this._recordStaffCommuteService = recordStaffCommuteService; } /// /// 处理并插入打卡记录 /// /// /// /// public List 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(); } /// /// 处理上下班记录 /// 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 { currentTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); //根据id和上班时间不超过九小时的查找对应记录 RecordStaffCommute recordStaffCommute = _recordStaffCommuteService.GetStaffCommuteByIdAndDuration(staff.StaffId, currentTime); //更新这个记录的下班打卡时间和在班时长率 recordStaffCommute.EndWorkTime = currentTime; recordStaffCommute.ClockingRatio = Convert.ToDecimal((DateTime.Parse(recordStaffCommute.EndWorkTime) - DateTime.Parse(recordStaffCommute.StartWorkTime)).TotalHours); _recordStaffCommuteService.Update(recordStaffCommute); } } public string SpliceTeamMember(BaseStaffInfo baseStaffInfo) { RecordStaffAttendance recordStaffAttendance = _recordStaffAttendanceService.GetRecordStaffAttendanceByStaffId(baseStaffInfo.StaffId); string type = recordStaffAttendance.AttendanceType; if (type == "0")//上班,添加员工名字转成字符串 { members.Add(baseStaffInfo.StaffName); // Add the staff member's name to the list teamMembers = string.Join("| ", members); // Convert the list of names to a string separated by commas } else if (type == "1")//下班,删除下班员工的名字再转为字符串 { members.Remove(baseStaffInfo.StaffName); // Remove the staff member's name from the list teamMembers = string.Join("| ", members); // Convert the updated list of names to a string separated by commas } return teamMembers; } } }