LIJU 4 meses atrás
pai
commit
ce19987e64
1 arquivos alterados com 26 adições e 2 exclusões
  1. 26 2
      ThCardReader/JiangSuWorkInjuryBusiness.cs

+ 26 - 2
ThCardReader/JiangSuWorkInjuryBusiness.cs

@@ -623,7 +623,29 @@ namespace ThCardReader
                         if (signData != null)
                         {
                             currentSignNo = signData["sign_no"]?.ToString() ?? "";
-                            signInTime = DateTime.Now;
+                            
+                            // 从服务器返回数据中获取签到时间,格式:yyyyMMddHHmmss
+                            string signTimeStr = signData["sign_time"]?.ToString() ?? "";
+                            if (!string.IsNullOrEmpty(signTimeStr) && signTimeStr.Length == 14)
+                            {
+                                try
+                                {
+                                    signInTime = DateTime.ParseExact(signTimeStr, "yyyyMMddHHmmss", null);
+                                }
+                                catch
+                                {
+                                    // 如果解析失败,使用本地时间作为备选
+                                    signInTime = DateTime.Now;
+                                    LogError($"服务器返回的签到时间格式错误: {signTimeStr},使用本地时间");
+                                }
+                            }
+                            else
+                            {
+                                // 如果服务器没有返回签到时间,使用本地时间
+                                signInTime = DateTime.Now;
+                                LogInfo($"服务器未返回签到时间,使用本地时间: {signInTime:yyyy-MM-dd HH:mm:ss}");
+                            }
+                            
                             signInOperator = currentConfig?.DefaultOperator ?? "";
                             
                             // 记录签到成功日志
@@ -637,7 +659,9 @@ namespace ThCardReader
                         signInTime = DateTime.MinValue;
                         signInOperator = "";
                         
-                        LogInfo($"签退成功,时间: {DateTime.Now:yyyy-MM-dd HH:mm:ss}");
+                        // 记录签退时间,使用统一格式
+                        string signOutTimeStr = DateTime.Now.ToString("yyyyMMddHHmmss");
+                        LogInfo($"签退成功,时间: {signOutTimeStr}");
                         break;
                 }
             }