diff --git a/DataBase/版本日志/SGGLDB_V2025-06-04-001-gaofei.sql b/DataBase/版本日志/SGGLDB_V2025-06-04-001-gaofei.sql new file mode 100644 index 00000000..681d444f --- /dev/null +++ b/DataBase/版本日志/SGGLDB_V2025-06-04-001-gaofei.sql @@ -0,0 +1,313 @@ +alter table Project_ProjectUnit add CQMS_OrganizationPic nvarchar(100) +GO +alter table Project_ProjectUnit add QRCodeAttachUrl nvarchar(200) null +GO + + +alter table dbo.HSSEData_HSSE add HseTechnicalNum int +go +alter table dbo.HSSEData_HSSE add ArgumentNum int +go +alter table dbo.HSSEData_HSSE add SuperArgumentNum int +go +alter table dbo.HSSEData_HSSE add ProjectDrillPersonNum int +go +alter table dbo.HSSEData_HSSE add CompanyDrillPersonNum int +go +exec sp_addextendedproperty 'MS_Description', N'ȫ', 'SCHEMA', 'dbo', 'TABLE', 'HSSEData_HSSE', +'COLUMN', 'HseTechnicalNum' +go + +exec sp_addextendedproperty 'MS_Description', N'Σ󹤳֤', 'SCHEMA', 'dbo', 'TABLE', 'HSSEData_HSSE', +'COLUMN', 'ArgumentNum' +go + +exec sp_addextendedproperty 'MS_Description', N'Σ󹤳֤', 'SCHEMA', 'dbo', 'TABLE', 'HSSEData_HSSE', +'COLUMN', 'SuperArgumentNum' +go + +exec sp_addextendedproperty 'MS_Description', N'Ŀ', 'SCHEMA', 'dbo', 'TABLE', 'HSSEData_HSSE', +'COLUMN', 'ProjectDrillPersonNum' +go +exec sp_addextendedproperty 'MS_Description', N'˾', 'SCHEMA', 'dbo', 'TABLE', 'HSSEData_HSSE', +'COLUMN', 'CompanyDrillPersonNum' +go +alter table dbo.Project_HSSEData_HSSE add HseTechnicalNum int +go +alter table dbo.Project_HSSEData_HSSE add ArgumentNum int +go +alter table dbo.Project_HSSEData_HSSE add SuperArgumentNum int +go +alter table dbo.Project_HSSEData_HSSE add ProjectDrillPersonNum int +go +alter table dbo.Project_HSSEData_HSSE add CompanyDrillPersonNum int +go +exec sp_addextendedproperty 'MS_Description', N'ȫ', 'SCHEMA', 'dbo', 'TABLE', 'Project_HSSEData_HSSE', +'COLUMN', 'HseTechnicalNum' +go + +exec sp_addextendedproperty 'MS_Description', N'Σ󹤳֤', 'SCHEMA', 'dbo', 'TABLE', 'Project_HSSEData_HSSE', +'COLUMN', 'ArgumentNum' +go + +exec sp_addextendedproperty 'MS_Description', N'Σ󹤳֤', 'SCHEMA', 'dbo', 'TABLE', 'Project_HSSEData_HSSE', +'COLUMN', 'SuperArgumentNum' +go + +exec sp_addextendedproperty 'MS_Description', N'Ŀ', 'SCHEMA', 'dbo', 'TABLE', 'Project_HSSEData_HSSE', +'COLUMN', 'ProjectDrillPersonNum' +go +exec sp_addextendedproperty 'MS_Description', N'˾', 'SCHEMA', 'dbo', 'TABLE', 'Project_HSSEData_HSSE', +'COLUMN', 'CompanyDrillPersonNum' +go + + + + + + +alter table dbo.CQMSData_CQMS + add EquipmentInspectionNum int, + EquipmentInspectionQualifiedNum int, + MachineInspectionNum int, + MachineInspectionQualifiedNum int, + PersonInspectionNum int, + PersonInspectionQualifiedNum int, + MaterialInspectionNum int, + MaterialInspectionQualifiedNum int, + ConstructSolutionNum int, + ConstructSolutionProjectApproveNum int, + ConstructSolutionUnitApproveNum int, + SpecialEquipmentQualityAssuranceSystemNum int, + DesignDetailsNum int, + UnitProjectAcceptNum int, + UnitProjectAcceptOKNum int, + SubProjectAcceptNum int, + SubProjectAcceptOKNum int, + SubdivisionalWorksAcceptNum int, + SubdivisionalWorksAcceptOKNum int +go + + +exec sp_addextendedproperty 'MS_Description', N'豸-', 'SCHEMA', 'dbo', 'TABLE', 'CQMSData_CQMS', + 'COLUMN', 'EquipmentInspectionNum' +go + +exec sp_addextendedproperty 'MS_Description', N'豸-ϸ', 'SCHEMA', 'dbo', 'TABLE', 'CQMSData_CQMS', + 'COLUMN', 'EquipmentInspectionQualifiedNum' +go + +exec sp_addextendedproperty 'MS_Description', N'߱-', 'SCHEMA', 'dbo', 'TABLE', 'CQMSData_CQMS', + 'COLUMN', 'MachineInspectionNum' +go + +exec sp_addextendedproperty 'MS_Description', N'߱-ϸ', 'SCHEMA', 'dbo', 'TABLE', 'CQMSData_CQMS', + 'COLUMN', 'MachineInspectionQualifiedNum' +go + +exec sp_addextendedproperty 'MS_Description', N'Ա-', 'SCHEMA', 'dbo', 'TABLE', 'CQMSData_CQMS', + 'COLUMN', 'PersonInspectionNum' +go + +exec sp_addextendedproperty 'MS_Description', N'Ա-ϸ', 'SCHEMA', 'dbo', 'TABLE', 'CQMSData_CQMS', + 'COLUMN', 'PersonInspectionQualifiedNum' +go + +exec sp_addextendedproperty 'MS_Description', N'ϱ-', 'SCHEMA', 'dbo', 'TABLE', 'CQMSData_CQMS', + 'COLUMN', 'MaterialInspectionNum' +go + +exec sp_addextendedproperty 'MS_Description', N'ϱ-ϸ', 'SCHEMA', 'dbo', 'TABLE', 'CQMSData_CQMS', + 'COLUMN', 'MaterialInspectionQualifiedNum' +go +exec sp_addextendedproperty 'MS_Description', N'ʩ', 'SCHEMA', 'dbo', 'TABLE', 'CQMSData_CQMS', + 'COLUMN', 'ConstructSolutionNum' +go + +exec sp_addextendedproperty 'MS_Description', N'ʩĿ', 'SCHEMA', 'dbo', 'TABLE', + 'CQMSData_CQMS', 'COLUMN', 'ConstructSolutionProjectApproveNum' +go + +exec sp_addextendedproperty 'MS_Description', N'ʩҵ', 'SCHEMA', 'dbo', 'TABLE', + 'CQMSData_CQMS', 'COLUMN', 'ConstructSolutionUnitApproveNum' +go +exec sp_addextendedproperty 'MS_Description', N'豸ʱϵ', 'SCHEMA', 'dbo', 'TABLE', + 'CQMSData_CQMS', 'COLUMN', 'SpecialEquipmentQualityAssuranceSystemNum' +go +exec sp_addextendedproperty 'MS_Description', N'ͼֽ/ƽ', 'SCHEMA', 'dbo', 'TABLE', + 'CQMSData_CQMS', 'COLUMN', 'DesignDetailsNum' +go + +exec sp_addextendedproperty 'MS_Description', N'', 'SCHEMA', 'dbo', 'TABLE', 'CQMSData_CQMS', + 'COLUMN', 'SubdivisionalWorksAcceptNum' +go +exec sp_addextendedproperty 'MS_Description', N'ֲ̺ϸ', 'SCHEMA', 'dbo', 'TABLE', 'CQMSData_CQMS', + 'COLUMN', 'SubProjectAcceptOKNum' +go +exec sp_addextendedproperty 'MS_Description', N'ֲ', 'SCHEMA', 'dbo', 'TABLE', 'CQMSData_CQMS', + 'COLUMN', 'SubProjectAcceptNum' +go +exec sp_addextendedproperty 'MS_Description', N'λ̺ϸ', 'SCHEMA', 'dbo', 'TABLE', 'CQMSData_CQMS', + 'COLUMN', 'UnitProjectAcceptOKNum' +go +exec sp_addextendedproperty 'MS_Description', N'λ', 'SCHEMA', 'dbo', 'TABLE', 'CQMSData_CQMS', + 'COLUMN', 'UnitProjectAcceptNum' +go +exec sp_addextendedproperty 'MS_Description', N'̺ϸ', 'SCHEMA', 'dbo', 'TABLE', 'CQMSData_CQMS', + 'COLUMN', 'SubdivisionalWorksAcceptOKNum' +go + + + + + + + +alter table dbo.Project_CQMSData_CQMS + add EquipmentInspectionNum int, + EquipmentInspectionQualifiedNum int, + MachineInspectionNum int, + MachineInspectionQualifiedNum int, + PersonInspectionNum int, + PersonInspectionQualifiedNum int, + MaterialInspectionNum int, + MaterialInspectionQualifiedNum int, + ConstructSolutionNum int, + ConstructSolutionProjectApproveNum int, + ConstructSolutionUnitApproveNum int, + SpecialEquipmentQualityAssuranceSystemNum int, + DesignDetailsNum int, + UnitProjectAcceptNum int, + UnitProjectAcceptOKNum int, + SubProjectAcceptNum int, + SubProjectAcceptOKNum int, + SubdivisionalWorksAcceptNum int, + SubdivisionalWorksAcceptOKNum int +go + + +exec sp_addextendedproperty 'MS_Description', N'豸-', 'SCHEMA', 'dbo', 'TABLE', 'Project_CQMSData_CQMS', + 'COLUMN', 'EquipmentInspectionNum' +go + +exec sp_addextendedproperty 'MS_Description', N'豸-ϸ', 'SCHEMA', 'dbo', 'TABLE', 'Project_CQMSData_CQMS', + 'COLUMN', 'EquipmentInspectionQualifiedNum' +go + +exec sp_addextendedproperty 'MS_Description', N'߱-', 'SCHEMA', 'dbo', 'TABLE', 'Project_CQMSData_CQMS', + 'COLUMN', 'MachineInspectionNum' +go + +exec sp_addextendedproperty 'MS_Description', N'߱-ϸ', 'SCHEMA', 'dbo', 'TABLE', 'Project_CQMSData_CQMS', + 'COLUMN', 'MachineInspectionQualifiedNum' +go + +exec sp_addextendedproperty 'MS_Description', N'Ա-', 'SCHEMA', 'dbo', 'TABLE', 'Project_CQMSData_CQMS', + 'COLUMN', 'PersonInspectionNum' +go + +exec sp_addextendedproperty 'MS_Description', N'Ա-ϸ', 'SCHEMA', 'dbo', 'TABLE', 'Project_CQMSData_CQMS', + 'COLUMN', 'PersonInspectionQualifiedNum' +go + +exec sp_addextendedproperty 'MS_Description', N'ϱ-', 'SCHEMA', 'dbo', 'TABLE', 'Project_CQMSData_CQMS', + 'COLUMN', 'MaterialInspectionNum' +go + +exec sp_addextendedproperty 'MS_Description', N'ϱ-ϸ', 'SCHEMA', 'dbo', 'TABLE', 'Project_CQMSData_CQMS', + 'COLUMN', 'MaterialInspectionQualifiedNum' +go +exec sp_addextendedproperty 'MS_Description', N'ʩ', 'SCHEMA', 'dbo', 'TABLE', 'Project_CQMSData_CQMS', + 'COLUMN', 'ConstructSolutionNum' +go + +exec sp_addextendedproperty 'MS_Description', N'ʩĿ', 'SCHEMA', 'dbo', 'TABLE', + 'Project_CQMSData_CQMS', 'COLUMN', 'ConstructSolutionProjectApproveNum' +go + +exec sp_addextendedproperty 'MS_Description', N'ʩҵ', 'SCHEMA', 'dbo', 'TABLE', + 'Project_CQMSData_CQMS', 'COLUMN', 'ConstructSolutionUnitApproveNum' +go +exec sp_addextendedproperty 'MS_Description', N'豸ʱϵ', 'SCHEMA', 'dbo', 'TABLE', + 'Project_CQMSData_CQMS', 'COLUMN', 'SpecialEquipmentQualityAssuranceSystemNum' +go +exec sp_addextendedproperty 'MS_Description', N'ͼֽ/ƽ', 'SCHEMA', 'dbo', 'TABLE', + 'Project_CQMSData_CQMS', 'COLUMN', 'DesignDetailsNum' +go + +exec sp_addextendedproperty 'MS_Description', N'', 'SCHEMA', 'dbo', 'TABLE', 'Project_CQMSData_CQMS', + 'COLUMN', 'SubdivisionalWorksAcceptNum' +go +exec sp_addextendedproperty 'MS_Description', N'ֲ̺ϸ', 'SCHEMA', 'dbo', 'TABLE', 'Project_CQMSData_CQMS', + 'COLUMN', 'SubProjectAcceptOKNum' +go +exec sp_addextendedproperty 'MS_Description', N'ֲ', 'SCHEMA', 'dbo', 'TABLE', 'Project_CQMSData_CQMS', + 'COLUMN', 'SubProjectAcceptNum' +go +exec sp_addextendedproperty 'MS_Description', N'λ̺ϸ', 'SCHEMA', 'dbo', 'TABLE', 'Project_CQMSData_CQMS', + 'COLUMN', 'UnitProjectAcceptOKNum' +go +exec sp_addextendedproperty 'MS_Description', N'λ', 'SCHEMA', 'dbo', 'TABLE', 'Project_CQMSData_CQMS', + 'COLUMN', 'UnitProjectAcceptNum' +go +exec sp_addextendedproperty 'MS_Description', N'̺ϸ', 'SCHEMA', 'dbo', 'TABLE', 'Project_CQMSData_CQMS', + 'COLUMN', 'SubdivisionalWorksAcceptOKNum' +go + + + + +ALTER VIEW [dbo].[View_DCGL_CheckRectifyListFromSUB] +AS +/*ӹ˾ĵͼ*/ +SELECT CheckRectifyItem.CheckRectifyItemId + ,CheckRectifyItem.CheckRectifyId + ,CheckRectifyItem.NoticeItemId + ,CheckRectifyItem.ConfirmMan + ,CheckRectifyItem.ConfirmManName + ,CheckRectifyItem.ConfirmDate + ,CheckRectifyItem.OrderEndDate + ,CheckRectifyItem.OrderEndPerson + ,CheckRectifyItem.RealEndDate + ,CheckRectifyItem.Verification + ,CheckRectify.CheckRectifyCode + ,CheckRectify.ProjectId + ,CheckRectify.UnitId + ,CheckRectify.CheckDate + ,CheckRectify.IssueMan + ,CheckRectify.IssueDate + ,CheckRectify.HandleState + ,NoticeItem.ProblemTypes AS ProblemTypes + ,NoticeItem.SortIndex AS SortIndex + ,NoticeItem.Situation AS Situation + ,'' AS WorkType + ,'' AS DangerPoint + ,'⣩:'+NoticeItem.Describe+';ݱ׼:'+NoticeItem.Standards+';:'+NoticeItem.Advice AS RiskExists + ,'' AS IsProject + ,'' AS CheckMan + ,'' AS SubjectUnitMan + --,Table5Item.SortIndex + --,Table5Item.WorkType + --,Table5Item.DangerPoint + --,Table5Item.RiskExists + --,Table5Item.IsProject + --,Table5Item.CheckMan + --,Table5Item.SubjectUnitMan + ,AttachFile.AttachFileId + ,AttachFile.ToKeyId + ,AttachFile.AttachSource + ,AttachFile.AttachUrl + ,AttachFile2.AttachFileId AS AttachFileId2 + ,AttachFile2.ToKeyId AS ToKeyId2 + ,AttachFile2.AttachSource AS AttachSource2 + ,AttachFile2.AttachUrl AS AttachUrl2 +FROM dbo.DCGL_Check_CheckRectifyItem AS CheckRectifyItem +LEFT JOIN dbo.DCGL_Check_CheckRectify AS CheckRectify ON CheckRectifyItem.CheckRectifyid=CheckRectify.CheckRectifyId +--LEFT JOIN dbo.Check_CheckInfo_Table5Item as Table5Item on CheckRectifyItem.Table5ItemId=Table5Item.ID +LEFT JOIN DCGL_Check_CheckInfo_TableNoticeItem AS NoticeItem ON CheckRectifyItem.NoticeItemId=NoticeItem.ID +LEFT JOIN dbo.AttachFile AS AttachFile on AttachFile.ToKeyId =CheckRectifyItem.NoticeItemId +LEFT JOIN dbo.AttachFile AS AttachFile2 on AttachFile2.ToKeyId =CheckRectifyItem.CheckRectifyItemId + +GO + + diff --git a/DataBase/版本日志/SGGLDB_V2025-06-09-001_bwj.sql b/DataBase/版本日志/SGGLDB_V2025-06-09-001_bwj.sql new file mode 100644 index 00000000..e63ccec8 --- /dev/null +++ b/DataBase/版本日志/SGGLDB_V2025-06-09-001_bwj.sql @@ -0,0 +1,183 @@ + +ALTER TABLE [dbo].[HJGL_ProductionSchedulingPlan] DROP CONSTRAINT [FK_HJGL_ProductionSchedulingPlan_HJGL_Pipeline] +GO + +ALTER TABLE [dbo].[HJGL_ProductionSchedulingPlan] WITH CHECK ADD CONSTRAINT [FK_HJGL_ProductionSchedulingPlan_WBS_UnitWork] FOREIGN KEY([PipelineId]) +REFERENCES [dbo].[WBS_UnitWork] ([UnitWorkId]) +GO + +ALTER TABLE [dbo].[HJGL_ProductionSchedulingPlan] CHECK CONSTRAINT [FK_HJGL_ProductionSchedulingPlan_WBS_UnitWork] +GO + +alter table HJGL_ProductionSchedulingPlan add CompletedCount int +alter table HJGL_ProductionSchedulingPlan add CompletedRate decimal(18,2) +alter table HJGL_ProductionSchedulingPlan add TotalCompletedRate decimal(18,2) +go + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'HJGL_ProductionSchedulingPlan', @level2type=N'COLUMN',@level2name=N'CompletedCount' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ɰٷֱ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'HJGL_ProductionSchedulingPlan', @level2type=N'COLUMN',@level2name=N'CompletedRate' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ɰٷֱȻ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'HJGL_ProductionSchedulingPlan', @level2type=N'COLUMN',@level2name=N'TotalCompletedRate' +GO + +drop view View_HJGL_ProductionSchedulingPlanStatistics +go + + +CREATE PROCEDURE [dbo].[Sp_ProductionSchedulingPlanStatistics] + @projectId nvarchar(50)=null, + @unitWorkId nvarchar(50)=null, + @flowingSection nvarchar(50)=null, + @caliber nvarchar(50)=null +AS +/************Ųƻͳ**********/ +SELECT distinct unitWork.UnitWorkId, +unitWork.UnitWorkCode, +unitWork.UnitWorkName, +unitWork.ProjectId, +pipeline.FlowingSection, +(case p.SteelType when '1' then '̼' when '2' then '' when '3' then '' when '4' then 'ͺϽ' when '5' then 'Ͻ' when '6' then 'ѺϽ' when '7' then '' end) as Material, +'<'+ @caliber as Caliber, +isnull(weldJoint.Dia,0) as Dia, +isnull(maxDia.maxTotalDia+weldJoint.Dia,0) as totalDia, +isnull(cTotal.cTotalCount,0) as cTotalCount, +(case when isnull(total.totalCount,0)>0 then +isnull(cTotal.cTotalCount,0) / isnull(cast(total.totalCount as decimal(18,2)),0)*100.0 else 0 end) as rate, +(case when isnull(ScTotal.ScTotalCount,0)>0 then +isnull(Stotal.StotalCount,0)/isnull(cast(ScTotal.ScTotalCount as decimal(18,2)),0)*100.0 else 0 end)as Srate +FROM WBS_UnitWork AS unitWork +LEFT JOIN (select FlowingSection,UnitWorkId from HJGL_Pipeline where PipeArea='1') as pipeline on pipeline.UnitWorkId = unitWork.UnitWorkId +-- +LEFT JOIN (select distinct Base_Material.SteelType,UnitWorkId from HJGL_WeldJoint + left join HJGL_Pipeline on HJGL_Pipeline.PipelineId = HJGL_WeldJoint.PipelineId + left join Base_Material on Base_Material.MaterialId = HJGL_WeldJoint.Material1Id + where PipeArea='1' and HJGL_WeldJoint.JointAttribute='Ԥƿ') as p on p.UnitWorkId = unitWork.UnitWorkId +-- +LEFT JOIN (select sum(Dia) as Dia,HJGL_Pipeline.UnitWorkId,HJGL_Pipeline.FlowingSection,Base_Material.SteelType,HJGL_WeldJoint.DNDia from HJGL_WeldJoint + left join HJGL_Pipeline on HJGL_Pipeline.PipelineId = HJGL_WeldJoint.PipelineId + left join Base_Material on Base_Material.MaterialId = HJGL_WeldJoint.Material1Id + where HJGL_Pipeline.PipeArea='1' and HJGL_WeldJoint.JointAttribute='Ԥƿ' + and cast(SUBSTRING(HJGL_WeldJoint.DNDia,CHARINDEX('N',HJGL_WeldJoint.DNDia)+1,len(HJGL_WeldJoint.DNDia)-charindex('N',HJGL_WeldJoint.DNDia)) as int)<@caliber + group by HJGL_Pipeline.UnitWorkId,HJGL_Pipeline.FlowingSection,Base_Material.SteelType,HJGL_WeldJoint.DNDia) as weldJoint on weldJoint.UnitWorkId =unitWork.UnitWorkId + and weldJoint.FlowingSection = pipeline.FlowingSection +--ڿھĴ +LEFT JOIN (select sum(Dia) as maxTotalDia,HJGL_Pipeline.UnitWorkId,HJGL_Pipeline.FlowingSection,Base_Material.SteelType,HJGL_WeldJoint.DNDia from HJGL_WeldJoint + left join HJGL_Pipeline on HJGL_Pipeline.PipelineId = HJGL_WeldJoint.PipelineId + left join Base_Material on Base_Material.MaterialId = HJGL_WeldJoint.Material1Id + where HJGL_Pipeline.PipeArea='1' and HJGL_WeldJoint.JointAttribute='Ԥƿ' + and cast(SUBSTRING(HJGL_WeldJoint.DNDia,CHARINDEX('N',HJGL_WeldJoint.DNDia)+1,len(HJGL_WeldJoint.DNDia)-charindex('N',HJGL_WeldJoint.DNDia)) as int)>=@caliber + group by HJGL_Pipeline.UnitWorkId,HJGL_Pipeline.FlowingSection,Base_Material.SteelType,HJGL_WeldJoint.DNDia) as maxDia on maxDia.UnitWorkId =unitWork.UnitWorkId + and maxDia.FlowingSection = pipeline.FlowingSection +--ܺ +LEFT JOIN (select count(*) as totalCount,HJGL_Pipeline.UnitWorkId,HJGL_Pipeline.FlowingSection,Base_Material.SteelType,HJGL_WeldJoint.DNDia from HJGL_WeldJoint + left join HJGL_Pipeline on HJGL_Pipeline.PipelineId = HJGL_WeldJoint.PipelineId + left join Base_Material on Base_Material.MaterialId = HJGL_WeldJoint.Material1Id + where HJGL_Pipeline.PipeArea='1' and HJGL_WeldJoint.JointAttribute='Ԥƿ' + and cast(SUBSTRING(HJGL_WeldJoint.DNDia,CHARINDEX('N',HJGL_WeldJoint.DNDia)+1,len(HJGL_WeldJoint.DNDia)-charindex('N',HJGL_WeldJoint.DNDia)) as int)<@caliber + group by HJGL_Pipeline.UnitWorkId,HJGL_Pipeline.FlowingSection,Base_Material.SteelType,HJGL_WeldJoint.DNDia) as total on total.UnitWorkId =unitWork.UnitWorkId + and total.FlowingSection = pipeline.FlowingSection +--ɺ +LEFT JOIN (select count(*) as cTotalCount,HJGL_Pipeline.UnitWorkId,HJGL_Pipeline.FlowingSection,Base_Material.SteelType,HJGL_WeldJoint.DNDia from HJGL_WeldJoint + left join HJGL_Pipeline on HJGL_Pipeline.PipelineId = HJGL_WeldJoint.PipelineId + left join Base_Material on Base_Material.MaterialId = HJGL_WeldJoint.Material1Id + where HJGL_Pipeline.PipeArea='1' and HJGL_WeldJoint.JointAttribute='Ԥƿ' + and cast(SUBSTRING(HJGL_WeldJoint.DNDia,CHARINDEX('N',HJGL_WeldJoint.DNDia)+1,len(HJGL_WeldJoint.DNDia)-charindex('N',HJGL_WeldJoint.DNDia)) as int)<@caliber + and HJGL_WeldJoint.WeldingDailyId is not null + group by HJGL_Pipeline.UnitWorkId,HJGL_Pipeline.FlowingSection,Base_Material.SteelType,HJGL_WeldJoint.DNDia) as cTotal on cTotal.UnitWorkId =unitWork.UnitWorkId + and cTotal.FlowingSection = pipeline.FlowingSection +--ܺ +LEFT JOIN (select count(*) as StotalCount,HJGL_Pipeline.UnitWorkId,HJGL_Pipeline.FlowingSection from HJGL_WeldJoint + left join HJGL_Pipeline on HJGL_Pipeline.PipelineId = HJGL_WeldJoint.PipelineId + where HJGL_Pipeline.PipeArea='1' and HJGL_WeldJoint.JointAttribute='Ԥƿ' + group by HJGL_Pipeline.UnitWorkId,HJGL_Pipeline.FlowingSection) as Stotal on Stotal.UnitWorkId =unitWork.UnitWorkId + and total.FlowingSection = pipeline.FlowingSection +--ɺ +LEFT JOIN (select count(*) as ScTotalCount,HJGL_Pipeline.UnitWorkId,HJGL_Pipeline.FlowingSection from HJGL_WeldJoint + left join HJGL_Pipeline on HJGL_Pipeline.PipelineId = HJGL_WeldJoint.PipelineId + where HJGL_Pipeline.PipeArea='1' and HJGL_WeldJoint.JointAttribute='Ԥƿ' + and HJGL_WeldJoint.WeldingDailyId is not null + group by HJGL_Pipeline.UnitWorkId,HJGL_Pipeline.FlowingSection) as ScTotal on ScTotal.UnitWorkId =unitWork.UnitWorkId + and cTotal.FlowingSection = pipeline.FlowingSection +where (unitWork.ProjectId=@projectId or @projectId is null) +and (unitWork.UnitWorkId=@unitWorkId or @unitWorkId is null) +and (pipeline.FlowingSection=@flowingSection or @flowingSection is null) +union + +SELECT distinct unitWork.UnitWorkId, +unitWork.UnitWorkCode, +unitWork.UnitWorkName, +unitWork.ProjectId, +pipeline.FlowingSection, +(case p.SteelType when '1' then '̼' when '2' then '' when '3' then '' when '4' then 'ͺϽ' when '5' then 'Ͻ' when '6' then 'ѺϽ' when '7' then '' end) as Material, +''+@caliber as Caliber, +isnull(weldJoint.Dia,0) as Dia, +isnull(weldJoint.Dia+minDia.minTotalDia,0) as TotalDia, +isnull(cTotal.cTotalCount,0) as cTotalCount, +(case when isnull(total.totalCount,0)>0 then +isnull(cTotal.cTotalCount,0) / isnull(cast(total.totalCount as decimal(18,2)),0)*100.0 else 0 end) as rate, +(case when isnull(ScTotal.ScTotalCount,0)>0 then +isnull(Stotal.StotalCount,0)/isnull(cast(ScTotal.ScTotalCount as decimal(18,2)),0)*100.0 else 0 end)as Srate +FROM WBS_UnitWork AS unitWork +LEFT JOIN (select FlowingSection,UnitWorkId from HJGL_Pipeline where PipeArea='1') as pipeline on pipeline.UnitWorkId = unitWork.UnitWorkId + +LEFT JOIN (select distinct Base_Material.SteelType,UnitWorkId from HJGL_WeldJoint + left join HJGL_Pipeline on HJGL_Pipeline.PipelineId = HJGL_WeldJoint.PipelineId + left join Base_Material on Base_Material.MaterialId = HJGL_WeldJoint.Material1Id + where PipeArea='1' and HJGL_WeldJoint.JointAttribute='Ԥƿ') as p on p.UnitWorkId = unitWork.UnitWorkId + +LEFT JOIN (select sum(Dia) as Dia,HJGL_Pipeline.UnitWorkId,HJGL_Pipeline.FlowingSection,Base_Material.SteelType,HJGL_WeldJoint.DNDia from HJGL_WeldJoint + left join HJGL_Pipeline on HJGL_Pipeline.PipelineId = HJGL_WeldJoint.PipelineId + left join Base_Material on Base_Material.MaterialId = HJGL_WeldJoint.Material1Id + where HJGL_Pipeline.PipeArea='1' and HJGL_WeldJoint.JointAttribute='Ԥƿ' + and cast(SUBSTRING(HJGL_WeldJoint.DNDia,CHARINDEX('N',HJGL_WeldJoint.DNDia)+1,len(HJGL_WeldJoint.DNDia)-charindex('N',HJGL_WeldJoint.DNDia)) as int)>=@caliber + group by HJGL_Pipeline.UnitWorkId,HJGL_Pipeline.FlowingSection,Base_Material.SteelType,HJGL_WeldJoint.DNDia) as weldJoint on weldJoint.UnitWorkId =unitWork.UnitWorkId + and weldJoint.FlowingSection = pipeline.FlowingSection +--СڿھĴ +LEFT JOIN (select sum(Dia) as minTotalDia,HJGL_Pipeline.UnitWorkId,HJGL_Pipeline.FlowingSection,Base_Material.SteelType,HJGL_WeldJoint.DNDia from HJGL_WeldJoint + left join HJGL_Pipeline on HJGL_Pipeline.PipelineId = HJGL_WeldJoint.PipelineId + left join Base_Material on Base_Material.MaterialId = HJGL_WeldJoint.Material1Id + where HJGL_Pipeline.PipeArea='1' and HJGL_WeldJoint.JointAttribute='Ԥƿ' + and cast(SUBSTRING(HJGL_WeldJoint.DNDia,CHARINDEX('N',HJGL_WeldJoint.DNDia)+1,len(HJGL_WeldJoint.DNDia)-charindex('N',HJGL_WeldJoint.DNDia)) as int)<@caliber + group by HJGL_Pipeline.UnitWorkId,HJGL_Pipeline.FlowingSection,Base_Material.SteelType,HJGL_WeldJoint.DNDia) as minDia on minDia.UnitWorkId =unitWork.UnitWorkId + and minDia.FlowingSection = pipeline.FlowingSection + +--ܺ +LEFT JOIN (select count(*) as totalCount,HJGL_Pipeline.UnitWorkId,HJGL_Pipeline.FlowingSection,Base_Material.SteelType,HJGL_WeldJoint.DNDia from HJGL_WeldJoint + left join HJGL_Pipeline on HJGL_Pipeline.PipelineId = HJGL_WeldJoint.PipelineId + left join Base_Material on Base_Material.MaterialId = HJGL_WeldJoint.Material1Id + where HJGL_Pipeline.PipeArea='1' and HJGL_WeldJoint.JointAttribute='Ԥƿ' + and cast(SUBSTRING(HJGL_WeldJoint.DNDia,CHARINDEX('N',HJGL_WeldJoint.DNDia)+1,len(HJGL_WeldJoint.DNDia)-charindex('N',HJGL_WeldJoint.DNDia)) as int)>=@caliber + group by HJGL_Pipeline.UnitWorkId,HJGL_Pipeline.FlowingSection,Base_Material.SteelType,HJGL_WeldJoint.DNDia) as total on total.UnitWorkId =unitWork.UnitWorkId + and total.FlowingSection = pipeline.FlowingSection +--ɺ +LEFT JOIN (select count(*) as cTotalCount,HJGL_Pipeline.UnitWorkId,HJGL_Pipeline.FlowingSection,Base_Material.SteelType,HJGL_WeldJoint.DNDia from HJGL_WeldJoint + left join HJGL_Pipeline on HJGL_Pipeline.PipelineId = HJGL_WeldJoint.PipelineId + left join Base_Material on Base_Material.MaterialId = HJGL_WeldJoint.Material1Id + where HJGL_Pipeline.PipeArea='1' and HJGL_WeldJoint.JointAttribute='Ԥƿ' + and cast(SUBSTRING(HJGL_WeldJoint.DNDia,CHARINDEX('N',HJGL_WeldJoint.DNDia)+1,len(HJGL_WeldJoint.DNDia)-charindex('N',HJGL_WeldJoint.DNDia)) as int)>=@caliber + and HJGL_WeldJoint.WeldingDailyId is not null + group by HJGL_Pipeline.UnitWorkId,HJGL_Pipeline.FlowingSection,Base_Material.SteelType,HJGL_WeldJoint.DNDia) as cTotal on cTotal.UnitWorkId =unitWork.UnitWorkId + and cTotal.FlowingSection = pipeline.FlowingSection + +--ܺ +LEFT JOIN (select count(*) as StotalCount,HJGL_Pipeline.UnitWorkId,HJGL_Pipeline.FlowingSection from HJGL_WeldJoint + left join HJGL_Pipeline on HJGL_Pipeline.PipelineId = HJGL_WeldJoint.PipelineId + where HJGL_Pipeline.PipeArea='1' and HJGL_WeldJoint.JointAttribute='Ԥƿ' + group by HJGL_Pipeline.UnitWorkId,HJGL_Pipeline.FlowingSection) as Stotal on Stotal.UnitWorkId =unitWork.UnitWorkId + and total.FlowingSection = pipeline.FlowingSection +--ɺ +LEFT JOIN (select count(*) as ScTotalCount,HJGL_Pipeline.UnitWorkId,HJGL_Pipeline.FlowingSection from HJGL_WeldJoint + left join HJGL_Pipeline on HJGL_Pipeline.PipelineId = HJGL_WeldJoint.PipelineId + where HJGL_Pipeline.PipeArea='1' and HJGL_WeldJoint.JointAttribute='Ԥƿ' + and HJGL_WeldJoint.WeldingDailyId is not null + group by HJGL_Pipeline.UnitWorkId,HJGL_Pipeline.FlowingSection) as ScTotal on ScTotal.UnitWorkId =unitWork.UnitWorkId + and cTotal.FlowingSection = pipeline.FlowingSection +where (unitWork.ProjectId=@projectId or @projectId is null) +and (unitWork.UnitWorkId=@unitWorkId or @unitWorkId is null) +and (pipeline.FlowingSection=@flowingSection or @flowingSection is null) +GO + + diff --git a/DataBase/版本日志/SGGLDB_V2025-06-10-001_bwj.sql b/DataBase/版本日志/SGGLDB_V2025-06-10-001_bwj.sql new file mode 100644 index 00000000..f2487412 --- /dev/null +++ b/DataBase/版本日志/SGGLDB_V2025-06-10-001_bwj.sql @@ -0,0 +1,26 @@ +CREATE VIEW View_TestPackage_PipelineList +as +/*********ѹϸ**********/ +select l.PT_PipeId, +l.PTP_ID, +l.PipelineId, +l.TestPressure, +t.ProjectId, +t.TestPackageNo, +t.TestPackageName, +t.Remark, +t.UnitWorkId, +t.Tabler, +t.TableDate, +p.PipelineCode, +uw.UnitWorkCode, +uw.UnitWorkName, +uw.UnitId, +u.UnitCode, +u.UnitName +from PTP_PipelineList l +left join PTP_TestPackage as t on t.PTP_ID=l.PTP_ID +left join HJGL_Pipeline p on p.PipelineId = l.PipelineId +left join WBS_UnitWork uw on uw.UnitWorkId = t.UnitWorkId +left join Base_Unit u on u.UnitId =uw.UnitId +go diff --git a/SGGL/BLL/Common/Const.cs b/SGGL/BLL/Common/Const.cs index 00cd10f3..a7db9083 100644 --- a/SGGL/BLL/Common/Const.cs +++ b/SGGL/BLL/Common/Const.cs @@ -3504,6 +3504,11 @@ namespace BLL /// 施工作业风险导出模板 /// public const string ConstructionRiskOutTemplateUrl = "File\\Excel\\DataOut\\每周施工作业风险动态管控表.xlsx"; + + /// + /// 试压包导入模板 + /// + public const string TestPackageTemplateUrl = "File\\Excel\\DataIn\\试压包导入模版.xlsx"; #endregion #region 初始化上传路径 @@ -4806,7 +4811,10 @@ namespace BLL /// public const string HJGL_ProductionSchedulingPlanPath = "File\\Excel\\DataOut\\排产计划导出模板.xlsx"; - + /// + /// 试压包导入文件路径 + /// + public static string TestPackageDataImportPath = "FileUpload\\TestPackageDataImport\\"; #region 焊接报表 /// /// 管道焊接工作记录 diff --git a/SGGL/BLL/HJGL/PreDesign/ProductionSchedulingPlanService.cs b/SGGL/BLL/HJGL/PreDesign/ProductionSchedulingPlanService.cs index ae787f4c..740c97ea 100644 --- a/SGGL/BLL/HJGL/PreDesign/ProductionSchedulingPlanService.cs +++ b/SGGL/BLL/HJGL/PreDesign/ProductionSchedulingPlanService.cs @@ -24,16 +24,16 @@ namespace BLL } - public static Model.HJGL_ProductionSchedulingPlan GetProductionSchedulingPlan(string loginProjectId, string flowingSection, string unitWorkName, string material, string caliber) + public static Model.HJGL_ProductionSchedulingPlan GetProductionSchedulingPlan(string loginProjectId, string flowingSection, string unitWorkId, string material, string caliber) { - return Funs.DB.HJGL_ProductionSchedulingPlan.FirstOrDefault(e => e.ProjectId == loginProjectId && e.FlowNum == flowingSection && e.MainItemName == unitWorkName && e.Caliber == caliber); + return Funs.DB.HJGL_ProductionSchedulingPlan.FirstOrDefault(e => e.ProjectId == loginProjectId && e.FlowNum == flowingSection && e.PipelineId == unitWorkId && e.Caliber == caliber); } - /// - /// 增加排产计划 - /// - /// - public static void AddProductionSchedulingPlan(Model.HJGL_ProductionSchedulingPlan plan) + /// + /// 增加排产计划 + /// + /// + public static void AddProductionSchedulingPlan(Model.HJGL_ProductionSchedulingPlan plan) { SGGLDB db = Funs.DB; Model.HJGL_ProductionSchedulingPlan newPlan = new HJGL_ProductionSchedulingPlan(); @@ -52,6 +52,9 @@ namespace BLL newPlan.PlanEndDate = plan.PlanEndDate; newPlan.Days = plan.Days; newPlan.AvgDailyWorkload = plan.Days; + newPlan.CompletedCount = plan.CompletedCount; + newPlan.CompletedRate = plan.CompletedRate; + newPlan.TotalCompletedRate = plan.TotalCompletedRate; db.HJGL_ProductionSchedulingPlan.InsertOnSubmit(newPlan); db.SubmitChanges(); } @@ -79,6 +82,9 @@ namespace BLL newPlan.PlanEndDate = plan.PlanEndDate; newPlan.Days = plan.Days; newPlan.AvgDailyWorkload = plan.AvgDailyWorkload; + newPlan.CompletedCount = plan.CompletedCount; + newPlan.CompletedRate = plan.CompletedRate; + newPlan.TotalCompletedRate = plan.TotalCompletedRate; try { db.SubmitChanges(System.Data.Linq.ConflictMode.ContinueOnConflict); diff --git a/SGGL/BLL/HJGL/TestPackage/TestPackageEditService.cs b/SGGL/BLL/HJGL/TestPackage/TestPackageEditService.cs index 4edc35dd..a3314e5e 100644 --- a/SGGL/BLL/HJGL/TestPackage/TestPackageEditService.cs +++ b/SGGL/BLL/HJGL/TestPackage/TestPackageEditService.cs @@ -1,4 +1,5 @@ -using System; +using Model; +using System; using System.Collections.Generic; using System.Linq; using System.Web.UI.WebControls; @@ -405,5 +406,54 @@ namespace BLL return null; } + /// + /// 根据试压包号、单位工程获取试压包信息 + /// + /// + /// + /// + public static PTP_TestPackage GetTestPackageByNo(string testPackageNo, string unitWorkId) + { + Model.SGGLDB db = Funs.DB; + Model.PTP_TestPackage q = null; + q = Funs.DB.PTP_TestPackage.FirstOrDefault(x => x.TestPackageNo == testPackageNo && x.UnitWorkId == unitWorkId); + return q; + } + + + public static List GetTestPackageByUnitWordId(string unitworkId) + { + var q = Funs.DB.PTP_TestPackage.Where(e => e.UnitWorkId == unitworkId).ToList(); + return q; + } + + + public static void DeletePipelineListByUnitWorkId(string unitworkId) + { + var oldPipeline = GetTestPackageByUnitWordId(unitworkId); + if (oldPipeline != null) + { + foreach (var pipeline in oldPipeline) + { + DeletePipelineListByPTP_ID(pipeline.PTP_ID); + } + + } + } + + /// + /// 根据单位工程删除相关试压包 + /// + /// + public static void DeleteTestPackageByUnitworkId(string unitworkId) + { + Model.SGGLDB db = Funs.DB; + var pipeline = db.PTP_TestPackage.Where(e => e.UnitWorkId == unitworkId); + if (pipeline != null) + { + db.PTP_TestPackage.DeleteAllOnSubmit(pipeline); + db.SubmitChanges(); + } + } } } diff --git a/SGGL/BLL/HJGL/WeldingManage/PipelineService.cs b/SGGL/BLL/HJGL/WeldingManage/PipelineService.cs index cf722bdc..43b7e118 100644 --- a/SGGL/BLL/HJGL/WeldingManage/PipelineService.cs +++ b/SGGL/BLL/HJGL/WeldingManage/PipelineService.cs @@ -90,6 +90,12 @@ namespace BLL { return Funs.DB.HJGL_Pipeline.FirstOrDefault(e => e.FlowingSection == flowingSection); } + + public static Model.HJGL_Pipeline GetPipelineByUnitWorkId(string unitWorkId) + { + return Funs.DB.HJGL_Pipeline.FirstOrDefault(e => e.UnitWorkId == unitWorkId); + } + /// /// 根据管线id获取管线状态 /// diff --git a/SGGL/BLL/ZHGL/DataSync/CQMSDataService.cs b/SGGL/BLL/ZHGL/DataSync/CQMSDataService.cs index 2d552a87..aeecb654 100644 --- a/SGGL/BLL/ZHGL/DataSync/CQMSDataService.cs +++ b/SGGL/BLL/ZHGL/DataSync/CQMSDataService.cs @@ -1,4 +1,6 @@ -using FineUIPro; +using BLL; +using FineUIPro; +using Model; using Model; using Newtonsoft.Json; using NPOI.POIFS.Crypt.Dsig; @@ -6,12 +8,15 @@ using System; using System.Collections; using System.Collections.Generic; using System.Linq; +using System.Threading.Tasks; +using System.Web.UI.WebControls; namespace BLL { public static class CQMSDataService { public static SGGLDB db = Funs.DB; + public static List BeUnderConstructionList = ProjectService.GetProjectWorkList().Select(x => x.ProjectId).ToList(); #region 获取列表 @@ -49,50 +54,52 @@ namespace BLL // q= q.Take(Grid1.PageSize * Grid1.PageIndex).Skip(Grid1.PageSize * (Grid1.PageIndex)).ToList(); // q = SortConditionHelper.SortingAndPaging(q, Grid1.SortField, Grid1.SortDirection, Grid1.PageIndex, Grid1.PageSize); return from x in q - select new - { - x.Id, - x.UnitId, - x.CollCropCode, - x.UnitName, - x.ReportDate, - x.TrainPersonNum, - x.TechnicalDisclosePersonNum, - x.UseNum, - x.OKNum, - x.CompanyPersonNum, - x.BranchPersonNum, - x.ProjectPersonNum, - x.ProblemNum, - x.ProblemCompletedNum, - x.ProblemNotCompletedNum, - x.SNum, - x.ANum, - x.BNum, - x.CNum, - x.KeyProcessNum, - x.KeyProcessOKNum, - x.SpecialProcessNum, - x.SpecialProcessOKNum, - x.ConcealedWorksNum, - x.ConcealedWorksOKNum, - x.UnitProjectOnesNum, - x.UnitProjectOnesOKNum, - x.MaterialInRecheckNum, - x.MaterialInRecheckOKNum, - x.SingleProjectNum, - x.UnitProjectNum, - x.SubProjectNum, - x.SubdivisionalWorksNum, - x.InspectionLotNum, - x.State, - x.CreateDate, - x.CreateMan - }; + select new + { + x.Id, + x.UnitId, + x.CollCropCode, + x.UnitName, + x.ReportDate, + x.TrainPersonNum, + x.TechnicalDisclosePersonNum, + x.UseNum, + x.OKNum, + x.CompanyPersonNum, + x.BranchPersonNum, + x.ProjectPersonNum, + x.ProblemNum, + x.ProblemCompletedNum, + x.ProblemNotCompletedNum, + x.SNum, + x.ANum, + x.BNum, + x.CNum, + x.KeyProcessNum, + x.KeyProcessOKNum, + x.SpecialProcessNum, + x.SpecialProcessOKNum, + x.ConcealedWorksNum, + x.ConcealedWorksOKNum, + x.UnitProjectOnesNum, + x.UnitProjectOnesOKNum, + x.MaterialInRecheckNum, + x.MaterialInRecheckOKNum, + x.SingleProjectNum, + x.UnitProjectNum, + x.SubProjectNum, + x.SubdivisionalWorksNum, + x.InspectionLotNum, + x.State, + x.CreateDate, + x.CreateMan + }; } #endregion 获取列表 + #region 新增、编辑、删除 + public static void AddCQMSData_CQMS(CQMSData_CQMS newtable) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) @@ -133,6 +140,25 @@ namespace BLL SubProjectNum = newtable.SubProjectNum, SubdivisionalWorksNum = newtable.SubdivisionalWorksNum, InspectionLotNum = newtable.InspectionLotNum, + EquipmentInspectionNum = newtable.EquipmentInspectionNum, + EquipmentInspectionQualifiedNum = newtable.EquipmentInspectionQualifiedNum, + MachineInspectionNum = newtable.MachineInspectionNum, + MachineInspectionQualifiedNum = newtable.MachineInspectionQualifiedNum, + PersonInspectionNum = newtable.PersonInspectionNum, + PersonInspectionQualifiedNum = newtable.PersonInspectionQualifiedNum, + MaterialInspectionNum = newtable.MaterialInspectionNum, + MaterialInspectionQualifiedNum = newtable.MaterialInspectionQualifiedNum, + ConstructSolutionNum = newtable.ConstructSolutionNum, + ConstructSolutionProjectApproveNum = newtable.ConstructSolutionProjectApproveNum, + ConstructSolutionUnitApproveNum = newtable.ConstructSolutionUnitApproveNum, + SpecialEquipmentQualityAssuranceSystemNum = newtable.SpecialEquipmentQualityAssuranceSystemNum, + DesignDetailsNum = newtable.DesignDetailsNum, + UnitProjectAcceptNum = newtable.UnitProjectAcceptNum, + UnitProjectAcceptOKNum = newtable.UnitProjectAcceptOKNum, + SubProjectAcceptNum = newtable.SubProjectAcceptNum, + SubProjectAcceptOKNum = newtable.SubProjectAcceptOKNum, + SubdivisionalWorksAcceptNum = newtable.SubdivisionalWorksAcceptNum, + SubdivisionalWorksAcceptOKNum = newtable.SubdivisionalWorksAcceptOKNum, State = newtable.State, CreateDate = newtable.CreateDate, CreateMan = newtable.CreateMan @@ -141,6 +167,7 @@ namespace BLL db.SubmitChanges(); } } + public static void UpdateCQMSData_CQMS(CQMSData_CQMS newtable) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) @@ -182,6 +209,25 @@ namespace BLL table.SubProjectNum = newtable.SubProjectNum; table.SubdivisionalWorksNum = newtable.SubdivisionalWorksNum; table.InspectionLotNum = newtable.InspectionLotNum; + table.EquipmentInspectionNum = newtable.EquipmentInspectionNum; + table.EquipmentInspectionQualifiedNum = newtable.EquipmentInspectionQualifiedNum; + table.MachineInspectionNum = newtable.MachineInspectionNum; + table.MachineInspectionQualifiedNum = newtable.MachineInspectionQualifiedNum; + table.PersonInspectionNum = newtable.PersonInspectionNum; + table.PersonInspectionQualifiedNum = newtable.PersonInspectionQualifiedNum; + table.MaterialInspectionNum = newtable.MaterialInspectionNum; + table.MaterialInspectionQualifiedNum = newtable.MaterialInspectionQualifiedNum; + table.ConstructSolutionNum = newtable.ConstructSolutionNum; + table.ConstructSolutionProjectApproveNum = newtable.ConstructSolutionProjectApproveNum; + table.ConstructSolutionUnitApproveNum = newtable.ConstructSolutionUnitApproveNum; + table.SpecialEquipmentQualityAssuranceSystemNum = newtable.SpecialEquipmentQualityAssuranceSystemNum; + table.DesignDetailsNum = newtable.DesignDetailsNum; + table.UnitProjectAcceptNum = newtable.UnitProjectAcceptNum; + table.UnitProjectAcceptOKNum = newtable.UnitProjectAcceptOKNum; + table.SubProjectAcceptNum = newtable.SubProjectAcceptNum; + table.SubProjectAcceptOKNum = newtable.SubProjectAcceptOKNum; + table.SubdivisionalWorksAcceptNum = newtable.SubdivisionalWorksAcceptNum; + table.SubdivisionalWorksAcceptOKNum = newtable.SubdivisionalWorksAcceptOKNum; table.State = newtable.State; table.CreateMan = newtable.CreateMan; table.CreateDate = newtable.CreateDate; @@ -203,6 +249,8 @@ namespace BLL } } + #endregion + public static CQMSData_CQMS GetCQMSData_CQMSById(string id) { var db = Funs.DB; @@ -255,6 +303,25 @@ namespace BLL item.SubProjectNum = model.SubProjectNum; item.SubdivisionalWorksNum = model.SubdivisionalWorksNum; item.InspectionLotNum = model.InspectionLotNum; + item.EquipmentInspectionNum = model.EquipmentInspectionNum; + item.EquipmentInspectionQualifiedNum = model.EquipmentInspectionQualifiedNum; + item.MachineInspectionNum = model.MachineInspectionNum; + item.MachineInspectionQualifiedNum = model.MachineInspectionQualifiedNum; + item.PersonInspectionNum = model.PersonInspectionNum; + item.PersonInspectionQualifiedNum = model.PersonInspectionQualifiedNum; + item.MaterialInspectionNum = model.MaterialInspectionNum; + item.MaterialInspectionQualifiedNum = model.MaterialInspectionQualifiedNum; + item.ConstructSolutionNum = model.ConstructSolutionNum; + item.ConstructSolutionProjectApproveNum = model.ConstructSolutionProjectApproveNum; + item.ConstructSolutionUnitApproveNum = model.ConstructSolutionUnitApproveNum; + item.SpecialEquipmentQualityAssuranceSystemNum = model.SpecialEquipmentQualityAssuranceSystemNum; + item.DesignDetailsNum = model.DesignDetailsNum; + item.UnitProjectAcceptNum = model.UnitProjectAcceptNum; + item.UnitProjectAcceptOKNum = model.UnitProjectAcceptOKNum; + item.SubProjectAcceptNum = model.SubProjectAcceptNum; + item.SubProjectAcceptOKNum = model.SubProjectAcceptOKNum; + item.SubdivisionalWorksAcceptNum = model.SubdivisionalWorksAcceptNum; + item.SubdivisionalWorksAcceptOKNum = model.SubdivisionalWorksAcceptOKNum; } var cqmsDataItems = new List(); @@ -263,34 +330,29 @@ namespace BLL return data; } - public static CQMSData GetTodayCQMSData_CQMS() + public static async Task GetTodayCQMSData_CQMS() { - // var q = GetTodayData(); - var data = new CQMSData(); - data = StatisticalData(); + // var data = new CQMSData(); + // data = StatisticalData(); - //if (q != null && q.State == Const.CNCEC_State_S) - //{ - // // data = GetDataByCQMSData_CQMS(q); - // data = StatisticalData(); - //} - //else - //{ - // data = StatisticalData(); - //} + // return data; + + var modelTask = StatisitcalDataAsync(); + var model = await modelTask; + CQMSData data = model; return data; } public static CQMSData_CQMS GetTodayData() { var q = (from x in Funs.DB.CQMSData_CQMS - where x.ReportDate < DateTime.Now.AddDays(1).Date && x.ReportDate >= DateTime.Now.Date - select x).FirstOrDefault(); + where x.ReportDate < DateTime.Now.AddDays(1).Date && x.ReportDate >= DateTime.Now.Date + select x).FirstOrDefault(); return q; } public static CQMSData_CQMS GetSubUnitCqmsDataByDate(string Unitid, DateTime? reportdate) { - + var result = new Model.CQMSData_CQMS(); if (reportdate == null) { @@ -300,7 +362,7 @@ namespace BLL var base_Unit = UnitService.GetUnitByUnitId(Unitid); var ProjectData = (from x in Funs.DB.Project_CQMSData_CQMS where x.ReportDate == reportdate && projectlist.Select(e => e.ProjectId).Contains(x.ProjectId) - select x).ToList(); + select x).ToList(); result = new CQMSData_CQMS { UnitId = Unitid, @@ -355,8 +417,8 @@ namespace BLL { var result = false; var q = (from x in Funs.DB.CQMSData_CQMS - where x.ReportDate >= dateTime.Date && x.ReportDate < dateTime.Date.AddDays(1).Date - select x).ToList(); + where x.ReportDate >= dateTime.Date && x.ReportDate < dateTime.Date.AddDays(1).Date + select x).ToList(); if (q.Count > 0) result = true; return result; } @@ -369,8 +431,8 @@ namespace BLL { var result = false; var q = (from x in Funs.DB.CQMSData_CQMS - where x.ReportDate < DateTime.Now.AddDays(1).Date && x.ReportDate >= DateTime.Now.Date - select x).ToList(); + where x.ReportDate < DateTime.Now.AddDays(1).Date && x.ReportDate >= DateTime.Now.Date + select x).ToList(); if (q.Count > 0) result = true; return result; } @@ -393,8 +455,8 @@ namespace BLL Project_CQMSDataService.StatisticalAllProjectData(); var ProjectData = (from x in Funs.DB.Project_CQMSData_CQMS - where x.ReportDate < DateTime.Now.AddDays(1).Date && x.ReportDate >= DateTime.Now.Date - select x).ToList(); + where x.ReportDate < DateTime.Now.AddDays(1).Date && x.ReportDate >= DateTime.Now.Date + select x).ToList(); var table = new CQMSData_CQMS { UnitId = thisUnitId, @@ -430,6 +492,25 @@ namespace BLL SubProjectNum = ProjectData.Sum(x => x.SubProjectNum), SubdivisionalWorksNum = ProjectData.Sum(x => x.SubdivisionalWorksNum), InspectionLotNum = ProjectData.Sum(x => x.InspectionLotNum), + EquipmentInspectionNum = ProjectData.Sum(x => x.EquipmentInspectionNum), + EquipmentInspectionQualifiedNum = ProjectData.Sum(x => x.EquipmentInspectionQualifiedNum), + MachineInspectionNum = ProjectData.Sum(x => x.MachineInspectionNum), + MachineInspectionQualifiedNum = ProjectData.Sum(x => x.MachineInspectionQualifiedNum), + PersonInspectionNum = ProjectData.Sum(x => x.PersonInspectionNum), + PersonInspectionQualifiedNum = ProjectData.Sum(x => x.PersonInspectionQualifiedNum), + MaterialInspectionNum = ProjectData.Sum(x => x.MaterialInspectionNum), + MaterialInspectionQualifiedNum = ProjectData.Sum(x => x.MaterialInspectionQualifiedNum), + ConstructSolutionNum = ProjectData.Sum(x => x.ConstructSolutionNum), + ConstructSolutionProjectApproveNum = ProjectData.Sum(x => x.ConstructSolutionProjectApproveNum), + ConstructSolutionUnitApproveNum = ProjectData.Sum(x => x.ConstructSolutionUnitApproveNum), + SpecialEquipmentQualityAssuranceSystemNum = ProjectData.Sum(x => x.SpecialEquipmentQualityAssuranceSystemNum), + DesignDetailsNum = ProjectData.Sum(x => x.DesignDetailsNum), + UnitProjectAcceptNum = ProjectData.Sum(x => x.UnitProjectAcceptNum), + UnitProjectAcceptOKNum = ProjectData.Sum(x => x.UnitProjectAcceptOKNum), + SubProjectAcceptNum = ProjectData.Sum(x => x.SubProjectAcceptNum), + SubProjectAcceptOKNum = ProjectData.Sum(x => x.SubProjectAcceptOKNum), + SubdivisionalWorksAcceptNum = ProjectData.Sum(x => x.SubdivisionalWorksAcceptNum), + SubdivisionalWorksAcceptOKNum = ProjectData.Sum(x => x.SubdivisionalWorksAcceptOKNum), CreateMan = Const.sysglyId, CreateDate = DateTime.Now }; @@ -451,6 +532,241 @@ namespace BLL return data; } + /// + /// 获取质量统计数据 + /// + public static async Task StatisitcalDataAsync() + { + var thisUnitId = string.Empty; + var thisUnit = CommonService.GetIsThisUnit(); + if (thisUnit != null) thisUnitId = thisUnit.UnitId; + var baseUnit = UnitService.GetUnitByUnitId(thisUnitId); + + // 并行执行异步方法 + var companyPersonNumTask = CQMSDataService.GetCompanyPersonNumAsync(); //获取企业总部人数 + var branchPersonNumTask = CQMSDataService.GetBranchPersonNumAsync(); //获取分支机构人数 + var projectPersonNumTask = CQMSDataService.GetProjectPersonNumAsync(); //获取项目专职人数 + var trainPersonNumTask = CQMSDataService.GetTrainPersonNumAsync(); //获取质量培训人次数 + var technicalDisclosePersonTask = CQMSDataService.GetTechnicalDisclosePersonNumAsync(); //获取技术交底人次数 + + var inspectionEquipmentTask = CQMSDataService.GetComprehensive_InspectionEquipmentAsync(); //获取设备报验 + var inspectionPersonTask = CQMSDataService.GetComprehensive_InspectionPersonAsync(); //获取人员报验 + var inspectionMachineTask = CQMSDataService.GetComprehensive_InspectionMachineAsync(); //获取机具报验 + var useNumTask = CQMSDataService.GetUseNumAsync(); //获取在用计量器具数 + var okNumTask = CQMSDataService.GetOkNumAsync(); //获取校准合格数 + + var singleProjectNumTask = CQMSDataService.GetSingleProjectNumAsync(); //获取单项工程个数 + var unitProjectNumTask = CQMSDataService.GetUnitProjectNumAsync(); //获取单位工程个数 + var subProjectNuTask = CQMSDataService.GetSubProjectNumAsync(); //获取分部工程个数 + var subdivisionalWorksNuTask = CQMSDataService.GetSubdivisionalWorksNumAsync(); //获取分项工程个数 + var inspectionLotNumTask = CQMSDataService.GetInspectionLotNumAsync(); //获取检验批个数 + var constructSolutionTask = CQMSDataService.GetConstructSolutionAsync(); //施工方案数量 + var cqmsProblemTask = CQMSDataService.GetCQMSProblemAsync(); //获取企业级、项目级质量问题 + + //质量验收数据 + var keyProcessNumTask = CQMSDataService.GetKeyProcessNumAsync(); //获取关键工序验收数 + var keyProcessOKNumTask = CQMSDataService.GetKeyProcessOkNumAsync(); //获取关键工序验收合格数 + var specialProcessNumTask = CQMSDataService.GetSpecialProcessNumAsync(); //获取特殊过程验收数 + var specialProcessOKNumTask = CQMSDataService.GetSpecialProcessOkNumAsync(); //获取特殊过程验收合格数 + var concealedWorksNumTask = CQMSDataService.GetConcealedWorksNumAsync(); //获取隐蔽工程验收数 + var concealedWorksOKNumTask = CQMSDataService.GetConcealedWorksOkNumAsync(); //获取隐蔽工程验收合格数 + + var unitProjectAcceptNumTask = CQMSDataService.GetUnitProjectAcceptNumAsync(); //获取单位工程验收数 + var unitProjectAcceptOKNumTask = CQMSDataService.GetUnitProjectAcceptOKNumAsync(); //获取单位工程验收合格数 + var subProjectAcceptNumTask = CQMSDataService.GetSubProjectAcceptNumAsync(); //获取分部工程验收数 + var subProjectAcceptOKNumTask = CQMSDataService.GetSubProjectAcceptOKNumAsync(); //获取分部工程验收合格数 + var subdivisionalWorksAcceptNumTask = CQMSDataService.GetSubdivisionalWorksAcceptNumAsync(); //获取分项工程验收数 + var subdivisionalWorksAcceptOKNumTask = CQMSDataService.GetSubdivisionalWorksAcceptOKNumAsync(); //获取分项工程验收合格数 + var materialInRecheckNumTask = CQMSDataService.GetMaterialInRecheckNumAsync(); //获取复核材料数 + var materialInRecheckOKNumTask = CQMSDataService.GetMaterialInRecheckOKNumAsync(); //获取复核材料合格数 + + // 等待所有异步方法执行完成 + await Task.WhenAll( + companyPersonNumTask, branchPersonNumTask, projectPersonNumTask, + trainPersonNumTask, technicalDisclosePersonTask, + inspectionEquipmentTask, inspectionPersonTask, inspectionMachineTask, + useNumTask, okNumTask, + singleProjectNumTask, unitProjectNumTask, subProjectNuTask, subdivisionalWorksNuTask, inspectionLotNumTask, + constructSolutionTask, + cqmsProblemTask, + keyProcessNumTask, keyProcessOKNumTask, specialProcessNumTask, specialProcessOKNumTask, concealedWorksNumTask, concealedWorksOKNumTask, + unitProjectAcceptNumTask, unitProjectAcceptOKNumTask, subProjectAcceptNumTask, subProjectAcceptOKNumTask, subdivisionalWorksAcceptNumTask, subdivisionalWorksAcceptOKNumTask, + materialInRecheckNumTask, materialInRecheckOKNumTask + ); + + // 统一获取异步方法的返回值 + var companyPersonNum = await companyPersonNumTask; + var branchPersonNum = await branchPersonNumTask; + var projectPersonNumList = await projectPersonNumTask; + var trainPersonNumList = await trainPersonNumTask; + var technicalDisclosePersonList = await technicalDisclosePersonTask; + + var inspectionEquipmentList = await inspectionEquipmentTask; + var inspectionPersonList = await inspectionPersonTask; + var inspectionMachineList = await inspectionMachineTask; + var useNum = await useNumTask; + var okNum = await okNumTask; + var singleProjectNum = await singleProjectNumTask; + var unitProjectNum = await unitProjectNumTask; + var subProjectNum = await subProjectNuTask; + var subdivisionalWorksNum = await subdivisionalWorksNuTask; + var inspectionLotNum = await inspectionLotNumTask; + + var constructSolutionList = await constructSolutionTask; + var cqmsProblemList = await cqmsProblemTask; + + var keyProcessNum = await keyProcessNumTask; + var keyProcessOKNum = await keyProcessOKNumTask; + var specialProcessNum = await specialProcessNumTask; + var specialProcessOKNum = await specialProcessOKNumTask; + var concealedWorksNum = await concealedWorksNumTask; + var concealedWorksOKNum = await concealedWorksOKNumTask; + + var unitProjectAcceptNum = await unitProjectAcceptNumTask; + var unitProjectAcceptOKNum = await unitProjectAcceptOKNumTask; + var subProjectAcceptNum = await subProjectAcceptNumTask; + var subProjectAcceptOKNum = await subProjectAcceptOKNumTask; + var subdivisionalWorksAcceptNum = await subdivisionalWorksAcceptNumTask; + var subdivisionalWorksAcceptOKNum = await subdivisionalWorksAcceptOKNumTask; + var materialInRecheckNum = await materialInRecheckNumTask; + var materialInRecheckOKNum = await materialInRecheckOKNumTask; + + // 构造结果对象 + var table = new CQMSData_CQMS + { + UnitId = thisUnitId, + CollCropCode = baseUnit.CollCropCode, + UnitName = baseUnit.UnitName, + ReportDate = DateTime.Now.Date, + CompanyPersonNum = companyPersonNum,// + BranchPersonNum = branchPersonNum,// + ProjectPersonNum = projectPersonNumList.Count(), + TrainPersonNum = trainPersonNumList.Count(), + TechnicalDisclosePersonNum = technicalDisclosePersonList.Sum(x => x.TrainPersonNum), + EquipmentInspectionNum = inspectionEquipmentList.Count(), + EquipmentInspectionQualifiedNum = inspectionEquipmentList.Where(x => x.IsCheckCertificate == true).Count(), + PersonInspectionNum = inspectionPersonList.Count(), + PersonInspectionQualifiedNum = inspectionPersonList.Where(x => x.IsOnSite.HasValue && x.IsOnSite == true).Count(), + MachineInspectionNum = inspectionMachineList.Count(), + MachineInspectionQualifiedNum = inspectionMachineList.Where(x => x.IsCheckOK.HasValue && x.IsCheckOK == true).Count(), + MaterialInspectionNum = 0, + MaterialInspectionQualifiedNum = 0, + UseNum = useNum.Count(), + OKNum = okNum.Count(), + SingleProjectNum = singleProjectNum.Count(), + UnitProjectNum = unitProjectNum.Count(), + SubProjectNum = subProjectNum.Count(), + SubdivisionalWorksNum = subdivisionalWorksNum.Count(), + InspectionLotNum = inspectionLotNum.Sum(x => x.Sum), + + ConstructSolutionNum = constructSolutionList.Count(), + ConstructSolutionProjectApproveNum = constructSolutionList.Where(x => x.State == "1").Count(), + ConstructSolutionUnitApproveNum = 0,// + SpecialEquipmentQualityAssuranceSystemNum = 0,// + DesignDetailsNum = technicalDisclosePersonList.Sum(x => x.TrainPersonNum), + + ProblemNum = cqmsProblemList.Count(), + ProblemCompletedNum = cqmsProblemList.Where(x => x.State == "7").Count(), + ProblemNotCompletedNum = cqmsProblemList.Where(x => x.State != "7").Count(), + + KeyProcessNum = keyProcessNum.Count(), + KeyProcessOKNum = keyProcessOKNum.Count(), + SpecialProcessNum = specialProcessNum.Count(), + SpecialProcessOKNum = specialProcessOKNum.Count(), + ConcealedWorksNum = concealedWorksNum.Count(), + ConcealedWorksOKNum = concealedWorksOKNum.Count(), + UnitProjectAcceptNum = unitProjectAcceptNum.Count(), + UnitProjectAcceptOKNum = unitProjectAcceptOKNum.Count(), + SubProjectAcceptNum = subProjectAcceptNum.Count(), + SubProjectAcceptOKNum = subProjectAcceptOKNum.Count(), + SubdivisionalWorksAcceptNum = subdivisionalWorksAcceptNum.Count(), + SubdivisionalWorksAcceptOKNum = subdivisionalWorksAcceptOKNum.Count(), + MaterialInRecheckNum = materialInRecheckNum.Count(), + MaterialInRecheckOKNum = materialInRecheckOKNum.Count() + }; + #region 添加项目统计数据 + + Project_CQMSDataService.DeleteProject_CQMSData_CQMByDate(DateTime.Now.Date); + foreach (var projectid in BeUnderConstructionList) + { + var projectCqmsData = new Project_CQMSData_CQMS + { + Id = SQLHelper.GetNewID(), + ProjectId = projectid, + UnitId = thisUnitId, + CollCropCode = baseUnit.CollCropCode, + UnitName = baseUnit.UnitName, + ReportDate = DateTime.Now.Date, + CompanyPersonNum = companyPersonNum,// + BranchPersonNum = branchPersonNum,// + ProjectPersonNum = projectPersonNumList.Count(x => x.ProjectId == projectid), + TrainPersonNum = trainPersonNumList.Count(x => x.ProjectId == projectid), + TechnicalDisclosePersonNum = technicalDisclosePersonList.Where(x => x.ProjectId == projectid).Sum(x => x.TrainPersonNum), + EquipmentInspectionNum = inspectionEquipmentList.Count(x => x.ProjectId == projectid), + EquipmentInspectionQualifiedNum = inspectionEquipmentList.Where(x => x.IsCheckCertificate == true && x.ProjectId == projectid).Count(), + PersonInspectionNum = inspectionPersonList.Count(x => x.ProjectId == projectid), + PersonInspectionQualifiedNum = inspectionPersonList.Where(x => x.IsOnSite.HasValue && x.IsOnSite == true && x.ProjectId == projectid).Count(), + MachineInspectionNum = inspectionMachineList.Count(x => x.ProjectId == projectid), + MachineInspectionQualifiedNum = inspectionMachineList.Where(x => x.IsCheckOK.HasValue && x.IsCheckOK == true && x.ProjectId == projectid).Count(), + MaterialInspectionNum = 0, + MaterialInspectionQualifiedNum = 0, + UseNum = useNum.Count(x => x.ProjectId == projectid), + OKNum = okNum.Count(x => x.ProjectId == projectid), + SingleProjectNum = singleProjectNum.Count(x => x.ProjectId == projectid), + UnitProjectNum = unitProjectNum.Count(x => x.ProjectId == projectid), + SubProjectNum = subProjectNum.Count(x => x.ProjectId == projectid), + SubdivisionalWorksNum = subdivisionalWorksNum.Count(x => x.ProjectId == projectid), + InspectionLotNum = inspectionLotNum.Where(x => x.ProjectId == projectid).Sum(x => x.Sum), + + ConstructSolutionNum = constructSolutionList.Count(x => x.ProjectId == projectid), + ConstructSolutionProjectApproveNum = constructSolutionList.Where(x => x.State == "1" && x.ProjectId == projectid).Count(), + ConstructSolutionUnitApproveNum = 0,// + SpecialEquipmentQualityAssuranceSystemNum = 0,// + DesignDetailsNum = technicalDisclosePersonList.Where(x => x.ProjectId == projectid).Sum(x => x.TrainPersonNum), + + ProblemNum = cqmsProblemList.Count(x => x.ProjectId == projectid), + ProblemCompletedNum = cqmsProblemList.Where(x => x.State == "7" && x.ProjectId == projectid).Count(), + ProblemNotCompletedNum = cqmsProblemList.Where(x => x.State != "7" && x.ProjectId == projectid).Count(), + + KeyProcessNum = keyProcessNum.Count(x => x.ProjectId == projectid), + KeyProcessOKNum = keyProcessOKNum.Count(x => x.ProjectId == projectid), + SpecialProcessNum = specialProcessNum.Count(x => x.ProjectId == projectid), + SpecialProcessOKNum = specialProcessOKNum.Count(x => x.ProjectId == projectid), + ConcealedWorksNum = concealedWorksNum.Count(x => x.ProjectId == projectid), + ConcealedWorksOKNum = concealedWorksOKNum.Count(x => x.ProjectId == projectid), + UnitProjectAcceptNum = unitProjectAcceptNum.Count(x => x.ProjectId == projectid), + UnitProjectAcceptOKNum = unitProjectAcceptOKNum.Count(x => x.ProjectId == projectid), + SubProjectAcceptNum = subProjectAcceptNum.Count(x => x.ProjectId == projectid), + SubProjectAcceptOKNum = subProjectAcceptOKNum.Count(x => x.ProjectId == projectid), + SubdivisionalWorksAcceptNum = subdivisionalWorksAcceptNum.Count(x => x.ProjectId == projectid), + SubdivisionalWorksAcceptOKNum = subdivisionalWorksAcceptOKNum.Count(x => x.ProjectId == projectid), + MaterialInRecheckNum = materialInRecheckNum.Count(x => x.ProjectId == projectid), + MaterialInRecheckOKNum = materialInRecheckOKNum.Count(x => x.ProjectId == projectid) + }; + Project_CQMSDataService.AddProject_CQMSData_CQMS(projectCqmsData); + } + + #endregion + + + if (IsReportByToday()) + { + table.Id = GetTodayData().Id; + table.State = Const.CNCEC_State_1; + UpdateCQMSData_CQMS(table); + } + else + { + table.Id = SQLHelper.GetNewID(); + table.State = Const.CNCEC_State_0; + AddCQMSData_CQMS(table); + } + var data = new CQMSData(); + data = GetDataByCQMSData_CQMS(table); + return data; + + } + public static CQMSData GetDataByCQMSData_CQMS(CQMSData_CQMS table) { var data = new CQMSData(); @@ -494,13 +810,31 @@ namespace BLL item.SubProjectNum = table.SubProjectNum; item.SubdivisionalWorksNum = table.SubdivisionalWorksNum; item.InspectionLotNum = table.InspectionLotNum; + item.EquipmentInspectionNum = table.EquipmentInspectionNum; + item.EquipmentInspectionQualifiedNum = table.EquipmentInspectionQualifiedNum; + item.MachineInspectionNum = table.MachineInspectionNum; + item.MachineInspectionQualifiedNum = table.MachineInspectionQualifiedNum; + item.PersonInspectionNum = table.PersonInspectionNum; + item.PersonInspectionQualifiedNum = table.PersonInspectionQualifiedNum; + item.MaterialInspectionNum = table.MaterialInspectionNum; + item.MaterialInspectionQualifiedNum = table.MaterialInspectionQualifiedNum; + item.ConstructSolutionNum = table.ConstructSolutionNum; + item.ConstructSolutionProjectApproveNum = table.ConstructSolutionProjectApproveNum; + item.ConstructSolutionUnitApproveNum = table.ConstructSolutionUnitApproveNum; + item.SpecialEquipmentQualityAssuranceSystemNum = table.SpecialEquipmentQualityAssuranceSystemNum; + item.DesignDetailsNum = table.DesignDetailsNum; + item.UnitProjectAcceptNum = table.UnitProjectAcceptNum; + item.UnitProjectAcceptOKNum = table.UnitProjectAcceptOKNum; + item.SubProjectAcceptNum = table.SubProjectAcceptNum; + item.SubProjectAcceptOKNum = table.SubProjectAcceptOKNum; + item.SubdivisionalWorksAcceptNum = table.SubdivisionalWorksAcceptNum; + item.SubdivisionalWorksAcceptOKNum = table.SubdivisionalWorksAcceptOKNum; var cqmsDataItems = new List(); cqmsDataItems.Add(item); data.CQMSDataItems = cqmsDataItems; return data; } - /// /// 获取企业总部人数 /// @@ -511,12 +845,21 @@ namespace BLL var thisUnit = CommonService.GetIsThisUnit(); if (thisUnit != null) unitId = thisUnit.UnitId; var result = (from x in Funs.DB.Person_Persons - join y in Funs.DB.Base_WorkPost on x.WorkPostId equals y.WorkPostId - where x.IsPost == true && y.IsCQMS == true && x.UnitId == unitId - select x).Count(); + join y in Funs.DB.Base_WorkPost on x.WorkPostId equals y.WorkPostId + where x.IsPost == true && y.IsCQMS == true && x.UnitId == unitId + select x).Count(); return result; } + /// + /// 获取企业总部人数(异步) + /// + /// + public static async Task GetCompanyPersonNumAsync() + { + return await Task.Run(GetCompanyPersonNum); + } + /// /// 获取分支机构人数 /// @@ -528,9 +871,865 @@ namespace BLL if (thisUnit != null) unitId = thisUnit.UnitId; var result = (from x in Funs.DB.Person_Persons join y in Funs.DB.Base_WorkPost on x.WorkPostId equals y.WorkPostId - where x.IsPost == true && y.IsCQMS == true && x.UnitId != unitId - select x).Count(); + where x.IsPost == true && y.IsCQMS == true && x.UnitId != unitId + select x).Count(); return result; } + + /// + /// 获取分支机构人数(异步) + /// + /// + public static async Task GetBranchPersonNumAsync() + { + return await Task.Run(GetBranchPersonNum); + } + + /// + /// 获取项目专职人数 + /// + /// + public static IEnumerable GetProjectPersonNum() + { + var result = (from x in Funs.DB.SitePerson_Person + join y in Funs.DB.Base_WorkPost on x.WorkPostId equals y.WorkPostId + join z in Funs.DB.Person_Persons on x.PersonId equals z.PersonId + join p in Funs.DB.Base_Project on x.ProjectId equals p.ProjectId into pGroup + from p in pGroup.DefaultIfEmpty() + join u in Funs.DB.Base_Unit on x.UnitId equals u.UnitId into uGroup + from u in uGroup.DefaultIfEmpty() + where BeUnderConstructionList.Contains(p.ProjectId) && y.IsCQMS == true + select new Model.OfSafetySupervisorsOutput + { + ProjectId = x.ProjectId, + ProjectName = p.ProjectName, + UnitId = u.UnitId, + UnitName = u.UnitName, + Name = x.PersonName, + Sex = z.Sex == null ? "" : (z.Sex == "1" ? "男" : "女"), + IdentityCard = x.IdentityCard, + WorkPostName = y.WorkPostName == null ? "" : y.WorkPostName, + Phone = z.Telephone + }).ToList(); + result = result + .GroupBy(x => x.IdentityCard) + .Select(g => g.FirstOrDefault()) + .ToList(); + return result; + } + /// + /// 获取项目专职人数(异步) + /// + /// + public static async Task> GetProjectPersonNumAsync() + { + return await Task.Run(GetProjectPersonNum); + } + + /// + /// 获取质量培训人次数 + /// + /// + public static List GetTrainPersonNum() + { + var result = (from x in Funs.DB.Comprehensive_InspectionPerson + join p in Funs.DB.Base_Project on x.ProjectId equals p.ProjectId into pGroup + from p in pGroup.DefaultIfEmpty() + join u in Funs.DB.Base_Unit on x.UnitId equals u.UnitId into uGroup + from u in uGroup.DefaultIfEmpty() + join y in Funs.DB.Person_Persons on x.InspectionPersonId equals y.PersonId into yGroup + from y in yGroup.DefaultIfEmpty() + join m in Funs.DB.Base_WorkPost on y.WorkPostId equals m.WorkPostId into mGroup + from m in mGroup.DefaultIfEmpty() + where BeUnderConstructionList.Contains(p.ProjectId) && x.IsTrain == true && x.CompileDate > Const.DtmarkTime + select new Model.OfSafetySupervisorsOutput + { + ProjectId = x.ProjectId, + ProjectName = p.ProjectName, + UnitId = u.UnitId, + UnitName = u.UnitName, + Name = x.PersonName, + Sex = y.Sex == null ? "" : (y.Sex == "1" ? "男" : "女"), + IdentityCard = y.IdentityCard, + WorkPostName = m.WorkPostName == null ? "" : m.WorkPostName, + Phone = y.Telephone + }).ToList(); + return result; + } + /// + /// 获取质量培训人次数(异步) + /// + /// + public static async Task> GetTrainPersonNumAsync() + { + return await Task.Run(GetTrainPersonNum); + } + + /// + /// 获取技术交底人次数 + /// + /// + public static int GetTechnicalDisclosePersonNum() + { + var result = (from x in Funs.DB.Comprehensive_DesignDetails + where BeUnderConstructionList.Contains(x.ProjectId) && x.CompileDate > Const.DtmarkTime + select x.JoinPersonNum).ToList().Sum(x => x.Value); + return result; + } + + /// + /// 获取技术交底人次数 + /// + /// + public static List GetTechnicalDisclosePerson() + { + var result = (from x in Funs.DB.Comprehensive_DesignDetails + join p in Funs.DB.Base_Project on x.ProjectId equals p.ProjectId into pGroup + from p in pGroup.DefaultIfEmpty() + where BeUnderConstructionList.Contains(p.ProjectId) && x.CompileDate > Const.DtmarkTime + select new Model.EduTrainOutput() + { + ProjectId = x.ProjectId, + ProjectName = p.ProjectName, + UnitName = "", + Id = x.DesignDetailsId, + TrainTitle = "", + TrainStartDate = null, + TrainEndDate = null, + TrainPersonNum = x.JoinPersonNum ?? 0, + }).ToList(); + return result; + } + + /// + /// 获取技术交底人次数(异步) + /// + /// + public static async Task> GetTechnicalDisclosePersonNumAsync() + { + return await Task.Run(GetTechnicalDisclosePerson); + } + + /// + /// 获取设备报验 + /// + /// + public static List GetComprehensive_InspectionEquipment() + { + var result = (from x in Funs.DB.Check_CheckEquipment + where BeUnderConstructionList.Contains(x.ProjectId) && x.CompileDate > Const.DtmarkTime + select x).ToList(); + return result; + } + + /// + /// 获取设备报验(异步) + /// + /// + public static async Task> GetComprehensive_InspectionEquipmentAsync() + { + return await Task.Run(GetComprehensive_InspectionEquipment); + } + + /// + /// 获取人员报验 + /// + /// + public static List GetComprehensive_InspectionPerson() + { + var result = (from x in Funs.DB.Comprehensive_InspectionPerson + where BeUnderConstructionList.Contains(x.ProjectId) && x.CompileDate > Const.DtmarkTime + select x).ToList(); + return result; + } + + /// + /// 获取人员报验(异步) + /// + /// + public static async Task> GetComprehensive_InspectionPersonAsync() + { + return await Task.Run(GetComprehensive_InspectionPerson); + } + + /// + /// 获取机具报验 + /// + /// + public static List GetComprehensive_InspectionMachine() + { + var result = (from x in Funs.DB.Comprehensive_InspectionMachine + where BeUnderConstructionList.Contains(x.ProjectId) && x.CompileDate > Const.DtmarkTime + select x).ToList(); + return result; + } + + /// + /// 获取机具报验(异步) + /// + /// + public static async Task> GetComprehensive_InspectionMachineAsync() + { + return await Task.Run(GetComprehensive_InspectionMachine); + } + + /// + /// 获取在用计量器具数 + /// + /// + public static List GetUseNum() + { + var result = (from x in Funs.DB.Comprehensive_InspectionMachine + where BeUnderConstructionList.Contains(x.ProjectId) && x.IsOnSite == true && x.InspectionType.Contains("计量") && x.CompileDate > Const.DtmarkTime + select x).ToList(); + return result; + } + + /// + /// 获取在用计量器具数(异步) + /// + /// + public static async Task> GetUseNumAsync() + { + return await Task.Run(GetUseNum); + } + + /// + /// 获取校准合格数 + /// + /// + public static List GetOkNum() + { + var result = (from x in Funs.DB.Comprehensive_InspectionMachine + where BeUnderConstructionList.Contains(x.ProjectId) && x.IsOnSite == true && x.InspectionType.Contains("计量") && x.IsCheckOK == true + && x.CompileDate > Const.DtmarkTime + select x).ToList(); + return result; + } + + /// + /// 获取校准合格数(异步) + /// + /// + public static async Task> GetOkNumAsync() + { + return await Task.Run(GetOkNum); + } + + /// + /// 获取单项工程个数 + /// + /// + public static List GetSingleProjectNum() + { + var result = (from x in Funs.DB.ProjectData_MainItem + where BeUnderConstructionList.Contains(x.ProjectId) + select x).ToList(); + return result; + } + + /// + /// 获取单项工程个数(异步) + /// + /// + public static async Task> GetSingleProjectNumAsync() + { + return await Task.Run(GetSingleProjectNum); + } + + /// + /// 获取单位工程个数 + /// + /// + public static List GetUnitProjectNum() + { + var result = (from x in Funs.DB.WBS_UnitWork + where BeUnderConstructionList.Contains(x.ProjectId) + select x).ToList(); + return result; + } + + /// + /// 获取单位工程个数(异步) + /// + /// + public static async Task> GetUnitProjectNumAsync() + { + return await Task.Run(GetUnitProjectNum); + } + + /// + /// 获取分部工程个数 + /// + /// + public static List GetSubProjectNum() + { + var result = (from x in Funs.DB.WBS_DivisionProject + where BeUnderConstructionList.Contains(x.ProjectId) && x.SubItemType == "1" && x.IsSelected == true + select x).ToList(); + return result; + } + + /// + /// 获取分部工程个数(异步) + /// + /// + public static async Task> GetSubProjectNumAsync() + { + return await Task.Run(GetSubProjectNum); + } + + /// + /// 获取分项工程个数 + /// + /// + public static List GetSubdivisionalWorksNum() + { + var result = (from x in Funs.DB.WBS_DivisionProject + where BeUnderConstructionList.Contains(x.ProjectId) && x.SubItemType == "3" && x.IsSelected == true + select x).ToList(); + return result; + } + + /// + /// 获取分项工程个数(异步) + /// + /// + public static async Task> GetSubdivisionalWorksNumAsync() + { + return await Task.Run(GetSubdivisionalWorksNum); + } + + /// + /// 获取检验批个数 + /// + /// + public static List GetInspectionLotNum() + { + var result = (from x in Funs.DB.WBS_BreakdownProject + where BeUnderConstructionList.Contains(x.ProjectId) && x.IsSelected == true + group x by x.ProjectId into g + select new Model.WBSBreakdownProjectOutput() + { + ProjectId = g.Key, + Sum = g.Count(), + }).ToList() ; + return result; + } + + /// + /// 获取检验批个数(异步) + /// + /// + public static async Task> GetInspectionLotNumAsync() + { + return await Task.Run(GetInspectionLotNum); + } + + + /// + /// 施工方案数量 + /// + /// + public static List GetConstructSolution() + { + var result = (from x in Funs.DB.Solution_CQMSConstructSolution + where BeUnderConstructionList.Contains(x.ProjectId) + select x).ToList(); + return result; + } + + /// + /// 施工方案数量(异步) + /// + /// + public static async Task> GetConstructSolutionAsync() + { + return await Task.Run(GetConstructSolution); + } + + /// + /// 获取质量问题 + /// + /// + public static List GetCQMSProblem() + { + var result = (from x in Funs.DB.Check_CheckControl + where BeUnderConstructionList.Contains(x.ProjectId) && x.CheckDate > Const.DtmarkTime + select x).ToList(); + return result; + } + + /// + /// 获取质量问题(异步) + /// + /// + public static async Task> GetCQMSProblemAsync() + { + return await Task.Run(GetCQMSProblem); + } + + + /// + /// 获取分支机构巡检质量问题 + /// + /// + public static List GetBranchCQMSProblem() + { + var result = (from x in Funs.DB.View_DCGL_CheckRectifyListFromSUB + where BeUnderConstructionList.Contains(x.ProjectId) && x.ProblemTypes == "1" && x.CheckDate > Const.DtmarkTime + select x).ToList(); + return result; + } + + /// + /// 获取分支机构巡检质量问题(异步) + /// + /// + public static async Task> GetBranchCQMSProblemAsync() + { + return await Task.Run(GetBranchCQMSProblem); + } + + #region 质量验收数据 + + /// + /// 获取关键工序验收数 + /// + /// + public static List GetKeyProcessNum() + { + var result = (from x in Funs.DB.ProcessControl_InspectionManagementDetail + join y in Funs.DB.WBS_BreakdownProject on x.ControlPointType equals y.BreakdownProjectId + where BeUnderConstructionList.Contains(y.ProjectId) && y.CheckAcceptType == "1" && x.CreateDate > Const.DtmarkTime + select new Model.InspectionManagementOutput() + { + ProjectId = y.ProjectId, + //ProjectName = p.ProjectName, + //UnitName = UnitService.getUnitNamesUnitIds(x.UnitIds), + Id = x.InspectionDetailId, + BreakdownCode = y.BreakdownCode, + BreakdownName = y.BreakdownName, + Basis = y.Basis, + CheckPoints = y.CheckPoints, + }).ToList(); + return result; + } + /// + /// 获取关键工序验收数(异步) + /// + /// + public static async Task> GetKeyProcessNumAsync() + { + return await Task.Run(GetKeyProcessNum); + } + + /// + /// 获取关键工序验收合格数 + /// + /// + public static List GetKeyProcessOkNum() + { + var result = (from x in Funs.DB.ProcessControl_InspectionManagementDetail + join y in Funs.DB.WBS_BreakdownProject on x.ControlPointType equals y.BreakdownProjectId + join z in Funs.DB.ProcessControl_InspectionManagement on x.InspectionId equals z.InspectionId + where BeUnderConstructionList.Contains(y.ProjectId) && y.CheckAcceptType == "1" && z.IsOnceQualified == true && x.CreateDate > Const.DtmarkTime + select new Model.InspectionManagementOutput() + { + ProjectId = y.ProjectId, + //ProjectName = p.ProjectName, + //UnitName = UnitService.getUnitNamesUnitIds(x.UnitIds), + Id = x.InspectionDetailId, + BreakdownCode = y.BreakdownCode, + BreakdownName = y.BreakdownName, + Basis = y.Basis, + CheckPoints = y.CheckPoints, + }).ToList(); + return result; + } + /// + /// 获取关键工序验收合格数(异步) + /// + /// + public static async Task> GetKeyProcessOkNumAsync() + { + return await Task.Run(GetKeyProcessOkNum); + } + + /// + /// 获取特殊过程验收数 + /// + /// + public static List GetSpecialProcessNum() + { + var result = (from x in Funs.DB.ProcessControl_InspectionManagementDetail + join y in Funs.DB.WBS_BreakdownProject on x.ControlPointType equals y.BreakdownProjectId + where BeUnderConstructionList.Contains(y.ProjectId) && y.CheckAcceptType == "2" && x.CreateDate > Const.DtmarkTime + select new Model.InspectionManagementOutput() + { + ProjectId = y.ProjectId, + //ProjectName = p.ProjectName, + //UnitName = UnitService.getUnitNamesUnitIds(x.UnitIds), + Id = x.InspectionDetailId, + BreakdownCode = y.BreakdownCode, + BreakdownName = y.BreakdownName, + Basis = y.Basis, + CheckPoints = y.CheckPoints, + }).ToList(); + return result; + } + /// + /// 获取特殊过程验收数(异步) + /// + /// + public static async Task> GetSpecialProcessNumAsync() + { + return await Task.Run(GetSpecialProcessNum); + } + /// + /// 获取特殊过程验收合格数 + /// + /// + public static List GetSpecialProcessOkNum() + { + var result = (from x in Funs.DB.ProcessControl_InspectionManagementDetail + join y in Funs.DB.WBS_BreakdownProject on x.ControlPointType equals y.BreakdownProjectId + join z in Funs.DB.ProcessControl_InspectionManagement on x.InspectionId equals z.InspectionId + where BeUnderConstructionList.Contains(y.ProjectId) && y.CheckAcceptType == "2" && z.IsOnceQualified == true && x.CreateDate > Const.DtmarkTime + select new Model.InspectionManagementOutput() + { + ProjectId = y.ProjectId, + //ProjectName = p.ProjectName, + //UnitName = UnitService.getUnitNamesUnitIds(x.UnitIds), + Id = x.InspectionDetailId, + BreakdownCode = y.BreakdownCode, + BreakdownName = y.BreakdownName, + Basis = y.Basis, + CheckPoints = y.CheckPoints, + }).ToList(); + return result; + } + /// + /// 获取特殊过程验收合格数(异步) + /// + /// + public static async Task> GetSpecialProcessOkNumAsync() + { + return await Task.Run(GetSpecialProcessOkNum); + } + /// + /// 获取隐蔽工程验收数 + /// + /// + public static List GetConcealedWorksNum() + { + var result = (from x in Funs.DB.ProcessControl_InspectionManagementDetail + join y in Funs.DB.WBS_BreakdownProject on x.ControlPointType equals y.BreakdownProjectId + where BeUnderConstructionList.Contains(y.ProjectId) && y.CheckAcceptType == "3" && x.CreateDate > Const.DtmarkTime + select new Model.InspectionManagementOutput() + { + ProjectId = y.ProjectId, + //ProjectName = p.ProjectName, + //UnitName = UnitService.getUnitNamesUnitIds(x.UnitIds), + Id = x.InspectionDetailId, + BreakdownCode = y.BreakdownCode, + BreakdownName = y.BreakdownName, + Basis = y.Basis, + CheckPoints = y.CheckPoints, + }).ToList(); + return result; + } + /// + /// 获取隐蔽工程验收数(异步) + /// + /// + public static async Task> GetConcealedWorksNumAsync() + { + return await Task.Run(GetConcealedWorksNum); + } + /// + /// 获取隐蔽工程验收合格数 + /// + /// + public static List GetConcealedWorksOkNum() + { + var result = (from x in Funs.DB.ProcessControl_InspectionManagementDetail + join y in Funs.DB.WBS_BreakdownProject on x.ControlPointType equals y.BreakdownProjectId + join z in Funs.DB.ProcessControl_InspectionManagement on x.InspectionId equals z.InspectionId + where BeUnderConstructionList.Contains(y.ProjectId) && y.CheckAcceptType == "3" && z.IsOnceQualified == true && x.CreateDate > Const.DtmarkTime + select new Model.InspectionManagementOutput() + { + ProjectId = y.ProjectId, + //ProjectName = p.ProjectName, + //UnitName = UnitService.getUnitNamesUnitIds(x.UnitIds), + Id = x.InspectionDetailId, + BreakdownCode = y.BreakdownCode, + BreakdownName = y.BreakdownName, + Basis = y.Basis, + CheckPoints = y.CheckPoints, + }).ToList(); + return result; + } + /// + /// 获取隐蔽工程验收合格数(异步) + /// + /// + public static async Task> GetConcealedWorksOkNumAsync() + { + return await Task.Run(GetConcealedWorksOkNum); + } + + /// + /// 获取单位工程验收数 + /// + /// + public static List GetUnitProjectAcceptNum() + { + var result = (from x in Funs.DB.ProcessControl_InspectionManagementDetail + join y in Funs.DB.WBS_BreakdownProject on x.ControlPointType equals y.BreakdownProjectId + join z in Funs.DB.ProcessControl_InspectionManagement on x.InspectionId equals z.InspectionId + where BeUnderConstructionList.Contains(y.ProjectId) && y.CheckAcceptType == "4" && x.CreateDate > Const.DtmarkTime + select new Model.InspectionManagementOutput() + { + ProjectId = y.ProjectId, + //ProjectName = p.ProjectName, + //UnitName = UnitService.getUnitNamesUnitIds(x.UnitIds), + Id = x.InspectionDetailId, + BreakdownCode = y.BreakdownCode, + BreakdownName = y.BreakdownName, + Basis = y.Basis, + CheckPoints = y.CheckPoints, + }).ToList(); + return result; + } + /// + /// 获取单位工程验收数(异步) + /// + /// + public static async Task> GetUnitProjectAcceptNumAsync() + { + return await Task.Run(GetUnitProjectAcceptNum); + } + /// + /// 获取单位工程验收合格数 + /// + /// + public static List GetUnitProjectAcceptOKNum() + { + var result = (from x in Funs.DB.ProcessControl_InspectionManagementDetail + join y in Funs.DB.WBS_BreakdownProject on x.ControlPointType equals y.BreakdownProjectId + join z in Funs.DB.ProcessControl_InspectionManagement on x.InspectionId equals z.InspectionId + where BeUnderConstructionList.Contains(y.ProjectId) && y.CheckAcceptType == "4" && z.IsOnceQualified == true && x.CreateDate > Const.DtmarkTime + select new Model.InspectionManagementOutput() + { + ProjectId = y.ProjectId, + //ProjectName = p.ProjectName, + //UnitName = UnitService.getUnitNamesUnitIds(x.UnitIds), + Id = x.InspectionDetailId, + BreakdownCode = y.BreakdownCode, + BreakdownName = y.BreakdownName, + Basis = y.Basis, + CheckPoints = y.CheckPoints, + }).ToList(); + return result; + } + /// + /// 获取单位工程验收合格数(异步) + /// + /// + public static async Task> GetUnitProjectAcceptOKNumAsync() + { + return await Task.Run(GetUnitProjectAcceptOKNum); + } + + + /// 获取材料进场复验数 + /// + /// + public static List GetMaterialInRecheckNum() + { + var result = (from x in Funs.DB.ProcessControl_InspectionManagementDetail + join y in Funs.DB.WBS_BreakdownProject on x.ControlPointType equals y.BreakdownProjectId + join z in Funs.DB.ProcessControl_InspectionManagement on x.InspectionId equals z.InspectionId + where BeUnderConstructionList.Contains(y.ProjectId) && y.CheckAcceptType == "5" && x.CreateDate > Const.DtmarkTime + select new Model.InspectionManagementOutput() + { + ProjectId = y.ProjectId, + //ProjectName = p.ProjectName, + //UnitName = UnitService.getUnitNamesUnitIds(x.UnitIds), + Id = x.InspectionDetailId, + BreakdownCode = y.BreakdownCode, + BreakdownName = y.BreakdownName, + Basis = y.Basis, + CheckPoints = y.CheckPoints, + }).ToList(); + return result; + } + /// + /// 获取材料进场复验数(异步) + /// + /// + public static async Task> GetMaterialInRecheckNumAsync() + { + return await Task.Run(GetMaterialInRecheckNum); + } + /// + /// 获取材料进场复验数合格数 + /// + /// + public static List GetMaterialInRecheckOKNum() + { + var result = (from x in Funs.DB.ProcessControl_InspectionManagementDetail + join y in Funs.DB.WBS_BreakdownProject on x.ControlPointType equals y.BreakdownProjectId + join z in Funs.DB.ProcessControl_InspectionManagement on x.InspectionId equals z.InspectionId + where BeUnderConstructionList.Contains(y.ProjectId) && y.CheckAcceptType == "5" && z.IsOnceQualified == true && x.CreateDate > Const.DtmarkTime + select new Model.InspectionManagementOutput() + { + ProjectId = y.ProjectId, + //ProjectName = p.ProjectName, + //UnitName = UnitService.getUnitNamesUnitIds(x.UnitIds), + Id = x.InspectionDetailId, + BreakdownCode = y.BreakdownCode, + BreakdownName = y.BreakdownName, + Basis = y.Basis, + CheckPoints = y.CheckPoints, + }).ToList(); + return result; + } + /// + /// 获取材料进场复验数合格数(异步) + /// + /// + public static async Task> GetMaterialInRecheckOKNumAsync() + { + return await Task.Run(GetMaterialInRecheckOKNum); + } + + /// + /// 获取分部工程验收数 + /// + /// + public static List GetSubProjectAcceptNum() + { + var result = (from x in Funs.DB.ProcessControl_InspectionManagementDetail + join y in Funs.DB.WBS_BreakdownProject on x.ControlPointType equals y.BreakdownProjectId + join z in Funs.DB.ProcessControl_InspectionManagement on x.InspectionId equals z.InspectionId + where BeUnderConstructionList.Contains(y.ProjectId) && y.CheckAcceptType == "5" && x.CreateDate > Const.DtmarkTime + select new Model.InspectionManagementOutput() + { + ProjectId = y.ProjectId, + //ProjectName = p.ProjectName, + //UnitName = UnitService.getUnitNamesUnitIds(x.UnitIds), + Id = x.InspectionDetailId, + BreakdownCode = y.BreakdownCode, + BreakdownName = y.BreakdownName, + Basis = y.Basis, + CheckPoints = y.CheckPoints, + }).ToList(); + return result; + } + /// + /// 获取分部工程验收数(异步) + /// + /// + public static async Task> GetSubProjectAcceptNumAsync() + { + return await Task.Run(GetSubProjectAcceptNum); + } + /// + /// 获取分部工程验收合格数 + /// + /// + public static List GetSubProjectAcceptOKNum() + { + var result = (from x in Funs.DB.ProcessControl_InspectionManagementDetail + join y in Funs.DB.WBS_BreakdownProject on x.ControlPointType equals y.BreakdownProjectId + join z in Funs.DB.ProcessControl_InspectionManagement on x.InspectionId equals z.InspectionId + where BeUnderConstructionList.Contains(y.ProjectId) && y.CheckAcceptType == "5" && z.IsOnceQualified == true && x.CreateDate > Const.DtmarkTime + select new Model.InspectionManagementOutput() + { + ProjectId = y.ProjectId, + //ProjectName = p.ProjectName, + //UnitName = UnitService.getUnitNamesUnitIds(x.UnitIds), + Id = x.InspectionDetailId, + BreakdownCode = y.BreakdownCode, + BreakdownName = y.BreakdownName, + Basis = y.Basis, + CheckPoints = y.CheckPoints, + }).ToList(); + return result; + } + /// + /// 获取分部工程验收合格数(异步) + /// + /// + public static async Task> GetSubProjectAcceptOKNumAsync() + { + return await Task.Run(GetSubProjectAcceptOKNum); + } + /// + /// 获取分项工程验收数 + /// + /// + public static List GetSubdivisionalWorksAcceptNum() + { + var result = (from x in Funs.DB.ProcessControl_InspectionManagementDetail + join y in Funs.DB.WBS_BreakdownProject on x.ControlPointType equals y.BreakdownProjectId + join z in Funs.DB.ProcessControl_InspectionManagement on x.InspectionId equals z.InspectionId + where BeUnderConstructionList.Contains(y.ProjectId) && y.CheckAcceptType == "6" && x.CreateDate > Const.DtmarkTime + select new Model.InspectionManagementOutput() + { + ProjectId = y.ProjectId, + //ProjectName = p.ProjectName, + //UnitName = UnitService.getUnitNamesUnitIds(x.UnitIds), + Id = x.InspectionDetailId, + BreakdownCode = y.BreakdownCode, + BreakdownName = y.BreakdownName, + Basis = y.Basis, + CheckPoints = y.CheckPoints, + }).ToList(); + return result; + } + /// + /// 获取分项工程验收数(异步) + /// + /// + public static async Task> GetSubdivisionalWorksAcceptNumAsync() + { + return await Task.Run(GetSubdivisionalWorksAcceptNum); + } + /// + /// 获取分项工程验收合格数 + /// + /// + public static List GetSubdivisionalWorksAcceptOKNum() + { + var result = (from x in Funs.DB.ProcessControl_InspectionManagementDetail + join y in Funs.DB.WBS_BreakdownProject on x.ControlPointType equals y.BreakdownProjectId + join z in Funs.DB.ProcessControl_InspectionManagement on x.InspectionId equals z.InspectionId + where BeUnderConstructionList.Contains(y.ProjectId) && y.CheckAcceptType == "6" && z.IsOnceQualified == true && x.CreateDate > Const.DtmarkTime + select new Model.InspectionManagementOutput() + { + ProjectId = y.ProjectId, + //ProjectName = p.ProjectName, + //UnitName = UnitService.getUnitNamesUnitIds(x.UnitIds), + Id = x.InspectionDetailId, + BreakdownCode = y.BreakdownCode, + BreakdownName = y.BreakdownName, + Basis = y.Basis, + CheckPoints = y.CheckPoints, + }).ToList(); + return result; + } + /// + /// 获取分项工程验收合格数(异步) + /// + /// + public static async Task> GetSubdivisionalWorksAcceptOKNumAsync() + { + return await Task.Run(GetSubdivisionalWorksAcceptOKNum); + } + #endregion + } } \ No newline at end of file diff --git a/SGGL/BLL/ZHGL/DataSync/HJGLData_HJGLService.cs b/SGGL/BLL/ZHGL/DataSync/HJGLData_HJGLService.cs index f164cb3f..fa18ff60 100644 --- a/SGGL/BLL/ZHGL/DataSync/HJGLData_HJGLService.cs +++ b/SGGL/BLL/ZHGL/DataSync/HJGLData_HJGLService.cs @@ -1,4 +1,4 @@ -using FineUIPro; +using FineUIPro; using Model; using Newtonsoft.Json; using System; @@ -6,13 +6,16 @@ using System.Collections; using System.Collections.Generic; using System.Linq; using Newtonsoft.Json.Linq; +using Model; using System.Net.PeerToPeer; +using System.Threading.Tasks; namespace BLL { public static class HJGLData_HJGLService { public static SGGLDB db = Funs.DB; + public static List BeUnderConstructionList = ProjectService.GetProjectWorkList().Select(x => x.ProjectId).ToList(); #region 获取列表 @@ -49,22 +52,22 @@ namespace BLL if (count == 0) return null; // q = SortConditionHelper.SortingAndPaging(q, Grid1.SortField, Grid1.SortDirection, Grid1.PageIndex, Grid1.PageSize); return from x in q - select new - { - x.Id, - x.UnitId, - x.CollCropCode, - x.UnitName, - x.ReportDate, - x.WelderNum, - x.TotalDineNum, - x.CompleteDineNum, - x.TotalFilmNum, - x.OKFilmNum, - x.State, - x.CreateDate, - x.CreateMan - }; + select new + { + x.Id, + x.UnitId, + x.CollCropCode, + x.UnitName, + x.ReportDate, + x.WelderNum, + x.TotalDineNum, + x.CompleteDineNum, + x.TotalFilmNum, + x.OKFilmNum, + x.State, + x.CreateDate, + x.CreateMan + }; } #endregion 获取列表 @@ -91,8 +94,8 @@ namespace BLL }; db.HJGLData_HJGL.InsertOnSubmit(table); db.SubmitChanges(); - } - + } + } public static void DeleteHJGLData_HJGLById(string Id) @@ -106,7 +109,7 @@ namespace BLL db.SubmitChanges(); } } - + } public static HJGLData_HJGL GetHJGLData_HJGLById(string Id) @@ -155,23 +158,27 @@ namespace BLL return data; } - public static HJGLData GetTodayHJGLData_HJGL() + public static async Task GetTodayHJGLData_HJGLAsync() { var data = new HJGLData(); - if (CommonService.GetIsThisUnit().CollCropCode== "91410200170644116B") + if (CommonService.GetIsThisUnit().CollCropCode == "91410200170644116B") { - return GetELECLTodayHJGLData_HJGL(); + return GetELECLTodayHJGLData_HJGL(); } - if (CommonService.GetIsThisUnit().CollCropCode == "914200001775697881") + if (CommonService.GetIsThisUnit().CollCropCode == "914200001775697881") { return GetCNCEC_16TodayHJGLData_HJGL(); } - var q = GetTodayData(); + /* var q = GetTodayData(); if (q != null && q.State == Const.CNCEC_State_S) data = StatisticalData(); else - data = StatisticalData(); + data = StatisticalData();*/ + + var modelTask = StatisticalDataAsync(); + var model = await modelTask; + data = model; return data; } /// @@ -185,11 +192,11 @@ namespace BLL string token = Const.sysglyId; string response = Funs.RequestPost(baseurl, token, ""); var json = JsonConvert.DeserializeObject(response) as JObject; - if (json != null && json["code"]?.ToString()=="1") + if (json != null && json["code"]?.ToString() == "1") { var str = json["data"]?.ToString(); - if (str != null) data = JsonConvert.DeserializeObject(str); - } + if (str != null) data = JsonConvert.DeserializeObject(str); + } return data; } @@ -212,10 +219,10 @@ namespace BLL } catch (Exception e) { - APICommonService.SaveSysHttpLog("GetCNCEC_16TodayHJGLData_HJGL", baseurl, e.ToString()); - + APICommonService.SaveSysHttpLog("GetCNCEC_16TodayHJGLData_HJGL", baseurl, e.ToString(), "Request|Post"); + } - + } var json = JsonConvert.DeserializeObject(response) as JObject; if (json != null && json["code"]?.ToString() == "1") @@ -223,14 +230,14 @@ namespace BLL var str = json["data"]?.ToString(); if (str != null) data = JsonConvert.DeserializeObject(str); } - APICommonService.SaveSysHttpLog("GetCNCEC_16TodayHJGLData_HJGL", baseurl, response); + APICommonService.SaveSysHttpLog("GetCNCEC_16TodayHJGLData_HJGL", baseurl, response, "Request|Post"); return data; } public static HJGLData_HJGL GetTodayData() { var q = (from x in Funs.DB.HJGLData_HJGL - where x.ReportDate < DateTime.Now.AddDays(1).Date && x.ReportDate >= DateTime.Now.Date - select x).FirstOrDefault(); + where x.ReportDate < DateTime.Now.AddDays(1).Date && x.ReportDate >= DateTime.Now.Date + select x).FirstOrDefault(); return q; } public static HJGLData_HJGL GetSubUnitHjglDataByDate(string Unitid, DateTime? reportdate) @@ -244,7 +251,7 @@ namespace BLL var baseUnit = UnitService.GetUnitByUnitId(Unitid); var ProjectData = (from x in Funs.DB.Project_HJGLData_HJGL where x.ReportDate == reportdate && projectlist.Select(e => e.ProjectId).Contains(x.ProjectId) - select x).ToList(); + select x).ToList(); result = new HJGLData_HJGL { UnitId = Unitid, @@ -259,7 +266,7 @@ namespace BLL CreateMan = Const.sysglyId, CreateDate = DateTime.Now }; - return result; + return result; } public static void UpdateTodyData_State() { @@ -275,8 +282,8 @@ namespace BLL { var result = false; var q = (from x in Funs.DB.HJGLData_HJGL - where x.ReportDate >= dateTime.Date && x.ReportDate < dateTime.Date.AddDays(1).Date - select x).ToList(); + where x.ReportDate >= dateTime.Date && x.ReportDate < dateTime.Date.AddDays(1).Date + select x).ToList(); if (q != null && q.Count > 0) result = true; return result; } @@ -289,8 +296,8 @@ namespace BLL { var result = false; var q = (from x in Funs.DB.HJGLData_HJGL - where x.ReportDate < DateTime.Now.AddDays(1).Date && x.ReportDate >= DateTime.Now.Date - select x).ToList(); + where x.ReportDate < DateTime.Now.AddDays(1).Date && x.ReportDate >= DateTime.Now.Date + select x).ToList(); if (q.Count > 0) result = true; return result; } @@ -304,33 +311,101 @@ namespace BLL return responeData; } - public static HJGLData StatisticalData() + public static async Task StatisticalDataAsync() { var data = new HJGLData(); var thisUnitId = string.Empty; var thisUnit = CommonService.GetIsThisUnit(); if (thisUnit != null) thisUnitId = thisUnit.UnitId; var baseUnit = UnitService.GetUnitByUnitId(thisUnitId); - var ProjectData = (from x in Funs.DB.Project_HJGLData_HJGL - where x.ReportDate < DateTime.Now.AddDays(1).Date && x.ReportDate >= DateTime.Now.Date - select x).ToList(); - Project_HJGLData_HJGLService.StatisticalAllProjectData(); Project_HJGLData_DefectService.StatisticalAllProjectData(); + // 并行执行异步方法 + var welderNumTask = HJGLData_HJGLService.GetWelderNumAsync(); //获取焊工总数 + var dineInfoListTask = HJGLData_HJGLService.GetDineInfoAsync(); //获达因数信息 + var chCheckItemListTask = HJGLData_HJGLService.GetCHCheckItemAsync(); //获取焊接检查信息 + // 等待所有异步方法执行完成 + await Task.WhenAll( + welderNumTask, + dineInfoListTask, + chCheckItemListTask + ); + + // 统一获取异步方法的返回值 + var welderNum = await welderNumTask; + var dineInfoList = await dineInfoListTask; + var chCheckItemList = await chCheckItemListTask; + + var table = new HJGLData_HJGL { UnitId = thisUnitId, CollCropCode = baseUnit.CollCropCode, UnitName = baseUnit.UnitName, ReportDate = DateTime.Now.Date, - WelderNum = ProjectData.Sum(x => x.WelderNum), - TotalDineNum = ProjectData.Sum(x => x.TotalDineNum), - CompleteDineNum = ProjectData.Sum(x => x.CompleteDineNum), - TotalFilmNum = ProjectData.Sum(x => x.TotalFilmNum), - OKFilmNum = ProjectData.Sum(x => x.OKFilmNum), + WelderNum = welderNum.Count(), + TotalDineNum = Convert.ToInt32(dineInfoList.Sum(x => x.Size)), + CompleteDineNum = Convert.ToInt32(dineInfoList.Sum(x => x.DoneDin)), + TotalFilmNum = Convert.ToInt32(chCheckItemList.Sum(x => x.CHT_TotalFilm)), + OKFilmNum = Convert.ToInt32(chCheckItemList.Sum(x => x.CHT_PassFilm)), CreateMan = Const.sysglyId, CreateDate = DateTime.Now }; + + Project_HJGLData_HJGLService.DeleteProject_HJGLData_HJGLByDate(DateTime.Now.Date); + // 预先对 dineInfoList 和 chCheckItemList 按 ProjectId 进行分组 + var dineInfoDict = dineInfoList + .Where(x => BeUnderConstructionList.Contains(x.ProjectId)) + .GroupBy(x => x.ProjectId) + .ToDictionary(g => g.Key, g => new + { + TotalDineNum = g.Sum(x => x.Size), + CompleteDineNum = g.Sum(x => x.DoneDin) + }); + + var chCheckItemDict = chCheckItemList + .Where(x => BeUnderConstructionList.Contains(x.ProjectId)) + .GroupBy(x => x.ProjectId) + .ToDictionary(g => g.Key, g => new + { + TotalFilmNum = g.Sum(x => x.CHT_TotalFilm), + OKFilmNum = g.Sum(x => x.CHT_PassFilm) + }); + + foreach (var projectid in BeUnderConstructionList) + { + // 获取焊工数量 + int welderCount = welderNum.Count(x => x.ProjectId == projectid); + + // 获取达因信息 + var dineInfo = dineInfoDict.TryGetValue(projectid, out var dineData) + ? dineData + : new { TotalDineNum = (decimal ?)0, CompleteDineNum = (decimal?)0 }; + + // 获取拍片信息 + var chCheckItem = chCheckItemDict.TryGetValue(projectid, out var checkData) + ? checkData + : new { TotalFilmNum = (int?)0, OKFilmNum = (int?)0 }; + + var projectCqmsData = new Project_HJGLData_HJGL() + { + Id = SQLHelper.GetNewID(), + ProjectId = projectid, + UnitId = thisUnitId, + CollCropCode = baseUnit.CollCropCode, + UnitName = baseUnit.UnitName, + ReportDate = DateTime.Now.Date, + WelderNum = welderCount, + TotalDineNum = Convert.ToInt32 (dineInfo.TotalDineNum), + CompleteDineNum = Convert.ToInt32(dineInfo.CompleteDineNum), + TotalFilmNum = chCheckItem.TotalFilmNum, + OKFilmNum = chCheckItem.OKFilmNum, + }; + + Project_HJGLData_HJGLService.AddProject_HJGLData_HJGL(projectCqmsData); + } + + if (IsReportByToday()) { table.Id = GetTodayData().Id; @@ -364,7 +439,7 @@ namespace BLL } public static void UpdateHJGLData_HJGL(HJGLData_HJGL newtable) - { + { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var table = db.HJGLData_HJGL.FirstOrDefault(x => x.Id == newtable.Id); @@ -385,8 +460,86 @@ namespace BLL table.CreateDate = newtable.CreateDate; db.SubmitChanges(); } - } - + } + + } + + + /// + /// 获取焊工总数 + /// + /// + public static List GetWelderNum() + { + var result = (from x in Funs.DB.SitePerson_Person + where BeUnderConstructionList.Contains(x.ProjectId) && x.WorkPostId == Const.WorkPost_Welder && x.States == "1" + select new Model.WelderOutput() + { + ProjectId = x.ProjectId, + UnitId = x.UnitId, + WEDCode = x.CardNo, + WEDName = x.PersonName + //UnitName = UnitService.getUnitNamesUnitIds(x.UnitIds), + }).ToList(); + return result; + } + /// + /// 获取焊工总数(异步) + /// + /// + public static async Task> GetWelderNumAsync() + { + return await Task.Run(GetWelderNum); + } + + /// + /// 获取总达因数和完成达因数 + /// + /// + public static IEnumerable GetDineInfo() + { + var result = (from x in Funs.DB.HJGL_WeldJoint + where BeUnderConstructionList.Contains(x.ProjectId) + group x by x.ProjectId into g + select new Model.WeldDineOutput() + { + ProjectId = g.Key, + Size = g.Sum(x => x.Size), + DoneDin = g.Sum(x => x.Dia) + }); + return result; + } + public static async Task> GetDineInfoAsync() + { + return await Task.Run(GetDineInfo); + } + /// + /// 获取焊接检查信息 + /// + /// + public static List GetCHCheckItem() + { + var result = (from x in Funs.DB.HJGL_Batch_NDEItem + join y in Funs.DB.HJGL_Batch_NDE on x.NDEID equals y.NDEID + where BeUnderConstructionList.Contains(y.ProjectId) + select new Model.CHCheckItemOutput() + { + Id = x.NDEItemID, + ProjectId = y.ProjectId, + UnitId = y.UnitId, + CHT_TotalFilm = x.TotalFilm, + CHT_PassFilm = x.PassFilm + //UnitName = UnitService.getUnitNamesUnitIds(x.UnitIds), + }).ToList(); + return result; + } + /// + /// 获取焊接检查信息(异步) + /// + /// + public static async Task> GetCHCheckItemAsync() + { + return await Task.Run(GetCHCheckItem); } } } \ No newline at end of file diff --git a/SGGL/BLL/ZHGL/DataSync/HSSEData_HSSEService.cs b/SGGL/BLL/ZHGL/DataSync/HSSEData_HSSEService.cs index 4d433940..e28db3f5 100644 --- a/SGGL/BLL/ZHGL/DataSync/HSSEData_HSSEService.cs +++ b/SGGL/BLL/ZHGL/DataSync/HSSEData_HSSEService.cs @@ -40,6 +40,7 @@ namespace BLL SafeTrainNum = newtable.SafeTrainNum, SpecialTrainNum = newtable.SpecialTrainNum, SpecialOperationTrainNum = newtable.SpecialOperationTrainNum, + HseTechnicalNum = newtable.HseTechnicalNum, EnvironmentalTrainNum = newtable.EnvironmentalTrainNum, TotalEnergyConsumption = newtable.TotalEnergyConsumption, IncomeComprehensiveEnergyConsumption = newtable.IncomeComprehensiveEnergyConsumption, @@ -75,10 +76,12 @@ namespace BLL CompanySpecialPlanNum = newtable.CompanySpecialPlanNum, CompanyOnSiteDisposalPlan = newtable.CompanyOnSiteDisposalPlan, CompanyDrillNum = newtable.CompanyDrillNum, + CompanyDrillPersonNum = newtable.CompanyDrillPersonNum, ProjectComprehensivePlanNum = newtable.ProjectComprehensivePlanNum, ProjectSpecialPlanNum = newtable.ProjectSpecialPlanNum, ProjectOnSiteDisposalPlan = newtable.ProjectOnSiteDisposalPlan, ProjectDrillNum = newtable.ProjectDrillNum, + ProjectDrillPersonNum = newtable.ProjectDrillPersonNum, CostExtract = newtable.CostExtract, CostUse = newtable.CostUse, UseEquipmentNum = newtable.UseEquipmentNum, @@ -97,10 +100,12 @@ namespace BLL TrainPersonNum = newtable.TrainPersonNum, ConstructionNum = newtable.ConstructionNum, FinishedNum = newtable.FinishedNum, + ArgumentNum = newtable.ArgumentNum, SuperCompletedNum = newtable.SuperCompletedNum, SuperTrainPersonNum = newtable.SuperTrainPersonNum, SuperConstructionNum = newtable.SuperConstructionNum, SuperFinishedNum = newtable.SuperFinishedNum, + SuperArgumentNum = newtable.SuperArgumentNum, State = newtable.State, CreateDate = newtable.CreateDate, CreateMan = newtable.CreateMan @@ -108,6 +113,7 @@ namespace BLL db.HSSEData_HSSE.InsertOnSubmit(table); db.SubmitChanges(); } + } public static void DeleteHSSEData_HSSEById(string id) @@ -148,6 +154,7 @@ namespace BLL item.CompanyComprehensiveCheckNum = dataHsse.CompanyComprehensiveCheckNum; item.CompanyComprehensivePlanNum = dataHsse.CompanyComprehensivePlanNum; item.CompanyDrillNum = dataHsse.CompanyDrillNum; + item.CompanyDrillPersonNum = dataHsse.CompanyDrillPersonNum; item.CompanyLeadShiftCheckNum = dataHsse.CompanyLeadShiftCheckNum; item.CompanyOnSiteDisposalPlan = dataHsse.CompanyOnSiteDisposalPlan; item.CompanySpecialCheckNum = dataHsse.CompanySpecialCheckNum; @@ -158,6 +165,7 @@ namespace BLL item.CostUse = dataHsse.CostUse; item.EnterpriseTopicsMeetingNum = dataHsse.EnterpriseTopicsMeetingNum; item.FinishedNum = dataHsse.FinishedNum; + item.ArgumentNum = dataHsse.ArgumentNum; item.GeneralAccidentNum = dataHsse.GeneralAccidentNum; item.GeneralClosedNum = dataHsse.GeneralClosedNum; item.GeneralNotClosedNum = dataHsse.GeneralNotClosedNum; @@ -183,6 +191,7 @@ namespace BLL item.NewWaterConsumption = dataHsse.NewWaterConsumption; item.ProjectComprehensivePlanNum = dataHsse.ProjectComprehensivePlanNum; item.ProjectDrillNum = dataHsse.ProjectDrillNum; + item.ProjectDrillPersonNum = dataHsse.ProjectDrillPersonNum; item.ProjectFullTimeNum = dataHsse.ProjectFullTimeNum; item.ProjectInspectorGeneralNum = dataHsse.ProjectInspectorGeneralNum; item.ProjectLeadShiftCheckNum = dataHsse.ProjectLeadShiftCheckNum; @@ -203,6 +212,7 @@ namespace BLL item.ShutdownNum = dataHsse.ShutdownNum; item.SpecialEquipmentNum = dataHsse.SpecialEquipmentNum; item.SpecialOperationTrainNum = dataHsse.SpecialOperationTrainNum; + item.HseTechnicalNum = dataHsse.HseTechnicalNum; item.EnvironmentalTrainNum = dataHsse.EnvironmentalTrainNum; item.SpecialSeriousAccidentNum = dataHsse.SpecialSeriousAccidentNum; item.SpecialTrainNum = dataHsse.SpecialTrainNum; @@ -210,6 +220,7 @@ namespace BLL item.SuperConstructionNum = dataHsse.SuperConstructionNum; item.SuperFinishedNum = dataHsse.SuperFinishedNum; item.SuperTrainPersonNum = dataHsse.SuperTrainPersonNum; + item.SuperArgumentNum = dataHsse.SuperArgumentNum; item.TotalEnergyConsumption = dataHsse.TotalEnergyConsumption; item.TotalWorkingHour = dataHsse.TotalWorkingHour; item.TrainPersonNum = dataHsse.TrainPersonNum; @@ -234,6 +245,7 @@ namespace BLL var hsseDataItems = new List { item }; data.HSSEDataItems = hsseDataItems; return data; + } public static HSSEData GetItemByHSSEData_HSSE(HSSEData_HSSE dataHsse, @@ -253,6 +265,7 @@ namespace BLL item.CompanyComprehensiveCheckNum = dataHsse.CompanyComprehensiveCheckNum; item.CompanyComprehensivePlanNum = dataHsse.CompanyComprehensivePlanNum; item.CompanyDrillNum = dataHsse.CompanyDrillNum; + item.CompanyDrillPersonNum = dataHsse.CompanyDrillPersonNum; item.CompanyLeadShiftCheckNum = dataHsse.CompanyLeadShiftCheckNum; item.CompanyOnSiteDisposalPlan = dataHsse.CompanyOnSiteDisposalPlan; item.CompanySpecialCheckNum = dataHsse.CompanySpecialCheckNum; @@ -263,6 +276,7 @@ namespace BLL item.CostUse = dataHsse.CostUse; item.EnterpriseTopicsMeetingNum = dataHsse.EnterpriseTopicsMeetingNum; item.FinishedNum = dataHsse.FinishedNum; + item.ArgumentNum = dataHsse.ArgumentNum; item.GeneralAccidentNum = dataHsse.GeneralAccidentNum; item.GeneralClosedNum = dataHsse.GeneralClosedNum; item.GeneralNotClosedNum = dataHsse.GeneralNotClosedNum; @@ -288,6 +302,7 @@ namespace BLL item.NewWaterConsumption = dataHsse.NewWaterConsumption; item.ProjectComprehensivePlanNum = dataHsse.ProjectComprehensivePlanNum; item.ProjectDrillNum = dataHsse.ProjectDrillNum; + item.ProjectDrillPersonNum = dataHsse.ProjectDrillPersonNum; item.ProjectFullTimeNum = dataHsse.ProjectFullTimeNum; item.ProjectInspectorGeneralNum = dataHsse.ProjectInspectorGeneralNum; item.ProjectLeadShiftCheckNum = dataHsse.ProjectLeadShiftCheckNum; @@ -308,12 +323,14 @@ namespace BLL item.ShutdownNum = dataHsse.ShutdownNum; item.SpecialEquipmentNum = dataHsse.SpecialEquipmentNum; item.SpecialOperationTrainNum = dataHsse.SpecialOperationTrainNum; + item.HseTechnicalNum = dataHsse.HseTechnicalNum; item.EnvironmentalTrainNum = dataHsse.EnvironmentalTrainNum; item.SpecialSeriousAccidentNum = dataHsse.SpecialSeriousAccidentNum; item.SpecialTrainNum = dataHsse.SpecialTrainNum; item.SuperCompletedNum = dataHsse.SuperCompletedNum; item.SuperConstructionNum = dataHsse.SuperConstructionNum; item.SuperFinishedNum = dataHsse.SuperFinishedNum; + item.SuperArgumentNum = dataHsse.SuperArgumentNum; item.SuperTrainPersonNum = dataHsse.SuperTrainPersonNum; item.TotalEnergyConsumption = dataHsse.TotalEnergyConsumption; item.TotalWorkingHour = dataHsse.TotalWorkingHour; @@ -338,6 +355,7 @@ namespace BLL var hsseDataItems = new List { item }; data.HSSEDataItems = hsseDataItems; return data; + } public static async Task GetTodayHSSEData_HSSE() @@ -633,6 +651,7 @@ namespace BLL var safeTrainTask = HSSEData_HSSEService.GetSafeTrainAsync(); var specialTrainTask = HSSEData_HSSEService.GetSpecialTrainAsync(); var specialOperationTrainTask = HSSEData_HSSEService.GetSpecialOperationTrainAsync(); + var hseTechnicalNumTask = HSSEData_HSSEService.GetHseTechnicalNumAsync(); var headOfficeInspectorGeneralTask = HSSEData_HSSEService.GetHeadOfficeInspectorGeneralAsync(); var headOfficeFullTimeTask = HSSEData_HSSEService.GetHeadOfficeFullTimeAsync(); var branchInspectorGeneralTask = HSSEData_HSSEService.GetBranchInspectorGeneralAsync(); @@ -690,7 +709,7 @@ namespace BLL safeWorkingHourTask, safeTrainTask, specialTrainTask, - specialOperationTrainTask, + specialOperationTrainTask, hseTechnicalNumTask, headOfficeInspectorGeneralTask, headOfficeFullTimeTask, branchInspectorGeneralTask, @@ -751,6 +770,7 @@ namespace BLL var safeTrainList = await safeTrainTask; var specialTrainList = await specialTrainTask; var specialOperationTrainList = await specialOperationTrainTask; + var hseTechnicalNum = await hseTechnicalNumTask; var headOfficeInspectorGeneralList = await headOfficeInspectorGeneralTask; var headOfficeFullTimeList = await headOfficeFullTimeTask; var branchInspectorGeneralList = await branchInspectorGeneralTask; @@ -812,6 +832,7 @@ namespace BLL SafeTrainNum = safeTrainList.Sum(x => x.TrainPersonNum), SpecialTrainNum = specialTrainList.Sum(x => x.TrainPersonNum), SpecialOperationTrainNum = specialOperationTrainList.Sum(x => x.TrainPersonNum), + HseTechnicalNum = hseTechnicalNum, EnvironmentalTrainNum = 0, TotalEnergyConsumption = totalEnergyConsumption, IncomeComprehensiveEnergyConsumption = incomeComprehensiveEnergyConsumption, @@ -843,10 +864,12 @@ namespace BLL CompanySpecialPlanNum = companySpecialPlanList.Count(), CompanyOnSiteDisposalPlan = companyOnSiteDisposalPlanList.Count(), CompanyDrillNum = companyDrillList.Count(), + CompanyDrillPersonNum = companyDrillList.Sum(x => x.JointPersonNum), ProjectComprehensivePlanNum = projectComprehensivePlanList.Count(), ProjectSpecialPlanNum = projectSpecialPlanList.Count(), ProjectOnSiteDisposalPlan = projectOnSiteDisposalPlanList.Count(), ProjectDrillNum = projectDrillList.Count(), + ProjectDrillPersonNum = projectDrillList.Sum(x => x.JointPersonNum), CostExtract = Convert.ToInt32(costExtract.Sum(x => x.SUMCost)), CostUse = Convert.ToInt32(costUseList.Sum(x => x.SUMCost)), UseEquipmentNum = useEquipmentList.Count(), @@ -865,16 +888,67 @@ namespace BLL TrainPersonNum = largeEngineeringOutputsTask.Result.Sum(x => x.TrainPersonNum), ConstructionNum = largeEngineeringOutputsTask.Result.Sum(x => x.ConstructionNum), FinishedNum = largeEngineeringOutputsTask.Result.Sum(x => x.FinishedNum), + ArgumentNum = largeEngineeringOutputsTask.Result.Sum(x => x.ArgumentNum), SuperCompletedNum = largeEngineeringOutputsTask.Result.Sum(x => x.SuperCompletedNum), SuperTrainPersonNum = largeEngineeringOutputsTask.Result.Sum(x => x.SuperTrainPersonNum), - SuperConstructionNum = largeEngineeringOutputsTask.Result.Sum(x => x.SuperConstructionNum) + SuperConstructionNum = largeEngineeringOutputsTask.Result.Sum(x => x.SuperConstructionNum), + SuperFinishedNum = largeEngineeringOutputsTask.Result.Sum(x => x.SuperFinishedNum), + SuperArgumentNum = largeEngineeringOutputsTask.Result.Sum(x => x.SuperArgumentNum) }; #region 添加项目统计数据 Project_HSSEData_HSSEService.DeleteProject_HSSEData_HSSEByDate(DateTime.Now.Date); + + var generalHiddenRectificationOutputsDict = generalHiddenRectificationOutputsList + .GroupBy(x => x.ProjectId) + .ToDictionary( + g => g.Key, + g => new { ClosedNum = g.Sum(x => x.RecNum), NotClosedNum = g.Sum(x => x.NoRecNum) } + ); + var majorHiddenRectificationOutputsDict = majorHiddenRectificationOutputsList + .GroupBy(x => x.ProjectId) + .ToDictionary( + g => g.Key, + g => new { ClosedNum = g.Sum(x => x.RecNum), NotClosedNum = g.Sum(x => x.NoRecNum) } + ); + var securityRiskOutputList = securityRiskOutputListTask.Result; + var securityRiskOutputDict = securityRiskOutputList + .GroupBy(x => x.ProjectId) + .ToDictionary( + g => g.Key, + g => new + { + LowRiskNum = g.Sum(x => x.LowRiskNum), + GeneralRiskNum = g.Sum(x => x.GeneralRiskNum), + MediumRiskNum = g.Sum(x => x.MediumRiskNum), + HighRiskNum = g.Sum(x => x.HighRiskNum) + } + ); + var largeEngineeringOutputList = largeEngineeringOutputsTask.Result; + var largeEngineeringOutputsDict = largeEngineeringOutputList + .GroupBy(x => x.ProjectId) + .ToDictionary( + g => g.Key, + g => new + { + CompletedNum = g.Sum(x => x.CompletedNum), + TrainPersonNum = g.Sum(x => x.TrainPersonNum), + ConstructionNum = g.Sum(x => x.ConstructionNum), + FinishedNum = g.Sum(x => x.FinishedNum), + ArgumentNum = g.Sum(x => x.ArgumentNum), + SuperCompletedNum = g.Sum(x => x.SuperCompletedNum), + SuperTrainPersonNum = g.Sum(x => x.SuperTrainPersonNum), + SuperConstructionNum = g.Sum(x => x.SuperConstructionNum), + SuperArgumentNum = g.Sum(x => x.SuperArgumentNum) + } + ); foreach (var projectid in BeUnderConstructionList) { + generalHiddenRectificationOutputsDict.TryGetValue(projectid, out var generalHiddenRectificationOutputs); + majorHiddenRectificationOutputsDict.TryGetValue(projectid, out var majorHiddenRectificationOutputs); + securityRiskOutputDict.TryGetValue(projectid, out var securityRiskOutputs); + largeEngineeringOutputsDict.TryGetValue(projectid, out var largeEngineeringOutputs); var projectHsseData = new Project_HSSEData_HSSE { Id = SQLHelper.GetNewID(), @@ -891,6 +965,7 @@ namespace BLL SafeTrainNum = safeTrainList.Where(x => x.ProjectId == projectid).Sum(x => x.TrainPersonNum), SpecialTrainNum = specialTrainList.Where(x => x.ProjectId == projectid).Sum(x => x.TrainPersonNum), SpecialOperationTrainNum = specialOperationTrainList.Where(x => x.ProjectId == projectid).Sum(x => x.TrainPersonNum), + HseTechnicalNum = hseTechnicalNum, EnvironmentalTrainNum = 0, TotalEnergyConsumption = 0, IncomeComprehensiveEnergyConsumption = 0, @@ -925,31 +1000,35 @@ namespace BLL CompanySpecialPlanNum = 0, CompanyOnSiteDisposalPlan = 0, CompanyDrillNum = 0, + CompanyDrillPersonNum = 0, ProjectComprehensivePlanNum = projectComprehensivePlanList.Count(x => x.ProjectId == projectid), ProjectSpecialPlanNum = projectSpecialPlanList.Count(x => x.ProjectId == projectid), ProjectOnSiteDisposalPlan = projectOnSiteDisposalPlanList.Count(x => x.ProjectId == projectid), ProjectDrillNum = projectDrillList.Count(x => x.ProjectId == projectid), + ProjectDrillPersonNum = projectDrillList.Where(x => x.ProjectId == projectid).Sum(x => x.JointPersonNum), CostExtract = Convert.ToInt32(costExtract.Where(x => x.ProjectId == projectid).Sum(x => x.SUMCost)), CostUse = Convert.ToInt32(costUseList.Where(x => x.ProjectId == projectid).Sum(x => x.SUMCost)), UseEquipmentNum = useEquipmentList.Count(x => x.ProjectId == projectid), SpecialEquipmentNum = specialEquipmentList.Count(x => x.ProjectId == projectid), LicensesNum = licensesList.Count(x => x.ProjectId == projectid), LicensesCloseNum = licensesCloseList.Count(x => x.ProjectId == projectid), - GeneralClosedNum = generalHiddenRectificationOutputsList.Where(x => x.ProjectId == projectid).Sum(x => x.RecNum), - GeneralNotClosedNum = generalHiddenRectificationOutputsList.Where(x => x.ProjectId == projectid).Sum(x => x.NoRecNum), - MajorClosedNum = majorHiddenRectificationOutputsList.Where(x => x.ProjectId == projectid).Sum(x => x.RecNum), - MajorNotClosedNum = majorHiddenRectificationOutputsList.Where(x => x.ProjectId == projectid).Sum(x => x.NoRecNum), - LowRiskNum = securityRiskOutputListTask.Result.Where(x => x.ProjectId == projectid).Sum(x => x.LowRiskNum), - GeneralRiskNum = securityRiskOutputListTask.Result.Where(x => x.ProjectId == projectid).Sum(x => x.GeneralRiskNum), - MediumRiskNum = securityRiskOutputListTask.Result.Where(x => x.ProjectId == projectid).Sum(x => x.MediumRiskNum), - HighRiskNum = securityRiskOutputListTask.Result.Where(x => x.ProjectId == projectid).Sum(x => x.HighRiskNum), - CompletedNum = largeEngineeringOutputsTask.Result.Where(x => x.ProjectId == projectid).Sum(x => x.CompletedNum), - TrainPersonNum = largeEngineeringOutputsTask.Result.Where(x => x.ProjectId == projectid).Sum(x => x.TrainPersonNum), - ConstructionNum = largeEngineeringOutputsTask.Result.Where(x => x.ProjectId == projectid).Sum(x => x.ConstructionNum), - FinishedNum = largeEngineeringOutputsTask.Result.Where(x => x.ProjectId == projectid).Sum(x => x.FinishedNum), - SuperCompletedNum = largeEngineeringOutputsTask.Result.Where(x => x.ProjectId == projectid).Sum(x => x.SuperCompletedNum), - SuperTrainPersonNum = largeEngineeringOutputsTask.Result.Where(x => x.ProjectId == projectid).Sum(x => x.SuperTrainPersonNum), - SuperConstructionNum = largeEngineeringOutputsTask.Result.Where(x => x.ProjectId == projectid).Sum(x => x.SuperConstructionNum) + GeneralClosedNum = generalHiddenRectificationOutputs?.ClosedNum ?? 0, + GeneralNotClosedNum = generalHiddenRectificationOutputs?.NotClosedNum ?? 0, + MajorClosedNum = majorHiddenRectificationOutputs?.ClosedNum ?? 0, + MajorNotClosedNum = majorHiddenRectificationOutputs?.NotClosedNum ?? 0, + LowRiskNum = securityRiskOutputs?.LowRiskNum ?? 0, + GeneralRiskNum = securityRiskOutputs?.GeneralRiskNum ?? 0, + MediumRiskNum = securityRiskOutputs?.MediumRiskNum ?? 0, + HighRiskNum = securityRiskOutputs?.HighRiskNum ?? 0, + CompletedNum = largeEngineeringOutputs?.CompletedNum ?? 0, + TrainPersonNum = largeEngineeringOutputs?.TrainPersonNum ?? 0, + ConstructionNum = largeEngineeringOutputs?.ConstructionNum ?? 0, + FinishedNum = largeEngineeringOutputs?.FinishedNum ?? 0, + ArgumentNum = largeEngineeringOutputs?.ArgumentNum ?? 0, + SuperCompletedNum = largeEngineeringOutputs?.SuperCompletedNum ?? 0, + SuperTrainPersonNum = largeEngineeringOutputs?.SuperTrainPersonNum ?? 0, + SuperConstructionNum = largeEngineeringOutputs?.SuperConstructionNum ?? 0, + SuperArgumentNum = largeEngineeringOutputs?.SuperArgumentNum ?? 0 }; Project_HSSEData_HSSEService.AddProject_HSSEData_HSSE(projectHsseData); } @@ -971,6 +1050,7 @@ namespace BLL var data = GetItemByHSSEData_HSSE(table, Project_HSSEData_HiddenDangerDetailService.GetTodayModel()); return data; + } //public static HSSEData StatisticalDataOld() @@ -1109,6 +1189,7 @@ namespace BLL table.SafeTrainNum = newtable.SafeTrainNum; table.SpecialTrainNum = newtable.SpecialTrainNum; table.SpecialOperationTrainNum = newtable.SpecialOperationTrainNum; + table.HseTechnicalNum = newtable.HseTechnicalNum; table.EnvironmentalTrainNum = newtable.EnvironmentalTrainNum; table.TotalEnergyConsumption = newtable.TotalEnergyConsumption; table.IncomeComprehensiveEnergyConsumption = newtable.IncomeComprehensiveEnergyConsumption; @@ -1144,10 +1225,12 @@ namespace BLL table.CompanySpecialPlanNum = newtable.CompanySpecialPlanNum; table.CompanyOnSiteDisposalPlan = newtable.CompanyOnSiteDisposalPlan; table.CompanyDrillNum = newtable.CompanyDrillNum; + table.CompanyDrillPersonNum = newtable.CompanyDrillPersonNum; table.ProjectComprehensivePlanNum = newtable.ProjectComprehensivePlanNum; table.ProjectSpecialPlanNum = newtable.ProjectSpecialPlanNum; table.ProjectOnSiteDisposalPlan = newtable.ProjectOnSiteDisposalPlan; table.ProjectDrillNum = newtable.ProjectDrillNum; + table.ProjectDrillPersonNum = newtable.ProjectDrillPersonNum; table.CostExtract = newtable.CostExtract; table.CostUse = newtable.CostUse; table.UseEquipmentNum = newtable.UseEquipmentNum; @@ -1166,19 +1249,45 @@ namespace BLL table.TrainPersonNum = newtable.TrainPersonNum; table.ConstructionNum = newtable.ConstructionNum; table.FinishedNum = newtable.FinishedNum; + table.ArgumentNum = newtable.ArgumentNum; table.SuperCompletedNum = newtable.SuperCompletedNum; table.SuperTrainPersonNum = newtable.SuperTrainPersonNum; table.SuperConstructionNum = newtable.SuperConstructionNum; table.SuperFinishedNum = newtable.SuperFinishedNum; + table.SuperArgumentNum = newtable.SuperArgumentNum; table.State = newtable.State; table.CreateMan = newtable.CreateMan; table.CreateDate = newtable.CreateDate; db.SubmitChanges(); } } + } + /// + /// 获取安全技术交底数 + /// + /// + public static int GetHseTechnicalNum() + { + var list = (from x in Funs.DB.License_HSETechnical + where BeUnderConstructionList.Contains(x.ProjectId) + select x).Distinct().ToList(); + var result = list.ToList().Count(); + return result; + + } + /// + /// 获取安全技术交底数(异步) + /// + /// + public static async Task GetHseTechnicalNumAsync() + { + return await Task.Run(GetHseTechnicalNum); + + } + #region 安监人员数据 @@ -3513,13 +3622,15 @@ namespace BLL TrainPersonNum = gg.Where(x => x.IsSuperLargerHazard == false).Sum(x => x.TrainPersonNum) ?? 0, ConstructionNum = gg.Count(x => x.States == "2" && x.IsSuperLargerHazard == false), FinishedNum = gg.Count(x => x.States == "3" && x.IsSuperLargerHazard == false), + ArgumentNum = gg.Count(x => x.IsArgument == true && x.IsSuperLargerHazard == false), SuperCompletedNum = gg.Count(x => x.States == "1" && x.IsSuperLargerHazard == true), SuperTrainPersonNum = gg.Where(x => x.IsSuperLargerHazard == true).Sum(x => x.TrainPersonNum) ?? 0, SuperConstructionNum = gg.Count(x => x.States == "2" && x.IsSuperLargerHazard == true), SuperFinishedNum = gg.Count(x => x.States == "3" && x.IsSuperLargerHazard == true), - + SuperArgumentNum = gg.Count(x => x.IsArgument == true && x.IsSuperLargerHazard == true), }).ToList(); return query; + } public static async Task> GetLargeEngineeringOutputsAsync() { @@ -3690,6 +3801,7 @@ namespace BLL x.SafeTrainNum, x.SpecialTrainNum, x.SpecialOperationTrainNum, + x.HseTechnicalNum, x.EnvironmentalTrainNum, x.TotalEnergyConsumption, x.IncomeComprehensiveEnergyConsumption, @@ -3725,10 +3837,12 @@ namespace BLL x.CompanySpecialPlanNum, x.CompanyOnSiteDisposalPlan, x.CompanyDrillNum, + x.CompanyDrillPersonNum, x.ProjectComprehensivePlanNum, x.ProjectSpecialPlanNum, x.ProjectOnSiteDisposalPlan, x.ProjectDrillNum, + x.ProjectDrillPersonNum, x.CostExtract, x.CostUse, x.UseEquipmentNum, @@ -3747,14 +3861,17 @@ namespace BLL x.TrainPersonNum, x.ConstructionNum, x.FinishedNum, + x.ArgumentNum, x.SuperCompletedNum, x.SuperTrainPersonNum, x.SuperConstructionNum, x.SuperFinishedNum, + x.SuperArgumentNum, x.State, x.CreateDate, x.CreateMan }; + } #endregion 获取列表 diff --git a/SGGL/BLL/ZHGL/DataSync/ProjectDataSync/Project_CQMSDataService.cs b/SGGL/BLL/ZHGL/DataSync/ProjectDataSync/Project_CQMSDataService.cs index a434a107..6c759442 100644 --- a/SGGL/BLL/ZHGL/DataSync/ProjectDataSync/Project_CQMSDataService.cs +++ b/SGGL/BLL/ZHGL/DataSync/ProjectDataSync/Project_CQMSDataService.cs @@ -1,18 +1,17 @@ using FineUIPro; -using RestSharp; +using Model; +using Newtonsoft.Json; using System; using System.Collections; using System.Collections.Generic; using System.Linq; -using System.Text; -using Model; -using Newtonsoft.Json; namespace BLL { public static class Project_CQMSDataService { + public static Model.SGGLDB db = Funs.DB; /// /// CQMS数据类型 /// @@ -47,6 +46,18 @@ namespace BLL /// ProjectDivision, /// + /// 报验数据 + /// + Inspection, + /// + /// 施工方案数据 + /// + ConstructSolution, + /// + /// 特种设备质保体系和图纸会审/设计交底 + /// + SpecialEquipmentAndDesignDetails, + /// /// 全部数据 /// All @@ -63,7 +74,7 @@ namespace BLL } public static List GetProject_CQMSData_CQMSByModle(Model.Project_CQMSData_CQMS table) { - var q = from x in Funs.DB.Project_CQMSData_CQMS + var q = from x in db.Project_CQMSData_CQMS where (string.IsNullOrEmpty(table.Id) || x.Id.Contains(table.Id)) && (string.IsNullOrEmpty(table.ProjectId) || x.Id.Contains(table.ProjectId)) && @@ -140,11 +151,11 @@ namespace BLL /// public static Model.Project_CQMSData_CQMS GetProject_CQMSData_CQMSById(string Id) { - return Funs.DB.Project_CQMSData_CQMS.FirstOrDefault(x => x.Id == Id); + return db.Project_CQMSData_CQMS.FirstOrDefault(x => x.Id == Id); } public static List GetProject_CQMSData_CQMSByprojectid(string projectid) { - var q = (from x in Funs.DB.Project_CQMSData_CQMS + var q = (from x in db.Project_CQMSData_CQMS where x.ProjectId == projectid select x).ToList(); return q; @@ -194,6 +205,25 @@ namespace BLL SubProjectNum = newtable.SubProjectNum, SubdivisionalWorksNum = newtable.SubdivisionalWorksNum, InspectionLotNum = newtable.InspectionLotNum, + EquipmentInspectionNum = newtable.EquipmentInspectionNum, + EquipmentInspectionQualifiedNum = newtable.EquipmentInspectionQualifiedNum, + MachineInspectionNum = newtable.MachineInspectionNum, + MachineInspectionQualifiedNum = newtable.MachineInspectionQualifiedNum, + PersonInspectionNum = newtable.PersonInspectionNum, + PersonInspectionQualifiedNum = newtable.PersonInspectionQualifiedNum, + MaterialInspectionNum = newtable.MaterialInspectionNum, + MaterialInspectionQualifiedNum = newtable.MaterialInspectionQualifiedNum, + ConstructSolutionNum = newtable.ConstructSolutionNum, + ConstructSolutionProjectApproveNum = newtable.ConstructSolutionProjectApproveNum, + ConstructSolutionUnitApproveNum = newtable.ConstructSolutionUnitApproveNum, + SpecialEquipmentQualityAssuranceSystemNum = newtable.SpecialEquipmentQualityAssuranceSystemNum, + DesignDetailsNum = newtable.DesignDetailsNum, + UnitProjectAcceptNum = newtable.UnitProjectAcceptNum, + UnitProjectAcceptOKNum = newtable.UnitProjectAcceptOKNum, + SubProjectAcceptNum = newtable.SubProjectAcceptNum, + SubProjectAcceptOKNum = newtable.SubProjectAcceptOKNum, + SubdivisionalWorksAcceptNum = newtable.SubdivisionalWorksAcceptNum, + SubdivisionalWorksAcceptOKNum = newtable.SubdivisionalWorksAcceptOKNum }; db.Project_CQMSData_CQMS.InsertOnSubmit(table); db.SubmitChanges(); @@ -246,6 +276,25 @@ namespace BLL table.SubProjectNum = newtable.SubProjectNum; table.SubdivisionalWorksNum = newtable.SubdivisionalWorksNum; table.InspectionLotNum = newtable.InspectionLotNum; + table.EquipmentInspectionNum = newtable.EquipmentInspectionNum; + table.EquipmentInspectionQualifiedNum = newtable.EquipmentInspectionQualifiedNum; + table.MachineInspectionNum = newtable.MachineInspectionNum; + table.MachineInspectionQualifiedNum = newtable.MachineInspectionQualifiedNum; + table.PersonInspectionNum = newtable.PersonInspectionNum; + table.PersonInspectionQualifiedNum = newtable.PersonInspectionQualifiedNum; + table.MaterialInspectionNum = newtable.MaterialInspectionNum; + table.MaterialInspectionQualifiedNum = newtable.MaterialInspectionQualifiedNum; + table.ConstructSolutionNum = newtable.ConstructSolutionNum; + table.ConstructSolutionProjectApproveNum = newtable.ConstructSolutionProjectApproveNum; + table.ConstructSolutionUnitApproveNum = newtable.ConstructSolutionUnitApproveNum; + table.SpecialEquipmentQualityAssuranceSystemNum = newtable.SpecialEquipmentQualityAssuranceSystemNum; + table.DesignDetailsNum = newtable.DesignDetailsNum; + table.UnitProjectAcceptNum = newtable.UnitProjectAcceptNum; + table.UnitProjectAcceptOKNum = newtable.UnitProjectAcceptOKNum; + table.SubProjectAcceptNum = newtable.SubProjectAcceptNum; + table.SubProjectAcceptOKNum = newtable.SubProjectAcceptOKNum; + table.SubdivisionalWorksAcceptNum = newtable.SubdivisionalWorksAcceptNum; + table.SubdivisionalWorksAcceptOKNum = newtable.SubdivisionalWorksAcceptOKNum; db.SubmitChanges(); } } @@ -268,6 +317,20 @@ namespace BLL } } + + + public static void DeleteProject_CQMSData_CQMByDate(DateTime? reportDate) + { + using (var db = new SGGLDB(Funs.ConnString)) + { + var table = db.Project_CQMSData_CQMS.Where(x => x.ReportDate.Value.Date.CompareTo(reportDate.Value.Date) == 0); + if (table != null) + { + db.Project_CQMSData_CQMS.DeleteAllOnSubmit(table); + db.SubmitChanges(); + } + } + } /// /// 根据projectid判断当天项目是否已统计数据 /// @@ -321,6 +384,7 @@ namespace BLL StatisticalData(item.ProjectId, CQMSDateType.All); } } + /// /// 统计数据 /// @@ -391,6 +455,13 @@ namespace BLL table.UnitProjectOnesOKNum = GetUnitProjectOnesOKNum(projectid); table.MaterialInRecheckNum = GetMaterialInRecheckNum(projectid); table.MaterialInRecheckOKNum = GetMaterialInRecheckOKNum(projectid); + + table.UnitProjectAcceptNum = GetUnitProjectOnesNum(projectid); + table.UnitProjectAcceptOKNum = GetUnitProjectOnesOKNum(projectid); + table.SubProjectAcceptNum = GetMaterialInRecheckNum(projectid); + table.SubProjectAcceptOKNum = GetMaterialInRecheckOKNum(projectid); + table.SubdivisionalWorksAcceptNum = GetSubdivisionalWorksAcceptNum(projectid); + table.SubdivisionalWorksAcceptOKNum = GetSubdivisionalWorksAcceptOKNum(projectid); } if (cQMSDateType == CQMSDateType.ProjectDivision || cQMSDateType == CQMSDateType.All) { @@ -400,6 +471,28 @@ namespace BLL table.SubdivisionalWorksNum = GetSubdivisionalWorksNum(projectid); table.InspectionLotNum = GetInspectionLotNum(projectid); } + if (cQMSDateType == CQMSDateType.Inspection || cQMSDateType == CQMSDateType.All) + { + table.EquipmentInspectionNum = GetComprehensiveInspectionEquipmentNum(projectid); + table.EquipmentInspectionQualifiedNum = GetComprehensiveInspectionEquipmentOKNum(projectid); + table.MachineInspectionNum = GetComprehensiveInspectionMachineNum(projectid); + table.MachineInspectionQualifiedNum = GetComprehensiveInspectionMachineOKNum(projectid); + table.PersonInspectionNum = GetComprehensiveInspectionPersonNum(projectid); + table.PersonInspectionQualifiedNum = GetComprehensiveInspectionPersonOKNum(projectid); + table.MaterialInspectionNum = GetComprehensiveInspectionMaterialNum(projectid); + table.MaterialInspectionQualifiedNum = GetComprehensiveInspectionMaterialOKNum(projectid); + } + if (cQMSDateType == CQMSDateType.ConstructSolution || cQMSDateType == CQMSDateType.All) + { + table.ConstructSolutionNum = GetConstructSolutionNum(projectid); + table.ConstructSolutionProjectApproveNum = GetConstructSolutionProjectApproveNum(projectid); + table.ConstructSolutionUnitApproveNum = GetConstructSolutionUnitApproveNum(projectid); + } + if (cQMSDateType == CQMSDateType.SpecialEquipmentAndDesignDetails || cQMSDateType == CQMSDateType.All) + { + table.SpecialEquipmentQualityAssuranceSystemNum = GetSpecialEquipmentQualityAssuranceSystemNum(projectid); + table.DesignDetailsNum = GetTechnicalDisclosePersonNum(projectid); + } if (IsReportByToday(projectid)) { @@ -484,7 +577,7 @@ namespace BLL { int result = (from x in Funs.DB.SitePerson_Person join y in Funs.DB.Base_WorkPost on x.WorkPostId equals y.WorkPostId - where x.ProjectId == projectid && y.IsCQMS == true && x.States == "1" + where x.ProjectId == projectid && y.IsCQMS == true select x).Count(); return result; } @@ -690,14 +783,40 @@ namespace BLL select x).Count(); return result; } + /// + /// 获取分项工程验收数 + /// + /// + public static int GetSubdivisionalWorksAcceptNum(string projectid) + { + int result = (from x in Funs.DB.ProcessControl_InspectionManagementDetail + join y in Funs.DB.WBS_BreakdownProject on x.ControlPointType equals y.BreakdownProjectId + where y.ProjectId == projectid && y.CheckAcceptType == "6" && x.CreateDate > Const.DtmarkTime + select x).Count(); + return result; + } + /// + /// 获取分项工程验收合格数 + /// + /// + public static int GetSubdivisionalWorksAcceptOKNum(string projectid) + { + int result = (from x in Funs.DB.ProcessControl_InspectionManagementDetail + join y in Funs.DB.WBS_BreakdownProject on x.ControlPointType equals y.BreakdownProjectId + join z in Funs.DB.ProcessControl_InspectionManagement on x.InspectionId equals z.InspectionId + where y.ProjectId == projectid && y.CheckAcceptType == "6" && z.IsOnceQualified == true && x.CreateDate > Const.DtmarkTime + select x).Count(); + return result; + } + /// /// 获取单项工程个数 /// /// public static int GetSingleProjectNum(string projectid) { - int result = (from x in Funs.DB.WBS_UnitWork - where x.ProjectId == projectid + int result = (from x in Funs.DB.ProjectData_MainItem + where x.ProjectId == projectid select x).Count(); return result; } @@ -746,6 +865,148 @@ namespace BLL return result; } + /// + /// 设备报验-报检数 + /// + /// + /// + public static int GetComprehensiveInspectionEquipmentNum(string projectid) + { + int result = (from x in Funs.DB.Check_CheckEquipment + where x.ProjectId == projectid && x.CompileDate > Const.DtmarkTime + select x).Count(); + return result; + } + /// + /// 设备报验-报检合格数 + /// + /// + /// + public static int GetComprehensiveInspectionEquipmentOKNum(string projectid) + { + int result = (from x in Funs.DB.Check_CheckEquipment + where x.ProjectId == projectid && x.IsCheckCertificate == true && x.CompileDate > Const.DtmarkTime + select x).Count(); + return result; + } + + /// + /// 获取机具报验-报检数 + /// + /// + /// + public static int GetComprehensiveInspectionMachineNum(string projectid) + { + int result = (from x in Funs.DB.Comprehensive_InspectionMachine + where x.ProjectId == projectid && x.CompileDate > Const.DtmarkTime + select x).Count(); + return result; + } + + /// + /// 获取机具报验-报检合格数 + /// + /// + /// + public static int GetComprehensiveInspectionMachineOKNum(string projectid) + { + int result = (from x in Funs.DB.Comprehensive_InspectionMachine + where x.ProjectId == projectid && x.IsCheckOK.HasValue && x.IsCheckOK == true && x.CompileDate > Const.DtmarkTime + select x).Count(); + return result; + } + + /// + /// 获取人员报验-报检数 + /// + /// + public static int GetComprehensiveInspectionPersonNum(string projectid) + { + var result = (from x in Funs.DB.Comprehensive_InspectionPerson + where x.ProjectId == projectid && x.IsOnSite.HasValue && x.CompileDate > Const.DtmarkTime + select x).Count(); + return result; + } + + /// + /// 获取人员报验-报检合格数 + /// + /// + public static int GetComprehensiveInspectionPersonOKNum(string projectid) + { + var result = (from x in Funs.DB.Comprehensive_InspectionPerson + where x.ProjectId == projectid && x.IsOnSite == true && x.CompileDate > Const.DtmarkTime + select x).Count(); + return result; + } + + /// + /// 获取材料报验-报检数 + /// + /// + public static int GetComprehensiveInspectionMaterialNum(string projectid) + { + var result = 0; + return result; + } + + /// + /// 获取材料报验-报检合格数 + /// + /// + public static int GetComprehensiveInspectionMaterialOKNum(string projectid) + { + var result = 0; + return result; + } + + /// + /// 施工方案数量 + /// + /// + /// + public static int GetConstructSolutionNum(string projectid) + { + var result = (from x in Funs.DB.Solution_CQMSConstructSolution + where x.ProjectId == projectid + select x).Count(); + return result; + } + /// + /// 施工方案数量——项目审批数量 + /// + /// + /// + public static int GetConstructSolutionProjectApproveNum(string projectid) + { + var result = (from x in Funs.DB.Solution_CQMSConstructSolution + where x.ProjectId == projectid && x.State == "1" + select x).Count(); + return result; + } + /// + /// 施工方案数量——项目审批数量 + /// + /// + /// + public static int GetConstructSolutionUnitApproveNum(string projectid) + { + var result = 0; + return result; + } + + /// + /// 特种设备质保体系 + /// + /// + /// + public static int GetSpecialEquipmentQualityAssuranceSystemNum(string projectid) + { + var result = 0; + return result; + } + + #region 推送项目质量数据 diff --git a/SGGL/BLL/ZHGL/DataSync/ProjectDataSync/Project_HJGLData_HJGLService.cs b/SGGL/BLL/ZHGL/DataSync/ProjectDataSync/Project_HJGLData_HJGLService.cs index de032880..f31d647f 100644 --- a/SGGL/BLL/ZHGL/DataSync/ProjectDataSync/Project_HJGLData_HJGLService.cs +++ b/SGGL/BLL/ZHGL/DataSync/ProjectDataSync/Project_HJGLData_HJGLService.cs @@ -354,11 +354,10 @@ namespace BLL /// public static ReturnData PushProjectHJGLData() { - var db1 = Funs.DB; - var items = (from x in db1.Project_HJGLData_HJGL + var items = (from x in Funs.DB.Project_HJGLData_HJGL where x.ReportDate == DateTime.Now.Date select x).ToList(); - var defectItems = (from x in db1.Project_HJGLData_Defect + var defectItems = (from x in Funs.DB.Project_HJGLData_Defect where x.ReportDate == DateTime.Now.Date select x).ToList(); Model.ReturnData responeData = new Model.ReturnData(); @@ -376,8 +375,22 @@ namespace BLL responeData.message = "当前没有项目焊接数据"; } return responeData; + } #endregion + + public static void DeleteProject_HJGLData_HJGLByDate(DateTime? reportDate) + { + using (var db = new SGGLDB(Funs.ConnString)) + { + var table = db.Project_HJGLData_HJGL.Where(x => x.ReportDate.Value.Date.CompareTo(reportDate.Value.Date) == 0); + if (table != null) + { + db.Project_HJGLData_HJGL.DeleteAllOnSubmit(table); + db.SubmitChanges(); + } + } + } } } \ No newline at end of file diff --git a/SGGL/BLL/ZHGL/DataSync/ProjectDataSync/Project_HSSEData_HSSEService.cs b/SGGL/BLL/ZHGL/DataSync/ProjectDataSync/Project_HSSEData_HSSEService.cs index 1e03bd4e..a5f59e64 100644 --- a/SGGL/BLL/ZHGL/DataSync/ProjectDataSync/Project_HSSEData_HSSEService.cs +++ b/SGGL/BLL/ZHGL/DataSync/ProjectDataSync/Project_HSSEData_HSSEService.cs @@ -1591,10 +1591,10 @@ namespace BLL /// public static ReturnData PushProjectHSSEData() { - var items = (from x in db.Project_HSSEData_HSSE + var items = (from x in Funs.DB.Project_HSSEData_HSSE where x.ReportDate == DateTime.Now.Date select x).ToList(); - var detailItems = (from x in db.Project_HSSEData_HiddenDangerDetail + var detailItems = (from x in Funs.DB.Project_HSSEData_HiddenDangerDetail where x.ReportDate == DateTime.Now.Date select x).ToList(); Model.ReturnData responeData = new Model.ReturnData(); diff --git a/SGGL/FineUIPro.Web/File/Excel/DataOut/排产计划导出模板.xlsx b/SGGL/FineUIPro.Web/File/Excel/DataOut/排产计划导出模板.xlsx index af9e3643..24e30a80 100644 Binary files a/SGGL/FineUIPro.Web/File/Excel/DataOut/排产计划导出模板.xlsx and b/SGGL/FineUIPro.Web/File/Excel/DataOut/排产计划导出模板.xlsx differ diff --git a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj index 0fbcf266..c3f28f23 100644 --- a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj +++ b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj @@ -1590,6 +1590,7 @@ + @@ -10810,6 +10811,13 @@ TestPackageEdit.aspx + + TestPackageImport.aspx + ASPXCodeBehind + + + TestPackageImport.aspx + TestPackageItemEdit.aspx ASPXCodeBehind @@ -16583,7 +16591,7 @@ - + diff --git a/SGGL/FineUIPro.Web/HJGL/PreDesign/ProductionSchedulingPlan.aspx b/SGGL/FineUIPro.Web/HJGL/PreDesign/ProductionSchedulingPlan.aspx index c6f83703..7af24a42 100644 --- a/SGGL/FineUIPro.Web/HJGL/PreDesign/ProductionSchedulingPlan.aspx +++ b/SGGL/FineUIPro.Web/HJGL/PreDesign/ProductionSchedulingPlan.aspx @@ -12,60 +12,52 @@
- + - - - - - - - - + - + + + + - - - + - - + + - + - + - + + Icon="TableGo" EnableAjax="false" EnablePostBack="true"> - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + + + + + + + + + + - - + + @@ -151,14 +158,26 @@ - + - + - + + + + +