This commit is contained in:
gaofei 2022-04-14 11:17:02 +08:00
commit 5517df35e6
12 changed files with 531 additions and 372 deletions

View File

@ -0,0 +1,10 @@
/****** Object: Index [NonClusteredIndex-20220401-212216] Script Date: 2022/4/1 21:26:54 ******/
CREATE NONCLUSTERED INDEX [NonClusteredIndex-20220401-212216] ON [dbo].[SitePerson_PersonInOut]
(
[ProjectId] ASC,
[ChangeTime] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO

View File

@ -155,27 +155,39 @@ namespace BLL
if (getInOutRecord.WorkIn1.HasValue || getInOutRecord.OffDuty1.HasValue)
{
m1 = 240;
if (getInOutRecord.WorkIn1.HasValue && getInOutRecord.OffDuty1.HasValue)
if (getInOutRecord.WorkIn1.HasValue && getInOutRecord.OffDuty1.HasValue && getInOutRecord.OffDuty1> getInOutRecord.WorkIn1)
{
m1 = Convert.ToInt32((getInOutRecord.OffDuty1 - getInOutRecord.WorkIn1).Value.TotalMinutes);
if (m1 < 0)
{
m1 = 0;
}
}
}
int m2 = 0;
if (getInOutRecord.WorkIn2.HasValue || getInOutRecord.OffDuty2.HasValue)
{
m2 = 240;
if (getInOutRecord.WorkIn2.HasValue && getInOutRecord.OffDuty2.HasValue)
if (getInOutRecord.WorkIn2.HasValue && getInOutRecord.OffDuty2.HasValue && getInOutRecord.OffDuty2 > getInOutRecord.WorkIn2)
{
m2 = Convert.ToInt32((getInOutRecord.OffDuty2 - getInOutRecord.WorkIn2).Value.TotalMinutes);
if (m2 < 0)
{
m2 =0;
}
}
}
int m3 = 0;
if (getInOutRecord.WorkIn3.HasValue || getInOutRecord.OffDuty3.HasValue)
{
m3 = 240;
if (getInOutRecord.WorkIn3.HasValue && getInOutRecord.OffDuty3.HasValue)
if (getInOutRecord.WorkIn3.HasValue && getInOutRecord.OffDuty3.HasValue && getInOutRecord.OffDuty3 > getInOutRecord.WorkIn3)
{
m3 = Convert.ToInt32((getInOutRecord.OffDuty3 - getInOutRecord.WorkIn3).Value.TotalMinutes);
if (m3 < 0)
{
m3 =0;
}
}
}
#endregion

View File

@ -16,6 +16,8 @@ namespace BLL
public static void CreateTrainingTaskItemByTaskId(string taskId)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
try
{
/////查找未生成教材明细的 培训任务
var getTasks = from x in db.Training_Task
@ -58,6 +60,10 @@ namespace BLL
}
}
}
catch (Exception ex)
{
}
}
}
#endregion
@ -67,7 +73,10 @@ namespace BLL
/// </summary>
public static void UpdateTestPlanStates()
{
Model.SGGLDB db = Funs.DB;
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
try
{
var getTestPlans = from x in db.Training_TestPlan
where x.States == Const.State_2 && x.TestEndTime.AddMinutes(x.Duration) < DateTime.Now
select x;
@ -92,6 +101,11 @@ namespace BLL
TestRecordService.UpdateTestRecord(itemRecord);
}
}
catch (Exception ex)
{
}
}
}
#endregion
#region -
@ -100,8 +114,10 @@ namespace BLL
/// </summary>
public static void UpdateServerTestPlanStates()
{
Model.SGGLDB db = Funs.DB;
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
try
{
var getTrainingTestRecords = from x in db.Test_TestRecord
where x.TestStartTime.Value.AddMinutes(x.Duration.Value) < DateTime.Now
&& (!x.TestEndTime.HasValue || !x.TestScores.HasValue)
@ -113,6 +129,10 @@ namespace BLL
db.SubmitChanges();
}
}
catch (Exception ex)
{ }
}
}
#endregion
#region
@ -122,6 +142,8 @@ namespace BLL
public static void CorrectingPersonInOutNumber(string projectId)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
try
{
var getProjects = (from x in db.Base_Project
where x.ProjectState == null || x.ProjectState == Const.ProjectState_1
@ -233,6 +255,72 @@ namespace BLL
}
}
}
catch (Exception ex)
{
}
}
}
#endregion
#region
/// <summary>
/// 自动校正出入场人数及工时
/// </summary>
public static void CorrectingPersonInOutNumberD(string projectId)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
try
{
var getNums = from x in db.SitePerson_PersonInOutNumber
where x.ProjectId == projectId && x.InOutDate.AddMonths(3) >= DateTime.Now
orderby x.InOutDate
select x;
var getInouts = from x in db.SitePerson_PersonInOut
where x.ProjectId == projectId && x.ChangeTime.Value.AddMonths(3) >= DateTime.Now
select x;
int SafeHours = 0;
foreach (var itemNum in getNums)
{
DateTime date = Funs.GetNewDateTimeOrNow(itemNum.InOutDate.ToShortDateString());
///获取当日出入记录
var getAllPersonInOutList = from x in getInouts
where x.ChangeTime > date.AddDays(-1) && x.ChangeTime < date.AddDays(1)
select x;
if (getAllPersonInOutList.Count() > 0)
{
/// 出场记录
var getPersonOutTimes = getAllPersonInOutList.Where(x => x.IsIn == false);
var getInLists = getAllPersonInOutList.Where(x => x.IsIn == true);
//// 查找当前项目 最新的人工时数量记录
if (SafeHours == 0)
{
var getMaxInOutDate = getNums.Where(x => x.InOutDate < date).OrderByDescending(x => x.InOutDate).FirstOrDefault();
if (getMaxInOutDate != null)
{
SafeHours = getMaxInOutDate.WorkHours ?? 0;
}
}
int getOutPersonCount = getPersonOutTimes.Select(x => x.PersonId).Distinct().Count();
SafeHours += getOutPersonCount * 8;
}
//SafeHours = Convert.ToInt32(SafeHours * 1.0 / 60);
if (itemNum != null)
{
itemNum.InOutDate = date;
itemNum.WorkHours = SafeHours;
db.SubmitChanges();
}
}
}
catch (Exception ex)
{
}
}
}
#endregion
@ -243,6 +331,8 @@ namespace BLL
public static void CreateQRCode()
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
try
{
var getPersons = from x in db.SitePerson_Person
where x.IdentityCard != null && x.QRCodeAttachUrl == null
@ -260,6 +350,10 @@ namespace BLL
}
}
}
catch (Exception ex)
{
}
}
}
#endregion
@ -292,6 +386,8 @@ namespace BLL
/// 定时推送待办 订阅服务内容
/// </summary>
public static void SendSubscribeMessage()
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
try
{
@ -299,7 +395,7 @@ namespace BLL
if (!string.IsNullOrEmpty(miniprogram_state) && miniprogram_state == "formal")
{
//// 获取所有待办事项
var getToItems = from x in Funs.DB.View_APP_GetToDoItems select x;
var getToItems = from x in db.View_APP_GetToDoItems select x;
if (getToItems.Count() > 0)
{
//// 获取施工中的项目
@ -323,6 +419,7 @@ namespace BLL
catch (Exception ex)
{ }
}
}
#endregion
@ -333,6 +430,8 @@ namespace BLL
public static void CloseLicenseData()
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
try
{
////动火作业
var getFireWorks = from x in db.License_FireWork
@ -505,6 +604,10 @@ namespace BLL
APILicenseDataService.SaveLicenseData(itemLicenseManager);
}
}
catch (Exception ex)
{
}
}
}
#endregion
}

