diff --git a/DataBase/版本日志/SUBQHSE_V2026-04-10.sql b/DataBase/版本日志/SUBQHSE_V2026-04-10.sql
new file mode 100644
index 00000000..541c6031
--- /dev/null
+++ b/DataBase/版本日志/SUBQHSE_V2026-04-10.sql
@@ -0,0 +1,58 @@
+-- Զȡܰ
+alter table Base_Project add IsAutoFetch bit NULL;
+
+
+ GO
+ -- λ
+alter table Base_WorkPost add IsCQMSCheck bit NULL;
+
+
+ GO
+
+alter table SitePerson_Person add IsTrain bit NULL;
+
+
+ GO
+
+
+ --select * from [Sys_Menu]
+ --where MenuName='ݿ'
+
+
+--ưŵ˾ġ/ݹµġĿݷ,˵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', 1, N'FF0D9166-4509-4411-8039-F035BC251114', N'Menu_DigData', '0', '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', 1, N'FF0D9166-4509-4411-8039-F035BC251114', N'Menu_DigData', '0', '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
+GO
+
+
+
+
+
+
+
diff --git a/SGGL/BLL/API/APIUserService.cs b/SGGL/BLL/API/APIUserService.cs
index 0b559085..63135a62 100644
--- a/SGGL/BLL/API/APIUserService.cs
+++ b/SGGL/BLL/API/APIUserService.cs
@@ -71,7 +71,7 @@ namespace BLL
{
getDataList = (from x in db.Sys_User
join y in db.Project_ProjectUser on x.UserId equals y.UserId
- where y.ProjectId == projectId && (x.UnitId == unitId || unitId == null)
+ where y.ProjectId == projectId && (y.UnitId == unitId || unitId == null)
&& (roleIds == null || roleList.Contains(y.RoleId)) && (strParam == null || x.UserName.Contains(strParam))
&& y.IsPost == true
select new Model.UserItem
diff --git a/SGGL/BLL/BaseInfo/WorkPostService.cs b/SGGL/BLL/BaseInfo/WorkPostService.cs
index 74cb6cd6..e02f99de 100644
--- a/SGGL/BLL/BaseInfo/WorkPostService.cs
+++ b/SGGL/BLL/BaseInfo/WorkPostService.cs
@@ -8,7 +8,6 @@ namespace BLL
{
public static class WorkPostService
{
- public static Model.SGGLDB db = Funs.DB;
///
/// 根据主键获取信息
@@ -38,6 +37,7 @@ namespace BLL
PostType = workPost.PostType,
IsHsse = workPost.IsHsse,
IsCQMS = workPost.IsCQMS,
+ IsCQMSCheck = workPost.IsCQMSCheck,
CNCodes = workPost.CNCodes,
Remark = workPost.Remark
};
@@ -90,6 +90,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 3d4748ad..dc0f1cff 100644
--- a/SGGL/BLL/CQMS/QualityActivity/QCManage/QCManage_QCGroupRegistrationService.cs
+++ b/SGGL/BLL/CQMS/QualityActivity/QCManage/QCManage_QCGroupRegistrationService.cs
@@ -37,6 +37,7 @@ namespace BLL
newQCGroupRegistration.AwardLevel = QCGroupRegistration.AwardLevel;
newQCGroupRegistration.AwardType = QCGroupRegistration.AwardType;
newQCGroupRegistration.AwardingUnit = QCGroupRegistration.AwardingUnit;
+ newQCGroupRegistration.AwardYear = QCGroupRegistration.AwardYear;
db.QCManage_QCGroupRegistration.InsertOnSubmit(newQCGroupRegistration);
db.SubmitChanges();
}
@@ -63,6 +64,7 @@ namespace BLL
newQCGroupRegistration.AwardLevel = QCGroupRegistration.AwardLevel;
newQCGroupRegistration.AwardType = QCGroupRegistration.AwardType;
newQCGroupRegistration.AwardingUnit = QCGroupRegistration.AwardingUnit;
+ newQCGroupRegistration.AwardYear = QCGroupRegistration.AwardYear;
newQCGroupRegistration.IsUpdate = null;
db.SubmitChanges();
}
diff --git a/SGGL/BLL/DataShare/APIDataShareSyncService.cs b/SGGL/BLL/DataShare/APIDataShareSyncService.cs
index c2c83cd8..67b4d6d0 100644
--- a/SGGL/BLL/DataShare/APIDataShareSyncService.cs
+++ b/SGGL/BLL/DataShare/APIDataShareSyncService.cs
@@ -348,7 +348,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))
@@ -363,6 +363,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 3ce51217..2d250857 100644
--- a/SGGL/BLL/DataShare/HSSE/APIPersonSyncService.cs
+++ b/SGGL/BLL/DataShare/HSSE/APIPersonSyncService.cs
@@ -109,6 +109,7 @@ namespace BLL
IsSafetyMonitoring = x.IsSafetyMonitoring,
ProvinceCode = x.ProvinceCode,
IsCardNoOK = x.IsCardNoOK,
+ IsTrain = x.IsTrain,
AttachFileId1 = att1.AttachFileId,
ToKeyId1 = att1.ToKeyId,
AttachSource1 = att1.AttachSource,
@@ -133,6 +134,7 @@ namespace BLL
PostType = wp.PostType, //岗位诶类型
IsHsse = wp.IsHsse, //岗位是否是安管人员
IsCQMS = wp.IsCQMS, //岗位是否是质量管理
+ IsCQMSCheck = wp.IsCQMSCheck,
TeamGroupName = tg.TeamGroupName,
WorkAreaName = APIDataShareSyncService.GetWorkAreaNames(x.WorkAreaId, projectId)
}).ToList();
@@ -372,7 +374,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,
@@ -412,7 +414,8 @@ namespace BLL
CountryCode = item.CountryCode,
IsSafetyMonitoring = item.IsSafetyMonitoring,
ProvinceCode = item.ProvinceCode,
- IsCardNoOK = item.IsCardNoOK
+ IsCardNoOK = item.IsCardNoOK,
+ IsTrain = item.IsTrain,
};
db.SitePerson_Person.InsertOnSubmit(newModel);
@@ -430,7 +433,7 @@ namespace BLL
model.UnitId = unitId;
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());
+ model.WorkPostId = APIDataShareSyncService.getWorkPostId(item.WorkPostName, item.PostType, 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/CQMSDataService.cs b/SGGL/BLL/ZHGL/DataSync/CQMSDataService.cs
index 01169709..46fc1ce3 100644
--- a/SGGL/BLL/ZHGL/DataSync/CQMSDataService.cs
+++ b/SGGL/BLL/ZHGL/DataSync/CQMSDataService.cs
@@ -696,8 +696,10 @@ namespace BLL
MaterialInspectionNum = inspectionEquipmentList.Count(),
MaterialInspectionQualifiedNum = inspectionEquipmentList.Where(x => x.SamplingResult == "1").Count(),
- UseNum = useNum.Count(),
- OKNum = okNum.Count(),
+ //UseNum = useNum.Count(),
+ //OKNum = okNum.Count(),
+ UseNum = useNum.Sum(x => x.UnitsCount ?? 1),
+ OKNum = okNum.Sum(x => x.UnitsCount ?? 1),
SingleProjectNum = singleProjectNum.Count(),
UnitProjectNum = unitProjectNum.Count(),
SubProjectNum = subProjectNum.Count(),
@@ -766,8 +768,10 @@ namespace BLL
MachineInspectionQualifiedNum = inspectionMachineList.Where(x => x.IsCheckOK.HasValue && x.IsCheckOK == true && x.ProjectId == projectid).Count(),
MaterialInspectionNum = inspectionEquipmentList.Count(x => x.ProjectId == projectid),
MaterialInspectionQualifiedNum = inspectionEquipmentList.Where(x => x.SamplingResult == "1" && x.ProjectId == projectid).Count(),
- UseNum = useNum.Count(x => x.ProjectId == projectid),
- OKNum = okNum.Count(x => x.ProjectId == projectid),
+ //UseNum = useNum.Count(x => x.ProjectId == projectid),
+ //OKNum = okNum.Count(x => x.ProjectId == projectid),
+ UseNum = useNum.Where(x => x.ProjectId == projectid).Sum(x => x.UnitsCount ?? 1),
+ OKNum = okNum.Where(x => x.ProjectId == projectid).Sum(x => x.UnitsCount ?? 1),
SingleProjectNum = singleProjectNum.Count(x => x.ProjectId == projectid),
UnitProjectNum = unitProjectNum.Count(x => x.ProjectId == projectid),
SubProjectNum = subProjectNum.Count(x => x.ProjectId == projectid),
diff --git a/SGGL/BLL/ZHGL/DataSync/ProjectDataSync/Project_CQMSDataService.cs b/SGGL/BLL/ZHGL/DataSync/ProjectDataSync/Project_CQMSDataService.cs
index 4f247167..959267fa 100644
--- a/SGGL/BLL/ZHGL/DataSync/ProjectDataSync/Project_CQMSDataService.cs
+++ b/SGGL/BLL/ZHGL/DataSync/ProjectDataSync/Project_CQMSDataService.cs
@@ -1393,6 +1393,7 @@ namespace BLL
AwardType = x.AwardType,
AwardLevel = x.AwardLevel,
AwardingUnit = x.AwardingUnit,
+ AwardYear = x.AwardYear,
}).Take(pushNum).ToList();
Model.ReturnData responeData = new Model.ReturnData();
if (items.Count() > 0)
@@ -1462,6 +1463,7 @@ namespace BLL
AwardName = x.AwardName,
AwardLevel = x.AwardLevel,
AwardingUnit = x.AwardingUnit,
+ AwardYear = x.AwardYear,
}).ToList();
if (items.Count() > 0)
diff --git a/SGGL/FineUIPro.Web/BaseInfo/WorkPost.aspx b/SGGL/FineUIPro.Web/BaseInfo/WorkPost.aspx
index 9aee8a9b..09e4c0f3 100644
--- a/SGGL/FineUIPro.Web/BaseInfo/WorkPost.aspx
+++ b/SGGL/FineUIPro.Web/BaseInfo/WorkPost.aspx
@@ -102,6 +102,8 @@
+
+
-
+
+
+
diff --git a/SGGL/FineUIPro.Web/BaseInfo/WorkPost.aspx.cs b/SGGL/FineUIPro.Web/BaseInfo/WorkPost.aspx.cs
index ff836998..dce66522 100644
--- a/SGGL/FineUIPro.Web/BaseInfo/WorkPost.aspx.cs
+++ b/SGGL/FineUIPro.Web/BaseInfo/WorkPost.aspx.cs
@@ -38,7 +38,7 @@ namespace FineUIPro.Web.BaseInfo
///
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.IsCQMSCheck,wp.CNCodes,
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 + "' ";
@@ -83,11 +83,24 @@ namespace FineUIPro.Web.BaseInfo
return paged;
}
+ protected void btnQuery_Click(object sender, EventArgs e)
+ {
+ BindGrid();
+ }
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
{
Grid1.PageIndex = e.NewPageIndex;
BindGrid();
}
+ ///
+ /// 关闭弹出窗口
+ ///
+ ///
+ ///
+ protected void Window1_Close(object sender, WindowCloseEventArgs e)
+ {
+ BindGrid();
+ }
///
/// 分页下拉选择
@@ -170,6 +183,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 +227,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()
};
diff --git a/SGGL/FineUIPro.Web/BaseInfo/WorkPost.aspx.designer.cs b/SGGL/FineUIPro.Web/BaseInfo/WorkPost.aspx.designer.cs
index c64ab64a..7434988f 100644
--- a/SGGL/FineUIPro.Web/BaseInfo/WorkPost.aspx.designer.cs
+++ b/SGGL/FineUIPro.Web/BaseInfo/WorkPost.aspx.designer.cs
@@ -194,6 +194,15 @@ namespace FineUIPro.Web.BaseInfo
///
protected global::FineUIPro.CheckBox ckbIsCQMS;
+ ///
+ /// ckbIsCQMSCheck 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.CheckBox ckbIsCQMSCheck;
+
///
/// txtCNCodes 控件。
///
@@ -239,6 +248,15 @@ namespace FineUIPro.Web.BaseInfo
///
protected global::FineUIPro.Label Label2;
+ ///
+ /// Label5 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label Label5;
+
///
/// Label3 控件。
///
diff --git a/SGGL/FineUIPro.Web/CQMS/Check/CheckList.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Check/CheckList.aspx.cs
index 44116134..417b3916 100644
--- a/SGGL/FineUIPro.Web/CQMS/Check/CheckList.aspx.cs
+++ b/SGGL/FineUIPro.Web/CQMS/Check/CheckList.aspx.cs
@@ -72,7 +72,13 @@ namespace FineUIPro.Web.CQMS.Check
btnNew.OnClientClick = Window1.GetShowReference("ChecklistEdit.aspx") + "return false;";
ddlPageSize.SelectedValue = Grid1.PageSize.ToString();
GetList();
- APICheckControlSyncService.getCheckControlLists(this.ProjectId);
+
+ var getProject = ProjectService.GetProjectByProjectId(ProjectId);
+ if (getProject != null && getProject.IsAutoFetch == true)
+ {
+ APICheckControlSyncService.getCheckControlLists(this.ProjectId);
+ }
+
// 绑定表格
BindGrid();
diff --git a/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistration.aspx b/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistration.aspx
index e7ce4899..dbb24941 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">
-
+ --%>
+
+ FieldType="String" HeaderText="获奖类型" TextAlign="Center"
+ HeaderTextAlign="Center">
+ FieldType="Date" Renderer="Date" RendererArgument="yyyy-MM-dd" HeaderText="获奖日期" TextAlign="Center" HeaderTextAlign="Center">
diff --git a/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistrationEdit.aspx b/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistrationEdit.aspx
index 9a09a477..204c7ee3 100644
--- a/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistrationEdit.aspx
+++ b/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistrationEdit.aspx
@@ -49,8 +49,11 @@
-
-
+ <%--
+ --%>
+
+
@@ -61,19 +64,19 @@
-
+
-
-
-
+ OnSelectedIndexChanged="Change_AwardType">
+
+
+
+ LabelWidth="120px">
diff --git a/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistrationEdit.aspx.cs b/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistrationEdit.aspx.cs
index cf07de91..40388eba 100644
--- a/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistrationEdit.aspx.cs
+++ b/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistrationEdit.aspx.cs
@@ -52,20 +52,27 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
{
this.drpUnitId.SelectedValue = QCGroupRegistration.UnitId;
}
+ if (QCGroupRegistration.AwardYear != null)
+ {
+ this.txtAwardYear.Text = string.Format("{0:yyyy}", QCGroupRegistration.AwardYear);
+ }
+
txtSubjects.Text = QCGroupRegistration.Subjects;
- txtProcess.Text = QCGroupRegistration.Process;
+ //txtProcess.Text = QCGroupRegistration.Process;
txtAchievement.Text = QCGroupRegistration.Achievement;
txtAwardName.Text = QCGroupRegistration.AwardName;
if (!string.IsNullOrEmpty(QCGroupRegistration.AwardType))
{
drpAwardType.SelectedValue = QCGroupRegistration.AwardType;
- if (QCGroupRegistration.AwardType == "1") {
+ if (QCGroupRegistration.AwardType == "1")
+ {
drpAwardLevel.Items.Add(new ListItem("鲁班奖", "1"));
drpAwardLevel.Items.Add(new ListItem("国优奖", "2"));
drpAwardLevel.Items.Add(new ListItem("省部级", "3"));
drpAwardLevel.Items.Add(new ListItem("市级", "4"));
}
- else if (QCGroupRegistration.AwardType == "2") {
+ else if (QCGroupRegistration.AwardType == "2")
+ {
drpAwardLevel.Items.Add(new ListItem("省部级", "5"));
drpAwardLevel.Items.Add(new ListItem("集团级", "6"));
drpAwardLevel.Items.Add(new ListItem("企业级", "7"));
@@ -125,9 +132,14 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
QCGroupRegistration.UnitId = this.drpUnitId.SelectedValue;
}
QCGroupRegistration.Subjects = txtSubjects.Text.Trim();
- QCGroupRegistration.Process = txtProcess.Text.Trim();
+ //QCGroupRegistration.Process = txtProcess.Text.Trim();
QCGroupRegistration.Achievement = txtAchievement.Text.Trim();
QCGroupRegistration.AwardName = txtAwardName.Text.Trim();
+ var awardYearText = this.txtAwardYear.Text.Trim();
+ if (!string.IsNullOrEmpty(awardYearText))
+ {
+ QCGroupRegistration.AwardYear = DateTime.ParseExact(awardYearText, "yyyy", null);
+ }
if (!string.IsNullOrEmpty(this.drpAwardType.SelectedValue))
{
QCGroupRegistration.AwardType = this.drpAwardType.SelectedValue;
@@ -159,20 +171,22 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
}
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
}
-
+
protected void Change_AwardType(object sender, EventArgs eventArgs)
{
-
+
drpAwardLevel.Items.Clear();
drpAwardLevel.Items.Add(new ListItem("-请选择-", ""));
-
- if (drpAwardType.SelectedValue == "1") {
+
+ if (drpAwardType.SelectedValue == "1")
+ {
drpAwardLevel.Items.Add(new ListItem("鲁班奖", "1"));
drpAwardLevel.Items.Add(new ListItem("国优奖", "2"));
drpAwardLevel.Items.Add(new ListItem("省部级", "3"));
drpAwardLevel.Items.Add(new ListItem("市级", "4"));
}
- else if (drpAwardType.SelectedValue == "2") {
+ else if (drpAwardType.SelectedValue == "2")
+ {
drpAwardLevel.Items.Add(new ListItem("省部级", "5"));
drpAwardLevel.Items.Add(new ListItem("集团级", "6"));
drpAwardLevel.Items.Add(new ListItem("企业级", "7"));
@@ -182,8 +196,8 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
{
drpAwardLevel.SelectedIndex = 0;
}
-
+
}
-
+
}
}
\ No newline at end of file
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..42755c2d 100644
--- a/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistrationEdit.aspx.designer.cs
+++ b/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistrationEdit.aspx.designer.cs
@@ -96,13 +96,13 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
protected global::FineUIPro.TextBox txtSubjects;
///
- /// txtProcess 控件。
+ /// txtAwardYear 控件。
///
///
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
- protected global::FineUIPro.TextBox txtProcess;
+ protected global::FineUIPro.DatePicker txtAwardYear;
///
/// txtAchievement 控件。
diff --git a/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistrationView.aspx b/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistrationView.aspx
index e2222455..a6eb9df3 100644
--- a/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistrationView.aspx
+++ b/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistrationView.aspx
@@ -49,8 +49,11 @@
-
-
+ <%--
+ --%>
+
+
@@ -67,13 +70,13 @@
-
-
-
+ OnSelectedIndexChanged="Change_AwardType">
+
+
+
+ LabelWidth="120px">
diff --git a/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistrationView.aspx.cs b/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistrationView.aspx.cs
index 06c5de43..ce998920 100644
--- a/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistrationView.aspx.cs
+++ b/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistrationView.aspx.cs
@@ -51,20 +51,26 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
{
this.drpUnitId.SelectedValue = QCGroupRegistration.UnitId;
}
+ if (QCGroupRegistration.AwardYear != null)
+ {
+ this.txtAwardYear.Text = string.Format("{0:yyyy}", QCGroupRegistration.AwardYear);
+ }
txtSubjects.Text = QCGroupRegistration.Subjects;
- txtProcess.Text = QCGroupRegistration.Process;
+ //txtProcess.Text = QCGroupRegistration.Process;
txtAchievement.Text = QCGroupRegistration.Achievement;
txtAwardName.Text = QCGroupRegistration.AwardName;
if (!string.IsNullOrEmpty(QCGroupRegistration.AwardType))
{
drpAwardType.SelectedValue = QCGroupRegistration.AwardType;
- if (QCGroupRegistration.AwardType == "1") {
+ if (QCGroupRegistration.AwardType == "1")
+ {
drpAwardLevel.Items.Add(new ListItem("鲁班奖", "1"));
drpAwardLevel.Items.Add(new ListItem("国优奖", "2"));
drpAwardLevel.Items.Add(new ListItem("省部级", "3"));
drpAwardLevel.Items.Add(new ListItem("市级", "4"));
}
- else if (QCGroupRegistration.AwardType == "2") {
+ else if (QCGroupRegistration.AwardType == "2")
+ {
drpAwardLevel.Items.Add(new ListItem("省部级", "5"));
drpAwardLevel.Items.Add(new ListItem("集团级", "6"));
drpAwardLevel.Items.Add(new ListItem("企业级", "7"));
@@ -102,19 +108,21 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
}
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../../AttachFile/webuploader.aspx?type=-1&toKeyId={0}&path=FileUpload/QCGroupRegistration&menuId={1}", hdId.Text, BLL.Const.ProjectQCGroupRegistrationListMenuId)));
}
-
+
protected void Change_AwardType(object sender, EventArgs eventArgs)
{
-
+
drpAwardLevel.Items.Clear();
drpAwardLevel.Items.Add(new ListItem("-请选择-", ""));
-
- if (drpAwardType.SelectedValue == "1") {
+
+ if (drpAwardType.SelectedValue == "1")
+ {
drpAwardLevel.Items.Add(new ListItem("国家级", "1"));
drpAwardLevel.Items.Add(new ListItem("省部级", "2"));
drpAwardLevel.Items.Add(new ListItem("市级", "3"));
}
- else if (drpAwardType.SelectedValue == "2") {
+ else if (drpAwardType.SelectedValue == "2")
+ {
drpAwardLevel.Items.Add(new ListItem("省部级", "4"));
drpAwardLevel.Items.Add(new ListItem("集团级", "5"));
drpAwardLevel.Items.Add(new ListItem("企业级", "6"));
@@ -124,7 +132,7 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
{
drpAwardLevel.SelectedIndex = 0;
}
-
+
}
}
}
\ No newline at end of file
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..d62fb3fe 100644
--- a/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistrationView.aspx.designer.cs
+++ b/SGGL/FineUIPro.Web/CQMS/QualityActivity/QCManage/QCGroupRegistrationView.aspx.designer.cs
@@ -96,13 +96,13 @@ namespace FineUIPro.Web.CQMS.QualityActivity.QCManage
protected global::FineUIPro.TextBox txtSubjects;
///
- /// txtProcess 控件。
+ /// txtAwardYear 控件。
///
///
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
- protected global::FineUIPro.TextBox txtProcess;
+ protected global::FineUIPro.DatePicker txtAwardYear;
///
/// txtAchievement 控件。
diff --git a/SGGL/FineUIPro.Web/Controls/ChartControl.ascx.cs b/SGGL/FineUIPro.Web/Controls/ChartControl.ascx.cs
index df7a1560..0804dc96 100644
--- a/SGGL/FineUIPro.Web/Controls/ChartControl.ascx.cs
+++ b/SGGL/FineUIPro.Web/Controls/ChartControl.ascx.cs
@@ -19,6 +19,168 @@ namespace Web.Controls
}
}
+ 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);
+ }
+
///
/// 创建Chart图形
///
@@ -357,7 +519,7 @@ namespace Web.Controls
chartArea.Area3DStyle.Enable3D = dataSourceChart.IsNotEnable3D;
chartArea.AxisY.LabelStyle.Format = " 0% "; // 格式化,为了显示百分号
-
+
chart1.ChartAreas.Add(chartArea);
@@ -429,7 +591,8 @@ namespace Web.Controls
{
chart1.Series[dataSourceTeam.DataPointName].Color = Color.Red;
}
- else {
+ else
+ {
chart1.Series[dataSourceTeam.DataPointName].Color = Color.Blue;
}
foreach (Model.DataSourcePoint dataSourcePoint in dataSourceTeam.DataSourcePoints)
diff --git a/SGGL/FineUIPro.Web/DataShow/QualityInstruments.aspx b/SGGL/FineUIPro.Web/DataShow/QualityInstruments.aspx
index e40542b6..798ab878 100644
--- a/SGGL/FineUIPro.Web/DataShow/QualityInstruments.aspx
+++ b/SGGL/FineUIPro.Web/DataShow/QualityInstruments.aspx
@@ -19,7 +19,8 @@
runat="server" BoxFlex="1" DataKeyNames="ProjectId" DataIDField="ProjectId" AllowSorting="true"
SortField="ProjectName" SortDirection="ASC" OnSort="Grid1_Sort" EnableColumnLines="true" AllowPaging="true"
IsDatabasePaging="true" PageSize="20" OnPageIndexChange="Grid1_PageIndexChange" ForceFit="true"
- EnableRowDoubleClickEvent="true" OnRowDoubleClick="Grid1_RowDoubleClick" EnableTextSelection="True">
+ EnableRowDoubleClickEvent="true" OnRowDoubleClick="Grid1_RowDoubleClick" EnableTextSelection="True"
+ EnableSummary="true" SummaryPosition="Bottom">
@@ -34,8 +35,11 @@
-
-
+
+
+
+
@@ -52,13 +56,13 @@
-
-
+
+
-
+
@@ -81,7 +85,7 @@
+ Width="1200px" Height="620px" Maximized="true">
+ ///
+ ///
+ 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 = this.Grid1.RecordCount;
+ this.BindGrid();
+ Response.Write(GetGridTableHtml(Grid1));
+ Response.End();
+ }
+
+ ///
+ /// 导出方法
+ ///
+ ///
+ ///
+ private string GetGridTableHtml(Grid grid)
+ {
+ StringBuilder sb = new StringBuilder();
+ sb.Append("");
+ sb.Append("");
+ sb.Append("");
+ foreach (GridColumn column in grid.Columns)
+ {
+ sb.AppendFormat("| {0} | ", column.HeaderText);
+ }
+
+ sb.Append("
");
+ foreach (GridRow row in grid.Rows)
+ {
+ sb.Append("");
+ foreach (GridColumn column in grid.Columns)
+ {
+ string html = row.Values[column.ColumnIndex].ToString();
+ if (column.ColumnID == "tfNumber")
+ {
+ html = (row.FindControl("lblNumber") as AspNet.Label).Text;
+ }
+
+ if (column.ColumnID == "Count1")
+ {
+ html = (row.FindControl("Label2") as AspNet.Label).Text;
+ }
+
+ if (column.ColumnID == "Count2")
+ {
+ html = (row.FindControl("Label1") as AspNet.Label).Text;
+ }
+
+ sb.AppendFormat("| {0} | ", html);
+ }
+
+ sb.Append("
");
+ }
+
+ sb.Append("
");
+
+ return sb.ToString();
+ }
+
+ #endregion
+
+
+
}
}
\ No newline at end of file
diff --git a/SGGL/FineUIPro.Web/DataShow/QualityInstruments.aspx.designer.cs b/SGGL/FineUIPro.Web/DataShow/QualityInstruments.aspx.designer.cs
index 5287b22b..499f0ad5 100644
--- a/SGGL/FineUIPro.Web/DataShow/QualityInstruments.aspx.designer.cs
+++ b/SGGL/FineUIPro.Web/DataShow/QualityInstruments.aspx.designer.cs
@@ -95,6 +95,15 @@ namespace FineUIPro.Web.DataShow
///
protected global::FineUIPro.DatePicker txtEndTime;
+ ///
+ /// btnOut 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button btnOut;
+
///
/// btnClose 控件。
///
diff --git a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj
index 46cc4ec8..d5c45da5 100644
--- a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj
+++ b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj
@@ -1181,6 +1181,8 @@
+
+
@@ -12766,6 +12768,20 @@
ShowHazardList.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..53a563db
--- /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.UserId == Const.sysglyId || this.CurrUser.UserId == Const.hfnbdId || this.CurrUser.UserId == Const.sedinId)
+ {
+ UnitId = CommonService.GetThisUnitId();
+ }
+ 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..693d9663
--- /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 = CommonService.GetThisUnitId() == 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