三库四期:关键岗位人员

This commit is contained in:
2026-11-06 09:22:20 +08:00
parent 2aa5df8d38
commit ae52e422f9
14 changed files with 1441 additions and 11 deletions
@@ -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
@@ -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