This commit is contained in:
geh
2026-01-08 15:13:25 +08:00
parent 6bbf6d34b4
commit fb6c53dd62
4 changed files with 422 additions and 154 deletions
+70 -18
View File
@@ -20,21 +20,27 @@ namespace BLL
var projects = Funs.DB.Base_Project.Where(p => p.ProjectState == BLL.Const.ProjectState_1).ToList();
foreach (var project in projects)
{
// 检查管理人员到期未到岗情况
var items1 = CheckHistoricalContinuousShortage(project.ProjectId);
// 检查作业人员人力偏差情况
var items2 = CheckWorkerDeviation(project.ProjectId);
if (items1 != null)
// // 检查管理人员到期未到岗情况
// var items1 = CheckHistoricalContinuousShortage(project.ProjectId);
//
// // 检查作业人员人力偏差情况
// var items2 = CheckWorkerDeviation(project.ProjectId);
//
//
// if (items1 != null)
// {
// allItems.AddRange(items1);
// }
//
// if (items2 != null)
// {
// allItems.AddRange(items2);
// }
// 从预计算表获取预警数据
var items = GetWarningItemsFromTable(project.ProjectId);
if (items != null)
{
allItems.AddRange(items1);
}
if (items2 != null)
{
allItems.AddRange(items2);
allItems.AddRange(items);
}
}
@@ -479,7 +485,7 @@ namespace BLL
warningContent = $"{projectUnits.UnitName}单位计划投入人力{quantity}人,实际考勤为{num}人。";
}
string urlParams = "JDGL/SGManPower/SGWarningDetails.aspx?projectId=" + projectId;
string urlParams = "JDGL/SGManPower/SGWarningDetailsEdit.aspx?projectId=" + projectId;
// 添加单位参数(如果已选择)
if (!string.IsNullOrEmpty(unitId))
{
@@ -499,10 +505,15 @@ namespace BLL
}
// 添加时间参数
if (startDate.HasValue && endDate.HasValue)
if (startDate.HasValue)
{
urlParams += "&planDate=" + string.Format("{0:yyyy-MM-dd}", startDate) + "~" +
string.Format("{0:yyyy-MM-dd}", endDate);
urlParams += "&startTime=" + string.Format("{0:yyyy-MM-dd}", startDate);
}
// 添加时间参数
if (endDate.HasValue)
{
urlParams += "&endTime=" + string.Format("{0:yyyy-MM-dd}", endDate);
}
// 发送预警信息
@@ -526,5 +537,46 @@ namespace BLL
}
#endregion
private static IEnumerable<ToDoItem> GetWarningItemsFromTable(string projectId)
{
var strSql = @"SELECT * FROM SGManPower_WarningResult
WHERE ProjectId = @ProjectId ";
var parameters = new List<System.Data.SqlClient.SqlParameter>
{
new System.Data.SqlClient.SqlParameter("@ProjectId", projectId)
};
var dt = SQLHelper.GetDataTableRunText(strSql, parameters.ToArray());
var warningItems = new List<ToDoItem>();
foreach (DataRow row in dt.Rows)
{
var warningType = row["WarningType"].ToString();
var unitId = row["UnitId"].ToString();
var workPostId = row["WorkPostId"].ToString();
var unitWorkId = row["UnitWorkId"].ToString();
var startDate = Convert.ToDateTime(row["StartDate"]);
var endDate = Convert.ToDateTime(row["EndDate"]);
var planQuantity = Convert.ToInt32(row["PlanQuantity"]);
var actualQuantity = Convert.ToInt32(row["ActualQuantity"]);
if (warningType == "Shortage")
{
warningItems.AddRange(SendManagerWarning(unitId, projectId, workPostId, unitWorkId,
startDate, endDate, planQuantity, actualQuantity));
}
else if (warningType == "Deviation")
{
warningItems.AddRange(SendWorkerDeviationWarning(unitId, projectId, workPostId, unitWorkId,
startDate, endDate, planQuantity, actualQuantity));
}
}
return warningItems;
}
}
}