271 lines
19 KiB
Transact-SQL
271 lines
19 KiB
Transact-SQL
|
|
CREATE OR 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_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
|
|
TRUNCATE TABLE SANKU_DANGEROUS_ENGINEERING;
|
|
END
|
|
ELSE IF @trimType = 'SANKU_GRID_PATROL'
|
|
BEGIN
|
|
TRUNCATE TABLE SANKU_GRID_PATROL;
|
|
END
|
|
ELSE IF @trimType = '' -- type null/空,全部清空
|
|
BEGIN
|
|
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_GRID_PATROL;
|
|
END
|
|
END
|
|
|
|
-- op=1 初始化插入逻辑
|
|
IF @op = 1
|
|
BEGIN
|
|
|
|
-- type为NULL/空字符串:所有初始化脚本都执行;否则按type分支执行
|
|
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(spp.IdentityCard)=18 AND LEN(suc.IdentityCard)=18
|
|
AND tba.RewardAndPunishID NOT IN (SELECT RECORD_ID FROM SANKU_SAFETY_REWARD WITH(NOLOCK));
|
|
END
|
|
|
|
IF @type = 'SANKU_SAFETY_REWARD' 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,RECTIFICATION_DEADLINE_ID,SUBMITTER_ID_NUMBER,SUBMITTER_NAME,UPDATE_TIME,CREATE_TIME)
|
|
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
|
|
,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_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
|
|
|
|
END
|
|
END
|
|
GO
|
|
|
|
|