diff --git a/DataBase/版本日志/SUBQHSE_V2026-11-09-xiaj(三库四期).sql b/DataBase/版本日志/SUBQHSE_V2026-11-09-xiaj(三库四期).sql
new file mode 100644
index 0000000..6517807
--- /dev/null
+++ b/DataBase/版本日志/SUBQHSE_V2026-11-09-xiaj(三库四期).sql
@@ -0,0 +1,83 @@
+
+
+--¹«˾¼¶£º¼¯ÍÅÈý¿⽨É裺¹ؼü¸ÚλÈËԱ
+IF NOT EXISTS (SELECT * FROM Sys_Menu WHERE MenuId = '004EE400-0000-0000-0001-E2EF9AFA0014')
+BEGIN
+ INSERT INTO dbo.Sys_Menu (MenuId, MenuName,Url, SortIndex, SuperMenu, MenuType, IsOffice, IsEnd, IsUsed)
+ VALUES (N'004EE400-0000-0000-0001-E2EF9AFA0014', N'¹ؼü¸ÚλÈËԱ', 'SanKu/Personnel.aspx', 5, N'004EE400-0000-0000-0000-E2EF9AFA6F8D', (select MenuType from Sys_Menu where MenuId='004EE400-0000-0000-0000-E2EF9AFA6F8D'),1,1, 1);
+END
+GO
+
+--Èý¿â¹ؼü¸ÚλÈËԱ±í£º£¨SANKU_PERSONNEL£©
+IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'SANKU_PERSONNEL') AND type = N'U')
+BEGIN
+CREATE TABLE [dbo].[SANKU_PERSONNEL](
+ [PERSONNEL_ID] [bigint] IDENTITY(1,1) NOT NULL,
+ [RECORD_ID] [varchar](50) NOT NULL,
+ [PERSONNEL_ID_NUMBER] [varchar](20) NOT NULL,
+ [PERSONNEL_NAME] [varchar](50) NOT NULL,
+ [SUBCONTRACTOR_ID] [varchar](20) NULL,
+ [SUBCONTRACTOR_CODE] [varchar](18) NULL,
+ [SUBCONTRACTOR_NAME] [varchar](100) NOT NULL,
+ [PROJECT_CODE] [varchar](50) NOT NULL,
+ [PROJECT_NAME] [varchar](200) NOT NULL,
+ [SEX] [varchar](10) NOT NULL,
+ [POSITION_NAME] [varchar](50) NOT NULL,
+ [WORK_ROLE] [varchar](50) NOT NULL,
+ [PHONE] [varchar](20) NULL,
+ [STATUS] [varchar](20) NULL,
+ [SOURCE_SYSTEM_ID] [varchar](50) NULL,
+ [SOURCE_SYSTEM_NAME] [varchar](100) NULL,
+ [UPDATE_TIME] [datetime] NOT NULL,
+ [CREATE_TIME] [datetime] NOT NULL,
+ [CollCropCode] [varchar](20) NULL,
+ [UnitId] [nvarchar](50) NULL,
+ [UnitName] [nvarchar](50) NULL,
+ [ReportDate] [datetime] NULL,
+ CONSTRAINT [PK_SANKU_PERSONNEL] PRIMARY KEY CLUSTERED
+(
+ [PERSONNEL_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]
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ÈËԱ´úÀí¼ü' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SANKU_PERSONNEL', @level2type=N'COLUMN',@level2name=N'PERSONNEL_ID'
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ҵÎñÊý¾ÝID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SANKU_PERSONNEL', @level2type=N'COLUMN',@level2name=N'RECORD_ID'
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ÈËԱÉí·Ý֤¼þºÅ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SANKU_PERSONNEL', @level2type=N'COLUMN',@level2name=N'PERSONNEL_ID_NUMBER'
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ÈËԱÐÕÃû' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SANKU_PERSONNEL', @level2type=N'COLUMN',@level2name=N'PERSONNEL_NAME'
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Ö÷Êý¾Ý×é֯±àÂë' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SANKU_PERSONNEL', @level2type=N'COLUMN',@level2name=N'SUBCONTRACTOR_ID'
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ËùÊôµ¥λͳһÉç»áÐÅÓôúÂë' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SANKU_PERSONNEL', @level2type=N'COLUMN',@level2name=N'SUBCONTRACTOR_CODE'
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ËùÊôµ¥λÃû³Æ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SANKU_PERSONNEL', @level2type=N'COLUMN',@level2name=N'SUBCONTRACTOR_NAME'
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Ö÷Êý¾ÝÏîĿ±àºÅ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SANKU_PERSONNEL', @level2type=N'COLUMN',@level2name=N'PROJECT_CODE'
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Ö÷Êý¾ÝÏîĿÃû³Æ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SANKU_PERSONNEL', @level2type=N'COLUMN',@level2name=N'PROJECT_NAME'
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ÐԱð' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SANKU_PERSONNEL', @level2type=N'COLUMN',@level2name=N'SEX'
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ÈËԱ¸Úλ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SANKU_PERSONNEL', @level2type=N'COLUMN',@level2name=N'POSITION_NAME'
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ÏîĿ½Çɫ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SANKU_PERSONNEL', @level2type=N'COLUMN',@level2name=N'WORK_ROLE'
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Áªϵ·½ʽ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SANKU_PERSONNEL', @level2type=N'COLUMN',@level2name=N'PHONE'
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'״̬£¨Ôڸڡ¢Àë¸ڣ©' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SANKU_PERSONNEL', @level2type=N'COLUMN',@level2name=N'STATUS'
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'À´ԴϵͳID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SANKU_PERSONNEL', @level2type=N'COLUMN',@level2name=N'SOURCE_SYSTEM_ID'
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'À´ԴϵͳÃû³Æ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SANKU_PERSONNEL', @level2type=N'COLUMN',@level2name=N'SOURCE_SYSTEM_NAME'
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'¸üÐÂʱ¼ä' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SANKU_PERSONNEL', @level2type=N'COLUMN',@level2name=N'UPDATE_TIME'
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'´´½¨ʱ¼ä' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SANKU_PERSONNEL', @level2type=N'COLUMN',@level2name=N'CREATE_TIME'
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Êý¾ÝԴµ¥λͳһÉç»áÐÅÓôúÂë' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SANKU_PERSONNEL', @level2type=N'COLUMN',@level2name=N'CollCropCode'
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Êý¾ÝԴµ¥λId' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SANKU_PERSONNEL', @level2type=N'COLUMN',@level2name=N'UnitId'
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Êý¾ÝԴµ¥λÃû³Æ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SANKU_PERSONNEL', @level2type=N'COLUMN',@level2name=N'UnitName'
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ÌÈÕÆÚ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SANKU_PERSONNEL', @level2type=N'COLUMN',@level2name=N'ReportDate'
+EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ÈËԱÐÅϢ±í' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SANKU_PERSONNEL'
+END
+GO
+
+--Σ´̣º¹¤³̱àÂë
+IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'SANKU_DANGEROUS_ENGINEERING' AND COLUMN_NAME = 'ENGINEERING_CODE')
+BEGIN
+ --¹¤³̱àÂë
+ ALTER TABLE SANKU_DANGEROUS_ENGINEERING ADD ENGINEERING_CODE varchar(50);
+ EXEC sp_addextendedproperty 'MS_Description', N'¹¤³̱àÂë','SCHEMA', N'dbo','TABLE', N'SANKU_DANGEROUS_ENGINEERING','COLUMN', N'ENGINEERING_CODE';
+END
+
+GO
+--ÐÄÀúʷΣ´̹¤³̱àÂëÊý¾Ý
+UPDATE A
+SET A.ENGINEERING_CODE = B.HazardCode,ReportDate=NULL
+FROM SANKU_DANGEROUS_ENGINEERING A JOIN Solution_LargerHazard B ON A.RECORD_ID = B.HazardId
+WHERE 1 = 1
+GO
+
diff --git a/DataBase/版本日志/SUBQHSE_V2026-11-10-xiaj(SP_SANKU_DATA_INIT).sql b/DataBase/版本日志/SUBQHSE_V2026-11-10-xiaj(SP_SANKU_DATA_INIT).sql
new file mode 100644
index 0000000..cfe4340
--- /dev/null
+++ b/DataBase/版本日志/SUBQHSE_V2026-11-10-xiaj(SP_SANKU_DATA_INIT).sql
@@ -0,0 +1,435 @@
+
+
+ALTER PROCEDURE [dbo].[SP_SANKU_DATA_INIT]
+ @type VARCHAR(100) = NULL,
+ @op TINYINT
+AS
+BEGIN
+ SET NOCOUNT ON;
+ DECLARE @trimType VARCHAR(100) = LTRIM(RTRIM(ISNULL(@type, '')));
+
+ -- op=0 Çå¿ÕÂ
+ IF @op = 0
+ BEGIN
+ IF @trimType = 'SANKU_PERSONNEL'
+ BEGIN
+ TRUNCATE TABLE SANKU_PERSONNEL;
+ END
+ IF @trimType = 'SANKU_ACCIDENT_RECORD'
+ BEGIN
+ TRUNCATE TABLE SANKU_ACCIDENT_RECORD;
+ END
+ ELSE IF @trimType = 'SANKU_VIOLATION'
+ BEGIN
+ TRUNCATE TABLE SANKU_VIOLATION;
+ END
+ ELSE IF @trimType = 'SANKU_HAZARD'
+ BEGIN
+ TRUNCATE TABLE SANKU_HAZARD;
+ END
+ ELSE IF @trimType = 'SANKU_SAFETY_REWARD'
+ BEGIN
+ TRUNCATE TABLE SANKU_SAFETY_REWARD;
+ END
+ ELSE IF @trimType = 'SANKU_ADMIN_PENALTY'
+ BEGIN
+ TRUNCATE TABLE SANKU_ADMIN_PENALTY;
+ END
+ ELSE IF @trimType = 'SANKU_TRAINING'
+ BEGIN
+ TRUNCATE TABLE SANKU_TRAINING;
+ END
+ ELSE IF @trimType = 'SANKU_EXAMINATION'
+ BEGIN
+ TRUNCATE TABLE SANKU_EXAMINATION;
+ END
+ ELSE IF @trimType = 'SANKU_DANGEROUS_ENGINEERING'
+ BEGIN
+ DELETE SANKU_SAFETY_TECH_BRIEFING WHERE DANGEROUS_ID IS NOT NULL;
+ TRUNCATE TABLE SANKU_DANGEROUS_ENGINEERING_DUTY_RECORD;
+ TRUNCATE TABLE SANKU_DANGEROUS_ENGINEERING;
+ END
+ ELSE IF @trimType = 'SANKU_DANGEROUS_ENGINEERING_DUTY_RECORD'
+ BEGIN
+ TRUNCATE TABLE SANKU_DANGEROUS_ENGINEERING_DUTY_RECORD;
+ END
+ ELSE IF @trimType = 'SANKU_GRID_PATROL'
+ BEGIN
+ TRUNCATE TABLE SANKU_GRID_PATROL;
+ END
+ ELSE IF @trimType = 'SANKU_WORK_BRIEFING'
+ BEGIN
+ TRUNCATE TABLE SANKU_WORK_BRIEFING_PARTICIPANT;
+ TRUNCATE TABLE SANKU_WORK_BRIEFING;
+ END
+ ELSE IF @trimType = 'SANKU_WORK_BRIEFING_PARTICIPANT'
+ BEGIN
+ TRUNCATE TABLE SANKU_WORK_BRIEFING_PARTICIPANT;
+ END
+ ELSE IF @trimType = 'SANKU_SAFETY_TECH_BRIEFING'
+ BEGIN
+ TRUNCATE TABLE SANKU_SAFETY_TECH_BRIEFING;
+ END
+ ELSE IF @trimType = '' -- type null/¿գ¬ȫ²¿Çå¿Õ
+ BEGIN
+ TRUNCATE TABLE SANKU_PERSONNEL;
+ TRUNCATE TABLE SANKU_ACCIDENT_RECORD;
+ TRUNCATE TABLE SANKU_VIOLATION;
+ TRUNCATE TABLE SANKU_HAZARD;
+ TRUNCATE TABLE SANKU_SAFETY_REWARD;
+ TRUNCATE TABLE SANKU_ADMIN_PENALTY;
+ TRUNCATE TABLE SANKU_TRAINING;
+ TRUNCATE TABLE SANKU_EXAMINATION;
+ TRUNCATE TABLE SANKU_DANGEROUS_ENGINEERING;
+ TRUNCATE TABLE SANKU_DANGEROUS_ENGINEERING_DUTY_RECORD;
+ TRUNCATE TABLE SANKU_GRID_PATROL;
+ TRUNCATE TABLE SANKU_WORK_BRIEFING;
+ TRUNCATE TABLE SANKU_WORK_BRIEFING_PARTICIPANT;
+ TRUNCATE TABLE SANKU_SAFETY_TECH_BRIEFING;
+ END
+ END
+
+ -- op=1 ³õʼ»¯²åÈëÂ
+ IF @op = 1
+ BEGIN
+
+ -- typeΪNULL/¿Õ×ַû´®£ºËùÓгõʼ»¯½ű¾¶¼ִÐУ»·ñÔò°´type·Öִ֧ÐÐ
+ IF @type = 'SANKU_PERSONNEL' OR @trimType = ''
+ BEGIN
+ --ÏîĿ¹ؼü¸ÚλÈËԱ
+ INSERT INTO SANKU_PERSONNEL(RECORD_ID,PROJECT_CODE,PROJECT_NAME,SUBCONTRACTOR_ID,SUBCONTRACTOR_CODE,SUBCONTRACTOR_NAME,PERSONNEL_ID_NUMBER,PERSONNEL_NAME,SEX,POSITION_NAME,WORK_ROLE,PHONE,STATUS,UPDATE_TIME,CREATE_TIME)
+ SELECT tba.UserId,pms.pro_code,pms.pro_name,bu.MasterAdOrgCode,bu.CollCropCode
+ ,CASE WHEN bu.MasterAdOrgCode IS NULL OR LTRIM(RTRIM(bu.MasterAdOrgCode)) = '' THEN bu.UnitName ELSE bu.MasterAdOrgName END AS UnitName,
+ suc.IdentityCard,suc.UserName,CASE WHEN suc.Sex = 1 THEN 'ÄÐ' WHEN suc.Sex = 0 THEN 'Ů' ELSE '' END AS Sex,ISNULL(bwp.WorkPostName,sr.RoleName) AS PostName,
+ (CASE WHEN pput.UnitType = '1' THEN '×ܰü' WHEN pput.UnitType = '2' THEN '·ְü' ELSE 'ÆäËû' END) + (CASE WHEN sr.RoleName like '%°²ȫԱ%' THEN 'ÏîĿ°²ȫԱ' ELSE 'ÏîĿ¸ºÔðÈË' END) AS RoleName
+ ,ISNULL(suc.Telephone,''),CASE WHEN tba.IsPost = 1 THEN 'ÔڸÚ' ELSE 'Àë¸Ú' END AS StatusStr,GETDATE(),GETDATE()
+ FROM Project_ProjectUser AS tba WITH(NOLOCK)
+ LEFT JOIN Sys_User AS suc WITH(NOLOCK) ON suc.UserId = tba.UserId
+ LEFT JOIN Project_ProjectUnit AS pput WITH(NOLOCK) ON pput.UnitId = tba.UnitId AND pput.ProjectId = tba.ProjectId
+ LEFT JOIN Base_Unit AS bu WITH(NOLOCK) ON bu.UnitId = tba.UnitId
+ LEFT JOIN SitePerson_Person AS spp WITH(NOLOCK) ON spp.IdentityCard = suc.IdentityCard AND spp.ProjectId = tba.ProjectId
+ LEFT JOIN Base_WorkPost AS bwp WITH(NOLOCK) ON bwp.WorkPostId = spp.WorkPostId
+ LEFT JOIN Sys_Role AS sr WITH(NOLOCK) ON sr.RoleId = tba.RoleId
+ LEFT JOIN Base_Project AS bp WITH(NOLOCK) ON bp.ProjectId = tba.ProjectId
+ LEFT JOIN ads_pms_pro_info_build AS pms WITH(NOLOCK) ON pms.pro_id = bp.MasterSysId
+ WHERE bp.MasterSysId IS NOT NULL AND pms.pro_code IS NOT NULL AND LEN(suc.IdentityCard) = 18 AND (bu.MasterAdOrgCode IS NOT NULL OR LEN(bu.CollCropCode) = 18) AND pput.UnitType IN ('1','2')
+ AND (sr.RoleName like '%¾Àí%' OR sr.RoleName like '%°²ȫԱ%' OR sr.RoleName like '%¸ºÔð%' )
+ AND NOT EXISTS (SELECT 1 FROM SANKU_PERSONNEL AS bp WITH(NOLOCK) WHERE bp.RECORD_ID = tba.UserId AND bp.PERSONNEL_ID_NUMBER = suc.IdentityCard AND bp.PROJECT_CODE = pms.pro_code );
+ END
+
+ IF @type = 'SANKU_ACCIDENT_RECORD' OR @trimType = ''
+ BEGIN
+ --ʹÊʼþÊý¾ݳõʼ»¯
+ INSERT INTO SANKU_ACCIDENT_RECORD(ACCIDENT_ID,PROJECT_CODE,PROJECT_NAME,ACCIDENT_NAME,ACCIDENT_TIME,ACCIDENT_LEVEL,ACCIDENT_TYPE,ACCIDENT_LOCATION,ACCIDENT_DESCRIPTION,DEATH_COUNT,SERIOUS_INJURY_COUNT,MINOR_INJURY_COUNT
+ ,DIRECT_ECONOMIC_LOSS,INDIRECT_ECONOMIC_LOSS,CONTRACTING_RESPONSIBILITY,SUBCONTRACTOR_ID,SUBCONTRACTOR_CODE,SUBCONTRACTOR_NAME,POSITION_NAME,RESPONSIBILITY_TYPE,RESPONSIBILITY_DESC,PERSONNEL_ID_NUMBER,PERSONNEL_NAME,SUBMITTER_ID_NUMBER,SUBMITTER_NAME,UPDATE_TIME,CREATE_TIME)
+ SELECT tba.AccidentHandleId,pms.pro_code,pms.pro_name,tba.AccidentHandleName,tba.AccidentDate,tba.AccidentLevel,tba.AccidentType,tba.AccidentLocation,tba.AccidentDef,tba.DeathPersonNum,tba.InjuriesPersonNum,tba.MinorInjuriesPersonNum
+ ,tba.MoneyLoss,tba.IndirectMoneyLoss,tba.ContractingResponsibility
+ ,bu.MasterAdOrgCode,bu.CollCropCode,CASE WHEN bu.MasterAdOrgCode IS NULL OR LTRIM(RTRIM(bu.MasterAdOrgCode)) = '' THEN bu.UnitName ELSE bu.MasterAdOrgName END AS UnitName
+ ,tba.PositionName,tba.ResponsibilityType,tba.ResponsibilityDesc,su.IdentityCard,tba.ResponsibleManName,suc.IdentityCard,suc.UserName,tba.CompileDate,tba.CompileDate
+ FROM Accident_AccidentHandle AS tba WITH(NOLOCK)
+ LEFT JOIN Base_Unit AS bu WITH(NOLOCK) ON bu.UnitId = tba.UnitId --AND LEN(bu.CollCropCode)=18
+ LEFT JOIN Sys_User AS su WITH(NOLOCK) ON su.UserId = tba.ResponsibleMan
+ LEFT JOIN Sys_User AS suc WITH(NOLOCK) ON suc.UserId = tba.CompileMan
+ LEFT JOIN Base_Project AS bp WITH(NOLOCK) ON bp.ProjectId = tba.ProjectId
+ LEFT JOIN ads_pms_pro_info_build AS pms WITH(NOLOCK) ON pms.pro_id = bp.MasterSysId
+ WHERE bp.MasterSysId IS NOT NULL AND pms.pro_code IS NOT NULL AND tba.AccidentDate>='2026-01-01'
+ AND (bu.MasterAdOrgCode IS NOT NULL OR LEN(bu.CollCropCode)=18) AND LEN(suc.IdentityCard)=18 AND LEN(su.IdentityCard)=18
+ AND tba.AccidentHandleId NOT IN (SELECT ACCIDENT_ID FROM SANKU_ACCIDENT_RECORD WITH(NOLOCK));
+ END
+
+ IF @type = 'SANKU_VIOLATION' OR @trimType = ''
+ BEGIN
+ --ΥÕÂ×÷ҵÊý¾ݳõʼ»¯
+ INSERT INTO SANKU_VIOLATION(RECORD_ID,PROJECT_CODE,PROJECT_NAME,SUBCONTRACTOR_ID,SUBCONTRACTOR_CODE,SUBCONTRACTOR_NAME,PERSONNEL_ID_NUMBER,PERSONNEL_NAME,VIOLATION_DATE,VIOLATION_TYPE,VIOLATION_CONTENT,PENALTY_RESULT,RECTIFICATION_STATUS,SUBMITTER_ID_NUMBER,SUBMITTER_NAME,UPDATE_TIME,CREATE_TIME)
+ SELECT tba.ViolationPersonId,pms.pro_code,pms.pro_name
+ ,bu.MasterAdOrgCode,bu.CollCropCode,CASE WHEN bu.MasterAdOrgCode IS NULL OR LTRIM(RTRIM(bu.MasterAdOrgCode)) = '' THEN bu.UnitName ELSE bu.MasterAdOrgName END AS UnitName
+ ,spp.IdentityCard,spp.PersonName,tba.ViolationDate,tba.ViolationLevel,tba.ViolationDef,vphs.ConstText,tba.RectificationStatus,suc.IdentityCard,suc.UserName,tba.CompileDate,tba.CompileDate
+ FROM Check_ViolationPerson AS tba WITH(NOLOCK)
+ LEFT JOIN Base_Unit AS bu WITH(NOLOCK) ON bu.UnitId = tba.UnitId --AND LEN(bu.CollCropCode)=18
+ LEFT JOIN Sys_Const AS vphs WITH(NOLOCK) ON vphs.ConstValue = tba.HandleStep AND vphs.GroupId='ViolationPersonHandleStep'
+ LEFT JOIN SitePerson_Person AS spp WITH(NOLOCK) ON spp.PersonId = tba.PersonId AND LEN(spp.IdentityCard)=18
+ LEFT JOIN Sys_User AS suc WITH(NOLOCK) ON suc.UserId = tba.CompileMan
+ LEFT JOIN Base_Project AS bp WITH(NOLOCK) ON bp.ProjectId = tba.ProjectId
+ LEFT JOIN ads_pms_pro_info_build AS pms WITH(NOLOCK) ON pms.pro_id = bp.MasterSysId
+ WHERE bp.MasterSysId IS NOT NULL AND pms.pro_code IS NOT NULL AND tba.ViolationDate>='2026-01-01'
+ AND (bu.MasterAdOrgCode IS NOT NULL OR LEN(bu.CollCropCode)=18) AND LEN(suc.IdentityCard)=18 AND LEN(spp.IdentityCard)=18
+ AND tba.ViolationPersonId NOT IN (SELECT RECORD_ID FROM SANKU_VIOLATION WITH(NOLOCK));
+ END
+
+ IF @type = 'SANKU_SAFETY_REWARD' OR @trimType = ''
+ BEGIN
+ --°²ȫ½±³ÍÊý¾ݳõʼ»¯
+ INSERT INTO SANKU_SAFETY_REWARD(RECORD_ID,PROJECT_CODE,PROJECT_NAME,PERSONNEL_ID_NUMBER,PERSONNEL_NAME,REWARD_DATE,REWARD_UNIT_ID,REWARD_UNIT_CODE,REWARD_UNIT_NAME,REWARD_TYPE,REWARD_CONTENT,REWARD_AMOUNT,REWARD_LEVEL,SUBMITTER_ID_NUMBER,SUBMITTER_NAME)
+ SELECT tba.RewardAndPunishID,pms.pro_code,pms.pro_name,spp.IdentityCard,spp.PersonName,tba.Date
+ ,bu.MasterAdOrgCode,bu.CollCropCode,CASE WHEN bu.MasterAdOrgCode IS NULL OR LTRIM(RTRIM(bu.MasterAdOrgCode)) = '' THEN bu.UnitName ELSE bu.MasterAdOrgName END AS UnitName
+ ,(CASE tba.Type WHEN 1 THEN '½±Àø' WHEN 2 THEN '´¦·£' ELSE '´¦·£' END) AS TYPE,tba.Description
+ ,(CASE WHEN tba.Type = 1 THEN ABS(tba.Money) WHEN tba.Type = 2 THEN -ABS(tba.Money) ELSE tba.Money END) AS Money
+ ,(CASE tba.Type
+ WHEN 1 THEN (SELECT ConstText FROM Sys_Const WHERE GroupId='RewardType' AND ConstValue=tba.RewardAndPunishType)
+ WHEN 2 THEN (SELECT ConstText FROM Sys_Const WHERE GroupId='PunishType' AND ConstValue=tba.RewardAndPunishType) END) AS TYPE
+ ,suc.IdentityCard,suc.UserName
+ FROM Check_RewardAndPunish AS tba WITH(NOLOCK)
+ LEFT JOIN SitePerson_Person AS spp WITH(NOLOCK) ON spp.PersonId = tba.RewardAndPunishMan --AND LEN(spp.IdentityCard)=18
+ LEFT JOIN Base_Unit AS bu WITH(NOLOCK) ON bu.UnitId = tba.ResponseUnit --AND LEN(bu.CollCropCode)=18
+ LEFT JOIN Sys_User AS suc WITH(NOLOCK) ON suc.UserId = tba.CreateMan
+ LEFT JOIN Base_Project AS bp WITH(NOLOCK) ON bp.ProjectId = tba.ProjectId
+ LEFT JOIN ads_pms_pro_info_build AS pms WITH(NOLOCK) ON pms.pro_id = bp.MasterSysId
+ WHERE bp.MasterSysId IS NOT NULL AND pms.pro_code IS NOT NULL AND tba.Date>='2026-01-01' AND tba.Type IN (1,2)
+ AND (bu.MasterAdOrgCode IS NOT NULL OR LEN(bu.CollCropCode)=18) AND LEN(suc.IdentityCard)=18 --AND LEN(spp.IdentityCard)=18
+ AND tba.RewardAndPunishID NOT IN (SELECT RECORD_ID FROM SANKU_SAFETY_REWARD WITH(NOLOCK));
+ END
+
+ IF @type = 'SANKU_ADMIN_PENALTY' OR @trimType = ''
+ BEGIN
+ --ÐÐÕþ´¦·£Êý¾ݳõʼ»¯
+ INSERT INTO SANKU_ADMIN_PENALTY(RECORD_ID,PROJECT_CODE,PROJECT_NAME,SUBCONTRACTOR_ID,SUBCONTRACTOR_CODE,SUBCONTRACTOR_NAME,PENALTY_DATE,PENALTY_TYPE,PENALTY_CONTENT,PENALTY_AMOUNT,PENALTY_AUTHORITY,PENALTY_STATUS,SUBMITTER_ID_NUMBER,SUBMITTER_NAME,UPDATE_TIME,CREATE_TIME)
+ SELECT tba.PenaltyId,pms.pro_code,pms.pro_name
+ ,bu.MasterAdOrgCode,bu.CollCropCode,CASE WHEN bu.MasterAdOrgCode IS NULL OR LTRIM(RTRIM(bu.MasterAdOrgCode)) = '' THEN bu.UnitName ELSE bu.MasterAdOrgName END AS UnitName
+ ,tba.PenaltyDate,tba.PenaltyType,tba.PenaltyContent,tba.PenaltyAmount,tba.PenaltyAuthority,tba.PenaltyStatus
+ ,suc.IdentityCard,suc.UserName,tba.PenaltyDate,tba.PenaltyDate
+ FROM Check_AdminPenalty AS tba WITH(NOLOCK)
+ LEFT JOIN Base_Unit AS bu WITH(NOLOCK) ON bu.UnitId = tba.UnitId --AND LEN(bu.CollCropCode)=18
+ LEFT JOIN Sys_User AS suc WITH(NOLOCK) ON suc.UserId = tba.CompileMan
+ LEFT JOIN Base_Project AS bp WITH(NOLOCK) ON bp.ProjectId = tba.ProjectId
+ LEFT JOIN ads_pms_pro_info_build AS pms WITH(NOLOCK) ON pms.pro_id = bp.MasterSysId
+ WHERE bp.MasterSysId IS NOT NULL AND pms.pro_code IS NOT NULL AND tba.PenaltyDate>='2026-01-01'
+ AND (bu.MasterAdOrgCode IS NOT NULL OR LEN(bu.CollCropCode)=18) AND LEN(suc.IdentityCard)=18
+ AND tba.PenaltyId NOT IN (SELECT RECORD_ID FROM SANKU_ADMIN_PENALTY WITH(NOLOCK));
+ END
+
+ IF @type = 'SANKU_HAZARD' OR @trimType = ''
+ BEGIN
+ --Òþ»¼¼Ç¼Êý¾ݳõʼ»¯
+ INSERT INTO SANKU_HAZARD(RECORD_ID,PROJECT_CODE,PROJECT_NAME,SUBCONTRACTOR_ID,SUBCONTRACTOR_CODE,SUBCONTRACTOR_NAME,RESPONSIBLE_PERSONNEL_ID_NUMBER,RESPONSIBLE_PERSONNEL_NAME,RECTIFIER_PERSONNEL_ID_NUMBER,RECTIFIER_PERSONNEL_NAME
+ ,DISCOVERY_DATE,HAZARD_TYPE,HAZARD_LEVEL,HAZARD_CONTENT,RECTIFICATION_STATUS,ECTIFICATION_COMPLETIONDATE,RECTIFICATION_DEADLINE_ID,SUBMITTER_ID_NUMBER,SUBMITTER_NAME,UPDATE_TIME,CREATE_TIME)
+ SELECT tba.HazardRegisterId,pms.pro_code,pms.pro_name
+ ,bu.MasterAdOrgCode,bu.CollCropCode,CASE WHEN bu.MasterAdOrgCode IS NULL OR LTRIM(RTRIM(bu.MasterAdOrgCode)) = '' THEN bu.UnitName ELSE bu.MasterAdOrgName END AS UnitName
+ ,suzg.IdentityCard,suzg.UserName,suzg.IdentityCard,suzg.UserName,tba.CheckTime,regType.RegisterTypesName
+ ,(CASE tba.Risk_Level WHEN 'һ°ã' THEN 'һ°ãÒþ»¼' WHEN '½ϴó' THEN '½ϴóÒþ»¼' WHEN 'Öشó' THEN 'ÖشóÒþ»¼' ELSE 'һ°ãÒþ»¼' END) AS TYPE,tba.RegisterDef
+ ,(CASE tba.States WHEN 1 THEN 'δÕû¸Ä' WHEN 2 THEN 'ÒÑÑéÊÕ' WHEN 3 THEN 'ÒÑÕû¸Ä' WHEN 4 THEN 'Õû¸ÄÖÐ' ELSE 'Õû¸ÄÖÐ' END) AS StatesName
+ ,tba.RectificationTime,tba.RectificationPeriod,suc.IdentityCard,suc.UserName,tba.CheckTime,tba.CheckTime
+ FROM HSSE_Hazard_HazardRegister AS tba WITH(NOLOCK)
+ LEFT JOIN Base_Unit AS bu WITH(NOLOCK) ON bu.UnitId = tba.ResponsibleUnit --AND LEN(bu.CollCropCode)=18
+ LEFT JOIN Sys_User AS suzg WITH(NOLOCK) ON suzg.UserId = tba.ResponsibleMan
+ LEFT JOIN HSSE_Hazard_HazardRegisterTypes AS regType WITH(NOLOCK) ON tba.RegisterTypesId = regType.RegisterTypesId
+ LEFT JOIN Sys_User AS suc WITH(NOLOCK) ON suc.UserId = tba.CheckManId
+ LEFT JOIN Base_Project AS bp WITH(NOLOCK) ON bp.ProjectId = tba.ProjectId
+ LEFT JOIN ads_pms_pro_info_build AS pms WITH(NOLOCK) ON pms.pro_id = bp.MasterSysId
+ WHERE bp.MasterSysId IS NOT NULL AND pms.pro_code IS NOT NULL AND tba.CheckTime>='2026-01-01' AND ISNULL(tba.States,0) >= 0
+ AND (bu.MasterAdOrgCode IS NOT NULL OR LEN(bu.CollCropCode)=18) AND LEN(suc.IdentityCard)=18 AND LEN(suzg.IdentityCard)=18 AND regType.RegisterTypesName IS NOT NULL
+ AND tba.HazardRegisterId NOT IN (SELECT RECORD_ID FROM SANKU_HAZARD WITH(NOLOCK));
+ --SELECT tba.RectifyNoticesItemId,pms.pro_code,pms.pro_name
+ -- ,bu.MasterAdOrgCode,bu.CollCropCode,CASE WHEN bu.MasterAdOrgCode IS NULL OR LTRIM(RTRIM(bu.MasterAdOrgCode)) = '' THEN bu.UnitName ELSE bu.MasterAdOrgName END AS UnitName
+ -- ,suzg.IdentityCard,suzg.UserName,suzg.IdentityCard,suzg.UserName,tbb.CheckedDate,rectify.RectifyName
+ -- ,(CASE tbb.HiddenHazardType WHEN 1 THEN 'һ°ãÒþ»¼' WHEN 2 THEN '½ϴóÒþ»¼' WHEN 3 THEN 'ÖشóÒþ»¼' ELSE 'һ°ãÒþ»¼' END) AS TYPE,tba.WrongContent
+ -- ,(CASE WHEN tbb.States = 2 THEN 'δÕû¸Ä' WHEN tbb.States = 3 THEN 'Õû¸ÄÖÐ' WHEN States = 4 THEN 'ÒÑÕû¸Ä' WHEN States = 5 THEN 'ÒÑÑéÊÕ' ELSE 'δÕû¸Ä' END) AS StatesName
+ -- ,tbb.CompleteDate,tba.LimitTime,suc.IdentityCard,suc.UserName,tbb.CheckedDate,tbb.CheckedDate
+ --FROM Check_RectifyNoticesItem AS tba WITH(NOLOCK)
+ -- LEFT JOIN Check_RectifyNotices AS tbb WITH(NOLOCK) ON tbb.RectifyNoticesId = tba.RectifyNoticesId
+ -- --LEFT JOIN Check_RectifyNoticesFlowOperate AS tbc WITH(NOLOCK) ON tbc.RectifyNoticesId = tba.RectifyNoticesId
+ -- LEFT JOIN Base_Unit AS bu WITH(NOLOCK) ON bu.UnitId = tbb.UnitId --AND LEN(bu.CollCropCode)=18
+ -- LEFT JOIN Sys_User AS suzg WITH(NOLOCK) ON suzg.UserId = tbb.DutyPersonId
+ -- LEFT JOIN Sys_User AS suc WITH(NOLOCK) ON suc.UserId = tbb.CompleteManId
+ -- LEFT JOIN Base_Project AS bp WITH(NOLOCK) ON bp.ProjectId = tbb.ProjectId
+ -- LEFT JOIN ads_pms_pro_info_build AS pms WITH(NOLOCK) ON pms.pro_id = bp.MasterSysId
+ -- LEFT JOIN Technique_Rectify AS rectify WITH(NOLOCK) ON tba.RectifyId = rectify.RectifyId
+ --WHERE bp.MasterSysId IS NOT NULL AND pms.pro_code IS NOT NULL AND tbb.CheckedDate>='2026-01-01' AND tbb.States > 1
+ -- AND (bu.MasterAdOrgCode IS NOT NULL OR LEN(bu.CollCropCode)=18) AND LEN(suc.IdentityCard)=18 AND LEN(suzg.IdentityCard)=18 AND rectify.RectifyName IS NOT NULL
+ -- AND tba.RectifyNoticesItemId NOT IN (SELECT RECORD_ID FROM SANKU_HAZARD WITH(NOLOCK));
+ END
+
+ IF @type = 'SANKU_TRAINING' OR @trimType = ''
+ BEGIN
+ --½ÌÓýÅàѵÊý¾ݳõʼ»¯
+ INSERT INTO SANKU_TRAINING(RECORD_ID,PROJECT_CODE,PROJECT_NAME,SUBCONTRACTOR_ID,SUBCONTRACTOR_CODE,SUBCONTRACTOR_NAME,PERSONNEL_ID_NUMBER,PERSONNEL_NAME,TRAINING_DATE,TRAINING_NAME,TRAINING_TYPE,TRAINING_DURATION,TRAINING_ORGANIZER,TRAINING_CONTENT,TRAINING_RESULT,SUBMITTER_ID_NUMBER,SUBMITTER_NAME,UPDATE_TIME,CREATE_TIME)
+ SELECT tba.TrainDetailId,pms.pro_code,pms.pro_name
+ ,spu.MasterAdOrgCode,spu.CollCropCode,CASE WHEN spu.MasterAdOrgCode IS NULL OR LTRIM(RTRIM(spu.MasterAdOrgCode)) = '' THEN spu.UnitName ELSE spu.MasterAdOrgName END AS UnitName
+ ,spp.IdentityCard,spp.PersonName,tbb.TrainStartDate
+ ,(CASE WHEN ISNULL(tbb.TrainTitle,'')='' THEN bty.TrainTypeName ELSE tbb.TrainTitle END) AS TrainName
+ ,bty.TrainTypeName,tbb.TeachHour,bu.UnitName
+ ,(CASE WHEN ISNULL(tbb.TrainContent,'')='' THEN bty.TrainTypeName ELSE tbb.TrainContent END) AS TrainContent
+ ,(CASE WHEN tba.CheckResult = 1 THEN 'ͨ¹ý' WHEN tba.CheckResult = 0 THEN 'δͨ¹ý' ELSE 'ȱ¿¼' END) AS CheckResult
+ ,suc.IdentityCard,suc.UserName,tbb.TrainStartDate,tbb.TrainStartDate
+ FROM EduTrain_TrainRecordDetail AS tba WITH(NOLOCK)
+ LEFT JOIN EduTrain_TrainRecord AS tbb WITH(NOLOCK) ON tbb.TrainingId = tba.TrainingId
+ LEFT JOIN Base_Unit AS bu WITH(NOLOCK) ON bu.UnitId = tbb.UnitIds --AND LEN(bu.CollCropCode)=18
+ LEFT JOIN SitePerson_Person AS spp WITH(NOLOCK) ON spp.PersonId = tba.PersonId
+ LEFT JOIN Base_Unit AS spu WITH(NOLOCK) ON spu.UnitId = spp.UnitId --AND LEN(spu.CollCropCode)=18
+ LEFT JOIN Base_TrainType AS bty WITH(NOLOCK) ON bty.TrainTypeId = tbb.TrainTypeId
+ LEFT JOIN Sys_User AS suc WITH(NOLOCK) ON suc.UserId = tbb.CompileMan
+ LEFT JOIN Base_Project AS bp WITH(NOLOCK) ON bp.ProjectId = tbb.ProjectId
+ LEFT JOIN ads_pms_pro_info_build AS pms WITH(NOLOCK) ON pms.pro_id = bp.MasterSysId
+ WHERE tbb.TrainStartDate>='2026-01-01' AND LEN(suc.IdentityCard)=18 AND LEN(spp.IdentityCard)=18
+ AND (spu.MasterAdOrgCode IS NOT NULL OR LEN(spu.CollCropCode)=18) AND bp.MasterSysId IS NOT NULL AND pms.pro_code IS NOT NULL
+ AND tba.TrainDetailId NOT IN (SELECT RECORD_ID FROM SANKU_TRAINING WITH(NOLOCK));
+ END
+
+ IF @type = 'SANKU_EXAMINATION' OR @trimType = ''
+ BEGIN
+ --¿¼ÊԿ¼ºËÊý¾ݳõʼ»¯
+ INSERT INTO SANKU_EXAMINATION(RECORD_ID,PROJECT_CODE,PROJECT_NAME,SUBCONTRACTOR_ID,SUBCONTRACTOR_CODE,SUBCONTRACTOR_NAME,PERSONNEL_ID_NUMBER,PERSONNEL_NAME,EXAM_DATE,EXAM_NAME,EXAM_TYPE,EXAM_SCORE,EXAM_RESULT,EXAM_ORGANIZER,SUBMITTER_ID_NUMBER,SUBMITTER_NAME,UPDATE_TIME,CREATE_TIME)
+ SELECT tba.TestRecordId,pms.pro_code,pms.pro_name
+ ,bu.MasterAdOrgCode,bu.CollCropCode,CASE WHEN bu.MasterAdOrgCode IS NULL OR LTRIM(RTRIM(bu.MasterAdOrgCode)) = '' THEN bu.UnitName ELSE bu.MasterAdOrgName END AS UnitName
+ ,spp.IdentityCard,spp.PersonName,tbb.TestEndTime,tbb.PlanName,'ÀíÂۿ¼ÊÔ',tba.TestScores
+ ,(CASE WHEN tba.TestScores = 0 THEN 'ȱ¿¼' WHEN tba.TestScores >=80 THEN 'ͨ¹ý' WHEN tba.TestScores < 80 THEN 'δͨ¹ý' ELSE 'ȱ¿¼' END) AS CheckResult,tbb.UnitNames
+ ,suc.IdentityCard,suc.UserName,tbb.TestEndTime,tbb.TestEndTime
+ FROM Training_TestRecord AS tba WITH(NOLOCK)
+ LEFT JOIN Training_TestPlan AS tbb WITH(NOLOCK) ON tbb.TestPlanId = tba.TestPlanId
+ LEFT JOIN SitePerson_Person AS spp WITH(NOLOCK) ON spp.PersonId = tba.TestManId
+ LEFT JOIN Base_Unit AS bu WITH(NOLOCK) ON bu.UnitId = spp.UnitId --AND LEN(bu.CollCropCode)=18
+ LEFT JOIN Sys_User AS suc WITH(NOLOCK) ON suc.UserId = tbb.PlanManId
+ LEFT JOIN Base_Project AS bp WITH(NOLOCK) ON bp.ProjectId = tbb.ProjectId
+ LEFT JOIN ads_pms_pro_info_build AS pms WITH(NOLOCK) ON pms.pro_id = bp.MasterSysId
+ WHERE tbb.TestEndTime>='2026-01-01' AND LEN(suc.IdentityCard)=18 AND LEN(spp.IdentityCard)=18
+ AND (bu.MasterAdOrgCode IS NOT NULL OR LEN(bu.CollCropCode)=18) AND bp.MasterSysId IS NOT NULL AND pms.pro_code IS NOT NULL
+ AND tba.TestRecordId NOT IN (SELECT RECORD_ID FROM SANKU_EXAMINATION WITH(NOLOCK));
+ END
+
+ IF @type = 'SANKU_DANGEROUS_ENGINEERING' OR @trimType = ''
+ BEGIN
+ --Σ´ÌÊý¾ݳõʼ»¯
+ INSERT INTO SANKU_DANGEROUS_ENGINEERING(RECORD_ID,PROJECT_CODE,PROJECT_NAME,SUBCONTRACTOR_ID,SUBCONTRACTOR_CODE,SUBCONTRACTOR_NAME,ENGINEERING_DATE,ENGINEERING_NAME,ENGINEERING_TYPE,ENGINEERING_ADDRESS,ENGINEERING_DESC,STANDBY_PERSONNEL_ID_NUMBER,STANDBY_PERSONNEL_NAME,SUBMITTER_ID_NUMBER,SUBMITTER_NAME,UPDATE_TIME,CREATE_TIME)
+ SELECT tba.HazardId,pms.pro_code,pms.pro_name
+ ,bu.MasterAdOrgCode,bu.CollCropCode,CASE WHEN bu.MasterAdOrgCode IS NULL OR LTRIM(RTRIM(bu.MasterAdOrgCode)) = '' THEN bu.UnitName ELSE bu.MasterAdOrgName END AS UnitName
+ ,ISNULL(tba.ExpectedTime,GETDATE()) AS ExpectedTime,tba.HazardName,sc.ConstText,tba.Address,tba.Descriptions,spp.IdentityCard,spp.PersonName,suc.IdentityCard,suc.UserName,tba.RecordTime,tba.RecordTime
+ FROM Solution_LargerHazard AS tba WITH(NOLOCK)
+ LEFT JOIN Base_Unit AS bu WITH(NOLOCK) ON bu.UnitId = tba.UnitId --AND LEN(bu.CollCropCode)=18
+ LEFT JOIN SitePerson_Person AS spp WITH(NOLOCK) ON spp.PersonId = tba.StandbyPersonnelId
+ LEFT JOIN Sys_Const AS sc WITH(NOLOCK) ON sc.GroupId='LargerHazardType' AND sc.ConstValue= tba.HazardType
+ LEFT JOIN Sys_User AS suc WITH(NOLOCK) ON suc.UserId = tba.RecardMan
+ LEFT JOIN Base_Project AS bp WITH(NOLOCK) ON bp.ProjectId = tba.ProjectId
+ LEFT JOIN ads_pms_pro_info_build AS pms WITH(NOLOCK) ON pms.pro_id = bp.MasterSysId
+ WHERE tba.RecordTime>='2026-01-01' AND LEN(suc.IdentityCard)=18 AND LEN(spp.IdentityCard)=18
+ AND (bu.MasterAdOrgCode IS NOT NULL OR LEN(bu.CollCropCode)=18) AND bp.MasterSysId IS NOT NULL AND pms.pro_code IS NOT NULL
+ AND tba.HazardId NOT IN (SELECT RECORD_ID FROM SANKU_DANGEROUS_ENGINEERING WITH(NOLOCK));
+ END
+
+ IF @type = 'SANKU_DANGEROUS_ENGINEERING' OR @trimType = ''
+ BEGIN
+ --Σ´ÌÊý¾ݳõʼ»¯
+ INSERT INTO SANKU_DANGEROUS_ENGINEERING(RECORD_ID,PROJECT_CODE,PROJECT_NAME,SUBCONTRACTOR_ID,SUBCONTRACTOR_CODE,SUBCONTRACTOR_NAME,ENGINEERING_DATE,ENGINEERING_CODE,ENGINEERING_NAME,ENGINEERING_TYPE,ENGINEERING_ADDRESS,ENGINEERING_DESC,STANDBY_PERSONNEL_ID_NUMBER,STANDBY_PERSONNEL_NAME,SUBMITTER_ID_NUMBER,SUBMITTER_NAME,UPDATE_TIME,CREATE_TIME)
+ SELECT tba.HazardId,pms.pro_code,pms.pro_name
+ ,bu.MasterAdOrgCode,bu.CollCropCode,CASE WHEN bu.MasterAdOrgCode IS NULL OR LTRIM(RTRIM(bu.MasterAdOrgCode)) = '' THEN bu.UnitName ELSE bu.MasterAdOrgName END AS UnitName
+ ,ISNULL(tba.ExpectedTime,GETDATE()) AS ExpectedTime,tba.HazardCode,tba.HazardName,sc.ConstText,tba.Address,tba.Descriptions,spp.IdentityCard,spp.PersonName,suc.IdentityCard,suc.UserName,tba.RecordTime,tba.RecordTime
+ FROM Solution_LargerHazard AS tba WITH(NOLOCK)
+ LEFT JOIN Base_Unit AS bu WITH(NOLOCK) ON bu.UnitId = tba.UnitId --AND LEN(bu.CollCropCode)=18
+ LEFT JOIN SitePerson_Person AS spp WITH(NOLOCK) ON spp.PersonId = tba.StandbyPersonnelId
+ LEFT JOIN Sys_Const AS sc WITH(NOLOCK) ON sc.GroupId='LargerHazardType' AND sc.ConstValue= tba.HazardType
+ LEFT JOIN Sys_User AS suc WITH(NOLOCK) ON suc.UserId = tba.RecardMan
+ LEFT JOIN Base_Project AS bp WITH(NOLOCK) ON bp.ProjectId = tba.ProjectId
+ LEFT JOIN ads_pms_pro_info_build AS pms WITH(NOLOCK) ON pms.pro_id = bp.MasterSysId
+ WHERE tba.RecordTime>='2026-01-01' AND LEN(suc.IdentityCard)=18 AND LEN(spp.IdentityCard)=18
+ AND (bu.MasterAdOrgCode IS NOT NULL OR LEN(bu.CollCropCode)=18) AND bp.MasterSysId IS NOT NULL AND pms.pro_code IS NOT NULL
+ AND tba.HazardId NOT IN (SELECT RECORD_ID FROM SANKU_DANGEROUS_ENGINEERING WITH(NOLOCK));
+ END
+
+ IF @type = 'SANKU_GRID_PATROL' OR @trimType = ''
+ BEGIN
+ --Íø¸ñ»¯Ѳ²é¼Ç¼Êý¾ݳõʼ»¯
+ WITH temp_data AS (
+ SELECT
+ tba.HazardRegisterId,pms.pro_code,pms.pro_name,bu.MasterAdOrgCode,bu.CollCropCode
+ ,CASE WHEN bu.MasterAdOrgCode IS NULL OR LTRIM(RTRIM(bu.MasterAdOrgCode)) = '' THEN bu.UnitName ELSE bu.MasterAdOrgName END AS UnitName
+ ,suzg.IdentityCard AS pNumber,suzg.UserName AS pUser,tba.CheckTime,'ÒÑÍê³É' AS StatusStr,suzg.IdentityCard,suzg.UserName,tba.CheckTime AS UpdateTime,tba.CheckTime AS CreateTime,
+ ROW_NUMBER() OVER (
+ PARTITION BY tba.CheckManId, CAST(tba.CheckTime AS DATE)
+ ORDER BY tba.CheckTime ASC
+ ) AS rn
+ FROM HSSE_Hazard_HazardRegister AS tba WITH(NOLOCK)
+ LEFT JOIN Base_Project AS bp WITH(NOLOCK) ON bp.ProjectId = tba.ProjectId
+ LEFT JOIN ads_pms_pro_info_build AS pms WITH(NOLOCK) ON pms.pro_id = bp.MasterSysId
+ LEFT JOIN Sys_User AS suzg WITH(NOLOCK) ON suzg.UserId = tba.CheckManId
+ LEFT JOIN Base_Unit AS bu WITH(NOLOCK) ON bu.UnitId = suzg.UnitId --AND LEN(bu.CollCropCode)=18
+ WHERE bp.MasterSysId IS NOT NULL AND pms.pro_code IS NOT NULL AND tba.CheckTime>='2026-01-01'
+ AND (bu.MasterAdOrgCode IS NOT NULL OR LEN(bu.CollCropCode)=18) AND LEN(suzg.IdentityCard)=18
+ )
+ --Íø¸ñ»¯Ѳ²é¼Ç¼Êý¾ݳõʼ»¯
+ INSERT INTO SANKU_GRID_PATROL(RECORD_ID,PROJECT_CODE,PROJECT_NAME,SUBCONTRACTOR_ID,SUBCONTRACTOR_CODE,SUBCONTRACTOR_NAME,PERSONNEL_ID_NUMBER,PERSONNEL_NAME,PATROL_TIME,PATROL_STATUS,SUBMITTER_ID_NUMBER,SUBMITTER_NAME,UPDATE_TIME,CREATE_TIME)
+ SELECT HazardRegisterId,pro_code,pro_name,MasterAdOrgCode,CollCropCode,UnitName,pNumber,pUser,CheckTime,StatusStr,IdentityCard,UserName,UpdateTime,CreateTime
+ FROM temp_data
+ WHERE rn = 1 AND HazardRegisterId NOT IN (SELECT RECORD_ID FROM SANKU_GRID_PATROL WITH(NOLOCK));
+ END
+
+ IF @type = 'SANKU_WORK_BRIEFING' OR @trimType = ''
+ BEGIN
+ --°àǰº°»°·¢Æð¼Ç¼
+ INSERT INTO SANKU_WORK_BRIEFING(RECORD_ID,PROJECT_CODE,PROJECT_NAME,SUBCONTRACTOR_ID,SUBCONTRACTOR_CODE,SUBCONTRACTOR_NAME,PERSONNEL_ID_NUMBER,PERSONNEL_NAME
+ ,BRIEFING_TIME,BRIEFING_DATE,POSITION_NAME,BRIEFING_CONTENT,PARTICIPANT_COUNT,SUBMITTER_ID_NUMBER,SUBMITTER_NAME,UPDATE_TIME,CREATE_TIME)
+ SELECT tba.ClassMeetingId,pms.pro_code,pms.pro_name,bu.MasterAdOrgCode,bu.CollCropCode,CASE WHEN bu.MasterAdOrgCode IS NULL OR LTRIM(RTRIM(bu.MasterAdOrgCode)) = '' THEN bu.UnitName ELSE bu.MasterAdOrgName END AS UnitName
+ ,suc.IdentityCard,suc.UserName,tba.ClassMeetingDate,DATEADD(DAY,-1,tba.ClassMeetingDate),CASE WHEN ppusr.RoleName IS NULL THEN '°²ȫԱ' ELSE ppusr.RoleName END AS WorkPostName,tba.ClassMeetingName+'-'+dbo.StripHtml(ClassMeetingContents),tba.AttentPersonNum
+ ,suc.IdentityCard,suc.UserName,ISNULL(tba.CompileDate,tba.ClassMeetingDate),ISNULL(tba.CompileDate,tba.ClassMeetingDate)
+ FROM Meeting_ClassMeeting AS tba WITH(NOLOCK)
+ LEFT JOIN Base_Unit AS bu WITH(NOLOCK) ON bu.UnitId = tba.UnitId --AND LEN(bu.CollCropCode)=18
+ LEFT JOIN Sys_User AS suc WITH(NOLOCK) ON suc.UserId = tba.CompileMan
+ LEFT JOIN Project_ProjectUser AS ppu WITH(NOLOCK) ON ppu.UserId = tba.CompileMan AND ppu.ProjectId=tba.ProjectId
+ LEFT JOIN Sys_Role AS ppusr WITH(NOLOCK) ON ppusr.RoleId = ppu.RoleId
+ LEFT JOIN Base_Project AS bp WITH(NOLOCK) ON bp.ProjectId = tba.ProjectId
+ LEFT JOIN ads_pms_pro_info_build AS pms WITH(NOLOCK) ON pms.pro_id = bp.MasterSysId
+ WHERE bp.MasterSysId IS NOT NULL AND pms.pro_code IS NOT NULL AND tba.TeamGroupId IS NOT NULL AND tba.ClassMeetingDate>='2026-01-01'
+ AND (bu.MasterAdOrgCode IS NOT NULL OR LEN(bu.CollCropCode)=18) AND LEN(suc.IdentityCard)=18
+ AND tba.ClassMeetingId NOT IN (SELECT RECORD_ID FROM SANKU_WORK_BRIEFING WITH(NOLOCK));
+ END
+
+ IF @type = 'SANKU_WORK_BRIEFING_PARTICIPANT' OR @trimType = ''
+ BEGIN
+ --°àǰº°»°²ÎÓë¼Ç¼
+ INSERT INTO SANKU_WORK_BRIEFING_PARTICIPANT(BRIEFING_ID,RECORD_ID,PROJECT_CODE,PROJECT_NAME,SUBCONTRACTOR_ID,SUBCONTRACTOR_CODE,SUBCONTRACTOR_NAME
+ ,PERSONNEL_ID_NUMBER,PERSONNEL_NAME,POSITION_NAME,PARTICIPATE_DATE,PARTICIPATE_RESULT,SUBMITTER_ID_NUMBER,SUBMITTER_NAME,UPDATE_TIME,CREATE_TIME)
+ SELECT tba.BRIEFING_ID,mcm.ClassMeetingId,tba.PROJECT_CODE,tba.PROJECT_NAME,bu.MasterAdOrgCode,bu.CollCropCode,
+ CASE WHEN bu.MasterAdOrgCode IS NULL OR LTRIM(RTRIM(bu.MasterAdOrgCode)) = '' THEN bu.UnitName ELSE bu.MasterAdOrgName END AS UnitName,
+ spp.IdentityCard,spp.PersonName,ISNULL(bwp.WorkPostName,'') AS WorkPostName,mcm.ClassMeetingDate,'ÒѲÎÓë' AS Status,suc.IdentityCard AS CompileIC,suc.UserName AS CompileUserName,
+ ISNULL(mcm.CompileDate,mcm.ClassMeetingDate) AS CompileDate1,ISNULL(mcm.CompileDate,mcm.ClassMeetingDate) AS CompileDate2
+ FROM SANKU_WORK_BRIEFING AS tba WITH(NOLOCK)
+ LEFT JOIN Meeting_ClassMeeting AS mcm WITH(NOLOCK) ON mcm.ClassMeetingId = tba.RECORD_ID
+ LEFT JOIN Sys_User AS suc WITH(NOLOCK) ON suc.UserId = mcm.CompileMan
+ --LEFT JOIN ProjectData_TeamGroup AS ptg WITH(NOLOCK) ON ptg.TeamGroupId = mcm.TeamGroupId
+ LEFT JOIN SitePerson_Person AS spp WITH(NOLOCK) ON spp.TeamGroupId = mcm.TeamGroupId
+ LEFT JOIN Base_Unit AS bu WITH(NOLOCK) ON bu.UnitId = spp.UnitId
+ LEFT JOIN Base_WorkPost AS bwp WITH(NOLOCK) ON bwp.WorkPostId = spp.WorkPostId
+ WHERE LEN(spp.IdentityCard) = 18 AND spp.IsUsed = 1 AND (bu.MasterAdOrgCode IS NOT NULL OR LEN(bu.CollCropCode) = 18)
+ AND NOT EXISTS ( SELECT 1 FROM SANKU_WORK_BRIEFING_PARTICIPANT AS bp WITH(NOLOCK) WHERE bp.RECORD_ID = mcm.ClassMeetingId AND bp.PERSONNEL_ID_NUMBER = spp.IdentityCard )
+ ORDER BY tba.BRIEFING_ID;
+ END
+
+ IF @type = 'SANKU_SAFETY_TECH_BRIEFING' OR @trimType = ''
+ BEGIN
+ --°²ȫ¼¼Êõ½»µÇ¼
+ INSERT INTO SANKU_SAFETY_TECH_BRIEFING(RECORD_ID,PROJECT_CODE,PROJECT_NAME,SUBCONTRACTOR_ID,SUBCONTRACTOR_CODE,SUBCONTRACTOR_NAME,BRIEFING_TIME,BRIEFING_DATE,BRIEFING_CONTENT,BRIEFING_STATUS,BRIEFING_PERSONNEL_ID_NUMBER,BRIEFING_PERSONNEL_NAME,PERSONNEL_NAME,ID_NUMBER,
+ POSITION_NAME,BRIEFING_RESULT,SIGN_STATUS,SUBMITTER_ID_NUMBER,SUBMITTER_NAME,UPDATE_TIME,CREATE_TIME)
+ SELECT tba.HSETechnicalId,pms.pro_code,pms.pro_name
+ ,bu.MasterAdOrgCode,bu.CollCropCode,CASE WHEN bu.MasterAdOrgCode IS NULL OR LTRIM(RTRIM(bu.MasterAdOrgCode)) = '' THEN bu.UnitName ELSE bu.MasterAdOrgName END AS UnitName
+ ,tba.HSETechnicalDate,tba.HSETechnicalDate,tba.WorkContents,'Òѽ»µ×',suc.IdentityCard,suc.UserName
+ ,spp.PersonName,spp.IdentityCard,ISNULL(bwp.WorkPostName,'°²ȫԱ'),'Òѽ»µ×','ÒÑǩ×Ö',suc.IdentityCard,suc.UserName,tba.CompileDate,tba.CompileDate
+ FROM License_HSETechnical AS tba WITH(NOLOCK)
+ LEFT JOIN Sys_User AS suc WITH(NOLOCK) ON suc.UserId = tba.CompileMan
+ LEFT JOIN Base_Unit AS bu WITH(NOLOCK) ON bu.UnitId = tba.UnitId --AND LEN(bu.CollCropCode)=18
+ --LEFT JOIN ProjectData_TeamGroup AS ptg WITH(NOLOCK) ON ptg.TeamGroupId = tba.TeamGroupId
+ LEFT JOIN SitePerson_Person AS spp WITH(NOLOCK) ON spp.TeamGroupId = tba.TeamGroupId
+ LEFT JOIN Base_WorkPost AS bwp WITH(NOLOCK) ON bwp.WorkPostId = suc.WorkPostId
+ --LEFT JOIN Base_WorkPost AS bwp WITH(NOLOCK) ON bwp.WorkPostId = spp.WorkPostId
+ LEFT JOIN Base_Project AS bp WITH(NOLOCK) ON bp.ProjectId = tba.ProjectId
+ LEFT JOIN ads_pms_pro_info_build AS pms WITH(NOLOCK) ON pms.pro_id = bp.MasterSysId
+ WHERE tba.HSETechnicalDate>='2026-01-01' AND LEN(suc.IdentityCard)=18 AND LEN(spp.IdentityCard)=18
+ AND (bu.MasterAdOrgCode IS NOT NULL OR LEN(bu.CollCropCode)=18) AND bp.MasterSysId IS NOT NULL AND pms.pro_code IS NOT NULL
+ AND NOT EXISTS (SELECT 1 FROM SANKU_SAFETY_TECH_BRIEFING AS bp WITH(NOLOCK) WHERE bp.RECORD_ID = tba.HSETechnicalId AND bp.ID_NUMBER = spp.IdentityCard );
+
+ --°²ȫ¼¼Êõ½»µÇ¼Σ´̽»µ×
+ INSERT INTO SANKU_SAFETY_TECH_BRIEFING(DANGEROUS_ID,RECORD_ID,PROJECT_CODE,PROJECT_NAME,SUBCONTRACTOR_ID,SUBCONTRACTOR_CODE,SUBCONTRACTOR_NAME,SCHEME_CODE,ENGINEERING_DATE,BRIEFING_TIME,BRIEFING_DATE,BRIEFING_CONTENT,BRIEFING_STATUS,BRIEFING_PERSONNEL_ID_NUMBER,BRIEFING_PERSONNEL_NAME,PERSONNEL_NAME,ID_NUMBER,
+ POSITION_NAME,BRIEFING_RESULT,SIGN_STATUS,SUBMITTER_ID_NUMBER,SUBMITTER_NAME,UPDATE_TIME,CREATE_TIME)
+ SELECT tba.DANGEROUS_ID,slh.HazardId,tba.PROJECT_CODE,tba.PROJECT_NAME,tba.SUBCONTRACTOR_ID,tba.SUBCONTRACTOR_CODE,tba.SUBCONTRACTOR_NAME,
+ slh.HazardCode,slh.ExpectedTime,slh.ExpectedTime,slh.ExpectedTime,CONCAT(slh.HazardName,'£º',sc.ConstText),'Òѽ»µ×',suc.IdentityCard,suc.UserName,spp.PersonName,spp.IdentityCard,
+ ISNULL(bwp.WorkPostName,'°²ȫԱ'),'Òѽ»µ×','ÒÑǩ×Ö',suc.IdentityCard,suc.UserName,ISNULL(slh.RecordTime,slh.ExpectedTime) AS CompileDate1,ISNULL(slh.RecordTime,slh.ExpectedTime) AS CompileDate2
+ FROM SANKU_DANGEROUS_ENGINEERING AS tba WITH(NOLOCK)
+ LEFT JOIN Solution_LargerHazard AS slh WITH(NOLOCK) ON slh.HazardId = tba.RECORD_ID
+ LEFT JOIN Sys_Const AS sc WITH(NOLOCK) ON sc.GroupId='LargerHazardType' AND sc.ConstValue= slh.HazardType
+ LEFT JOIN Sys_User AS suc WITH(NOLOCK) ON suc.UserId = slh.RecardMan
+ LEFT JOIN SitePerson_Person AS spp WITH(NOLOCK) ON spp.PersonId = slh.StandbyPersonnelId
+ LEFT JOIN Base_WorkPost AS bwp WITH(NOLOCK) ON bwp.WorkPostId = suc.WorkPostId
+ WHERE slh.HazardId NOT IN (SELECT RECORD_ID FROM SANKU_SAFETY_TECH_BRIEFING WITH(NOLOCK) WHERE DANGEROUS_ID IS NOT NULL)
+ ORDER BY tba.DANGEROUS_ID;
+ END
+ END
+END
+GO
+
+
diff --git a/SUBQHSE/BLL/SanKu/SanKuDataSummaryReportService.cs b/SUBQHSE/BLL/SanKu/SanKuDataSummaryReportService.cs
index 66e78f0..e719f5d 100644
--- a/SUBQHSE/BLL/SanKu/SanKuDataSummaryReportService.cs
+++ b/SUBQHSE/BLL/SanKu/SanKuDataSummaryReportService.cs
@@ -53,6 +53,45 @@ namespace BLL
#region 业务更新
+ #region 项目关键岗位人员
+
+ ///
+ /// 更新项目关键岗位人员
+ ///
+ /// 人员id
+ /// 项目id
+ ///
+ ///
+ public static string UpdatePersonRecord(string recordId, string projectId, ref string message)
+ {
+ string result = string.Empty;
+ using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString))
+ {
+ string status = string.Empty;
+ //查询项目人员当前状态
+ var puser = db.Project_ProjectUser.Where(x => x.UserId == recordId && x.ProjectId == projectId).FirstOrDefault();
+ status = puser != null && puser.IsPost == true ? "在岗" : "离岗";
+ var pro = db.Base_Project.Where(x => x.ProjectId == projectId).FirstOrDefault();
+ if (pro != null && !string.IsNullOrWhiteSpace(pro.MasterSysId))
+ {
+ var mpro = db.Ads_pms_pro_info_build.Where(x => x.Pro_id == pro.MasterSysId).FirstOrDefault();
+ if (mpro != null)
+ {
+ var exist = db.SANKU_PERSONNEL.Where(x => x.RECORD_ID == recordId && x.PROJECT_CODE == mpro.Pro_code).FirstOrDefault();
+ if (exist != null)
+ {
+ exist.STATUS = status;
+ exist.ReportDate = null;
+ db.SubmitChanges();
+ }
+ }
+ }
+ return result;
+ }
+ }
+
+ #endregion
+
#region 班前喊话发起记录
///
@@ -1769,6 +1808,7 @@ namespace BLL
SUBCONTRACTOR_CODE = bu.CollCropCode,
SUBCONTRACTOR_NAME = bu.UnitName,
ENGINEERING_DATE = tba.ExpectedTime == null ? DateTime.Now : (DateTime)tba.ExpectedTime,
+ ENGINEERING_CODE = tba.HazardCode,
ENGINEERING_NAME = tba.HazardName,
ENGINEERING_TYPE = LargerHazardType(tba.HazardType),
ENGINEERING_ADDRESS = tba.Address,
@@ -1821,7 +1861,8 @@ namespace BLL
exist.SUBCONTRACTOR_ID = model.SUBCONTRACTOR_ID;
exist.SUBCONTRACTOR_CODE = model.SUBCONTRACTOR_CODE;
exist.SUBCONTRACTOR_NAME = model.SUBCONTRACTOR_NAME;
- exist.ENGINEERING_DATE = model.ENGINEERING_DATE;
+ exist.ENGINEERING_DATE = model.ENGINEERING_DATE;
+ exist.ENGINEERING_CODE = model.ENGINEERING_CODE;
exist.ENGINEERING_NAME = model.ENGINEERING_NAME;
exist.ENGINEERING_TYPE = model.ENGINEERING_TYPE;
exist.ENGINEERING_ADDRESS = model.ENGINEERING_ADDRESS;
@@ -1848,6 +1889,7 @@ namespace BLL
newModel.SUBCONTRACTOR_CODE = model.SUBCONTRACTOR_CODE;
newModel.SUBCONTRACTOR_NAME = model.SUBCONTRACTOR_NAME;
newModel.ENGINEERING_DATE = model.ENGINEERING_DATE;
+ newModel.ENGINEERING_CODE = model.ENGINEERING_CODE;
newModel.ENGINEERING_NAME = model.ENGINEERING_NAME;
newModel.ENGINEERING_TYPE = model.ENGINEERING_TYPE;
newModel.ENGINEERING_ADDRESS = model.ENGINEERING_ADDRESS;
@@ -2038,6 +2080,111 @@ namespace BLL
#region 汇总上报
+ #region 项目关键岗位人员
+
+ ///
+ /// 汇总上报项目关键岗位人员数据
+ ///
+ /// 操作人,为空:定时任务自动上报
+ ///
+ ///
+ public static string ReportPersonRecords(string userName, ref string message)
+ {
+ string code = "0";
+ string result = "失败";
+ using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString))
+ {
+ var thisUnit = CommonService.GetIsThisUnit();
+ string filePath = Funs.SGGLUrl;
+
+ //获取项目关键岗位人员数据
+ List reportDatas = (from x in db.SANKU_PERSONNEL where x.ReportDate == null select x).ToList();
+ int total = reportDatas.Count();
+ int succ = 0;
+
+ if (!reportDatas.Any())
+ {
+ message = "暂无需要上报的项目关键岗位人员数据!无需上报!";
+ return code;
+ }
+
+ #region 上报数据
+
+ string opType = !string.IsNullOrWhiteSpace(userName) ? "手动上报" : "自动上报";
+ userName = !string.IsNullOrWhiteSpace(userName) ? userName : "定时任务";
+ try
+ {
+ string baseurl = $"{SysConstSetService.CNCECPath}/api/SanKu/ReportPersonRecords";
+ string contenttype = "application/json;charset=unicode";
+ Hashtable newToken = new Hashtable
+ {
+ { "token", ServerService.GetToken().Token }
+ };
+ var pushData = new SankuReportPerson
+ {
+ CollCropCode = thisUnit.CollCropCode,//分包单位社会统一信用码
+ UnitId = thisUnit.UnitId,//分包单位Id
+ UnitName = thisUnit.UnitName,//分包单位名称
+ OpType = opType,
+ Operator = userName,
+ Items = reportDatas,
+ };
+ var pushContent = JsonConvert.SerializeObject(pushData);
+
+ //ErrLogInfo.WriteLog($"【三库:汇总上报项目关键岗位人员数据】:{pushContent}");
+ var strJosn = APIGetHttpService.Http(baseurl, "Post", contenttype, newToken, pushContent);
+ if (!string.IsNullOrEmpty(strJosn))
+ {
+ //ErrLogInfo.WriteLog($"【三库:汇总上报项目关键岗位人员数据】:{strJosn}");
+ JObject obj = JObject.Parse(strJosn);
+ code = obj["code"].ToString();
+ message = obj["message"].ToString();
+ if (code == "1")
+ {
+ var dateNow = DateTime.Now;
+ foreach (var o in reportDatas)
+ {
+ var item = db.SANKU_PERSONNEL.FirstOrDefault(e => e.PERSONNEL_ID == o.PERSONNEL_ID);
+ if (item != null)
+ {
+ item.ReportDate = dateNow;
+ db.SubmitChanges();
+ }
+ }
+ result = "成功";
+ }
+ }
+ else
+ {
+ message = "无返回结果";
+ }
+ }
+ catch (Exception ex)
+ {
+ result = "异常";
+ message = JsonConvert.SerializeObject(ex);
+ //message = ex.Message.ToString();
+ }
+
+ //记录上报结果日志
+ Model.SANKU_REPORT_LOG newModel = new Model.SANKU_REPORT_LOG();
+ newModel.OPTYPE = opType;
+ newModel.CONTENT = "上报项目关键岗位人员数据";
+ newModel.RESULT = result;
+ newModel.DETAIL = message;
+ newModel.OPERATOR = userName;
+ newModel.CREATE_TIME = DateTime.Now;
+ db.SANKU_REPORT_LOG.InsertOnSubmit(newModel);
+ db.SubmitChanges();
+
+ #endregion
+
+ return code;
+ }
+ }
+
+ #endregion
+
#region 班前喊话发起记录
///
diff --git a/SUBQHSE/FineUIPro.Web/FineUIPro.Web.csproj b/SUBQHSE/FineUIPro.Web/FineUIPro.Web.csproj
index 55ac173..7f8adb1 100644
--- a/SUBQHSE/FineUIPro.Web/FineUIPro.Web.csproj
+++ b/SUBQHSE/FineUIPro.Web/FineUIPro.Web.csproj
@@ -12763,9 +12763,13 @@
ASPXCodeBehind
-
+
+ ASPXCodeBehind
+
-
+
+ ASPXCodeBehind
+
ASPXCodeBehind
@@ -12799,9 +12803,13 @@
ASPXCodeBehind
-
+
+ ASPXCodeBehind
+
-
+
+ ASPXCodeBehind
+
ASPXCodeBehind
@@ -18680,7 +18688,7 @@
-
+