diff --git a/DataBase/版本日志/SGGLDB_V2026-04-10-gf.sql b/DataBase/版本日志/SGGLDB_V2026-04-10-gf.sql
new file mode 100644
index 00000000..1a096fcc
--- /dev/null
+++ b/DataBase/版本日志/SGGLDB_V2026-04-10-gf.sql
@@ -0,0 +1,34 @@
+-- 自动获取总包检查数据
+alter table Base_Project add IsAutoFetch bit NULL;
+
+
+
+--定制版放到公司级的【报表管理/数据管理】下的【项目数据分析】,父级菜单id和菜单类型根据实际情况进行替换
+INSERT INTO [dbo].[Sys_Menu] ( [MenuId], [MenuName], [Icon], [Url], [SortIndex], [SuperMenu], [MenuType], [IsOffice], [IsEnd], [IsUsed] )
+VALUES
+ ( N'A9E94BE9-6F53-4A41-9A65-250F09D9E449', N'安全巡检统计分析', NULL, N'HSSE/HiddenInspection/CheckStatisticsAnalysis.aspx?Types=1', 106, '0', N'Menu_ZHGL', '1', '1', '1' );
+
+ GO
+
+
+INSERT INTO [dbo].[Sys_Menu] ( [MenuId], [MenuName], [Icon], [Url], [SortIndex], [SuperMenu], [MenuType], [IsOffice], [IsEnd], [IsUsed] )
+VALUES
+ ( N'28848506-234F-4D21-8E79-A0F24F2B2DDA', N'质量巡检统计分析', NULL, N'HSSE/HiddenInspection/CheckStatisticsAnalysis.aspx?Types=2', 107, '0', N'Menu_ZHGL', '1', '1', '1' );
+ GO
+
+
+
+
+
+
+
+--加颁奖年份字段
+alter table QCManage_QCGroupRegistration add AwardYear datetime
+go
+
+
+-----根据实际情况吧原本填写在过程字段(Process)上的年份数据移到新的新的字段(AwardYear)上
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'颁奖年份' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'QCManage_QCGroupRegistration', @level2type=N'COLUMN',@level2name=N'AwardYear'
+GO
+--把原来的数据替换到新的字段上
+update QCManage_QCGroupRegistration set AwardYear = Process where AwardYear is null and LEN(Process) = 4
\ No newline at end of file
diff --git a/SGGL/BLL/API/APIPersonService.cs b/SGGL/BLL/API/APIPersonService.cs
index 68923901..79cf2841 100644
--- a/SGGL/BLL/API/APIPersonService.cs
+++ b/SGGL/BLL/API/APIPersonService.cs
@@ -560,7 +560,7 @@ namespace BLL
/// 培训岗位ID
/// 培训类型ID
///
- public static List getTrainingPersonListByTrainTypeId(string projectId, string unitIds, string workPostIds, string trainTypeId, string name, string startDate, string endDate)
+ public static List getTrainingPersonListByTrainTypeId(string projectId, string unitIds, string workPostIds, string trainTypeId, string name, string startDate, string endDate, string isRepeat)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
@@ -620,7 +620,11 @@ namespace BLL
}
List getTrainPersonList = new List();
var getTrainType = TrainTypeService.GetTrainTypeById(trainTypeId);
- if (getTrainType != null && (!getTrainType.IsRepeat.HasValue || getTrainType.IsRepeat == false))
+ if ((getTrainType != null && (!getTrainType.IsRepeat.HasValue || getTrainType.IsRepeat == true)) || isRepeat == "1")
+ {
+ return getPersons.ToList();
+ }
+ else
{
foreach (var item in getPersons)
{
@@ -642,10 +646,6 @@ namespace BLL
}
return getTrainPersonList;
}
- else
- {
- return getPersons.ToList();
- }
}
}
@@ -1610,7 +1610,7 @@ namespace BLL
{
z.PlanName,
z.PlanDate,
- CheckResultName = x.TestScores >=60 ? "合格" : "不合格",
+ CheckResultName = x.TestScores >= 60 ? "合格" : "不合格",
z.TestPlanId,
};
if (getDataLists.Count() > 0)
diff --git a/SGGL/BLL/BaseInfo/WorkPostService.cs b/SGGL/BLL/BaseInfo/WorkPostService.cs
index a4021730..73ab1e44 100644
--- a/SGGL/BLL/BaseInfo/WorkPostService.cs
+++ b/SGGL/BLL/BaseInfo/WorkPostService.cs
@@ -32,6 +32,7 @@ namespace BLL
WorkPostName = workPost.WorkPostName,
PostType = workPost.PostType,
IsCQMS = workPost.IsCQMS,
+ IsCQMSCheck = workPost.IsCQMSCheck,
IsHsse = workPost.IsHsse,
CNCodes = workPost.CNCodes,
Remark = workPost.Remark
@@ -56,6 +57,7 @@ namespace BLL
newWorkPost.PostType = workPost.PostType;
newWorkPost.IsHsse = workPost.IsHsse;
newWorkPost.IsCQMS = workPost.IsCQMS;
+ newWorkPost.IsCQMSCheck = workPost.IsCQMSCheck;
newWorkPost.CNCodes = workPost.CNCodes;
newWorkPost.Remark = workPost.Remark;
db.SubmitChanges();
diff --git a/SGGL/BLL/CQMS/QualityActivity/QCManage/QCManage_QCGroupRegistrationService.cs b/SGGL/BLL/CQMS/QualityActivity/QCManage/QCManage_QCGroupRegistrationService.cs
index 2d2a77ce..80e00716 100644
--- a/SGGL/BLL/CQMS/QualityActivity/QCManage/QCManage_QCGroupRegistrationService.cs
+++ b/SGGL/BLL/CQMS/QualityActivity/QCManage/QCManage_QCGroupRegistrationService.cs
@@ -34,6 +34,7 @@ namespace BLL
newQCGroupRegistration.AwardName = QCGroupRegistration.AwardName;
newQCGroupRegistration.AwardLevel = QCGroupRegistration.AwardLevel;
newQCGroupRegistration.AwardType = QCGroupRegistration.AwardType;
+ newQCGroupRegistration.AwardYear = QCGroupRegistration.AwardYear;
newQCGroupRegistration.AwardingUnit = QCGroupRegistration.AwardingUnit;
db.QCManage_QCGroupRegistration.InsertOnSubmit(newQCGroupRegistration);
db.SubmitChanges();
@@ -59,6 +60,7 @@ namespace BLL
newQCGroupRegistration.Achievement = QCGroupRegistration.Achievement;
newQCGroupRegistration.AwardName = QCGroupRegistration.AwardName;
newQCGroupRegistration.AwardLevel = QCGroupRegistration.AwardLevel;
+ newQCGroupRegistration.AwardYear = QCGroupRegistration.AwardYear;
newQCGroupRegistration.AwardType = QCGroupRegistration.AwardType;
newQCGroupRegistration.AwardingUnit = QCGroupRegistration.AwardingUnit;
newQCGroupRegistration.IsUpdate = null;
diff --git a/SGGL/BLL/DataShare/APIDataShareSyncService.cs b/SGGL/BLL/DataShare/APIDataShareSyncService.cs
index b35386cb..82b93f48 100644
--- a/SGGL/BLL/DataShare/APIDataShareSyncService.cs
+++ b/SGGL/BLL/DataShare/APIDataShareSyncService.cs
@@ -347,7 +347,7 @@ namespace BLL
///
///
///
- public static string getWorkPostId(string WorkPostName, string PostType, string IsHsse, string IsCQMS)
+ public static string getWorkPostId(string WorkPostName, string PostType, string IsHsse, string IsCQMS,string IsCQMSCheck)
{
string WorkPostId = null;
if (!string.IsNullOrEmpty(WorkPostName))
@@ -362,6 +362,7 @@ namespace BLL
PostType = PostType,
IsHsse = Convert.ToBoolean(IsHsse),
IsCQMS = Convert.ToBoolean(IsCQMS),
+ IsCQMSCheck = Convert.ToBoolean(IsCQMSCheck),
Remark = "导入"
};
WorkPostService.AddWorkPost(newWorkPost);
diff --git a/SGGL/BLL/DataShare/HSSE/APIPersonSyncService.cs b/SGGL/BLL/DataShare/HSSE/APIPersonSyncService.cs
index 689c93a4..c73ba894 100644
--- a/SGGL/BLL/DataShare/HSSE/APIPersonSyncService.cs
+++ b/SGGL/BLL/DataShare/HSSE/APIPersonSyncService.cs
@@ -385,7 +385,7 @@ namespace BLL
TeamGroupId = APIDataShareSyncService.GetTeamGroupId(item.TeamGroupName, projectId, unitId),
WorkAreaId = APIDataShareSyncService.getWorkAreaId(item.WorkAreaName, projectId),
WorkPostId = APIDataShareSyncService.getWorkPostId(item.WorkPostName, item.PostType,
- item.IsHsse.ToString(), item.IsCQMS.ToString()),
+ item.IsHsse.ToString(), item.IsCQMS.ToString(),item.IsCQMSCheck.ToString()),
InTime = item.InTime,
OutTime = item.OutTime,
OutResult = item.OutResult,
@@ -489,7 +489,7 @@ namespace BLL
model.TeamGroupId = APIDataShareSyncService.GetTeamGroupId(item.TeamGroupName, projectId, unitId);
model.WorkAreaId = APIDataShareSyncService.getWorkAreaId(item.WorkAreaName, projectId);
model.WorkPostId = APIDataShareSyncService.getWorkPostId(item.WorkPostName, item.PostType,
- item.IsHsse.ToString(), item.IsCQMS.ToString());
+ item.IsHsse.ToString(), item.IsCQMS.ToString(), item.IsCQMSCheck.ToString());
model.InTime = item.InTime;
model.OutTime = item.OutTime;
model.OutResult = item.OutResult;
diff --git a/SGGL/BLL/ZHGL/DataSync/ProjectDataSync/Project_CQMSDataService.cs b/SGGL/BLL/ZHGL/DataSync/ProjectDataSync/Project_CQMSDataService.cs
index 939609df..bb5a6545 100644
--- a/SGGL/BLL/ZHGL/DataSync/ProjectDataSync/Project_CQMSDataService.cs
+++ b/SGGL/BLL/ZHGL/DataSync/ProjectDataSync/Project_CQMSDataService.cs
@@ -1362,6 +1362,7 @@ namespace BLL
Process = x.Process,
Achievement = x.Achievement,
AwardName = x.AwardName,
+ AwardYear = x.AwardYear,
AwardType = x.AwardType,
AwardLevel = x.AwardLevel,
AwardingUnit = x.AwardingUnit,
@@ -1432,6 +1433,7 @@ namespace BLL
Process = x.Process,
Achievement = x.Achievement,
AwardName = x.AwardName,
+ AwardYear = x.AwardYear,
AwardLevel = x.AwardLevel,
AwardingUnit = x.AwardingUnit,
}).ToList();
diff --git a/SGGL/FineUIPro.Web/BaseInfo/WorkPost.aspx b/SGGL/FineUIPro.Web/BaseInfo/WorkPost.aspx
index 4768fa32..6fcab4c8 100644
--- a/SGGL/FineUIPro.Web/BaseInfo/WorkPost.aspx
+++ b/SGGL/FineUIPro.Web/BaseInfo/WorkPost.aspx
@@ -11,7 +11,7 @@
-
+
+
+
@@ -101,6 +105,8 @@
+
+
-
+
private void BindGrid()
{
- string strSql = @"SELECT wp.WorkPostId,wp.WorkPostName, wp.WorkPostCode, wp.Remark,wp.PostType,wp.IsHsse,wp.IsCQMS,wp.CNCodes,
+ string strSql = @"SELECT wp.WorkPostId,wp.WorkPostName, wp.WorkPostCode, wp.Remark,wp.PostType,wp.IsHsse,wp.IsCQMS,wp.CNCodes,wp.IsCQMSCheck,
case wp.IsHsse when 1 then '是' else '否' end as IsHsseStr,const.ConstText as PostTypeName
FROM dbo.Base_WorkPost AS wp
LEFT JOIN Sys_Const AS const ON const.ConstValue = wp.PostType and const.GroupId = '" + ConstValue.Group_PostType + "' " +
@@ -170,6 +170,10 @@ namespace FineUIPro.Web.BaseInfo
{
this.ckbIsCQMS.Checked = true;
}
+ if (workPost.IsCQMSCheck == true)
+ {
+ this.ckbIsCQMSCheck.Checked = true;
+ }
if (!string.IsNullOrEmpty(workPost.CNCodes))
{
txtCNCodes.Values = workPost.CNCodes.Split(',');
@@ -210,6 +214,7 @@ namespace FineUIPro.Web.BaseInfo
PostType = this.drpPostType.SelectedValue,
IsHsse = Convert.ToBoolean(this.ckbIsHsse.Checked),
IsCQMS = Convert.ToBoolean(this.ckbIsCQMS.Checked),
+ IsCQMSCheck = Convert.ToBoolean(this.ckbIsCQMSCheck.Checked),
CNCodes = string.Join(",", txtCNCodes.Values),
Remark = txtRemark.Text.Trim()
};
@@ -282,6 +287,16 @@ namespace FineUIPro.Web.BaseInfo
#endregion
+ ///
+ /// 关闭导入弹出窗口
+ ///
+ ///
+ ///
+ protected void Window1_Close(object sender, WindowCloseEventArgs e)
+ {
+ BindGrid();
+ }
+
#region 验证岗位名称、编号是否存在
///
/// 验证岗位名称、编号是否存在
diff --git a/SGGL/FineUIPro.Web/BaseInfo/WorkPost.aspx.designer.cs b/SGGL/FineUIPro.Web/BaseInfo/WorkPost.aspx.designer.cs
index 189f9e9f..4ccac033 100644
--- a/SGGL/FineUIPro.Web/BaseInfo/WorkPost.aspx.designer.cs
+++ b/SGGL/FineUIPro.Web/BaseInfo/WorkPost.aspx.designer.cs
@@ -201,6 +201,15 @@ namespace FineUIPro.Web.BaseInfo {
///
protected global::FineUIPro.CheckBox ckbIsCQMS;
+ ///
+ /// ckbIsCQMSCheck 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.CheckBox ckbIsCQMSCheck;
+
///
/// txtCNCodes 控件。
///
diff --git a/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistration.aspx b/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistration.aspx
index 8fc35f3a..00b162ae 100644
--- a/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistration.aspx
+++ b/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistration.aspx
@@ -73,9 +73,12 @@
FieldType="String" HeaderText="课题" TextAlign="Center"
HeaderTextAlign="Center">
-
+ --%>
+
-
-
+ <%--
+ --%>
+
+
diff --git a/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistrationEdit.aspx.cs b/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistrationEdit.aspx.cs
index 295d439a..f7db5e9c 100644
--- a/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistrationEdit.aspx.cs
+++ b/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistrationEdit.aspx.cs
@@ -46,7 +46,10 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
this.drpUnitId.SelectedValue = QCGroupRegistration.UnitId;
}
txtSubjects.Text = QCGroupRegistration.Subjects;
- txtProcess.Text = QCGroupRegistration.Process;
+ if (QCGroupRegistration.AwardYear != null)
+ {
+ txtAwardYear.Text = string.Format("{0:yyyy}", QCGroupRegistration.AwardYear);
+ }
txtAchievement.Text = QCGroupRegistration.Achievement;
txtAwardName.Text = QCGroupRegistration.AwardName;
if (!string.IsNullOrEmpty(QCGroupRegistration.AwardType))
@@ -120,7 +123,11 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
QCGroupRegistration.UnitId = this.drpUnitId.SelectedValue;
}
QCGroupRegistration.Subjects = txtSubjects.Text.Trim();
- QCGroupRegistration.Process = txtProcess.Text.Trim();
+ var awardYearText = this.txtAwardYear.Text.Trim();
+ if (!string.IsNullOrEmpty(awardYearText))
+ {
+ QCGroupRegistration.AwardYear = DateTime.ParseExact(awardYearText, "yyyy", null);
+ }
QCGroupRegistration.Achievement = txtAchievement.Text.Trim();
QCGroupRegistration.AwardName = txtAwardName.Text.Trim();
if (!string.IsNullOrEmpty(this.drpAwardType.SelectedValue))
diff --git a/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistrationEdit.aspx.designer.cs b/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistrationEdit.aspx.designer.cs
index 61698fdb..2bab4eae 100644
--- a/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistrationEdit.aspx.designer.cs
+++ b/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistrationEdit.aspx.designer.cs
@@ -7,13 +7,11 @@
// 自动生成>
//------------------------------------------------------------------------------
-namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
-{
-
-
- public partial class QCGroupRegistrationEdit
- {
-
+namespace FineUIPro.Web.CQMS.QualityActivity.QCManage {
+
+
+ public partial class QCGroupRegistrationEdit {
+
///
/// form1 控件。
///
@@ -22,7 +20,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
-
+
///
/// PageManager1 控件。
///
@@ -31,7 +29,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.PageManager PageManager1;
-
+
///
/// SimpleForm1 控件。
///
@@ -40,7 +38,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.Form SimpleForm1;
-
+
///
/// ContentPanel2 控件。
///
@@ -49,7 +47,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.ContentPanel ContentPanel2;
-
+
///
/// Form2 控件。
///
@@ -58,7 +56,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.Form Form2;
-
+
///
/// txtCode 控件。
///
@@ -67,7 +65,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.TextBox txtCode;
-
+
///
/// txtName 控件。
///
@@ -76,7 +74,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.TextBox txtName;
-
+
///
/// drpUnitId 控件。
///
@@ -85,7 +83,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.DropDownList drpUnitId;
-
+
///
/// txtSubjects 控件。
///
@@ -94,16 +92,16 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.TextBox txtSubjects;
-
+
///
- /// txtProcess 控件。
+ /// txtAwardYear 控件。
///
///
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
- protected global::FineUIPro.TextBox txtProcess;
-
+ protected global::FineUIPro.DatePicker txtAwardYear;
+
///
/// txtAchievement 控件。
///
@@ -112,7 +110,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.TextBox txtAchievement;
-
+
///
/// txtAwardName 控件。
///
@@ -121,7 +119,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.TextBox txtAwardName;
-
+
///
/// txtAwardingUnit 控件。
///
@@ -130,7 +128,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.TextBox txtAwardingUnit;
-
+
///
/// drpAwardType 控件。
///
@@ -139,7 +137,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.DropDownList drpAwardType;
-
+
///
/// drpAwardLevel 控件。
///
@@ -148,7 +146,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.DropDownList drpAwardLevel;
-
+
///
/// txtCompileMan 控件。
///
@@ -157,7 +155,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.TextBox txtCompileMan;
-
+
///
/// txtCompileDate 控件。
///
@@ -166,7 +164,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.DatePicker txtCompileDate;
-
+
///
/// Panel1 控件。
///
@@ -175,7 +173,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.Panel Panel1;
-
+
///
/// imgBtnFile 控件。
///
@@ -184,7 +182,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.Button imgBtnFile;
-
+
///
/// Toolbar1 控件。
///
@@ -193,7 +191,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.Toolbar Toolbar1;
-
+
///
/// lbTemp 控件。
///
@@ -202,7 +200,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.Label lbTemp;
-
+
///
/// ToolbarFill1 控件。
///
@@ -211,7 +209,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.ToolbarFill ToolbarFill1;
-
+
///
/// btnSave 控件。
///
@@ -220,7 +218,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.Button btnSave;
-
+
///
/// hdId 控件。
///
@@ -229,7 +227,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.HiddenField hdId;
-
+
///
/// hdAttachUrl 控件。
///
@@ -238,7 +236,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.HiddenField hdAttachUrl;
-
+
///
/// WindowAtt 控件。
///
diff --git a/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistrationView.aspx b/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistrationView.aspx
index ff5c9b13..76cb796b 100644
--- a/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistrationView.aspx
+++ b/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistrationView.aspx
@@ -49,8 +49,11 @@
-
-
+ <%--
+ --%>
+
+
diff --git a/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistrationView.aspx.cs b/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistrationView.aspx.cs
index b018d952..ebe20cc9 100644
--- a/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistrationView.aspx.cs
+++ b/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistrationView.aspx.cs
@@ -45,7 +45,10 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
this.drpUnitId.SelectedValue = QCGroupRegistration.UnitId;
}
txtSubjects.Text = QCGroupRegistration.Subjects;
- txtProcess.Text = QCGroupRegistration.Process;
+ if (QCGroupRegistration.AwardYear != null)
+ {
+ txtAwardYear.Text = string.Format("{0:yyyy}", QCGroupRegistration.AwardYear);
+ }
txtAchievement.Text = QCGroupRegistration.Achievement;
txtAwardName.Text = QCGroupRegistration.AwardName;
if (!string.IsNullOrEmpty(QCGroupRegistration.AwardType))
diff --git a/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistrationView.aspx.designer.cs b/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistrationView.aspx.designer.cs
index 5f30c35a..6cace763 100644
--- a/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistrationView.aspx.designer.cs
+++ b/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistrationView.aspx.designer.cs
@@ -7,13 +7,11 @@
// 自动生成>
//------------------------------------------------------------------------------
-namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
-{
-
-
- public partial class QCGroupRegistrationView
- {
-
+namespace FineUIPro.Web.CQMS.QualityActivity.QCManage {
+
+
+ public partial class QCGroupRegistrationView {
+
///
/// form1 控件。
///
@@ -22,7 +20,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
-
+
///
/// PageManager1 控件。
///
@@ -31,7 +29,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.PageManager PageManager1;
-
+
///
/// SimpleForm1 控件。
///
@@ -40,7 +38,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.Form SimpleForm1;
-
+
///
/// ContentPanel2 控件。
///
@@ -49,7 +47,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.ContentPanel ContentPanel2;
-
+
///
/// Form2 控件。
///
@@ -58,7 +56,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.Form Form2;
-
+
///
/// txtCode 控件。
///
@@ -67,7 +65,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.TextBox txtCode;
-
+
///
/// txtName 控件。
///
@@ -76,7 +74,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.TextBox txtName;
-
+
///
/// drpUnitId 控件。
///
@@ -85,7 +83,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.DropDownList drpUnitId;
-
+
///
/// txtSubjects 控件。
///
@@ -94,16 +92,16 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.TextBox txtSubjects;
-
+
///
- /// txtProcess 控件。
+ /// txtAwardYear 控件。
///
///
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
- protected global::FineUIPro.TextBox txtProcess;
-
+ protected global::FineUIPro.DatePicker txtAwardYear;
+
///
/// txtAchievement 控件。
///
@@ -112,7 +110,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.TextBox txtAchievement;
-
+
///
/// txtAwardName 控件。
///
@@ -121,7 +119,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.TextBox txtAwardName;
-
+
///
/// txtAwardingUnit 控件。
///
@@ -130,7 +128,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.TextBox txtAwardingUnit;
-
+
///
/// drpAwardType 控件。
///
@@ -139,7 +137,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.DropDownList drpAwardType;
-
+
///
/// drpAwardLevel 控件。
///
@@ -148,7 +146,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.DropDownList drpAwardLevel;
-
+
///
/// txtCompileMan 控件。
///
@@ -157,7 +155,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.TextBox txtCompileMan;
-
+
///
/// txtCompileDate 控件。
///
@@ -166,7 +164,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.DatePicker txtCompileDate;
-
+
///
/// Panel1 控件。
///
@@ -175,7 +173,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.Panel Panel1;
-
+
///
/// imgBtnFile 控件。
///
@@ -184,7 +182,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.Button imgBtnFile;
-
+
///
/// Toolbar1 控件。
///
@@ -193,7 +191,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.Toolbar Toolbar1;
-
+
///
/// lbTemp 控件。
///
@@ -202,7 +200,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.Label lbTemp;
-
+
///
/// ToolbarFill1 控件。
///
@@ -211,7 +209,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.ToolbarFill ToolbarFill1;
-
+
///
/// hdId 控件。
///
@@ -220,7 +218,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.HiddenField hdId;
-
+
///
/// hdAttachUrl 控件。
///
@@ -229,7 +227,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.HiddenField hdAttachUrl;
-
+
///
/// WindowAtt 控件。
///
diff --git a/SGGL/FineUIPro.Web/Controls/ChartControl.ascx.cs b/SGGL/FineUIPro.Web/Controls/ChartControl.ascx.cs
index 312cde56..abefc297 100644
--- a/SGGL/FineUIPro.Web/Controls/ChartControl.ascx.cs
+++ b/SGGL/FineUIPro.Web/Controls/ChartControl.ascx.cs
@@ -1,7 +1,9 @@
using System;
using System.Data;
using System.Drawing;
+using System.Linq;
using System.Web.UI.DataVisualization.Charting;
+using System.Web.UI.WebControls;
namespace Web.Controls
{
@@ -485,6 +487,166 @@ namespace Web.Controls
Controls.Add(chart1);
}
+ public void CreateChart1(Model.DataSourceChart dataSourceChart)
+ {
+ int totalDataCount = 0;
+ if (dataSourceChart.DataSourceTeams != null && dataSourceChart.DataSourceTeams.Count > 0)
+ {
+ var firstTeam = dataSourceChart.DataSourceTeams.FirstOrDefault(t => t.DataPointName != "累计");
+ if (firstTeam != null)
+ totalDataCount = firstTeam.DataSourcePoints.Count;
+ }
+ // 每个标签分配 70px 宽度(可微调:60-80 之间)
+ int autoChartWidth = totalDataCount * 45;
+
+ Chart chart1 = new Chart
+ {
+ ID = "chart1",
+ BackColor = Color.WhiteSmoke,
+ ImageLocation = "~/Images/ChartPic_#SEQ(300,3)",
+ BorderlineDashStyle = ChartDashStyle.Solid,
+ Palette = ChartColorPalette.BrightPastel,
+ BackSecondaryColor = Color.White,
+ BackGradientStyle = GradientStyle.TopBottom,
+ BorderWidth = 2,
+ BorderColor = Color.FromArgb(26, 59, 105),
+ ImageType = ChartImageType.Png,
+
+ Width = dataSourceChart.Width > autoChartWidth ? dataSourceChart.Width : autoChartWidth,
+ Height = dataSourceChart.Height
+ };
+
+ Title title = new Title
+ {
+ Text = dataSourceChart.Title,
+ ShadowColor = Color.FromArgb(32, 0, 0, 0),
+ Font = new Font("Trebuchet MS", 10F, FontStyle.Bold),
+ ShadowOffset = 3,
+ ForeColor = Color.FromArgb(26, 59, 105)
+ };
+ chart1.Titles.Add(title);
+
+ Legend legend = new Legend
+ {
+ Name = dataSourceChart.Title,
+ TextWrapThreshold = 1,
+ Docking = Docking.Top,
+ Alignment = StringAlignment.Center,
+ BackColor = Color.Transparent,
+ Font = new Font(new FontFamily("Trebuchet MS"), 8),
+ LegendStyle = LegendStyle.Row,
+ IsEquallySpacedItems = true,
+ IsTextAutoFit = false
+ };
+ chart1.Legends.Add(legend);
+
+ ChartArea chartArea = new ChartArea
+ {
+ Name = dataSourceChart.Title,
+ BackColor = Color.Transparent
+ };
+
+ chartArea.AxisX.IsLabelAutoFit = false;
+ chartArea.AxisY.IsLabelAutoFit = false;
+ chartArea.AxisX.Interval = 1; // 每个点都显示标签
+ chartArea.AxisX.LabelStyle.Angle = 45; // 倾斜45°
+ chartArea.AxisX.LabelStyle.Font = new Font("Verdana,Arial,Helvetica,sans-serif", 8F);
+ chartArea.AxisY.LabelStyle.Font = new Font("Verdana,Arial,Helvetica,sans-serif", 8F);
+
+ // 线条样式
+ chartArea.AxisY.LineColor = Color.FromArgb(64, 64, 64, 64);
+ chartArea.AxisX.LineColor = Color.FromArgb(64, 64, 64, 64);
+ chartArea.AxisY.MajorGrid.LineColor = Color.FromArgb(64, 64, 64, 64);
+ chartArea.AxisX.MajorGrid.LineColor = Color.FromArgb(64, 64, 64, 64);
+
+ chart1.ChartAreas.Add(chartArea);
+
+
+ Panel scrollPanel = new Panel();
+ scrollPanel.Style.Add("width", "100%"); // 父容器自适应
+ scrollPanel.Style.Add("overflow-x", "auto"); // 横向滚动条
+ scrollPanel.Style.Add("overflow-y", "hidden");
+ scrollPanel.Style.Add("margin-bottom", "10px");
+ scrollPanel.Controls.Add(chart1);
+
+
+ if (dataSourceChart.ChartType == SeriesChartType.Pie)
+ {
+ foreach (Model.DataSourceTeam dataSourceTeam in dataSourceChart.DataSourceTeams)
+ {
+ this.lblTotal.Text = "累计值为:";
+ if (dataSourceTeam.DataPointName == "累计")
+ {
+ foreach (Model.DataSourcePoint dataSourcePoint in dataSourceTeam.DataSourcePoints)
+ {
+ this.lblTotal.Text += (dataSourcePoint.PointText + ":" + dataSourcePoint.PointValue + ",");
+ }
+
+ if (this.lblTotal.Text != "累计值为:")
+ {
+ this.lblTotal.Text = this.lblTotal.Text.Substring(0, this.lblTotal.Text.LastIndexOf(","));
+ }
+ }
+ else
+ {
+ this.lblTotal.Visible = false;
+ chart1.Series.Add(dataSourceTeam.DataPointName);
+ chart1.Series[dataSourceTeam.DataPointName].ChartType = dataSourceChart.ChartType;
+ chart1.Series[dataSourceTeam.DataPointName].Name = dataSourceTeam.DataPointName;
+ chart1.Series[dataSourceTeam.DataPointName].IsValueShownAsLabel = true;
+ chart1.Series[dataSourceTeam.DataPointName].BorderWidth = 2;
+ chart1.Series[dataSourceTeam.DataPointName].Label = "#PERCENT{P1}";
+ chart1.Series[dataSourceTeam.DataPointName]["DrawingStyle"] = "Cylinder";
+ int m = 0;
+ foreach (Model.DataSourcePoint dataSourcePoint in dataSourceTeam.DataSourcePoints)
+ {
+ chart1.Series[dataSourceTeam.DataPointName].Points.AddXY(dataSourcePoint.PointText,
+ dataSourcePoint.PointValue);
+ chart1.Series[dataSourceTeam.DataPointName].Points[m].LegendText =
+ dataSourcePoint.PointText + "#PERCENT{P1}";
+ m++;
+ }
+ }
+ }
+ }
+ else
+ {
+ foreach (Model.DataSourceTeam dataSourceTeam in dataSourceChart.DataSourceTeams)
+ {
+ this.lblTotal.Text = "累计值为:";
+ if (dataSourceTeam.DataPointName == "累计")
+ {
+ foreach (Model.DataSourcePoint dataSourcePoint in dataSourceTeam.DataSourcePoints)
+ {
+ this.lblTotal.Text += (dataSourcePoint.PointText + ":" + dataSourcePoint.PointValue + ",");
+ }
+
+ if (this.lblTotal.Text != "累计值为:")
+ {
+ this.lblTotal.Text = this.lblTotal.Text.Substring(0, this.lblTotal.Text.LastIndexOf(","));
+ }
+ }
+ else
+ {
+ this.lblTotal.Visible = false;
+ chart1.Series.Add(dataSourceTeam.DataPointName);
+ chart1.Series[dataSourceTeam.DataPointName].ChartType = dataSourceChart.ChartType;
+ chart1.Series[dataSourceTeam.DataPointName].Name = dataSourceTeam.DataPointName;
+ chart1.Series[dataSourceTeam.DataPointName].IsValueShownAsLabel = true;
+ chart1.Series[dataSourceTeam.DataPointName].BorderWidth = 2;
+ chart1.Series[dataSourceTeam.DataPointName]["DrawingStyle"] = "Cylinder";
+
+ foreach (Model.DataSourcePoint dataSourcePoint in dataSourceTeam.DataSourcePoints)
+ {
+ chart1.Series[dataSourceTeam.DataPointName].Points.AddXY(dataSourcePoint.PointText,
+ dataSourcePoint.PointValue);
+ }
+ }
+ }
+ }
+
+ Controls.Add(scrollPanel);
+ }
}
}
\ No newline at end of file
diff --git a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj
index d98a37e8..bd3dc5dd 100644
--- a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj
+++ b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj
@@ -1845,6 +1845,8 @@
+
+
@@ -12641,6 +12643,20 @@
ShowWBS.aspx
+
+ CheckStatisticsAnalysis.aspx
+ ASPXCodeBehind
+
+
+ CheckStatisticsAnalysis.aspx
+
+
+ CheckStatisticsAnalysisProject.aspx
+ ASPXCodeBehind
+
+
+ CheckStatisticsAnalysisProject.aspx
+
HiddenRectificationAdd.aspx
ASPXCodeBehind
diff --git a/SGGL/FineUIPro.Web/HSSE/HiddenInspection/CheckStatisticsAnalysis.aspx b/SGGL/FineUIPro.Web/HSSE/HiddenInspection/CheckStatisticsAnalysis.aspx
new file mode 100644
index 00000000..32b58072
--- /dev/null
+++ b/SGGL/FineUIPro.Web/HSSE/HiddenInspection/CheckStatisticsAnalysis.aspx
@@ -0,0 +1,66 @@
+<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CheckStatisticsAnalysis.aspx.cs" Inherits="FineUIPro.Web.HSSE.HiddenInspection.HSSECheckStatisticsAnalysis" %>
+
+
+
+
+
+
+ 隐患分析
+
+
+
+
+
+
+
+
diff --git a/SGGL/FineUIPro.Web/HSSE/HiddenInspection/CheckStatisticsAnalysis.aspx.cs b/SGGL/FineUIPro.Web/HSSE/HiddenInspection/CheckStatisticsAnalysis.aspx.cs
new file mode 100644
index 00000000..b74922f2
--- /dev/null
+++ b/SGGL/FineUIPro.Web/HSSE/HiddenInspection/CheckStatisticsAnalysis.aspx.cs
@@ -0,0 +1,56 @@
+using System;
+using BLL;
+
+namespace FineUIPro.Web.HSSE.HiddenInspection
+{
+ public partial class HSSECheckStatisticsAnalysis : PageBase
+ {
+ public string Types
+ {
+ get => (string)ViewState["Types"];
+ set => ViewState["Types"] = value;
+ }
+ public string UnitId
+ {
+ get => (string)ViewState["UnitId"];
+ set => ViewState["UnitId"] = value;
+ }
+
+ protected void Page_Load(object sender, EventArgs e)
+ {
+ if (!IsPostBack)
+ {
+ this.DatePicker1.Text = new DateTime(DateTime.Now.Year, 1, 1).ToString("yyyy-MM-dd");
+ this.DatePicker2.Text = DateTime.Now.ToString("yyyy-MM-dd");
+ UnitId = this.CurrUser.UnitId;
+ if (this.CurrUser.PersonId == Const.sysglyId || this.CurrUser.PersonId == Const.hfnbdId || this.CurrUser.PersonId == Const.sedinId)
+ {
+ UnitId = BLL.Const.UnitId_SEDIN;
+ }
+ BLL.ProjectService.InitProjectDropDownList(this.drpProject,UnitId, false);//项目
+ Types = Request.Params["Types"] ?? "1";
+ }
+
+ }
+
+ protected void BtnAnalyse_Click(object sender, EventArgs e)
+ {
+ string ProjectStr = string.Empty;
+
+ foreach (ListItem item in this.drpProject.SelectedItemArray)
+ {
+ ProjectStr += item.Value + ",";
+ }
+
+ string queryStr = string.Empty;
+
+ if (!string.IsNullOrWhiteSpace(queryStr))
+ {
+ ShowNotify(queryStr, MessageBoxIcon.Warning);
+ return;
+ }
+
+ panelCenterRegion.IFrameUrl = $"./CheckStatisticsAnalysisProject.aspx?StartDate={DatePicker1.Text}&EndDate={DatePicker2.Text}&ProjectStr={ProjectStr}&Types={Types}&UnitId={UnitId}";
+ }
+ }
+}
\ No newline at end of file
diff --git a/SGGL/FineUIPro.Web/HSSE/HiddenInspection/CheckStatisticsAnalysis.aspx.designer.cs b/SGGL/FineUIPro.Web/HSSE/HiddenInspection/CheckStatisticsAnalysis.aspx.designer.cs
new file mode 100644
index 00000000..79c6e835
--- /dev/null
+++ b/SGGL/FineUIPro.Web/HSSE/HiddenInspection/CheckStatisticsAnalysis.aspx.designer.cs
@@ -0,0 +1,98 @@
+//------------------------------------------------------------------------------
+// <Զ>
+// ˴ɹɡ
+//
+// ԴļĸĿܵ²ȷΪ
+// ɴ룬Ľʧ
+// Զ>
+//------------------------------------------------------------------------------
+
+namespace FineUIPro.Web.HSSE.HiddenInspection
+{
+
+
+ public partial class HSSECheckStatisticsAnalysis
+ {
+
+ ///
+ /// form1 ؼ
+ ///
+ ///
+ /// ԶɵֶΡ
+ /// Ҫģ뽫ֶļƵļ
+ ///
+ protected global::System.Web.UI.HtmlControls.HtmlForm form1;
+
+ ///
+ /// PageManager1 ؼ
+ ///
+ ///
+ /// ԶɵֶΡ
+ /// Ҫģ뽫ֶļƵļ
+ ///
+ protected global::FineUIPro.PageManager PageManager1;
+
+ ///
+ /// Panel3 ؼ
+ ///
+ ///
+ /// ԶɵֶΡ
+ /// Ҫģ뽫ֶļƵļ
+ ///
+ protected global::FineUIPro.Panel Panel3;
+
+ ///
+ /// panelCenterRegion ؼ
+ ///
+ ///
+ /// ԶɵֶΡ
+ /// Ҫģ뽫ֶļƵļ
+ ///
+ protected global::FineUIPro.Panel panelCenterRegion;
+
+ ///
+ /// Toolbar2 ؼ
+ ///
+ ///
+ /// ԶɵֶΡ
+ /// Ҫģ뽫ֶļƵļ
+ ///
+ protected global::FineUIPro.Toolbar Toolbar2;
+
+ ///
+ /// DatePicker1 ؼ
+ ///
+ ///
+ /// ԶɵֶΡ
+ /// Ҫģ뽫ֶļƵļ
+ ///
+ protected global::FineUIPro.DatePicker DatePicker1;
+
+ ///
+ /// DatePicker2 ؼ
+ ///
+ ///
+ /// ԶɵֶΡ
+ /// Ҫģ뽫ֶļƵļ
+ ///
+ protected global::FineUIPro.DatePicker DatePicker2;
+
+ ///
+ /// drpProject ؼ
+ ///
+ ///
+ /// ԶɵֶΡ
+ /// Ҫģ뽫ֶļƵļ
+ ///
+ protected global::FineUIPro.DropDownList drpProject;
+
+ ///
+ /// BtnAnalyse ؼ
+ ///
+ ///
+ /// ԶɵֶΡ
+ /// Ҫģ뽫ֶļƵļ
+ ///
+ protected global::FineUIPro.Button BtnAnalyse;
+ }
+}
diff --git a/SGGL/FineUIPro.Web/HSSE/HiddenInspection/CheckStatisticsAnalysisProject.aspx b/SGGL/FineUIPro.Web/HSSE/HiddenInspection/CheckStatisticsAnalysisProject.aspx
new file mode 100644
index 00000000..12af7578
--- /dev/null
+++ b/SGGL/FineUIPro.Web/HSSE/HiddenInspection/CheckStatisticsAnalysisProject.aspx
@@ -0,0 +1,139 @@
+<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CheckStatisticsAnalysisProject.aspx.cs" Inherits="FineUIPro.Web.HSSE.HiddenInspection.HSSECheckStatisticsAnalysisProject" %>
+
+<%@ Register Src="~/Controls/ChartControl.ascx" TagName="ChartControl" TagPrefix="uc1" %>
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SGGL/FineUIPro.Web/HSSE/HiddenInspection/CheckStatisticsAnalysisProject.aspx.cs b/SGGL/FineUIPro.Web/HSSE/HiddenInspection/CheckStatisticsAnalysisProject.aspx.cs
new file mode 100644
index 00000000..b10e8ca6
--- /dev/null
+++ b/SGGL/FineUIPro.Web/HSSE/HiddenInspection/CheckStatisticsAnalysisProject.aspx.cs
@@ -0,0 +1,582 @@
+using BLL;
+using Model;
+using Newtonsoft.Json.Linq;
+using System;
+using System.Collections;
+using System.Collections.Concurrent;
+using System.Collections.Generic;
+using System.Data;
+using System.Linq;
+using System.Text;
+
+namespace FineUIPro.Web.HSSE.HiddenInspection
+{
+ public partial class HSSECheckStatisticsAnalysisProject : PageBase
+ {
+ public DataTable ChartTable
+ {
+ get { return (DataTable)ViewState["ChartTable"]; }
+ set { ViewState["ChartTable"] = value; }
+ }
+
+ ///
+ /// 开始年月
+ ///
+ public string StartDate
+ {
+ get => (string)ViewState["StartDate"];
+ set => ViewState["StartDate"] = value;
+ }
+
+ ///
+ /// 结束年月
+ ///
+ public string EndDate
+ {
+ get => (string)ViewState["EndDate"];
+ set => ViewState["EndDate"] = value;
+ }
+
+ public string UnitId
+ {
+ get => (string)ViewState["UnitId"];
+ set => ViewState["UnitId"] = value;
+ }
+ public bool ShowHsse
+ {
+ get => (bool)ViewState["ShowHsse"];
+ set => ViewState["ShowHsse"] = value;
+ }
+
+ public bool ShowEnvironment
+ {
+ get => (bool)ViewState["ShowEnvironment"];
+ set => ViewState["ShowEnvironment"] = value;
+ }
+
+ public bool ShowCqms
+ {
+ get => (bool)ViewState["ShowCqms"];
+ set => ViewState["ShowCqms"] = value;
+ }
+
+
+ public List projects = new List();
+
+ #region Page_Init
+
+ // 注意:动态创建的代码需要放置于Page_Init(不是Page_Load),这样每次构造页面时都会执行
+ protected void Page_Init(object sender, EventArgs e)
+ {
+ string ProblemTypes = Request.Params["Types"];
+
+ ShowHsse = ProblemTypes.Contains("1");
+ ShowCqms = ProblemTypes.Contains("2");
+ ShowEnvironment = ProblemTypes.Contains("3");
+
+ InitGrid();
+ }
+
+
+ private void InitGrid()
+ {
+ StartDate = Request.Params["StartDate"];
+ EndDate = Request.Params["EndDate"];
+ UnitId = Request.Params["UnitId"];
+ string ProjectStr = Request.Params["ProjectStr"];
+ if (!string.IsNullOrWhiteSpace(ProjectStr))
+ {
+ var projectlst = ProjectStr.Split(',');
+ foreach (var un in projectlst)
+ {
+ if (!string.IsNullOrWhiteSpace(un))
+ {
+ projects.Add(un);
+ }
+ }
+ }
+ }
+
+ #endregion
+
+ protected void Page_Load(object sender, EventArgs e)
+ {
+ if (!IsPostBack)
+ {
+ this.drpChartType.DataTextField = "ConstText";
+ this.drpChartType.DataValueField = "ConstValue";
+ this.drpChartType.DataSource = BLL.ConstValue.drpConstItemList(ConstValue.Group_ChartType);
+ this.drpChartType.DataBind();
+ // 绑定表格
+ this.BindGrid();
+ AnalyseData();
+ }
+ }
+
+ #region 绑定数据
+
+ ///
+ /// 绑定数据
+ ///
+ private void BindGrid()
+ {
+ ChartTable = new DataTable();
+ ChartTable.Columns.Add("项目");
+ ChartTable.Columns.Add("待整改数");
+ ChartTable.Columns.Add("已关闭数");
+ DateTime start = DateTime.Parse(StartDate);
+ DateTime end = DateTime.Parse(EndDate);
+ var sublist = new List();
+ var IsThisUnit = BLL.Const.UnitId_SEDIN == UnitId ? true : false;
+ if (IsThisUnit)
+ {
+ sublist = BLL.ProjectService.GetProjectWorkList();
+
+ }
+ else
+ {
+ sublist = BLL.ProjectService.GetProjectWorkList(UnitId);
+ }
+
+ var allHazardList = new List();
+ if (ShowHsse)
+ {
+ allHazardList = (from x in Funs.DB.View_Hazard_HazardRegister
+ where x.CheckTime.HasValue && x.CheckTime.Value >= start && x.CheckTime.Value <= end
+ select new TempHazardModel
+ {
+ ProjectId = x.ProjectId,
+ ProjectName = x.ProjectName,
+ States = x.States,
+ CheckTime = x.CheckTime
+ }).ToList();
+ }
+
+ if (ShowCqms)
+ {
+ allHazardList = (from x in Funs.DB.Check_CheckControl
+ join p in Funs.DB.Base_Project on x.ProjectId equals p.ProjectId into pt
+ from p in pt
+ join y in Funs.DB.Check_CheckControl on x.CheckControlCode equals y.CheckControlCode into yt
+ from y in yt
+ where x.CheckDate.HasValue && x.CheckDate.Value >= start && x.CheckDate.Value <= end
+ select new TempHazardModel
+ {
+ ProjectId = x.ProjectId,
+ ProjectName = p.ProjectName,
+ States = y.State,
+ CheckTime = x.CheckDate
+ }).ToList();
+ }
+
+
+ if (projects.Count > 0)
+ {
+ allHazardList = allHazardList.Where(x => projects.Contains(x.ProjectId)).ToList();
+ }
+
+ List dataList = new List();
+ foreach (var item in sublist) //项目分组
+ {
+ if (projects.Count > 0 && !(projects.Where(x => x == item.ProjectId).Any()))
+ {
+ continue;
+ }
+
+ AnalysisData analysisData = new AnalysisData();
+ var projectHazardList = from x in allHazardList
+ where x.ProjectId == item.ProjectId
+ select x; //当前项目所有隐患
+
+ int closeList = 0;
+ if (ShowHsse)
+ {
+ closeList = projectHazardList.Where(x => x.States == "3").Count(); //已闭环
+ }
+
+ if (ShowCqms)
+ {
+ closeList = projectHazardList.Where(x => x.States == "7").Count(); //已闭环
+ }
+
+ analysisData.ProjectId = item.ProjectId;
+ analysisData.ProjectName = !string.IsNullOrEmpty(item.ShortName) ? item.ShortName : item.ProjectName;
+ analysisData.HJNum = projectHazardList.Count();
+ analysisData.CloseNum = closeList;
+ analysisData.UNCloseNum = projectHazardList.Count() - closeList;
+ if (projectHazardList.Count() > 0)
+ {
+ double rate = closeList / (double)projectHazardList.Count() * 100;
+ analysisData.ProjectRate = rate.ToString("F2") + "%"; // 保留两位小数
+ }
+ else
+ {
+ // 处理分母为零的情况,例如设置一个默认值或抛出异常
+ analysisData.ProjectRate = "0.00%"; // 或者其他适当的默认值
+ }
+
+ dataList.Add(analysisData);
+
+ //chart图表
+ DataRow chartTableRow = ChartTable.NewRow();
+ chartTableRow["项目"] = !string.IsNullOrEmpty(item.ShortName) ? item.ShortName : item.ProjectName;
+ chartTableRow["待整改数"] = projectHazardList.Count() - closeList;
+ chartTableRow["已关闭数"] = closeList;
+ ChartTable.Rows.Add(chartTableRow);
+ }
+
+ Grid1.RecordCount = dataList.Count;
+ Grid1.DataSource = dataList;
+ Grid1.DataBind();
+
+ // 数据合计
+ OutputSummaryData(dataList);
+ }
+
+
+ ///
+ /// 数据合计
+ ///
+ ///
+ private void OutputSummaryData(List source)
+ {
+ JObject summary = new JObject();
+ summary.Add("ProjectName", "合计");
+ int UNCloseNumAll = 0;
+ int CloseNumAll = 0;
+ int HJNumAll = 0;
+
+ foreach (var analysisData in source)
+ {
+ UNCloseNumAll += Convert.ToInt32(analysisData.UNCloseNum);
+ CloseNumAll += Convert.ToInt32(analysisData.CloseNum);
+ HJNumAll += Convert.ToInt32(analysisData.HJNum);
+ }
+ summary.Add("UNCloseNum", UNCloseNumAll);
+ summary.Add("CloseNum", CloseNumAll);
+ summary.Add("HJNum", HJNumAll);
+ Grid1.SummaryData = summary;
+ }
+
+ #endregion
+
+ #region GV 数据操作
+
+ ///
+ /// 分页
+ ///
+ ///
+ ///
+ protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
+ {
+ this.Grid1.PageIndex = e.NewPageIndex;
+ this.BindGrid();
+ }
+
+ ///
+ /// 排序
+ ///
+ ///
+ ///
+ protected void Grid1_Sort(object sender, GridSortEventArgs e)
+ {
+ this.Grid1.SortDirection = e.SortDirection;
+ this.Grid1.SortField = e.SortField;
+ this.BindGrid();
+ }
+
+ #endregion
+
+ #region 数据编辑事件
+
+ protected void btnQuery_OnClick(object sender, EventArgs e)
+ {
+ BindGrid();
+ }
+
+ #endregion
+
+ #region 关闭弹出窗
+
+ ///
+ /// 关闭弹出窗
+ ///
+ ///
+ ///
+ protected void Window1_Close(object sender, WindowCloseEventArgs e)
+ {
+ BindGrid();
+ }
+
+ #endregion
+
+ #region 导出按钮
+
+ /// 导出按钮
+ ///
+ ///
+ ///
+ protected void btnOut_Click(object sender, EventArgs e)
+ {
+ Response.ClearContent();
+ string filename = Funs.GetNewFileName();
+ Response.AddHeader("content-disposition",
+ "attachment; filename=" +
+ System.Web.HttpUtility.UrlEncode("安全巡检统计分析表" + filename, System.Text.Encoding.UTF8) + ".xls");
+ Response.ContentType = "application/excel";
+ Response.ContentEncoding = System.Text.Encoding.UTF8;
+ this.Grid1.PageSize = 500;
+ this.BindGrid();
+ Response.Write(GetGridTableHtml(Grid1));
+ Response.End();
+ }
+
+ private string GetGridTableHtml(Grid grid)
+ {
+ StringBuilder sb = new StringBuilder();
+
+ MultiHeaderTable mht = new MultiHeaderTable();
+ mht.ResolveMultiHeaderTable(Grid1.Columns);
+
+
+ sb.Append("");
+
+
+ sb.Append("");
+
+ foreach (List
");
+
+ return sb.ToString();
+ }
+
+
+ #region 多表头处理
+
+ ///
+ /// 多表头处理
+ ///
+ public class MultiHeaderTable
+ {
+ // 包含 rowspan,colspan 的多表头,方便生成 HTML 的 table 标签
+ public List> MultiTable = new List>();
+
+ // 最终渲染的列数组
+ public List Columns = new List();
+
+ public void ResolveMultiHeaderTable(GridColumnCollection columns)
+ {
+ List