diff --git a/SlnMesnac.WPF/ViewModel/EmployeeLoginViewModel.cs b/SlnMesnac.WPF/ViewModel/EmployeeLoginViewModel.cs
index c6c54b6..b6d3c60 100644
--- a/SlnMesnac.WPF/ViewModel/EmployeeLoginViewModel.cs
+++ b/SlnMesnac.WPF/ViewModel/EmployeeLoginViewModel.cs
@@ -100,30 +100,56 @@ namespace SlnMesnac.WPF.ViewModel
BaseStaffInfo user = baseStaffService.GetStaffInfoByCardId(cleanStr);
if (user != null)
{
- string attendanceType = _recordStaffAttendanceService.GetRecordStaffAttendanceByStaffId(user.StaffId)?.AttendanceType;
- if (attendanceType == "1") //下班卡
+ RecordStaffAttendance recordStaffAttendance = _recordStaffAttendanceService.GetRecordStaffAttendanceByStaffId(user.StaffId);
+ var createTime = recordStaffAttendance.CreateTime;
+ var nowTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+ TimeSpan timeDiff = DateTime.Parse(nowTime) - DateTime.Parse(createTime);
+ if(timeDiff.TotalHours >= 10)//
{
- if (attendanceType == status.ToString())
+ if (recordStaffAttendance.AttendanceType == "1") //下班卡
{
- StatusText = "未打上班卡,请联系管理员!";
+ if (recordStaffAttendance.AttendanceType == status.ToString())
+ {
+ StatusText = "未打上班卡,请联系管理员!";
+ }
+ }
+ else if (recordStaffAttendance.AttendanceType == "0")
+ {
+ if (recordStaffAttendance.AttendanceType == status.ToString())
+ {
+ StatusText = "未打下班卡,请联系管理员!";
+ }
+ }
+ StaffIdText = user.StaffId;
+ CheckStatus = user.StaffName + " " + user.TeamCode + " 打卡成功!";
+ var list = _rfidHandleBusniess.HandleAndInsertStaffAttendance(user, isCheckOn);
+ System.Windows.Application.Current.Dispatcher.Invoke((Action)(async () =>
+ {
+ RecordStaffAttendanceDataGrid.Clear();
+ list.ForEach(item => { RecordStaffAttendanceDataGrid.Add(item); });
+ }));
+ _rfidHandleBusniess.HandleStaffCommute(user, isCheckOn);
+ }
+ else
+ {
+ if (recordStaffAttendance.AttendanceType != status.ToString())
+ {
+ StaffIdText = user.StaffId;
+ CheckStatus = user.StaffName + " " + user.TeamCode + " 打卡成功!";
+ var list = _rfidHandleBusniess.HandleAndInsertStaffAttendance(user, isCheckOn);
+ System.Windows.Application.Current.Dispatcher.Invoke((Action)(async () =>
+ {
+ RecordStaffAttendanceDataGrid.Clear();
+ list.ForEach(item => { RecordStaffAttendanceDataGrid.Add(item); });
+ }));
+ _rfidHandleBusniess.HandleStaffCommute(user, isCheckOn);
+ }
+ else
+ {
+ StatusText = "请勿重复打卡!";
}
}
- else if (attendanceType == "0")
- {
- if (attendanceType == status.ToString())
- {
- StatusText = "未打下班卡,请联系管理员!";
- }
- }
- StaffIdText = user.StaffId;
- CheckStatus = user.StaffName + " " + user.TeamCode + " 打卡成功!";
- var list = _rfidHandleBusniess.HandleAndInsertStaffAttendance(user,isCheckOn);
- System.Windows.Application.Current.Dispatcher.Invoke((Action)(async () =>
- {
- RecordStaffAttendanceDataGrid.Clear();
- list.ForEach(item => { RecordStaffAttendanceDataGrid.Add(item); });
- }));
- _rfidHandleBusniess.HandleStaffCommute(user, isCheckOn);
+
}
else
{
@@ -344,7 +370,7 @@ namespace SlnMesnac.WPF.ViewModel
{
for (int i = 0; i < uniqueStrings.Count; i++)
{
- if (uniqueStrings[i] == str && (DateTime.Now - timestamps[i]).TotalMinutes < 1)
+ if (uniqueStrings[i] == str && (DateTime.Now - timestamps[i]).TotalSeconds < 30)
{
return true;
}
@@ -352,7 +378,6 @@ namespace SlnMesnac.WPF.ViewModel
return false;
}
- //public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged([CallerMemberName] string propertyName = "")
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
diff --git a/SlnMesnac.WPF/ViewModel/ExecuteViewModel.cs b/SlnMesnac.WPF/ViewModel/ExecuteViewModel.cs
index c4d090f..8768944 100644
--- a/SlnMesnac.WPF/ViewModel/ExecuteViewModel.cs
+++ b/SlnMesnac.WPF/ViewModel/ExecuteViewModel.cs
@@ -37,11 +37,13 @@ namespace SlnMesnac.WPF.ViewModel
private IRecordStaffAttendanceService _recordStaffAttendanceService;
private string StationCode;
public static bool isComplete = true;
+ private ProdPLanInfo pLanInfo;
///
/// 按钮文字转换事件
///
- public event PropertyChangedEventHandler PropertyChanged;
+ public event PropertyChangedEventHandler PropertyChanged = delegate { };
+
///
/// 检索命令
///
@@ -76,6 +78,8 @@ namespace SlnMesnac.WPF.ViewModel
.SetBasePath(System.AppContext.BaseDirectory)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
IConfigurationRoot configuration = configurationBuilder.Build();
+ pLanInfo = _prodPlanInfoService.GetRecordStaffAttendancesByConditions("", "", "", "", "1").FirstOrDefault();
+ Refresh(pLanInfo);
// 从配置文件中获取ProductLineNameTextBlock的值
stationTextBlock = configuration.GetSection("AppConfig")["ProductLineName"];
StationCode = configuration.GetSection("AppConfig")["ProductLineCode"];
@@ -97,7 +101,7 @@ namespace SlnMesnac.WPF.ViewModel
}
///
- /// 换班弹窗
+ /// 报工弹窗
///
private void ProductionReport()
{
@@ -133,7 +137,7 @@ namespace SlnMesnac.WPF.ViewModel
// 将当前记录存为实体,可以通过parameter获取当前记录的信息
string orderCode = _selectedRow.OrderCode.ToString();
string planCode = _selectedRow.PlanCode.ToString();
- ProdPLanInfo pLanInfo = _prodPlanInfoService.GetRecordStaffAttendancesByConditions(orderCode, planCode, "", "", "0").First();
+ pLanInfo = _prodPlanInfoService.GetRecordStaffAttendancesByConditions(orderCode, planCode, "", "", "0").First();
RecordStaffAttendance currentRecord = _recordStaffAttendanceService.GetLastestOnRecord();
RecordStaffAttendance nextRecord = _recordStaffAttendanceService.GetLastestOffRecord();
// 向detail表里插入一条数据
@@ -162,7 +166,9 @@ namespace SlnMesnac.WPF.ViewModel
//刷新明细
private void Refresh(ProdPLanInfo pLanInfo)
{
- ProdPlanDetail planDetail = _prodPlanDetailService.GetPlanDetailsByPlanCode(pLanInfo.PlanCode);
+ if(pLanInfo != null)
+ {
+ ProdPlanDetail planDetail = _prodPlanDetailService.GetPlanDetailsByPlanCode(pLanInfo.PlanCode);
PlanCodeText = planDetail.PlanCode;
OrderCodeText = pLanInfo.OrderCode;
MaterialCodeText = planDetail.MaterialCode;
@@ -172,6 +178,7 @@ namespace SlnMesnac.WPF.ViewModel
ProdPLanDetailDataGrid.Clear();
ProdPLanDetailDataGrid.Add(planDetail);
}));
+ }
}
#region
diff --git a/SlnMesnac.WPF/ViewModel/ProductionReportViewModel.cs b/SlnMesnac.WPF/ViewModel/ProductionReportViewModel.cs
index 27106e0..f206e91 100644
--- a/SlnMesnac.WPF/ViewModel/ProductionReportViewModel.cs
+++ b/SlnMesnac.WPF/ViewModel/ProductionReportViewModel.cs
@@ -131,7 +131,9 @@ namespace SlnMesnac.WPF.ViewModel
double newAmountDouble = Convert.ToDouble(newAmount);
double result = currentAmountDouble + newAmountDouble;
planDetail.CompleteAmount = result.ToString();
+ planInfo.CompleteAmount = result.ToString();
_prodPlanDetailService.Update(planDetail);
+ _prodPlanInfoService.Update(planInfo);
Refresh();
NewAmountText = null;
HintText = "已提交!";
@@ -151,7 +153,7 @@ namespace SlnMesnac.WPF.ViewModel
}
///
- /// 确认命令
+ /// 结束工单命令
///
public ICommand EndPlanCommand { get; private set; }
private void EndPlan()
diff --git a/SlnMesnac.WPF/Views/HandOverWin.xaml b/SlnMesnac.WPF/Views/HandOverWin.xaml
index 6ee74a0..652d63a 100644
--- a/SlnMesnac.WPF/Views/HandOverWin.xaml
+++ b/SlnMesnac.WPF/Views/HandOverWin.xaml
@@ -94,7 +94,7 @@
-
+
@@ -103,7 +103,7 @@
-
+