View File

@ -9,7 +9,6 @@ namespace BLL
{
public class MonitorService
{
#region 5
/// <summary>
/// 监视组件
@ -2166,7 +2165,7 @@ namespace BLL
#endregion
/// <summary>
///
/// 定时执行
/// </summary>
public static void DoSynchData()
{

View File

@ -107,7 +107,10 @@ namespace BLL
/// <returns></returns>
public static string EndTestPlan(string testPlanId)
{
Model.SGGLDB db = Funs.DB;
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
try
{
string info = string.Empty;
var getTestPlans = from x in db.Test_TestPlan
where x.States == Const.State_2 && x.TestEndTime.Value.AddMinutes(x.Duration.Value) < DateTime.Now
@ -153,6 +156,12 @@ namespace BLL
}
return info;
}
catch (Exception ex)
{
return null;
}
}
}
/// <summary>
/// 获取类别下拉项

View File

@ -41,6 +41,10 @@
<f:TextBox ID="txtName" runat="server" Label="姓名" LabelWidth="60px" Width="200px"></f:TextBox>
<f:ToolbarFill runat="server"></f:ToolbarFill>
<f:Button ID="btnSearch" runat="server" Icon="SystemSearch" ToolTip="查询" OnClick="btnSearch_Click">
</f:Button>
<f:Button ID="btnRefresh" runat="server" Icon="ArrowRefresh" ToolTip="校正人工时"
AjaxLoadingType="Mask" ShowAjaxLoadingMaskText="true" AjaxLoadingMaskText="正在校正当前项目人工时,请稍候"
EnableAjax="true" DisableControlBeforePostBack="false" OnClick="btnRefresh_Click">
</f:Button>
<f:Button ID="btnOut" OnClick="btnOut_Click" runat="server" ToolTip="导出" Icon="FolderUp"
EnableAjax="false" DisableControlBeforePostBack="false">

View File

@ -118,5 +118,11 @@ namespace FineUIPro.Web.Door
}
#endregion
protected void btnRefresh_Click(object sender, EventArgs e)
{
BLL.GetDataService.CorrectingPersonInOutNumberD(this.CurrUser.LoginProjectId);
Alert.ShowInParent("操作完成", MessageBoxIcon.Success);
}
}
}

