|
|
@ -39,6 +39,7 @@ namespace SlnMesnac.WPF.ViewModel
|
|
|
|
private string _checkOutButtonColor = "#009999";
|
|
|
|
private string _checkOutButtonColor = "#009999";
|
|
|
|
private int isCheckOn = 0;
|
|
|
|
private int isCheckOn = 0;
|
|
|
|
private bool isUse = false;
|
|
|
|
private bool isUse = false;
|
|
|
|
|
|
|
|
private int status = 0;//0是上班,1是下班
|
|
|
|
public static HidUtils hidUtils;
|
|
|
|
public static HidUtils hidUtils;
|
|
|
|
private List<string> uniqueStrings = new List<string>();
|
|
|
|
private List<string> uniqueStrings = new List<string>();
|
|
|
|
private List<DateTime> timestamps = new List<DateTime>();
|
|
|
|
private List<DateTime> timestamps = new List<DateTime>();
|
|
|
@ -88,8 +89,9 @@ namespace SlnMesnac.WPF.ViewModel
|
|
|
|
hidUtils.pushReceiveDataEvent += (bytes, str) =>
|
|
|
|
hidUtils.pushReceiveDataEvent += (bytes, str) =>
|
|
|
|
{
|
|
|
|
{
|
|
|
|
string cleanStr = str.ToString().Replace(" ", "");
|
|
|
|
string cleanStr = str.ToString().Replace(" ", "");
|
|
|
|
|
|
|
|
StatusText = StaffIdText = CheckStatus = null;
|
|
|
|
if (!IsDuplicate(cleanStr))//过滤重复str
|
|
|
|
if (!IsDuplicate(cleanStr))//过滤重复str
|
|
|
|
{
|
|
|
|
{
|
|
|
|
uniqueStrings.Add(cleanStr);
|
|
|
|
uniqueStrings.Add(cleanStr);
|
|
|
|
timestamps.Add(DateTime.Now);
|
|
|
|
timestamps.Add(DateTime.Now);
|
|
|
|
// Additional logic for processing the unique string goes here
|
|
|
|
// Additional logic for processing the unique string goes here
|
|
|
@ -98,6 +100,21 @@ namespace SlnMesnac.WPF.ViewModel
|
|
|
|
BaseStaffInfo user = baseStaffService.GetStaffInfoByCardId(cleanStr);
|
|
|
|
BaseStaffInfo user = baseStaffService.GetStaffInfoByCardId(cleanStr);
|
|
|
|
if (user != null)
|
|
|
|
if (user != null)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
string attendanceType = _recordStaffAttendanceService.GetRecordStaffAttendanceByStaffId(user.StaffId)?.AttendanceType;
|
|
|
|
|
|
|
|
if (attendanceType == "1") //下班卡
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if (attendanceType == status.ToString())
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
StatusText = "未打上班卡,请联系管理员!";
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else if (attendanceType == "0")
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if (attendanceType == status.ToString())
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
StatusText = "未打下班卡,请联系管理员!";
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
StaffIdText = user.StaffId;
|
|
|
|
StaffIdText = user.StaffId;
|
|
|
|
CheckStatus = user.StaffName + " " + user.TeamCode + " 打卡成功!";
|
|
|
|
CheckStatus = user.StaffName + " " + user.TeamCode + " 打卡成功!";
|
|
|
|
var list = _rfidHandleBusniess.HandleAndInsertStaffAttendance(user,isCheckOn);
|
|
|
|
var list = _rfidHandleBusniess.HandleAndInsertStaffAttendance(user,isCheckOn);
|
|
|
@ -107,7 +124,6 @@ namespace SlnMesnac.WPF.ViewModel
|
|
|
|
list.ForEach(item => { RecordStaffAttendanceDataGrid.Add(item); });
|
|
|
|
list.ForEach(item => { RecordStaffAttendanceDataGrid.Add(item); });
|
|
|
|
}));
|
|
|
|
}));
|
|
|
|
_rfidHandleBusniess.HandleStaffCommute(user, isCheckOn);
|
|
|
|
_rfidHandleBusniess.HandleStaffCommute(user, isCheckOn);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
else
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -227,6 +243,17 @@ namespace SlnMesnac.WPF.ViewModel
|
|
|
|
set { checkStatus = value; OnPropertyChanged("CheckStatus"); }
|
|
|
|
set { checkStatus = value; OnPropertyChanged("CheckStatus"); }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//Status
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
|
|
/// 状态
|
|
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
|
private string statusText;
|
|
|
|
|
|
|
|
public string StatusText
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
get { return statusText; }
|
|
|
|
|
|
|
|
set { statusText = value; OnPropertyChanged("StatusText"); }
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private ObservableCollection<RecordStaffAttendance> item = new ObservableCollection<RecordStaffAttendance>();
|
|
|
|
private ObservableCollection<RecordStaffAttendance> item = new ObservableCollection<RecordStaffAttendance>();
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// <summary>
|
|
|
@ -251,6 +278,7 @@ namespace SlnMesnac.WPF.ViewModel
|
|
|
|
{
|
|
|
|
{
|
|
|
|
// 执行上班打卡逻辑
|
|
|
|
// 执行上班打卡逻辑
|
|
|
|
isCheckOn = 0;
|
|
|
|
isCheckOn = 0;
|
|
|
|
|
|
|
|
status = 0;
|
|
|
|
isUse = true;
|
|
|
|
isUse = true;
|
|
|
|
CheckInButtonText = "结束打卡";
|
|
|
|
CheckInButtonText = "结束打卡";
|
|
|
|
IsCheckOutButtonEnabled = "False"; // Disable CheckOutButton
|
|
|
|
IsCheckOutButtonEnabled = "False"; // Disable CheckOutButton
|
|
|
@ -279,6 +307,7 @@ namespace SlnMesnac.WPF.ViewModel
|
|
|
|
// 执行下班打卡逻辑
|
|
|
|
// 执行下班打卡逻辑
|
|
|
|
isCheckOn = 1;
|
|
|
|
isCheckOn = 1;
|
|
|
|
isUse = true;
|
|
|
|
isUse = true;
|
|
|
|
|
|
|
|
status = 1;
|
|
|
|
CheckOutButtonText = "结束打卡";
|
|
|
|
CheckOutButtonText = "结束打卡";
|
|
|
|
IsCheckInButtonEnabled = "False"; // Disable CheckInButton
|
|
|
|
IsCheckInButtonEnabled = "False"; // Disable CheckInButton
|
|
|
|
CheckInButtonColor = "Gray";
|
|
|
|
CheckInButtonColor = "Gray";
|
|
|
@ -315,7 +344,7 @@ namespace SlnMesnac.WPF.ViewModel
|
|
|
|
{
|
|
|
|
{
|
|
|
|
for (int i = 0; i < uniqueStrings.Count; i++)
|
|
|
|
for (int i = 0; i < uniqueStrings.Count; i++)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (uniqueStrings[i] == str && (DateTime.Now - timestamps[i]).TotalMinutes < 30)
|
|
|
|
if (uniqueStrings[i] == str && (DateTime.Now - timestamps[i]).TotalMinutes < 1)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
return true;
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|