diff --git a/DataBase/版本日志/SGGLDB_V2024-01-02.sql b/DataBase/版本日志/SGGLDB_V2024-01-02.sql
new file mode 100644
index 00000000..ad3a3bcf
--- /dev/null
+++ b/DataBase/版本日志/SGGLDB_V2024-01-02.sql
@@ -0,0 +1,155 @@
+
+CREATE View [dbo].[View_DataStatistics]
+AS
+/*ݻ*/
+select ShortName,
+(select COUNT(*) from SitePerson_Person Person where InTime <=GETDATE() AND (OutTime IS NULL OR OutTime > GETDATE()) AND Person.ProjectId=p.ProjectId and Person.WorkPostId='8A7C2CDF-AFB5-4826-9951-343253342DAC') as CommissionerPersonNum,
+(select COUNT(*) from SitePerson_Person Person LEFT JOIN Base_WorkPost AS WorkPost ON Person.WorkPostId =WorkPost.WorkPostId where InTime <=GETDATE() AND (OutTime IS NULL OR OutTime > GETDATE()) AND Person.ProjectId=p.ProjectId and WorkPost.IsHsse=1) as FullTimePersonNum,
+(select COUNT(*) from SitePerson_Person Person where InTime <=GETDATE() AND (OutTime IS NULL OR OutTime > GETDATE()) AND Person.ProjectId=p.ProjectId and Person.IsSafetyMonitoring=1) as SafetySupervisionPersonNum,
+(select COUNT(*) from SitePerson_Person Person where InTime <=GETDATE() AND (OutTime IS NULL OR OutTime > GETDATE()) AND Person.ProjectId=p.ProjectId and (SELECT COUNT(*) FROM QualityAudit_PersonQuality AS Q LEFT JOIN Base_Certificate AS Cer ON Q.CertificateId =Cer.CertificateId WHERE Q.PersonId = Person.PersonId AND IsRegisterHSSE=1)>0) as InjectionSafetyEngineerPersonNum,
+(select COUNT(*) from SitePerson_Person Person where InTime <=GETDATE() AND (OutTime IS NULL OR OutTime > GETDATE()) AND Person.ProjectId=p.ProjectId and (SELECT COUNT(*) FROM QualityAudit_PersonQuality AS Q LEFT JOIN Base_Certificate AS Cer ON Q.CertificateId =Cer.CertificateId WHERE Q.PersonId = Person.PersonId AND CertificateType='A')> 0) as ACertificatePersonNum,
+(select COUNT(*) from SitePerson_Person Person where InTime <=GETDATE() AND (OutTime IS NULL OR OutTime > GETDATE()) AND Person.ProjectId=p.ProjectId and (SELECT COUNT(*) FROM QualityAudit_PersonQuality AS Q LEFT JOIN Base_Certificate AS Cer ON Q.CertificateId =Cer.CertificateId WHERE Q.PersonId = Person.PersonId AND CertificateType='B')> 0) as BCertificatePersonNum,
+(select COUNT(*) from SitePerson_Person Person where InTime <=GETDATE() AND (OutTime IS NULL OR OutTime > GETDATE()) AND Person.ProjectId=p.ProjectId and (SELECT COUNT(*) FROM QualityAudit_PersonQuality AS Q LEFT JOIN Base_Certificate AS Cer ON Q.CertificateId =Cer.CertificateId WHERE Q.PersonId = Person.PersonId AND CertificateType='C')> 0) as CCertificatePersonNum,
+isnull((select top 1 WorkHours from SitePerson_PersonInOutNumber a where a.ProjectId=p.ProjectId order by InOutDate desc),0) as TotalWorkingHours,
+cast(isnull(((select sum(isnull(WorkHoursLoss,0)) from Accident_AccidentHandle a where a.ProjectId=p.ProjectId)
++(select sum(isnull(WorkingHoursLoss,0)) from Accident_AccidentReport a where a.ProjectId=p.ProjectId)),0) as int) as LostWorkingHours,
+(isnull((select top 1 WorkHours from SitePerson_PersonInOutNumber a where a.ProjectId=p.ProjectId order by InOutDate desc),0)-
+cast(isnull(((select sum(isnull(WorkHoursLoss,0)) from Accident_AccidentHandle a where a.ProjectId=p.ProjectId)
++(select sum(isnull(WorkingHoursLoss,0)) from Accident_AccidentReport a where a.ProjectId=p.ProjectId)),0) as int)) as SafeWorkingHours,
+(select COUNT(*) from EduTrain_TrainRecord r left join Base_TrainType t on r.TrainTypeId=t.TrainTypeId where r.ProjectId=p.ProjectId and t.TrainType='1' and r.TrainStartDate>'2023-01-01') as SafeTrainNum,
+(select COUNT(*) from EduTrain_TrainRecord r left join Base_TrainType t on r.TrainTypeId=t.TrainTypeId where r.ProjectId=p.ProjectId and t.TrainType='2' and r.TrainStartDate>'2023-01-01') as SpecialTrainNum,
+(select COUNT(*) from EduTrain_TrainRecord r left join Base_TrainType t on r.TrainTypeId=t.TrainTypeId where r.ProjectId=p.ProjectId and t.TrainType='3' and r.TrainStartDate>'2023-01-01') as SpecialOperationTrainNum,
+(select COUNT(*) from Meeting_SafetyLeaderGroupMeeting r where r.ProjectId=p.ProjectId and r.CompileDate>'2023-01-01') as ProjectSafetyLeadingGroupMeetingNum,
+((select COUNT(*) from Meeting_WeekMeeting r where r.ProjectId=p.ProjectId and r.CompileDate>'2023-01-01')+(select COUNT(*) from Meeting_MonthMeeting r where r.ProjectId=p.ProjectId and r.CompileDate>'2023-01-01')) as ProjectSafetyMeetingNum,
+(select COUNT(*) from Check_ProjectLeaderCheck r where r.ProjectId=p.ProjectId and r.CompileDate>'2023-01-01') as ProjectLeadShiftCheckNum,
+(select COUNT(*) from Check_CheckSpecial r where r.ProjectId=p.ProjectId and r.CheckTime>'2023-01-01') as ProjectSpecialCheckNum,
+(select COUNT(*) from HSSE_Hazard_HazardRegister r where r.ProjectId=p.ProjectId and r.CheckTime>'2023-01-01') as ProjectMajorCheckNum,
+(select COUNT(*) from Accident_AccidentPersonRecord r where r.ProjectId=p.ProjectId and r.IsAttempt='1' and r.CompileDate>'2023-01-01') as NearMissNum,
+(select COUNT(*) from Accident_AccidentPersonRecord r where r.ProjectId=p.ProjectId and r.CompileDate>'2023-01-01') as RecordableEventNum,
+(select COUNT(*) from Accident_AccidentReport r where r.ProjectId=p.ProjectId and r.AccidentDegree='1' and r.CompileDate>'2023-01-01') as GeneralAccidentNum,
+(select COUNT(*) from Accident_AccidentReport r where r.ProjectId=p.ProjectId and r.AccidentDegree='2' and r.CompileDate>'2023-01-01') as MajorAccidentNum,
+(select COUNT(*) from Accident_AccidentReport r where r.ProjectId=p.ProjectId and r.AccidentDegree='3' and r.CompileDate>'2023-01-01') as SeriousAccidentNum,
+(select COUNT(*) from Accident_AccidentReport r where r.ProjectId=p.ProjectId and r.AccidentDegree='4' and r.CompileDate>'2023-01-01') as SpecialSeriousAccidentNum,
+(select COUNT(*) from Emergency_EmergencyList r left join Base_EmergencyType t on r.EmergencyTypeId=t.EmergencyTypeId where r.ProjectId=p.ProjectId and t.EmergencyTypeName like '%ۺ%' and r.CompileDate>'2023-01-01') as ProjectComprehensivePlanNum,
+(select COUNT(*) from Emergency_EmergencyList r left join Base_EmergencyType t on r.EmergencyTypeId=t.EmergencyTypeId where r.ProjectId=p.ProjectId and t.EmergencyTypeName like '%ר%' and r.CompileDate>'2023-01-01') as ProjectSpecialPlanNum,
+(select COUNT(*) from Emergency_EmergencyList r left join Base_EmergencyType t on r.EmergencyTypeId=t.EmergencyTypeId where r.ProjectId=p.ProjectId and t.EmergencyTypeName like '%ֳ%' and r.CompileDate>'2023-01-01') as ProjectOnSiteDisposalPlanNum,
+(select COUNT(*) from Emergency_DrillRecordList r where r.ProjectId=p.ProjectId and r.CompileDate>'2023-01-01') as ProjectDrillNum,
+ISNULL((select sum(CostMoney) from CostGoods_CostSmallDetailItem r left join CostGoods_CostSmallDetail t on r.CostSmallDetailId=t.CostSmallDetailId where t.ProjectId=p.ProjectId and t.CompileDate>'2023-01-01'),0) as CostUse,
+((select COUNT(*) from InApproveManager_EquipmentInItem r left join InApproveManager_EquipmentIn t on r.EquipmentInId=t.EquipmentInId where t.ProjectId=p.ProjectId)
++(select COUNT(*) from InApproveManager_GeneralEquipmentInItem r left join InApproveManager_GeneralEquipmentIn t on r.GeneralEquipmentInId=t.GeneralEquipmentInId where t.ProjectId=p.ProjectId)) as UseEquipmentNum,
+(select COUNT(*) from InApproveManager_EquipmentInItem r left join InApproveManager_EquipmentIn t on r.EquipmentInId=t.EquipmentInId where t.ProjectId=p.ProjectId) as SpecialEquipmentNum,
+((select COUNT(*) from License_LicenseManager r where r.ProjectId=p.ProjectId and r.CompileDate>'2023-01-01')
++(select COUNT(*) from License_BreakGround r where r.ProjectId=p.ProjectId and r.ValidityStartTime>'2023-01-01')
++(select COUNT(*) from License_FireWork r where r.ProjectId=p.ProjectId and r.ValidityStartTime>'2023-01-01')
++(select COUNT(*) from License_HeightWork r where r.ProjectId=p.ProjectId and r.ValidityStartTime>'2023-01-01')
++(select COUNT(*) from License_LiftingWork r where r.ProjectId=p.ProjectId and r.ValidityStartTime>'2023-01-01')
++(select COUNT(*) from License_LimitedSpace r where r.ProjectId=p.ProjectId and r.ValidityStartTime>'2023-01-01')
++(select COUNT(*) from License_NightWork r where r.ProjectId=p.ProjectId and r.ValidityStartTime>'2023-01-01')
++(select COUNT(*) from License_OpenCircuit r where r.ProjectId=p.ProjectId and r.ValidityStartTime>'2023-01-01')
++(select COUNT(*) from License_RadialWork r where r.ProjectId=p.ProjectId and r.ValidityStartTime>'2023-01-01')) as LicensesNum,
+((select COUNT(*) from License_LicenseManager r where r.ProjectId=p.ProjectId and r.CompileDate>'2023-01-01' and WorkStates='3')
++(select COUNT(*) from License_BreakGround r where r.ProjectId=p.ProjectId and r.ValidityStartTime>'2023-01-01' and States='3')
++(select COUNT(*) from License_FireWork r where r.ProjectId=p.ProjectId and r.ValidityStartTime>'2023-01-01' and States='3')
++(select COUNT(*) from License_HeightWork r where r.ProjectId=p.ProjectId and r.ValidityStartTime>'2023-01-01' and States='3')
++(select COUNT(*) from License_LiftingWork r where r.ProjectId=p.ProjectId and r.ValidityStartTime>'2023-01-01' and States='3')
++(select COUNT(*) from License_LimitedSpace r where r.ProjectId=p.ProjectId and r.ValidityStartTime>'2023-01-01' and States='3')
++(select COUNT(*) from License_NightWork r where r.ProjectId=p.ProjectId and r.ValidityStartTime>'2023-01-01' and States='3')
++(select COUNT(*) from License_OpenCircuit r where r.ProjectId=p.ProjectId and r.ValidityStartTime>'2023-01-01' and States='3')
++(select COUNT(*) from License_RadialWork r where r.ProjectId=p.ProjectId and r.ValidityStartTime>'2023-01-01' and States='3')) as LicensesCloseNum,
+(select COUNT(*) from HSSE_Hazard_HazardRegister r where r.ProjectId=p.ProjectId and r.CheckTime>'2023-01-01' and States='3' and (r.HazardValue='0.3' or r.HazardValue='1' or r.HazardValue is null)) as GeneralClosedNum,
+(select COUNT(*) from HSSE_Hazard_HazardRegister r where r.ProjectId=p.ProjectId and r.CheckTime>'2023-01-01' and States!='3' and (r.HazardValue='0.3' or r.HazardValue='1' or r.HazardValue is null)) as GeneralNotClosedNum,
+(select COUNT(*) from HSSE_Hazard_HazardRegister r where r.ProjectId=p.ProjectId and r.CheckTime>'2023-01-01' and States='3' and r.HazardValue='3') as MajorClosedNum,
+(select COUNT(*) from HSSE_Hazard_HazardRegister r where r.ProjectId=p.ProjectId and r.CheckTime>'2023-01-01' and States!='3' and r.HazardValue='3') as MajorNotClosedNum,
+case when (select COUNT(*) from HSSE_Hazard_HazardRegister r where r.ProjectId=p.ProjectId and r.CheckTime>'2023-01-01' and States='3' and (r.HazardValue='0.3' or r.HazardValue='1' or r.HazardValue is null))
++(select COUNT(*) from HSSE_Hazard_HazardRegister r where r.ProjectId=p.ProjectId and r.CheckTime>'2023-01-01' and States!='3' and (r.HazardValue='0.3' or r.HazardValue='1' or r.HazardValue is null))>0
+then cast(cast(cast(1.0*(select COUNT(*) from HSSE_Hazard_HazardRegister r where r.ProjectId=p.ProjectId and r.CheckTime>'2023-01-01' and States='3' and (r.HazardValue='0.3' or r.HazardValue='1' or r.HazardValue is null))
+/(1.0 *((select COUNT(*) from HSSE_Hazard_HazardRegister r where r.ProjectId=p.ProjectId and r.CheckTime>'2023-01-01' and States='3' and (r.HazardValue='0.3' or r.HazardValue='1' or r.HazardValue is null))
++(select COUNT(*) from HSSE_Hazard_HazardRegister r where r.ProjectId=p.ProjectId and r.CheckTime>'2023-01-01' and States!='3' and (r.HazardValue='0.3' or r.HazardValue='1' or r.HazardValue is null))))*100 as decimal(9,2)) as float) as nvarchar(10))+'%'
+else '/' end as GeneralRate,
+case when (select COUNT(*) from HSSE_Hazard_HazardRegister r where r.ProjectId=p.ProjectId and r.CheckTime>'2023-01-01' and States='3' and r.HazardValue='3')
++(select COUNT(*) from HSSE_Hazard_HazardRegister r where r.ProjectId=p.ProjectId and r.CheckTime>'2023-01-01' and States!='3' and r.HazardValue='3')>0
+then cast(cast(cast(1.0*(select COUNT(*) from HSSE_Hazard_HazardRegister r where r.ProjectId=p.ProjectId and r.CheckTime>'2023-01-01' and States='3' and r.HazardValue='3')
+/(1.0 *((select COUNT(*) from HSSE_Hazard_HazardRegister r where r.ProjectId=p.ProjectId and r.CheckTime>'2023-01-01' and States='3' and r.HazardValue='3')
++(select COUNT(*) from HSSE_Hazard_HazardRegister r where r.ProjectId=p.ProjectId and r.CheckTime>'2023-01-01' and States!='3' and r.HazardValue='3')))*100 as decimal(9,2)) as float) as nvarchar(10))+'%'
+else '/' end as MajorRate,
+(select COUNT(*) from Hazard_HazardSelectedItem r left join Base_RiskLevel t on r.HazardLevel=t.RiskLevelId where r.ProjectId=p.ProjectId and t.RiskLevel=1 and r.IsStart=1) as LowRiskNum,
+(select COUNT(*) from Hazard_HazardSelectedItem r left join Base_RiskLevel t on r.HazardLevel=t.RiskLevelId where r.ProjectId=p.ProjectId and t.RiskLevel=2 and r.IsStart=1) as GeneralRiskNum,
+(select COUNT(*) from Hazard_HazardSelectedItem r left join Base_RiskLevel t on r.HazardLevel=t.RiskLevelId where r.ProjectId=p.ProjectId and t.RiskLevel=3 and r.IsStart=1) as MediumRiskNum,
+(select COUNT(*) from Hazard_HazardSelectedItem r left join Base_RiskLevel t on r.HazardLevel=t.RiskLevelId where r.ProjectId=p.ProjectId and t.RiskLevel=4 and r.IsStart=1) as HighRiskNum,
+(select COUNT(*) from Solution_LargerHazard r where r.ProjectId=p.ProjectId and r.States='1' and r.RecordTime>'2023-01-01' and r.IsSuperLargerHazard=0) as CompletedNum,
+isnull((select sum(TrainPersonNum) from Solution_LargerHazard r where r.ProjectId=p.ProjectId and r.RecordTime>'2023-01-01' and r.IsSuperLargerHazard=0),0) as TrainPersonNum,
+(select COUNT(*) from Solution_LargerHazard r where r.ProjectId=p.ProjectId and r.States='2' and r.RecordTime>'2023-01-01' and r.IsSuperLargerHazard=0) as ConstructionNum,
+(select COUNT(*) from Solution_LargerHazard r where r.ProjectId=p.ProjectId and r.States='3' and r.RecordTime>'2023-01-01' and r.IsSuperLargerHazard=0) as FinishedNum,
+(select COUNT(*) from Solution_LargerHazard r where r.ProjectId=p.ProjectId and r.States='1' and r.RecordTime>'2023-01-01' and r.IsSuperLargerHazard=1) as SuperCompletedNum,
+isnull((select sum(TrainPersonNum) from Solution_LargerHazard r where r.ProjectId=p.ProjectId and r.RecordTime>'2023-01-01' and r.IsSuperLargerHazard=1),0) as SuperTrainPersonNum,
+(select COUNT(*) from Solution_LargerHazard r where r.ProjectId=p.ProjectId and r.States='2' and r.RecordTime>'2023-01-01' and r.IsSuperLargerHazard=1) as SuperConstructionNum,
+(select COUNT(*) from Solution_LargerHazard r where r.ProjectId=p.ProjectId and r.States='3' and r.RecordTime>'2023-01-01' and r.IsSuperLargerHazard=1) as SuperFinishedNum,
+isnull((select sum(TrainPersonNum) from Train_TrainPlan r where r.ProjectId=p.ProjectId and r.CompileDate>'2023-01-01'),0) as QTrainPersonNum,
+isnull((select sum(JoinPersonNum) from Comprehensive_DesignDetails r where r.ProjectId=p.ProjectId and r.CompileDate>'2023-01-01'),0) as TechnicalDisclosePersonNum,
+(select COUNT(*) from Check_CheckEquipment r where r.ProjectId=p.ProjectId and r.CompileDate>'2023-01-01') as UseNum,
+(select COUNT(*) from Check_CheckEquipment r where r.ProjectId=p.ProjectId and r.CompileDate>'2023-01-01') as OKNum,
+(select COUNT(*) from SitePerson_Person Person LEFT JOIN Base_WorkPost AS WorkPost ON Person.WorkPostId =WorkPost.WorkPostId where InTime <=GETDATE() AND (OutTime IS NULL OR OutTime > GETDATE()) AND Person.ProjectId=p.ProjectId and WorkPost.IsCQMS=1) as ProjectPersonNum,
+(select COUNT(*) from Check_CheckControl r where r.ProjectId=p.ProjectId and r.CheckDate>'2023-01-01') as ProblemNum,
+(select COUNT(*) from Check_CheckControl r where r.ProjectId=p.ProjectId and r.CheckDate>'2023-01-01' and r.State='7') as ProblemCompletedNum,
+(select COUNT(*) from Check_CheckControl r where r.ProjectId=p.ProjectId and r.CheckDate>'2023-01-01' and r.State!='7') as ProblemNotCompletedNum,
+case when (select COUNT(*) from Check_CheckControl r where r.ProjectId=p.ProjectId and r.CheckDate>'2023-01-01')>0
+then cast(cast(cast(1.0*(select COUNT(*) from Check_CheckControl r where r.ProjectId=p.ProjectId and r.CheckDate>'2023-01-01' and r.State='7')
+/(1.0 *((select COUNT(*) from Check_CheckControl r where r.ProjectId=p.ProjectId and r.CheckDate>'2023-01-01')))*100 as decimal(9,2)) as float) as nvarchar(10))+'%'
+else '/' end as ProblemRate,
+(select COUNT(*) from WBS_ControlItemAndCycle r where r.ProjectId=p.ProjectId and r.ControlPoint like '%A%' and r.IsApprove=1) as ANum,
+(select COUNT(*) from WBS_ControlItemAndCycle r where r.ProjectId=p.ProjectId and r.ControlPoint like '%B%' and r.IsApprove=1) as BNum,
+(select COUNT(*) from WBS_ControlItemAndCycle r where r.ProjectId=p.ProjectId and r.ControlPoint like '%C%' and r.IsApprove=1) as CNum,
+(select COUNT(*) from Check_SpotCheckDetail r left join Check_SpotCheck t on r.SpotCheckCode=t.SpotCheckCode left join WBS_ControlItemAndCycle c on c.ControlItemAndCycleId=r.ControlItemAndCycleId where t.ProjectId=p.ProjectId and c.CheckAcceptType='1' and t.SpotCheckDate>'2023-01-01') as KeyProcessNum,
+(select COUNT(*) from Check_SpotCheckDetail r left join Check_SpotCheck t on r.SpotCheckCode=t.SpotCheckCode left join WBS_ControlItemAndCycle c on c.ControlItemAndCycleId=r.ControlItemAndCycleId where t.ProjectId=p.ProjectId and c.CheckAcceptType='1' and r.IsOK=1 and t.SpotCheckDate>'2023-01-01') as KeyProcessOkNum,
+case when (select COUNT(*) from Check_SpotCheckDetail r left join Check_SpotCheck t on r.SpotCheckCode=t.SpotCheckCode left join WBS_ControlItemAndCycle c on c.ControlItemAndCycleId=r.ControlItemAndCycleId where t.ProjectId=p.ProjectId and c.CheckAcceptType='1' and t.SpotCheckDate>'2023-01-01')>0
+then cast(cast(cast(1.0*(select COUNT(*) from Check_SpotCheckDetail r left join Check_SpotCheck t on r.SpotCheckCode=t.SpotCheckCode left join WBS_ControlItemAndCycle c on c.ControlItemAndCycleId=r.ControlItemAndCycleId where t.ProjectId=p.ProjectId and c.CheckAcceptType='1' and r.IsOK=1 and t.SpotCheckDate>'2023-01-01')
+/(1.0 *((select COUNT(*) from Check_SpotCheckDetail r left join Check_SpotCheck t on r.SpotCheckCode=t.SpotCheckCode left join WBS_ControlItemAndCycle c on c.ControlItemAndCycleId=r.ControlItemAndCycleId where t.ProjectId=p.ProjectId and c.CheckAcceptType='1' and t.SpotCheckDate>'2023-01-01')))*100 as decimal(9,2)) as float) as nvarchar(10))+'%'
+else '/' end as KeyProcessRate,
+(select COUNT(*) from Check_SpotCheckDetail r left join Check_SpotCheck t on r.SpotCheckCode=t.SpotCheckCode left join WBS_ControlItemAndCycle c on c.ControlItemAndCycleId=r.ControlItemAndCycleId where t.ProjectId=p.ProjectId and c.CheckAcceptType='2' and t.SpotCheckDate>'2023-01-01') as SpecialProcessNum,
+(select COUNT(*) from Check_SpotCheckDetail r left join Check_SpotCheck t on r.SpotCheckCode=t.SpotCheckCode left join WBS_ControlItemAndCycle c on c.ControlItemAndCycleId=r.ControlItemAndCycleId where t.ProjectId=p.ProjectId and c.CheckAcceptType='2' and r.IsOK=1 and t.SpotCheckDate>'2023-01-01') as SpecialProcessOkNum,
+case when (select COUNT(*) from Check_SpotCheckDetail r left join Check_SpotCheck t on r.SpotCheckCode=t.SpotCheckCode left join WBS_ControlItemAndCycle c on c.ControlItemAndCycleId=r.ControlItemAndCycleId where t.ProjectId=p.ProjectId and c.CheckAcceptType='2' and t.SpotCheckDate>'2023-01-01')>0
+then cast(cast(cast(1.0*(select COUNT(*) from Check_SpotCheckDetail r left join Check_SpotCheck t on r.SpotCheckCode=t.SpotCheckCode left join WBS_ControlItemAndCycle c on c.ControlItemAndCycleId=r.ControlItemAndCycleId where t.ProjectId=p.ProjectId and c.CheckAcceptType='2' and r.IsOK=1 and t.SpotCheckDate>'2023-01-01')
+/(1.0 *((select COUNT(*) from Check_SpotCheckDetail r left join Check_SpotCheck t on r.SpotCheckCode=t.SpotCheckCode left join WBS_ControlItemAndCycle c on c.ControlItemAndCycleId=r.ControlItemAndCycleId where t.ProjectId=p.ProjectId and c.CheckAcceptType='2' and t.SpotCheckDate>'2023-01-01')))*100 as decimal(9,2)) as float) as nvarchar(10))+'%'
+else '/' end as SpecialProcessRate,
+(select COUNT(*) from Check_SpotCheckDetail r left join Check_SpotCheck t on r.SpotCheckCode=t.SpotCheckCode left join WBS_ControlItemAndCycle c on c.ControlItemAndCycleId=r.ControlItemAndCycleId where t.ProjectId=p.ProjectId and c.CheckAcceptType='3' and t.SpotCheckDate>'2023-01-01') as ConcealedWorksNum,
+(select COUNT(*) from Check_SpotCheckDetail r left join Check_SpotCheck t on r.SpotCheckCode=t.SpotCheckCode left join WBS_ControlItemAndCycle c on c.ControlItemAndCycleId=r.ControlItemAndCycleId where t.ProjectId=p.ProjectId and c.CheckAcceptType='3' and r.IsOK=1 and t.SpotCheckDate>'2023-01-01') as ConcealedWorksOkNum,
+case when (select COUNT(*) from Check_SpotCheckDetail r left join Check_SpotCheck t on r.SpotCheckCode=t.SpotCheckCode left join WBS_ControlItemAndCycle c on c.ControlItemAndCycleId=r.ControlItemAndCycleId where t.ProjectId=p.ProjectId and c.CheckAcceptType='3' and t.SpotCheckDate>'2023-01-01')>0
+then cast(cast(cast(1.0*(select COUNT(*) from Check_SpotCheckDetail r left join Check_SpotCheck t on r.SpotCheckCode=t.SpotCheckCode left join WBS_ControlItemAndCycle c on c.ControlItemAndCycleId=r.ControlItemAndCycleId where t.ProjectId=p.ProjectId and c.CheckAcceptType='3' and r.IsOK=1 and t.SpotCheckDate>'2023-01-01')
+/(1.0 *((select COUNT(*) from Check_SpotCheckDetail r left join Check_SpotCheck t on r.SpotCheckCode=t.SpotCheckCode left join WBS_ControlItemAndCycle c on c.ControlItemAndCycleId=r.ControlItemAndCycleId where t.ProjectId=p.ProjectId and c.CheckAcceptType='3' and t.SpotCheckDate>'2023-01-01')))*100 as decimal(9,2)) as float) as nvarchar(10))+'%'
+else '/' end as ConcealedWorksRate,
+(select COUNT(*) from Check_SpotCheckDetail r left join Check_SpotCheck t on r.SpotCheckCode=t.SpotCheckCode left join WBS_ControlItemAndCycle c on c.ControlItemAndCycleId=r.ControlItemAndCycleId where t.ProjectId=p.ProjectId and c.CheckAcceptType='4' and t.SpotCheckDate>'2023-01-01') as UnitProjectOnesNum,
+(select COUNT(*) from Check_SpotCheckDetail r left join Check_SpotCheck t on r.SpotCheckCode=t.SpotCheckCode left join WBS_ControlItemAndCycle c on c.ControlItemAndCycleId=r.ControlItemAndCycleId where t.ProjectId=p.ProjectId and c.CheckAcceptType='4' and r.IsOK=1 and t.SpotCheckDate>'2023-01-01') as UnitProjectOnesOKNum,
+case when (select COUNT(*) from Check_SpotCheckDetail r left join Check_SpotCheck t on r.SpotCheckCode=t.SpotCheckCode left join WBS_ControlItemAndCycle c on c.ControlItemAndCycleId=r.ControlItemAndCycleId where t.ProjectId=p.ProjectId and c.CheckAcceptType='4' and t.SpotCheckDate>'2023-01-01')>0
+then cast(cast(cast(1.0*(select COUNT(*) from Check_SpotCheckDetail r left join Check_SpotCheck t on r.SpotCheckCode=t.SpotCheckCode left join WBS_ControlItemAndCycle c on c.ControlItemAndCycleId=r.ControlItemAndCycleId where t.ProjectId=p.ProjectId and c.CheckAcceptType='4' and r.IsOK=1 and t.SpotCheckDate>'2023-01-01')
+/(1.0 *((select COUNT(*) from Check_SpotCheckDetail r left join Check_SpotCheck t on r.SpotCheckCode=t.SpotCheckCode left join WBS_ControlItemAndCycle c on c.ControlItemAndCycleId=r.ControlItemAndCycleId where t.ProjectId=p.ProjectId and c.CheckAcceptType='4' and t.SpotCheckDate>'2023-01-01')))*100 as decimal(9,2)) as float) as nvarchar(10))+'%'
+else '/' end as UnitProjectOnesRate,
+(select COUNT(*) from Check_SpotCheckDetail r left join Check_SpotCheck t on r.SpotCheckCode=t.SpotCheckCode left join WBS_ControlItemAndCycle c on c.ControlItemAndCycleId=r.ControlItemAndCycleId where t.ProjectId=p.ProjectId and c.CheckAcceptType='5' and t.SpotCheckDate>'2023-01-01') as MaterialInRecheckNum,
+(select COUNT(*) from Check_SpotCheckDetail r left join Check_SpotCheck t on r.SpotCheckCode=t.SpotCheckCode left join WBS_ControlItemAndCycle c on c.ControlItemAndCycleId=r.ControlItemAndCycleId where t.ProjectId=p.ProjectId and c.CheckAcceptType='5' and r.IsOK=1 and t.SpotCheckDate>'2023-01-01') as MaterialInRecheckOKNum,
+case when (select COUNT(*) from Check_SpotCheckDetail r left join Check_SpotCheck t on r.SpotCheckCode=t.SpotCheckCode left join WBS_ControlItemAndCycle c on c.ControlItemAndCycleId=r.ControlItemAndCycleId where t.ProjectId=p.ProjectId and c.CheckAcceptType='5' and t.SpotCheckDate>'2023-01-01')>0
+then cast(cast(cast(1.0*(select COUNT(*) from Check_SpotCheckDetail r left join Check_SpotCheck t on r.SpotCheckCode=t.SpotCheckCode left join WBS_ControlItemAndCycle c on c.ControlItemAndCycleId=r.ControlItemAndCycleId where t.ProjectId=p.ProjectId and c.CheckAcceptType='5' and r.IsOK=1 and t.SpotCheckDate>'2023-01-01')
+/(1.0 *((select COUNT(*) from Check_SpotCheckDetail r left join Check_SpotCheck t on r.SpotCheckCode=t.SpotCheckCode left join WBS_ControlItemAndCycle c on c.ControlItemAndCycleId=r.ControlItemAndCycleId where t.ProjectId=p.ProjectId and c.CheckAcceptType='5' and t.SpotCheckDate>'2023-01-01')))*100 as decimal(9,2)) as float) as nvarchar(10))+'%'
+else '/' end as MaterialInRecheckRate,
+(select COUNT(*) from WBS_UnitWork r where r.ProjectId=p.ProjectId) as SingleProjectNum,
+(select COUNT(*) from WBS_UnitWork r where r.ProjectId=p.ProjectId) as UnitProjectNum,
+(select COUNT(*) from WBS_WorkPackage r where r.ProjectId=p.ProjectId and r.SubItemType='1' and r.IsApprove=1) as SubProjectNum,
+(select COUNT(*) from WBS_WorkPackage r where r.ProjectId=p.ProjectId and r.SubItemType='3' and r.IsApprove=1) as SubdivisionalWorksNum,
+(select COUNT(*) from WBS_ControlItemAndCycle r where r.ProjectId=p.ProjectId and r.IsApprove=1) as InspectionLotNum,
+(select COUNT(*) from SitePerson_Person Person where InTime <=GETDATE() AND (OutTime IS NULL OR OutTime > GETDATE()) AND Person.ProjectId=p.ProjectId and Person.WorkPostId='19B8F2A9-28D3-4F20-867A-1B2237C2E228') as WelderNum,
+(select CAST((SELECT ISNULL(SUM(ISNULL(Size,0)),0) FROM dbo.HJGL_WeldJoint w WHERE w.ProjectId=p.ProjectId) AS DECIMAL(12,3))) AS TotalDineNum,
+CAST((SELECT ISNULL(SUM(ISNULL(jot.Size,0)),0) FROM dbo.HJGL_WeldJoint jot left join dbo.HJGL_WeldingDaily d on d.WeldingDailyId=jot.WeldingDailyId WHERE jot.ProjectId=p.ProjectId AND jot.WeldingDailyId IS NOT NULL and d.WeldingDate<=GETDATE()) AS DECIMAL(12,3)) AS CompleteDineNum,
+isnull((select sum(TotalFilm) from HJGL_Batch_NDEItem r left join HJGL_Batch_NDE t on t.NDEID=r.NDEID where t.ProjectId=p.ProjectId),0) as TotalFilmNum,
+isnull((select sum(PassFilm) from HJGL_Batch_NDEItem r left join HJGL_Batch_NDE t on t.NDEID=r.NDEID where t.ProjectId=p.ProjectId),0) as OKFilmNum,
+p.ProjectId
+from Base_Project p
+where IsCNCECShow=1
+
+
+
+
+
+GO
+
+
+INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)
+VALUES('C4B90ED3-0258-437A-BC0D-4AB43721EE08','ݻ','ZHGL/DataSync/DataStatistics.aspx',105,'0','Menu_ZHGL',1,1,1)
+GO
\ No newline at end of file
diff --git a/DataBase/菜单初始化脚本/0-5综合管理(Menu_ZHGL).sql b/DataBase/菜单初始化脚本/0-5综合管理(Menu_ZHGL).sql
index 0f224296..2bfe0c1a 100644
--- a/DataBase/菜单初始化脚本/0-5综合管理(Menu_ZHGL).sql
+++ b/DataBase/菜单初始化脚本/0-5综合管理(Menu_ZHGL).sql
@@ -697,6 +697,10 @@ GO
VALUES('5F512767-BF01-4706-8741-D0E111A4A9E2','DCVVBDE3-1B48-4615-FCD0-VDBCDS3ET4D9','保存',4)
GO
+INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)
+VALUES('C4B90ED3-0258-437A-BC0D-4AB43721EE08','看板数据汇总','ZHGL/DataSync/DataStatistics.aspx',105,'0','Menu_ZHGL',1,1,1)
+GO
+
INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)
VALUES('6136C2AE-2AF8-498D-BC19-7D693841239C','文件柜','',110,'0','Menu_ZHGL',1,0,1)
GO
diff --git a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj
index f0907c0d..9a739624 100644
--- a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj
+++ b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj
@@ -1596,6 +1596,7 @@
+
@@ -13675,6 +13676,13 @@
CQMSData_CQMSEdit.aspx
+
+ DataStatistics.aspx
+ ASPXCodeBehind
+
+
+ DataStatistics.aspx
+ HJGLData_HJGL.aspxASPXCodeBehind
diff --git a/SGGL/FineUIPro.Web/ZHGL/DataSync/DataStatistics.aspx b/SGGL/FineUIPro.Web/ZHGL/DataSync/DataStatistics.aspx
new file mode 100644
index 00000000..548681df
--- /dev/null
+++ b/SGGL/FineUIPro.Web/ZHGL/DataSync/DataStatistics.aspx
@@ -0,0 +1,447 @@
+<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DataStatistics.aspx.cs" Inherits="FineUIPro.Web.ZHGL.DataSync.DataStatistics" %>
+
+
+
+
+
+
+ 看板数据汇总
+
+
+
+
+
+
+
diff --git a/SGGL/FineUIPro.Web/ZHGL/DataSync/DataStatistics.aspx.cs b/SGGL/FineUIPro.Web/ZHGL/DataSync/DataStatistics.aspx.cs
new file mode 100644
index 00000000..b9e03594
--- /dev/null
+++ b/SGGL/FineUIPro.Web/ZHGL/DataSync/DataStatistics.aspx.cs
@@ -0,0 +1,354 @@
+using Aspose.Words;
+using BLL;
+using Newtonsoft.Json.Linq;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.SqlClient;
+using System.IO;
+using System.Linq;
+
+namespace FineUIPro.Web.ZHGL.DataSync
+{
+ public partial class DataStatistics : PageBase
+ {
+ #region 加载
+ ///
+ /// 加载页面
+ ///
+ ///
+ ///
+ protected void Page_Load(object sender, EventArgs e)
+ {
+ if (!IsPostBack)
+ {
+ // 绑定表格
+ this.BindGrid();
+ OutputSummaryData();
+ }
+ }
+
+ #endregion
+
+ #region 绑定数据Grid1
+ ///
+ /// 绑定数据Grid1
+ ///
+ private void BindGrid()
+ {
+ string strSql = @"select * from View_DataStatistics ";
+ tb = SQLHelper.GetDataTableRunText(strSql, null);
+ Grid1.RecordCount = tb.Rows.Count;
+ var tab = GetFilteredTable(Grid1.FilteredData, tb);
+ var table = GetPagedDataTable(Grid1, tab);
+ Grid1.DataSource = table;
+ Grid1.DataBind();
+ }
+ #endregion
+
+ private DataTable tb = null;
+
+ private void OutputSummaryData()
+ {
+ if (tb != null)
+ {
+ int CommissionerPersonNum = 0;
+ int FullTimePersonNum = 0;
+ int SafetySupervisionPersonNum = 0;
+ int InjectionSafetyEngineerPersonNum = 0;
+ int ACertificatePersonNum = 0;
+ int BCertificatePersonNum = 0;
+ int CCertificatePersonNum = 0;
+ int TotalWorkingHours = 0;
+ int LostWorkingHours = 0;
+ int SafeWorkingHours = 0;
+ int SafeTrainNum = 0;
+ int SpecialTrainNum = 0;
+ int SpecialOperationTrainNum = 0;
+ int ProjectSafetyLeadingGroupMeetingNum = 0;
+ int ProjectSafetyMeetingNum = 0;
+ int ProjectLeadShiftCheckNum = 0;
+ int ProjectSpecialCheckNum = 0;
+ int ProjectMajorCheckNum = 0;
+ int NearMissNum = 0;
+ int RecordableEventNum = 0;
+ int GeneralAccidentNum = 0;
+ int MajorAccidentNum = 0;
+ int SeriousAccidentNum = 0;
+ int SpecialSeriousAccidentNum = 0;
+ int ProjectComprehensivePlanNum = 0;
+ int ProjectSpecialPlanNum = 0;
+ int ProjectOnSiteDisposalPlanNum = 0;
+ int ProjectDrillNum = 0;
+ int CostUse = 0;
+ int UseEquipmentNum = 0;
+ int SpecialEquipmentNum = 0;
+ int LicensesNum = 0;
+ int LicensesCloseNum = 0;
+ int GeneralClosedNum = 0;
+ int GeneralNotClosedNum = 0;
+ string GeneralRate = "/";
+ int MajorClosedNum = 0;
+ int MajorNotClosedNum = 0;
+ string MajorRate = "/";
+ int LowRiskNum = 0;
+ int GeneralRiskNum = 0;
+ int MediumRiskNum = 0;
+ int HighRiskNum = 0;
+ int CompletedNum = 0;
+ int TrainPersonNum = 0;
+ int ConstructionNum = 0;
+ int FinishedNum = 0;
+ int SuperCompletedNum = 0;
+ int SuperTrainPersonNum = 0;
+ int SuperConstructionNum = 0;
+ int SuperFinishedNum = 0;
+ int QTrainPersonNum = 0;
+ int TechnicalDisclosePersonNum = 0;
+ int UseNum = 0;
+ int OKNum = 0;
+ int ProjectPersonNum = 0;
+ int ProblemNum = 0;
+ int ProblemCompletedNum = 0;
+ int ProblemNotCompletedNum = 0;
+ string ProblemRate = "/";
+ int ANum = 0;
+ int BNum = 0;
+ int CNum = 0;
+ int KeyProcessNum = 0;
+ int KeyProcessOkNum = 0;
+ string KeyProcessRate = "/";
+ int SpecialProcessNum = 0;
+ int SpecialProcessOkNum = 0;
+ string SpecialProcessRate = "/";
+ int ConcealedWorksNum = 0;
+ int ConcealedWorksOkNum = 0;
+ string ConcealedWorksRate = "/";
+ int UnitProjectOnesNum = 0;
+ int UnitProjectOnesOKNum = 0;
+ string UnitProjectOnesRate = "/";
+ int MaterialInRecheckNum = 0;
+ int MaterialInRecheckOKNum = 0;
+ string MaterialInRecheckRate = "/";
+ int SingleProjectNum = 0;
+ int UnitProjectNum = 0;
+ int SubProjectNum = 0;
+ int SubdivisionalWorksNum = 0;
+ int InspectionLotNum = 0;
+ int WelderNum = 0;
+ int TotalDineNum = 0;
+ int CompleteDineNum = 0;
+ int TotalFilmNum = 0;
+ int OKFilmNum = 0;
+ foreach (DataRow row in tb.Rows)
+ {
+ CommissionerPersonNum += Funs.GetNewIntOrZero(row["CommissionerPersonNum"].ToString());
+ FullTimePersonNum += Funs.GetNewIntOrZero(row["FullTimePersonNum"].ToString());
+ SafetySupervisionPersonNum += Funs.GetNewIntOrZero(row["SafetySupervisionPersonNum"].ToString());
+ InjectionSafetyEngineerPersonNum += Funs.GetNewIntOrZero(row["InjectionSafetyEngineerPersonNum"].ToString());
+ ACertificatePersonNum += Funs.GetNewIntOrZero(row["ACertificatePersonNum"].ToString());
+ BCertificatePersonNum += Funs.GetNewIntOrZero(row["BCertificatePersonNum"].ToString());
+ CCertificatePersonNum += Funs.GetNewIntOrZero(row["CCertificatePersonNum"].ToString());
+ TotalWorkingHours += Funs.GetNewIntOrZero(row["TotalWorkingHours"].ToString());
+ LostWorkingHours += Funs.GetNewIntOrZero(row["LostWorkingHours"].ToString());
+ SafeWorkingHours += Funs.GetNewIntOrZero(row["SafeWorkingHours"].ToString());
+ SafeTrainNum += Funs.GetNewIntOrZero(row["SafeTrainNum"].ToString());
+ SpecialTrainNum += Funs.GetNewIntOrZero(row["SpecialTrainNum"].ToString());
+ SpecialOperationTrainNum += Funs.GetNewIntOrZero(row["SpecialOperationTrainNum"].ToString());
+ ProjectSafetyLeadingGroupMeetingNum += Funs.GetNewIntOrZero(row["ProjectSafetyLeadingGroupMeetingNum"].ToString());
+ ProjectSafetyMeetingNum += Funs.GetNewIntOrZero(row["ProjectSafetyMeetingNum"].ToString());
+ ProjectLeadShiftCheckNum += Funs.GetNewIntOrZero(row["ProjectLeadShiftCheckNum"].ToString());
+ ProjectSpecialCheckNum += Funs.GetNewIntOrZero(row["ProjectSpecialCheckNum"].ToString());
+ ProjectMajorCheckNum += Funs.GetNewIntOrZero(row["ProjectMajorCheckNum"].ToString());
+ NearMissNum += Funs.GetNewIntOrZero(row["NearMissNum"].ToString());
+ RecordableEventNum += Funs.GetNewIntOrZero(row["RecordableEventNum"].ToString());
+ GeneralAccidentNum += Funs.GetNewIntOrZero(row["GeneralAccidentNum"].ToString());
+ MajorAccidentNum += Funs.GetNewIntOrZero(row["MajorAccidentNum"].ToString());
+ SeriousAccidentNum += Funs.GetNewIntOrZero(row["SeriousAccidentNum"].ToString());
+ SpecialSeriousAccidentNum += Funs.GetNewIntOrZero(row["SpecialSeriousAccidentNum"].ToString());
+ ProjectComprehensivePlanNum += Funs.GetNewIntOrZero(row["ProjectComprehensivePlanNum"].ToString());
+ ProjectSpecialPlanNum += Funs.GetNewIntOrZero(row["ProjectSpecialPlanNum"].ToString());
+ ProjectOnSiteDisposalPlanNum += Funs.GetNewIntOrZero(row["ProjectOnSiteDisposalPlanNum"].ToString());
+ ProjectDrillNum += Funs.GetNewIntOrZero(row["ProjectDrillNum"].ToString());
+ CostUse += Funs.GetNewIntOrZero(row["CostUse"].ToString());
+ UseEquipmentNum += Funs.GetNewIntOrZero(row["UseEquipmentNum"].ToString());
+ SpecialEquipmentNum += Funs.GetNewIntOrZero(row["SpecialEquipmentNum"].ToString());
+ LicensesNum += Funs.GetNewIntOrZero(row["LicensesNum"].ToString());
+ LicensesCloseNum += Funs.GetNewIntOrZero(row["LicensesCloseNum"].ToString());
+ GeneralClosedNum += Funs.GetNewIntOrZero(row["GeneralClosedNum"].ToString());
+ GeneralNotClosedNum += Funs.GetNewIntOrZero(row["GeneralNotClosedNum"].ToString());
+ MajorClosedNum += Funs.GetNewIntOrZero(row["MajorClosedNum"].ToString());
+ MajorNotClosedNum += Funs.GetNewIntOrZero(row["MajorNotClosedNum"].ToString());
+ LowRiskNum += Funs.GetNewIntOrZero(row["LowRiskNum"].ToString());
+ GeneralRiskNum += Funs.GetNewIntOrZero(row["GeneralRiskNum"].ToString());
+ MediumRiskNum += Funs.GetNewIntOrZero(row["MediumRiskNum"].ToString());
+ HighRiskNum += Funs.GetNewIntOrZero(row["HighRiskNum"].ToString());
+ CompletedNum += Funs.GetNewIntOrZero(row["CompletedNum"].ToString());
+ TrainPersonNum += Funs.GetNewIntOrZero(row["TrainPersonNum"].ToString());
+ ConstructionNum += Funs.GetNewIntOrZero(row["ConstructionNum"].ToString());
+ FinishedNum += Funs.GetNewIntOrZero(row["FinishedNum"].ToString());
+ SuperCompletedNum += Funs.GetNewIntOrZero(row["SuperCompletedNum"].ToString());
+ SuperTrainPersonNum += Funs.GetNewIntOrZero(row["SuperTrainPersonNum"].ToString());
+ SuperConstructionNum += Funs.GetNewIntOrZero(row["SuperConstructionNum"].ToString());
+ SuperFinishedNum += Funs.GetNewIntOrZero(row["SuperFinishedNum"].ToString());
+ QTrainPersonNum += Funs.GetNewIntOrZero(row["QTrainPersonNum"].ToString());
+ TechnicalDisclosePersonNum += Funs.GetNewIntOrZero(row["TechnicalDisclosePersonNum"].ToString());
+ UseNum += Funs.GetNewIntOrZero(row["UseNum"].ToString());
+ OKNum += Funs.GetNewIntOrZero(row["OKNum"].ToString());
+ ProjectPersonNum += Funs.GetNewIntOrZero(row["ProjectPersonNum"].ToString());
+ ProblemNum += Funs.GetNewIntOrZero(row["ProblemNum"].ToString());
+ ProblemCompletedNum += Funs.GetNewIntOrZero(row["ProblemCompletedNum"].ToString());
+ ProblemNotCompletedNum += Funs.GetNewIntOrZero(row["ProblemNotCompletedNum"].ToString());
+ ANum += Funs.GetNewIntOrZero(row["ANum"].ToString());
+ BNum += Funs.GetNewIntOrZero(row["BNum"].ToString());
+ CNum += Funs.GetNewIntOrZero(row["CNum"].ToString());
+ KeyProcessNum += Funs.GetNewIntOrZero(row["KeyProcessNum"].ToString());
+ KeyProcessOkNum += Funs.GetNewIntOrZero(row["KeyProcessOkNum"].ToString());
+ SpecialProcessNum += Funs.GetNewIntOrZero(row["SpecialProcessNum"].ToString());
+ SpecialProcessOkNum += Funs.GetNewIntOrZero(row["SpecialProcessOkNum"].ToString());
+ ConcealedWorksNum += Funs.GetNewIntOrZero(row["ConcealedWorksNum"].ToString());
+ ConcealedWorksOkNum += Funs.GetNewIntOrZero(row["ConcealedWorksOkNum"].ToString());
+ UnitProjectOnesNum += Funs.GetNewIntOrZero(row["UnitProjectOnesNum"].ToString());
+ UnitProjectOnesOKNum += Funs.GetNewIntOrZero(row["UnitProjectOnesOKNum"].ToString());
+ MaterialInRecheckNum += Funs.GetNewIntOrZero(row["MaterialInRecheckNum"].ToString());
+ MaterialInRecheckOKNum += Funs.GetNewIntOrZero(row["MaterialInRecheckOKNum"].ToString());
+ SingleProjectNum += Funs.GetNewIntOrZero(row["SingleProjectNum"].ToString());
+ UnitProjectNum += Funs.GetNewIntOrZero(row["UnitProjectNum"].ToString());
+ SubProjectNum += Funs.GetNewIntOrZero(row["SubProjectNum"].ToString());
+ SubdivisionalWorksNum += Funs.GetNewIntOrZero(row["SubdivisionalWorksNum"].ToString());
+ InspectionLotNum += Funs.GetNewIntOrZero(row["InspectionLotNum"].ToString());
+ WelderNum += Funs.GetNewIntOrZero(row["WelderNum"].ToString());
+ TotalDineNum += Funs.GetNewIntOrZero(row["TotalDineNum"].ToString());
+ CompleteDineNum += Funs.GetNewIntOrZero(row["CompleteDineNum"].ToString());
+ TotalFilmNum += Funs.GetNewIntOrZero(row["TotalFilmNum"].ToString());
+ OKFilmNum += Funs.GetNewIntOrZero(row["OKFilmNum"].ToString());
+ }
+ if ((GeneralClosedNum + GeneralNotClosedNum) > 0)
+ {
+ GeneralRate = decimal.Round(decimal.Parse((Convert.ToDecimal(GeneralClosedNum) / (GeneralClosedNum + GeneralNotClosedNum) * 100).ToString()), 2).ToString() + "%";
+ }
+ if ((MajorClosedNum + MajorNotClosedNum) > 0)
+ {
+ MajorRate = decimal.Round(decimal.Parse((Convert.ToDecimal(MajorClosedNum) / (MajorClosedNum + MajorNotClosedNum) * 100).ToString()), 2).ToString() + "%";
+ }
+ if (ProblemNum > 0)
+ {
+ ProblemRate = decimal.Round(decimal.Parse((Convert.ToDecimal(ProblemCompletedNum) / ProblemNum * 100).ToString()), 2).ToString() + "%";
+ }
+ if (KeyProcessNum > 0)
+ {
+ KeyProcessRate = decimal.Round(decimal.Parse((Convert.ToDecimal(KeyProcessOkNum) / KeyProcessNum * 100).ToString()), 2).ToString() + "%";
+ }
+ if (SpecialProcessNum > 0)
+ {
+ SpecialProcessRate = decimal.Round(decimal.Parse((Convert.ToDecimal(SpecialProcessOkNum) / SpecialProcessNum * 100).ToString()), 2).ToString() + "%";
+ }
+ if (ConcealedWorksNum > 0)
+ {
+ ConcealedWorksRate = decimal.Round(decimal.Parse((Convert.ToDecimal(ConcealedWorksOkNum) / ConcealedWorksNum * 100).ToString()), 2).ToString() + "%";
+ }
+ if (UnitProjectOnesNum > 0)
+ {
+ UnitProjectOnesRate = decimal.Round(decimal.Parse((Convert.ToDecimal(UnitProjectOnesOKNum) / UnitProjectOnesNum * 100).ToString()), 2).ToString() + "%";
+ }
+ if (MaterialInRecheckNum > 0)
+ {
+ MaterialInRecheckRate = decimal.Round(decimal.Parse((Convert.ToDecimal(MaterialInRecheckOKNum) / MaterialInRecheckNum * 100).ToString()), 2).ToString() + "%";
+ }
+ JObject summary = new JObject
+ {
+ { "ShortName", "合计" },
+ { "CommissionerPersonNum", CommissionerPersonNum },
+ { "FullTimePersonNum", FullTimePersonNum },
+ { "SafetySupervisionPersonNum", SafetySupervisionPersonNum },
+ { "InjectionSafetyEngineerPersonNum", InjectionSafetyEngineerPersonNum },
+ { "ACertificatePersonNum", ACertificatePersonNum },
+ { "BCertificatePersonNum", BCertificatePersonNum },
+ { "CCertificatePersonNum", CCertificatePersonNum },
+ { "TotalWorkingHours", TotalWorkingHours },
+ { "LostWorkingHours", LostWorkingHours },
+ { "SafeWorkingHours", SafeWorkingHours },
+ { "SafeTrainNum", SafeTrainNum },
+ { "SpecialTrainNum", SpecialTrainNum },
+ { "SpecialOperationTrainNum", SpecialOperationTrainNum },
+ { "ProjectSafetyLeadingGroupMeetingNum", ProjectSafetyLeadingGroupMeetingNum },
+ { "ProjectSafetyMeetingNum", ProjectSafetyMeetingNum },
+ { "ProjectLeadShiftCheckNum", ProjectLeadShiftCheckNum },
+ { "ProjectSpecialCheckNum", ProjectSpecialCheckNum },
+ { "ProjectMajorCheckNum", ProjectMajorCheckNum },
+ { "NearMissNum", NearMissNum },
+ { "RecordableEventNum", RecordableEventNum },
+ { "GeneralAccidentNum", GeneralAccidentNum },
+ { "MajorAccidentNum", MajorAccidentNum },
+ { "SeriousAccidentNum", SeriousAccidentNum },
+ { "SpecialSeriousAccidentNum", SpecialSeriousAccidentNum },
+ { "ProjectComprehensivePlanNum", ProjectComprehensivePlanNum },
+ { "ProjectSpecialPlanNum", ProjectSpecialPlanNum },
+ { "ProjectOnSiteDisposalPlanNum", ProjectOnSiteDisposalPlanNum },
+ { "ProjectDrillNum", ProjectDrillNum },
+ { "CostUse", CostUse },
+ { "UseEquipmentNum", UseEquipmentNum },
+ { "SpecialEquipmentNum", SpecialEquipmentNum },
+ { "LicensesNum", LicensesNum },
+ { "LicensesCloseNum", LicensesCloseNum },
+ { "GeneralClosedNum", GeneralClosedNum },
+ { "GeneralNotClosedNum", GeneralNotClosedNum },
+ { "GeneralRate", GeneralRate },
+ { "MajorClosedNum", MajorClosedNum },
+ { "MajorNotClosedNum", MajorNotClosedNum },
+ { "MajorRate", MajorRate },
+ { "LowRiskNum", LowRiskNum },
+ { "GeneralRiskNum", GeneralRiskNum },
+ { "MediumRiskNum", MediumRiskNum },
+ { "HighRiskNum", HighRiskNum },
+ { "CompletedNum", CompletedNum },
+ { "TrainPersonNum", TrainPersonNum },
+ { "ConstructionNum", ConstructionNum },
+ { "FinishedNum", FinishedNum },
+ { "SuperCompletedNum", SuperCompletedNum },
+ { "SuperTrainPersonNum", SuperTrainPersonNum },
+ { "SuperConstructionNum", SuperConstructionNum },
+ { "SuperFinishedNum", SuperFinishedNum },
+ { "QTrainPersonNum", QTrainPersonNum },
+ { "TechnicalDisclosePersonNum", TechnicalDisclosePersonNum },
+ { "UseNum", UseNum },
+ { "OKNum", OKNum },
+ { "ProjectPersonNum", ProjectPersonNum },
+ { "ProblemNum", ProblemNum },
+ { "ProblemCompletedNum", ProblemCompletedNum },
+ { "ProblemNotCompletedNum", ProblemNotCompletedNum },
+ { "ProblemRate", ProblemRate },
+ { "ANum", ANum },
+ { "BNum", BNum },
+ { "CNum", CNum },
+ { "KeyProcessNum", KeyProcessNum },
+ { "KeyProcessOkNum", KeyProcessOkNum },
+ { "KeyProcessRate", KeyProcessRate },
+ { "SpecialProcessNum", SpecialProcessNum },
+ { "SpecialProcessOkNum", SpecialProcessOkNum },
+ { "SpecialProcessRate", SpecialProcessRate },
+ { "ConcealedWorksNum", ConcealedWorksNum },
+ { "ConcealedWorksOkNum", ConcealedWorksOkNum },
+ { "ConcealedWorksRate", ConcealedWorksRate },
+ { "UnitProjectOnesNum", UnitProjectOnesNum },
+ { "UnitProjectOnesOKNum", UnitProjectOnesOKNum },
+ { "UnitProjectOnesRate", UnitProjectOnesRate },
+ { "MaterialInRecheckNum", MaterialInRecheckNum },
+ { "MaterialInRecheckOKNum", MaterialInRecheckOKNum },
+ { "MaterialInRecheckRate", MaterialInRecheckRate },
+ { "SingleProjectNum", SingleProjectNum },
+ { "UnitProjectNum", UnitProjectNum },
+ { "SubProjectNum", SubProjectNum },
+ { "SubdivisionalWorksNum", SubdivisionalWorksNum },
+ { "InspectionLotNum", InspectionLotNum },
+ { "WelderNum", WelderNum },
+ { "TotalDineNum", TotalDineNum },
+ { "CompleteDineNum", CompleteDineNum },
+ { "TotalFilmNum", TotalFilmNum },
+ { "OKFilmNum", OKFilmNum }
+ };
+ Grid1.SummaryData = summary;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/SGGL/FineUIPro.Web/ZHGL/DataSync/DataStatistics.aspx.designer.cs b/SGGL/FineUIPro.Web/ZHGL/DataSync/DataStatistics.aspx.designer.cs
new file mode 100644
index 00000000..ea1c32bb
--- /dev/null
+++ b/SGGL/FineUIPro.Web/ZHGL/DataSync/DataStatistics.aspx.designer.cs
@@ -0,0 +1,69 @@
+//------------------------------------------------------------------------------
+// <自动生成>
+// 此代码由工具生成。
+//
+// 对此文件的更改可能导致不正确的行为,如果
+// 重新生成代码,则所做更改将丢失。
+// 自动生成>
+//------------------------------------------------------------------------------
+
+namespace FineUIPro.Web.ZHGL.DataSync {
+
+
+ public partial class DataStatistics {
+
+ ///
+ /// form1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::System.Web.UI.HtmlControls.HtmlForm form1;
+
+ ///
+ /// PageManager1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.PageManager PageManager1;
+
+ ///
+ /// Panel1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Panel Panel1;
+
+ ///
+ /// Toolbar2 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Toolbar Toolbar2;
+
+ ///
+ /// ToolbarFill1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.ToolbarFill ToolbarFill1;
+
+ ///
+ /// Grid1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Grid Grid1;
+ }
+}