diff --git a/CreateModel.bat b/CreateModel.bat
index 4c6c1f5..5956745 100644
--- a/CreateModel.bat
+++ b/CreateModel.bat
@@ -27,7 +27,7 @@ REM --------------
@echo.
@call "%VS150%"
-SqlMetal /views /server:. /database:CNCEC_SUBQHSEDB_JT /user:sa /password:1111 /code:%Model_ROOT%\Model.cs /namespace:Model
+SqlMetal /views /server:.\MSSQLSERVER2022 /database:CNCEC_SUBQHSEDB_JT /user:sa /password:1111 /code:%Model_ROOT%\Model.cs /namespace:Model
@ECHO 完成
pause
diff --git a/DataBase/鐗堟湰鏃ュ織/SUBQHSE_V2026-05-17-lc001.sql b/DataBase/鐗堟湰鏃ュ織/SUBQHSE_V2026-05-17-lc001.sql
new file mode 100644
index 0000000..c6a35fd
--- /dev/null
+++ b/DataBase/鐗堟湰鏃ュ織/SUBQHSE_V2026-05-17-lc001.sql
@@ -0,0 +1,34 @@
+
+
+INSERT INTO [dbo].[Sys_Menu] ([MenuId], [MenuName], [Icon], [Url], [SortIndex], [SuperMenu], [MenuType], [IsOffice], [IsEnd], [IsUsed]) VALUES (N'5B302FF3-A6E4-4305-A0C0-64CA7377777A', N'考勤时间管理', NULL, N'HSSE/SitePerson/DateManage.aspx', '9', N'EE260447-028F-46AF-8864-9A5DC9DAA5BD', N'Menu_HSSE', '0', '1', '1');
+INSERT INTO [dbo].[Sys_ButtonToMenu] ([ButtonToMenuId], [MenuId], [ButtonName], [SortIndex]) VALUES (N'1CFF6CE1-52F4-41F4-A40F-1DB4DB353974', N'5B302FF3-A6E4-4305-A0C0-64CA7377777A', N'增加', '1');
+INSERT INTO [dbo].[Sys_ButtonToMenu] ([ButtonToMenuId], [MenuId], [ButtonName], [SortIndex]) VALUES (N'46F5F687-D838-4D7E-A7D0-F0262BFC9F04', N'5B302FF3-A6E4-4305-A0C0-64CA7377777A', N'删除', '3');
+INSERT INTO [dbo].[Sys_ButtonToMenu] ([ButtonToMenuId], [MenuId], [ButtonName], [SortIndex]) VALUES (N'CEC8EAE8-A691-496A-BE4B-AFD9C8BD6FAD', N'5B302FF3-A6E4-4305-A0C0-64CA7377777A', N'保存', '4');
+INSERT INTO [dbo].[Sys_ButtonToMenu] ([ButtonToMenuId], [MenuId], [ButtonName], [SortIndex]) VALUES (N'DF01EF57-7D20-4E1D-AE6C-CC65798D5830', N'5B302FF3-A6E4-4305-A0C0-64CA7377777A', N'修改', '2');
+
+CREATE TABLE [dbo].[Kqgl_DateManage](
+ [Id] [nvarchar](50) NOT NULL,
+ [ProjectId] [nvarchar](50) NULL,
+ [AmStartTime1] [time](7) NULL,
+ [AmStartTime2] [time](7) NULL,
+ [AmEndTime1] [time](7) NULL,
+ [AmEndTime2] [time](7) NULL,
+ [PmStartTime1] [time](7) NULL,
+ [PmStartTime2] [time](7) NULL,
+ [PmEndTime1] [time](7) NULL,
+ [PmEndTime2] [time](7) NULL,
+ [LateTime] [int] NULL,
+ [LeaveTime] [int] NULL,
+ [EquipmentCode] [nvarchar](500) NULL,
+ CONSTRAINT [PK_Kqgl_DateManage] PRIMARY KEY CLUSTERED
+(
+ [Id] ASC
+)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
+) ON [PRIMARY]
+
+GO
+
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'允许迟到' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Kqgl_DateManage', @level2type=N'COLUMN',@level2name=N'LateTime'
+GO
+
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'允许早退' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Kqgl_DateManage', @level2type=N'COLUMN',@level2name=N'LeaveTime'
\ No newline at end of file
diff --git a/SUBQHSE/BLL/BLL.csproj b/SUBQHSE/BLL/BLL.csproj
index 8d2447c..a0cfe17 100644
--- a/SUBQHSE/BLL/BLL.csproj
+++ b/SUBQHSE/BLL/BLL.csproj
@@ -833,6 +833,7 @@
+
diff --git a/SUBQHSE/BLL/Common/Const.cs b/SUBQHSE/BLL/Common/Const.cs
index bc7f4e0..b24991b 100644
--- a/SUBQHSE/BLL/Common/Const.cs
+++ b/SUBQHSE/BLL/Common/Const.cs
@@ -2632,7 +2632,10 @@ namespace BLL
/// 浜哄伐鏃舵棩鎶
///
public const string DayReportMenuId = "8F15D3BE-BE21-4A6F-AD5C-2BBECEE46149";
-
+ ///
+ /// 鑰冨嫟鏃堕棿绠$悊
+ ///
+ public const string Menu_KqglDateManger = "5B302FF3-A6E4-4305-A0C0-64CA7377777A";
///
/// 浜哄伐鏃舵湀鎶
///
diff --git a/SUBQHSE/BLL/OpenService/YunMouService.cs b/SUBQHSE/BLL/OpenService/YunMouService.cs
new file mode 100644
index 0000000..83bfdb3
--- /dev/null
+++ b/SUBQHSE/BLL/OpenService/YunMouService.cs
@@ -0,0 +1,440 @@
+锘縰sing BLL.Common;
+using Model;
+using Newtonsoft.Json;
+using System;
+using System.Linq;
+using System.Timers;
+
+namespace BLL
+{
+ public class YunMouService
+ {
+
+ #region 鍚姩鐩戣鍣 绯荤粺鍚姩5鍒嗛挓
+ ///
+ /// 鐩戣缁勪欢
+ ///
+ private static Timer messageTimer;
+ private static string token;
+ private static string consumerId;
+ ///
+ /// 鍚姩鐩戣鍣,涓嶄竴瀹氳兘鎴愬姛锛屾牴鎹郴缁熻缃喅瀹氬鐩戣鍣ㄦ墽琛岀殑鎿嶄綔 绯荤粺鍚姩5鍒嗛挓
+ ///
+ public static void StartMonitor()
+ {
+ token = YunMouHelper.getToken();
+ consumerId = YunMouHelper.addConsumer(token);
+
+ if (messageTimer != null)
+ {
+ messageTimer.Stop();
+ messageTimer.Dispose();
+ messageTimer = null;
+ }
+
+ messageTimer = new Timer
+ {
+ AutoReset = true
+ };
+ messageTimer.Elapsed += new ElapsedEventHandler(InProcess);
+ messageTimer.Interval = 4000 * 60;// 10鍒嗛挓
+ messageTimer.Start();
+ }
+
+ ///
+ /// 娴佺▼纭 瀹氭椂鎵ц 绯荤粺鍚姩5鍒嗛挓
+ ///
+ /// Timer缁勪欢
+ /// 浜嬩欢鍙傛暟
+ private static void InProcess(object sender, ElapsedEventArgs e)
+ {
+ //鑷姩璋冪敤
+ DoSynchDataNew();
+ }
+ #endregion
+
+ ///
+ /// 鎵嬪姩璋冪敤
+ ///
+ public static void manualOperation(string tokenSd, string consumerIdSd)
+ {
+ DoSynchData(tokenSd, consumerIdSd);
+ }
+
+ ///
+ ///
+ ///
+ public static void DoSynchData(string tokenSd = "", string consumerIdSd = "")
+ {
+ try
+ {
+ if (string.IsNullOrEmpty(token))
+ {
+ token = tokenSd;
+ }
+
+ if (string.IsNullOrEmpty(consumerId))
+ {
+ consumerId = consumerIdSd;
+ }
+ ////鑾峰彇token
+ //token = YunMouHelper.getToken();
+ ////鍒涘缓娑堣垂鑰呮秷璐硅呭鏋5鍒嗛挓鏈皟鐢ㄦ媺鍙栨秷鎭帴鍙e皢琚垹闄ゃ
+ //consumerId = YunMouHelper.addConsumer(token);
+ ErrLogInfo.WriteLog(token + ";" + consumerId);
+
+ string content = YunMouHelper.consumerMessage(consumerId, token);
+ //璋冪敤娑堟伅闃熷垪绗竴娆
+ ErrLogInfo.WriteLog(content);
+ var j2 = JsonConvert.DeserializeObject(content);
+
+ //娑堣垂鑰呴娆℃媺鍙栨秷鎭椂闇瑕佷笌娑堟伅閫氶亾寤虹珛杩炴帴锛屾娆¤皟鐢ㄥ疄闄呮媺鍒版秷鎭垪琛ㄤ负绌猴紝
+ //鍐嶆璋冪敤鍗冲彲鎷夊彇鍒版秷鎭紝30绉掑唴蹇呴』鍐嶆璋冪敤鎷夊彇娑堟伅鎺ュ彛锛屽惁鍒欏皢鏂紑涓庢秷鎭氶亾鐨勮繛鎺ャ
+ //鍥犳鎷夊彇闂撮殧闇瑕佸湪30绉掍互鍐咃紝鍚﹀垯姣忔鎷夊埌鐨勬秷鎭槸绌虹殑
+ if (j2.data.Count > 0)
+ {
+ using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString))
+ {
+ for (int i = 0; i < j2.data.Count; i++)
+ {
+ var msg = JsonConvert.DeserializeObject(j2.data[i]["content"].ToString());
+ if (!string.IsNullOrEmpty(Convert.ToString(msg.employeeNo)))
+ {
+ string deviceSerial = Convert.ToString(msg.deviceSerial);
+ string employeeNo = Convert.ToString(msg.employeeNo);
+ DateTime dateTime = Convert.ToDateTime(Convert.ToString(msg.dateTime));
+ var devices = Funs.DB.Project_Devices.FirstOrDefault(x => x.DeviceSerial == deviceSerial);
+ Model.SitePerson_PersonInOut newInOut = new Model.SitePerson_PersonInOut
+ {
+ ProjectId = devices.ProjectId,
+ IdentityCard = employeeNo,
+ IsIn = true,
+ ChangeTime = dateTime,
+ InOutWay = Const.InOutWay_1,
+ };
+ InsertInOut(newInOut);
+ }
+
+ }
+ }
+ }
+ else
+ {
+ //淇敼 濡傛灉涓虹┖寰幆璋冪敤鏈澶5娆
+ for (int y = 0; y < 5; y++)
+ {
+ //濡傛灉涓虹┖鍐嶈皟涓娆
+ content = YunMouHelper.consumerMessage(consumerId, token);
+ //璋冪敤娑堟伅闃熷垪绗簩娆
+ ErrLogInfo.WriteLog(content + "璋冪敤娑堟伅闃熷垪" + (y + 2).ToString());
+ j2 = JsonConvert.DeserializeObject(content);
+ if (j2.data.Count > 0)
+ {
+ using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString))
+ {
+ for (int i = 0; i < j2.data.Count; i++)
+ {
+ var msg = JsonConvert.DeserializeObject(j2.data[i]["content"].ToString());
+ if (!string.IsNullOrEmpty(Convert.ToString(msg.employeeNo)))
+ {
+ string deviceSerial = Convert.ToString(msg.deviceSerial);
+ string employeeNo = Convert.ToString(msg.employeeNo);
+ DateTime dateTime = Convert.ToDateTime(Convert.ToString(msg.dateTime));
+
+ var devices = Funs.DB.Project_Devices.FirstOrDefault(x => x.DeviceSerial == deviceSerial);
+ //韬唤璇佸彿鏃
+ if (employeeNo.Length == 18)
+ {
+ Model.SitePerson_PersonInOut newInOut = new Model.SitePerson_PersonInOut
+ {
+ ProjectId = devices.ProjectId,
+ IdentityCard = employeeNo,
+ IsIn = true,
+ ChangeTime = dateTime,
+ InOutWay = Const.InOutWay_1,
+ };
+ InsertInOut(newInOut);
+
+ }
+ }
+
+ }
+ //鎻愪氦鍋忕Щ閲
+ var msgOffset = YunMouHelper.offsets(consumerId, token);
+ }
+ //鏈夊艰烦鍑哄惊鐜
+ break;
+ }
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ var erro = ex.Message;
+ ErrLogInfo.WriteLog(ex.Message);
+ }
+ }
+
+ public static void DoSynchDataNew()
+ {
+ try
+ {
+ ////鑾峰彇token
+ //token = YunMouHelper.getToken();
+ ////鍒涘缓娑堣垂鑰呮秷璐硅呭鏋5鍒嗛挓鏈皟鐢ㄦ媺鍙栨秷鎭帴鍙e皢琚垹闄ゃ
+ //consumerId = YunMouHelper.addConsumer(token);
+
+ ErrLogInfo.WriteLog(token + ";" + consumerId + "璋冪敤娑堟伅闃熷垪鍙傛暟");
+ string content = YunMouHelper.consumerMessage(consumerId, token);
+ //璋冪敤娑堟伅闃熷垪绗竴娆
+ ErrLogInfo.WriteLog(content);
+ var j2 = JsonConvert.DeserializeObject(content);
+
+ //娑堣垂鑰呴娆℃媺鍙栨秷鎭椂闇瑕佷笌娑堟伅閫氶亾寤虹珛杩炴帴锛屾娆¤皟鐢ㄥ疄闄呮媺鍒版秷鎭垪琛ㄤ负绌猴紝
+ //鍐嶆璋冪敤鍗冲彲鎷夊彇鍒版秷鎭紝30绉掑唴蹇呴』鍐嶆璋冪敤鎷夊彇娑堟伅鎺ュ彛锛屽惁鍒欏皢鏂紑涓庢秷鎭氶亾鐨勮繛鎺ャ
+ //鍥犳鎷夊彇闂撮殧闇瑕佸湪30绉掍互鍐咃紝鍚﹀垯姣忔鎷夊埌鐨勬秷鎭槸绌虹殑
+ if (j2.data.Count > 0)
+ {
+ using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString))
+ {
+ for (int i = 0; i < j2.data.Count; i++)
+ {
+ try
+ {
+ var msg = JsonConvert.DeserializeObject(j2.data[i]["content"].ToString());
+ if (!string.IsNullOrEmpty(Convert.ToString(msg.employeeNo)))
+ {
+ string deviceSerial = Convert.ToString(msg.deviceSerial);
+ string employeeNo = Convert.ToString(msg.employeeNo);
+ DateTime dateTime = Convert.ToDateTime(Convert.ToString(msg.dateTime));
+ var devices = db.Project_Devices.FirstOrDefault(x => x.DeviceSerial == deviceSerial);
+ Model.SitePerson_PersonInOut newInOut = new Model.SitePerson_PersonInOut
+ {
+ ProjectId = devices.ProjectId,
+ IdentityCard = employeeNo,
+ IsIn = true,
+ ChangeTime = dateTime,
+ InOutWay = Const.InOutWay_1,
+ };
+ InsertInOut(newInOut);
+ }
+ }
+ catch (Exception e)
+ {
+ ErrLogInfo.WriteLog(e.StackTrace);
+ }
+
+ }
+ }
+ }
+ else
+ {
+ //淇敼 濡傛灉涓虹┖寰幆璋冪敤鏈澶5娆
+ for (int y = 0; y < 5; y++)
+ {
+ //濡傛灉涓虹┖鍐嶈皟涓娆
+ content = YunMouHelper.consumerMessage(consumerId, token);
+ //璋冪敤娑堟伅闃熷垪绗簩娆
+ ErrLogInfo.WriteLog(content + "璋冪敤娑堟伅闃熷垪" + (y + 2).ToString());
+ j2 = JsonConvert.DeserializeObject(content);
+ if (j2.data.Count > 0)
+ {
+ using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString))
+ {
+ for (int i = 0; i < j2.data.Count; i++)
+ {
+ try
+ {
+ var msg = JsonConvert.DeserializeObject(j2.data[i]["content"].ToString());
+ if (!string.IsNullOrEmpty(Convert.ToString(msg.employeeNo)))
+ {
+ string deviceSerial = Convert.ToString(msg.deviceSerial);
+ string employeeNo = Convert.ToString(msg.employeeNo);
+ DateTime dateTime = Convert.ToDateTime(Convert.ToString(msg.dateTime));
+
+ var devices = Funs.DB.Project_Devices.FirstOrDefault(x => x.DeviceSerial == deviceSerial);
+ //韬唤璇佸彿鏃
+ // if (employeeNo.Length == 18)
+ {
+ Model.SitePerson_PersonInOut newInOut = new Model.SitePerson_PersonInOut
+ {
+ ProjectId = devices.ProjectId,
+ IdentityCard = employeeNo,
+ IsIn = true,
+ ChangeTime = dateTime,
+ InOutWay = Const.InOutWay_1,
+ };
+ InsertInOut(newInOut);
+
+ }
+ }
+ }
+ catch (Exception e)
+ {
+ ErrLogInfo.WriteLog(e.StackTrace);
+ }
+
+ }
+ //鎻愪氦鍋忕Щ閲
+ var msgOffset = YunMouHelper.offsets(consumerId, token);
+ }
+ //鏈夊艰烦鍑哄惊鐜
+ break;
+ }
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ var erro = ex.Message;
+ ErrLogInfo.WriteLog(ex.Message);
+ }
+ }
+
+ #region 鏍规嵁鑰冨嫟鏃堕棿杩涘叆鑰冨嫟
+ public static void InsertInOut(Model.SitePerson_PersonInOut model)
+ {
+ //鑰冨嫟鏃堕棿閰嶇疆涓嶄负绌虹殑鎯呭喌
+ var Kqgl_DateManageModel = Funs.DB.Kqgl_DateManage.FirstOrDefault(x => x.ProjectId == model.ProjectId);
+ if (Kqgl_DateManageModel != null)
+ {
+ var changeTime = Convert.ToDateTime(model.ChangeTime);
+ var nowTime = TimeSpan.Parse(changeTime.ToString("HH:mm:ss"));//褰撳墠鏃堕棿鐨勬椂鍒嗙
+ #region 鏍规嵁瑙勫垯鍒ゆ柇鏄繘闂ㄨ繕鏄嚭闂
+ TimeSpan AmStartTime1 = TimeSpan.Parse(Kqgl_DateManageModel.AmStartTime1.ToString());
+ TimeSpan AmStartTime2 = TimeSpan.Parse(Kqgl_DateManageModel.AmStartTime2.ToString());
+
+ TimeSpan AmEndTime1 = TimeSpan.Parse(Kqgl_DateManageModel.AmEndTime1.ToString());
+ TimeSpan AmEndTime2 = TimeSpan.Parse(Kqgl_DateManageModel.AmEndTime2.ToString());
+
+ TimeSpan PmStartTime1 = TimeSpan.Parse(Kqgl_DateManageModel.PmStartTime1.ToString());
+ TimeSpan PmStartTime2 = TimeSpan.Parse(Kqgl_DateManageModel.PmStartTime2.ToString());
+
+ TimeSpan PmEndTime1 = TimeSpan.Parse(Kqgl_DateManageModel.PmEndTime1.ToString());
+ TimeSpan PmEndTime2 = TimeSpan.Parse(Kqgl_DateManageModel.PmEndTime2.ToString());
+
+ TimeSpan time1 = new TimeSpan(0, Convert.ToInt32(Kqgl_DateManageModel.LateTime), 0);
+ TimeSpan time2 = new TimeSpan(0, Convert.ToInt32(Kqgl_DateManageModel.LeaveTime), 0);
+ //鍏佽杩熷埌x鍒嗛挓
+ AmStartTime2 = AmStartTime2.Add(time2);
+ PmStartTime2 = PmStartTime2.Add(time2);
+
+ //鍏佽鏃╅x鍒嗛挓
+ AmEndTime1 = AmEndTime1.Add(-time1);
+ PmEndTime1 = PmEndTime1.Add(-time1);
+
+ SitePerson_Person personModel = null;
+ if (!string.IsNullOrEmpty(model.PersonId))
+ {
+ personModel = Funs.DB.SitePerson_Person.FirstOrDefault(x => x.PersonId == model.PersonId && x.ProjectId == model.ProjectId);
+ model.IdentityCard = personModel.IdentityCard;
+ }
+ else
+ {
+ personModel = Funs.DB.SitePerson_Person.FirstOrDefault(x => x.IdentityCard == model.IdentityCard && x.ProjectId == model.ProjectId);
+ }
+ if (personModel != null)
+ {
+ //鐘舵侊細0涓婂崍涓婄彮 1涓婂崍涓嬬彮 2涓嬪崍涓婄彮 3涓嬪崍涓嬬彮
+ var state = "";
+ //濡傛灉鏄湪杩涘満鏃堕棿鍐
+ if (nowTime >= AmStartTime1 && nowTime <= AmStartTime2)
+ {
+ model.IsIn = true;
+ state = "0";
+ }
+ if (nowTime >= PmStartTime1 && nowTime <= PmStartTime2)
+ {
+ model.IsIn = true;
+ state = "2";
+ }
+ if (nowTime >= AmEndTime1 && nowTime <= AmEndTime2)
+ {
+ model.IsIn = false;
+ state = "1";
+ }
+ if (nowTime >= PmEndTime1 && nowTime <= PmEndTime2)
+ {
+ model.IsIn = false;
+ state = "3";
+ }
+ Model.SUBQHSEDB db = Funs.DB;
+ #region 杩欎釜浜鸿鏃堕棿鐐瑰唴鏈夋暟鎹殑璇濓紝灏卞垹鎺(涓婄彮鎵撳崱鏃堕棿鍙栨渶鏃╀笉鍒犻櫎锛屼笅鐝彇鏈鏅氾紝鍒犻櫎鏃╃殑)
+ var objTime1 = Convert.ToDateTime(Convert.ToDateTime(changeTime).ToString("yyyy-MM-dd") + " " + AmStartTime1.ToString());
+ var objTime2 = Convert.ToDateTime(Convert.ToDateTime(changeTime).ToString("yyyy-MM-dd") + " " + AmStartTime2.ToString());
+
+ var objTime3 = Convert.ToDateTime(Convert.ToDateTime(changeTime).ToString("yyyy-MM-dd") + " " + AmEndTime1.ToString());
+ var objTime4 = Convert.ToDateTime(Convert.ToDateTime(changeTime).ToString("yyyy-MM-dd") + " " + AmEndTime2.ToString());
+
+ var objTime5 = Convert.ToDateTime(Convert.ToDateTime(changeTime).ToString("yyyy-MM-dd") + " " + PmStartTime1.ToString());
+ var objTime6 = Convert.ToDateTime(Convert.ToDateTime(changeTime).ToString("yyyy-MM-dd") + " " + PmStartTime2.ToString());
+
+ var objTime7 = Convert.ToDateTime(Convert.ToDateTime(changeTime).ToString("yyyy-MM-dd") + " " + PmEndTime1.ToString());
+ var objTime8 = Convert.ToDateTime(Convert.ToDateTime(changeTime).ToString("yyyy-MM-dd") + " " + PmEndTime2.ToString());
+
+ //1.涓婂崍涓婄彮
+ var result1 = db.SitePerson_PersonInOut.Where(x => x.ProjectId == model.ProjectId && x.IdentityCard == personModel.IdentityCard &&
+ x.ChangeTime >= objTime1 && x.ChangeTime <= objTime2
+ ).ToList();
+ //2.涓婂崍涓嬬彮
+ var result2 = db.SitePerson_PersonInOut.Where(x => x.ProjectId == model.ProjectId && x.IdentityCard == personModel.IdentityCard &&
+ x.ChangeTime >= objTime3 && x.ChangeTime <= objTime4
+ ).ToList();
+ //3.涓嬪崍涓婄彮
+ var result3 = db.SitePerson_PersonInOut.Where(x => x.ProjectId == model.ProjectId && x.IdentityCard == personModel.IdentityCard &&
+ x.ChangeTime >= objTime5 && x.ChangeTime <= objTime6
+ ).ToList();
+ //4.涓嬪崍涓嬬彮
+ var result4 = db.SitePerson_PersonInOut.Where(x => x.ProjectId == model.ProjectId && x.IdentityCard == personModel.IdentityCard &&
+ x.ChangeTime >= objTime7 && x.ChangeTime <= objTime8
+ ).ToList();
+
+ //涓婄彮鎵撳崱鏃堕棿鍙栨渶鏃╋紝涓嬬彮鍙栨渶鏅
+ if (result1.Count > 0 && state == "0")
+ {
+ //db.SitePerson_PersonInOut.DeleteAllOnSubmit(result1);
+ //db.SubmitChanges();
+ }
+ else if (result1.Count == 0 && state == "0")
+ {
+ PersonInOutService.AddPersonInOut(model);
+ }
+ if (result2.Count > 0 && state == "1")
+ {
+ db.SitePerson_PersonInOut.DeleteAllOnSubmit(result2);
+ db.SubmitChanges();
+ PersonInOutService.AddPersonInOut(model);
+ }
+ else if (result2.Count == 0 && state == "1")
+ {
+ PersonInOutService.AddPersonInOut(model);
+ }
+ if (result3.Count > 0 && state == "2")
+ {
+ //db.SitePerson_PersonInOut.DeleteAllOnSubmit(result3);
+ //db.SubmitChanges();
+ }
+ else if (result3.Count == 0 && state == "2")
+ {
+ PersonInOutService.AddPersonInOut(model);
+ }
+ if (result4.Count > 0 && state == "3")
+ {
+ db.SitePerson_PersonInOut.DeleteAllOnSubmit(result4);
+ db.SubmitChanges();
+ PersonInOutService.AddPersonInOut(model);
+ }
+ else if (result4.Count == 0 && state == "3")
+ {
+ PersonInOutService.AddPersonInOut(model);
+ }
+ #endregion
+ }
+
+ #endregion
+ }
+
+ }
+ #endregion
+ }
+}
diff --git a/SUBQHSE/FineUIPro.Web/FineUIPro.Web.csproj b/SUBQHSE/FineUIPro.Web/FineUIPro.Web.csproj
index b3f7984..3c4cedc 100644
--- a/SUBQHSE/FineUIPro.Web/FineUIPro.Web.csproj
+++ b/SUBQHSE/FineUIPro.Web/FineUIPro.Web.csproj
@@ -695,6 +695,7 @@
+
@@ -1153,6 +1154,7 @@
+
@@ -9530,6 +9532,13 @@
kq.aspx
+
+ kqProject.aspx
+ ASPXCodeBehind
+
+
+ kqProject.aspx
+
OccupationalDiseaseAccident.aspx
ASPXCodeBehind
@@ -12574,6 +12583,13 @@
SubcontractLeasingProtocol.aspx
+
+ DateManage.aspx
+ ASPXCodeBehind
+
+
+ DateManage.aspx
+
ProjectWorkPersonStatistic.aspx
ASPXCodeBehind
@@ -18538,7 +18554,7 @@
-
+