11
This commit is contained in:
+1
-1
@@ -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
|
||||
|
||||
@@ -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'
|
||||
@@ -833,6 +833,7 @@
|
||||
<Compile Include="OpenService\MonitorService.cs" />
|
||||
<Compile Include="DynamicTHeaderHepler.cs" />
|
||||
<Compile Include="OpenService\GetDataService.cs" />
|
||||
<Compile Include="OpenService\YunMouService.cs" />
|
||||
<Compile Include="Person\PersonTotalService.cs" />
|
||||
<Compile Include="Person\Person_DutyService.cs" />
|
||||
<Compile Include="Person\Person_DutyTemplateService.cs" />
|
||||
|
||||
@@ -2632,7 +2632,10 @@ namespace BLL
|
||||
/// 人工时日报
|
||||
/// </summary>
|
||||
public const string DayReportMenuId = "8F15D3BE-BE21-4A6F-AD5C-2BBECEE46149";
|
||||
|
||||
/// <summary>
|
||||
/// 考勤时间管理
|
||||
/// </summary>
|
||||
public const string Menu_KqglDateManger = "5B302FF3-A6E4-4305-A0C0-64CA7377777A";
|
||||
/// <summary>
|
||||
/// 人工时月报
|
||||
/// </summary>
|
||||
|
||||
@@ -0,0 +1,440 @@
|
||||
using BLL.Common;
|
||||
using Model;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Timers;
|
||||
|
||||
namespace BLL
|
||||
{
|
||||
public class YunMouService
|
||||
{
|
||||
|
||||
#region 启动监视器 系统启动5分钟
|
||||
/// <summary>
|
||||
/// 监视组件
|
||||
/// </summary>
|
||||
private static Timer messageTimer;
|
||||
private static string token;
|
||||
private static string consumerId;
|
||||
/// <summary>
|
||||
/// 启动监视器,不一定能成功,根据系统设置决定对监视器执行的操作 系统启动5分钟
|
||||
/// </summary>
|
||||
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();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 流程确认 定时执行 系统启动5分钟
|
||||
/// </summary>
|
||||
/// <param name="sender">Timer组件</param>
|
||||
/// <param name="e">事件参数</param>
|
||||
private static void InProcess(object sender, ElapsedEventArgs e)
|
||||
{
|
||||
//自动调用
|
||||
DoSynchDataNew();
|
||||
}
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// 手动调用
|
||||
/// </summary>
|
||||
public static void manualOperation(string tokenSd, string consumerIdSd)
|
||||
{
|
||||
DoSynchData(tokenSd, consumerIdSd);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
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分钟未调用拉取消息接口将被删除。
|
||||
//consumerId = YunMouHelper.addConsumer(token);
|
||||
ErrLogInfo.WriteLog(token + ";" + consumerId);
|
||||
|
||||
string content = YunMouHelper.consumerMessage(consumerId, token);
|
||||
//调用消息队列第一次
|
||||
ErrLogInfo.WriteLog(content);
|
||||
var j2 = JsonConvert.DeserializeObject<dynamic>(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<dynamic>(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分钟未调用拉取消息接口将被删除。
|
||||
//consumerId = YunMouHelper.addConsumer(token);
|
||||
|
||||
ErrLogInfo.WriteLog(token + ";" + consumerId + "调用消息队列参数");
|
||||
string content = YunMouHelper.consumerMessage(consumerId, token);
|
||||
//调用消息队列第一次
|
||||
ErrLogInfo.WriteLog(content);
|
||||
var j2 = JsonConvert.DeserializeObject<dynamic>(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<dynamic>(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
|
||||
}
|
||||
}
|
||||
@@ -695,6 +695,7 @@
|
||||
<Content Include="DataShow\Environmental.aspx" />
|
||||
<Content Include="DataShow\HazardDetection.aspx" />
|
||||
<Content Include="DataShow\kq.aspx" />
|
||||
<Content Include="DataShow\kqProject.aspx" />
|
||||
<Content Include="DataShow\OccupationalDiseaseAccident.aspx" />
|
||||
<Content Include="DataShow\PhysicalExamination.aspx" />
|
||||
<Content Include="DataShow\ProjectDivision.aspx" />
|
||||
@@ -1153,6 +1154,7 @@
|
||||
<Content Include="HSSE\Meeting\MeetingManage.aspx" />
|
||||
<Content Include="HSSE\QualityAudit\SubcontractLeasingProtocolEdit.aspx" />
|
||||
<Content Include="HSSE\QualityAudit\SubcontractLeasingProtocol.aspx" />
|
||||
<Content Include="HSSE\SitePerson\DateManage.aspx" />
|
||||
<Content Include="HSSE\SitePerson\ProjectWorkPersonStatistic.aspx" />
|
||||
<Content Include="HSSE\Solution\TemporaryElectricity.aspx" />
|
||||
<Content Include="HSSE\Solution\TemporaryElectricityEdit.aspx" />
|
||||
@@ -9530,6 +9532,13 @@
|
||||
<Compile Include="DataShow\kq.aspx.designer.cs">
|
||||
<DependentUpon>kq.aspx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="DataShow\kqProject.aspx.cs">
|
||||
<DependentUpon>kqProject.aspx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="DataShow\kqProject.aspx.designer.cs">
|
||||
<DependentUpon>kqProject.aspx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="DataShow\OccupationalDiseaseAccident.aspx.cs">
|
||||
<DependentUpon>OccupationalDiseaseAccident.aspx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
@@ -12574,6 +12583,13 @@
|
||||
<Compile Include="HSSE\QualityAudit\SubcontractLeasingProtocol.aspx.designer.cs">
|
||||
<DependentUpon>SubcontractLeasingProtocol.aspx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="HSSE\SitePerson\DateManage.aspx.cs">
|
||||
<DependentUpon>DateManage.aspx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="HSSE\SitePerson\DateManage.aspx.designer.cs">
|
||||
<DependentUpon>DateManage.aspx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="HSSE\SitePerson\ProjectWorkPersonStatistic.aspx.cs">
|
||||
<DependentUpon>ProjectWorkPersonStatistic.aspx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
@@ -18538,7 +18554,7 @@
|
||||
</FlavorProperties>
|
||||
</VisualStudio>
|
||||
</ProjectExtensions>
|
||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v18.0\WebApplications\Microsoft.WebApplication.targets" />
|
||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v17.0\WebApplications\Microsoft.WebApplication.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
|
||||
@@ -76,6 +76,8 @@
|
||||
BLL.MonitorService.StartMonitor();
|
||||
//BLL.MonitorService.StartMonitorEve();
|
||||
//BLL.MonitorService.StartPersonQuarterCheck();
|
||||
BLL.YunMouService.StartMonitor();
|
||||
|
||||
QuartzServices.Init();
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
||||
@@ -0,0 +1,107 @@
|
||||
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DateManage.aspx.cs" Inherits="FineUIPro.Web.HSSE.SitePerson.DateManage" %>
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head runat="server">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>考勤时间管理</title>
|
||||
</head>
|
||||
<body>
|
||||
<form id="form1" runat="server">
|
||||
<f:PageManager ID="PageManager1" AutoSizePanelID="RegionPanel1" runat="server" />
|
||||
<f:RegionPanel ID="RegionPanel1" ShowBorder="false" runat="server" Margin="5px">
|
||||
<Regions>
|
||||
<f:Region ID="Region2" ShowBorder="false" ShowHeader="false" Position="Center" Layout="VBox"
|
||||
BoxConfigAlign="Stretch" BoxConfigPosition="Left" runat="server" AutoScroll="true">
|
||||
<Items>
|
||||
<f:GroupPanel ID="GroupPanel0" Layout="Anchor" Title="考勤时间维护" runat="server">
|
||||
<Items>
|
||||
<f:Form ID="SimpleForm1" ShowBorder="false" ShowHeader="false" AutoScroll="true"
|
||||
Layout="VBox" BodyPadding="10px" runat="server" RedStarPosition="BeforeText"
|
||||
LabelAlign="Right">
|
||||
<Rows>
|
||||
<f:FormRow runat="server" CssStyle="width:800px">
|
||||
<Items>
|
||||
<f:DatePicker runat="server" ID="txtAmStartTime1" Label="上午上班签到有效时间" LabelWidth="180px"
|
||||
Required="true" DateFormatString="HH:mm:ss" ShowRedStar="true" DisplayType="Time">
|
||||
</f:DatePicker>
|
||||
|
||||
<f:DatePicker runat="server" ID="txtAmStartTime2"
|
||||
Required="true" DateFormatString="HH:mm:ss" ShowRedStar="true" DisplayType="Time">
|
||||
</f:DatePicker>
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
|
||||
<f:FormRow runat="server">
|
||||
<Items>
|
||||
<f:DatePicker runat="server" ID="txtAmEndTime1" Label="上午下班签退有效时间" LabelWidth="180px"
|
||||
Required="true" DateFormatString="HH:mm:ss" ShowRedStar="true" DisplayType="Time">
|
||||
</f:DatePicker>
|
||||
|
||||
<f:DatePicker runat="server" ID="txtAmEndTime2"
|
||||
Required="true" DateFormatString="HH:mm:ss" ShowRedStar="true" DisplayType="Time">
|
||||
</f:DatePicker>
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
|
||||
<f:FormRow runat="server">
|
||||
<Items>
|
||||
<f:DatePicker runat="server" ID="txtPmStartTime1" Label="下午上班签到有效时间" LabelWidth="180px"
|
||||
Required="true" DateFormatString="HH:mm:ss" ShowRedStar="true" DisplayType="Time">
|
||||
</f:DatePicker>
|
||||
|
||||
<f:DatePicker runat="server" ID="txtPmStartTime2"
|
||||
Required="true" DateFormatString="HH:mm:ss" ShowRedStar="true" DisplayType="Time">
|
||||
</f:DatePicker>
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
|
||||
<f:FormRow runat="server">
|
||||
<Items>
|
||||
<f:DatePicker runat="server" ID="txtPmEndTime1" Label="下午下班签退有效时间" LabelWidth="180px"
|
||||
Required="true" DateFormatString="HH:mm:ss" ShowRedStar="true" DisplayType="Time">
|
||||
</f:DatePicker>
|
||||
|
||||
<f:DatePicker runat="server" ID="txtPmEndTime2"
|
||||
Required="true" DateFormatString="HH:mm:ss" ShowRedStar="true" DisplayType="Time">
|
||||
</f:DatePicker>
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
|
||||
<f:FormRow runat="server">
|
||||
<Items>
|
||||
<f:NumberBox ID="txtLateTime" runat="server" Required="true" ShowRedStar="true" NoDecimal="true" NoNegative="false" Label="允许迟到(分钟)" LabelWidth="180px" >
|
||||
</f:NumberBox>
|
||||
|
||||
<f:NumberBox ID="txtLeaveTime" runat="server" Required="true" ShowRedStar="true" NoDecimal="true" NoNegative="false" Label="允许早退(分钟)" LabelWidth="180px" >
|
||||
</f:NumberBox>
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
<f:FormRow runat="server">
|
||||
<Items>
|
||||
<f:TextArea runat="server" ID="txtEquipmentCode" Label="考勤机序列号(逗号分隔)" LabelWidth="180px" ></f:TextArea>
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
</Rows>
|
||||
</f:Form>
|
||||
</Items>
|
||||
</f:GroupPanel>
|
||||
</Items>
|
||||
|
||||
<Toolbars>
|
||||
<f:Toolbar ID="Toolbar1" Position="Top" ToolbarAlign="Right" runat="server">
|
||||
<Items>
|
||||
<f:Button ID="btnSave" Icon="SystemSave" runat="server" Text="保存数据" ValidateForms="Region2"
|
||||
Hidden="true" OnClick="btnSave_Click">
|
||||
</f:Button>
|
||||
</Items>
|
||||
</f:Toolbar>
|
||||
</Toolbars>
|
||||
|
||||
</f:Region>
|
||||
</Regions>
|
||||
</f:RegionPanel>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,112 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using System.Linq;
|
||||
using BLL;
|
||||
|
||||
namespace FineUIPro.Web.HSSE.SitePerson
|
||||
{
|
||||
public partial class DateManage : PageBase
|
||||
{
|
||||
public string ProjectId
|
||||
{
|
||||
get
|
||||
{
|
||||
return (string)ViewState["ProjectId"];
|
||||
}
|
||||
set
|
||||
{
|
||||
ViewState["ProjectId"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
public Model.SUBQHSEDB db = Funs.DB;
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
if (!IsPostBack)
|
||||
{
|
||||
ProjectId = CurrUser.LoginProjectId;
|
||||
GetButtonPower();
|
||||
var result = db.Kqgl_DateManage.FirstOrDefault(x => x.ProjectId == ProjectId);
|
||||
if (result!=null)
|
||||
{
|
||||
txtAmStartTime1.Text = result.AmStartTime1.ToString();
|
||||
txtAmStartTime2.Text = result.AmStartTime2.ToString();
|
||||
txtAmEndTime1.Text = result.AmEndTime1.ToString();
|
||||
txtAmEndTime2.Text = result.AmEndTime2.ToString();
|
||||
txtPmStartTime1.Text = result.PmStartTime1.ToString();
|
||||
txtPmStartTime2.Text = result.PmStartTime2.ToString();
|
||||
txtPmEndTime1.Text = result.PmEndTime1.ToString();
|
||||
txtPmEndTime2.Text = result.PmEndTime2.ToString();
|
||||
txtLateTime.Text = result.LateTime.ToString();
|
||||
txtLeaveTime.Text = result.LeaveTime.ToString();
|
||||
txtEquipmentCode.Text = result.EquipmentCode;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void GetButtonPower()
|
||||
{
|
||||
if (BLL.CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.Menu_KqglDateManger, Const.BtnSave))
|
||||
{
|
||||
this.btnSave.Hidden = false;
|
||||
}
|
||||
}
|
||||
|
||||
protected void btnSave_Click(object sender, EventArgs e) {
|
||||
var result = db.Kqgl_DateManage.FirstOrDefault(x => x.ProjectId == ProjectId);
|
||||
if (result==null)
|
||||
{
|
||||
Model.Kqgl_DateManage model = new Model.Kqgl_DateManage()
|
||||
{
|
||||
ProjectId=ProjectId,
|
||||
Id = Guid.NewGuid().ToString(),
|
||||
|
||||
AmStartTime2 = TimeSpan.Parse(txtAmStartTime2.Text),
|
||||
|
||||
AmEndTime1 = TimeSpan.Parse(txtAmEndTime1.Text),
|
||||
AmEndTime2 = TimeSpan.Parse(txtAmEndTime2.Text),
|
||||
|
||||
PmStartTime1 = TimeSpan.Parse(txtPmStartTime1.Text),
|
||||
PmStartTime2 = TimeSpan.Parse(txtPmStartTime2.Text),
|
||||
|
||||
PmEndTime1 = TimeSpan.Parse(txtPmEndTime1.Text),
|
||||
PmEndTime2 = TimeSpan.Parse(txtPmEndTime2.Text),
|
||||
|
||||
LateTime = Convert.ToInt32(txtLateTime.Text),
|
||||
LeaveTime = Convert.ToInt32(txtLeaveTime.Text),
|
||||
EquipmentCode= txtEquipmentCode.Text.Trim()
|
||||
};
|
||||
model.AmStartTime1 = TimeSpan.Parse(txtAmStartTime1.Text);
|
||||
db.Kqgl_DateManage.InsertOnSubmit(model);
|
||||
db.SubmitChanges();
|
||||
}
|
||||
else
|
||||
{
|
||||
var model = db.Kqgl_DateManage.FirstOrDefault(x => x.Id == result.Id) ;
|
||||
|
||||
|
||||
model.AmStartTime2 = TimeSpan.Parse(txtAmStartTime2.Text);
|
||||
|
||||
model.AmEndTime1 = TimeSpan.Parse(txtAmEndTime1.Text);
|
||||
model.AmEndTime2 = TimeSpan.Parse(txtAmEndTime2.Text);
|
||||
|
||||
model.PmStartTime1 = TimeSpan.Parse(txtPmStartTime1.Text);
|
||||
model.PmStartTime2 = TimeSpan.Parse(txtPmStartTime2.Text);
|
||||
|
||||
model.PmEndTime1 = TimeSpan.Parse(txtPmEndTime1.Text);
|
||||
model.PmEndTime2 = TimeSpan.Parse(txtPmEndTime2.Text);
|
||||
|
||||
model.LateTime = Convert.ToInt32(txtLateTime.Text);
|
||||
model.LeaveTime = Convert.ToInt32(txtLeaveTime.Text);
|
||||
|
||||
model.AmStartTime1 = TimeSpan.Parse(txtAmStartTime1.Text);
|
||||
model.EquipmentCode = txtEquipmentCode.Text.Trim();
|
||||
db.SubmitChanges();
|
||||
}
|
||||
Alert.ShowInTop("编辑成功!", MessageBoxIcon.Success);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,188 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <自动生成>
|
||||
// 此代码由工具生成。
|
||||
//
|
||||
// 对此文件的更改可能导致不正确的行为,如果
|
||||
// 重新生成代码,则所做更改将丢失。
|
||||
// </自动生成>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace FineUIPro.Web.HSSE.SitePerson
|
||||
{
|
||||
|
||||
|
||||
public partial class DateManage
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// form1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
|
||||
|
||||
/// <summary>
|
||||
/// PageManager1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.PageManager PageManager1;
|
||||
|
||||
/// <summary>
|
||||
/// RegionPanel1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.RegionPanel RegionPanel1;
|
||||
|
||||
/// <summary>
|
||||
/// Region2 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Region Region2;
|
||||
|
||||
/// <summary>
|
||||
/// GroupPanel0 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.GroupPanel GroupPanel0;
|
||||
|
||||
/// <summary>
|
||||
/// SimpleForm1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Form SimpleForm1;
|
||||
|
||||
/// <summary>
|
||||
/// txtAmStartTime1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.DatePicker txtAmStartTime1;
|
||||
|
||||
/// <summary>
|
||||
/// txtAmStartTime2 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.DatePicker txtAmStartTime2;
|
||||
|
||||
/// <summary>
|
||||
/// txtAmEndTime1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.DatePicker txtAmEndTime1;
|
||||
|
||||
/// <summary>
|
||||
/// txtAmEndTime2 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.DatePicker txtAmEndTime2;
|
||||
|
||||
/// <summary>
|
||||
/// txtPmStartTime1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.DatePicker txtPmStartTime1;
|
||||
|
||||
/// <summary>
|
||||
/// txtPmStartTime2 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.DatePicker txtPmStartTime2;
|
||||
|
||||
/// <summary>
|
||||
/// txtPmEndTime1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.DatePicker txtPmEndTime1;
|
||||
|
||||
/// <summary>
|
||||
/// txtPmEndTime2 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.DatePicker txtPmEndTime2;
|
||||
|
||||
/// <summary>
|
||||
/// txtLateTime 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.NumberBox txtLateTime;
|
||||
|
||||
/// <summary>
|
||||
/// txtLeaveTime 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.NumberBox txtLeaveTime;
|
||||
|
||||
/// <summary>
|
||||
/// txtEquipmentCode 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.TextArea txtEquipmentCode;
|
||||
|
||||
/// <summary>
|
||||
/// Toolbar1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Toolbar Toolbar1;
|
||||
|
||||
/// <summary>
|
||||
/// btnSave 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Button btnSave;
|
||||
}
|
||||
}
|
||||
@@ -873,7 +873,7 @@ namespace FineUIPro.Web.HSSE.SitePerson
|
||||
var project = Funs.DB.Base_Project.FirstOrDefault(x => x.ProjectId == CurrUser.LoginProjectId);
|
||||
|
||||
var res1 = YunMouHelper.addPerson(person.IdentityCard, person.PersonName, string.IsNullOrEmpty(person.Telephone) ? "" : person.Telephone, person.PhotoUrl, token);
|
||||
var res3 = YunMouHelper.updatePerson(person.IdentityCard, person.PersonName, string.IsNullOrEmpty(person.Telephone) ? "" : person.Telephone, person.PhotoUrl, token);
|
||||
// var res3 = YunMouHelper.updatePerson(person.IdentityCard, person.PersonName, string.IsNullOrEmpty(person.Telephone) ? "" : person.Telephone, person.PhotoUrl, token);
|
||||
var res2 = YunMouHelper.addPersonsToGroups(project.YunMouGroupId, new string[] { person.IdentityCard }, token);
|
||||
person.YunMouState = "已经同步";
|
||||
Funs.DB.SubmitChanges();
|
||||
|
||||
@@ -1571,6 +1571,9 @@ namespace Model
|
||||
partial void InsertJDGL_Base_RectificationMeasure(JDGL_Base_RectificationMeasure instance);
|
||||
partial void UpdateJDGL_Base_RectificationMeasure(JDGL_Base_RectificationMeasure instance);
|
||||
partial void DeleteJDGL_Base_RectificationMeasure(JDGL_Base_RectificationMeasure instance);
|
||||
partial void InsertKqgl_DateManage(Kqgl_DateManage instance);
|
||||
partial void UpdateKqgl_DateManage(Kqgl_DateManage instance);
|
||||
partial void DeleteKqgl_DateManage(Kqgl_DateManage instance);
|
||||
partial void InsertLaw_HSSEStandardsList(Law_HSSEStandardsList instance);
|
||||
partial void UpdateLaw_HSSEStandardsList(Law_HSSEStandardsList instance);
|
||||
partial void DeleteLaw_HSSEStandardsList(Law_HSSEStandardsList instance);
|
||||
@@ -7179,6 +7182,14 @@ namespace Model
|
||||
}
|
||||
}
|
||||
|
||||
public System.Data.Linq.Table<Kqgl_DateManage> Kqgl_DateManage
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.GetTable<Kqgl_DateManage>();
|
||||
}
|
||||
}
|
||||
|
||||
public System.Data.Linq.Table<Law_HSSEStandardsList> Law_HSSEStandardsList
|
||||
{
|
||||
get
|
||||
@@ -252605,6 +252616,356 @@ namespace Model
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Kqgl_DateManage")]
|
||||
public partial class Kqgl_DateManage : INotifyPropertyChanging, INotifyPropertyChanged
|
||||
{
|
||||
|
||||
private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
|
||||
|
||||
private string _Id;
|
||||
|
||||
private string _ProjectId;
|
||||
|
||||
private System.Nullable<System.TimeSpan> _AmStartTime1;
|
||||
|
||||
private System.Nullable<System.TimeSpan> _AmStartTime2;
|
||||
|
||||
private System.Nullable<System.TimeSpan> _AmEndTime1;
|
||||
|
||||
private System.Nullable<System.TimeSpan> _AmEndTime2;
|
||||
|
||||
private System.Nullable<System.TimeSpan> _PmStartTime1;
|
||||
|
||||
private System.Nullable<System.TimeSpan> _PmStartTime2;
|
||||
|
||||
private System.Nullable<System.TimeSpan> _PmEndTime1;
|
||||
|
||||
private System.Nullable<System.TimeSpan> _PmEndTime2;
|
||||
|
||||
private System.Nullable<int> _LateTime;
|
||||
|
||||
private System.Nullable<int> _LeaveTime;
|
||||
|
||||
private string _EquipmentCode;
|
||||
|
||||
#region 可扩展性方法定义
|
||||
partial void OnLoaded();
|
||||
partial void OnValidate(System.Data.Linq.ChangeAction action);
|
||||
partial void OnCreated();
|
||||
partial void OnIdChanging(string value);
|
||||
partial void OnIdChanged();
|
||||
partial void OnProjectIdChanging(string value);
|
||||
partial void OnProjectIdChanged();
|
||||
partial void OnAmStartTime1Changing(System.Nullable<System.TimeSpan> value);
|
||||
partial void OnAmStartTime1Changed();
|
||||
partial void OnAmStartTime2Changing(System.Nullable<System.TimeSpan> value);
|
||||
partial void OnAmStartTime2Changed();
|
||||
partial void OnAmEndTime1Changing(System.Nullable<System.TimeSpan> value);
|
||||
partial void OnAmEndTime1Changed();
|
||||
partial void OnAmEndTime2Changing(System.Nullable<System.TimeSpan> value);
|
||||
partial void OnAmEndTime2Changed();
|
||||
partial void OnPmStartTime1Changing(System.Nullable<System.TimeSpan> value);
|
||||
partial void OnPmStartTime1Changed();
|
||||
partial void OnPmStartTime2Changing(System.Nullable<System.TimeSpan> value);
|
||||
partial void OnPmStartTime2Changed();
|
||||
partial void OnPmEndTime1Changing(System.Nullable<System.TimeSpan> value);
|
||||
partial void OnPmEndTime1Changed();
|
||||
partial void OnPmEndTime2Changing(System.Nullable<System.TimeSpan> value);
|
||||
partial void OnPmEndTime2Changed();
|
||||
partial void OnLateTimeChanging(System.Nullable<int> value);
|
||||
partial void OnLateTimeChanged();
|
||||
partial void OnLeaveTimeChanging(System.Nullable<int> value);
|
||||
partial void OnLeaveTimeChanged();
|
||||
partial void OnEquipmentCodeChanging(string value);
|
||||
partial void OnEquipmentCodeChanged();
|
||||
#endregion
|
||||
|
||||
public Kqgl_DateManage()
|
||||
{
|
||||
OnCreated();
|
||||
}
|
||||
|
||||
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Id", DbType="NVarChar(50) NOT NULL", CanBeNull=false, IsPrimaryKey=true)]
|
||||
public string Id
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._Id;
|
||||
}
|
||||
set
|
||||
{
|
||||
if ((this._Id != value))
|
||||
{
|
||||
this.OnIdChanging(value);
|
||||
this.SendPropertyChanging();
|
||||
this._Id = value;
|
||||
this.SendPropertyChanged("Id");
|
||||
this.OnIdChanged();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProjectId", DbType="NVarChar(50)")]
|
||||
public string ProjectId
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._ProjectId;
|
||||
}
|
||||
set
|
||||
{
|
||||
if ((this._ProjectId != value))
|
||||
{
|
||||
this.OnProjectIdChanging(value);
|
||||
this.SendPropertyChanging();
|
||||
this._ProjectId = value;
|
||||
this.SendPropertyChanged("ProjectId");
|
||||
this.OnProjectIdChanged();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AmStartTime1", DbType="Time(7)")]
|
||||
public System.Nullable<System.TimeSpan> AmStartTime1
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._AmStartTime1;
|
||||
}
|
||||
set
|
||||
{
|
||||
if ((this._AmStartTime1 != value))
|
||||
{
|
||||
this.OnAmStartTime1Changing(value);
|
||||
this.SendPropertyChanging();
|
||||
this._AmStartTime1 = value;
|
||||
this.SendPropertyChanged("AmStartTime1");
|
||||
this.OnAmStartTime1Changed();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AmStartTime2", DbType="Time(7)")]
|
||||
public System.Nullable<System.TimeSpan> AmStartTime2
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._AmStartTime2;
|
||||
}
|
||||
set
|
||||
{
|
||||
if ((this._AmStartTime2 != value))
|
||||
{
|
||||
this.OnAmStartTime2Changing(value);
|
||||
this.SendPropertyChanging();
|
||||
this._AmStartTime2 = value;
|
||||
this.SendPropertyChanged("AmStartTime2");
|
||||
this.OnAmStartTime2Changed();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AmEndTime1", DbType="Time(7)")]
|
||||
public System.Nullable<System.TimeSpan> AmEndTime1
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._AmEndTime1;
|
||||
}
|
||||
set
|
||||
{
|
||||
if ((this._AmEndTime1 != value))
|
||||
{
|
||||
this.OnAmEndTime1Changing(value);
|
||||
this.SendPropertyChanging();
|
||||
this._AmEndTime1 = value;
|
||||
this.SendPropertyChanged("AmEndTime1");
|
||||
this.OnAmEndTime1Changed();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AmEndTime2", DbType="Time(7)")]
|
||||
public System.Nullable<System.TimeSpan> AmEndTime2
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._AmEndTime2;
|
||||
}
|
||||
set
|
||||
{
|
||||
if ((this._AmEndTime2 != value))
|
||||
{
|
||||
this.OnAmEndTime2Changing(value);
|
||||
this.SendPropertyChanging();
|
||||
this._AmEndTime2 = value;
|
||||
this.SendPropertyChanged("AmEndTime2");
|
||||
this.OnAmEndTime2Changed();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PmStartTime1", DbType="Time(7)")]
|
||||
public System.Nullable<System.TimeSpan> PmStartTime1
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._PmStartTime1;
|
||||
}
|
||||
set
|
||||
{
|
||||
if ((this._PmStartTime1 != value))
|
||||
{
|
||||
this.OnPmStartTime1Changing(value);
|
||||
this.SendPropertyChanging();
|
||||
this._PmStartTime1 = value;
|
||||
this.SendPropertyChanged("PmStartTime1");
|
||||
this.OnPmStartTime1Changed();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PmStartTime2", DbType="Time(7)")]
|
||||
public System.Nullable<System.TimeSpan> PmStartTime2
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._PmStartTime2;
|
||||
}
|
||||
set
|
||||
{
|
||||
if ((this._PmStartTime2 != value))
|
||||
{
|
||||
this.OnPmStartTime2Changing(value);
|
||||
this.SendPropertyChanging();
|
||||
this._PmStartTime2 = value;
|
||||
this.SendPropertyChanged("PmStartTime2");
|
||||
this.OnPmStartTime2Changed();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PmEndTime1", DbType="Time(7)")]
|
||||
public System.Nullable<System.TimeSpan> PmEndTime1
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._PmEndTime1;
|
||||
}
|
||||
set
|
||||
{
|
||||
if ((this._PmEndTime1 != value))
|
||||
{
|
||||
this.OnPmEndTime1Changing(value);
|
||||
this.SendPropertyChanging();
|
||||
this._PmEndTime1 = value;
|
||||
this.SendPropertyChanged("PmEndTime1");
|
||||
this.OnPmEndTime1Changed();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PmEndTime2", DbType="Time(7)")]
|
||||
public System.Nullable<System.TimeSpan> PmEndTime2
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._PmEndTime2;
|
||||
}
|
||||
set
|
||||
{
|
||||
if ((this._PmEndTime2 != value))
|
||||
{
|
||||
this.OnPmEndTime2Changing(value);
|
||||
this.SendPropertyChanging();
|
||||
this._PmEndTime2 = value;
|
||||
this.SendPropertyChanged("PmEndTime2");
|
||||
this.OnPmEndTime2Changed();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LateTime", DbType="Int")]
|
||||
public System.Nullable<int> LateTime
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._LateTime;
|
||||
}
|
||||
set
|
||||
{
|
||||
if ((this._LateTime != value))
|
||||
{
|
||||
this.OnLateTimeChanging(value);
|
||||
this.SendPropertyChanging();
|
||||
this._LateTime = value;
|
||||
this.SendPropertyChanged("LateTime");
|
||||
this.OnLateTimeChanged();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LeaveTime", DbType="Int")]
|
||||
public System.Nullable<int> LeaveTime
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._LeaveTime;
|
||||
}
|
||||
set
|
||||
{
|
||||
if ((this._LeaveTime != value))
|
||||
{
|
||||
this.OnLeaveTimeChanging(value);
|
||||
this.SendPropertyChanging();
|
||||
this._LeaveTime = value;
|
||||
this.SendPropertyChanged("LeaveTime");
|
||||
this.OnLeaveTimeChanged();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_EquipmentCode", DbType="NVarChar(500)")]
|
||||
public string EquipmentCode
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._EquipmentCode;
|
||||
}
|
||||
set
|
||||
{
|
||||
if ((this._EquipmentCode != value))
|
||||
{
|
||||
this.OnEquipmentCodeChanging(value);
|
||||
this.SendPropertyChanging();
|
||||
this._EquipmentCode = value;
|
||||
this.SendPropertyChanged("EquipmentCode");
|
||||
this.OnEquipmentCodeChanged();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public event PropertyChangingEventHandler PropertyChanging;
|
||||
|
||||
public event PropertyChangedEventHandler PropertyChanged;
|
||||
|
||||
protected virtual void SendPropertyChanging()
|
||||
{
|
||||
if ((this.PropertyChanging != null))
|
||||
{
|
||||
this.PropertyChanging(this, emptyChangingEventArgs);
|
||||
}
|
||||
}
|
||||
|
||||
protected virtual void SendPropertyChanged(String propertyName)
|
||||
{
|
||||
if ((this.PropertyChanged != null))
|
||||
{
|
||||
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Law_HSSEStandardsList")]
|
||||
public partial class Law_HSSEStandardsList : INotifyPropertyChanging, INotifyPropertyChanged
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user