declare @cssdCode varchar(100) = null,@cssdName varchar(100) = null; select @cssdCode=orgUnitCoding,@cssdName=orgUnitName from SupplyRoomConfig where supplyRoomType='1' if(@cssdCode is null) begin print '未配置一级供应室,请先配置一级供应室' end else begin print '一级供应室编码='+@cssdCode + ',名称=' + @cssdName begin tran begin try delete from CssdHandleTousses; --器械包定义未配置处理科室的器械包 insert into CssdHandleTousses ( [orgUnitCode] ,[orgUnitName] ,[tousseDefinitionId] ,[tousseName] ) select @cssdCode,@cssdName,td.id,td.name from TousseDefinition td where td.forDisplay='1' and (td.handlerDepartCode is null or len(td.handlerDepartCode) = 0) and td.id not in (select tousseDefinitionId from CssdHandleTousses) --器械包定义已配置处理科室的器械包 insert into CssdHandleTousses ( [orgUnitCode] ,[orgUnitName] ,[tousseDefinitionId] ,[tousseName] ) select td.handlerDepartCode,td.handlerDepartName,td.id,td.name from TousseDefinition td where td.forDisplay='1' and td.handlerDepartCode is not null and len(td.handlerDepartCode) > 0 and td.id not in (select tousseDefinitionId from CssdHandleTousses) delete from CssdServiceDepts; insert into CssdServiceDepts([clinicOrgUnitCode] ,[clinicOrgUnitId] ,[clinicOrgUnitName] ,[cssdOrgUnitCode] ,[cssdOrgUnitName] ,[tousseType]) select ou.orgUnitCoding,ou.id,ou.name,@cssdCode,@cssdName,'器械包' from OrgUnit ou where ou.orgUnitCoding in (select orgUnitCoding from SupplyRoomConfig where supplyRoomType in ('3','4')) and ou.orgUnitCoding not in (select clinicOrgUnitCode from CssdServiceDepts where [tousseType]='器械包') insert into CssdServiceDepts([clinicOrgUnitCode] ,[clinicOrgUnitId] ,[clinicOrgUnitName] ,[cssdOrgUnitCode] ,[cssdOrgUnitName] ,[tousseType]) select ou.orgUnitCoding,ou.id,ou.name,@cssdCode,@cssdName,'一次性物品' from OrgUnit ou where ou.orgUnitCoding in (select orgUnitCoding from SupplyRoomConfig where supplyRoomType in ('3','4')) and ou.orgUnitCoding not in (select clinicOrgUnitCode from CssdServiceDepts where [tousseType]='一次性物品') print '执行成功' commit tran end try begin catch rollback tran print '执行失败,事务已回滚' end catch end