View File

@ -102,6 +102,15 @@ namespace FineUIPro.Web.Door {
/// </remarks>
protected global::FineUIPro.Button btnSearch;
/// <summary>
/// btnRefresh 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnRefresh;
/// <summary>
/// btnOut 控件。
/// </summary>

View File

@ -47,26 +47,26 @@
</f:Toolbar>
</Toolbars>
<Columns>
<f:TemplateField ColumnID="tfNumber" HeaderText="序号" Width="90px" HeaderTextAlign="Center" TextAlign="Center">
<f:TemplateField ColumnID="tfNumber" HeaderText="序号" Width="55px" HeaderTextAlign="Center" TextAlign="Center">
<ItemTemplate>
<asp:Label ID="labNumber" runat="server" Text=' <%# Grid1.PageIndex * Grid1.PageSize + Container.DataItemIndex + 1%>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
<f:RenderField Width="250px" ColumnID="UnitName" DataField="UnitName" SortField="UnitName"
<f:RenderField Width="230px" ColumnID="UnitName" DataField="UnitName" SortField="UnitName"
FieldType="String" HeaderText="单位名称" HeaderTextAlign="Center"
TextAlign="Left">
</f:RenderField>
<f:RenderField Width="100px" ColumnID="PersonName" DataField="PersonName" SortField="PersonName"
<f:RenderField Width="90px" ColumnID="PersonName" DataField="PersonName" SortField="PersonName"
FieldType="String" HeaderText="人员姓名" HeaderTextAlign="Center"
TextAlign="Left">
</f:RenderField>
<f:TemplateField ColumnID="tfIntoOut" Width="80px" HeaderText="进出" HeaderTextAlign="Center" TextAlign="Center">
<f:TemplateField ColumnID="tfIntoOut" Width="70px" HeaderText="进出" HeaderTextAlign="Center" TextAlign="Center">
<ItemTemplate>
<asp:Label ID="lblIntoOut" runat="server" Text='<%# ConvertIntoOut(Eval("IntoOut")) %>'
ToolTip='<%#ConvertIntoOut(Eval("IntoOut")) %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
<f:RenderField Width="160px" ColumnID="IntoOutTime" DataField="IntoOutTime" SortField="IntoOutTime"
<f:RenderField Width="150px" ColumnID="IntoOutTime" DataField="IntoOutTime" SortField="IntoOutTime"
HeaderText="出入现场时间" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<%-- <f:TemplateField ColumnID="tfAddress" Width="130px" HeaderText="进出地点" HeaderTextAlign="Center" TextAlign="Left">
@ -74,16 +74,16 @@
<asp:Label ID="lblAddress" runat="server" Text='<%# Bind("Address") %>' ToolTip='<%#Bind("Address") %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>--%>
<f:TemplateField ColumnID="tfWorkAreaName" Width="120px" HeaderText="单位工程" HeaderTextAlign="Center" TextAlign="Left">
<f:TemplateField ColumnID="tfWorkAreaName" Width="170px" HeaderText="单位工程" HeaderTextAlign="Center" TextAlign="Left">
<ItemTemplate>
<asp:Label ID="lblWorkAreaName" runat="server" Text='<%# Bind("WorkAreaName") %>' ToolTip='<%#Bind("WorkAreaName") %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
<f:RenderField Width="100px" ColumnID="CardNo" DataField="CardNo" SortField="CardNo"
<f:RenderField Width="90px" ColumnID="CardNo" DataField="CardNo" SortField="CardNo"
FieldType="String" HeaderText="卡号" HeaderTextAlign="Center"
TextAlign="Center">
</f:RenderField>
<f:TemplateField ColumnID="tfIdentityCard" Width="180px" HeaderText="身份证号" HeaderTextAlign="Center" TextAlign="Right">
<f:TemplateField ColumnID="tfIdentityCard" Width="170px" HeaderText="身份证号" HeaderTextAlign="Center" TextAlign="Right">
<ItemTemplate>
<asp:Label ID="lblIdentityCard" runat="server" Text='<%# Bind("IdentityCard") %>' ToolTip='<%#Bind("IdentityCard") %>'></asp:Label>
</ItemTemplate>

View File

@ -1,8 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<Tree>
<TreeNode id="92CBD072-20F8-45B1-9D17-6F7494DD2020" Text="数据导入" NavigateUrl="">
<TreeNode id="F3AA42B3-5776-4992-A625-1216C579FEDE" Text="项目进度情况" NavigateUrl="JDGL/Check/ProgressCompletion.aspx">
<TreeNode id="858E83E9-ADE5-452E-BD65-82D8DFF872C0" Text="分部、工作项及费用清单裁剪" NavigateUrl="JDGL/WBS/WBSSetAudit.aspx">
</TreeNode>
<TreeNode id="E3905BF1-289B-4500-BD34-36F97D649AFC" Text="工作量录入" NavigateUrl="JDGL/WBS/WorkloadInput.aspx"></TreeNode>
<TreeNode id="2A3F8526-95C7-4D30-B2DD-DD26696BE150" Text="工作量统计" NavigateUrl="JDGL/WBS/WorkloadStatistics.aspx"></TreeNode>
<TreeNode id="59AAE0F0-2DB6-4065-B304-7E2C56EC3E5D" Text="赢得值曲线" NavigateUrl="JDGL/CostAnalysis/EarnedValueCurve.aspx"></TreeNode>
<TreeNode id="9CAF311E-C234-4DA4-B235-D4E478FBD80E" Text="里程碑" NavigateUrl="JDGL/WBS/MilePost.aspx"></TreeNode>
<TreeNode id="92CBD072-20F8-45B1-9D17-6F7494DD2020" Text="数据导入" NavigateUrl=""><TreeNode id="F3AA42B3-5776-4992-A625-1216C579FEDE" Text="项目进度情况" NavigateUrl="JDGL/Check/ProgressCompletion.aspx"></TreeNode>
<TreeNode id="2AE9D982-A499-497F-8F54-ADDA5856887E" Text="工程量完成情况" NavigateUrl="JDGL/Check/QuantityCompletion.aspx"></TreeNode>
<TreeNode id="82E513B9-1A6F-495A-A633-EBC89CE5273A" Text="低温储罐完成情况" NavigateUrl="JDGL/Check/LowTankCompletion.aspx"></TreeNode>
<TreeNode id="4ACA0647-4D44-462E-8277-1EF9F100566A" Text="钢结构完成情况" NavigateUrl="JDGL/Check/SteelStructureCompletion.aspx"></TreeNode>

View File

@ -290,6 +290,9 @@ namespace FineUIPro.Web
{
if (!IsPostBack)
{
Response.Expires = 0; //设置过期时间
Response.Cache.SetNoStore(); //在服务器端不缓存该页面
Response.AppendHeader("Pragma", "no-cache"); //在客户端不缓存
ProjectService.InitAllProjectShortNameDropDownList(this.drpProject, this.CurrUser.UserId, false);
if (!string.IsNullOrEmpty(Request.Params["projectId"]))
{
@ -580,8 +583,8 @@ namespace FineUIPro.Web
protected void drpProject_SelectedIndexChanged(object sender, EventArgs e)
{
this.CurrUser.LoginProjectId = this.drpProject.SelectedValue;
this.Tab1.RefreshIFrame();
//this.CurrUser.LoginProjectId = this.drpProject.SelectedValue;
PageContext.RegisterStartupScript("parent.removeActiveTab();");
MenuSwitchMethod(this.CurrUser.LastMenuType);
GetWeather();
@ -593,7 +596,7 @@ namespace FineUIPro.Web
/// <param name="type"></param>
protected void MenuSwitchMethod(string type)
{
this.CurrUser.LoginProjectId = this.drpProject.SelectedValue;
// this.CurrUser.LoginProjectId = this.drpProject.SelectedValue;
this.XmlDataSource1.DataFile = "common/Menu_Personal.xml";
this.leftPanel.Hidden = true;
var projectUser = BLL.ProjectUserService.GetProjectUserByUserIdProjectId(this.CurrUser.LoginProjectId, this.CurrUser.UserId);

View File

@ -12,7 +12,7 @@
<SiteUrlToLaunchAfterPublish />
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<ExcludeApp_Data>False</ExcludeApp_Data>
<publishUrl>E:\Package\WuHuan\SGGLAPI</publishUrl>
<publishUrl>E:\Package\中化五环\SGGLAPI</publishUrl>
<DeleteExistingFiles>True</DeleteExistingFiles>
<PrecompileBeforePublish>True</PrecompileBeforePublish>
<EnableUpdateable>True</EnableUpdateable>