From 58f23e59d1eb15d5e34d02d95b5e4132f89fefef Mon Sep 17 00:00:00 2001
From: gaofei1985 <181547018@qq.com>
Date: Mon, 23 Mar 2026 14:33:54 +0800
Subject: [PATCH] 1
---
DataBase/版本日志/SGGLDB_V2026-02-27-gf.sql | 106 ++
DataBase/版本日志/SGGLDB_V2026-03-09-geh.sql | 12 +
...2026-03-10-geh(View_Hazard_HazardRegister).sql | 97 ++
DataBase/版本日志/SGGLDB_V2026-03-10-gf.sql | 7 +
DataBase/版本日志/SGGLDB_V2026-03-12-xiaj.sql | 88 ++
DataBase/版本日志/SGGLDB_V2026-03-16-geh.sql | 68 +
DataBase/版本日志/SGGLDB_V2026-03-21-xiaj.sql | 130 ++
SGGL/BLL/API/HSSE/APICheckSpecialService.cs | 113 +-
SGGL/BLL/BLL.csproj | 2 +
SGGL/BLL/Common/Const.cs | 40 +
SGGL/BLL/DataShare/APIDataShareSyncService.cs | 43 +-
.../CQMS/APICheckControlSyncService.cs | 543 +++++++
.../CQMS/APIInspectionMachineSyncService.cs | 313 ++++
.../HSSE/APICheckSpecialSyncService.cs | 54 +-
.../HSSE/APIHazardRegisterSyncService.cs | 53 +-
.../DataShare/HSSE/APILicenseSyncService.cs | 34 +-
.../DataShare/HSSE/APIMeetingSyncService.cs | 32 +-
.../DataShare/HSSE/APIPersonSyncService.cs | 54 +-
.../HSSE_Hazard_HazardRegisterService.cs | 23 +
.../SitePerson/SitePerson_PersonService.cs | 21 +
SGGL/BLL/HSSE/Solution/LargerHazardService.cs | 2 +
SGGL/BLL/Person/Person_PersonsService.cs | 51 +
SGGL/BLL/ProjectData/ProjectService.cs | 4 +
.../BLL/ZHGL/DataSync/HSSEData_HSSEService.cs | 160 +-
.../Project_HSSEData_HSSEService.cs | 174 ++-
.../UnitHazardRegisterItemService.cs | 21 +-
.../Supervise/UnitHazardRegisterService.cs | 29 +-
.../Excel/DataIn/企业大检查明细导入模板.xls | Bin 0 -> 18944 bytes
.../Excel/DataIn/现场车辆管理导入模板.xls | Bin 0 -> 18432 bytes
SGGL/FineUIPro.Web/FineUIPro.Web.csproj | 13 +-
.../HSSE/Solution/LargerHazardEdit.aspx | 8 +-
.../HSSE/Solution/LargerHazardEdit.aspx.cs | 2 +
.../LargerHazardEdit.aspx.designer.cs | 80 +-
.../HSSE/Solution/LargerHazardList.aspx | 4 +
.../HSSE/Solution/LargerHazardList.aspx.cs | 4 +
.../HSSE/Solution/LargerHazardView.aspx | 11 +
.../HSSE/Solution/LargerHazardView.aspx.cs | 1 +
.../LargerHazardView.aspx.designer.cs | 27 +
.../ZHGL/Supervise/UnitHazardRegister.aspx | 29 +-
.../ZHGL/Supervise/UnitHazardRegister.aspx.cs | 5 +-
.../Supervise/UnitHazardRegisterDetailIn.aspx | 80 +
.../UnitHazardRegisterDetailIn.aspx.cs | 450 ++++++
...nitHazardRegisterDetailIn.aspx.designer.cs | 143 ++
.../Supervise/UnitHazardRegisterEdit.aspx | 21 +-
.../Supervise/UnitHazardRegisterEdit.aspx.cs | 301 ++--
.../UnitHazardRegisterEdit.aspx.designer.cs | 27 +
.../Supervise/UnitHazardRegisterRecord.aspx | 4 +-
.../UnitHazardRegisterRecord.aspx.cs | 5 +-
.../UnitHazardRegisterRecordEdit.aspx | 24 +-
.../UnitHazardRegisterRecordEdit.aspx.cs | 5 +-
...tHazardRegisterRecordEdit.aspx.designer.cs | 54 +-
.../APIItem/DataShare/CheckControlSyncData.cs | 192 +++
.../APIItem/DataShare/CqmsMeetingSyncData.cs | 179 +++
.../DataShare/HazardRegisterSyncData.cs | 11 +
.../DataShare/InspectionMachineSyncData.cs | 185 +++
.../Model/APIItem/DataShare/PersonSyncData.cs | 19 +
SGGL/Model/Model.cs | 1324 ++++++++++++++++-
SGGL/Model/Model.csproj | 3 +
SGGL/Model/ZHGL/DataSync/BaseEntities.cs | 4 +
SGGL/Model/ZHGL/DataSync/HSSEDataItem.cs | 13 +-
.../ZHGL/DataSync/LargeEngineeringOutput.cs | 24 +
SGGL/Model/ZHGL/UnitHazardRegisterInput.cs | 5 +
SGGL/Model/ZHGL/UnitHazardRegisterOutput.cs | 13 +-
.../CQMS/CheckControlSyncController.cs | 136 ++
.../HSSE/CheckSpecialController.cs | 55 +
SGGL/WebAPI/Controllers/PersonController.cs | 6 +-
SGGL/WebAPI/Filter/TestPermissionAttribute.cs | 6 +-
SGGL/WebAPI/WebAPI.csproj | 1 +
68 files changed, 5316 insertions(+), 432 deletions(-)
create mode 100644 DataBase/版本日志/SGGLDB_V2026-02-27-gf.sql
create mode 100644 DataBase/版本日志/SGGLDB_V2026-03-09-geh.sql
create mode 100644 DataBase/版本日志/SGGLDB_V2026-03-10-geh(View_Hazard_HazardRegister).sql
create mode 100644 DataBase/版本日志/SGGLDB_V2026-03-10-gf.sql
create mode 100644 DataBase/版本日志/SGGLDB_V2026-03-12-xiaj.sql
create mode 100644 DataBase/版本日志/SGGLDB_V2026-03-16-geh.sql
create mode 100644 DataBase/版本日志/SGGLDB_V2026-03-21-xiaj.sql
create mode 100644 SGGL/BLL/DataShare/CQMS/APICheckControlSyncService.cs
create mode 100644 SGGL/BLL/DataShare/CQMS/APIInspectionMachineSyncService.cs
create mode 100644 SGGL/FineUIPro.Web/File/Excel/DataIn/企业大检查明细导入模板.xls
create mode 100644 SGGL/FineUIPro.Web/File/Excel/DataIn/现场车辆管理导入模板.xls
create mode 100644 SGGL/FineUIPro.Web/ZHGL/Supervise/UnitHazardRegisterDetailIn.aspx
create mode 100644 SGGL/FineUIPro.Web/ZHGL/Supervise/UnitHazardRegisterDetailIn.aspx.cs
create mode 100644 SGGL/FineUIPro.Web/ZHGL/Supervise/UnitHazardRegisterDetailIn.aspx.designer.cs
create mode 100644 SGGL/Model/APIItem/DataShare/CheckControlSyncData.cs
create mode 100644 SGGL/Model/APIItem/DataShare/CqmsMeetingSyncData.cs
create mode 100644 SGGL/Model/APIItem/DataShare/InspectionMachineSyncData.cs
create mode 100644 SGGL/WebAPI/Controllers/CQMS/CheckControlSyncController.cs
diff --git a/DataBase/版本日志/SGGLDB_V2026-02-27-gf.sql b/DataBase/版本日志/SGGLDB_V2026-02-27-gf.sql
new file mode 100644
index 00000000..543fd6a5
--- /dev/null
+++ b/DataBase/版本日志/SGGLDB_V2026-02-27-gf.sql
@@ -0,0 +1,106 @@
+-- -豸
+INSERT INTO [dbo].[Sys_Menu] ( [MenuId], [MenuName], [Icon], [Url], [SortIndex], [SuperMenu], [MenuType], [IsOffice], [IsEnd], [IsUsed] )
+VALUES
+ ( N'B01EC58D-8E89-4433-A7B7-0D792D13E1A5', N'豸', NULL, '', 65, N'0', N'Menu_System_Qwms_P_Cqms', '0', '0', '0' );
+ INSERT INTO [dbo].[Sys_Menu] ( [MenuId], [MenuName], [Icon], [Url], [SortIndex], [SuperMenu], [MenuType], [IsOffice], [IsEnd], [IsUsed] )
+VALUES
+ ( N'24A5D009-4972-43F8-BE87-6F392D000FDC', N'䱸ƻ', '','CQMS/Comprehensive/InspectionMachinePlan.aspx', 10, N'B01EC58D-8E89-4433-A7B7-0D792D13E1A5', N'Menu_System_Qwms_P_Cqms', '0', '1', '0' );
+ INSERT INTO dbo.Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,SortIndex)
+ VALUES('505E3016-1459-44ED-A1C2-299EC82D64C0','24A5D009-4972-43F8-BE87-6F392D000FDC','',1)
+ INSERT INTO dbo.Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,SortIndex)
+ VALUES('B2966530-03FE-4E77-BA31-AF3EF5335711','24A5D009-4972-43F8-BE87-6F392D000FDC','',2)
+ INSERT INTO dbo.Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,SortIndex)
+ VALUES('C7898E06-53E8-4D8A-8440-25C451B5CFAE','24A5D009-4972-43F8-BE87-6F392D000FDC','ɾ',3)
+ INSERT INTO dbo.Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,SortIndex)
+ VALUES('23659438-D8CA-4451-810C-BD0130BE1ED4','24A5D009-4972-43F8-BE87-6F392D000FDC','',4)
+ GO
+
+INSERT INTO [dbo].[Sys_Menu] ( [MenuId], [MenuName], [Icon], [Url], [SortIndex], [SuperMenu], [MenuType], [IsOffice], [IsEnd], [IsUsed] )
+VALUES
+ ( N'2C0E4E25-DB0D-441A-ABAB-3F0A68C5A6CB', N'豸', NULL, '', 65, N'0', N'Menu_System_Qwms_S_Cqms', '1', '0', '1' );
+ INSERT INTO [dbo].[Sys_Menu] ( [MenuId], [MenuName], [Icon], [Url], [SortIndex], [SuperMenu], [MenuType], [IsOffice], [IsEnd], [IsUsed] )
+VALUES
+ ( N'7FDC5937-226B-4C96-9854-D7CD77507479', N'䱸ƻ', '','CQMS/Comprehensive/InspectionMachinePlan.aspx', 10, N'2C0E4E25-DB0D-441A-ABAB-3F0A68C5A6CB', N'Menu_System_Qwms_S_Cqms', '1', '1', '0' );
+
+CREATE TABLE [dbo].[Comprehensive_InspectionMachinePlan](
+ [InspectionMachinePlanId] [nvarchar](50) NOT NULL,
+ [ProjectId] [nvarchar](50) NULL,
+ [UnitId] [nvarchar](50) NULL,
+ [InspectionMachineCode] [nvarchar](50) NULL,
+ [InspectionMachineName] [nvarchar](200) NULL,
+ [SpecificationModel] [nvarchar](50) NULL,
+ [Precision] [nvarchar](50) NULL,
+ [Unit] [nvarchar](50) NULL,
+ [UnitsCount] [int] NULL,
+ [NeedTime] [datetime] NULL,
+ [NeedRef] [nvarchar](500) NULL,
+ [CompileMan] [nvarchar](50) NULL,
+ [CompileDate] [datetime] NULL,
+ CONSTRAINT [PK_Comprehensive_InspectionMachinePlan] PRIMARY KEY CLUSTERED
+(
+ [InspectionMachinePlanId] ASC
+)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
+) ON [PRIMARY]
+
+GO
+
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Comprehensive_InspectionMachinePlan', @level2type=N'COLUMN',@level2name=N'InspectionMachinePlanId'
+GO
+
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Ŀid' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Comprehensive_InspectionMachinePlan', @level2type=N'COLUMN',@level2name=N'ProjectId'
+GO
+
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'λid' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Comprehensive_InspectionMachinePlan', @level2type=N'COLUMN',@level2name=N'UnitId'
+GO
+
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Comprehensive_InspectionMachinePlan', @level2type=N'COLUMN',@level2name=N'InspectionMachineCode'
+GO
+
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'豸' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Comprehensive_InspectionMachinePlan', @level2type=N'COLUMN',@level2name=N'InspectionMachineName'
+GO
+
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ͺ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Comprehensive_InspectionMachinePlan', @level2type=N'COLUMN',@level2name=N'SpecificationModel'
+GO
+
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Comprehensive_InspectionMachinePlan', @level2type=N'COLUMN',@level2name=N'Precision'
+GO
+
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'λ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Comprehensive_InspectionMachinePlan', @level2type=N'COLUMN',@level2name=N'Unit'
+GO
+
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Comprehensive_InspectionMachinePlan', @level2type=N'COLUMN',@level2name=N'UnitsCount'
+GO
+
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Ҫʱ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Comprehensive_InspectionMachinePlan', @level2type=N'COLUMN',@level2name=N'NeedTime'
+GO
+
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Ҫ˵ʹó' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Comprehensive_InspectionMachinePlan', @level2type=N'COLUMN',@level2name=N'NeedRef'
+GO
+
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Comprehensive_InspectionMachinePlan', @level2type=N'COLUMN',@level2name=N'CompileMan'
+GO
+
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Comprehensive_InspectionMachinePlan', @level2type=N'COLUMN',@level2name=N'CompileDate'
+GO
+
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'䱸ƻ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Comprehensive_InspectionMachinePlan'
+GO
+
+update Sys_Menu set MenuName='ߵǼDZ',SuperMenu='B01EC58D-8E89-4433-A7B7-0D792D13E1A5',SortIndex=20 where MenuId='70194C2C-0DD8-4B96-A80A-59AE818A0007'
+GO
+
+alter table Comprehensive_InspectionMachine add MeasurementRange nvarchar(50) null
+alter table Comprehensive_InspectionMachine add Precision nvarchar(50) null
+alter table Comprehensive_InspectionMachine add FactoryNumber nvarchar(50) null
+alter table Comprehensive_InspectionMachine add FactoryDate datetime null
+alter table Comprehensive_InspectionMachine add ManagementLevel nvarchar(50) null
+alter table Comprehensive_InspectionMachine add UseDate datetime null
+alter table Comprehensive_InspectionMachine add IsSpecialCycle bit null
+alter table Comprehensive_InspectionMachine add CalibrationCycle int null
+alter table Comprehensive_InspectionMachine add SpecialCalibrationCycle nvarchar(50) null
+alter table Comprehensive_InspectionMachine add CalibrationDate datetime null
+alter table Comprehensive_InspectionMachine add NextCalibrationDate datetime null
+alter table Comprehensive_InspectionMachine add CalibrationWarning datetime null
+alter table Comprehensive_InspectionMachine add Remark nvarchar(500) null
+GO
+
diff --git a/DataBase/版本日志/SGGLDB_V2026-03-09-geh.sql b/DataBase/版本日志/SGGLDB_V2026-03-09-geh.sql
new file mode 100644
index 00000000..50ed1606
--- /dev/null
+++ b/DataBase/版本日志/SGGLDB_V2026-03-09-geh.sql
@@ -0,0 +1,12 @@
+
+
+-- 总包单位接口地址
+alter table Base_Project add SubjectUnitApiUrl nvarchar(100) COLLATE Chinese_PRC_CI_AS NULL;
+-- 总包单位服务地址
+alter table Base_Project add SubjectUnitWebUrl nvarchar(100) COLLATE Chinese_PRC_CI_AS NULL;
+go
+
+
+
+
+
diff --git a/DataBase/版本日志/SGGLDB_V2026-03-10-geh(View_Hazard_HazardRegister).sql b/DataBase/版本日志/SGGLDB_V2026-03-10-geh(View_Hazard_HazardRegister).sql
new file mode 100644
index 00000000..b2fdea6c
--- /dev/null
+++ b/DataBase/版本日志/SGGLDB_V2026-03-10-geh(View_Hazard_HazardRegister).sql
@@ -0,0 +1,97 @@
+
+---修改安全检查视图(添加数据来源字段Registration.DataSource)
+ALTER VIEW [dbo].[View_Hazard_HazardRegister] AS
+SELECT Registration.HazardRegisterId,
+ Registration.HazardCode,
+ Registration.RegisterDate,
+ Registration.RegisterDef,
+ Registration.Rectification,
+ Registration.Place,
+ Registration.ResponsibleUnit,
+ Registration.Observer,
+ Registration.HazardValue,
+ case when Registration.HazardValue='3' then '重大' else '一般' end as Risk_Level,
+ Registration.RectifiedDate,
+ Registration.ProjectId,
+ Project.UnitId AS PUnitId,
+ Project.ProjectState as ProjectState,
+ null as isDelete,
+ ProjectUnit.UnitName AS PUnitName,
+ case when ProjectUnit.UnitId='d72a27c9-4ba9-41c5-ab0b-c010409f20f2' then 1 else 0 end as IsThisUnit,
+ ProjectUnit.IsBranch as IsBranch,
+ Project.ProjectAddress,
+ Registration.states,
+ Registration.IsEffective,
+ Registration.ResponsibleMan,
+ Registration.CheckManId,
+ Registration.CheckTime,
+ Registration.RectificationPeriod,
+ Registration.ImageUrl,
+ Registration.RectificationImageUrl,
+ Registration.RectificationTime,
+ Registration.ConfirmMan,
+ Registration.ConfirmDate,
+ Registration.HandleIdea,
+ Registration.CutPayment,
+ Registration.ProblemTypes,
+ Registration.CheckSpecialId,
+ Registration.CheckItemDetailId,
+ Registration.SupCheckItemSetId,
+ Registration.CheckItemSetId,
+ Registration.SafeSupervisionId,
+ Registration.SafeSupervisionIsOK,
+ Registration.WorkPackageId,
+ Registration.WorkPackageName,
+ Registration.IsUpdate,
+ Project.ProjectName,
+ Registration.CheckCycle,
+ ISNULL(WorkArea.UnitWorkName,'') AS WorkAreaName,
+ Unit.UnitName as ResponsibilityUnitName,
+ Unit.CollCropCode as ResponsibilityUnitCollCropCode,
+ User1.PersonName AS ResponsibilityManName,
+ ISNULL(User1.Telephone,'') AS ResponsibilityManTel,
+ User2.PersonName AS CheckManName,
+ ISNULL(User2.Telephone,'') AS CheckManTel,
+ User2.UnitId AS SendUnitId,
+ User3.PersonName AS ConfirmManName,
+ ISNULL(User3.Telephone,'') AS ConfirmManTel,
+ User4.PersonName AS ResponsibilityManName2,
+ CCManNames = STUFF(( SELECT ',' + PersonName FROM Person_Persons
+ where PATINDEX('%,' + RTRIM(Person_Persons.PersonId) + ',%',',' + Registration.CCManIds + ',')>0
+ ORDER BY PATINDEX('%,' + RTRIM(Registration.CCManIds) + ',%',',' + Registration.CCManIds + ',')
+ FOR XML PATH('')), 1, 1,''),
+ ISNULL(User4.Telephone,'') AS ResponsibilityMan2Tel,
+ (CASE WHEN Registration.states='1' and (Registration.SafeSupervisionIsOK is null OR Registration.SafeSupervisionIsOK=0) THEN '待整改'
+ WHEN Registration.states='1' and Registration.SafeSupervisionIsOK=1 THEN '合格'
+ WHEN Registration.states='2' THEN '已整改-待复查验收'
+ WHEN Registration.states='3' THEN '已闭环'
+ ELSE '已作废' END ) AS StatesStr,
+ RegisterTypes.RegisterTypesId,
+ RegisterTypes.RegisterTypesName,
+ Registration.DIC_ID,
+ Registration.CCManIds,
+ Registration.DataSource,
+ Registration.RegisterTypes2Id ,
+ RegisterTypes2.RegisterTypesName as RegisterTypes2Name,
+ Registration.RegisterTypes3Id ,
+ RegisterTypes3.RegisterTypesName as RegisterTypes3Name,
+ Registration.RegisterTypes4Id ,
+ RegisterTypes4.RegisterTypesName as RegisterTypes4Name,
+ Registration.Requirements
+FROM dbo.HSSE_Hazard_HazardRegister AS Registration
+LEFT JOIN dbo.Base_Project AS Project ON Project.ProjectId = Registration.ProjectId
+LEFT JOIN dbo.Base_Unit AS ProjectUnit ON Project.UnitId = ProjectUnit.UnitId
+LEFT JOIN dbo.WBS_UnitWork AS WorkArea ON WorkArea.UnitWorkId = Registration.Place
+LEFT JOIN dbo.HSSE_Hazard_HazardRegisterTypes AS RegisterTypes ON RegisterTypes.RegisterTypesId = Registration.RegisterTypesId
+LEFT JOIN dbo.HSSE_Hazard_HazardRegisterTypes AS RegisterTypes2 ON RegisterTypes2.RegisterTypesId = Registration.RegisterTypes2Id
+LEFT JOIN dbo.HSSE_Hazard_HazardRegisterTypes AS RegisterTypes3 ON RegisterTypes3.RegisterTypesId = Registration.RegisterTypes3Id
+LEFT JOIN dbo.HSSE_Hazard_HazardRegisterTypes AS RegisterTypes4 ON RegisterTypes4.RegisterTypesId = Registration.RegisterTypes4Id
+LEFT JOIN dbo.Base_Unit AS Unit ON Unit.UnitId = Registration.ResponsibleUnit
+LEFT JOIN dbo.Person_Persons AS User1 ON User1.PersonId = Registration.ResponsibleMan
+LEFT JOIN dbo.Person_Persons AS User2 ON User2.PersonId = Registration.CheckManId
+LEFT JOIN dbo.Person_Persons AS User3 ON User3.PersonId = Registration.ConfirmMan
+LEFT JOIN dbo.Person_Persons AS User4 ON User4.PersonId = Registration.ResponsibleMan2
+
+GO
+
+
diff --git a/DataBase/版本日志/SGGLDB_V2026-03-10-gf.sql b/DataBase/版本日志/SGGLDB_V2026-03-10-gf.sql
new file mode 100644
index 00000000..dacf9c68
--- /dev/null
+++ b/DataBase/版本日志/SGGLDB_V2026-03-10-gf.sql
@@ -0,0 +1,7 @@
+alter table Check_CheckControl add DataSource char(1) COLLATE Chinese_PRC_CI_AS NULL;
+EXEC sp_addextendedproperty
+'MS_Description', N'Դ(1ܰ,0λ)',
+'SCHEMA', N'dbo',
+'TABLE', N'Check_CheckControl',
+'COLUMN', N'DataSource'
+GO
\ No newline at end of file
diff --git a/DataBase/版本日志/SGGLDB_V2026-03-12-xiaj.sql b/DataBase/版本日志/SGGLDB_V2026-03-12-xiaj.sql
new file mode 100644
index 00000000..4307d6c7
--- /dev/null
+++ b/DataBase/版本日志/SGGLDB_V2026-03-12-xiaj.sql
@@ -0,0 +1,88 @@
+
+--Σ̷ֶΡ״̬ 0ˡ1С2ɡ
+IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'Solution_LargerHazard' AND COLUMN_NAME = 'ApprovalState')
+BEGIN
+ ALTER TABLE Solution_LargerHazard ADD ApprovalState char(1);
+ EXEC sp_addextendedproperty 'MS_Description', N'״̬(0ˡ1С2)','SCHEMA', N'dbo','TABLE', N'Solution_LargerHazard','COLUMN', N'ApprovalState'
+END
+GO
+
+--Σ̷ʷݡ״̬
+--ҵ״̬Ϊδʼ״̬ĬΪˣҵ״̬Ϊҵк깤״̬ĬΪ
+update Solution_LargerHazard set ApprovalState='0' where ApprovalState is null and States = '1'
+GO
+update Solution_LargerHazard set ApprovalState='2' where ApprovalState is null and States in ('2','3')
+GO
+
+
+IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'HSSEData_HSSE' AND COLUMN_NAME = 'AwaitApprovalNum')
+BEGIN
+ ALTER TABLE HSSEData_HSSE ADD AwaitApprovalNum int;
+ ALTER TABLE HSSEData_HSSE ADD PendingApprovalNum int;
+ ALTER TABLE HSSEData_HSSE ADD CompletedApprovalNum int;
+ ALTER TABLE HSSEData_HSSE ADD SuperAwaitApprovalNum int;
+ ALTER TABLE HSSEData_HSSE ADD SuperPendingApprovalNum int;
+ ALTER TABLE HSSEData_HSSE ADD SuperCompletedApprovalNum int;
+ EXEC sp_addextendedproperty 'MS_Description', N'Σ̴˸','SCHEMA', N'dbo','TABLE', N'HSSEData_HSSE','COLUMN', N'AwaitApprovalNum';
+ EXEC sp_addextendedproperty 'MS_Description', N'Σи','SCHEMA', N'dbo','TABLE', N'HSSEData_HSSE','COLUMN', N'PendingApprovalNum';
+ EXEC sp_addextendedproperty 'MS_Description', N'Σɸ','SCHEMA', N'dbo','TABLE', N'HSSEData_HSSE','COLUMN', N'CompletedApprovalNum';
+ EXEC sp_addextendedproperty 'MS_Description', N'Σ̴˸','SCHEMA', N'dbo','TABLE', N'HSSEData_HSSE','COLUMN', N'SuperAwaitApprovalNum';
+ EXEC sp_addextendedproperty 'MS_Description', N'Σи','SCHEMA', N'dbo','TABLE', N'HSSEData_HSSE','COLUMN', N'SuperPendingApprovalNum';
+ EXEC sp_addextendedproperty 'MS_Description', N'Σɸ','SCHEMA', N'dbo','TABLE', N'HSSEData_HSSE','COLUMN', N'SuperCompletedApprovalNum';
+END
+GO
+
+IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'Project_HSSEData_HSSE' AND COLUMN_NAME = 'AwaitApprovalNum')
+BEGIN
+ ALTER TABLE Project_HSSEData_HSSE ADD AwaitApprovalNum int;
+ ALTER TABLE Project_HSSEData_HSSE ADD PendingApprovalNum int;
+ ALTER TABLE Project_HSSEData_HSSE ADD CompletedApprovalNum int;
+ ALTER TABLE Project_HSSEData_HSSE ADD SuperAwaitApprovalNum int;
+ ALTER TABLE Project_HSSEData_HSSE ADD SuperPendingApprovalNum int;
+ ALTER TABLE Project_HSSEData_HSSE ADD SuperCompletedApprovalNum int;
+ EXEC sp_addextendedproperty 'MS_Description', N'Σ̴˸','SCHEMA', N'dbo','TABLE', N'Project_HSSEData_HSSE','COLUMN', N'AwaitApprovalNum';
+ EXEC sp_addextendedproperty 'MS_Description', N'Σи','SCHEMA', N'dbo','TABLE', N'Project_HSSEData_HSSE','COLUMN', N'PendingApprovalNum';
+ EXEC sp_addextendedproperty 'MS_Description', N'Σɸ','SCHEMA', N'dbo','TABLE', N'Project_HSSEData_HSSE','COLUMN', N'CompletedApprovalNum';
+ EXEC sp_addextendedproperty 'MS_Description', N'Σ̴˸','SCHEMA', N'dbo','TABLE', N'Project_HSSEData_HSSE','COLUMN', N'SuperAwaitApprovalNum';
+ EXEC sp_addextendedproperty 'MS_Description', N'Σи','SCHEMA', N'dbo','TABLE', N'Project_HSSEData_HSSE','COLUMN', N'SuperPendingApprovalNum';
+ EXEC sp_addextendedproperty 'MS_Description', N'Σɸ','SCHEMA', N'dbo','TABLE', N'Project_HSSEData_HSSE','COLUMN', N'SuperCompletedApprovalNum';
+END
+GO
+
+
+
+
+
+
+IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'HSSEData_HSSE' AND COLUMN_NAME = 'LargerClosedNum')
+BEGIN
+ ALTER TABLE HSSEData_HSSE ADD LargerClosedNum int;
+ ALTER TABLE HSSEData_HSSE ADD LargerNotClosedNum int;
+ EXEC sp_addextendedproperty 'MS_Description', N'ϴıջ','SCHEMA', N'dbo','TABLE', N'HSSEData_HSSE','COLUMN', N'LargerClosedNum';
+ EXEC sp_addextendedproperty 'MS_Description', N'ϴδ','SCHEMA', N'dbo','TABLE', N'HSSEData_HSSE','COLUMN', N'LargerNotClosedNum';
+END
+GO
+
+IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'Project_HSSEData_HSSE' AND COLUMN_NAME = 'LargerClosedNum')
+BEGIN
+ ALTER TABLE Project_HSSEData_HSSE ADD LargerClosedNum int;
+ ALTER TABLE Project_HSSEData_HSSE ADD LargerNotClosedNum int;
+ EXEC sp_addextendedproperty 'MS_Description', N'ϴıջ','SCHEMA', N'dbo','TABLE', N'Project_HSSEData_HSSE','COLUMN', N'LargerClosedNum';
+ EXEC sp_addextendedproperty 'MS_Description', N'ϴδ','SCHEMA', N'dbo','TABLE', N'Project_HSSEData_HSSE','COLUMN', N'LargerNotClosedNum';
+END
+GO
+
+
+
+--ȥҵĿ
+ALTER TABLE [Supervise_UnitHazardRegister]
+DROP CONSTRAINT [FK_UnitHazardRegister_Project];
+GO
+--ҵ鲹ֶΡ鵥λ
+IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'Supervise_UnitHazardRegister' AND COLUMN_NAME = 'InspectionUnit')
+BEGIN
+ ALTER TABLE Supervise_UnitHazardRegister ADD InspectionUnit nvarchar(50);
+ EXEC sp_addextendedproperty 'MS_Description', N'鵥λ','SCHEMA', N'dbo','TABLE', N'Supervise_UnitHazardRegister','COLUMN', N'InspectionUnit'
+END
+GO
+
diff --git a/DataBase/版本日志/SGGLDB_V2026-03-16-geh.sql b/DataBase/版本日志/SGGLDB_V2026-03-16-geh.sql
new file mode 100644
index 00000000..2d2e1a34
--- /dev/null
+++ b/DataBase/版本日志/SGGLDB_V2026-03-16-geh.sql
@@ -0,0 +1,68 @@
+
+-----定制版根据菜单id进行删除
+----删除奖励通知单菜单
+--delete Sys_Menu where MenuId ='96F21A83-6871-4CC4-8901-1B99C376395C' and MenuType ='Menu_System_Hsse_P_Hsse'
+--delete Sys_Menu where MenuId ='E20357C9-F43A-4ACC-8A50-C735A3A6B438' and MenuType ='Menu_System_Hsse_S_Hsse'
+--go
+----删除奖励统计菜单
+--delete Sys_Menu where MenuId ='C13F1CE7-DAEF-4604-A13F-192621D28DF5' and MenuType ='Menu_System_Hsse_P_Hsse'
+--delete Sys_Menu where MenuId ='2DFAF96D-92B5-47E1-9138-EEE4595D9DEE' and MenuType ='Menu_System_Hsse_S_Hsse'
+--go
+----删除处罚通知单菜单
+--delete Sys_Menu where MenuId ='755F1C1D-2178-47D8-9F82-A501B53A2436' and MenuType ='Menu_System_Hsse_P_Hsse'
+--delete Sys_Menu where MenuId ='4EA8BBE5-B9BC-414E-961E-77CEA9E485F0' and MenuType ='Menu_System_Hsse_S_Hsse'
+--go
+----删除处罚统计菜单
+--delete Sys_Menu where MenuId ='CCD0E55B-300A-454B-8559-155ADAD386AE' and MenuType ='Menu_System_Hsse_P_Hsse'
+--delete Sys_Menu where MenuId ='C1093C81-F231-405B-9E40-8C409D84024A' and MenuType ='Menu_System_Hsse_S_Hsse'
+--go
+----删除违规人员记录菜单
+--delete Sys_Menu where MenuId ='06958288-96F4-4291-909A-FFC2FC76814D' and MenuType ='Menu_System_Hsse_P_Hsse'
+--delete Sys_Menu where MenuId ='D6DB64E8-1FE8-47BB-81D7-70AEFB05E7A9' and MenuType ='Menu_System_Hsse_S_Hsse'
+--go
+----删除评优评奖加分项菜单
+--delete Sys_Menu where MenuId ='9682053F-597E-4E10-B130-93624541387A' and MenuType ='Menu_System_Hsse_P_Hsse'
+--delete Sys_Menu where MenuId ='1590207E-8C5C-4D82-AF34-BFB832FB526E' and MenuType ='Menu_System_Hsse_S_Hsse'
+--go
+----删除安全隐患报告数据菜单
+--delete Sys_Menu where MenuId ='04B0774F-FEEF-421D-8964-D9CF6582AEAF' and MenuType ='Menu_System_Hsse_P_Hsse'
+--delete Sys_Menu where MenuId ='167B9D7C-BD96-4F19-9035-D98527C2DCF5' and MenuType ='Menu_System_Hsse_S_Hsse'
+--go
+
+----删除获奖证书或奖杯、安全质量环保奖项菜单
+--delete Sys_Menu where MenuId ='9A034CAD-C7D5-4DE4-9FF5-828D35FFEE28' and MenuType ='Menu_System_Hsse_P_Hsse'
+--delete Sys_Menu where MenuId ='13DDC402-D72E-49C0-A170-41B75E43D9F3' and MenuType ='Menu_System_Hsse_P_Hsse'
+--go
+
+
+
+
+
+
+
+--这个菜单放到质量的人员报验下
+--IF NOT EXISTS (SELECT * FROM Sys_Menu WHERE MenuId = '67C53963-91E5-4892-8286-B646A6E339CC' and MenuType = 'Menu_System_Qwms_P_Cqms')
+--BEGIN
+--INSERT INTO [dbo].[Sys_Menu] ( [MenuId], [MenuName], [Icon], [Url], [SortIndex], [SuperMenu], [MenuType], [IsOffice], [IsEnd], [IsUsed] )
+--VALUES
+-- ( N'67C53963-91E5-4892-8286-B646A6E339CC', N'质量人员报验(通用)', NULL, N'CQMS/Comprehensive/CqmsPerson.aspx', 50, N'672F4FE4-7E6A-4D47-8DD9-1FA4535C835C', N'Menu_System_Qwms_P_Cqms', '0', '1', '1' );
+--END
+--GO
+--IF NOT EXISTS (SELECT * FROM Sys_Menu WHERE MenuId = '0908A5FD-0865-4747-AA2D-4186B5EEC9F8' and MenuType = 'Menu_System_Qwms_S_Cqms')
+--BEGIN
+--INSERT INTO [dbo].[Sys_Menu] ( [MenuId], [MenuName], [Icon], [Url], [SortIndex], [SuperMenu], [MenuType], [IsOffice], [IsEnd], [IsUsed] )
+--VALUES
+-- ( N'0908A5FD-0865-4747-AA2D-4186B5EEC9F8', N'质量人员报验(通用)', NULL, N'CQMS/Comprehensive/CqmsPerson.aspx', 50, N'53C28E81-09F7-4F26-B17D-12DDA1764A74', N'Menu_System_Qwms_S_Cqms', '0', '1', '1' );
+--END
+--GO
+
+
+
+
+--alter table SitePerson_Person add [IsTrain] bit NULL;
+--EXEC sp_addextendedproperty
+--'MS_Description', N'质量是否培训',
+--'SCHEMA', N'dbo',
+--'TABLE', N'SitePerson_Person',
+--'COLUMN', N'IsTrain'
+--GO
\ No newline at end of file
diff --git a/DataBase/版本日志/SGGLDB_V2026-03-21-xiaj.sql b/DataBase/版本日志/SGGLDB_V2026-03-21-xiaj.sql
new file mode 100644
index 00000000..f6d4ed9d
--- /dev/null
+++ b/DataBase/版本日志/SGGLDB_V2026-03-21-xiaj.sql
@@ -0,0 +1,130 @@
+alter table Base_WorkPost add IsCQMSCheck bit null
+GO
+alter table SitePerson_Person add Major nvarchar(50) null
+GO
+--Ϣ⣺ΣռΪݴ
+update Hazard_HazardSelectedItem
+set HazardLevel='84e1d680-5bfe-48d2-a255-59f43aa3615a'
+where HazardLevel is null and HazardJudge_D<=120
+GO
+update Hazard_HazardSelectedItem
+set HazardLevel='01537cc5-e8d2-497c-ba53-1faca1faf495'
+where HazardLevel is null and HazardJudge_D<=170 and HazardJudge_D>120
+GO
+update Hazard_HazardSelectedItem
+set HazardLevel='6baaf2bb-ee7c-410c-9a32-13208626c467'
+where HazardLevel is null and HazardJudge_D<=320 and HazardJudge_D>170
+GO
+update Hazard_HazardSelectedItem
+set HazardLevel='c9e6285c-2da3-4997-8dc9-fb6ab404346e'
+where HazardLevel is null and HazardJudge_D>320
+GO
+
+
+
+
+--ֶ߲ΣԴ˵
+IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'Comprehensive_InspectionMachine' AND COLUMN_NAME = 'SourceDes')
+BEGIN
+ ALTER TABLE Comprehensive_InspectionMachine ADD SourceDes nvarchar(500);
+END
+GO
+
+
+
+
+
+
+CREATE TABLE [dbo].[Base_MaterialUnit](
+ [MaterialUnitId] [nvarchar](50) NOT NULL,
+ [MaterialUnitName] [nvarchar](100) NULL,
+ [MaterialUnitCode] [nvarchar](50) NULL,
+ [Remark] [nvarchar](200) NULL,
+ CONSTRAINT [PK_Base_MaterialUnit] PRIMARY KEY CLUSTERED
+(
+ [MaterialUnitId] ASC
+)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
+) ON [PRIMARY]
+GO
+
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'λid' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_MaterialUnit', @level2type=N'COLUMN',@level2name=N'MaterialUnitId'
+GO
+
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'λ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_MaterialUnit', @level2type=N'COLUMN',@level2name=N'MaterialUnitName'
+GO
+
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_MaterialUnit', @level2type=N'COLUMN',@level2name=N'MaterialUnitCode'
+GO
+
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ע' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_MaterialUnit', @level2type=N'COLUMN',@level2name=N'Remark'
+GO
+
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ʵλ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_MaterialUnit'
+GO
+
+
+
+
+
+
+CREATE TABLE [dbo].[MaterialInAndOutRecord](
+ [Id] [nvarchar](50) NOT NULL,
+ [ProjectId] [nvarchar](50) NULL,
+ [GoodsCategoryId] [nvarchar](50) NULL,
+ [GoodsCategoryName] [nvarchar](100) NULL,
+ [MaterialModel] [nvarchar](100) NULL,
+ [InOutDate] [datetime] NULL,
+ [UnitId] [nvarchar](50) NULL,
+ [InOrOut] [nvarchar](10) NULL,
+ [Number] [decimal](18, 2) NULL,
+ [MaterialUnitId] [nvarchar](50) NULL,
+ [Remark] [nvarchar](200) NULL,
+ [CompileMan] [nvarchar](50) NULL,
+ [CompileDate] [datetime] NULL,
+ CONSTRAINT [PK_MaterialInAndOutRecord] PRIMARY KEY CLUSTERED
+(
+ [Id] ASC
+)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
+) ON [PRIMARY]
+GO
+
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MaterialInAndOutRecord', @level2type=N'COLUMN',@level2name=N'Id'
+GO
+
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MaterialInAndOutRecord', @level2type=N'COLUMN',@level2name=N'GoodsCategoryId'
+GO
+
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MaterialInAndOutRecord', @level2type=N'COLUMN',@level2name=N'GoodsCategoryName'
+GO
+
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ͺ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MaterialInAndOutRecord', @level2type=N'COLUMN',@level2name=N'MaterialModel'
+GO
+
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ʱ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MaterialInAndOutRecord', @level2type=N'COLUMN',@level2name=N'InOutDate'
+GO
+
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'λ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MaterialInAndOutRecord', @level2type=N'COLUMN',@level2name=N'UnitId'
+GO
+
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'/' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MaterialInAndOutRecord', @level2type=N'COLUMN',@level2name=N'InOrOut'
+GO
+
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MaterialInAndOutRecord', @level2type=N'COLUMN',@level2name=N'Number'
+GO
+
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ʵλ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MaterialInAndOutRecord', @level2type=N'COLUMN',@level2name=N'MaterialUnitId'
+GO
+
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ע' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MaterialInAndOutRecord', @level2type=N'COLUMN',@level2name=N'Remark'
+GO
+
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MaterialInAndOutRecord', @level2type=N'COLUMN',@level2name=N'CompileMan'
+GO
+
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ʱ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MaterialInAndOutRecord', @level2type=N'COLUMN',@level2name=N'CompileDate'
+GO
+
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ʵλ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'MaterialInAndOutRecord'
+GO
+
+
diff --git a/SGGL/BLL/API/HSSE/APICheckSpecialService.cs b/SGGL/BLL/API/HSSE/APICheckSpecialService.cs
index aa4b3702..b52417bb 100644
--- a/SGGL/BLL/API/HSSE/APICheckSpecialService.cs
+++ b/SGGL/BLL/API/HSSE/APICheckSpecialService.cs
@@ -386,6 +386,117 @@ namespace BLL
}
}
}
- #endregion
+ #endregion
+
+ #region 新保存Check_CheckSpecial
+
+ ///
+ /// 新保存Check_CheckSpecial
+ ///
+ /// 处罚通知单
+ ///
+ public static string SaveCheckSpecialNew(Model.CheckSpecialItem newItem)
+ {
+ using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
+ {
+ string message = string.Empty;
+ Model.Check_CheckSpecial newCheckSpecial = new Model.Check_CheckSpecial
+ {
+ CheckSpecialId = newItem.CheckSpecialId,
+ CheckSpecialCode = newItem.CheckSpecialCode,
+ CheckType = newItem.CheckType,
+ ProjectId = newItem.ProjectId,
+ CheckPerson = newItem.CheckPersonId,
+ CheckTime = Funs.GetNewDateTime(newItem.CheckTime),
+ DaySummary = System.Web.HttpUtility.HtmlEncode(newItem.DaySummary),
+ PartInUnits = newItem.PartInUnitIds,
+ PartInPersonIds = newItem.PartInPersonIds,
+ PartInPersons = Person_PersonsService.getPersonsNamesPersonIds(newItem.PartInPersonIds),
+ PartInPersonNames = newItem.PartInPersonNames2,
+ CompileMan = newItem.CompileManId,
+ States = Const.State_0,
+ };
+ if (newItem.CheckType == "0")
+ {
+ newCheckSpecial.CheckItemSetId = newItem.CheckItemSetId;
+ }
+
+ if (!string.IsNullOrEmpty(newItem.States))
+ {
+ newCheckSpecial.States = newItem.States;
+ }
+ if (newItem.CheckSpecialDetailItems == null || newItem.CheckSpecialDetailItems.Count() == 0)
+ {
+ if (newItem.States == Const.State_1)
+ {
+ newCheckSpecial.States = Const.State_2;
+ }
+ }
+ var updateCheckSpecial =
+ db.Check_CheckSpecial.FirstOrDefault(x => x.CheckSpecialId == newItem.CheckSpecialId);
+ if (updateCheckSpecial == null)
+ {
+ newCheckSpecial.CheckSpecialId = SQLHelper.GetNewID();
+ newCheckSpecial.CheckSpecialCode =
+ CodeRecordsService.ReturnCodeByMenuIdProjectId(Const.ProjectCheckSpecialMenuId,
+ newCheckSpecial.ProjectId, string.Empty);
+ db.Check_CheckSpecial.InsertOnSubmit(newCheckSpecial);
+ db.SubmitChanges();
+ ////增加一条编码记录
+ BLL.CodeRecordsService.InsertCodeRecordsByMenuIdProjectIdUnitId(BLL.Const.ProjectCheckSpecialMenuId,
+ newCheckSpecial.ProjectId, null, newCheckSpecial.CheckSpecialId, newCheckSpecial.CheckTime);
+ }
+ else
+ {
+ Check_CheckSpecialService.UpdateCheckSpecial(newCheckSpecial);
+ }
+
+ ////保存附件
+ if (!string.IsNullOrEmpty(newItem.AttachUrl1))
+ {
+ UploadFileService.SaveAttachUrl(
+ UploadFileService.GetSourceByAttachUrl(newItem.AttachUrl1, 10, null), newItem.AttachUrl1,
+ Const.ProjectCheckSpecialMenuId, newCheckSpecial.CheckSpecialId);
+ }
+ else
+ {
+ CommonService.DeleteAttachFileById(Const.ProjectCheckSpecialMenuId, newCheckSpecial.CheckSpecialId);
+ }
+
+ ///// 新增检查项
+ if (newItem.CheckSpecialDetailItems != null && newItem.CheckSpecialDetailItems.Count() > 0)
+ {
+ foreach (var item in newItem.CheckSpecialDetailItems)
+ {
+ item.CheckSpecialId = newCheckSpecial.CheckSpecialId;
+ SaveCheckSpecialDetail(item);
+ }
+
+ //// 单据完成后 系统自动按照单位 整改要求生成隐患整改单
+ if (newItem.States == Const.State_1)
+ {
+ var getC = newItem.CheckSpecialDetailItems.FirstOrDefault(x => x.CompleteStatus == false);
+ if (getC == null)
+ {
+ newCheckSpecial.States = Const.State_2;
+ Check_CheckSpecialService.UpdateCheckSpecial(newCheckSpecial);
+ }
+ else
+ {
+ var detailLists = db.Check_CheckSpecialDetail.Where(x =>
+ x.CheckSpecialId == newCheckSpecial.CheckSpecialId && x.CompleteStatus == false);
+ if (detailLists.Count() > 0)
+ {
+ message = Check_CheckSpecialService.IssueRectification(detailLists.ToList(),
+ newCheckSpecial);
+ }
+ }
+ }
+ }
+
+ return message;
+ }
+ }
+ #endregion
}
}
diff --git a/SGGL/BLL/BLL.csproj b/SGGL/BLL/BLL.csproj
index a94b7f11..61a179c5 100644
--- a/SGGL/BLL/BLL.csproj
+++ b/SGGL/BLL/BLL.csproj
@@ -279,6 +279,8 @@
+
+
diff --git a/SGGL/BLL/Common/Const.cs b/SGGL/BLL/Common/Const.cs
index 70637d27..7cd3157b 100644
--- a/SGGL/BLL/Common/Const.cs
+++ b/SGGL/BLL/Common/Const.cs
@@ -5314,5 +5314,45 @@ namespace BLL
public const string UnitHazardRegisterMenuRecord_Quality = "15511354-9822-4A21-AB24-2483D889FDB8";
#endregion
+
+ ///
+ /// 现场车辆管理导入模板
+ ///
+ public const string CarManagerTemplateUrl = "File\\Excel\\DataIn\\现场车辆管理导入模板.xls";
+
+ ///
+ /// 企业大检查明细导入模板
+ ///
+ public const string UnitHazardRegisterDetailTemplateUrl = "File\\Excel\\DataIn\\企业大检查明细导入模板.xls";
+
+ ///
+ /// 活动类型
+ ///
+ public const string ActivityTypeMenuId = "79116536-BE80-4323-A46F-10222601D5B5";
+
+ ///
+ /// 货物单位类型
+ ///
+ public const string MaterialUnitMenuId = "3DD3F0E8-D3EA-41AA-BA1F-CA3168657D67";
+
+
+ ///
+ /// 物资进出记录
+ ///
+ public const string MaterialInAndOutRecordMenuId = "5DAB5F9A-097A-46D4-8EB1-F60D1D65E812";
+
+
+ ///
+ /// 奖励与惩罚
+ ///
+ public const string RewardAndPunishManagerMenuId = "621A9295-DD82-425A-863D-310AD319752B";
+
+
+ ///
+ /// 质量会议
+ ///
+ public const string CQMS_MeetingMenuId = "30754DF1-CB18-4F53-BB66-2B2A398D7180";
+
+
}
}
\ No newline at end of file
diff --git a/SGGL/BLL/DataShare/APIDataShareSyncService.cs b/SGGL/BLL/DataShare/APIDataShareSyncService.cs
index 50aaa97a..b35386cb 100644
--- a/SGGL/BLL/DataShare/APIDataShareSyncService.cs
+++ b/SGGL/BLL/DataShare/APIDataShareSyncService.cs
@@ -5,7 +5,7 @@ using System.Configuration;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;
-
+using System.Net;
namespace BLL
{
@@ -611,5 +611,46 @@ namespace BLL
}
#endregion
+
+ ///
+ /// 下载并保存文件
+ ///
+ ///
+ ///
+ ///
+ public static byte[] SafeDownloadHeadImageAsync(string webUrl, string fileUrl)
+ {
+ try
+ {
+ if (string.IsNullOrEmpty(fileUrl))
+ return null;
+
+ // 构造完整的远程文件 URL
+ string fullRemoteUrl = $"{webUrl.TrimEnd('/')}/{fileUrl.TrimStart('/')}";
+
+ // 构造本地文件路径
+ string localFilePath = Path.Combine(ConfigurationManager.AppSettings["localRoot"], fileUrl);
+
+ // 确保本地目录存在
+ string directoryPath = Path.GetDirectoryName(localFilePath);
+ if (!string.IsNullOrEmpty(directoryPath) && !Directory.Exists(directoryPath))
+ {
+ Directory.CreateDirectory(directoryPath);
+ }
+ //下载文件到本地
+ using (WebClient client = new WebClient())
+ {
+ byte[] fileData = client.DownloadData(fullRemoteUrl);
+ // 将文件数据写入本地文件
+ File.WriteAllBytes(localFilePath, fileData);
+ return fileData;
+ }
+ }
+ catch (Exception ex)
+ {
+ BLL.ErrLogInfo.WriteLog($"下载头像失败: {fileUrl}, 错误: {ex.Message}");
+ return null;
+ }
+ }
}
}
\ No newline at end of file
diff --git a/SGGL/BLL/DataShare/CQMS/APICheckControlSyncService.cs b/SGGL/BLL/DataShare/CQMS/APICheckControlSyncService.cs
new file mode 100644
index 00000000..ce5812d8
--- /dev/null
+++ b/SGGL/BLL/DataShare/CQMS/APICheckControlSyncService.cs
@@ -0,0 +1,543 @@
+using Newtonsoft.Json.Linq;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Configuration;
+using System.IO;
+using System.Net.Http;
+using System.Threading.Tasks;
+using Model;
+using Newtonsoft.Json;
+using RestSharp;
+using System.Net;
+
+
+namespace BLL
+{
+ ///
+ /// 质量巡检同步服务
+ ///
+ public class APICheckControlSyncService
+ {
+ #region 根据项目、单位获取质量巡检列表
+
+ ///
+ /// 根据项目、单位获取质量巡检列表
+ ///
+ /// 项目ID
+ /// 单位ID
+ /// 数据ID(可选,用于单条数据同步)
+ /// 质量巡检数据列表
+ public static List GetCheckControlListsByProjectIdUnitIdPage(
+ string projectId, string unitId, string dataId = "")
+ {
+ using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
+ {
+ var list = from x in db.Check_CheckControl
+ where x.ProjectId == projectId
+ select x;
+
+ if (!string.IsNullOrEmpty(unitId))
+ {
+ list = list.Where(x => x.UnitId == unitId);
+ }
+
+ if (!string.IsNullOrEmpty(dataId))
+ {
+ list = list.Where(x => x.CheckControlCode == dataId);
+ }
+
+ var dataList = (from x in list
+ join unit in db.Base_Unit on x.UnitId equals unit.UnitId into unitTemp
+ from unit in unitTemp.DefaultIfEmpty()
+ join pro in db.Base_CNProfessional on x.CNProfessionalCode equals pro.CNProfessionalId into proTemp
+ from pro in proTemp.DefaultIfEmpty()
+ join uw in db.WBS_UnitWork on x.UnitWorkId equals uw.UnitWorkId into uwTemp
+ from uw in uwTemp.DefaultIfEmpty()
+ join qqt in db.Base_QualityQuestionType on x.QuestionType equals qqt.QualityQuestionTypeId into qqtTemp
+ from qqt in qqtTemp.DefaultIfEmpty()
+ join u1 in db.Person_Persons on x.CheckMan equals u1.PersonId into u1Temp
+ from u1 in u1Temp.DefaultIfEmpty()
+ join u2 in db.Person_Persons on x.SubmitMan equals u2.PersonId into u2Temp
+ from u2 in u2Temp.DefaultIfEmpty()
+ join pu in db.Base_Unit on x.ProposeUnitId equals pu.UnitId into puTemp
+ from pu in puTemp.DefaultIfEmpty()
+ join att in db.AttachFile on x.CheckControlCode equals att.ToKeyId into attTemp
+ from att in attTemp.DefaultIfEmpty()
+ join attRe in db.AttachFile on x.CheckControlCode+"r" equals attRe.ToKeyId into attReTemp
+ from attRe in attReTemp.DefaultIfEmpty()
+ select new CheckControlSyncItem
+ {
+ CheckControlCode = x.CheckControlCode,
+ ProjectId = x.ProjectId,
+ UnitWorkId = x.UnitWorkId,
+ UnitWorkName = uw.UnitWorkName,
+ UnitId = x.UnitId,
+ UnitName = unit.UnitName,
+ CheckDate = x.CheckDate,
+ CheckMan = x.CheckMan,
+ CheckManName = u1.PersonName,
+ CheckSite = x.CheckSite,
+ DocCode = x.DocCode,
+ CNProfessionalCode = x.CNProfessionalCode,
+ CNProfessionalName = pro.ProfessionalName,
+ QuestionType = x.QuestionType,
+ QuestionTypeName = qqt.QualityQuestionType,
+ QuestionDef = x.QuestionDef,
+ RectifyOpinion = x.RectifyOpinion,
+ LimitDate = x.LimitDate,
+ AttachUrl = att.AttachUrl,
+ HandleWay = x.HandleWay,
+ RectifyDate = x.RectifyDate,
+ ReAttachUrl = attRe.AttachUrl,
+ State = x.State,
+ IsSubmit = x.IsSubmit,
+ SubmitMan = x.SubmitMan,
+ SubmitManName = u2.PersonName,
+ IsOK = x.IsOK,
+ ProposeUnitId = x.ProposeUnitId,
+ ProposeUnitName = pu.UnitName,
+ SaveHandleMan = x.SaveHandleMan,
+ DataSource = "1"
+ }).ToList();
+
+ return dataList;
+ }
+ }
+
+ #endregion
+
+
+ #region 拉取质量巡检数据
+
+ ///
+ /// 拉取质量巡检数据
+ ///
+ /// 处理结果消息
+ public static string getCheckControlLists(string projectId = "")
+ {
+ int code = 0;
+ string message = "";
+ try
+ {
+ string CollCropCode = string.Empty;
+ string unitId = string.Empty;
+ var thisUnit = CommonService.GetIsThisUnit(); //当前单位
+ if (thisUnit != null)
+ {
+ CollCropCode = thisUnit.CollCropCode; //社会统一信用代码
+ unitId = thisUnit.UnitId;
+ }
+
+ var ProjectList = (from x in Funs.DB.Base_Project
+ where x.SubjectUnit != null && x.SubjectProject != null
+ select x).ToList();
+ if (!string.IsNullOrEmpty(projectId))
+ {
+ ProjectList = ProjectList.Where(x => x.ProjectId == projectId).ToList();
+ }
+ if (ProjectList.Count > 0)
+ {
+ foreach (var project in ProjectList)
+ {
+ string SubjectUnitId = project.SubjectUnit; //集团的单位id
+ string SubjectProjectId = project.SubjectProject; //集团的项目id
+
+ //获取对应单位的apiurl地址
+ var Url = BLL.UnitService.getUnitApiUrlByUnitId(SubjectUnitId);
+ //var Url = "http://localhost:14957/,http://localhost:8579/";
+
+ var ApiUrl = "";
+ var WebUrl = "";
+ if (!string.IsNullOrEmpty(Url))
+ {
+ var urls = Url.Split(',');
+ ApiUrl = urls[0];
+ if (urls.Length > 1)
+ {
+ WebUrl = urls[1];
+ }
+ }
+
+ string url = "/api/CheckControlSync/getCheckControlListByProjectIdAndCollCropCode?projectId=" +
+ SubjectProjectId + "&collCropCode=" + CollCropCode;
+ string baseurl = ApiUrl + url;
+ string contenttype = "application/json;charset=unicode";
+ var strJosn = APIGetHttpService.Http(baseurl, "GET", contenttype, null, null);
+
+ if (!string.IsNullOrEmpty(strJosn))
+ {
+ JObject obj = JObject.Parse(strJosn);
+ code = Funs.GetNewIntOrZero(obj["code"].ToString());
+ message = obj["message"].ToString();
+
+ if (code == 1)
+ {
+ var getData = JsonConvert.DeserializeObject>(obj["data"].ToString());
+ if (getData.Count() > 0)
+ {
+ ProcessCheckControlData(getData, project.ProjectId, unitId, WebUrl, "pull");
+ }
+ message = "获取成功:同步质量巡检数" + getData.Count().ToString() + "条";
+ }
+ }
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ message = "获取失败:" + ex.Message;
+ ErrLogInfo.WriteLog("质量巡检获取!", ex);
+ }
+
+ return message;
+ }
+
+ #endregion
+
+
+ #region 推送质量巡检数据
+
+ ///
+ /// 推送质量巡检数据
+ ///
+ /// 项目ID
+ /// 数据ID(可选,用于单条数据推送)
+ /// 推送结果
+ public static ReturnData pushCheckControlLists(string projectId, string dataId = "")
+ {
+ Model.ReturnData responeData = new Model.ReturnData();
+ responeData.code = 0;
+ responeData.message = string.Empty;
+ var project = Funs.DB.Base_Project.FirstOrDefault(x => x.ProjectId == projectId);
+
+ try
+ {
+ if (project != null)
+ {
+ //获取质量巡检数据
+ var items = GetCheckControlListsByProjectIdUnitIdPage(projectId, "", dataId);
+
+ if (items.Count() > 0)
+ {
+ var thisUnit = CommonService.GetIsThisUnit(); //当前单位
+ var apiurl = "/api/CheckControlSync/SaveCheckControlSyncData";
+
+ //总包单位接口地址
+ var Url = BLL.UnitService.getUnitApiUrlByUnitId(project.SubjectUnit);
+ //var Url = "http://localhost:14957/";
+ var ApiUrl = "";
+ var WebUrl = "";
+
+ if (!string.IsNullOrEmpty(Url))
+ {
+ var urls = Url.Split(',');
+ ApiUrl = urls[0];
+ if (urls.Length > 1)
+ {
+ WebUrl = urls[1];
+ }
+ }
+
+ var pushData = new CheckControlSyncData
+ {
+ CollCropCode = thisUnit.CollCropCode, //分包单位社会统一信用码
+ ProjectId = project.SubjectProject, //主包项目Id
+ UnitDomain = Funs.SGGLUrl, //分包单位域名地址【文件存储地址】
+ Items = items //质量巡检数据
+ };
+
+ var pushContent = JsonConvert.SerializeObject(pushData);
+ string baseurl = ApiUrl + apiurl;
+ string contenttype = "application/json;charset=unicode";
+ var returndata = APIGetHttpService.Http(baseurl, "Post", contenttype, null, pushContent);
+
+ if (!string.IsNullOrEmpty(returndata))
+ {
+ JObject obj = JObject.Parse(returndata);
+ string code = obj["code"].ToString();
+ string message = obj["message"].ToString();
+ responeData.code = int.Parse(code);
+ responeData.message = message;
+ }
+ }
+ else
+ {
+ responeData.code = 0;
+ responeData.message = "当前没有质量巡检数据";
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ responeData.message = "同步到总包单位失败!";
+ ErrLogInfo.WriteLog("【质量巡检】同步到总包单位失败!", ex);
+ }
+
+ return responeData;
+ }
+
+ #endregion
+
+
+ #region 接收保存质量巡检数据
+
+ ///
+ /// 接收保存质量巡检数据
+ ///
+ /// 质量巡检同步数据
+ /// 处理结果消息
+ public static string SaveCheckControlSyncData(Model.CheckControlSyncData items)
+ {
+ int code = 0;
+ string message = "";
+ try
+ {
+ if (items.Items.Count > 0 || items.Items.Count > 0)
+ {
+ var CollCropCode = items.CollCropCode; //分包单位社会统一信用码
+ var ProjectId = items.ProjectId; //总包项目Id
+ var UnitDomain = items.UnitDomain; //分包单位域名地址【文件存储地址】
+
+ var unit = Funs.DB.Base_Unit.FirstOrDefault(x => x.CollCropCode == CollCropCode); //根据CollCropCode获取单位id
+ if (unit == null)
+ {
+ message = "总包单位不存在本单位,请登录总包系统检查维护本单位信息!";
+ }
+ else
+ {
+ //判断主包项目是否存在
+ var porject = BLL.ProjectService.GetProjectByProjectId(ProjectId);
+ if (porject == null)
+ {
+ message = "总包单位不存在本项目,请检查总包项目关联是否正确!";
+ }
+ else
+ {
+ ProcessCheckControlData(items.Items, ProjectId, unit.UnitId, UnitDomain, "push");
+ message = "数据推送成功!";
+ }
+ }
+ }
+ else
+ {
+ message = "暂无质量巡检数据!";
+ }
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+
+ return message;
+ }
+
+ #endregion
+
+
+ #region 处理质量巡检数据的新增或更新逻辑
+
+ ///
+ /// 处理质量巡检数据的新增或更新逻辑
+ ///
+ /// 质量巡检数据列表
+ /// 项目id
+ /// 单位ID
+ /// Web地址
+ ///
+ private static void ProcessCheckControlData(
+ List getData,
+ string projectId,
+ string unitId,
+ string WebUrl, string type)
+ {
+ using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
+ {
+ foreach (var item in getData)
+ {
+ Model.Check_CheckControl model = db.Check_CheckControl.FirstOrDefault(x => x.CheckControlCode == item.CheckControlCode);
+
+ if (model == null)
+ {
+ //新增
+ Model.Check_CheckControl newModel = new Model.Check_CheckControl
+ {
+ CheckControlCode = item.CheckControlCode,
+ ProjectId = projectId,
+ UnitWorkId = APIDataShareSyncService.getUnitWorkId(item.UnitWorkName, projectId),
+ UnitId = getUnitIdByUnitName(item.UnitName) ?? unitId,
+ CheckDate = item.CheckDate,
+ CheckMan = APIDataShareSyncService.getUserId(item.CheckManName),
+ CheckSite = item.CheckSite,
+ DocCode = item.DocCode,
+ CNProfessionalCode = getCNProfessionalId(item.CNProfessionalName),
+ QuestionType = getQualityQuestionTypeId(item.QuestionTypeName, projectId),
+ QuestionDef = item.QuestionDef,
+ RectifyOpinion = item.RectifyOpinion,
+ LimitDate = item.LimitDate,
+ AttachUrl = item.AttachUrl,
+ HandleWay = item.HandleWay,
+ RectifyDate = item.RectifyDate,
+ ReAttachUrl = item.ReAttachUrl,
+ State = item.State,
+ IsSubmit = item.IsSubmit,
+ SubmitMan = APIDataShareSyncService.getUserId(item.SubmitManName),
+ IsOK = item.IsOK,
+ ProposeUnitId = getUnitIdByUnitName(item.ProposeUnitName),
+ SaveHandleMan = item.SaveHandleMan
+ };
+ if (type == "pull")
+ {
+ newModel.DataSource = item.DataSource;
+ }
+ db.Check_CheckControl.InsertOnSubmit(newModel);
+ db.SubmitChanges();
+ }
+ else
+ {
+ //更新
+ model.ProjectId = projectId;
+ model.UnitWorkId = APIDataShareSyncService.getUnitWorkId(item.UnitWorkName, projectId);
+ model.UnitId = getUnitIdByUnitName(item.UnitName) ?? unitId;
+ model.CheckDate = item.CheckDate;
+ model.CheckMan = APIDataShareSyncService.getUserId(item.CheckManName);
+ model.CheckSite = item.CheckSite;
+ model.DocCode = item.DocCode;
+ model.CNProfessionalCode = getCNProfessionalId(item.CNProfessionalName);
+ model.QuestionType = getQualityQuestionTypeId(item.QuestionTypeName, projectId);
+ model.QuestionDef = item.QuestionDef;
+ model.RectifyOpinion = item.RectifyOpinion;
+ model.LimitDate = item.LimitDate;
+ model.AttachUrl = item.AttachUrl;
+ model.HandleWay = item.HandleWay;
+ model.RectifyDate = item.RectifyDate;
+ model.ReAttachUrl = item.ReAttachUrl;
+ model.State = item.State;
+ model.IsSubmit = item.IsSubmit;
+ model.SubmitMan = APIDataShareSyncService.getUserId(item.SubmitManName);
+ model.IsOK = item.IsOK;
+ model.ProposeUnitId = getUnitIdByUnitName(item.ProposeUnitName);
+ model.SaveHandleMan = item.SaveHandleMan;
+ if (type == "pull")
+ {
+ model.DataSource = item.DataSource;
+ }
+ db.SubmitChanges();
+ }
+
+ //处理整改前附件
+ if (!string.IsNullOrEmpty(item.AttachUrl))
+ {
+ APIDataShareSyncService.OperationAttachFile(WebUrl, item.CheckControlCode,
+ BLL.Const.CheckListMenuId, item.AttachUrl);
+ }
+
+ //处理整改后附件
+ if (!string.IsNullOrEmpty(item.ReAttachUrl))
+ {
+ APIDataShareSyncService.OperationAttachFile(WebUrl, item.CheckControlCode + "R",
+ BLL.Const.CheckListMenuId, item.ReAttachUrl);
+ }
+ }
+ }
+ }
+
+ #endregion
+
+
+ #region 辅助映射方法
+
+ ///
+ /// 获取质量问题类型ID(不存在则创建)
+ ///
+ /// 问题类型名称
+ /// 项目ID
+ /// 问题类型ID
+ private static string getQualityQuestionTypeId(string questionTypeName, string projectId)
+ {
+ string questionTypeId = null;
+ if (!string.IsNullOrEmpty(questionTypeName))
+ {
+ var qqt = Funs.DB.Base_QualityQuestionType.FirstOrDefault(x => x.QualityQuestionType == questionTypeName);
+ if (qqt == null)
+ {
+ //不存在则创建
+ Model.Base_QualityQuestionType newQqt = new Model.Base_QualityQuestionType
+ {
+ QualityQuestionTypeId = SQLHelper.GetNewID(typeof(Model.Base_QualityQuestionType)),
+ QualityQuestionType = questionTypeName
+ };
+ QualityQuestionTypeService.AddQualityQuestionType(newQqt);
+ questionTypeId = newQqt.QualityQuestionTypeId;
+ }
+ else
+ {
+ questionTypeId = qqt.QualityQuestionTypeId;
+ }
+ }
+ return questionTypeId;
+ }
+
+
+
+ ///
+ /// 获取专业ID(不存在则创建)
+ ///
+ ///
+ ///
+ ///
+ private static string getCNProfessionalId(string ProfessionalName)
+ {
+ string Id = null;
+ if (!string.IsNullOrEmpty(ProfessionalName))
+ {
+ var names = ProfessionalName.Split(',');
+ List IdList = new List();
+ foreach (var name in names)
+ {
+ var cnProfessional = Funs.DB.Base_CNProfessional.Where(x =>
+ x.ProfessionalName == name).ToList();
+ if (cnProfessional.Count == 0)
+ {
+ Model.Base_CNProfessional newCnProfessional = new Model.Base_CNProfessional
+ {
+ CNProfessionalId = SQLHelper.GetNewID(typeof(Model.WBS_UnitWork)),
+ ProfessionalName = name,
+ };
+ CNProfessionalService.AddCNProfessional(newCnProfessional);
+ IdList.Add(newCnProfessional.CNProfessionalId);
+ }
+ else
+ {
+ IdList.Add(cnProfessional.FirstOrDefault().CNProfessionalId);
+ }
+ }
+
+ Id = string.Join(",", IdList);
+ }
+
+ return Id;
+ }
+
+ ///
+ /// 获取单位ID(根据名称)
+ ///
+ /// 单位名称
+ /// 单位ID
+ private static string getUnitIdByUnitName(string unitName)
+ {
+ string unitId = null;
+ if (!string.IsNullOrEmpty(unitName))
+ {
+ var unit = Funs.DB.Base_Unit.FirstOrDefault(x => x.UnitName == unitName);
+ if (unit != null)
+ {
+ unitId = unit.UnitId;
+ }
+ }
+ return unitId;
+ }
+
+ #endregion
+ }
+}
diff --git a/SGGL/BLL/DataShare/CQMS/APIInspectionMachineSyncService.cs b/SGGL/BLL/DataShare/CQMS/APIInspectionMachineSyncService.cs
new file mode 100644
index 00000000..1c765e4c
--- /dev/null
+++ b/SGGL/BLL/DataShare/CQMS/APIInspectionMachineSyncService.cs
@@ -0,0 +1,313 @@
+using Model;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+using System;
+using System.Linq;
+
+namespace BLL
+{
+ ///
+ /// 质量计量器具同步服务
+ ///
+ public class APIInspectionMachineSyncService
+ {
+ #region 分包单位推送数据到总包单位
+
+ ///
+ /// 分包单位推送数据到总包单位
+ ///
+ /// 项目ID
+ /// 数据ID(可选,用于单条数据推送)
+ /// 推送结果
+ public static ReturnData PushInspectionMachineLists(string projectId, string dataId = "")
+ {
+ Model.ReturnData responeData = new Model.ReturnData();
+ responeData.code = 0;
+ responeData.message = string.Empty;
+ using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
+ {
+ try
+ {
+ var project = db.Base_Project.FirstOrDefault(x => x.ProjectId == projectId);
+ if (project != null)
+ {
+ //获取质量计量器具数据
+ var list = from x in db.Comprehensive_InspectionMachine where x.ProjectId == projectId select x;
+
+ if (!string.IsNullOrEmpty(dataId))
+ {
+ list = list.Where(x => x.InspectionMachineId == dataId);
+ }
+
+ var dataList = (from x in list
+ join unit in db.Base_Unit on x.UnitId equals unit.UnitId into unitTemp
+ from unit in unitTemp.DefaultIfEmpty()
+ join pro in db.Base_CNProfessional on x.CNProfessionalId equals pro.CNProfessionalId into proTemp
+ from pro in proTemp.DefaultIfEmpty()
+ join u1 in db.Person_Persons on x.CompileMan equals u1.PersonId into u1Temp
+ from u1 in u1Temp.DefaultIfEmpty()
+ join att in db.AttachFile on x.InspectionMachineId equals att.ToKeyId into attTemp
+ from att in attTemp.DefaultIfEmpty()
+ select new InspectionMachineSyncItem
+ {
+ InspectionMachineId = x.InspectionMachineId,
+ InspectionMachineCode = x.InspectionMachineCode,
+ InspectionMachineName = x.InspectionMachineName,
+ SpecificationModel = x.SpecificationModel,
+ UnitsCount = x.UnitsCount,
+ SType = x.SType,
+ InspectionType = x.InspectionType,
+ InspectionDate = x.InspectionDate,
+ NextTestDate = x.NextTestDate,
+ TestCycle = x.TestCycle,
+ IsCheckOK = x.IsCheckOK,
+ IsVerification = x.IsVerification,
+ Status = x.Status,
+ IsOnSite = x.IsOnSite,
+ LeaveDate = x.LeaveDate,
+ UnitId = x.UnitId,
+ UnitName = unit.UnitName,
+ CNProfessionalId = x.CNProfessionalId,
+ CNProfessionalName = pro.ProfessionalName,
+ CompileMan = x.CompileMan,
+ CompileManName = u1.PersonName,
+ CompileDate = x.CompileDate,
+ ProjectId = x.ProjectId,
+ AttachFileId = att.AttachFileId,
+ ToKeyId = att.ToKeyId,
+ AttachSource = att.AttachSource,
+ AttachUrl = att.AttachUrl,
+ }).ToList();
+
+ if (dataList.Count() > 0)
+ {
+ var thisUnit = CommonService.GetIsThisUnit(); //当前单位
+ var apiurl = "/api/InspectionMachineSync/SaveInspectionMachineSyncData";
+
+ //总包单位接口地址
+ string ApiUrl = project.SubjectUnitApiUrl;
+ string WebUrl = project.SubjectUnitWebUrl;
+ var pushData = new InspectionMachineSyncData
+ {
+ CollCropCode = thisUnit.CollCropCode,//分包单位社会统一信用码
+ UnitId = thisUnit.UnitId,//分包单位Id
+ UnitName = thisUnit.UnitName,//分包单位名称
+ ShortUnitName = thisUnit.ShortUnitName,//分包单位简称
+ UnitDomain = Funs.SGGLUrl,//分包单位域名地址【文件存储地址】
+ SubjectUnit = project.SubjectUnit,//主包单位Id
+ SubjectProject = project.SubjectProject,//主包项目Id
+ Items = dataList//质量计量器具数据
+ };
+
+ var pushContent = JsonConvert.SerializeObject(pushData);
+ string baseurl = ApiUrl + apiurl;
+ string contenttype = "application/json;charset=unicode";
+ var returndata = APIGetHttpService.Http(baseurl, "Post", contenttype, null, pushContent);
+
+ if (!string.IsNullOrEmpty(returndata))
+ {
+ JObject obj = JObject.Parse(returndata);
+ string code = obj["code"].ToString();
+ string message = obj["message"].ToString();
+ responeData.code = int.Parse(code);
+ responeData.message = message;
+ }
+ }
+ else
+ {
+ responeData.code = 0;
+ responeData.message = "当前没有质量计量器具数据";
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ responeData.message = "同步到总包单位失败!";
+ ErrLogInfo.WriteLog("【质量计量器具】同步到总包单位失败!", ex);
+ }
+
+ }
+ return responeData;
+ }
+
+ #endregion
+
+
+ #region 总包单位接收分包单位推送数据
+
+ ///
+ /// 总包单位接收分包单位推送数据
+ ///
+ /// 质量计量器具同步数据
+ /// 处理结果消息
+ public static string SaveInspectionMachineSyncData(Model.InspectionMachineSyncData data)
+ {
+ using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
+ {
+ string result = string.Empty;
+
+ if (data.Items.Count > 0 || data.Items.Count > 0)
+ {
+ var CollCropCode = data.CollCropCode; //分包单位社会统一信用码
+ var ProjectId = data.SubjectProject; //总包项目Id
+ var UnitDomain = data.UnitDomain; //分包单位域名地址【文件存储地址】
+
+ //1、判断分包单位是否存在
+ var unit = UnitService.getUnitByCollCropCodeUnitName(CollCropCode, data.UnitName);
+ if (unit == null)
+ {
+ result = "总包单位不存在本单位,请登录总包系统检查维护本单位信息!";
+ }
+ else
+ {
+ //判断主包项目是否存在
+ var porject = BLL.ProjectService.GetProjectByProjectId(ProjectId);
+ if (porject == null)
+ {
+ result = "总包单位不存在本项目,请检查总包项目关联是否正确!";
+ }
+ else
+ {
+ int succ = 0;
+ foreach (var item in data.Items)
+ {
+ try
+ {
+ Model.Comprehensive_InspectionMachine model = db.Comprehensive_InspectionMachine.FirstOrDefault(x => x.InspectionMachineId == item.InspectionMachineId);
+ if (model == null)
+ {
+ //新增
+ Model.Comprehensive_InspectionMachine newModel = new Model.Comprehensive_InspectionMachine
+ {
+ ProjectId = ProjectId,
+ UnitId = unit.UnitId,
+ InspectionMachineId = item.InspectionMachineId,
+ InspectionMachineCode = item.InspectionMachineCode,
+ InspectionMachineName = item.InspectionMachineName,
+ SpecificationModel = item.SpecificationModel,
+ NextTestDate = item.NextTestDate,
+ TestCycle = item.TestCycle,
+ IsVerification = item.IsVerification,
+ InspectionDate = item.InspectionDate,
+ AttachUrl = item.AttachUrl,
+ CNProfessionalId = getCNProfessionalId(item.CNProfessionalName),
+ //CompileMan = APIDataShareSyncService.getUserId(item.CompileManName),
+ CompileDate = item.CompileDate,
+ IsOnSite = item.IsOnSite,
+ InspectionType = item.InspectionType,
+ LeaveDate = item.LeaveDate,
+ UnitsCount = item.UnitsCount,
+ //AuditMan = item.AuditMan,
+ Status = item.Status,
+ IsCheckOK = item.IsCheckOK,
+ SType = item.SType,
+ SourceDes = $"{(!string.IsNullOrWhiteSpace(data.ShortUnitName) ? data.ShortUnitName : data.UnitName)}#{item.CompileManName}#专业名称:{item.CNProfessionalName}",
+ };
+
+ db.Comprehensive_InspectionMachine.InsertOnSubmit(newModel);
+ db.SubmitChanges();
+
+ //保存编码
+ if (!string.IsNullOrEmpty(item.InspectionMachineCode))
+ {
+ Model.Sys_CodeRecords codeRecords = new Model.Sys_CodeRecords
+ {
+ CodeRecordId = SQLHelper.GetNewID(typeof(Model.Sys_CodeRecords)),
+ DataId = item.InspectionMachineId,
+ Code = item.InspectionMachineCode
+ };
+ db.Sys_CodeRecords.InsertOnSubmit(codeRecords);
+ db.SubmitChanges();
+ }
+ }
+ else
+ {
+ //更新
+ model.ProjectId = ProjectId;
+ model.UnitId = unit.UnitId;
+ model.InspectionMachineCode = item.InspectionMachineCode;
+ model.InspectionMachineName = item.InspectionMachineName;
+ model.SpecificationModel = item.SpecificationModel;
+ model.NextTestDate = item.NextTestDate;
+ model.TestCycle = item.TestCycle;
+ model.IsVerification = item.IsVerification;
+ model.InspectionDate = item.InspectionDate;
+ model.AttachUrl = item.AttachUrl;
+ model.CNProfessionalId = getCNProfessionalId(item.CNProfessionalName);
+ //model.CompileMan = APIDataShareSyncService.getUserId(item.CompileManName);
+ model.CompileDate = item.CompileDate;
+ model.IsOnSite = item.IsOnSite;
+ model.InspectionType = item.InspectionType;
+ model.LeaveDate = item.LeaveDate;
+ model.UnitsCount = item.UnitsCount;
+ //model.AuditMan = item.AuditMan;
+ model.Status = item.Status;
+ model.IsCheckOK = item.IsCheckOK;
+ model.SType = item.SType;
+ model.SourceDes = $"{(!string.IsNullOrWhiteSpace(data.ShortUnitName) ? data.ShortUnitName : data.UnitName)}#{item.CompileManName}#专业名称:{item.CNProfessionalName}";
+
+ db.SubmitChanges();
+ //更新编码
+ if (!string.IsNullOrEmpty(item.InspectionMachineCode))
+ {
+ var codeRecords = db.Sys_CodeRecords.FirstOrDefault(x => x.DataId == item.InspectionMachineId);
+ if (codeRecords != null)
+ {
+ codeRecords.Code = item.InspectionMachineCode;
+ db.SubmitChanges();
+ }
+ }
+ }
+
+ succ++;
+ //附件处理:附件
+ BLL.FileInsertService.SaveAttachFileRecords(data.UnitDomain, item.AttachFileId, item.ToKeyId, item.AttachSource, item.AttachUrl);
+ }
+ catch (Exception ex)
+ {
+ BLL.ErrLogInfo.WriteLog($"【{porject.ProjectName}】计量器具数据推送总包失败", ex.Message);
+ continue;
+ }
+ }
+ result = "数据推送成功!";
+ }
+ }
+ }
+ else
+ {
+ result = "暂无质量计量器具数据!";
+ }
+
+ return result;
+ }
+ }
+
+ #endregion
+
+
+ #region 辅助映射方法
+
+ ///
+ /// 获取专业ID(根据名称)
+ ///
+ /// 专业名称
+ /// 专业ID
+ private static string getCNProfessionalId(string professionalName)
+ {
+ string professionalId = null;
+ if (!string.IsNullOrEmpty(professionalName))
+ {
+ var pro = Funs.DB.Base_CNProfessional.FirstOrDefault(x => x.ProfessionalName == professionalName);
+ if (pro != null)
+ {
+ professionalId = pro.CNProfessionalId;
+ }
+ }
+ return professionalId;
+ }
+
+
+
+ #endregion
+ }
+}
diff --git a/SGGL/BLL/DataShare/HSSE/APICheckSpecialSyncService.cs b/SGGL/BLL/DataShare/HSSE/APICheckSpecialSyncService.cs
index 728cc9ef..971806d6 100644
--- a/SGGL/BLL/DataShare/HSSE/APICheckSpecialSyncService.cs
+++ b/SGGL/BLL/DataShare/HSSE/APICheckSpecialSyncService.cs
@@ -173,19 +173,20 @@ namespace BLL
string SubjectUnitId = project.SubjectUnit; //集团的单位id
string SubjectProjectId = project.SubjectProject; //集团的单位id
//获取对应单位的apiurl地址
- var Url = BLL.UnitService.getUnitApiUrlByUnitId(SubjectUnitId);
- var ApiUrl = "";
- var WebUrl = "";
- if (!string.IsNullOrEmpty(Url))
- {
- var urls = Url.Split(',');
- ApiUrl = urls[0];
- if (urls.Length > 1)
- {
- WebUrl = urls[1];
- }
- }
-
+ //var Url = BLL.UnitService.getUnitApiUrlByUnitId(SubjectUnitId);
+ //var ApiUrl = "";
+ //var WebUrl = "";
+ //if (!string.IsNullOrEmpty(Url))
+ //{
+ // var urls = Url.Split(',');
+ // ApiUrl = urls[0];
+ // if (urls.Length > 1)
+ // {
+ // WebUrl = urls[1];
+ // }
+ //}
+ string ApiUrl = project.SubjectUnitApiUrl;
+ string WebUrl = project.SubjectUnitWebUrl;
// CollCropCode = "913404001520228377Y"; //三化建 测试使用
// SubjectProjectId = "B409A8D7-48C7-486E-84C7-E3E7B2C0E5B7";//测试使用
@@ -246,19 +247,20 @@ namespace BLL
var thisUnit = CommonService.GetIsThisUnit(); //当前单位
var apiurl = "/api/CheckSpecialSync/SaveCheckSpecialSyncData";
//总包单位接口地址
- var Url = BLL.UnitService.getUnitApiUrlByUnitId(project.SubjectUnit);
- var ApiUrl = "";
- var WebUrl = "";
- if (!string.IsNullOrEmpty(Url))
- {
- var urls = Url.Split(',');
- ApiUrl = urls[0];
- if (urls.Length > 1)
- {
- WebUrl = urls[1];
- }
- }
-
+ //var Url = BLL.UnitService.getUnitApiUrlByUnitId(project.SubjectUnit);
+ //var ApiUrl = "";
+ //var WebUrl = "";
+ //if (!string.IsNullOrEmpty(Url))
+ //{
+ // var urls = Url.Split(',');
+ // ApiUrl = urls[0];
+ // if (urls.Length > 1)
+ // {
+ // WebUrl = urls[1];
+ // }
+ //}
+ string ApiUrl = project.SubjectUnitApiUrl;
+ string WebUrl = project.SubjectUnitWebUrl;
// thisUnit.CollCropCode = "913404001520228377Y";//测试使用
// project.SubjectProject = "B409A8D7-48C7-486E-84C7-E3E7B2C0E5B7";//测试使用
diff --git a/SGGL/BLL/DataShare/HSSE/APIHazardRegisterSyncService.cs b/SGGL/BLL/DataShare/HSSE/APIHazardRegisterSyncService.cs
index 480f73a5..e270f7f8 100644
--- a/SGGL/BLL/DataShare/HSSE/APIHazardRegisterSyncService.cs
+++ b/SGGL/BLL/DataShare/HSSE/APIHazardRegisterSyncService.cs
@@ -144,19 +144,20 @@ namespace BLL
string SubjectUnitId = project.SubjectUnit; //集团的单位id
string SubjectProjectId = project.SubjectProject; //集团的项目id
//获取对应单位的apiurl地址
- var Url = BLL.UnitService.getUnitApiUrlByUnitId(SubjectUnitId);
- var ApiUrl = "";
- var WebUrl = "";
- if (!string.IsNullOrEmpty(Url))
- {
- var urls = Url.Split(',');
- ApiUrl = urls[0];
- if (urls.Length > 1)
- {
- WebUrl = urls[1];
- }
- }
-
+ //var Url = BLL.UnitService.getUnitApiUrlByUnitId(SubjectUnitId);
+ //var ApiUrl = "";
+ //var WebUrl = "";
+ //if (!string.IsNullOrEmpty(Url))
+ //{
+ // var urls = Url.Split(',');
+ // ApiUrl = urls[0];
+ // if (urls.Length > 1)
+ // {
+ // WebUrl = urls[1];
+ // }
+ //}
+ string ApiUrl = project.SubjectUnitApiUrl;
+ string WebUrl = project.SubjectUnitWebUrl;
// CollCropCode = "91420000177570439L"; //三化建 测试使用
// SubjectProjectId = "c7ade79e-7646-4c59-a8fd-020a7e3138c6";//测试使用
@@ -217,18 +218,20 @@ namespace BLL
var thisUnit = CommonService.GetIsThisUnit(); //当前单位
var apiurl = "/api/HazardRegisterSync/SaveHazardRegisterSyncData";
//总包单位接口地址
- var Url = BLL.UnitService.getUnitApiUrlByUnitId(project.SubjectUnit);
- var ApiUrl = "";
- var WebUrl = "";
- if (!string.IsNullOrEmpty(Url))
- {
- var urls = Url.Split(',');
- ApiUrl = urls[0];
- if (urls.Length > 1)
- {
- WebUrl = urls[1];
- }
- }
+ //var Url = BLL.UnitService.getUnitApiUrlByUnitId(project.SubjectUnit);
+ //var ApiUrl = "";
+ //var WebUrl = "";
+ //if (!string.IsNullOrEmpty(Url))
+ //{
+ // var urls = Url.Split(',');
+ // ApiUrl = urls[0];
+ // if (urls.Length > 1)
+ // {
+ // WebUrl = urls[1];
+ // }
+ //}
+ string ApiUrl = project.SubjectUnitApiUrl;
+ string WebUrl = project.SubjectUnitWebUrl;
// thisUnit.CollCropCode = "913404001520228377Y";//测试使用
// project.SubjectProject = "B409A8D7-48C7-486E-84C7-E3E7B2C0E5B7";//测试使用
diff --git a/SGGL/BLL/DataShare/HSSE/APILicenseSyncService.cs b/SGGL/BLL/DataShare/HSSE/APILicenseSyncService.cs
index bc441298..a9fa87f9 100644
--- a/SGGL/BLL/DataShare/HSSE/APILicenseSyncService.cs
+++ b/SGGL/BLL/DataShare/HSSE/APILicenseSyncService.cs
@@ -88,7 +88,7 @@ namespace BLL
if (dataList.Count() > 0)
{
var thisUnit = CommonService.GetIsThisUnit();
- var porject = BLL.ProjectService.GetProjectByProjectId(projectId);
+ var project = BLL.ProjectService.GetProjectByProjectId(projectId);
var pushData = new LicenseManagerData
{
CollCropCode = thisUnit.CollCropCode,//分包单位社会统一信用码
@@ -96,25 +96,27 @@ namespace BLL
UnitName = thisUnit.UnitName,//分包单位名称
ShortUnitName = thisUnit.ShortUnitName,//分包单位简称
UnitDomain = Funs.SGGLUrl,//分包单位域名地址【文件存储地址】
- SubjectUnit = porject.SubjectUnit,//主包单位Id
- SubjectProject = porject.SubjectProject,//主包项目Id
+ SubjectUnit = project.SubjectUnit,//主包单位Id
+ SubjectProject = project.SubjectProject,//主包项目Id
Items = dataList//数据
};
var pushContent = JsonConvert.SerializeObject(pushData);
//获取总包单位接口apiurl地址
- var Url = BLL.UnitService.getUnitApiUrlByUnitId(porject.SubjectUnit);
- var ApiUrl = string.Empty;
- var WebUrl = string.Empty;
- if (Url != null)
- {
- var urls = Url.Split(',');
- ApiUrl = urls[0];
- if (urls.Length > 1)
- {
- WebUrl = urls[1];
- }
- }
+ //var Url = BLL.UnitService.getUnitApiUrlByUnitId(project.SubjectUnit);
+ //var ApiUrl = string.Empty;
+ //var WebUrl = string.Empty;
+ //if (Url != null)
+ //{
+ // var urls = Url.Split(',');
+ // ApiUrl = urls[0];
+ // if (urls.Length > 1)
+ // {
+ // WebUrl = urls[1];
+ // }
+ //}
+ string ApiUrl = project.SubjectUnitApiUrl;
+ string WebUrl = project.SubjectUnitWebUrl;
var baseurl = $"{ApiUrl}/api/LicenseSync/ReceiveSaveProjectLicenseManagerData";
string contenttype = "application/json;charset=unicode";
//Hashtable newToken = new Hashtable
@@ -126,7 +128,7 @@ namespace BLL
var returndata = APIGetHttpService.Http(baseurl, "Post", contenttype, null, pushContent);
if (!string.IsNullOrEmpty(returndata))
{
- ErrLogInfo.WriteLog($"【作业票返回结果】接口地址:{baseurl};{returndata}");
+ //ErrLogInfo.WriteLog($"【作业票返回结果】接口地址:{baseurl};{returndata}");
JObject obj = JObject.Parse(returndata);
string mess = obj["message"].ToString();
string code = obj["code"].ToString();
diff --git a/SGGL/BLL/DataShare/HSSE/APIMeetingSyncService.cs b/SGGL/BLL/DataShare/HSSE/APIMeetingSyncService.cs
index d01b5059..e7bb95a7 100644
--- a/SGGL/BLL/DataShare/HSSE/APIMeetingSyncService.cs
+++ b/SGGL/BLL/DataShare/HSSE/APIMeetingSyncService.cs
@@ -89,7 +89,7 @@ namespace BLL
if (dataList.Count() > 0)
{
var thisUnit = CommonService.GetIsThisUnit();
- var porject = BLL.ProjectService.GetProjectByProjectId(projectId);
+ var project = BLL.ProjectService.GetProjectByProjectId(projectId);
var pushData = new ClassMeetingData
{
CollCropCode = thisUnit.CollCropCode,//分包单位社会统一信用码
@@ -97,25 +97,27 @@ namespace BLL
UnitName = thisUnit.UnitName,//分包单位名称
ShortUnitName = thisUnit.ShortUnitName,//分包单位简称
UnitDomain = Funs.SGGLUrl,//分包单位域名地址【文件存储地址】
- SubjectUnit = porject.SubjectUnit,//主包单位Id
- SubjectProject = porject.SubjectProject,//主包项目Id
+ SubjectUnit = project.SubjectUnit,//主包单位Id
+ SubjectProject = project.SubjectProject,//主包项目Id
Items = dataList//会议数据
};
var pushContent = JsonConvert.SerializeObject(pushData);
//获取总包单位接口apiurl地址
- var Url = BLL.UnitService.getUnitApiUrlByUnitId(porject.SubjectUnit);
- var ApiUrl = string.Empty;
- var WebUrl = string.Empty;
- if (Url != null)
- {
- var urls = Url.Split(',');
- ApiUrl = urls[0];
- if (urls.Length > 1)
- {
- WebUrl = urls[1];
- }
- }
+ //var Url = BLL.UnitService.getUnitApiUrlByUnitId(porject.SubjectUnit);
+ //var ApiUrl = string.Empty;
+ //var WebUrl = string.Empty;
+ //if (Url != null)
+ //{
+ // var urls = Url.Split(',');
+ // ApiUrl = urls[0];
+ // if (urls.Length > 1)
+ // {
+ // WebUrl = urls[1];
+ // }
+ //}
+ string ApiUrl = project.SubjectUnitApiUrl;
+ string WebUrl = project.SubjectUnitWebUrl;
var baseurl = $"{ApiUrl}/api/MeetingSync/ReceiveSaveProjectClassMeetingData";
string contenttype = "application/json;charset=unicode";
//Hashtable newToken = new Hashtable
diff --git a/SGGL/BLL/DataShare/HSSE/APIPersonSyncService.cs b/SGGL/BLL/DataShare/HSSE/APIPersonSyncService.cs
index 9b57a64d..689c93a4 100644
--- a/SGGL/BLL/DataShare/HSSE/APIPersonSyncService.cs
+++ b/SGGL/BLL/DataShare/HSSE/APIPersonSyncService.cs
@@ -161,19 +161,20 @@ namespace BLL
string SubjectUnitId = project.SubjectUnit; //集团的单位id
string SubjectProjectId = project.SubjectProject; //集团的单位id
//获取对应单位的apiurl地址
- var Url = BLL.UnitService.getUnitApiUrlByUnitId(SubjectUnitId);
- var ApiUrl = "";
- var WebUrl = "";
- if (!string.IsNullOrEmpty(Url))
- {
- var urls = Url.Split(',');
- ApiUrl = urls[0];
- if (urls.Length > 1)
- {
- WebUrl = urls[1];
- }
- }
-
+ //var Url = BLL.UnitService.getUnitApiUrlByUnitId(SubjectUnitId);
+ //var ApiUrl = "";
+ //var WebUrl = "";
+ //if (!string.IsNullOrEmpty(Url))
+ //{
+ // var urls = Url.Split(',');
+ // ApiUrl = urls[0];
+ // if (urls.Length > 1)
+ // {
+ // WebUrl = urls[1];
+ // }
+ //}
+ string ApiUrl = project.SubjectUnitApiUrl;
+ string WebUrl = project.SubjectUnitWebUrl;
// CollCropCode = "913404001520228377Y";//测试使用
// SubjectProjectId = "B409A8D7-48C7-486E-84C7-E3E7B2C0E5B7";//测试使用
// unitId = "aaa9e72b-e3a6-441e-a7bb-afc008adebc9";//测试使用
@@ -243,19 +244,20 @@ namespace BLL
var thisUnit = CommonService.GetIsThisUnit(); //当前单位
var apiurl = "/api/PersonSync/SavePersonSyncData";
//总包单位接口地址
- var Url = BLL.UnitService.getUnitApiUrlByUnitId(project.SubjectUnit);
- var ApiUrl = "";
- var WebUrl = "";
- if (!string.IsNullOrEmpty(Url))
- {
- var urls = Url.Split(',');
- ApiUrl = urls[0];
- if (urls.Length > 1)
- {
- WebUrl = urls[1];
- }
- }
-
+ //var Url = BLL.UnitService.getUnitApiUrlByUnitId(project.SubjectUnit);
+ //var ApiUrl = "";
+ //var WebUrl = "";
+ //if (!string.IsNullOrEmpty(Url))
+ //{
+ // var urls = Url.Split(',');
+ // ApiUrl = urls[0];
+ // if (urls.Length > 1)
+ // {
+ // WebUrl = urls[1];
+ // }
+ //}
+ string ApiUrl = project.SubjectUnitApiUrl;
+ string WebUrl = project.SubjectUnitWebUrl;
// thisUnit.CollCropCode = "913404001520228377Y"; //分包单位社会统一信用码 测试使用
// project.SubjectProject = "B409A8D7-48C7-486E-84C7-E3E7B2C0E5B7";//测试使用
diff --git a/SGGL/BLL/HSSE/HiddenInspection/HSSE_Hazard_HazardRegisterService.cs b/SGGL/BLL/HSSE/HiddenInspection/HSSE_Hazard_HazardRegisterService.cs
index b800d5ff..6c23875f 100644
--- a/SGGL/BLL/HSSE/HiddenInspection/HSSE_Hazard_HazardRegisterService.cs
+++ b/SGGL/BLL/HSSE/HiddenInspection/HSSE_Hazard_HazardRegisterService.cs
@@ -321,5 +321,28 @@ namespace BLL
handleSteps.Add(handleStep4);
return handleSteps;
}
+
+ ///
+ /// 根据危险观察登记主键删除一个危险观察登记信息
+ ///
+ /// 危险观察登记主键
+ public static void DeleteHazardRegisterByCheckSpecialId(string checkSpecialId)
+ {
+ Model.SGGLDB db = Funs.DB;
+ List hazardRegisters = db.HSSE_Hazard_HazardRegister.Where(e => e.CheckSpecialId == checkSpecialId).ToList();
+ if (hazardRegisters.Count > 0)
+ {
+ foreach (var hazardRegister in hazardRegisters)
+ {
+ if (hazardRegister.IsUpdate != true)
+ {
+ BLL.UploadFileService.DeleteFile(Funs.RootPath, hazardRegister.ImageUrl);//删除整改前图片
+ BLL.UploadFileService.DeleteFile(Funs.RootPath, hazardRegister.RectificationImageUrl);//删除整改后图片
+ db.HSSE_Hazard_HazardRegister.DeleteOnSubmit(hazardRegister);
+ db.SubmitChanges();
+ }
+ }
+ }
+ }
}
}
diff --git a/SGGL/BLL/HSSE/SitePerson/SitePerson_PersonService.cs b/SGGL/BLL/HSSE/SitePerson/SitePerson_PersonService.cs
index 29608a06..ba9236e3 100644
--- a/SGGL/BLL/HSSE/SitePerson/SitePerson_PersonService.cs
+++ b/SGGL/BLL/HSSE/SitePerson/SitePerson_PersonService.cs
@@ -1390,5 +1390,26 @@ namespace BLL
return str;
}
#endregion
+
+ ///
+ /// 根据UserId主键获取人员信息
+ ///
+ ///
+ ///
+ public static void UpdatePersonTypeByProjectIdAndIdentityCard(string projectId, string identityCard)
+ {
+
+ var persons = Funs.DB.SitePerson_Person.Where(x => x.IdentityCard == identityCard).ToList();
+
+ foreach (var item in persons)
+ {
+ if (item.ProjectId != projectId && item.States == Const.ProjectPersonStates_1)
+ {
+ item.States = Const.ProjectPersonStates_2;
+ item.OutTime = DateTime.Now;
+ Funs.DB.SubmitChanges();
+ }
+ }
+ }
}
}
\ No newline at end of file
diff --git a/SGGL/BLL/HSSE/Solution/LargerHazardService.cs b/SGGL/BLL/HSSE/Solution/LargerHazardService.cs
index 0f1ef864..c678a07e 100644
--- a/SGGL/BLL/HSSE/Solution/LargerHazardService.cs
+++ b/SGGL/BLL/HSSE/Solution/LargerHazardService.cs
@@ -41,6 +41,7 @@ namespace BLL
TrainPersonNum = largerHazard.TrainPersonNum,
IsSuperLargerHazard = largerHazard.IsSuperLargerHazard,
Descriptions = largerHazard.Descriptions,
+ ApprovalState = largerHazard.ApprovalState,
OperativesNum = largerHazard.OperativesNum
};
@@ -73,6 +74,7 @@ namespace BLL
newLargerHazard.IsSuperLargerHazard = largerHazard.IsSuperLargerHazard;
newLargerHazard.Descriptions = largerHazard.Descriptions;
newLargerHazard.RecordTime = largerHazard.RecordTime;
+ newLargerHazard.ApprovalState = largerHazard.ApprovalState;
newLargerHazard.IsUpdate = null;
newLargerHazard.OperativesNum = largerHazard.OperativesNum;
db.SubmitChanges();
diff --git a/SGGL/BLL/Person/Person_PersonsService.cs b/SGGL/BLL/Person/Person_PersonsService.cs
index ed165f4b..94b24388 100644
--- a/SGGL/BLL/Person/Person_PersonsService.cs
+++ b/SGGL/BLL/Person/Person_PersonsService.cs
@@ -1567,5 +1567,56 @@ namespace BLL
return users;
}
}
+
+ ///
+ /// 根据单位Id获取用户下拉选项【单位本部在职人员】
+ ///
+ ///
+ public static List GetIsOfficeUserListByUnitId(string unitId)
+ {
+ using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
+ {
+ List list = new List();
+ list = (from x in db.Person_Persons
+ where x.UnitId == unitId && x.IsOffice == true && x.IsPost == true
+ orderby x.PersonName
+ select x).ToList();
+ return list;
+ }
+ }
+
+ ///
+ /// 用户下拉框
+ ///
+ /// 下拉框名字
+ /// 是否显示请选择
+ public static void InitIsOfficeUserUnitIdDropDownList(FineUIPro.DropDownList dropName, string unitId, bool isShowPlease)
+ {
+ dropName.DataValueField = "PersonId";
+ dropName.DataTextField = "PersonName";
+ dropName.DataSource = GetIsOfficeUserListByUnitId(unitId);
+ dropName.DataBind();
+ if (isShowPlease)
+ {
+ Funs.FineUIPleaseSelect(dropName);
+ }
+ }
+
+ ///
+ /// 根据用户获取用户名称
+ ///
+ ///
+ ///
+ public static string GetUserNameByUserId(string userId)
+ {
+ string userName = string.Empty;
+ Model.Person_Persons user = Funs.DB.Person_Persons.FirstOrDefault(e => e.PersonId == userId);
+ if (user != null)
+ {
+ userName = user.PersonName;
+ }
+
+ return userName;
+ }
}
}
\ No newline at end of file
diff --git a/SGGL/BLL/ProjectData/ProjectService.cs b/SGGL/BLL/ProjectData/ProjectService.cs
index da99e6db..9222869e 100644
--- a/SGGL/BLL/ProjectData/ProjectService.cs
+++ b/SGGL/BLL/ProjectData/ProjectService.cs
@@ -126,6 +126,8 @@
EnglishRemark = project.EnglishRemark,
ProjectRealCode = project.ProjectRealCode,
IsCNCECShow = project.IsCNCECShow,
+ SubjectUnitApiUrl = project.SubjectUnitApiUrl,
+ SubjectUnitWebUrl = project.SubjectUnitWebUrl,
MasterSysId = project.MasterSysId,
SubjectUnit = project.SubjectUnit,
SubjectProject = project.SubjectProject,
@@ -177,6 +179,8 @@
newProject.ProjectRealCode = project.ProjectRealCode;
newProject.IsCNCECShow = project.IsCNCECShow;
newProject.MasterSysId = project.MasterSysId;
+ newProject.SubjectUnitApiUrl = project.SubjectUnitApiUrl;
+ newProject.SubjectUnitWebUrl = project.SubjectUnitWebUrl;
newProject.SubjectUnit = project.SubjectUnit;
newProject.SubjectProject = project.SubjectProject;
diff --git a/SGGL/BLL/ZHGL/DataSync/HSSEData_HSSEService.cs b/SGGL/BLL/ZHGL/DataSync/HSSEData_HSSEService.cs
index a7aef494..8665b5d0 100644
--- a/SGGL/BLL/ZHGL/DataSync/HSSEData_HSSEService.cs
+++ b/SGGL/BLL/ZHGL/DataSync/HSSEData_HSSEService.cs
@@ -43,6 +43,15 @@ namespace BLL
NewWaterConsumption = newtable.NewWaterConsumption,
HeadOfficeInspectorGeneralNum = newtable.HeadOfficeInspectorGeneralNum,
HeadOfficeFullTimeNum = newtable.HeadOfficeFullTimeNum,
+ LargerClosedNum = newtable.LargerClosedNum,
+ LargerNotClosedNum = newtable.LargerNotClosedNum,
+
+ AwaitApprovalNum = newtable.AwaitApprovalNum,
+ PendingApprovalNum = newtable.PendingApprovalNum,
+ CompletedApprovalNum = newtable.CompletedApprovalNum,
+ SuperAwaitApprovalNum = newtable.SuperAwaitApprovalNum,
+ SuperPendingApprovalNum = newtable.SuperPendingApprovalNum,
+ SuperCompletedApprovalNum = newtable.SuperCompletedApprovalNum,
BranchInspectorGeneralNum = newtable.BranchInspectorGeneralNum,
BranchFullTimeNum = newtable.BranchFullTimeNum,
ProjectInspectorGeneralNum = newtable.ProjectInspectorGeneralNum,
@@ -182,6 +191,17 @@ namespace BLL
item.EnterpriseTopicsMeetingNum = dataHsse.EnterpriseTopicsMeetingNum;
item.FinishedNum = dataHsse.FinishedNum;
item.ArgumentNum = dataHsse.ArgumentNum;
+ item.LargerClosedNum = dataHsse.LargerClosedNum;
+ item.LargerNotClosedNum = dataHsse.LargerNotClosedNum;
+ item.LargerRate = "";
+
+ item.AwaitApprovalNum = dataHsse.AwaitApprovalNum;
+ item.PendingApprovalNum = dataHsse.PendingApprovalNum;
+ item.CompletedApprovalNum = dataHsse.CompletedApprovalNum;
+ item.SuperAwaitApprovalNum = dataHsse.SuperAwaitApprovalNum;
+ item.SuperPendingApprovalNum = dataHsse.SuperPendingApprovalNum;
+ item.SuperCompletedApprovalNum = dataHsse.SuperCompletedApprovalNum;
+
item.GeneralAccidentNum = dataHsse.GeneralAccidentNum;
item.GeneralClosedNum = dataHsse.GeneralClosedNum;
item.GeneralNotClosedNum = dataHsse.GeneralNotClosedNum;
@@ -492,6 +512,15 @@ namespace BLL
CertificateANum = projectData.Sum(x => x.CertificateANum),
CertificateBNum = projectData.Sum(x => x.CertificateBNum),
CertificateCNum = projectData.Sum(x => x.CertificateCNum),
+ LargerClosedNum = projectData.Sum(x => x.LargerClosedNum),
+ LargerNotClosedNum = projectData.Sum(x => x.LargerNotClosedNum),
+
+ AwaitApprovalNum = projectData.Sum(x => x.AwaitApprovalNum),
+ PendingApprovalNum = projectData.Sum(x => x.PendingApprovalNum),
+ CompletedApprovalNum = projectData.Sum(x => x.CompletedApprovalNum),
+ SuperAwaitApprovalNum = projectData.Sum(x => x.SuperAwaitApprovalNum),
+ SuperPendingApprovalNum = projectData.Sum(x => x.SuperPendingApprovalNum),
+ SuperCompletedApprovalNum = projectData.Sum(x => x.SuperCompletedApprovalNum),
SafetyCommitteeMeetingNum = GetSafetyCommitteeMeeting().Count,
EnterpriseTopicsMeetingNum = GetEnterpriseTopicsMeetingNum(),
ProjectSafetyLeadingGroupMeetingNum = projectData.Sum(x => x.ProjectSafetyLeadingGroupMeetingNum),
@@ -668,7 +697,7 @@ namespace BLL
var newWaterConsumptionTask = ChemicalReportItemService.GetLatstTimeNewWaterConsumption();
var securityRiskOutputListTask = HSSEData_HSSEService.GetSecurityRiskOutputsAsync();
var largeEngineeringOutputsTask = HSSEData_HSSEService.GetLargeEngineeringOutputsAsync();
-
+ var largerHiddenRectificationOutputsTask = HSSEData_HSSEService.GetLargerHiddenRectificationOutputsAsync();
var safetyInjectionEngineerTask = HSSEData_HSSEService.GetSafetyInjectionEngineerAsync();
var certificateATask = HSSEData_HSSEService.GetCertificateAAsync();
var certificateBTask = HSSEData_HSSEService.GetCertificateBAsync();
@@ -742,6 +771,7 @@ namespace BLL
certificateATask,
certificateBTask,
certificateCTask,
+ largerHiddenRectificationOutputsTask,
qualityPersonNumTask,
beUnderConstructionTask,
shutdownTask,
@@ -810,6 +840,7 @@ namespace BLL
var certificateAList = await certificateATask;
var certificateBList = await certificateBTask;
var certificateCList = await certificateCTask;
+ var largerHiddenRectificationOutputsList = await largerHiddenRectificationOutputsTask;
var qualityPersonList = await qualityPersonNumTask;
var beUnderConstructionList = await beUnderConstructionTask;
var shutdownList = await shutdownTask;
@@ -890,6 +921,16 @@ namespace BLL
TotalWorkingHour = totalWorkingHour,
LostWorkingHour = lostWorkingHour,
SafeWorkingHour = safeWorkingHour,
+ LargerClosedNum = largerHiddenRectificationOutputsList.Sum(x => x.RecNum),
+ LargerNotClosedNum = largerHiddenRectificationOutputsList.Sum(x => x.NoRecNum),
+
+ AwaitApprovalNum = largeEngineeringOutputsTask.Result.Sum(x => x.AwaitApprovalNum),
+ PendingApprovalNum = largeEngineeringOutputsTask.Result.Sum(x => x.PendingApprovalNum),
+ CompletedApprovalNum = largeEngineeringOutputsTask.Result.Sum(x => x.CompletedApprovalNum),
+ SuperAwaitApprovalNum = largeEngineeringOutputsTask.Result.Sum(x => x.SuperAwaitApprovalNum),
+ SuperPendingApprovalNum = largeEngineeringOutputsTask.Result.Sum(x => x.SuperPendingApprovalNum),
+ SuperCompletedApprovalNum = largeEngineeringOutputsTask.Result.Sum(x => x.SuperCompletedApprovalNum),
+
SafeTrainNum = safeTrainList.Sum(x => x.TrainPersonNum),
SpecialTrainNum = specialTrainList.Sum(x => x.TrainPersonNum),
SpecialOperationTrainNum = specialOperationTrainList.Sum(x => x.TrainPersonNum),
@@ -978,6 +1019,12 @@ namespace BLL
g => g.Key,
g => new { ClosedNum = g.Sum(x => x.RecNum), NotClosedNum = g.Sum(x => x.NoRecNum) }
);
+ var largerHiddenRectificationOutputsDict = largerHiddenRectificationOutputsList
+ .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(
@@ -1015,12 +1062,19 @@ namespace BLL
SuperOperativesNum = g.Sum(x => x.SuperOperativesNum),
SuperConstructionNum = g.Sum(x => x.SuperConstructionNum),
SuperFinishedNum = g.Sum(x => x.SuperFinishedNum),
+ AwaitApprovalNum = g.Sum(x => x.AwaitApprovalNum),
+ PendingApprovalNum = g.Sum(x => x.PendingApprovalNum),
+ CompletedApprovalNum = g.Sum(x => x.CompletedApprovalNum),
+ SuperAwaitApprovalNum = g.Sum(x => x.SuperAwaitApprovalNum),
+ SuperPendingApprovalNum = g.Sum(x => x.SuperPendingApprovalNum),
+ SuperCompletedApprovalNum = g.Sum(x => x.SuperCompletedApprovalNum),
SuperArgumentNum = g.Sum(x => x.SuperArgumentNum)
}
);
foreach (var projectid in BeUnderConstructionList)
{
generalHiddenRectificationOutputsDict.TryGetValue(projectid, out var generalHiddenRectificationOutputs);
+ largerHiddenRectificationOutputsDict.TryGetValue(projectid, out var largerHiddenRectificationOutputs);
majorHiddenRectificationOutputsDict.TryGetValue(projectid, out var majorHiddenRectificationOutputs);
securityRiskOutputDict.TryGetValue(projectid, out var securityRiskOutputs);
largeEngineeringOutputsDict.TryGetValue(projectid, out var largeEngineeringOutputs);
@@ -1042,6 +1096,14 @@ namespace BLL
SpecialOperationTrainNum = specialOperationTrainList.Where(x => x.ProjectId == projectid).Sum(x => x.TrainPersonNum),
HseTechnicalNum = hseTechnicalList.Count(x => x.ProjectId == projectid),
EnvironmentalTrainNum = 0,
+ LargerClosedNum = largerHiddenRectificationOutputs?.ClosedNum ?? 0,
+ LargerNotClosedNum = largerHiddenRectificationOutputs?.NotClosedNum ?? 0,
+ AwaitApprovalNum = largeEngineeringOutputs?.AwaitApprovalNum ?? 0,
+ PendingApprovalNum = largeEngineeringOutputs?.PendingApprovalNum ?? 0,
+ CompletedApprovalNum = largeEngineeringOutputs?.CompletedApprovalNum ?? 0,
+ SuperAwaitApprovalNum = largeEngineeringOutputs?.SuperAwaitApprovalNum ?? 0,
+ SuperPendingApprovalNum = largeEngineeringOutputs?.SuperPendingApprovalNum ?? 0,
+ SuperCompletedApprovalNum = largeEngineeringOutputs?.SuperCompletedApprovalNum ?? 0,
TotalEnergyConsumption = 0,
IncomeComprehensiveEnergyConsumption = 0,
NewWaterConsumption = 0,
@@ -1277,6 +1339,14 @@ namespace BLL
table.SafeWorkingHour = newtable.SafeWorkingHour;
table.SafeTrainNum = newtable.SafeTrainNum;
table.SpecialTrainNum = newtable.SpecialTrainNum;
+ table.LargerClosedNum = newtable.LargerClosedNum;
+ table.LargerNotClosedNum = newtable.LargerNotClosedNum;
+ table.AwaitApprovalNum = newtable.AwaitApprovalNum;
+ table.PendingApprovalNum = newtable.PendingApprovalNum;
+ table.CompletedApprovalNum = newtable.CompletedApprovalNum;
+ table.SuperAwaitApprovalNum = newtable.SuperAwaitApprovalNum;
+ table.SuperPendingApprovalNum = newtable.SuperPendingApprovalNum;
+ table.SuperCompletedApprovalNum = newtable.SuperCompletedApprovalNum;
table.SpecialOperationTrainNum = newtable.SpecialOperationTrainNum;
table.HseTechnicalNum = newtable.HseTechnicalNum;
table.EnvironmentalTrainNum = newtable.EnvironmentalTrainNum;
@@ -3937,24 +4007,24 @@ namespace BLL
{
List result = new List();
var result1 = (from x in Funs.DB.View_License_LicenseManager
- where BeUnderConstructionList.Contains(x.ProjectId) && x.IsHighRisk == true &&
- x.CompileDate > Const.DtmarkTime
- select new Model.LicenseOutput
- {
- Id = x.LicenseManagerId,
- ProjectId = x.ProjectId,
- ProjectName = ProjectService.GetProjectNameByProjectId(x.ProjectId),
- UnitId = x.UnitId,
- UnitName = UnitService.GetUnitNameByUnitId(x.UnitId),
- LicenseTypeName = x.LicenseTypeName,
- UnitTypeName = "",
- IsHighRisk = x.IsHighRisk,
- WorkAreaName = "",
- CompileDate = x.CompileDate,
- StartDate = x.StartDate,
- EndDate = x.EndDate,
- WorkStatesStr = ""
- }).ToList();
+ where BeUnderConstructionList.Contains(x.ProjectId) && x.IsHighRisk == true &&
+ x.CompileDate > Const.DtmarkTime
+ select new Model.LicenseOutput
+ {
+ Id = x.LicenseManagerId,
+ ProjectId = x.ProjectId,
+ ProjectName = ProjectService.GetProjectNameByProjectId(x.ProjectId),
+ UnitId = x.UnitId,
+ UnitName = UnitService.GetUnitNameByUnitId(x.UnitId),
+ LicenseTypeName = x.LicenseTypeName,
+ UnitTypeName = "",
+ IsHighRisk = x.IsHighRisk,
+ WorkAreaName = "",
+ CompileDate = x.CompileDate,
+ StartDate = x.StartDate,
+ EndDate = x.EndDate,
+ WorkStatesStr = ""
+ }).ToList();
var result2 = (from x in Funs.DB.License_FireWork
where BeUnderConstructionList.Contains(x.ProjectId)
select new Model.LicenseOutput
@@ -4162,7 +4232,7 @@ namespace BLL
var query = (from x in Funs.DB.Base_Project
join y in Funs.DB.HSSE_Hazard_HazardRegister on x.ProjectId equals y.ProjectId into yGroup
from y in yGroup.DefaultIfEmpty()
- where BeUnderConstructionList.Contains(x.ProjectId) && y.ProblemTypes == "1" && (y.HazardValue == "0.3" || y.HazardValue == "1" || y.HazardValue == null) && y.CheckTime > Const.DtmarkTime
+ where BeUnderConstructionList.Contains(x.ProjectId) && y.ProblemTypes == "1" && (y.HazardValue == "0.3" || y.HazardValue == null) && y.CheckTime > Const.DtmarkTime
group y by new { x.ProjectId, x.ProjectName, x.ProjectCode } into gg
select new HiddenRectificationOutput
{
@@ -4188,6 +4258,42 @@ namespace BLL
return await Task.Run(GetGeneralHiddenRectificationOutputs);
}
+ ///
+ /// 获取较大隐患数据
+ ///
+ ///
+ public static List GetLargerHiddenRectificationOutputs()
+ {
+ var query = (from x in Funs.DB.Base_Project
+ join y in Funs.DB.HSSE_Hazard_HazardRegister on x.ProjectId equals y.ProjectId into yGroup
+ from y in yGroup.DefaultIfEmpty()
+ where BeUnderConstructionList.Contains(x.ProjectId) && y.ProblemTypes == "1" && y.HazardValue == "1" && y.CheckTime > Const.DtmarkTime
+ group y by new { x.ProjectId, x.ProjectName, x.ProjectCode } into gg
+ select new HiddenRectificationOutput
+ {
+ ProjectId = gg.Key.ProjectId,
+ ProjectName = gg.Key.ProjectName,
+ ProjectCode = gg.Key.ProjectCode,
+ ProNum = gg.Count(y => y.States != "4" && y.States != "-1"),
+ RecNum = gg.Count(y => y.States == "3"),
+ NoRecNum = gg.Count(y => y.States != "3" && y.States != "4" && y.States != "-1"),
+ RecRate = gg.Count(y => y.States != "4" && y.States != "-1") == 0 ? "0" :
+ Math.Round(Convert.ToDecimal(gg.Count(y => y.States == "3") /
+ gg.Count(y => y.States != "4" && y.States != "-1") * 100), 2, MidpointRounding.AwayFromZero).ToString()
+ }).ToList();
+
+ foreach (var item in query)
+ {
+ item.RecRate = Math.Round(Convert.ToDecimal(item.RecRate), 2).ToString(); // 转换为字符串并格式化为两位小数
+ }
+ return query;
+ }
+ public static async Task> GetLargerHiddenRectificationOutputsAsync()
+ {
+ return await Task.Run(GetLargerHiddenRectificationOutputs);
+ }
+
+
///
/// 获取重大隐患数据
///
@@ -4285,6 +4391,12 @@ namespace BLL
SuperArgumentNum = gg.Count(x => x.IsArgument == true && x.IsSuperLargerHazard == true),
OperativesNum = gg.Where(x => x.IsSuperLargerHazard == false).Sum(x => x.OperativesNum) ?? 0,
SuperOperativesNum = gg.Where(x => x.IsSuperLargerHazard == true).Sum(x => x.OperativesNum) ?? 0,
+ AwaitApprovalNum = gg.Count(x => x.ApprovalState == "0" && x.IsSuperLargerHazard == false),
+ PendingApprovalNum = gg.Count(x => x.ApprovalState == "1" && x.IsSuperLargerHazard == false),
+ CompletedApprovalNum = gg.Count(x => x.ApprovalState == "2" && x.IsSuperLargerHazard == false),
+ SuperAwaitApprovalNum = gg.Count(x => x.ApprovalState == "0" && x.IsSuperLargerHazard == true),
+ SuperPendingApprovalNum = gg.Count(x => x.ApprovalState == "1" && x.IsSuperLargerHazard == true),
+ SuperCompletedApprovalNum = gg.Count(x => x.ApprovalState == "2" && x.IsSuperLargerHazard == true),
}).ToList();
return query;
@@ -4531,6 +4643,14 @@ namespace BLL
x.SpecialTrainNum,
x.SpecialOperationTrainNum,
x.HseTechnicalNum,
+ x.LargerClosedNum,
+ x.LargerNotClosedNum,
+ x.AwaitApprovalNum,
+ x.PendingApprovalNum,
+ x.CompletedApprovalNum,
+ x.SuperAwaitApprovalNum,
+ x.SuperPendingApprovalNum,
+ x.SuperCompletedApprovalNum,
x.EnvironmentalTrainNum,
x.TotalEnergyConsumption,
x.IncomeComprehensiveEnergyConsumption,
diff --git a/SGGL/BLL/ZHGL/DataSync/ProjectDataSync/Project_HSSEData_HSSEService.cs b/SGGL/BLL/ZHGL/DataSync/ProjectDataSync/Project_HSSEData_HSSEService.cs
index e5b69beb..4df61e16 100644
--- a/SGGL/BLL/ZHGL/DataSync/ProjectDataSync/Project_HSSEData_HSSEService.cs
+++ b/SGGL/BLL/ZHGL/DataSync/ProjectDataSync/Project_HSSEData_HSSEService.cs
@@ -127,6 +127,16 @@ namespace BLL
LostWorkingHour = newtable.LostWorkingHour,
SafeWorkingHour = newtable.SafeWorkingHour,
SafeTrainNum = newtable.SafeTrainNum,
+ LargerClosedNum = newtable.LargerClosedNum,
+ LargerNotClosedNum = newtable.LargerNotClosedNum,
+
+ AwaitApprovalNum = newtable.AwaitApprovalNum,
+ PendingApprovalNum = newtable.PendingApprovalNum,
+ CompletedApprovalNum = newtable.CompletedApprovalNum,
+ SuperAwaitApprovalNum = newtable.SuperAwaitApprovalNum,
+ SuperPendingApprovalNum = newtable.SuperPendingApprovalNum,
+ SuperCompletedApprovalNum = newtable.SuperCompletedApprovalNum,
+
SpecialTrainNum = newtable.SpecialTrainNum,
SpecialOperationTrainNum = newtable.SpecialOperationTrainNum,
HseTechnicalNum = newtable.HseTechnicalNum,
@@ -275,6 +285,18 @@ namespace BLL
table.TotalEnergyConsumption = newtable.TotalEnergyConsumption;
table.IncomeComprehensiveEnergyConsumption = newtable.IncomeComprehensiveEnergyConsumption;
table.NewWaterConsumption = newtable.NewWaterConsumption;
+ table.LargerClosedNum = newtable.LargerClosedNum;
+ table.LargerNotClosedNum = newtable.LargerNotClosedNum;
+
+ table.ArgumentNum = newtable.ArgumentNum;
+ table.SuperArgumentNum = newtable.SuperArgumentNum;
+ table.AwaitApprovalNum = newtable.AwaitApprovalNum;
+ table.PendingApprovalNum = newtable.PendingApprovalNum;
+ table.CompletedApprovalNum = newtable.CompletedApprovalNum;
+ table.SuperAwaitApprovalNum = newtable.SuperAwaitApprovalNum;
+ table.SuperPendingApprovalNum = newtable.SuperPendingApprovalNum;
+ table.SuperCompletedApprovalNum = newtable.SuperCompletedApprovalNum;
+
table.HeadOfficeInspectorGeneralNum = newtable.HeadOfficeInspectorGeneralNum;
table.HeadOfficeFullTimeNum = newtable.HeadOfficeFullTimeNum;
table.BranchInspectorGeneralNum = newtable.BranchInspectorGeneralNum;
@@ -552,6 +574,9 @@ namespace BLL
table.GeneralNotClosedNum = GetGeneralNotClosedNum(projectid);
table.MajorClosedNum = GetMajorClosedNum(projectid);
table.MajorNotClosedNum = GetMajorNotClosedNum(projectid);
+ table.LargerClosedNum = GetLargerClosedNum(projectid);
+ table.LargerNotClosedNum = GetLargerNotClosedNum(projectid);
+
}
if (hSseDateType == HSSEDateType.SecurityRisk || hSseDateType == HSSEDateType.All)
@@ -616,6 +641,14 @@ namespace BLL
table.SuperOperativesNum = GetSuperOperativesNum(projectid);
table.SuperConstructionNum = GetSuperConstructionNum(projectid);
table.SuperFinishedNum = GetSuperFinishedNum(projectid);
+ table.ArgumentNum = GetArgumentNum(projectid);
+ table.SuperArgumentNum = GetSuperArgumentNum(projectid);
+ table.AwaitApprovalNum = GetAwaitApprovalNum(projectid);
+ table.PendingApprovalNum = GetPendingApprovalNum(projectid);
+ table.CompletedApprovalNum = GetCompletedApprovalNum(projectid);
+ table.SuperAwaitApprovalNum = GetSuperAwaitApprovalNum(projectid);
+ table.SuperPendingApprovalNum = GetSuperPendingApprovalNum(projectid);
+ table.SuperCompletedApprovalNum = GetSuperCompletedApprovalNum(projectid);
}
if (IsReportByToday(projectid))
@@ -1389,7 +1422,7 @@ namespace BLL
public static int GetGeneralClosedNum(string projectid)
{
var result = (from x in Funs.DB.HSSE_Hazard_HazardRegister
- where x.ProjectId == projectid && (x.HazardValue == "0.3" || x.HazardValue == "1" || x.HazardValue == null) && x.States == "3" &&
+ where x.ProjectId == projectid && (x.HazardValue == "0.3" || x.HazardValue == null) && x.States == "3" &&
x.CheckTime > Const.DtmarkTime
select x).Count();
return result;
@@ -1402,7 +1435,33 @@ namespace BLL
public static int GetGeneralNotClosedNum(string projectid)
{
var result = (from x in Funs.DB.HSSE_Hazard_HazardRegister
- where x.ProjectId == projectid && (x.HazardValue == "0.3" || x.HazardValue == "1" || x.HazardValue == null) && x.States != "3" && x.States != "-1" &&
+ where x.ProjectId == projectid && (x.HazardValue == "0.3" || x.HazardValue == null) && x.States != "3" && x.States != "-1" &&
+ x.CheckTime > Const.DtmarkTime
+ select x).Count();
+ return result;
+ }
+
+ ///
+ /// 获取较大隐患整改闭环项
+ ///
+ ///
+ public static int GetLargerClosedNum(string projectid)
+ {
+ var result = (from x in Funs.DB.HSSE_Hazard_HazardRegister
+ where x.ProjectId == projectid && x.HazardValue == "1" && x.States == "3" &&
+ x.CheckTime > Const.DtmarkTime
+ select x).Count();
+ return result;
+ }
+
+ ///
+ /// 获取较大隐患未整改完成项
+ ///
+ ///
+ public static int GetLargerNotClosedNum(string projectid)
+ {
+ var result = (from x in Funs.DB.HSSE_Hazard_HazardRegister
+ where x.ProjectId == projectid && x.HazardValue == "1" && x.States != "3" && x.States != "-1" &&
x.CheckTime > Const.DtmarkTime
select x).Count();
return result;
@@ -1537,6 +1596,105 @@ namespace BLL
return result;
}
+ ///
+ /// 获取危大工程论证个数
+ ///
+ ///
+ public static int GetArgumentNum(string projectid)
+ {
+ var result = (from x in Funs.DB.Solution_LargerHazard
+ where x.ProjectId == projectid && x.IsArgument == true && x.IsSuperLargerHazard == false &&
+ x.RecordTime > Const.DtmarkTime
+ select x).Count();
+ return result;
+ }
+
+ ///
+ /// 获取超危大工程论证个数
+ ///
+ ///
+ public static int GetSuperArgumentNum(string projectid)
+ {
+ var result = (from x in Funs.DB.Solution_LargerHazard
+ where x.ProjectId == projectid && x.IsArgument == true && x.IsSuperLargerHazard == true &&
+ x.RecordTime > Const.DtmarkTime
+ select x).Count();
+ return result;
+ }
+
+ ///
+ /// 获取危大工程待审核个数
+ ///
+ ///
+ public static int GetAwaitApprovalNum(string projectid)
+ {
+ var result = (from x in Funs.DB.Solution_LargerHazard
+ where x.ProjectId == projectid && x.ApprovalState == "0" && x.IsSuperLargerHazard == false && x.RecordTime > Const.DtmarkTime
+ select x).Count();
+ return result;
+ }
+
+ ///
+ /// 获取超危大工程待审核个数
+ ///
+ ///
+ public static int GetSuperAwaitApprovalNum(string projectid)
+ {
+ var result = (from x in Funs.DB.Solution_LargerHazard
+ where x.ProjectId == projectid && x.ApprovalState == "0" && x.IsSuperLargerHazard == true && x.RecordTime > Const.DtmarkTime
+ select x).Count();
+ return result;
+ }
+
+ ///
+ /// 获取危大工程审核中个数
+ ///
+ ///
+ public static int GetPendingApprovalNum(string projectid)
+ {
+ var result = (from x in Funs.DB.Solution_LargerHazard
+ where x.ProjectId == projectid && x.ApprovalState == "1" && x.IsSuperLargerHazard == false && x.RecordTime > Const.DtmarkTime
+ select x).Count();
+ return result;
+ }
+
+ ///
+ /// 获取超危大工程审核中个数
+ ///
+ ///
+ public static int GetSuperPendingApprovalNum(string projectid)
+ {
+ var result = (from x in Funs.DB.Solution_LargerHazard
+ where x.ProjectId == projectid && x.ApprovalState == "1" && x.IsSuperLargerHazard == true && x.RecordTime > Const.DtmarkTime
+ select x).Count();
+ return result;
+ }
+
+ ///
+ /// 获取危大工程已完成个数
+ ///
+ ///
+ public static int GetCompletedApprovalNum(string projectid)
+ {
+ var result = (from x in Funs.DB.Solution_LargerHazard
+ where x.ProjectId == projectid && x.ApprovalState == "2" && x.IsSuperLargerHazard == false && x.RecordTime > Const.DtmarkTime
+ select x).Count();
+ return result;
+ }
+
+ ///
+ /// 获取超危大工程已完成个数
+ ///
+ ///
+ public static int GetSuperCompletedApprovalNum(string projectid)
+ {
+ var result = (from x in Funs.DB.Solution_LargerHazard
+ where x.ProjectId == projectid && x.ApprovalState == "2" && x.IsSuperLargerHazard == true && x.RecordTime > Const.DtmarkTime
+ select x).Count();
+ return result;
+ }
+
+
///
/// 获取超危大工程审批完成数
///
@@ -1639,6 +1797,18 @@ namespace BLL
x.SafeWorkingHour,
x.SafeTrainNum,
x.SpecialTrainNum,
+ x.LargerClosedNum,
+ x.LargerNotClosedNum,
+
+ x.ArgumentNum,
+ x.SuperArgumentNum,
+ x.AwaitApprovalNum,
+ x.PendingApprovalNum,
+ x.CompletedApprovalNum,
+ x.SuperAwaitApprovalNum,
+ x.SuperPendingApprovalNum,
+ x.SuperCompletedApprovalNum,
+
x.SpecialOperationTrainNum,
x.TotalEnergyConsumption,
x.IncomeComprehensiveEnergyConsumption,
diff --git a/SGGL/BLL/ZHGL/Supervise/UnitHazardRegisterItemService.cs b/SGGL/BLL/ZHGL/Supervise/UnitHazardRegisterItemService.cs
index 79d81776..9edaf837 100644
--- a/SGGL/BLL/ZHGL/Supervise/UnitHazardRegisterItemService.cs
+++ b/SGGL/BLL/ZHGL/Supervise/UnitHazardRegisterItemService.cs
@@ -214,10 +214,10 @@ namespace BLL
ProjectId = r.ProjectId,
CheckUnitName = u.UnitName,
States = r.States,
- ProblemStatesName = i.CompleteStatus==1 ? "已整改":"未整改",
+ ProblemStatesName = i.CompleteStatus == 1 ? "已整改" : "未整改",
ProblemStates = i.CompleteStatus,
InsResponsibleUserId = r.InsResponsibleUserId,
- InsResponsibleUserName= user.PersonName
+ InsResponsibleUserName = user.PersonName
};
// 应用检查大类过滤
@@ -281,17 +281,24 @@ namespace BLL
var thisUnit = BLL.CommonService.GetIsThisUnit();
if (thisUnit.UnitId != input.UnitId)
{
- // 先获取用户有权限的项目ID列表
- var projectIds = (from p in Funs.DB.Base_Project
- where p.UnitId == input.UnitId
- select p.ProjectId).ToList();
+ //// 先获取用户有权限的项目ID列表
+ //var projectIds = (from p in Funs.DB.Base_Project
+ // where p.UnitId == input.UnitId
+ // select p.ProjectId).ToList();
+
+ //// 过滤查询结果
+ //query = query.Where(x => Funs.DB.Supervise_UnitHazardRegister
+ // .Any(r => Funs.DB.Supervise_UnitHazardRegisterItem
+ // .Any(i => i.UnitHazardRegisterItemId == x.UnitHazardRegisterItemId &&
+ // i.UnitHazardRegisterId == r.UnitHazardRegisterId &&
+ // projectIds.Contains(r.ProjectId))));
// 过滤查询结果
query = query.Where(x => Funs.DB.Supervise_UnitHazardRegister
.Any(r => Funs.DB.Supervise_UnitHazardRegisterItem
.Any(i => i.UnitHazardRegisterItemId == x.UnitHazardRegisterItemId &&
i.UnitHazardRegisterId == r.UnitHazardRegisterId &&
- projectIds.Contains(r.ProjectId))));
+ input.UnitId == r.CheckUnitId)));
}
}
diff --git a/SGGL/BLL/ZHGL/Supervise/UnitHazardRegisterService.cs b/SGGL/BLL/ZHGL/Supervise/UnitHazardRegisterService.cs
index e9178e85..efa98801 100644
--- a/SGGL/BLL/ZHGL/Supervise/UnitHazardRegisterService.cs
+++ b/SGGL/BLL/ZHGL/Supervise/UnitHazardRegisterService.cs
@@ -26,10 +26,10 @@ namespace BLL
public enum StateInt : int
{
- 待提交 = 0,
- 待整改= 1,
- 部分整改 = 2,
- 已闭环 = 3,
+ 待提交 = 0,
+ 待整改 = 1,
+ 部分整改 = 2,
+ 已闭环 = 3,
}
#endregion Enums
@@ -51,6 +51,7 @@ namespace BLL
CheckDate = register.CheckDate,
CheckMainType = register.CheckMainType,
CheckType = register.CheckType,
+ InspectionUnit = register.InspectionUnit,
ProjectId = register.ProjectId,
CheckUnitId = register.CheckUnitId,
CheckTeam = register.CheckTeam,
@@ -59,7 +60,7 @@ namespace BLL
InsResponsibleUserId = register.InsResponsibleUserId,
EvaluationResult = register.EvaluationResult,
AttachUrl = register.AttachUrl,
- States = register.States??0,
+ States = register.States ?? 0,
CompileMan = register.CompileMan,
CreateDate = DateTime.Now
};
@@ -118,8 +119,8 @@ namespace BLL
}
public static int GetCount(string checkMainType)
{
- return (from x in Funs.DB.Supervise_UnitHazardRegister
- where x.CheckMainType ==checkMainType
+ return (from x in Funs.DB.Supervise_UnitHazardRegister
+ where x.CheckMainType == checkMainType
select x.UnitHazardRegisterId).Count();
}
///
@@ -143,7 +144,7 @@ namespace BLL
if (register == null)
{
return false;
- }
+ }
// 只有"待提交"状态可以删除,其他状态不能删除
return register.States <= (int)StateInt.待提交;
}
@@ -171,6 +172,9 @@ namespace BLL
on new { MainType = x.CheckMainType, TypeCode = x.CheckType }
equals new { MainType = ct.CheckMainType, TypeCode = ct.CheckTypeCode } into ctGroup
from ct in ctGroup.DefaultIfEmpty()
+ join inu in db.Base_Unit
+ on x.InspectionUnit equals inu.UnitId into inuGroup
+ from inu in inuGroup.DefaultIfEmpty()
join u in db.Base_Unit
on x.CheckUnitId equals u.UnitId into uGroup
from u in uGroup.DefaultIfEmpty()
@@ -185,7 +189,9 @@ namespace BLL
CheckMainTypeName = x.CheckMainType == "0" ? "安全" : "质量",
CheckType = x.CheckType,
CheckTypeName = ct.CheckTypeName,
+ InspectionUnitName = inu.UnitName,
CheckObjectText = p.ProjectName,
+ CheckUnitId = x.CheckUnitId,
CheckUnitName = u.UnitName,
CheckTeam = x.CheckTeam,
EvaluationResult = x.EvaluationResult,
@@ -219,6 +225,10 @@ namespace BLL
{
query = query.Where(x => x.ProjectId != null && x.ProjectId == input.ProjectId);
}
+ if (input != null && !string.IsNullOrEmpty(input.CheckUnitId) && input.CheckUnitId != BLL.Const.UnitId_SEDIN)
+ {
+ query = query.Where(x => x.CheckUnitId != null && x.CheckUnitId == input.CheckUnitId);
+ }
// 获取总数
totalCount = query.Count();
@@ -235,7 +245,7 @@ namespace BLL
.Skip(pageIndex * pageSize)
.Take(pageSize)
.ToList();
- }
+ }
///
/// 更新企业级检查记录
@@ -253,6 +263,7 @@ namespace BLL
newRegister.CheckDate = register.CheckDate;
newRegister.CheckMainType = register.CheckMainType;
newRegister.CheckType = register.CheckType;
+ newRegister.InspectionUnit = register.InspectionUnit;
newRegister.ProjectId = register.ProjectId;
newRegister.CheckUnitId = register.CheckUnitId;
newRegister.CheckTeam = register.CheckTeam;
diff --git a/SGGL/FineUIPro.Web/File/Excel/DataIn/企业大检查明细导入模板.xls b/SGGL/FineUIPro.Web/File/Excel/DataIn/企业大检查明细导入模板.xls
new file mode 100644
index 0000000000000000000000000000000000000000..e4add0550258620d7903b79a8170e22e4937c5b8
GIT binary patch
literal 18944
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
b4;(wtbXPdy7s;+PswaJ9#v`!)+lT)Fd+TJd
literal 0
HcmV?d00001
diff --git a/SGGL/FineUIPro.Web/File/Excel/DataIn/现场车辆管理导入模板.xls b/SGGL/FineUIPro.Web/File/Excel/DataIn/现场车辆管理导入模板.xls
new file mode 100644
index 0000000000000000000000000000000000000000..5aa8c669d811e65467e5cab0006589c2a6ac1ab1
GIT binary patch
literal 18432
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
literal 0
HcmV?d00001
diff --git a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj
index d3b307a5..223f44ea 100644
--- a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj
+++ b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj
@@ -3536,6 +3536,7 @@
+
@@ -3653,6 +3654,9 @@
+
+
+
@@ -16902,6 +16906,13 @@
UnitHazardRegister.aspx
+
+ UnitHazardRegisterDetailIn.aspx
+ ASPXCodeBehind
+
+
+ UnitHazardRegisterDetailIn.aspx
+
UnitHazardRegisterEdit.aspx
ASPXCodeBehind
@@ -17006,7 +17017,7 @@
-
+
diff --git a/SGGL/FineUIPro.Web/HSSE/Solution/LargerHazardEdit.aspx b/SGGL/FineUIPro.Web/HSSE/Solution/LargerHazardEdit.aspx
index b80f3c44..ad64de91 100644
--- a/SGGL/FineUIPro.Web/HSSE/Solution/LargerHazardEdit.aspx
+++ b/SGGL/FineUIPro.Web/HSSE/Solution/LargerHazardEdit.aspx
@@ -48,7 +48,7 @@
-
+
@@ -59,7 +59,11 @@
-
+
+
+
+
+
diff --git a/SGGL/FineUIPro.Web/HSSE/Solution/LargerHazardEdit.aspx.cs b/SGGL/FineUIPro.Web/HSSE/Solution/LargerHazardEdit.aspx.cs
index 979864b9..ce4ac6fe 100644
--- a/SGGL/FineUIPro.Web/HSSE/Solution/LargerHazardEdit.aspx.cs
+++ b/SGGL/FineUIPro.Web/HSSE/Solution/LargerHazardEdit.aspx.cs
@@ -82,6 +82,7 @@ namespace FineUIPro.Web.HSSE.Solution
{
this.rblIsArgument.SelectedValue = "False";
}
+ this.drpApprovalState.SelectedValue = largerHazard.ApprovalState;
if (largerHazard.IsSuperLargerHazard == true)
{
this.rblIsSuperLargerHazard.SelectedValue = "True";
@@ -151,6 +152,7 @@ namespace FineUIPro.Web.HSSE.Solution
OperativesNum = Funs.GetNewIntOrZero(this.txtOperativesNum.Text.Trim()),
Remark = HttpUtility.HtmlEncode(this.txtRemark.Text.Trim()),
Descriptions = this.txtDescriptions.Text.Trim(),
+ ApprovalState = this.drpApprovalState.SelectedValue,
RecordTime = Funs.GetNewDateTime(this.txtRecordTime.Text.Trim()),
ProjectId = this.ProjectId,
States = this.drpStates.SelectedValue,
diff --git a/SGGL/FineUIPro.Web/HSSE/Solution/LargerHazardEdit.aspx.designer.cs b/SGGL/FineUIPro.Web/HSSE/Solution/LargerHazardEdit.aspx.designer.cs
index 143d080e..f7d2420b 100644
--- a/SGGL/FineUIPro.Web/HSSE/Solution/LargerHazardEdit.aspx.designer.cs
+++ b/SGGL/FineUIPro.Web/HSSE/Solution/LargerHazardEdit.aspx.designer.cs
@@ -7,13 +7,11 @@
// 自动生成>
//------------------------------------------------------------------------------
-namespace FineUIPro.Web.HSSE.Solution
-{
-
-
- public partial class LargerHazardEdit
- {
-
+namespace FineUIPro.Web.HSSE.Solution {
+
+
+ public partial class LargerHazardEdit {
+
///
/// form1 控件。
///
@@ -22,7 +20,7 @@ namespace FineUIPro.Web.HSSE.Solution
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
-
+
///
/// PageManager1 控件。
///
@@ -31,7 +29,7 @@ namespace FineUIPro.Web.HSSE.Solution
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.PageManager PageManager1;
-
+
///
/// SimpleForm1 控件。
///
@@ -40,7 +38,7 @@ namespace FineUIPro.Web.HSSE.Solution
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.Form SimpleForm1;
-
+
///
/// txtHazardName 控件。
///
@@ -49,7 +47,7 @@ namespace FineUIPro.Web.HSSE.Solution
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.TextBox txtHazardName;
-
+
///
/// txtLargerHazardCode 控件。
///
@@ -58,7 +56,7 @@ namespace FineUIPro.Web.HSSE.Solution
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.TextBox txtLargerHazardCode;
-
+
///
/// drpHazardType 控件。
///
@@ -67,7 +65,7 @@ namespace FineUIPro.Web.HSSE.Solution
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.DropDownList drpHazardType;
-
+
///
/// txtExpectedTime 控件。
///
@@ -76,7 +74,7 @@ namespace FineUIPro.Web.HSSE.Solution
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.DatePicker txtExpectedTime;
-
+
///
/// rblIsArgument 控件。
///
@@ -85,7 +83,7 @@ namespace FineUIPro.Web.HSSE.Solution
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.RadioButtonList rblIsArgument;
-
+
///
/// txtRecordTime 控件。
///
@@ -94,7 +92,7 @@ namespace FineUIPro.Web.HSSE.Solution
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.DatePicker txtRecordTime;
-
+
///
/// txtAddress 控件。
///
@@ -103,7 +101,7 @@ namespace FineUIPro.Web.HSSE.Solution
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.TextBox txtAddress;
-
+
///
/// rblIsSuperLargerHazard 控件。
///
@@ -112,7 +110,7 @@ namespace FineUIPro.Web.HSSE.Solution
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.RadioButtonList rblIsSuperLargerHazard;
-
+
///
/// txtTrainPersonNum 控件。
///
@@ -121,7 +119,7 @@ namespace FineUIPro.Web.HSSE.Solution
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.NumberBox txtTrainPersonNum;
-
+
///
/// drpStates 控件。
///
@@ -130,7 +128,7 @@ namespace FineUIPro.Web.HSSE.Solution
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.DropDownList drpStates;
-
+
///
/// txtOperativesNum 控件。
///
@@ -139,16 +137,16 @@ namespace FineUIPro.Web.HSSE.Solution
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.NumberBox txtOperativesNum;
-
+
///
- /// txtOperativesNum1 控件。
+ /// drpApprovalState 控件。
///
///
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
- protected global::FineUIPro.Label txtOperativesNum1;
-
+ protected global::FineUIPro.DropDownList drpApprovalState;
+
///
/// txtOperativesNum2 控件。
///
@@ -157,7 +155,7 @@ namespace FineUIPro.Web.HSSE.Solution
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.Label txtOperativesNum2;
-
+
///
/// txtDescriptions 控件。
///
@@ -166,7 +164,7 @@ namespace FineUIPro.Web.HSSE.Solution
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.TextArea txtDescriptions;
-
+
///
/// txtRemark 控件。
///
@@ -175,7 +173,7 @@ namespace FineUIPro.Web.HSSE.Solution
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.HtmlEditor txtRemark;
-
+
///
/// Toolbar1 控件。
///
@@ -184,7 +182,7 @@ namespace FineUIPro.Web.HSSE.Solution
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.Toolbar Toolbar1;
-
+
///
/// lbTemp 控件。
///
@@ -193,7 +191,7 @@ namespace FineUIPro.Web.HSSE.Solution
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.Label lbTemp;
-
+
///
/// btnAttachUrl1 控件。
///
@@ -202,7 +200,7 @@ namespace FineUIPro.Web.HSSE.Solution
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.Button btnAttachUrl1;
-
+
///
/// btnAttachUrl2 控件。
///
@@ -211,7 +209,7 @@ namespace FineUIPro.Web.HSSE.Solution
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.Button btnAttachUrl2;
-
+
///
/// btnAttachUrl3 控件。
///
@@ -220,7 +218,7 @@ namespace FineUIPro.Web.HSSE.Solution
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.Button btnAttachUrl3;
-
+
///
/// btnAttachUrl4 控件。
///
@@ -229,7 +227,7 @@ namespace FineUIPro.Web.HSSE.Solution
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.Button btnAttachUrl4;
-
+
///
/// btnAttachUrl5 控件。
///
@@ -238,7 +236,7 @@ namespace FineUIPro.Web.HSSE.Solution
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.Button btnAttachUrl5;
-
+
///
/// btnAttachUrl6 控件。
///
@@ -247,7 +245,7 @@ namespace FineUIPro.Web.HSSE.Solution
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.Button btnAttachUrl6;
-
+
///
/// btnAttachUrl7 控件。
///
@@ -256,7 +254,7 @@ namespace FineUIPro.Web.HSSE.Solution
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.Button btnAttachUrl7;
-
+
///
/// btnAttachUrl8 控件。
///
@@ -265,7 +263,7 @@ namespace FineUIPro.Web.HSSE.Solution
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.Button btnAttachUrl8;
-
+
///
/// btnAttachUrl9 控件。
///
@@ -274,7 +272,7 @@ namespace FineUIPro.Web.HSSE.Solution
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.Button btnAttachUrl9;
-
+
///
/// ToolbarFill1 控件。
///
@@ -283,7 +281,7 @@ namespace FineUIPro.Web.HSSE.Solution
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.ToolbarFill ToolbarFill1;
-
+
///
/// btnSave 控件。
///
@@ -292,7 +290,7 @@ namespace FineUIPro.Web.HSSE.Solution
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.Button btnSave;
-
+
///
/// btnClose 控件。
///
@@ -301,7 +299,7 @@ namespace FineUIPro.Web.HSSE.Solution
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
protected global::FineUIPro.Button btnClose;
-
+
///
/// WindowAtt 控件。
///
diff --git a/SGGL/FineUIPro.Web/HSSE/Solution/LargerHazardList.aspx b/SGGL/FineUIPro.Web/HSSE/Solution/LargerHazardList.aspx
index 88d12363..31f65495 100644
--- a/SGGL/FineUIPro.Web/HSSE/Solution/LargerHazardList.aspx
+++ b/SGGL/FineUIPro.Web/HSSE/Solution/LargerHazardList.aspx
@@ -80,6 +80,10 @@
+
+
diff --git a/SGGL/FineUIPro.Web/HSSE/Solution/LargerHazardList.aspx.cs b/SGGL/FineUIPro.Web/HSSE/Solution/LargerHazardList.aspx.cs
index 032713aa..5b222da0 100644
--- a/SGGL/FineUIPro.Web/HSSE/Solution/LargerHazardList.aspx.cs
+++ b/SGGL/FineUIPro.Web/HSSE/Solution/LargerHazardList.aspx.cs
@@ -36,6 +36,10 @@ namespace FineUIPro.Web.HSSE.Solution
{
string strSql = @"SELECT LargerHazard.HazardId,LargerHazard.ProjectId,CodeRecords.Code AS HazardCode,LargerHazard.Address,Users.PersonName,LargerHazard.ExpectedTime,LargerHazard.RecordTime "
+ @" ,(CASE WHEN LargerHazard.States = " + BLL.Const.State_0 + " OR LargerHazard.States IS NULL THEN '待['+OperateUser.PersonName+']提交' WHEN LargerHazard.States = " + BLL.Const.State_2 + " THEN '审核/审批完成' ELSE '待['+OperateUser.PersonName+']办理' END) AS FlowOperateName"
+ + @" ,case LargerHazard.ApprovalState when '0' then '待审核'
+ when '1' then '审核中'
+ when '2' then '已完成'
+ else '' end as ApprovalStateStr"
+ @", case when LargerHazard.IsArgument=1 then '是' else '否' end as IsArgumentStr,Const.ConstText as TypeName"
+ @" FROM Solution_LargerHazard AS LargerHazard "
+ @" LEFT JOIN Sys_FlowOperate AS FlowOperate ON LargerHazard.HazardId=FlowOperate.DataId AND FlowOperate.IsClosed <> 1"
diff --git a/SGGL/FineUIPro.Web/HSSE/Solution/LargerHazardView.aspx b/SGGL/FineUIPro.Web/HSSE/Solution/LargerHazardView.aspx
index c5fb72e1..4722c534 100644
--- a/SGGL/FineUIPro.Web/HSSE/Solution/LargerHazardView.aspx
+++ b/SGGL/FineUIPro.Web/HSSE/Solution/LargerHazardView.aspx
@@ -33,6 +33,17 @@
+
+
+
+
+
+
+
+
+
+
+
protected global::FineUIPro.TextBox txtAddress;
+ ///
+ /// drpApprovalState 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.DropDownList drpApprovalState;
+
+ ///
+ /// txtOperativesNum2 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label txtOperativesNum2;
+
+ ///
+ /// Label1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label Label1;
+
///
/// txtDescriptions 控件。
///
diff --git a/SGGL/FineUIPro.Web/ZHGL/Supervise/UnitHazardRegister.aspx b/SGGL/FineUIPro.Web/ZHGL/Supervise/UnitHazardRegister.aspx
index e509b1c7..4f204f32 100644
--- a/SGGL/FineUIPro.Web/ZHGL/Supervise/UnitHazardRegister.aspx
+++ b/SGGL/FineUIPro.Web/ZHGL/Supervise/UnitHazardRegister.aspx
@@ -30,22 +30,18 @@
+ Width="300px" AutoPostBack="true" OnTextChanged="txtSearch_TextChanged" LabelWidth="50px" LabelAlign="right">
-
-
-
-
-
-
@@ -68,8 +64,8 @@
-
+
+
-
+
-
-
@@ -115,7 +114,7 @@
+ Width="1280px" Height="760px">
+
+
diff --git a/SGGL/FineUIPro.Web/ZHGL/Supervise/UnitHazardRegister.aspx.cs b/SGGL/FineUIPro.Web/ZHGL/Supervise/UnitHazardRegister.aspx.cs
index 55231b27..9c3c55a2 100644
--- a/SGGL/FineUIPro.Web/ZHGL/Supervise/UnitHazardRegister.aspx.cs
+++ b/SGGL/FineUIPro.Web/ZHGL/Supervise/UnitHazardRegister.aspx.cs
@@ -34,7 +34,8 @@ namespace FineUIPro.Web.ZHGL.Supervise
CheckMainType = drpCheckMainType.SelectedValue,
SearchText = this.txtSearch.Text.Trim(),
CheckType = this.drpCheckType.SelectedValue,
- ProjectId = this.CurrUser.LoginProjectId
+ ProjectId = this.CurrUser.LoginProjectId,
+ CheckUnitId = this.CurrUser.UnitId
};
int totalCount;
@@ -112,7 +113,7 @@ namespace FineUIPro.Web.ZHGL.Supervise
foreach (int rowIndex in Grid1.SelectedRowIndexArray)
{
string rowID = Grid1.DataKeys[rowIndex][0].ToString();
- if (UnitHazardRegisterService.CanDeleteRegister(rowID) || (this.CurrUser.PersonId == Const.hfnbdId || this.CurrUser.PersonId == Const.sysglyId))
+ if (UnitHazardRegisterService.CanDeleteRegister(rowID) || (this.CurrUser.PersonId ==Const.hfnbdId || this.CurrUser.PersonId == Const.sysglyId))
{
BLL.UnitHazardRegisterItemService.DeleteItemsByRegisterId(rowID);
BLL.UnitHazardRegisterService.DeleteUnitHazardRegisterById(rowID);
diff --git a/SGGL/FineUIPro.Web/ZHGL/Supervise/UnitHazardRegisterDetailIn.aspx b/SGGL/FineUIPro.Web/ZHGL/Supervise/UnitHazardRegisterDetailIn.aspx
new file mode 100644
index 00000000..fcbc38a5
--- /dev/null
+++ b/SGGL/FineUIPro.Web/ZHGL/Supervise/UnitHazardRegisterDetailIn.aspx
@@ -0,0 +1,80 @@
+<%@ Page Language="C#" CodeBehind="UnitHazardRegisterDetailIn.aspx.cs" Inherits="FineUIPro.Web.ZHGL.Supervise.UnitHazardRegisterDetailIn" %>
+
+
+
+
+
+